<!--{{{-->
<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>>
/***
|Name| ConfigTweak|
|Source||
|Version|1.0|
|Author|MichaelTarnowski|
|License||
|~CoreVersion||
|Type||
|Requires||
|Overrides||
|Description|Overriding option settings by start-up|
***/

//{{{
// config.shadowTiddlers.Welcome = "[[Welcome]]";
// config.shadowTiddlers.About = "[[About]]";
// config.shadowTiddlers.Contact = "[[Contact]]";
// config.shadowTiddlers.Download = "[[Download]]";
//}}}

//{{{
// re-label default text for some standard UI elements
config.commands.permalink.text="link";  // shortened from "permalink" to save space
config.commands.references.text="refs"; // shortened from "references" to save space
config.commands.syncing.text="sync";    // shortened from "syncing" to save space
//}}}

//{{{
// Overriding option settings; copy these from CookieJar 
if (config.options.txtUserName=="YourName" || config.options.txtUserName=="") {
	config.options.chkAnimate=false;
	config.options.chkAutoRecentOpenTiddlers=false;
	config.options.chkAutoSave=false;
	config.options.chkAutoTagAuthor=false;
	config.options.chkAutoTagDate=false;
	config.options.chkAutoTagDefault=false;
	config.options.chkAutoTagEditor=false;
	config.options.chkAutoTagModDate=false;
	config.options.chkAutoTagTrigger=false;
	config.options.chkBackstage=false;
	config.options.chkBottomOfPageMode=false;
	config.options.chkCaseSensitiveSearch=false;
	config.options.chkConfirmDelete=true;
	config.options.chkDebugLazySliderDefer=false;
	config.options.chkDebugLazySliderRender=false;
	config.options.chkDisableAutoSelect=true;
	config.options.chkDisplayStartupTime=false;
	config.options.chkDisplayWeekNumbers=true;
	config.options.chkFloatingSlidersAnimate=false;
	config.options.chkForceMinorUpdate=false;
	config.options.chkGenerateAnRssFeed=false;
	config.options.chkHttpReadOnly=true;
	config.options.chkImportReport=true;
	config.options.chkInsertTabs=false;
	config.options.chkLimitOpenTiddlers=false;
	config.options.chkMakeSettingPrivateWhenChanged=false;
	config.options.chkMaxIconSet=true;
	config.options.chkMenugraphDates=true;
	config.options.chkMenugraphModifiers=true;
	config.options.chkMenugraphShadowed=true;
	config.options.chkMenugraphStructured=false;
	config.options.chkMenugraphTags=true;
	config.options.chkMenugraphTiddlers=true;
	config.options.chkOpenInNewWindow=true;
	config.options.chkPreviewText=true;
	config.options.chkRegExpSearch=false;
	config.options.chkRelatedTiddlersShowList=true;
	config.options.chkRelatedTiddlersShowTree=false;
	config.options.chkRelatedTiddlersZoom=false;
	config.options.chkReorderBreadcrumbs=true;
	config.options.chkResizeEditor=true;
	config.options.chkSaveBackups=true;
	config.options.chkSaveEmptyTemplate=false;
	config.options.chkSaveOnExit=true;
	config.options.chkSearchAsYouType=true;
	config.options.chkSearchExtendedFields=true;
	config.options.chkSearchInTags=true;
	config.options.chkSearchInText=true;
	config.options.chkSearchInTitle=true;
	config.options.chkShowBreadcrumbs=true;
	config.options.chkSinglePageMode=false;
	config.options.chkSlidertestcookie=false;
	config.options.chkSliderunsaved=true;
	config.options.chkTOCIncludeHidden=false;
	config.options.chkTOCShow=true;
	config.options.chkTextAreaExtensions=true;
	config.options.chkTiddlerPreview=true;
	config.options.chkToggleLinks=false;
	config.options.chkTopOfPageMode=true;
	config.options.chkUploadLog=true;
	config.options.chkUseInclude=true;
	config.options.chkUsePreForStorage=true;
	config.options.chkUsePrivateSettings=false;
	config.options.chkUseYourSearch=true;
	config.options.chktimeline0=true;
	config.options.txtAutoRecentOpenTiddlerTag="";
	config.options.txtAutoTagDefault="untagged";
	config.options.txtAutoTagFormat="YYYY.0MM.0DD";
	config.options.txtAutoTagModFormat="YYYY.0MM.0DD";
	config.options.txtAutoTagTrigger="auto";
	config.options.txtBackupFolder="backups";
	config.options.txtCalFirstDay="0";
	config.options.txtCalStartOfWeekend="5";
	config.options.txtFCKCustomConfigScript="";
	config.options.txtFCKToolbar="";
	config.options.txtFCKeditorPath="";
	config.options.txtFCKheight="";
	config.options.txtFieldiFrameHeightLabel="Height : ";
	config.options.txtFieldiFrameUrlLabel="URL :";
	config.options.txtFileSystemCharSet="UTF-8";
	config.options.txtFirstVisit="Tue Jul 24 2007 19:43:59 GMT+0200";
	config.options.txtFontSize="100";
	config.options.txtHypergraphXMLfile="tiddlerMap.xml";
	config.options.txtItemsPerPage="25";
	config.options.txtItemsPerPageWithPreview="10";
	config.options.txtLastVisit="Wed Aug 01 2007 09:01:27 GMT+0200";
	config.options.txtMainTab="tabTimeline";
	config.options.txtMaxAutoRecentOpenTiddlers="5";
	config.options.txtMaxEditRows="30";
	config.options.txtMaxOpenTiddler="5";
	config.options.txtMaxTiddlerHistoryList="10";
	config.options.txtMoreTab="moreTabAll";
	config.options.txtNoFieldToEditMessage="";
	config.options.txtPageTemplate="PageTemplate";
	config.options.txtPlayerDefaultHeight="480";
	config.options.txtPlayerDefaultWidth="100%";
	config.options.txtRecentDays="20";
	config.options.txtRelatedTiddlersExclude="GettingStarted DefaultTiddlers SiteNews Download";
	config.options.txtSBtabs="Glossary";
	config.options.txtSaveFromWebScriptURL="savefromweb.php";
	config.options.txtSaveFromWebSourceFile="http://home.arcor.de/michael.tarnowski/mt_wiki.zip";
	config.options.txtSaveFromWebTargetFilename="";
	config.options.txtSpiderHereTitle="Here :";
	config.options.txtSpiderHistoryTitle="History: ";
	config.options.txtSpiderLinksTitle="Links :";
	config.options.txtSpiderMaxHistoryLines="";
	config.options.txtSpiderReferencesTitle="References :";
	config.options.txtStyleSheet="StyleSheet";
	config.options.txtTOCListSize="12";
	config.options.txtTOCSortBy="modified";
	config.options.txtTabHelpID="Getting started";
	config.options.txtTabID="Changes";
	config.options.txtTagTabID="Tags";
	config.options.txtTextAreaFieldRows="";
	config.options.txtTidIDEAutoFreeze="250";
	config.options.txtUploadBackupDir="";
	config.options.txtUploadDir="";
	config.options.txtUploadFilename="";
	config.options.txtUploadLogMaxLine="10";
	config.options.txtUploadStoreUrl="";
	config.options.txtUploadUserName="";
	config.options.txtUserName="MichaelTarnowski";
	config.options.txtVisitCount="13";
	config.options.txtfieldNamePrefixSeparator="";
}
//}}}
/***
|Name|FieldEditorPlugin|
|Source|http://visualtw.ouvaton.org/VisualTW.html/#FieldEditorPlugin|
|Author|[[PascalCollin]]|
|Version|1.0.0|
|Requires|~TW2.2.x|
|Browsers|Firefox 2.0.x, IE 6.0+, others|
!Description:
//create//, //edit//, //view// and //delete// commands in toolbar <<toolbar fields>>
!Demo:
On [[homepage|http://visualtw.ouvaton.org/VisualTW.html]], see [[FieldEditor example]]
!Installation:
*import this tiddler from [[homepage|http://visualtw.ouvaton.org/VisualTW.html]] (tagged as systemConfig)
*save and reload
*optionnaly : add the following css text in your StyleSheet : {{{#popup tr.fieldTableRow td {padding:1px 3px 1px 3px;}}}}
!Code
***/

//{{{

config.commands.fields.handlePopup = function(popup,title) {
	var tiddler = store.fetchTiddler(title);
	if(!tiddler)
		return;
	var fields = {};
	store.forEachField(tiddler,function(tiddler,fieldName,value) {fields[fieldName] = value;},true);
	var items = [];
	for(var t in fields) {
		var editCommand = "<<untiddledCall editFieldDialog "+escape(title)+" "+escape(t)+">>";
		var deleteCommand = "<<untiddledCall deleteField "+escape(title)+" "+escape(t)+">>";
		var renameCommand = "<<untiddledCall renameField "+escape(title)+" "+escape(t)+">>";
		items.push({field: t,value: fields[t], actions: editCommand+renameCommand+deleteCommand});
	}
	items.sort(function(a,b) {return a.field < b.field ? -1 : (a.field == b.field ? 0 : +1);});
	var createNewCommand = "<<untiddledCall createField "+escape(title)+">>";
	items.push({field : "", value : "", actions:createNewCommand });
	if(items.length > 0)
		ListView.create(popup,items,this.listViewTemplate);
	else
		createTiddlyElement(popup,"div",null,null,this.emptyText);
}

config.commands.fields.listViewTemplate = {
	columns: [
		{name: 'Field', field: 'field', title: "Field", type: 'String'},
		{name: 'Actions', field: 'actions', title: "Actions", type: 'WikiText'},
		{name: 'Value', field: 'value', title: "Value", type: 'WikiText'}
	],
	rowClasses: [
			{className: 'fieldTableRow', field: 'actions'}
	],
	buttons: [	//can't use button for selected then delete, because click on checkbox will hide the popup
	]
}

config.macros.untiddledCall = {  // when called from listview, tiddler is unset, so we need to pass tiddler as parameter
	handler : function(place,macroName,params,wikifier,paramString) {
		var macroName = params.shift();
		if (macroName) var macro = config.macros[macroName];
		var title = params.shift();
		if (title) var tiddler = store.getTiddler(unescape(title));
		if (macro) macro.handler(place,macroName,params,wikifier,paramString,tiddler);		
	}
}

config.macros.deleteField = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly && params[0]) {
			fieldName = unescape(params[0]);
			var btn = createTiddlyButton(place,"delete", "delete "+fieldName,this.onClickDeleteField);
			btn.setAttribute("title",tiddler.title);
			btn.setAttribute("fieldName", fieldName);
		}
	},
	onClickDeleteField : function() {
		var title=this.getAttribute("title");
		var fieldName=this.getAttribute("fieldName");
		var tiddler = store.getTiddler(title);
		if (tiddler && fieldName && confirm("delete field " + fieldName+" from " + title +" tiddler ?")) {
			delete tiddler.fields[fieldName];	
			story.refreshTiddler(title,"ViewTemplate",true);
		}
		return false;
	}
}

config.macros.createField = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly) {
			var btn = createTiddlyButton(place,"create new", "create a new field",this.onClickCreateField);
			btn.setAttribute("title",tiddler.title);
		}
	},
	onClickCreateField : function() {
		var title=this.getAttribute("title");
		var tiddler = store.getTiddler(title);
		if (tiddler) {
			var fieldName = prompt("Field name","");
			if (store.getValue(tiddler,fieldName)) {
				window.alert("This field already exists.");
			}
			else if (fieldName) {
				var v = prompt("Field value","");
				tiddler.fields[fieldName]=v;
				story.refreshTiddler(title,"ViewTemplate",true);
			}
		}
		return false;
	}
}

config.macros.editFieldDialog = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly && params[0]) {
			fieldName = unescape(params[0]);
			var btn = createTiddlyButton(place,"edit", "edit this field",this.onClickEditFieldDialog);
			btn.setAttribute("title",tiddler.title);
			btn.setAttribute("fieldName", fieldName);
		}
	},
	onClickEditFieldDialog : function() {
		var title=this.getAttribute("title");
		var tiddler = store.getTiddler(title);
		var fieldName=this.getAttribute("fieldName");
		if (tiddler && fieldName) {
			var value = tiddler.fields[fieldName];
			value = value ? value : "";
			var lines = value.match(/\n/mg);
			lines = lines ? true : false;
			if (!lines || confirm("This field contains more than one line. Only the first line will be kept if you edit it here. Proceed ?")) {
				var v = prompt("Field value",value);
				tiddler.fields[fieldName]=v;
				story.refreshTiddler(title,"ViewTemplate",true);
			}
		}
		return false;
	}
}

config.macros.renameField = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly && params[0]) {
			fieldName = unescape(params[0]);
			var btn = createTiddlyButton(place,"rename", "rename "+fieldName,this.onClickRenameField);
			btn.setAttribute("title",tiddler.title);
			btn.setAttribute("fieldName", fieldName);
		}
	},
	onClickRenameField : function() {
		var title=this.getAttribute("title");
		var fieldName=this.getAttribute("fieldName");
		var tiddler = store.getTiddler(title);
		if (tiddler && fieldName) {
			var newName = prompt("Rename " + fieldName + " as ?", fieldName);
			if (newName) {
				tiddler.fields[newName]=tiddler.fields[fieldName];
				delete tiddler.fields[fieldName];	
				story.refreshTiddler(title,"ViewTemplate",true);
			}
		}
		return false;
	}
}
//}}}
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.2020visionsegroup.com/2020_LOGO_2010.jpg>>/%
http://harvardbusiness.org/products/4389-PDF-ENG/thumbnail/thumbnail.gif%/
<<showtoc>>
!Overview
[[20/20 Vision]], a kind of [[Innovation Game]]: Customers negotiate the relative importance of such things as product features, market requirements, and product benefits.


!20/20 Vision
<script> return "<<tiddler [[20/20 Vision##Overview]]>>" </script>Several potential product features appear on a shuffled set of note cards, one feature per card. 

!Objectives
* Negotiate product features, market requirements, and product benefits

!Timing
90min-1day

!Audience
Group

!Materials
* set of note cards, one feature per card. 
* whiteboard
* sticky note cards

!Procedure
Several potential product features appear on a shuffled set of note cards, one feature per card. 
The [[facilitator|Facilitator]] tapes the first card face-out onto the wall and displays each of the remaining cards one at a time to the participants, asking if the feature on the card is more or less important than the feature on the wall. No two features are allowed to be of equal importance.

!Debriefing

!Credits
* Luke Hohmann

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.intraqq.com/assets/images/innovation.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Innovation games: Who says work can't be fun?| http://go.techtarget.com/r/12320138/4201481]]
* http://en.wikipedia.org/wiki/Innovation_game
* http://www.innovationsgames.com

!Further Reading
<<tiddler [[Innovation Game##Further Reading]]>>
<data>{"abstract":"Reaching Consensus — Vote with your Fingers"}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://glenmurphy.com/blog/2010/hands.png>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("5 Finger Vote","abstract") </script>

!5 Finger Vote
<script> return "<<tiddler [[5 Finger Vote##Overview]]>>" </script> 

!5 Finger Vote
{{center{
<<wikify [img(%0,%1)[%2|%3]] auto auto title https://intranet.5amsolutions.com/download/attachments/7144441/5%20Finger%20Vote.png>>
}}}

!Objectives
* reaching consensus 

!Timing
—

!Audience
Group / Individual


!Materials
* 

!Procedure
Use 5-finger votes to reach consensus
* 5 fingers means total support,
* 4 fingers means support with some minor reservations we don't need to discuss,
* 3 fingers means I have concerns but can live with the decision,
* 2 fingers means I object and want to discuss, and
* 1 finger (index!) means stop, I am against this decision <br>      NOTE: One or two fingers require discussion and re-vote!


!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* https://intranet.5amsolutions.com/display/process/Reaching+Consensus+-+5+Finger+Vote
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.spcforexcel.com/files/images/fivewhys.jpg>>
<<showtoc>>
!Overview
[[5 Whys]] — this game stems from [[5W Methode]] — is a technique for finding the [[root cause|Root Cause Analysis]] of a problem. 

!Perfection Game
<<tiddler [[5 Whys##Overview]]>>
Ask 5 times "why" to dig deeper and deeper into an observed problem to find out the root cause for the problem.

!Objectives
* Find the [[root cause|Root Cause Analysis]] of a problem. 
* Generate Insights in a [[retrospective|Agile Retrospectives]]

!Timing
30min

!Audience
Group

!Materials
* flip chart
* index cards / sticky notes

!Procedure
# Formulate the problem and write the problem statement as header on the flipchart
# Ask the participants //"Why?"//
# Write down the answer below the problem statement
# Ask the participants //"Why?"// for this answer
# Write down the answer below…
# Repeat… at most 5 times

Use to visualize the results [[Ishikawa-Diagramm]].

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* 
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://media.noria.com/sites/Web_Images/Primer_5S_TPM_187x105_2009_12.jpg>>
<<showtoc>>
!Overview
You can experience the power of learning [[5S|5S Methode]] by playing this [[5S game|5S Game - A Lean Simulation]], a long awaited [[lean|Lean Manufacturing]] simulation.
The game is for 6 players plus the time keeper / data collection recorder.

!5S Game - A Lean Simulation
<script> return "<<tiddler [[5S Game - A Lean Simulation##Overview]]>>" </script>

!Objectives
* Prove benefits of implementing [[5S|5S Methode]].

!Timing
60min+

!Audience
Group

!Materials
* You will need enough blocks to build about 50 robots, for every 6 players. See [[slide 12 for individual robot parts list| http://www.implement-lean-manufacturing.com/5S-game-presentation.html]].


!Procedure
By playing several rounds (assembling robots from blocks, before and after implementing Sorting and then Straightening) we will demonstrate how we can increase the throughput while using the same number of people and how the work is so much easier and better ergonomically. 

At the end of the third round, opportunities for Standardization will be discussed, to further improve the operations. [[Best practices|Best Practice]] will be brainstormed to Sustain the 5S.
The object of our game is the new creation of the Space Robotics Corporation, the Robot.

Briefly, the agenda is as follows:
* 5S Basics
* Introduction of the 5S game
* Play Round 1
* Apply the 1st 5S technique: Sorting
* Play Round 2
* Apply the 2nd 5S technique: Straightening
* Play Round 3
* Discussions based on Results (Brainstorm Opportunities for Standardize and Sustain)

The assembly instructions for each station (6 in total) can be printed from the presentation and they are ready to be used.


!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.elseinc.com/images/imagesgif2010/5sgame.gif>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[5S Game - A Lean Simulation| http://www.implement-lean-manufacturing.com/5S-game-presentation.html]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://3.bp.blogspot.com/_2JGSXJydg3o/TCCh_uHKHmI/AAAAAAAACZw/XOyHBUSYc04/s1600/Alexandra+Burke+is+put+through+her+paces+at+beach+bootcamp+as+she+trains+for+Inca+Trail+2.jpg>>
<<showtoc>>
!Overview
[[60 Paces]] is an interactive game illustrating the efficiencies of empowered [[self organizing teams|Self-organizing Team]].

!60 Paces
<<tiddler [[60 Paces##Overview]]>>

!Objectives
* Illustrating the efficiencies of [[empowered|Empowerement]] [[self organizing teams|Self-organizing Team]].
* Comparison between [[command and control|Command and Control]] and [[self organizing teams|Self-organizing Team]]

!Timing
10 mins

!Materials
* Stop Watch

!Audience
Group / Individual

!Procedure
!!Round one
# Each person pairs off with another, preferably someone they do not know.
# Each pair then chooses who will be the manager and who will be the worker.
# The manager will direct the worker to walk 60 normal paces within two minutes using only the following 6 commands: Go, Stop, Left, Right, Faster, Slower.
# After two minutes are up, ask for a show of hands for how many completed the 60 paces.

!!Round two
# There are no managers or workers. Each individual can direct themselves. 
# Again, the goal is to walk 60 paces in two minutes. 
# After two minutes are up, ask for a show of hands for how many completed the 60 paces.

!Debriefing
* Comparison between command and control and self organizing teams and the underlying efficiency of the latter.

!Credit 
Michael ~McCullough, tastycupcakes.com
Ken Schwaber, co-creator of Scrum

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/60-paces/
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://evidently.com/wp-content/uploads/2009/12/red-balloons-299x300.jpg>>
<<showtoc>>
!Overview
[[99 Test Balloons]] is an interactive game illustrating the importance of understanding customer needs, [[acceptance criteria|Acceptance Criteria]] and the value of [[test|Software Testing]]. Defining acceptance criteria is not the same as writing [[tests|Test]], only to be applied after something is produced. They can be used as requirements, as tests, and as a target for developers.

!99 Test Balloons
<script> return "<<tiddler [[99 Test Balloons##Overview]]>>" </script>

!Objectives
* Learn importance of acceptance criteria

!Timing
30 mins

!Audience
Group

!Materials
* 20-30 balloons per team
* Supplies for each team: construction paper, rulers, scissors, markers

!Procedure
# Start by showing the teams a balloon that you would like created. The balloon has a face made up of two round eyes, a triangular nose, and a semi circle mouth. 
# Without any further instructions, tell the teams that they have 2 minutes to create as many of the balloons as possible, then have them bring the balloons up to be ‘accepted’. 
# Eliminate any balloons that do not meet your criteria of ~10 inches wide, ~2 inch eyes, ~1 inch gap between eyes, ~1.5 inch high nose, and ~4.5 inch wide mouth. Very few teams will have balloons that meet the criteria. As you reject their work (waste), ask the teams if they’ve ever had a similar experience in software development. 
# Before the second round, give the teams 2 minutes to discuss how they can improve for the next iteration. They should start asking more questions about the acceptance criteria, which you will happily offer. 
# When round 2 starts, the teams will now apply the acceptance criteria to their work and some will even start building ‘test harnesses’ (e.g. paper templates for face, quick ways to measure balloon width, etc.). The results should be better in round 2. 

!Debriefing
* Discuss how they changed the way they worked and what improvements they would make the next time. If needed, play one more round. This time, every team should be using a test harness and should therefore be producing balloons with much more efficiency and quality.
* Defining [[acceptance criteria|Acceptance Criteria]] is not the same as writing tests, only to be applied after something is produced. They can be used as requirements, as tests, and as a target for developers.
* Automating acceptance tests (or executable requirements) can be very useful, as demonstrated by the test harnesses produced during the game.
* The investment in creating and automating [[acceptance tests|Acceptance Test]] is worthwhile and has a high return.

!Notes
Tried this with my teams – a lot of fun, but there were questions of acceptance right up front. So, it’s good to have a strategy in mind to deal with that beforehand.

!Credits
Michael ~McCullough

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.agilitrix.com/wp-content/uploads/2010/05/Balloon-Madness-630x472.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.scrumalliance.org/system/resource_files/0000/1738/7.JPG>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/99-test-balloons/
/%
|Name|ABC Nightline - IDEO Shopping Cart|
|URL|http://www.youtube.com/v/M66ZU2PCIcM|
|Description|DeepDive methodology in practice|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/M66ZU2PCIcM"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/M66ZU2PCIcM" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
<data>{"abstract":"[[ABC-Hampelmann]] ist eine Übung aus der [[NLP-Szene|Neuro-Linguistische-Programmierung]], die sich besonders eignet, um das [[Hemisphären-Modell]] des Gehirns zu erklären. Denn bei diesem Trainingsspiel müssen die Teilnehmer lesen und sprechen (linke Gehirnhälfte) und sich gleichzeitig bewegen (rechte Gehirnhälfte)."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.holzspielzeuge.info/images/beispiele/hampelmann.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("ABC-Hampelmann","abstract") </script>

!~ABC-Hampelmann
<script> return "<<tiddler [[ABC-Hampelmann##Overview]]>>" </script> 

!Objectives
* Konzentration
* beide Gehirnhälften aktivieren

!Materials
Arbeitsblätter mit ABC (siehe Literaturangabe)

!Objectives

!Timing
5min-10min

!Audience
Group / Individual
ab 2 Personen

!Procedure
zu zweit/stehend

!Debriefing

!Quelle
[[Zamyat M. Klein: Das tanzende Kamel. Kreative und bewegte Spiele für Trainings und Seminare, managerSeminare 2008, S. 23-28| http://www.amazon.de/gp/product/3936075719?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=6742&creativeASIN=3936075719]].

!See also
<<tiddlerList tags:"learning,-newTemplate" header:"Übungen Lernen">>
<<tiddlerList tags:"exercises">>
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.managerseminare.de/dod?uD=163975&mecL=UmFuZG9tSVYCDVSnCQfnlMjFEnZxkmpm
<data>{"abstract":"[[Veränderungsprozesse|Organizational Change Model]] sind für die Betroffenen stets schmerzvoll. Um das Vergangene leichter loslassen zu können, wird es auf Kieselsteinen verewigt und versenkt. [[Abschied mit Kieselsteinen]]: eine Übung, die z.B. in einem Workshop im Rahmen des Veränderungsprozesses den Trennungsvorgang etwas erleichtert, besteht darin, alles das, was nun nicht mehr gilt, was man hinter sich lässt, auf einzelne flache Kieselsteine geschrieben wird: Die alten Kollegen, der alten Chef, die Papierberge, die wöchentlichen Meetings etc."}</data>
/%<<wikify [>img(%0,%1)[%2|%3]] 25% auto title http://www.rohr-kies.de/img/produkte/ziersteine1.jpg>>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.naturschauspiel.ch/images/steine6.jpg>>%/
<<wikify [>img(%0,%1)[%2|%3]] 25% auto title http://www.naturschauspiel.ch/galerie/steintuerme.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Abschied mit Kieselsteinen","abstract") </script>

!Abschied mit Kieselsteinen
<script> return "<<tiddler [[Abschied mit Kieselsteinen##Overview]]>>" </script> 
Veränderungsprozesse sind für die Betroffenen stets schmerzvoll. Im Grunde signalisieren sie, dass das Vergangene nichts taugte, überholt ist, nicht funktioniert hat — was so selten die volle Wahrheit ist. Und wer trennt sich schon leicht von jahrelangen Gewohnheiten? Doch bei Restrukturierungen, Fusionen oder Strategiewechseln ist es unabdingbar, dass Gewohnheiten, Verhaltensweisen, aber auch die vertraute Zusammenarbeit mit bestimmten Personen aufgegeben werden müssen.

!Objectives
* Aufgeben von Gewohnheiten, Verhaltensweisen, Personen.
* Loslassen, Trauerarbeit

!Timing
10min

!Audience
Group

!Materials
* flache Kieselsteine

!Procedure
Am Ende eines Abschnitts, in dem das Vergangene gewürdigt wurde, versenken die Teilnehmer ihre Kieselsteine — z.B. bei einem Spaziergang — in einen nahegelegenen See oder Fluss, nachdem sie ein letztes Mal die Begriffe gelesen haben.

!Debriefing


!Quelle
Andrea Brantl / Daniela Liebich: Abschied vom Alten, managerSeminare 4/2005, S. 83.

!See also
* [[Organizational Change Management]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Abschied+mit+Kieselsteinen+%28jt%29&db=3]]
/***
|Name|ActivityDataPlugin|
|Source||
|Version||
|Author|Jon Robson|
|License||
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description||
***/

//{{{
config.macros.ActivityTable = {
  handler: function(place) {
    var collection = {};
    var tiddlers = store.sortTiddlers(store.getTiddlers(),"modified");
    for(var i=0; i < tiddlers.length; i++){
      var modified = tiddlers[i].modified;
      var id = modified.formatString("0DD/0MM");
      collection[id] = collection[id] ? collection[id] + 1 : 1;
      
    }
    var line1 = [];
    var line2 = []; 
    for(var i in collection){
      line1.push(i);
      line2.push(collection[i]);
    }
    var wikiText = "|Modified|%0|\n|Number Tiddlers|%1|".format([line1.join("|"),line2.join("|")]);
    wikify(wikiText, place);
  }
}

//}}}
/***
|Name|AdvancedOptionsPlugin|
|Source|http://www.TiddlyTools.com/#AdvancedOptionsPlugin|
|Documentation|http://www.TiddlyTools.com/#AdvancedOptionsPlugin|
|Version|1.2.0|
|Author|[[EricShulman]]|
|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.3|
|Type|plugin|
|Requires||
|Overrides||
|Options|##Configuration|
|Description|automatically add plugin-defined options to the [[AdvancedOptions]] shadow tiddler|
!!!!!Usage
<<<
At document startup, this plugin examines each tiddler tagged with <<tag systemConfig>> and looks for a tiddler slice named "Options" whose value refers to a tiddler section (or separate tiddler) that contains an 'advanced options control panel' for configuring that plugin's features and behavior.  For each plugin that contains an "Options" slice, a tabbed entry is automatically created in the [[AdvancedOptions]] shadow tiddler to display that plugin's control panel.

As an optional fallback for backward-compatibility with plugin tiddlers that do not define the "Options" slice, this plugin will also look for a section heading named "Configuration" within those tiddlers, so that older plugins that define this section can automatically have their settings added to the [[AdvancedOptions]] tiddler without requiring the "Options" slice to be added.

This plugin also extends the standard {{{<<option>>}}} macro syntax so you can directly set the internal value of a boolean or text option, without displaying a corresponding checkbox or input field control simply by appending {{{=value}}} syntax to the end of the option ID parameter:
{{{
<<option "txtSomeOption=some text">>
<<option chkSomeOtherOption=true>> OR <<option chkSomeOtherOption=false>>
}}}
Example: {{{<<option chkAnimate=false>>}}}
<<<
!!!!!Configuration
<<<
<<option chkAdvancedOptions>> automatically add plugin-defined options to the [[AdvancedOptions]] shadow tiddler
<<option chkAdvancedOptionsBackstage>> automatically add plugin-defined options to Backstage menu
<<option chkAdvancedOptionsFallback>> use <<option txtAdvancedOptionsFallback>> section as a fallback for plugins that don't define an ~AdvancedOptions slice
//note: these settings only take effect after reloading the document//
<<<
!!!!!Revisions
<<<
2009.07.23 [1.2.0] added support for enhanced {{{<<option id=value>>}}} 'direct assignment' syntax
2008.05.09 [1.1.0] add "options" panel to backstage
2008.04.08 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.AdvancedOptionsPlugin= {major: 1, minor: 2, revision: 0, date: new Date(2009,7,23)};

if (config.options.chkAdvancedOptions===undefined)
	config.options.chkAdvancedOptions=true;
if (config.options.chkAdvancedOptionsBackstage===undefined)
	config.options.chkAdvancedOptionsBackstage=true;
if (config.options.chkAdvancedOptionsFallback===undefined)
	config.options.chkAdvancedOptionsFallback=true;
if (config.options.txtAdvancedOptionsFallback===undefined)
	config.options.txtAdvancedOptionsFallback="Configuration";
if (config.optionsDesc) config.optionsDesc.chkAdvancedOptions=
	"automatically add plugin-defined options to [[AdvancedOptions]]";
//}}}
//{{{
var items=[];
var fmt="[[%0 ]] [[view options for %0]] [[%1]]\n";
var section=config.options.txtAdvancedOptionsFallback;
var plugins=store.getTaggedTiddlers("systemConfig");
for (var p=0; p<plugins.length; p++) {
	var tid=plugins[p].title;
	var settings=store.getTiddlerSlice(tid,"Options");
	if (!settings && config.options.chkAdvancedOptionsFallback && store.getTiddlerText(tid+"##"+section))
		settings="##"+section; // fallback handling for older plugins
	if (settings&&settings.length) {
		if (settings.substr(0,2)=="##") settings=tid+settings;
		items.push(fmt.format([tid,settings]));
	}
}
if (items.length) config.shadowTiddlers.PluginOptions=
	"!![[Plugin-defined options|PluginManager]]\n>@@text-align:left;<<tabs '' \n"+items.join(' ')+">>@@";
if (config.options.chkAdvancedOptions)
	config.shadowTiddlers.AdvancedOptions+="{{smallform{{{wrap{<<tiddler PluginOptions>>}}}}}}";
//}}}
//{{{
// // add "options" backstage task
if (config.tasks && config.options.chkAdvancedOptionsBackstage) { // for TW2.2b3 or above
	config.tasks.options = {
		text: "options",
		tooltip: "manage plugin-defined option settings",
		content: "{{smallform{{{groupbox{{{wrap{<<tiddler PluginOptions>>}}}}}}\n{{groupbox small {<<options>>}}}}}}"
	}
	config.backstageTasks.splice(config.backstageTasks.indexOf("plugins")+1,0,"options");
}
//}}}
//{{{
config.macros.option.AOPsave_handler=config.macros.option.handler;
config.macros.option.handler=function(place,macroName,params,wikifier,paramString,tiddler) {
	var parts=params[0].split('=');
	if (parts.length==1) return this.AOPsave_handler.apply(this,arguments);
	var id=parts[0]; var val=(id.substr(0,3)=='txt')?parts[1]:(parts[1]=='true');
	config.options[id]=val;
}
//}}}
/%
|Name|Agile Game 3|
|URL|http://www.youtube.com/v/425LG5L2RP4|
|Description|More lego results from Agile Game.|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/425LG5L2RP4"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/425LG5L2RP4" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
<<forEachTiddler    where
        'tiddler.tags.contains("video")&& tiddler.tags.contains("agile")&& tiddler.tags.contains("game")&& !tiddler.tags.contains("excludeLists")' 
    sortBy '(tiddler.title.toLowerCase())'
    write
        '"|[["+tiddler.title+"]] <br><br> <<tiddler [["+tiddler.title+"::Description]]$)) |<<tiddler [["+tiddler.title+"::Video]]$)) |\n"'
           begin ' "|sortable|k\n|!Name|!Video|h\n" '
           end ' "!!!"+count+" items listed\n" '
           none '"!!!No items listed\n"' 
>>
/%
|Name|Agile Simulations & Games|
|URL|http://industriallogic.com/games/index.html|
|Description|Online Shop for Agile Simulations & Games|
|Author|Industrial Logic. Inc|

!Overview
Several games for agile mindset by Industrial Logic. Inc
!Agile Simulations & Games
<<tiddler [[Agile Simulations & Games##Overview]]>>

!Objectives
* Learning agile mindset 

!Timing
—

!Materials
* —

!Audience
Group

!Procedure
—

!Debriefing

%/
<<wikify [>img(%0,%1)[%2|%3]] 70% auto title http://www.yourstodiscover.com/alaska/alaska001-map.jpg>>
<<showtoc>>
!Overview
[[Alaskan Road Trip]] is an Interactive game that illustrates the concept of planning on the horizon, [[rolling wave planning|Rolling Wave Planning]] and progressive elaboration.

!Alaskan Road Trip
<<tiddler [[Alaskan Road Trip##Overview]]>>

!Objectives
* The ROI on detailed planning isn’t always there. 
* Illustrates the concept of planning on the horizon, rolling wave planning and progressive elaboration

!Timing
30 mins

!Materials
* Map with driving directions from Dallas, Texas to Anchorage, Alaska (4000 miles)

!Audience
Group

!Procedure
Each team needs to get to Anchorage to surprise their true love, who is working there. They must create a plan: timeline, what to bring, budget, etc.
Have each team present their plan. Look for over planning (hotel reservations for each night, where to eat, etc.) and under planning (no passport, no miles per day goal, etc.). Ask the teams what they would do if they found out half-way through the trip that their true love has just been transferred 2000 miles away in another direction.

!Debriefing
* The ROI on detailed planning isn’t always there. It is near impossible to predict and to plan for every stop, every meal, every incident encountered on a road trip. But we can prepare for one day at a time, and inspect and adapt as we go.
* Correlate the change in plans with software development and how when the customers needs change, we must be able to adapt. This is in contrast to continuing on with the initial plan which may no longer be of any use to the customer (shelved software).

!Credits
Michael ~McCullough

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/alaskan-road-trip/
/***
|Name|AliasPlugin|
|Source|http://www.TiddlyTools.com/#AliasPlugin|
|Documentation|http://www.TiddlyTools.com/#AliasPluginInfo|
|Version|1.1.1|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|Create text-substitution macros|
Define macros for abbreviations and other "aliases", and then embed them in the rest of your tiddler content to quickly insert common terms, phrases and links without a lot of repetitive typing.
!!!!!Documentation
> see [[AliasPluginInfo]]
!!!!!Revisions
<<<
2009.09.09 [1.1.1] 'tiddler' arg passed to wikify() so aliases containing macros render with correct context
| Please see [[AliasPluginInfo]] for previous revision details |
2005.08.12 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.AliasPlugin= {major: 1, minor: 1, revision: 1, date: new Date(2009,9,9)};
config.macros.alias= { };
config.macros.alias.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	var alias=params.shift(); if (!alias) return; alias=alias.replace(/ /g,"_"); // don't allow spaces in alias
	if (config.macros[alias]==undefined) { // create new macro (as needed)
		config.macros[alias] = { };
		config.macros[alias].handler =
			function (place,macroName,params,wikifier,paramString,tiddler)
				{ wikify(config.macros[macroName].text.format(params),place,null,tiddler); }
	}
	config.macros[alias].text = params[0]?params.join(' '):alias;	// set alias text
}
//}}}
/***
|Name|AllTagsExceptPlugin|
|Source|http://tiddlystyles.com/#AllTagsExceptMacro|
|Version|1.0 Sept 8, 2005|
|Author|[[ClintChecketts]]|
|License||
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description|usage: {{{<< allTagsExcept systemConfig excludeLists systemTiddlers >>}}} This will show all tags but those listed (e.g. systemConfig and systemTiddlers {{{<<allTagsExcept systemConfig excludeLists systemTiddlers>>}}}|
***/
//{{{
version.extensions.allTagsExcept = {major: 0, minor: 1, revision: 0, date: new Date(2005,8,15)};
config.macros.allTagsExcept = {tooltip: "Show tiddlers tagged with '%0'",noTags: "There are no tags to display"};

config.macros.allTagsExcept.handler = function(place,macroName,params)
{
 var tags = store.getTags();
 var theTagList = createTiddlyElement(place,"ul",null,null,null);
 if(tags.length == 0)
 createTiddlyElement(theTagList,"li",null,"listTitle",this.noTags);
 for (var t=0; t<tags.length; t++) {
 var includeTag = true;
 for (var p=0;p<params.length; p++) if (tags[t][0] == params[p]) includeTag = false;
 if (includeTag){
 var theListItem =createTiddlyElement(theTagList,"li",null,null,null);
 var theTag = createTiddlyButton(theListItem,tags[t][0] + " (" + tags[t][1] + ")",this.tooltip.format([tags[t][0]]),onClickTag);
 theTag.setAttribute("tag",tags[t][0]);
 }
 }
}
//}}}
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.evangelchristianschool.org/news/wp-content/uploads/2009/04/alphabet-games-for-kids-742737.jpg>>
<<showtoc>>
!Overview
The [[Alphabet Game]] is a classroom exercise for reinforcing concepts in and interactive way. This is a fun and competitive way to review materials.

!Alphabet Game
<<tiddler [[Alphabet Game##Overview]]>>

!Objectives
* way to review materials.
* reinforcing concepts

!Timing
10 mins

!Materials
* One whiteboard per team

!Audience
Group

!Procedure
# Divide the participants in to teams and have them each write all the letters of the alphabet on their whiteboard. 
# Then give the teams 5 minutes to write down a word that starts with each of the 26 letters of the alphabet. 
# All words must fit within a given category (e.g. agile concepts, patterns, programming terminology, etc.). 
# Encourage participants to be creative, especially with the harder letters.
# Award one point for each word.

!Debriefing
* This is a fun and competitive way to review materials.

!Credits
Michael ~McCullough
/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/alphabet-game/
/%!info
|Name|AlphabetIndex|
|Source||
|Version|1.0|
|Author|[[MichaelTarnowski]]|
|License||
|~CoreVersion|2.x|
|Type|script|
|Requires|ForEachTiddlerPlugin, NestedSlidersPlugin|
|Overrides||
|Description|Shows glossary index with A-Z slider buttons|
!index
<<forEachTiddler
   where  'tiddler.title.replace(/^(A|An|The|Der|Die|Das) /,"").substr(0,1).toUpperCase()=="$1" && tiddler.tags.contains("glossary")'
      sortBy 'tiddler.title.replace(/^(A|An|The|Der|Die|Das) /,"").toUpperCase()'  
      write ' "\n[["+tiddler.title+"]]" '>>
!A
<<tiddler [[AlphabetIndex##index]] with: A>> 
!Ä
<<tiddler [[AlphabetIndex##index]] with: Ä>> 
!B
<<tiddler [[AlphabetIndex##index]] with: B>> 
!C
<<tiddler [[AlphabetIndex##index]] with: C>> 
!D
<<tiddler [[AlphabetIndex##index]] with: D>> 
!E
<<tiddler [[AlphabetIndex##index]] with: E>> 
!F
<<tiddler [[AlphabetIndex##index]] with: F>> 
!G
<<tiddler [[AlphabetIndex##index]] with: G>> 
!H
<<tiddler [[AlphabetIndex##index]] with: H>> 
!I
<<tiddler [[AlphabetIndex##index]] with: I>> 
!J
<<tiddler [[AlphabetIndex##index]] with: J>> 
!K
<<tiddler [[AlphabetIndex##index]] with: K>> 
!L
<<tiddler [[AlphabetIndex##index]] with: L>> 
!M
<<tiddler [[AlphabetIndex##index]] with: M>> 
!N
<<tiddler [[AlphabetIndex##index]] with: N>> 
!O
<<tiddler [[AlphabetIndex##index]] with: O>> 
!Ö
<<tiddler [[AlphabetIndex##index]] with: Ö>> 
!P
<<tiddler [[AlphabetIndex##index]] with: P>> 
!Q
<<tiddler [[AlphabetIndex##index]] with: Q>> 
!R
<<tiddler [[AlphabetIndex##index]] with: R>> 
!S
<<tiddler [[AlphabetIndex##index]] with: S>> 
!T
<<tiddler [[AlphabetIndex##index]] with: T>>  
!U
<<tiddler [[AlphabetIndex##index]] with: U>> 
!Ü
<<tiddler [[AlphabetIndex##index]] with: Ü>> 
!V
<<tiddler [[AlphabetIndex##index]] with: V>> 
!W
<<tiddler [[AlphabetIndex##index]] with: W>> 
!X
<<tiddler [[AlphabetIndex##index]] with: X>> 
!Y
<<tiddler [[AlphabetIndex##index]] with: Y>> 
!Z
<<tiddler [[AlphabetIndex##index]] with: Z>> 
!0
<<tiddler [[AlphabetIndex##index]] with: 0>> 
!1
<<tiddler [[AlphabetIndex##index]] with: 1>> 
!2
<<tiddler [[AlphabetIndex##index]] with: 2>> 
!3
<<tiddler [[AlphabetIndex##index]] with: 3>> 
!4
<<tiddler [[AlphabetIndex##index]] with: 4>> 
!5
<<tiddler [[AlphabetIndex##index]] with: 5>> 
!6
<<tiddler [[AlphabetIndex##index]] with: 6>> 
!7
<<tiddler [[AlphabetIndex##index]] with: 7>> 
!8
<<tiddler [[AlphabetIndex##index]] with: 8>> 
!9
<<tiddler [[AlphabetIndex##index]] with: 9>> 


%/
+++*[A]> <<tiddler [[AlphabetIndex##A]]>> === /%
%/ +++*[Ä]> <<tiddler [[AlphabetIndex##Ä]]>> === /%
%/ +++*[B]> <<tiddler [[AlphabetIndex##B]]>> === /%
%/ +++*[C]> <<tiddler [[AlphabetIndex##C]]>> === /%
%/ +++*[D]> <<tiddler [[AlphabetIndex##D]]>> === /%
%/ +++*[E]> <<tiddler [[AlphabetIndex##E]]>> === /%
%/ +++*[F]> <<tiddler [[AlphabetIndex##F]]>> === /%
%/ +++*[G]> <<tiddler [[AlphabetIndex##G]]>> === /%
%/ +++*[H]> <<tiddler [[AlphabetIndex##H]]>> === /%
%/ +++*[I]> <<tiddler [[AlphabetIndex##I]]>> === /%
%/ +++*[J]> <<tiddler [[AlphabetIndex##J]]>> === /%
%/ +++*[K]> <<tiddler [[AlphabetIndex##K]]>> === /%
%/ +++*[L]> <<tiddler [[AlphabetIndex##L]]>> === /%
%/ +++*[M]> <<tiddler [[AlphabetIndex##M]]>> === /%
%/ +++*[N]> <<tiddler [[AlphabetIndex##N]]>> === /%
%/ +++*[O]> <<tiddler [[AlphabetIndex##O]]>> === /%
%/ +++*[Ö]> <<tiddler [[AlphabetIndex##Ö]]>> === /%
%/ +++*[P]> <<tiddler [[AlphabetIndex##P]]>> === /%
%/ +++*[Q]> <<tiddler [[AlphabetIndex##Q]]>> === /%
%/ +++*[R]> <<tiddler [[AlphabetIndex##R]]>> === /%
%/ +++*[S]> <<tiddler [[AlphabetIndex##S]]>> === /%
%/ +++*[T]> <<tiddler [[AlphabetIndex##T]]>> === /%
%/ +++*[U]> <<tiddler [[AlphabetIndex##U]]>> === /%
%/ +++*[Ü]> <<tiddler [[AlphabetIndex##Ü]]>> === /%
%/ +++*[V]> <<tiddler [[AlphabetIndex##V]]>> === /%
%/ +++*[W]> <<tiddler [[AlphabetIndex##W]]>> === /%
%/ +++*[X]> <<tiddler [[AlphabetIndex##X]]>> === /%
%/ +++*[Y]> <<tiddler [[AlphabetIndex##Y]]>> === /%
%/ +++*[Z]> <<tiddler [[AlphabetIndex##Z]]>> === 
----
+++*[0]> <<tiddler [[AlphabetIndex##0]]>> === /%
%/ +++*[1]> <<tiddler [[AlphabetIndex##1]]>> === /%
%/ +++*[2]> <<tiddler [[AlphabetIndex##2]]>> === /%
%/ +++*[3]> <<tiddler [[AlphabetIndex##3]]>> === /%
%/ +++*[4]> <<tiddler [[AlphabetIndex##4]]>> === /%
%/ +++*[5]> <<tiddler [[AlphabetIndex##5]]>> === /%
%/ +++*[6]> <<tiddler [[AlphabetIndex##6]]>> === /%
%/ +++*[7]> <<tiddler [[AlphabetIndex##7]]>> === /%
%/ +++*[8]> <<tiddler [[AlphabetIndex##8]]>> === /%
%/ +++*[9]> <<tiddler [[AlphabetIndex##9]]>> === /%
/%
|Name|An Agile Mind Game|
|URL|http://www.youtube.com/v/fEzUs519n4g|
|Description|A game played during youth camp at Maha Karuna (14 - 16 Nov 2008)|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/fEzUs519n4g"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/fEzUs519n4g" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
<data>{"abstract":"Eine Übung zum Anwärmen, die sich in Führungstrainings, aber auch in Seminaren zum Thema [[Kommunikation]] und Kooperation eignen dürfte.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.stupidedia.org/images/6/6d/Nosehang.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("An der Nase führen","abstract") </script>

!An der Nase führen
Eine Übung zum Anwärmen, die sich in Führungstrainings, aber auch in Seminaren zum Thema [[Kommunikation]] und Kooperation eignen dürfte.

!Objectives
* Erfahren von Führung

!Timing
10min.

!Audience
Group

!Materials
* keine

!Procedure
Jeweils zwei Teilnehmer tun sich zusammen. Der [[Führende|Führung]] hält seine Hand in einem kurzen Abstand vor die Nase des anderen. Beide stellen sich vor, dass ein Gummiband die Nase mit der Hand verbindet. Der Führende "zieht" nun den Partner an diesem Gummiband durch den Raum, der andere muss jede Bewegung mitmachen und ist dabei völlig abhängig vom Führenden.
Nach einer Weile werden die Rollen getauscht.

!Debriefing


!Quelle
Paul Diebel: Alles andere als Theater, managerSeminare 3/2004, S.72

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Führung]<<tiddlerList tags:"leadership,-newTemplate" header:"Übungen Führung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/An+der+Nase+f%FChren+%28jt%29.html]]
<data>{"abstract":"In [[Mehrparteienmediationen|Mehrparteienmediation]] sind für den externen Vermittler am Anfang die [[Strukturen der Beteiligten|Analyse der Gruppenstrukturen]] und die [[Konfliktkonstellationen|Konflikt]] häufig schwer zu durchschauen. Mit kleinen Gegenständen kann sich der [[Mediator|Mediation]] einen Überblick verschaffen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.familienaufstellung-tirol.at/images/organisationsaufstellung.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Analyse der Gruppenstrukturen","abstract") </script>

!Analyse der Gruppenstrukturen
<script> return "<<tiddler [[Analyse der Gruppenstrukturen##Overview]]>>" </script> 
In [[Mehrparteienmediationen|Mehrparteienmediation]] (z.B. [[Mediation]] in einer Abteilung) sind für den externen Vermittler am Anfang die Strukturen der [[Mitarbeiter]] und die [[Konfliktkonstellationen|Konflikt]] häufig schwer zu durchschauen. Anita von Hertel benutzt dazu eine größere Anzahl frei bewegbarer Gegenstände als Externalisierungsmaterialien.

!Objectives
* Erstellen eines Gesamtbildes des [[Konflikts|Konflikt]].
* Erstellen eines Gesamtbildes der Gruppendynamik
 
!Timing
45min+

!Audience
Group/Indivual

!Materials
* Bauklötze in den Grundfarben und –formen
* bewegbare Gegenstände, z.B. Pfefferstreuer, Papierschnipsel, Pinnwandnadeln

!Procedure
# Bereits im Vorgespräch wird die Mitarbeiterstruktur, so wie sie die [[Führungskraft|Führung]] im Kopf präsent hat, mit den Gegenständen aufgebaut ([[Aufstellung]], [[Organisationsaufstellung]], [[Systemische Strukturaufstellung]]). 
# Die [[Mitarbeiter]] können dabei mit unterschiedlichen Materialien dargestellt werden. Die Auswahl gibt häufig schon wichtige Hinweise für die [[Konfliktanalyse|Konflikt]]. 
# Anschließend wird in dem entstandenen Bild gezeigt, wer mit wem wie im [[Konflikt]] steht. Mit Hilfe von [[offenen Fragen|Offene Frage]] und Hintergrundinformationen zu den aufgestellten [[Mitarbeitern|Mitarbeiter]] entsteht ein Gesamtbild über den [[Konflikt]].

!Debriefing
Die Darstellung beruht wohlgemerkt auf die [[Wahrnehmung]] und Sichtweise der im Vorgespräch anwesenden Führungskraft. In der [[Mediation]] selber wird die Darstellung der anderen [[Mitarbeiter]] abgefragt. Die Methode lässt sich auch in dieser [[Phase]] einsetzen.

!Quelle
Anita von Hertel: Das ist ja wie Weihnachten … und ~Chinesisch-Neujahr, ZKM 6/2002, S. 268.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Analyse+der+Gruppenstrukturen+%28baehner%29&db=3]]
/%
|Name|Animals at Play|
|URL|http://www.youtube.com/v/iHj82otCi7U|
|Description|Stuart Brown, a physician and clinical researcher who founded the National Institute for Play, describes Norbert Rosing's striking images of a wild polar bear playing with sled dogs.|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/iHj82otCi7U"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/iHj82otCi7U" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
<data>{"abstract":"[[Annahmen widerlegen]], oft [[scheitern|Archäologie des Scheiterns]] wir an einer Fragestellung, weil es uns nicht gelingt, die [[Perspektive zu wechseln|Perspektivwechsel]]. Da hilft diese kleine Übung."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.bajoodoo.com/img/xshared/bajoodoo/team.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Annahmen widerlegen","abstract") </script>

!Annahmen widerlegen
Eine kleine Übung, mit der Sie sich einem Problem einmal anders nähern und somit möglicherweise einen festgefahrenen Weg verlassen können.
# ''Schritt 1:'' Schreiben Sie drei Annahmen über das Problem auf, die Ihnen nach Ihrem gegenwärtigen Verständnis des Problems in den Sinn kommen<br><br>
# ''Schritt 2:'' Verändern Sie jetzt bitte Ihre Sichtweise auf das Problem, indem Sie jede Annahme aus Schritt 1 in ihr Gegenteil verkehren.<br><br>
# ''Schritt 3:'' Arbeiten Sie mögliche Vorteile heraus, die aus der Verneinung Ihrer Annahmen aus Schritt 1 hervorgehen. Welche Vorteile sehen sie?

Im Anschluss sammeln Sie jetzt in der Gruppe alle Vorteile. Stellen Sie diese z.B. in einer großen [[Mind-Map|Mind Mapping]] dar.


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>
+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline|http://mwonline.de/db/topics/themenentry.php3?to_parebene=Ideenfabrik&db=3]]
/***
|Name|AnnotationsPlugin|
|Description|Inline annotations for tiddler text.|
|Author|[[SaqImtiaz]] ( lewcid@gmail.com )|
|Source|http://tw.lewcid.org/#AnnotationsPlugin|
|Code Repository|http://tw.lewcid.org/svn/plugins|
|Version|2.0|
|Date||
|License|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|~CoreVersion|2.2.3|

!!Usage:
*{{{((text to annotate(annotation goes here)}}}
* To include the text being annotated, in the popup as a title, put {{{^}}} as the first letter of the annotation text.
** {{{((text to annotate(^annotation goes here)}}}

!!Examples:
Mouse over, the text below:
* ((banana(the best fruit in the world)))
* ((banana(^ the best fruit in the world)))

***/
// /%
config.formatters.unshift({name:"annotations",match:"\\(\\(",lookaheadRegExp:/\(\((.*?)\((\^?)((?:.|\n)*?)\)\)\)/g,handler:function(w){
this.lookaheadRegExp.lastIndex=w.matchStart;
var _2=this.lookaheadRegExp.exec(w.source);
if(_2&&_2.index==w.matchStart){
var _3=createTiddlyElement(w.output,"span",null,"annosub",_2[1]);
_3.anno=_2[3];
if(_2[2]){
_3.subject=_2[1];
}
_3.onmouseover=this.onmouseover;
_3.onmouseout=this.onmouseout;
_3.ondblclick=this.onmouseout;
w.nextMatch=_2.index+_2[0].length;
}
},onmouseover:function(e){
popup=createTiddlyElement(document.body,"div",null,"anno");
this.popup=popup;
if(this.subject){
wikify("!"+this.subject+"\n",popup);
}
wikify(this.anno,popup);
addClass(this,"annosubover");
Popup.place(this,popup,{x:25,y:7});
},onmouseout:function(e){
removeNode(this.popup);
this.popup=null;
removeClass(this,"annosubover");
}});
setStylesheet(".anno{position:absolute;border:2px solid #000;background-color:#DFDFFF; color:#000;padding:0.5em;max-width:15em;width:expression(document.body.clientWidth > (255/12) *parseInt(document.body.currentStyle.fontSize)?'15em':'auto' );}\n"+".anno h1, .anno h2{margin-top:0;color:#000;}\n"+".annosub{background:#ccc;}\n"+".annosubover{z-index:25; background-color:#DFDFFF;cursor:help;}\n","AnnotationStyles");


// %/
<data>{"abstract":"Zu warten, bis ein Problem auftritt, könnte nicht nur bei technischen Fragen ein verhängnisvoller [[Fehler]] sein. Dann lieber im Vorfeld nach möglichen Problemen fragen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://royalclan.de/images/ERROR404.png>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Antizipierende Fehlererkennung","abstract") </script>

!Antizipierende Fehlererkennung
Auch eine Methode, die aus dem [[TRIZ|Theorie des erfinderischen Problemlösens]]-Baukasten stammt. Sie besteht darin, nicht zu warten, bis bei technischen Entwicklungen die ersten Probleme auftreten, sondern durch die systematische Suche nach Schwachstellen im Vorfeld Verbesserungen zu erzielen.

Die Idee: Es wird nach möglichen Ursachen für [[Fehler]] gefragt, die noch gar nicht aufgetreten sind.

Beispiel: Was könnte ein Brücke zum Einsturz bringen? Was könnte einen Reifen zum Platzen bringen?...

!Quelle
Dürand: Kind im Manne, Wirtschaftswoche 19/2000 S.148


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline|http://mwonline.de/db/topics/themenentry.php3?to_parebene=Ideenfabrik&db=3]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.suddenlysenior.com/Images/coupleformalrose300.gif>>
<<showtoc>>
!Overview


!Appreciate Resources
<<tiddler [[Appreciate Resources##Overview]]>>

!Objectives

!Timing


!Audience
Group

!Materials
* 

!Procedure


!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://lightworks.typepad.com/photos/uncategorized/2007/05/16/say_what_you_feel_2.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Why Appreciation Matters So Much - Tony Schwartz - Harvard Business Review| http://blogs.hbr.org/schwartz/2012/01/why-appreciation-matters-so-mu.html]]
<data>{"abstract":"Bilder — [[Metaphern|Arbeit mit Metaphern]] — einer [[Organisation]] bestimmen die Wirklichkeit im Unternehmen, ob bewusst oder unbewusst. Wie kann man sie in Rahmen von [[Veränderungsprozessen|Organizational Change Model]] nutzen?"}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.agbshop.at/pimages/9783532623749.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Arbeit mit Metaphern","abstract") </script>

!Arbeit mit Metaphern
<script> return "<<tiddler [[Arbeit mit Metaphern##Overview]]>>" </script>
[[Bilder|Metaphern malen]] — Metaphern — einer [[Organisation]] bestimmen die Wirklichkeit im Unternehmen, ob bewusst oder unbewusst. 
Sie stehen für typische [[Kommunikationsmuster|Kommunikation]] und Funktionsweisen von Systemen.
Metaphern sind veränderbar und eignen sich insofern dazu, im Rahmen von [[Veränderungsprozessen|Organizational Change Model]] aufgedeckt und [[bearbeitet|Metaphern-Arbeit]] zu werden.
Das Tool [[Arbeit mit Metaphern]] von Susanne Alwart besteht aus sechs Schritten, dauert ca. vier Stunden und eignet sich zum Einsatz in der Planungsphase von [[Veränderungsprozessen|Organizational Change Model]], in [[Führungsworkshops|Führung]] und [[Teamentwicklungen|Teamentwicklung / Teambuilding]].

!Objectives
* Planungsphase von [[Veränderungsprozessen|Organizational Change Model]], in [[Führungsworkshops|Führung]] und [[Teamentwicklungen|Teamentwicklung / Teambuilding]].

!Timing
4h

!Audience
Group

!Materials
* Flipchartpapier, farbige  Marker.

!Procedure
# ''Geschichten (er-)finden.'' <<br>>       Die Teilnehmer werden aufgefordert zu beschreiben, wie die [[Mitarbeiter]] wohl das Unternehmen sehen, und zwar in Form von Märchen, Analogien, Geschichten..., mit Titel, Genre (Krimi, Tragödie, Lustspiel...) und Haupthandlung (vgl. [[Metaphern malen]].<br><br>
# ''Einführung in die Metaphernarbeit ''<<br>>      Hier stellt der Moderator den Teilnehmern sieben Kategorien von Metaphern vor ([[Metaphern-Arbeit]]):
## //Metapher vom Ingenieur// — das Unternehmen als Maschine, Beispiel Schnellrestaurants.
## //Metapher von den Bedürfnissen und der [[Motivation]]// — die Vorstellung, dass Unternehmen nur funktionieren, wenn die Grundbedürfnisse der Menschen erfüllt sind, Beispiel Behörden.
## //Metapher vom Anpassen und Überleben// — hier ist das Unternehmen ganz auf die Erfüllung der Kundenbedürfnisse fixiert, Beispiel Werbeagenturen.
## //Metapher von der [[Unternehmenskultur]]// — diese wird als moralischer Anspruch erlebt und am Leben erhalten — Beispiel kirchliche Institutionen.
## //Metapher von der Unternehmenspolitik// — hier spielen Netzwerke zur Machtausübung eine wesentliche Rolle, Beispiel Konzernzentralen, Parteien.
## //Metapher von der Überlegenheit durch schnelle Informationsverarbeitung// — Unternehmen mit ausgeklügelten Informationssytemen, z.B. Call Center.
## //Metapher vom Unternehmen als psychischem Gefängnis// — wo das Geschäft immer irgendwie funktioniert und wo andere Sichtweisen als die verabredeten als abwegig wahrgenommen werden — z.B. gesetzliche Krankenversicherungen.<br><br>
# ''Reflexion'' <<br>>       Nun werden die vorbereiteten Geschichten nach dem Grad der Übereinstimmung mit den vorgestellten sieben Metaphern untersucht. Dabei vergeben die Teilnehmer für ihre eigenen Geschichten Prozentwerte, die sich zu 100% addieren.<br><br>
# ''Vertiefung und Analyse'' <<br>>       Diejenigen ~Metapher-Kategorien, die die höchsten Werte erzielt haben, werden in Kleingruppen analysiert bezüglich ihrer Vor- und Nachteile, wie sie Veränderungsprozesse bisher beeinflusst haben, wie sich [[Veränderungen|Organizational Change]] in Gang setzen lassen und was man tun kann, um Akzeptanz zu schaffen.<br><br>
# ''Präsentation der Ergebnisse'' <<br>>      Die Kleingruppen präsentiere ihre Ergebnisse.<br><br>
# ''Persönliche Konsequenz'' <<br>>       Jeder Teilnehmer bearbeitet die Fragen: Was bedeuten die Ergebnisse für mein Team? Welche konkreten Maßnahmen ergreife ich?

!Debriefing
 Jeder Teilnehmer bearbeitet die Fragen: Was bedeuten die Ergebnisse für mein Team? Welche konkreten Maßnahmen ergreife ich?

!Quelle
Susanne Alwart, in: [[Arnim Rohm: Change-Tools. Erfahrene Prozessberater präsentieren wirksame Workshop-Interventionen. managerSeminare GmbH, 2006.| http://rcm-de.amazon.de/e/cm?t=michaeltarnow-21&o=3&p=8&l=as1&asins=3936075395&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr%3Ca%20href=]].

!See also
* [[Auto-Metapher]]

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?db=3&to_parebene=Arbeit+mit+Metaphern+%28jt%29]]
* http://www.metaphern.de/
<data>{"abstract":"Um an die Meinung der [[Mitarbeiter]] zu gelangen, ist es meist besser, direkt mit ihnen zu sprechen als eine schriftliche Befragung zu veranstalten. Die sogn. [[Arbeitssituationserfassung]] ist eine Form der direkten [[Kommunikation]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.exavo.de/imtest/mitarbeiterbefragung.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Arbeitssituationserfassung","abstract") </script>

!Arbeitssituationserfassung
<script> return "<<tiddler [[Arbeitssituationserfassung##Overview]]>>" </script> 
Mitarbeiterbefragungen sind in der Regel aufwendig, liefern eine Menge Zahlenmaterial, das dann sehr interpretationsbedürftig ist und am Ende leider oft nicht zu wirklichen Veränderungen führt.

Ein Befragungsinstrument, das von Peter Nieder Mitte der 80er Jahre entwickelt und eingesetzt wurde, nennt sich [[Arbeitssituationserfassung]]. Gemeint ist eine Art moderierte Befragung, bei der ganze Gruppen mit zwei Fragen konfrontiert werden. 


!Objectives
* Mitarbeiterbefragungen 

!Timing
60min+

!Audience
Group

!Materials
* Flipchart

!Procedure
# Zunächst sollen die Teilnehmer bewerten, ob sie eine Verbesserung der persönlichen Arbeitssituation für sehr wichtig, teilweise wichtig oder nicht wichtig halten. 
# Dann werden sie aufgefordert zu sagen, in welchen Bereichen ihrer Arbeitssituation eine Verbesserung stattfinden sollte. Sie sollen zu den Themen Umgebung, Tätigkeit, [[Organisation]], Gruppenklima und Vorgesetztenverhalten jeweils zwei Stimmen abgeben, so dass eine zahlenmäßige Verteilung entsteht. 
Dies bietet die Möglichkeit, verschiedene Bereiche und Abteilungen im Unternehmen miteinander zu vergleichen. Doch wichtiger als die quantitativen Ergebnisse sind die qualitativen Aussagen, die nach dieser Abfrage gesammelt werden.<br> <br>
# Der Moderator beschränkt sich darauf, die Beiträge am ~Flip-Chart zu protokollieren. Diese Beiträge werden anschließend abgeschrieben und dem Auftraggeber übergeben.


!Debriefing
Den Abschluss der Methode bildet eine Gruppenarbeit, in der die drei wichtigsten Wünsche zur Veränderung erarbeitet und festgehalten werden. Ein einfaches und ohne Zweifel sehr pragmatisches Vorgehen, dass gegenüber schriftlichen Befragungen viele Vorteile hat und vor allem bei den Auftraggebern einen nachhaltigeren Eindruck hinterlassen dürfte.

!Quelle
Bernd Bitzer: Die Arbeitssituationserfassung, PERSONAL 8/2000 S.420-423.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Moderation]<<tiddlerList tags:"moderation,-newTemplate" header:"Übungen Moderation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Arbeitssituationserfassung+%28jt%29]]
/***
|Name|ArchivedTimeline|
|Version|0.2.0|
|Source|https://sourceforge.net/projects/ptw/|
|Author|[[BramChen]]|
|Type|Macro|
|~CoreVersion|1.8|
|Description|Timeline archived monthly.|
!Description
[[Timeline]] archived monthly.
!Syntax/Examples
>{{{<<archivedTimeline [modified | created]>>}}}

!Revision history
* v0.2.0 (Dec 26, 2005)
** changed for the new feature of Macro timeline of TW 2.0.0 beta 6
* v0.1.0 (Nov 3, 2005)
** Initial release.

!Code
***/
//{{{
version.extensions.archivedTimeline = {major: 0, minor: 2, revision: 0, date: new Date("Dec263, 2005")};

config.macros.archivedTimeline = {
 tooltips: "Archives sorted by ",
 msg : "The param of macro timeline should be 'created' or 'modified'",
 dateFormat: "YYYY-0MM-0DD"
};

config.macros.archivedTimeline.handler = function(place,macroName,params) {
 var field = params[0] ? params[0] : "modified";
 if (field != "modified" && field != "created") {
 displayMessage(config.macros.timeline.msg);
 return;
 }
 place.appendChild(document.createTextNode(this.tooltips + field));
 var tiddlers = store.reverseLookup("tags","excludeLists",false,field);
 var lastMonth = ""; var lastDay = ""; var theText = "----\n"; var i = 0;

 for (t=tiddlers.length-1; t>=0; t--) {
 var tiddler = tiddlers[t];
 theField = (field == "created") ? tiddler.created : tiddler.modified;
 var theMonth = theField.convertToYYYYMMDDHHMM().substr(0,6);
 var theDay = theField.convertToYYYYMMDDHHMM().substr(0,8); 
 if(theMonth != lastMonth) {
 if (lastMonth == "")
 lastMonth = theMonth;
 else {
 place.appendChild(document.createElement("hr")); 
 cookie = 'chktimeline'+(i++);
 archives = this.formatString(this.dateFormat, lastMonth);
 this.slider(place,cookie,theText,archives,this.tooltips + archives); 
 lastMonth = theMonth; theText = "----\n"; 
 }
 }
 if(theDay != lastDay){
 theText += theField.formatString(this.dateFormat) + '\n';
 lastDay = theDay; 
 }
 theText += '* [[' + tiddler.title + ']]\n'; 
 }
 place.appendChild(document.createElement("hr"));
 cookie = 'chktimeline'+(i++);
 archives = this.formatString(this.dateFormat, lastMonth);
 this.slider(place,cookie,theText,archives,this.tooltips + archives); 
 place.appendChild(document.createElement("hr"));
}

config.macros.archivedTimeline.onClickSlider = config.macros.slider.onClickSlider;

config.macros.archivedTimeline.slider = function(place,cookie,text,id,tooltips)
{
 var btn = createTiddlyButton(place,id,tooltips,this.onClickSlider); 
 var panel = createTiddlyElement(place,"div",null,"archivedTimelineSliderPanel",null);
 panel.setAttribute("cookie",cookie);
 panel.style.display = config.options[cookie] ? "block" : "none";
 if(text)
 wikify(text,panel);
}

config.macros.archivedTimeline.formatString = function(template, yyyymm)
{
 dateString = new Date(yyyymm.substr(0,4)+'/'+yyyymm.substr(4,2)+'/01');
 template = template.replace(/DDD|0DD|DD|hh|mm|ss/g,'');
 return dateString.formatString(template);
}
//}}}
/***
|Name|AttachFilePlugin|
|Source|http://www.TiddlyTools.com/#AttachFilePlugin|
|Documentation|http://www.TiddlyTools.com/#AttachFilePluginInfo|
|Version|4.0.0|
|Author|[[EricShulman]]|
|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|AttachFilePluginFormatters, AttachFileMIMETypes|
|Overrides||
|Description|Store binary files as base64-encoded tiddlers with fallback links for separate local and/or remote file storage|
Store or link binary files (such as jpg, gif, pdf or even mp3) within your TiddlyWiki document and then use them as images or links from within your tiddler content.
> Important note: As of version 3.6.0, in order to //render// images and other binary attachments created with this plugin, you must also install [[AttachFilePluginFormatters]], which extends the behavior of the TiddlyWiki core formatters for embedded images ({{{[img[tooltip|image]]}}}), linked embedded images ({{{[img[tooltip|image][link]]}}}), and external/"pretty" links ({{{[[label|link]]}}}), so that these formatter will process references to attachment tiddlers as if a normal file reference had been provided. |
!!!!!Documentation
>see [[AttachFilePluginInfo]]
!!!!!Inline interface (live)
>see [[AttachFile]] (shadow tiddler)
><<tiddler AttachFile>>
!!!!!Revisions
<<<
2009.06.04 [4.0.0] changed attachment storage format to use //sections// instead of embedded substring markers.
|please see [[AttachFilePluginInfo]] for additional revision details|
2005.07.20 [1.0.0] Initial Release
<<<
!!!!!Code
***/
// // version
//{{{
version.extensions.AttachFilePlugin= {major: 4, minor: 0, revision: 0, date: new Date(2009,6,4)};

// shadow tiddler
config.shadowTiddlers.AttachFile="<<attach inline>>";

// add 'attach' backstage task (insert before built-in 'importTask')
if (config.tasks) { // for TW2.2b or above
	config.tasks.attachTask = {
		text: "attach",
		tooltip: "Attach a binary file as a tiddler",
		content: "<<attach inline>>"
	}
	config.backstageTasks.splice(config.backstageTasks.indexOf("importTask"),0,"attachTask");
}

config.macros.attach = {
// // lingo
//{{{
	label: "attach file",
	tooltip: "Attach a file to this document",
	linkTooltip: "Attachment: ",

	typeList: "AttachFileMIMETypes",

	titlePrompt: " enter tiddler title...",
	MIMEPrompt: "<option value=''>select MIME type...</option><option value='editlist'>[edit list...]</option>",
	localPrompt: " enter local path/filename...",
	URLPrompt: " enter remote URL...",

	tiddlerErr: "Please enter a tiddler title",
	sourceErr: "Please enter a source path/filename",
	storageErr: "Please select a storage method: embedded, local or remote",
	MIMEErr: "Unrecognized file format.  Please select a MIME type",
	localErr: "Please enter a local path/filename",
	URLErr: "Please enter a remote URL",
	fileErr: "Invalid path/file or file not found",

	tiddlerFormat: '!usage\n{{{%0}}}\n%0\n!notes\n%1\n!type\n%2\n!file\n%3\n!url\n%4\n!data\n%5\n',

//}}}
// // macro definition
//{{{
	handler:
	function(place,macroName,params) {
		if (params && !params[0])
			{ createTiddlyButton(place,this.label,this.tooltip,this.toggleAttachPanel); return; }
		var id=params.shift();
		this.createAttachPanel(place,id+"_attachPanel",params);
		document.getElementById(id+"_attachPanel").style.position="static";
		document.getElementById(id+"_attachPanel").style.display="block";
	},
//}}}
//{{{
	createAttachPanel:
	function(place,panel_id,params) {
		if (!panel_id || !panel_id.length) var panel_id="_attachPanel";
		// remove existing panel (if any)
		var panel=document.getElementById(panel_id); if (panel) panel.parentNode.removeChild(panel);
		// set styles for this panel
		setStylesheet(this.css,"attachPanel");
		// create new panel
		var title=""; if (params && params[0]) title=params.shift();
		var types=this.MIMEPrompt+this.formatListOptions(store.getTiddlerText(this.typeList)); // get MIME types
		panel=createTiddlyElement(place,"span",panel_id,"attachPanel",null);
		var html=this.html.replace(/%id%/g,panel_id);
		html=html.replace(/%title%/g,title);
		html=html.replace(/%disabled%/g,title.length?"disabled":"");
		html=html.replace(/%IEdisabled%/g,config.browser.isIE?"disabled":"");
		html=html.replace(/%types%/g,types);
		panel.innerHTML=html;
		if (config.browser.isGecko) { // FF3 FIXUP
			document.getElementById("attachSource").style.display="none";
			document.getElementById("attachFixPanel").style.display="block";
		}
		return panel;
	},
//}}}
//{{{
	toggleAttachPanel:
	function (e) {
		if (!e) var e = window.event;
		var parent=resolveTarget(e).parentNode;
		var panel = document.getElementById("_attachPanel");
		if (panel==undefined || panel.parentNode!=parent)
			panel=config.macros.attach.createAttachPanel(parent,"_attachPanel");
		var isOpen = panel.style.display=="block";
		if(config.options.chkAnimate)
			anim.startAnimating(new Slider(panel,!isOpen,e.shiftKey || e.altKey,"none"));
		else
			panel.style.display = isOpen ? "none" : "block" ;
		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
		return(false);
	},
//}}}
//{{{
	formatListOptions:
	function(text) {
		if (!text || !text.trim().length) return "";
		// get MIME list content from text
		var parts=text.split("\n----\n");
		var out="";
		for (var p=0; p<parts.length; p++) {
			var lines=parts[p].split("\n");
			var label=lines.shift(); // 1st line=display text
			var value=lines.shift(); // 2nd line=item value
			out +='<option value="%1">%0</option>'.format([label,value]);
		}
		return out;
	},
//}}}
// // interface definition
//{{{
	css:
	".attachPanel { display: none; position:absolute; z-index:10; width:35em; right:105%; top:0em;\
		background-color: #eee; color:#000; font-size: 8pt; line-height:110%;\
		border:1px solid black; border-bottom-width: 3px; border-right-width: 3px;\
		padding: 0.5em; margin:0em; -moz-border-radius:1em;-webkit-border-radius:1em; text-align:left }\
	.attachPanel form { display:inline;border:0;padding:0;margin:0; }\
	.attachPanel select { width:99%;margin:0px;font-size:8pt;line-height:110%;}\
	.attachPanel input  { width:98%;padding:0px;margin:0px;font-size:8pt;line-height:110%}\
	.attachPanel textarea { width:98%;margin:0px;height:2em;font-size:8pt;line-height:110%}\
	.attachPanel table { width:100%;border:0;margin:0;padding:0;color:inherit; }\
	.attachPanel tbody, .attachPanel tr, .attachPanel td { border:0;margin:0;padding:0;color:#000; }\
	.attachPanel .box { border:1px solid black; padding:.3em; margin:.3em 0px; background:#f8f8f8; \
		-moz-border-radius:5px;-webkit-border-radius:5px; }\
	.attachPanel .chk { width:auto;border:0; }\
	.attachPanel .btn { width:auto; }\
	.attachPanel .btn2 { width:49%; }\
	",
//}}}
//{{{
	html:
	'<form>\
		attach from source file\
		<input type="file" id="attachSource" name="source" size="56"\
			onChange="config.macros.attach.onChangeSource(this)">\
		<div id="attachFixPanel" style="display:none"><!-- FF3 FIXUP -->\
			<input type="text" id="attachFixSource" style="width:90%"\
				title="Enter a path/file to attach"\
				onChange="config.macros.attach.onChangeSource(this);">\
			<input type="button" style="width:7%" value="..."\
				title="Enter a path/file to attach"\
				onClick="config.macros.attach.askForFilename(document.getElementById(\'attachFixSource\'));">\
		</div><!--end FF3 FIXUP-->\
		<div class="box">\
		<table style="border:0"><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			embed data <input type=checkbox class=chk name="useData" %IEdisabled% \
				onclick="if (!this.form.MIMEType.value.length)\
					this.form.MIMEType.selectedIndex=this.checked?1:0; ">&nbsp;\
		</td><td style="border:0">\
			<select size=1 name="MIMEType" \
				onchange="this.title=this.value; if (this.value==\'editlist\')\
					{ this.selectedIndex=this.form.useData.checked?1:0; story.displayTiddler(null,config.macros.attach.typeList,2); return; }">\
				<option value=""></option>\
				%types%\
			</select>\
		</td></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			local link <input type=checkbox class=chk name="useLocal"\
				onclick="this.form.local.value=this.form.local.defaultValue=this.checked?config.macros.attach.localPrompt:\'\';">&nbsp;\
		</td><td style="border:0">\
			<input type=text name="local" size=15 autocomplete=off value=""\
				onchange="this.form.useLocal.checked=this.value.length" \
				onkeyup="this.form.useLocal.checked=this.value.length" \
				onfocus="if (!this.value.length) this.value=config.macros.attach.localPrompt; this.select()">\
		</td></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			remote link <input type=checkbox class=chk name="useURL"\
				onclick="this.form.URL.value=this.form.URL.defaultValue=this.checked?config.macros.attach.URLPrompt:\'\';\">&nbsp;\
		</td><td style="border:0">\
			<input type=text name="URL" size=15 autocomplete=off value=""\
				onfocus="if (!this.value.length) this.value=config.macros.attach.URLPrompt; this.select()"\
				onchange="this.form.useURL.checked=this.value.length;"\
				onkeyup="this.form.useURL.checked=this.value.length;">\
		</td></tr></table>\
		</div>\
		<table style="border:0"><tr style="border:0"><td style="border:0;text-align:right;vertical-align:top;width:1%;white-space:nowrap">\
			notes&nbsp;\
		</td><td style="border:0" colspan=2>\
			<textarea name="notes" style="width:98%;height:3.5em;margin-bottom:2px"></textarea>\
		</td><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			attach as&nbsp;\
		</td><td style="border:0" colspan=2>\
			<input type=text name="tiddlertitle" size=15 autocomplete=off value="%title%"\
				onkeyup="if (!this.value.length) { this.value=config.macros.attach.titlePrompt; this.select(); }"\
				onfocus="if (!this.value.length) this.value=config.macros.attach.titlePrompt; this.select()" %disabled%>\
		</td></tr></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			add tags&nbsp;\
		</td><td style="border:0">\
			<input type=text name="tags" size=15 autocomplete=off value="" onfocus="this.select()">\
		</td><td style="width:40%;text-align:right;border:0">\
			<input type=button class=btn2 value="attach"\
				onclick="config.macros.attach.onClickAttach(this)"><!--\
			--><input type=button class=btn2 value="close"\
				onclick="var panel=document.getElementById(\'%id%\'); if (panel) panel.parentNode.removeChild(panel);">\
		</td></tr></table>\
	</form>',
//}}}
// // control processing
//{{{
	onChangeSource:
	function(here) {
		var form=here.form;
		var list=form.MIMEType;
		var theFilename  = here.value;
		var theExtension = theFilename.substr(theFilename.lastIndexOf('.')).toLowerCase();
		// if theFilename is in current document folder, remove path prefix and use relative reference
		var h=document.location.href; folder=getLocalPath(decodeURIComponent(h.substr(0,h.lastIndexOf("/")+1)));
		if (theFilename.substr(0,folder.length)==folder) theFilename='./'+theFilename.substr(folder.length);
		else theFilename='file:///'+theFilename; // otherwise, use absolute reference
		theFilename=theFilename.replace(/\\/g,"/"); // fixup: change \ to /
		form.useLocal.checked = true;
		form.local.value = theFilename;
		form.useData.checked = !form.useData.disabled;
		list.selectedIndex=1;
		for (var i=0; i<list.options.length; i++) // find matching MIME type
			if (list.options[i].value.indexOf(theExtension)!=-1) { list.selectedIndex = i; break; }
		if (!form.tiddlertitle.disabled)
			form.tiddlertitle.value=theFilename.substr(theFilename.lastIndexOf('/')+1); // get tiddlername from filename
	},
//}}}
//{{{
	onClickAttach:
	function (here) {
		clearMessage();
		// get input values
		var form=here.form;
		var src=form.source; if (config.browser.isGecko) src=document.getElementById("attachFixSource");
		src=src.value!=src.defaultValue?src.value:"";
		var when=(new Date()).formatString(config.macros.timeline.dateFormat);
		var title=form.tiddlertitle.value;
		var local = form.local.value!=form.local.defaultValue?form.local.value:"";
		var url = form.URL.value!=form.URL.defaultValue?form.URL.value:"";
		var notes = form.notes.value;
		var tags = "attachment excludeMissing "+form.tags.value;
		var useData=form.useData.checked;
		var useLocal=form.useLocal.checked;
		var useURL=form.useURL.checked;
		var mimetype = form.MIMEType.value.length?form.MIMEType.options[form.MIMEType.selectedIndex].text:"";
		// validate checkboxes and get filename
		if (useData) {
			if (src.length) { if (!theLocation) var theLocation=src; }
			else { alert(this.sourceErr); src.focus(); return false; }
		}
		if (useLocal) {
			if (local.length) { if (!theLocation) var theLocation = local; }
			else { alert(this.localErr); form.local.focus(); return false; }
		}
		if (useURL) {
			if (url.length) { if (!theLocation) var theLocation = url; }
			else { alert(this.URLErr); form.URL.focus(); return false; }
		}
		if (!(useData||useLocal||useURL))
			{ form.useData.focus(); alert(this.storageErr); return false; }
		if (!theLocation)
			{ src.focus(); alert(this.sourceErr); return false; }
		if (!title || !title.trim().length || title==this.titlePrompt)
			{ form.tiddlertitle.focus(); alert(this.tiddlerErr); return false; }
		// if not already selected, determine MIME type based on filename extension (if any)
		if (useData && !mimetype.length && theLocation.lastIndexOf('.')!=-1) {
			var theExt = theLocation.substr(theLocation.lastIndexOf('.')).toLowerCase();
			var theList=form.MIMEType;
			for (var i=0; i<theList.options.length; i++)
				if (theList.options[i].value.indexOf(theExt)!=-1)
					{ var mimetype=theList.options[i].text; theList.selectedIndex=i; break; }
		}
		// attach the file
		return this.createAttachmentTiddler(src, when, notes, tags, title,
			useData, useLocal, useURL, local, url, mimetype);
	},
	getMIMEType:
	function(src,def) {
		var ext = src.substr(src.lastIndexOf('.')).toLowerCase();
		var list=store.getTiddlerText(this.typeList);
		if (!list || !list.trim().length) return def;
		// get MIME list content from tiddler
		var parts=list.split("\n----\n");
		for (var p=0; p<parts.length; p++) {
			var lines=parts[p].split("\n");
			var mime=lines.shift(); // 1st line=MIME type
			var match=lines.shift(); // 2nd line=matching extensions
			if (match.indexOf(ext)!=-1) return mime;
		}
		return def;
	},
	createAttachmentTiddler:
	function (src, when, notes, tags, title, useData, useLocal, useURL, local, url, mimetype, noshow) {
		if (useData) { // encode the data
			if (!mimetype.length) {
				alert(this.MIMEErr);
				form.MIMEType.selectedIndex=1; form.MIMEType.focus();
				return false;
			}
			var d = this.readFile(src); if (!d) { return false; }
			displayMessage('encoding '+src);
			var encoded = this.encodeBase64(d);
			displayMessage('file size='+d.length+' bytes, encoded size='+encoded.length+' bytes');
		}
		var usage=(mimetype.substr(0,5)=="image"?'[img[%0]]':'[[%0|%0]]').format([title]);
		var theText=this.tiddlerFormat.format([
			usage, notes.length?notes:'//none//', mimetype,
			useLocal?local.replace(/\\/g,'/'):'', useURL?url:'',
			useData?('data:'+mimetype+';base64,'+encoded):'' ]);
		store.saveTiddler(title,title,theText,config.options.txtUserName,new Date(),tags);
		var panel=document.getElementById("attachPanel"); if (panel) panel.style.display="none";
		if (!noshow) { story.displayTiddler(null,title); story.refreshTiddler(title,null,true); }
		displayMessage('attached "'+title+'"');
		return true;
	},
//}}}
// // base64 conversion
//{{{
	encodeBase64:
	function (d) {
		if (!d) return null;
		// encode as base64
		var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
		var out="";
		var chr1,chr2,chr3="";
		var enc1,enc2,enc3,enc4="";
		for (var count=0,i=0; i<d.length; ) {
			chr1=d.charCodeAt(i++);
			chr2=d.charCodeAt(i++);
			chr3=d.charCodeAt(i++);
			enc1=chr1 >> 2;
			enc2=((chr1 & 3) << 4) | (chr2 >> 4);
			enc3=((chr2 & 15) << 2) | (chr3 >> 6);
			enc4=chr3 & 63;
			if (isNaN(chr2)) enc3=enc4=64;
			else if (isNaN(chr3)) enc4=64;
			out+=keyStr.charAt(enc1)+keyStr.charAt(enc2)+keyStr.charAt(enc3)+keyStr.charAt(enc4);
			chr1=chr2=chr3=enc1=enc2=enc3=enc4="";
		}
		return out;
	},
	decodeBase64: function(input) {
		var out="";
		var chr1,chr2,chr3;
		var enc1,enc2,enc3,enc4;
		var i = 0;
		// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
		input=input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
		do {
			enc1=keyStr.indexOf(input.charAt(i++));
			enc2=keyStr.indexOf(input.charAt(i++));
			enc3=keyStr.indexOf(input.charAt(i++));
			enc4=keyStr.indexOf(input.charAt(i++));
			chr1=(enc1 << 2) | (enc2 >> 4);
			chr2=((enc2 & 15) << 4) | (enc3 >> 2);
			chr3=((enc3 & 3) << 6) | enc4;
			out=out+String.fromCharCode(chr1);
			if (enc3!=64) out=out+String.fromCharCode(chr2);
			if (enc4!=64) out=out+String.fromCharCode(chr3);
		} while (i<input.length);
		return out;
	},
//}}}
// // I/O functions
//{{{
	readFile: // read local BINARY file data
	function(filePath) {
		if(!window.Components) { return null; }
		try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); }
		catch(e) { alert("access denied: "+filePath); return null; }
		var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
		try { file.initWithPath(filePath); } catch(e) { alert("cannot read file - invalid path: "+filePath); return null; }
		if (!file.exists()) { alert("cannot read file - not found: "+filePath); return null; }
		var inputStream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
		inputStream.init(file, 0x01, 00004, null);
		var bInputStream = Components.classes["@mozilla.org/binaryinputstream;1"].createInstance(Components.interfaces.nsIBinaryInputStream);
		bInputStream.setInputStream(inputStream);
		return(bInputStream.readBytes(inputStream.available()));
	},
//}}}
//{{{
	writeFile:
	function(filepath,data) {
		// TBD: decode base64 and write BINARY data to specified local path/filename
		return(false);
	},
//}}}
//{{{
	askForFilename: // for FF3 fixup
	function(target) {
		var msg=config.messages.selectFile;
		if (target && target.title) msg=target.title; // use target field tooltip (if any) as dialog prompt text
		// get local path for current document
		var path=getLocalPath(document.location.href);
		var p=path.lastIndexOf("/"); if (p==-1) p=path.lastIndexOf("\\"); // Unix or Windows
		if (p!=-1) path=path.substr(0,p+1); // remove filename, leave trailing slash
		var file=""
		var result=window.mozAskForFilename(msg,path,file,true); // FF3 FIXUP ONLY
		if (target && result.length) // set target field and trigger handling
			{ target.value=result; target.onchange(); }
		return result; 
	}
};
//}}}
//{{{
if (window.mozAskForFilename===undefined) { // also defined by CoreTweaks (for ticket #604)
	window.mozAskForFilename=function(msg,path,file,mustExist) {
		if(!window.Components) return false;
		try {
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
			var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
			var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
			picker.init(window, msg, mustExist?nsIFilePicker.modeOpen:nsIFilePicker.modeSave);
			var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
			thispath.initWithPath(path);
			picker.displayDirectory=thispath;
			picker.defaultExtension='';
			picker.defaultString=file;
			picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
			if (picker.show()!=nsIFilePicker.returnCancel)
				var result=picker.file.persistentDescriptor;
		}
		catch(ex) { displayMessage(ex.toString()); }
		return result;
	}
}
//}}}
/***
|Name|AttachFilePluginFormatters|
|Source|http://www.TiddlyTools.com/#AttachFilePluginFormatters|
|Version|4.0.1|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1.3|
|Type|plugin|
|Description|run-time library for displaying attachment tiddlers|
Runtime processing for //rendering// attachment tiddlers created by [[AttachFilePlugin]].   Attachment tiddlers are tagged with<<tag attachment>>and contain binary file content (e.g., jpg, gif, pdf, mp3, etc.) that has been stored directly as base64 text-encoded data or can be loaded from external files stored on a local filesystem or remote web server.  Note: after creating new attachment tiddlers, you can remove [[AttachFilePlugin]], as long as you retain //this// tiddler (so that images can be rendered later on).
!!!!!Formatters
<<<
This plugin extends the behavior of the following TiddlyWiki core "wikify()" formatters:
* embedded images: {{{[img[tooltip|image]]}}}
* linked embedded images: {{{[img[tooltip|image][link]]}}}
* external/"pretty" links: {{{[[label|link]]}}}
''Please refer to AttachFilePlugin (source: http://www.TiddlyTools.com/#AttachFilePlugin) for additional information.''
<<<
!!!!!Revisions
<<<
2009.10.10 [4.0.1] in fileExists(), check for IE to avoid hanging Chrome during startup
2009.06.04 [4.0.0] changed attachment storage format to use //sections// instead of embedded substring markers.
2008.01.08 [*.*.*] plugin size reduction: documentation moved to …Info
2007.12.04 [*.*.*] update for TW2.3.0: replaced deprecated core functions, regexps, and macros
2007.10.29 [3.7.0] more code reduction: removed upload handling from AttachFilePlugin (saves ~7K!)
2007.10.28 [3.6.0] removed duplicate formatter code from AttachFilePlugin (saves ~10K!) and updated documentation accordingly.  This plugin ([[AttachFilePluginFormatters]]) is now //''required''// in order to display attached images/binary files within tiddler content.
2006.05.20 [3.4.0] through 2007.03.01 [3.5.3] sync with AttachFilePlugin
2006.05.13 [3.2.0] created from AttachFilePlugin v3.2.0
<<<
!!!!!Code
***/
// // version
//{{{
version.extensions.AttachFilePluginFormatters= {major: 4, minor: 0, revision: 1, date: new Date(2009,10,10)};
//}}}

//{{{
if (config.macros.attach==undefined) config.macros.attach= { };
//}}}
//{{{
if (config.macros.attach.isAttachment==undefined) config.macros.attach.isAttachment=function (title) {
	var tiddler = store.getTiddler(title);
	if (tiddler==undefined || tiddler.tags==undefined) return false;
	return (tiddler.tags.indexOf("attachment")!=-1);
}
//}}}

//{{{
// test for local file existence - returns true/false without visible error display
if (config.macros.attach.fileExists==undefined) config.macros.attach.fileExists=function(f) {
	if(window.Components) { // MOZ
		try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); }
		catch(e) { return false; } // security access denied
		var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
		try { file.initWithPath(f); }
		catch(e) { return false; } // invalid directory
		return file.exists();
	}
	else if (config.browser.isIE) { // IE
		var fso = new ActiveXObject("Scripting.FileSystemObject");
		return fso.FileExists(f);
	}
	else return true; // other browsers: assume file exists
}
//}}}

//{{{
if (config.macros.attach.getAttachment==undefined) config.macros.attach.getAttachment=function(title) {

	// extract embedded data, local and remote links (if any)
	var text=store.getTiddlerText(title,'');
	var embedded=store.getTiddlerText(title+'##data','').trim();
	var locallink=store.getTiddlerText(title+'##file','').trim();
	var remotelink=store.getTiddlerText(title+'##url','').trim();

	// backward-compatibility for older attachments (pre 4.0.0)
	var startmarker="---BEGIN_DATA---\n";
	var endmarker="\n---END_DATA---";
	var pos=0; var endpos=0;
	if ((pos=text.indexOf(startmarker))!=-1 && (endpos=text.indexOf(endmarker))!=-1)
		embedded="data:"+(text.substring(pos+startmarker.length,endpos)).replace(/\n/g,'');
	if ((pos=text.indexOf("/%LOCAL_LINK%/"))!=-1)
		locallink=text.substring(text.indexOf("|",pos)+1,text.indexOf("]]",pos));
	if ((pos=text.indexOf("/%REMOTE_LINK%/"))!=-1)
		remotelink=text.substring(text.indexOf("|",pos)+1,text.indexOf("]]",pos));

	// if there is a data: URI defined (not supported by IE)
	if (embedded.length && !config.browser.isIE) return embedded;

	// document is being served remotely… use remote URL (if any)  (avoids security alert)
	if (remotelink.length && document.location.protocol!="file:")
		return remotelink;  

	// local link only… return link without checking file existence (avoids security alert)
	if (locallink.length && !remotelink.length) 
		return locallink; 

	// local link, check for file exist… use local link if found
	if (locallink.length) { 
		locallink=locallink.replace(/^\.[\/\\]/,''); // strip leading './' or '.\' (if any)
		if (this.fileExists(getLocalPath(locallink))) return locallink;
		// maybe local link is relative… add path from current document and try again
		var pathPrefix=document.location.href;  // get current document path and trim off filename
		var slashpos=pathPrefix.lastIndexOf("/"); if (slashpos==-1) slashpos=pathPrefix.lastIndexOf("\\"); 
		if (slashpos!=-1 && slashpos!=pathPrefix.length-1) pathPrefix=pathPrefix.substr(0,slashpos+1);
		if (this.fileExists(getLocalPath(pathPrefix+locallink))) return locallink;
	}

	// no embedded data, no local (or not found), fallback to remote URL (if any)
	if (remotelink.length) return remotelink;

	// attachment URL doesn't resolve, just return input as is
	return title;
}
//}}}
//{{{
if (config.macros.attach.init_formatters==undefined) config.macros.attach.init_formatters=function() {
	if (this.initialized) return;

	// find the formatter for "image" and replace the handler
	for (var i=0; i<config.formatters.length && config.formatters[i].name!="image"; i++);
	if (i<config.formatters.length)	config.formatters[i].handler=function(w) {
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) // Simple bracketted link
			{
			var e = w.output;
			if(lookaheadMatch[5])
				{
				var link = lookaheadMatch[5];
				// ELS -------------
				var external=config.formatterHelpers.isExternalLink(link);
				if (external)
					{
					if (config.macros.attach.isAttachment(link))
						{
						e = createExternalLink(w.output,link);
						e.href=config.macros.attach.getAttachment(link);
						e.title = config.macros.attach.linkTooltip + link;
						}
					else
						e = createExternalLink(w.output,link);
					}
				else 
					e = createTiddlyLink(w.output,link,false,null,w.isStatic);
				// ELS -------------
				addClass(e,"imageLink");
				}
			var img = createTiddlyElement(e,"img");
			if(lookaheadMatch[1])
				img.align = "left";
			else if(lookaheadMatch[2])
				img.align = "right";
			if(lookaheadMatch[3])
				img.title = lookaheadMatch[3];
			img.src = lookaheadMatch[4];
			// ELS -------------
			if (config.macros.attach.isAttachment(lookaheadMatch[4]))
				img.src=config.macros.attach.getAttachment(lookaheadMatch[4]);
			// ELS -------------
			w.nextMatch = this.lookaheadRegExp.lastIndex;
		}
	}
//}}}
//{{{
	// find the formatter for "prettyLink" and replace the handler
	for (var i=0; i<config.formatters.length && config.formatters[i].name!="prettyLink"; i++);
	if (i<config.formatters.length)	{
		config.formatters[i].handler=function(w) {
			this.lookaheadRegExp.lastIndex = w.matchStart;
			var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
			if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
				var e;
				var text = lookaheadMatch[1];
				if(lookaheadMatch[3]) {
					// Pretty bracketted link
					var link = lookaheadMatch[3];
					if (config.macros.attach.isAttachment(link)) {
						e = createExternalLink(w.output,link);
						e.href=config.macros.attach.getAttachment(link);
						e.title=config.macros.attach.linkTooltip+link;
					}
					else e = (!lookaheadMatch[2] && config.formatterHelpers.isExternalLink(link))
						? createExternalLink(w.output,link)
						: createTiddlyLink(w.output,link,false,null,w.isStatic);
				} else {
					e = createTiddlyLink(w.output,text,false,null,w.isStatic);
				}
				createTiddlyText(e,text);
				w.nextMatch = this.lookaheadRegExp.lastIndex;
			}
		}
	} // if "prettyLink" formatter found
	this.initialized=true;
}
//}}}
//{{{
config.macros.attach.init_formatters(); // load time init
//}}}
//{{{
if (TiddlyWiki.prototype.coreGetRecursiveTiddlerText==undefined) {
	TiddlyWiki.prototype.coreGetRecursiveTiddlerText = TiddlyWiki.prototype.getRecursiveTiddlerText;
	TiddlyWiki.prototype.getRecursiveTiddlerText = function(title,defaultText,depth) {
		return config.macros.attach.isAttachment(title)?
			config.macros.attach.getAttachment(title):this.coreGetRecursiveTiddlerText.apply(this,arguments);
	}
}
//}}}
<data>{"abstract":"Unsere [[Körpersprache|Body language]] verrät viel über unser Innenleben. Die einfache Übung [[Audienz beim Papst]] zum Einsatz im Seminar lässt das gut sichtbar werden."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://www.burri-schuermann.ch/entertainment/pictures/papstaudienz.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Audienz beim Papst","abstract") </script>

!Audienz beim Papst
<script> return "<<tiddler [[Audienz beim Papst##Overview]]>>" </script> 
Wenn wir auf andere Menschen zugehen (oder diese auf uns), drücken wir immer unsere Gefühlslage durch unsere [[Körpersprache|Body language]] aus. Es kann sehr nützlich sein, sich über die Wirkung unserer Körpersignale bewusst zu sein bzw. unsere Gefühle eben durch die Körpersprache gezielt zu unterstreichen. 

!Objectives
* Präsentationstraining: Körpersprache trainieren.
* Bewerbungstraining: Körperausdrucks bewusst werden.
* Gesprächsführungsseminar:Kontakt bekommen.
* Sprachtraining: Worte üben/wiederholen. 

!Timing
1h

!Audience
Group

!Materials
* Kartenspiel mit vorbereiteten Begriffskarten

!Procedure
Zunächst wird im Raum die Szene, die gestaltet werden soll, aufgebaut, z.B. der Schreibtisch des [[Vorgesetzten|Führung]] und der Stuhl davor. 
Auf einem Tisch liegt verdeckt ein Stapel mit Karten (siehe auch [[Aufstellung mit Karten]], [[Nonverbales Kartenspiel]]) jede der Karten enthält einen Begriff für einen Gefühlszustand (Ärger, Freude, Unsicherheit...). 
Jeder Teilnehmer zieht eine Karte. 
Sodann setzt sich einer als Vorgesetzter hinter den Schreibtisch, der erste Teilnehmer geht vor die Tür, kommt dann in dem "gezogenen" Gefühlszustand herein und begrüßt den Vorgesetzten. Dieser reagiert spontan. Danach kommt der nächste Teilnehmer herein.

!Variations
Variationen dieser Übung gibt es viele. Statt zum Vorgesetzten kann man zum Bewerbungsgespräch kommen, auf eine Bühne zur Präsentation, auf eine Menschengruppe zugehen, auf "Prominente" zugehen (z.B. den Papst) — je nach Zielsetzung des Trainings.

!Debriefing
Nach jedem Auftritt wird kurz angehalten, applaudiert und die Szene ausgewertet. Fragen hierbei können sein:
* Welche Gefühle haben wir wahrgenommen?
* Was lösten die Gefühle aus?
* Was kann man tun, um in einen guten Kontakt zu kommen?


!Quelle
[[Amelie Funcke: Vorstellbar, managerSeminare 2006, S. 187/188| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FVorstellbar-Methoden-Schauspielern-Regisseuren-normalen%2Fdp%2F3936075441%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214446177%26sr%3D8-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?db=3&to_parebene=Audienz+beim+Papst+%28jt%29]]
* [[Unesco, freie Lernressourcen| www.opentrainingplatform.org]]
<data>{"abstract":"Coaches, die ihren Klienten keine Fragen stellen möchten, können diese alternativ auch //sitzen lassen//: das [[Coaching-Tool|Coaching]] [[Auf mehreren Stühlen]] beschreibt, wie der Coach die [[Entscheidungsfindung|Decision Making]] beim Klienten erleichtern kann, indem er Stühle als Hilfsmittel nutzt."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.nerdcore.de/wp/wp-content/uploads/2009/03/stuhlbein.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Auf mehreren Stühlen","abstract") </script>

!Auf mehreren Stühlen
<script> return "<<tiddler [[Auf mehreren Stühlen##Overview]]>>" </script> 
Mit dem Tool [[Auf mehreren Stühlen]] können unterschiedliche Strebungen externalisiert, Ressourcen und Kompetenzen internalisiert und neue Wirklichkeitskonstruktionen angeregt werden.
Die Methode wird mit dem Ziel angeboten, dem Klienten dabei hilfreich zu sein, Wege von einer "Entweder-oder"-Logik zu einer "Sowohl-als-auch"-Logik (er-)finden zu können sowie Vor- und Nachteile verschiedener Entscheidungsmöglichkeiten auf der "Probebühne [[Coaching]]" zu reflektieren und auch körperlich zu empfinden.
Darüber hinaus kann der Klient dadurch dazu angeregt werden, völlig neue — bislang undenkbare — Optionen zu entwickeln. Kommt es zu einer Vergrößerung des Spektrums von für den Klienten auswählbaren Möglichkeiten, so erreicht dieser in der Folge eine neue Handlungsfähigkeit.


!Objectives
* Wandlung einer "Entweder-oder"-Logik zu einer "Sowohl-als-auch"-Logik
* Vor- und Nachteile verschiedener Entscheidungsmöglichkeiten zu reflektieren und auch körperlich zu empfinden.
* Entwicklung völlig neuer — bislang undenkbarer — Optionen 

!Timing
45min+

!Audience
Group

!Materials
* mehrere Stühle

!Procedure


!Debriefing


!Quelle
Thomas Hansmann: Auf mehreren Stühlen, in: [[Christopher Rauen (Hrsg.): Coaching-Tools: Erfolgreiche Coaches präsentieren 60 Interventionstechniken aus ihrer Coaching-Praxis, Managerseminare Verlag, 2008| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FCoaching-Tools-Erfolgreiche-pr%25C3%25A4sentieren-Interventionstechniken-Coaching-Praxis%2Fdp%2F3936075182%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1216165913%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]], S.227-231.


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[Zur Homepage von Thomas Hansmann… | http://www.wu-wien.ac.at/intranet/einrichtungen/pe/coach/hansmann]]
<data>{"abstract":"[[Aufstellungen|Aufstellung]] auch im Einzelcoaching einsetzen? Das geht, und zwar mit [[Bodenankern|Aufstellung mit Bodenankern]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.playteam.de/cms/images/bodenanker.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Aufstellung mit Bodenankern","abstract") </script>
[[Organisationsaufstellungen|Organisationsaufstellung]] auch im Einzelcoaching einsetzen? Das geht, und zwar mit [[Bodenankern|Bodenanker]], einer speziellen [[NLP-Technik|Neuro-Linguistische-Programmierung]] des [[Ankers|Ankern - Anchoring]] .

!Aufstellung mit Bodenankern
<script> return "<<tiddler [[Aufstellung mit Bodenankern##Overview]]>>" </script>

!Objectives
* Bewußtwerden systemischer Zusammenhänge von (Konflikt)Situationen.

!Timing
30min-60min

!Audience
Group / Individual


!Materials
* Moderationskarten (wahlweise auch andere Symbole wie Klötze, Gläser, Stühle, ~Post-Its) 

!Procedure
# Der Coachee platziert Moderationskarten (wahlweise auch andere Symbole wie Klötze, Gläser, Stühle, ~Post-Its) stellvertretend für die verschiedenen Systemteile, die an seiner Situation beteiligt sind, so im Raum, wie er sie erlebt. <br>Dabei wird auch die Richtung gekennzeichnet, in die diese blicken.
# Anschließend stellt er sich selbst nach und nach auf die eingenommen Plätze und spürt seinen Eindrücken und Gefühlen nach. Die Fragen dazu lauten: 

{{indent{/%
%/ //"Wie fühlt sich Ihr Körper an? Schwerer, leichter, wärmer, kühler als an dem letzen Platz? Gibt es Unterschiede zwischen links, rechts, vorne und hinten? Verspüren Sie den Impuls, sich zu drehen, zu bewegen, zu verändern?"// /% 
%/}}}

Dazu spricht der Coach langsam und mit achtsamer Stimme und baut Pausen ein, um dem Coachee Zeit für seine Empfindungen zu lassen.

Wenn der Coachee die einzelnen Plätze eingenommen hat, wird das Bild zu einem Lösungsbild umgebaut, so dass alle Symbole so liegen, wie sich der Coachee das wünscht. Danach wird der Vorgang wiederholt, d.h. der Coachee nimmt wieder die verschiedenen Plätze ein und erspürt die Unterschiede.

!Auswertung
Anschließend wird gemeinsam überlegt, welche Veränderungen in der realen Situation, im Verhalten des Coachees etc. sinnvoll sind, um die Lösung zu ermöglichen.

Wichtig: Die Lösung darf nicht erzwungen werden. Findet sich kein Lösungsbild, hilft mitunter, zur Ausgangsposition zurückzugehen bzw. zum besten Zwischenbild. Manchmal muss man auch feststellen, dass zur Zeit keine Lösung möglich ist.

!Debriefing

!Quelle
Thomas Dietz: Kapieren mit dem Körper, managerSeminare 9/2003 S.64/65

!See also
* [[Aufstellung mit Karten]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://www.mwonline.de/db/topics/themenentry.php4?to_parebene=Aufstellung+mit+Bodenankern+%28jt%29&db=3]]
* http://www.strukties.de/index.htm
<data>{"abstract":"Sie haben noch nie an einer [[Organisationsaufstellung]] teilgenommen? Diese kleine Experiment vermittelt Ihnen eine Vorstellung, was eine solche [[Aufstellung]] leisten kann."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://chrissi15.files.wordpress.com/2009/03/kartenspiel2.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Aufstellung mit Karten","abstract") </script>
Ähnlich der Übung [[Aufstellung mit Bodenankern]].

!Aufstellung mit Karten
Als Anliegen nehmen Sie sich eine Situation vor, in der Sie in einen [[Konflikt]] zwischen zwei anderen Personen einbezogen sind. 
Überlegen Sie sich eine Fragestellung, wobei nicht die volle Lösung das Ziel sein sollte, sondern z.B. der nächste Schritt oder ein bestimmter Teilschritt.

!Objectives
* Konfliktbewältigung

!Timing
60min

!Audience
Group / Individual


!Materials
* Zettel, Stifte
* Moderationskarten

!Procedure
Dann nehmen Sie drei verschiedenfarbige Zettel, beschriften sie mit den Namen der Beteiligten und jeweils einem Pfeil.
Nehmen Sie den Zettel mit Ihrem Namen, gehen Sie durch den Raum und legen Sie ihn dort auf den Boden, wo er Ihrer Meinung nach hingehört. 
Lassen Sie den Pfeil in die Richtung zeigen, in die Sie blicken möchten.
Danach verlassen Sie die Position und verfahren mit den beiden anderen Karten ebenso.

Nun stellen Sie sich dorthin, wo Ihre Karte liegt und stellen sich die beiden anderen Personen lebendig vor. Verlassen Sie danach Ihre Position und notieren sich auf einem Zettel, was genau Sie dort empfunden haben.
Mit den anderen Positionen verfahren Sie genauso.

Danach lesen Sie sich Ihr Protokoll durch und überlegen sich eine Fragestellung, die Sie an eine der anderen Beteiligten richten möchten. 
Ändern Sie anschließend die Positionen der Karten so, dass sich die Personen und Sie ansehen können.
Dann gehen Sie wieder auf Ihre Position, richten Ihren Satz an die betreffende Person, wechseln die Position und hören sich den Satz sagen. 
Achten Sie darauf, was Sie in den verschiedenen Positionen empfinden.

Das Experiment können Sie nun weiter fortführen, bis Sie genug [[Ideen|Ideenmanagement]] und Einsichten gefunden haben.

!Debriefing

!Quelle
Sylvia Jumpertz: Auf den Standpunkt kommt es an. managerSeminare 5/2003 S.62, nach [[Matthias Varga von Kibéd: Ganz im Gegenteil, Carl-Auer-Systeme Verlag 2004| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FGanz-Gegenteil-Matthias-Varga-Kibed%2Fdp%2F3896702351%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214485742%26sr%3D1-2&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!See also
* [[Aufstellung mit Bodenankern]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Aufstellung+mit+Karten+%28jt%29.html]]
/***
|Name|AutoOpenTiddlersPlugin|
|Author|[[SaqImtiaz]]|
|Source|http://tw.lewcid.org/#AutoOpenTiddlersPlugin|
|Version|0.21|
|Requires|~TW2.x|
|Type|plugin|
|Description|Open an user defined number of recent tiddlers automatically when the TW loads. You can also specify a tag and only load tiddlers that have that tag. <br> Changed by [[MichaelTarnowski]] to display only tiddlers not tagged as {{{excludeLists}}} and to store all auto open options into config.options|

!!!Description:
Open a user defined number of recent tiddlers automatically when the TW loads.
You can also specify a tag and only load tiddlers that have that tag.
To change the number of tiddlers automatically opened, or define a tag to use, ed the config.autoOpenTiddlers part of the code below.

!!!To Do
*add an option to exclude tiddlers with a particular tag

!!!Code
***/
//{{{
//----------------------------------------------------------------------------
// Configuration Stuff, MichaelTarnowski 
//----------------------------------------------------------------------------
var opts = {chkAutoRecentOpenTiddlers:false,
	    txtMaxAutoRecentOpenTiddlers:5,
            txtAutoRecentOpenTiddlerTag:"" };
for (var n in opts) 
	if (config.options[n] == undefined) config.options[n] = opts[n];
//----------------------------------------------------------------------------

config.autoOpenTiddlers = 
{
  count: (config.options.txtMaxOpenTiddler == undefined) ?   //number of tiddlers opened.
                 parseInt(config.options.txtMaxAutoRecentOpenTiddlers) :
                 Math.min(parseInt(config.options.txtMaxAutoRecentOpenTiddlers),
                          parseInt(config.options.txtMaxOpenTiddler)), 
  tag: config.options.txtAutoRecentOpenTiddlerTag
}

config.autoOpenTiddlers.handler = function()
{
      if (config.options.chkAutoRecentOpenTiddlers)
      {
          if (this.tag == "")
             var newTiddlers = store.getTiddlers("modified");
          else
             var newTiddlers = store.getTaggedTiddlers(this.tag,"modified");
          var newTiddlers = newTiddlers.reverse();
          var max = Math.min(this.count,newTiddlers.length-1);
          for (var i=max; i>=0; i--)
          { 
            if (!newTiddlers[i].tags.contains("excludeLists"))
                 story.displayTiddler(null,newTiddlers[i].title);
          } 
       }
}

window.old_lewcid_autoOpenTiddlers_restart = restart;
restart = function ()
{
        window.old_lewcid_autoOpenTiddlers_restart();
        config.autoOpenTiddlers.handler();
}
//}}}
/***
|Name|AutoTaggerPlugin|
|Source|http://www.TiddlyTools.com/#AutoTaggerPlugin|
|Documentation|http://www.TiddlyTools.com/#AutoTaggerPluginInfo|
|Version|1.7.1|
|Author|[[EricShulman]] - 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|TiddlyWiki.prototype.saveTiddler|
|Description|Tag tiddlers with date, author, etc. and/or scan the tiddler for any tags that are embedded in the content|
~AutoTagger ''automatically generates tag values for all newly created or edited tiddlers''
!!!!!Documentation
> see [[AutoTaggerPluginInfo]]
!!!!!Configuration
<<<
|<<option chkAutoTagAuthor>> add 'created by' author tag //(when a tiddler is first created)//||
|<<option chkAutoTagEditor>> add 'edited by' author tag //(when a tiddler is updated)//||
|<<option chkAutoTagDate>> add 'creation date' tag, using date format:|<<option txtAutoTagFormat>>|
|<<option chkAutoTagModDate>> add 'modification date' tag, using date format:|<<option txtAutoTagModFormat>>|
|<<option chkAutoTagNewTags>> add default tag(s) when creating new tiddlers:|<<option txtAutoTagNewTags>>|
|<<option chkAutoTagDefault>> add default tag(s) when saving tiddlers that are not otherwise tagged:|<<option txtAutoTagDefault>>|
|<<option chkAutoTagTrigger>> scan tiddler content for matching tags when tagged with:|<<option txtAutoTagTrigger>>|
|<<option chkAutoTagAliases>> replace 'aliased' tags using definitions contained in:|<<option txtAutoTagAliases>>|
|borderless|k
<<<
!!!!!Revisions
<<<
2008.03.29 [1.7.1] in displayTiddler(), get title from tiddler object (if needed).  Fixes errors caused when calling function passes a tiddler *object* instead of a tiddler *title*
2008.03.27 [1.7.0] added aliasing (using [[AutoTaggerAliases]] definition)
2008.03.11 [*.*.*] plugin size reduction - moved documentation to [[AutoTaggerPluginInfo]]
2007.10.18 [1.6.0] hijack displayTiddler() to add option to use default tags when creating new tiddlers (preloads tag edit field).  Based on requests from RA and DavidWinfield.
| Please see [[AutoTaggerPluginInfo]] for previous revision details |
2005.08.15 [1.0.0] Initial Release
<<<
!!!!!Code
***/
//{{{
version.extensions.autoTagger = {major: 1, minor: 7, revision: 1, date: new Date(2008,3,29)};

var co=config.options; // shorthand temp variable
if (co.chkAutoTagDate==undefined) co.chkAutoTagDate=false;
if (co.chkAutoTagModDate==undefined) co.chkAutoTagModDate=false;
if (co.chkAutoTagEditor==undefined) co.chkAutoTagEditor=false;
if (co.chkAutoTagAuthor==undefined) co.chkAutoTagAuthor=false;
if (co.chkAutoTagTrigger==undefined) co.chkAutoTagTrigger=false;
if (co.txtAutoTagTrigger==undefined) co.txtAutoTagTrigger="auto";
if (co.chkAutoTagDefault==undefined) co.chkAutoTagDefault=false;
if (co.txtAutoTagDefault==undefined) co.txtAutoTagDefault="untagged";
if (co.txtAutoTagFormat==undefined) co.txtAutoTagFormat="YYYY.0MM.0DD";
if (co.txtAutoTagModFormat==undefined) co.txtAutoTagModFormat="YYYY.0MM.0DD";
if (co.chkAutoTagNewTags==undefined) co.chkAutoTagNewTags=false;
if (co.txtAutoTagNewTags==undefined) co.txtAutoTagNewTags="";
if (co.chkAutoTagAliases==undefined) co.chkAutoTagAliases=true;
if (co.txtAutoTagAliases==undefined) co.txtAutoTagAliases="AutoTaggerAliases";

// hijack displayTiddler()
Story.prototype.autotagger_displayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler=function(srcElement,tiddler,template,animate,unused,customFields,toggle)
{
	var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
        this.autotagger_displayTiddler.apply(this,arguments);
	if (!config.options.chkAutoTagNewTags) return; // IF add new tags is enabled
	if (!story.isDirty(title)) return; // AND tiddler is being edited
	if (store.tiddlerExists(title)) return; // AND tiddler doesn't exist
	var newtags=config.options.txtAutoTagNewTags.readBracketedList(); // get new tags
	for (var t=0; t<newtags.length; t++)
		story.setTiddlerTag(title,newtags[t],+1); // preload tag edit field
} 

// hijack saveTiddler()
TiddlyWiki.prototype.autotagger_SaveTiddler=TiddlyWiki.prototype.saveTiddler;
TiddlyWiki.prototype.saveTiddler=function(title,newTitle,newBody,modifier,modified,tags,fields)
{
	var co=config.options; // shorthand temp variable
	var newTags = [];
	if (tags) newTags = (typeof tags == "string") ? tags.readBracketedList() : tags;
	var txt=store.getTiddlerText(config.options.txtAutoTagAliases,'')
	if (config.options.chkAutoTagAliases && txt.length) {
		// replace tag aliases with one or more other tags
		var list=txt.split('\n');
		var map={};
		for (var i=0; i<list.length; i++)
			map[list[i].split('=')[0]]=list[i].split('=')[1].readBracketedList();
		for (var a in map) if (newTags.contains(a)) {
			newTags.splice(newTags.indexOf(a),1); // remove alias
			for (var i=0; i<map[a].length; i++) // add replacements
				newTags.pushUnique(map[a][i]);
		}
	}
	var now=new Date().formatString(co.txtAutoTagFormat);
	if (co.chkAutoTagDate && (store.getTiddler(title)==undefined))
		if (newTitle!=now) newTags.pushUnique(now); // created date - don't add to journals
	if (co.chkAutoTagAuthor && (store.getTiddler(title)==undefined))
		newTags.pushUnique(co.txtUserName); // creator
	if (co.chkAutoTagEditor && store.getTiddler(title))
		newTags.pushUnique(co.txtUserName); // modifier
	if (co.chkAutoTagModDate && store.getTiddler(title))
		newTags.pushUnique(new Date().formatString(co.txtAutoTagModFormat)); // modified
	var allTags = store.getTags(); // scan content for tags
	if (co.chkAutoTagTrigger && co.txtAutoTagTrigger.length	&& newTags.contains(co.txtAutoTagTrigger))
		for (var t=0; t<allTags.length; t++) {
			if (allTags[t][0]=='systemConfig') continue; // don't add 'systemConfig'
			if ((newBody.indexOf(allTags[t][0])!=-1) || (newTitle.indexOf(allTags[t][0])!=-1))
				newTags.pushUnique(allTags[t][0]); // autotag
		}
	for (var t=0; t<newTags.length; t++)
		newTags[t]=String.encodeTiddlyLink(newTags[t]); // add brackets around tags
	if (!newTags.length && co.chkAutoTagDefault && co.txtAutoTagDefault.length)
		newTags.push(co.txtAutoTagDefault); // untagged - add default tag
	arguments[5]=newTags.join(" ");
	return this.autotagger_SaveTiddler.apply(this,arguments);
}
//}}}
/***
|Name|AutoWeavePlugin **Modified by [[Steinþór Jasonarson]]**|
|Description|Automatically adds brackets to nonwikiwords on saving a tiddler.|
|Version|0.1 (March 09, 2007)|
|Source|http://pc.is/#AutoWeavePlugin|
|Author|original - laurence man, editor - Steinþór Jasonarson|
|License|[[BSD open source license]]|
|~CoreVersion|2.1.0|
|Browser|Tested on: Firefox 2.0; InternetExplorer 6.0|

!Description
I took the autoweaveplugin and changed it a bit, mostly adding to it so that it won't autolink to things within a macro, or within these symbols: ",.,(,),[[,]]

A nonwikiword tiddler title will be double bracketed if it is found in the tiddler text, and if the title does not have any letters or numbers around it.

!Usage
By default all occurrences of each nonwikiword title in the text is auto-bracketed. To bracket only first occurrences, change the following line in the below code:
{{{
var replaceOnlyFirst = true;
}}}
to
{{{
var replaceOnlyFirst = false;
}}}

You can also specify a list of tiddler titles that you do not want to be auto-bracketed. By default, the name of the tiddler containing the titles to exclude is called {{{noAutoLink}}}. That name can be specified by changing the following line in the code below:
{{{
var excludeThese = "noAutoLink";
}}}
to
{{{
var excludeThese = "whatever you want";
}}}

In your "noAutoTag" tiddler, each line should contain only one tiddler title to exclude from auto-bracketing. Don't add any spaces on that line unless they are in the tiddler title itself. For example:
{{{
montypython
xmas list - 2007
culture of capitalism - notes
}}}

!Problems/Limitations/Notes
* Can't handle tiddler titles with square brackets in them so they're ignored.
* Can choose to autolink only first occurrence of title, but if you edit the tiddler later and add that title into the tiddler text before the first occurrence of the title, it will be bracketed.
* Shadowed tiddlers and tiddlers tagged with "excludeLists" are not auto-bracketed.

!Code
***/
//{{{
TiddlyWiki.prototype.saveTiddler_weaveLinks =
TiddlyWiki.prototype.saveTiddler;
TiddlyWiki.prototype.saveTiddler =
function(title,newTitle,newBody,modifier,modified,tags)
{
  // User settings

  var replaceOnlyFirst = false;
  var excludeThese = "noAutoLink";


  // Don't tag the list of tiddler titles to exclude.
  if (title == excludeThese) return this.saveTiddler_weaveLinks.apply(this, arguments);

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

  // To sort titles into descending length.
  var compareDescLen = function(a, b)
  {
    if (a.length == b.length) return 0;
    return b.length - a.length;
  }

  var isBounded = function(start, end)
  // if tiddler title has a non-alphanum char (or nothing) on each side.
  // Takes both indices of the title match, along with the title itself.
  {
    var reAlphaNum = new RegExp('\[\A-Za-z0-9.\"\(\)\]');

    return !(start != 0 && reAlphaNum.test(newBody.substr(start - 1, 1)) || end != newBody.length - 1 && reAlphaNum.test( newBody.substr(end + 1, 1)));
  }

  var isBracketed = function(start, end)
  // Is matched string within given indices enclosed in pairs of brackets?
  // Assumes brackets aren't allowed in titles (even tiddler text);
  // bumping into pair of non-enclosing brackets means string isn't enclosed.
  {
    var foundL = false;
    var foundR = false;
   
    // Start from char just before title up to second char in newBody.
    for (var i = start - 1; i > 0; i--)
    {
      if (newBody.charAt(i) == ']' && newBody.charAt(i - 1) == ']') return false;
      if (newBody.charAt(i) == '[' && newBody.charAt(i - 1) == '[')
      {
    foundL = true;
    break;
      }
    }
       
    // Look from next char after title up to second last char.
    for (var i = end + 1; i < newBody.length - 1; i++)
    {
      if (newBody.charAt(i) == '[' && newBody.charAt(i + 1) == '[') return false;
      if (newBody.charAt(i) == ']' && newBody.charAt(i + 1) == ']')
      {
        foundR = true;
    break;
      }
    }
    return foundL && foundR;
  }

    var isNonWikiWord = function(word)
    // No brackets though they're allowed in tiddler titles.
    {
        return (word.indexOf(" ") != -1 ||
               word.search(config.textPrimitives.wikiLink) == -1) &&
               word.indexOf("[") == -1 &&
               word.indexOf("]") == -1;
    }
   
    var isUsrExcluded = function(currTitle)
    // Checks given tiddler title against those in the excluded list.
    {
        if (excludeArr)
        {
            for(var i = 0; i < excludeArr.length; i++)
                if (excludeArr[i] == currTitle) return true;
        }
        return false;
    }

  var isinMacro = function(start, end)
  {
    var foundL = false;
    var foundR = false;

    //check the text before the tiddler-link
    var checkL = newBody.slice(0,start);
    var checkR = newBody.slice(end,newBody.length);
    var macrocheckL = new RegExp ("<<.{0,}>>$","gm");
    var macrocheckR = new RegExp ("<<.{0,}>>","gm");
    var opencheck = new RegExp ("<<");
    var closecheck = new RegExp (">>");

    //Check left of Tiddler-link
    if(macrocheckL.test(checkL))
    {
      if(opencheck.test(RegExp.rightContext)) foundL = true;
    } else if (opencheck.test(checkL)) foundL = true;

    //Check right of Tiddler-link
    if(macrocheckR.test(checkR))
    {
      if(closecheck.test(RegExp.leftContext)) foundR = true;
    } else if (closecheck.test(checkR)) foundR = true;

    return foundL && foundR;
    }

    var tids = store.getTiddlers("title","excludeLists");
    var arr = new Array(tids.length); // Titles to use: to be filtered, sorted.
    var arrLen = 0;                   // Number of titles.
    var matchIdx;                     // Index of a matching title.
    var searchIdx;                     // Searching from this index in newBody.
    var excludeArr;

    var titlesToExclude = store.getTiddlerText(excludeThese);
   
    // split(/\n/) might not be ok with IE?
    if (titlesToExclude) excludeArr = titlesToExclude.split('\n');

    // Filter list of titles.
    for (var i = 0; i < arr.length; i++)
    {
        if (isNonWikiWord(tids[i].title) && !isUsrExcluded(tids[i].title))
        {
            arr[arrLen] = tids[i].title;
            arrLen++;
        }
    }

    arr.sort(compareDescLen);

    // Main loop
    for (var i = 0; i < arrLen; i++)
    {
        searchIdx = 0;      // Start search for title at start of newBody.

        // If a match, replace if not bracketed and if it is free of alphanum
        // on either side. Search again from end of matching title in newBody.
        // Should maybe rewrite this using regexp.exec.

        for ( ; ;)
        {
            matchIdx = newBody.indexOf(arr[i], searchIdx);
            if (matchIdx == -1) break;

            var brackets = isBracketed(matchIdx, matchIdx + arr[i].length - 1);
            if (brackets && replaceOnlyFirst) break;

            var macroed = isinMacro(matchIdx, matchIdx + arr[i].length - 1);
            if (macroed && replaceOnlyFirst) break;
           
            if (isBounded(matchIdx, matchIdx + arr[i].length - 1, arr[i]) && !brackets && !macroed)
            {
                newBody = newBody.substring(0, matchIdx) + "[[" + arr[i] + "]]" + newBody.substring(matchIdx + arr[i].length);

                if (replaceOnlyFirst) break;
            }
            searchIdx = matchIdx + arr[i].length + 1;
        }
    }

return this.saveTiddler_weaveLinks.apply(this, arguments);
}
//}}}
/***
!!!Adjustments to Backstage appearances
***/
//{{{
if (config.tasks!=undefined) { // TW2.2B3 or above

// hide "backstage/close" text, use alternative glyphs
config.messages.backstage.open.text="";
config.messages.backstage.close.text="";
config.glyphs.codes.bentArrowLeft=["\u00ab","\u00ab"]; // left double-angle quote (&laquo;)
config.glyphs.codes.bentArrowRight=["\u00bb","\u00bb"]; // right double-angle quote (&raquo;)
// config.glyphs.codes.downTriangle=["\u25bc","\u25bc"]; // down triangle

// adjust backstage panel styles
setStylesheet("\
	#backstagePanel \
		{ background:#eee !important; padding:.5em; \
		border:2px solid; border-width-top:0px; \
		-moz-border-radius-bottomleft:1em; -moz-border-radius-bottomright:1em} \
		-webkit-border-bottom-left-radius:1em; -webkit-border-bottom-right-radius:1em} \
	#backstageButton \
		{ font-size:9pt; } \
	#backstageArea \
		{ font-size:7pt; } \
	","BackstageTweaks");

// Hijack backstage.init() to add "mouseover" class to backstage button
backstage.save_init=backstage.init;
backstage.init=function() {
	this.save_init.apply(this,arguments);
	var btn=document.getElementById("backstageShow");
	if (btn && (addClass instanceof Function)) addClass(btn,"mouseover");
}

} // end if (config.tasks)
//}}}
<<wikify [>img(%0,%1)[%2|%3]] 40% 40% title http://www.projectwizards.net/de/macpm/wp-content/uploads/2010/04/Ball-Point-Game.png>>
<<showtoc>>
!Overview
[[Ball Point Game]] is a fun and exciting way to explore process [[flow|Flow]] and to get familiar with  the notions of [[velocity|Velocity]], [[Sprint Backlog]], and [[Sprint Review]]. 
The rules are quite simple and the more people you have, the more exiting it can be. The objective of the Ball Point game is to get as many balls through the team as possible within two minutes. Each ball must be touched at least once by every team member and must end with the same person with whom it began. After two minutes the team is allowed an additional minute to discuss the process and how it could be improved. The game is played a total of five times.

!Ball Point Game
<script> return "<<tiddler [[Ball Point Game##Overview]]>>" </script>

!Objectives
* Explore process [[flow|Flow]] 
* Get familiar with  the notions of [[velocity|Velocity]], [[Sprint Backlog]], and [[Sprint Review]]. 

!Timing
60min

!Audience
Group

!Materials
* 20 colored tennis balls
* whiteboard
* Egg timer / Stop watch

!Procedure
In order to play the [[Ball Point Game]], you’ll need a large open space with enough room for everyone to stand. You’ll also need about 20 brightly colored tennis balls and you may want a whiteboard to do the debriefing. We play the game in the following way:

# Provide an overview of the game and the rules.
** Everyone is part of one big team.
** Each ball must have air-time.
** Each ball must be touched at least once by every team member.
** Balls cannot be passed to your direct neighbour to your immediate left or right.
** Each ball must return to the same person who introduced it into the system.
** There are a total of five iterations.
# Allow the team two minutes of preparation time to determine how they will organize themselves.
# Get an [[estimate|Agile Estimation]] from the team of how many balls they can pass through the system. <br> Write down the estimate.
# Run a two-minute [[iteration|Iteration]].<br>Write down the actual and the time.
# Allow the team one minute to discuss how to improve the process.
# Repeat for five iterations. Make the fifth iteration a challenge. If you need to, make up some ridiculous statistic such as “The world record is 150 points. Can you beat that?”

!Debriefing
At the conclusion of the exercise, debrief for five to ten minutes. There are a number of interesting points that are worth talking about. Firstly, it’s worth mentioning the [[Deming Cycle|Plan, Do, Check, Act]]. Secondly, it’s worth pointing out that every system has a natural [[velocity|Velocity]]. Third, the actual/estimate list is the [[Sprint Backlog]], the improvement discussions the [[Sprint Review]]. And finally, it’s worth discussing “[[flow|Flow]]” and the necessary criteria for it. 


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto "Team" http://farm4.static.flickr.com/3115/2844705271_9b25187edd_m.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto "Sprint Backlog" http://www.projectwizards.net/de/macpm/wp-content/uploads/2010/04/Ball-Point-Game.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://t0.gstatic.com/images?q=tbn:K3rosiK3dceVqM:http://farm4.static.flickr.com/3639/3493328373_7c1bd44cf8_o.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://images.quickblogcast.com/9/5/5/9/4/159099-149559/BallPointsInSydney_July09.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
* [[Ball Point Game - Learning Agile]]
* [[Playing the Ball Point game]]
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[AgileGames@googlegroups.com: Trying a new approach to "Ball Point Game"| http://groups.google.com/group/agilegames/browse_thread/thread/79d6e2fb620f4888]]
* [[Boris Gloger: Ball Point Game| http://borisgloger.com/en/2008/03/15/the-scrum-ball-point-game/]]
* [[Boris Gloger: Full documentation of the game — (PDF)| http://kanemar.files.wordpress.com/2008/03/theballpointgame.pdf]]
* [[Karl Scotland: The Ball Flow Game| http://availagility.co.uk/2010/11/17/the-ball-flow-game/]]
* http://kanemar.com/2008/04/07/scrum-trainers-gathering-24-the-ball-point-game/
/%
|Name|Ball Point Game - Learning Agile|
|URL|http://www.youtube.com/v/d4-El7gJuZE|
|Description|[[Ball Point Game]] — Learning Agile, the fun way!|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/d4-El7gJuZE"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/d4-El7gJuZE" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://bp2.blogger.com/_zOK5u1iaQYQ/R_4wNjqUcTI/AAAAAAAAABs/-Ts0bg6nlyA/s400/ugly+duckling.jpg>>
<<showtoc>>
!Overview
[[Bang For The Buck Prioritization]]: estimate the relative value of the capabilities or stories you’re planning for your [[scrum sprints|Sprint]] with this Instant Play game that does the work of assessing the real Bang for the Buck in your [[backlog|Sprint Backlog]].

!Bang For The Buck Prioritization 
<<tiddler [[Bang For The Buck Prioritization ##Overview]]>>

!Objectives
The goal of this game is to collaboratively rank a [[backlog|Product Backlog]] based on estimated value and estimated cost. The y-axis is the value of an [[epic|Epics and Themes]] or [[story|User Story]] and the x-axis is the cost. Each axis is organized as a Fibonacci number. We typically use this game for [[release planning|Release Planning]].

!Timing
* 1h

!Materials
* A list of backlog items (epics / stories) to prioritize.

!Audience
Group

!Procedure
[>img(40%,auto)[http://innovationgames.com/image_logic/1EXL4APXKYSTCJ4DROP1OVM4AKTITVY2][https://innovationgames.com/game_view/instant_play/KR25FMG33K0IKNKZV15JXCIXL4S4W1X2]]
The goal of this game is to collaboratively rank a backlog based on estimated value and estimated cost. The y-axis is the value of an epic or story and the x-axis is the cost. Each axis is organized as a Fibonacci number. We typically use this game for release planning.

Clicking on this image, will start an “instant play” game at www.innovationgames.com. You’ll see this image as the “game board” and an icon of a light bulb in the top left corner of this window. The light bulb represents the backlog items you want to prioritize. To add a backlog item onto the game board, simply drag it from the top left and describe it.

Now the fun begins! While any player can move a light bulb at any time, the game works best when the product manager focuses on getting the light bulbs in the right place vertically, while the development team puts the items in the right place horizontally.

Use the integrated chat facility to negotiate about the items. And any player can edit the items to keep track of the agreements of the team. This means that items will move around during the game as the value of an item increases or decreases or the development team considers various ways of implementing an item.

To get the final results of the game, simply download the Excel spreadsheet. All of the items and their Fibonacci values will be available to you for post-processing, including all of the chats.

!Debriefing

!Credits
Scott Selhorst explains this game with more detail [[here|http://tynerblain.com/blog/2008/10/20/planning-sprints-part-2/]].

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://tastycupcakes.org/2011/03/bang-for-the-buck-prioritization/
<data>{"abstract":"Wie gehen Mitglieder unterschiedlicher Kulturen eine einfache Übung an, bei der aus [[Bauklötzen ein Turm|Bauklötze stapeln]] errichtet werden soll?  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://coloursworld.de/images/turm.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Bauklötze stapeln","abstract") </script>
Diese Übung lässt sich sicher in sehr unterschiedlichen Seminarsituationen einsetzen. 

!Bauklötze stapeln
<script> return "<<tiddler [[Bauklötze stapeln##Overview]]>>" </script>

!Objectives
* Aufzeigen kultureller Unterschiede.

!Timing
30min.

!Audience
Group

!Materials
* Anzahl von [[Bauklötzen|http://www.amazon.de/Beeboo-50159-beeboo-Holzbausteinetrommel-bunt/dp/B0002TQ57G/ref=sr_1_3?ie=UTF8&qid=1289088099&sr=8-3]]
* Kreis aus Pappe
* Pinnwand od. getrennte Räume

!Procedure
# Die Teilnehmer sollen aus einer Anzahl von Bauklötzen möglichst effizient einen Turm so aufschichten, dass er möglichst weit über einem Pappkreis ragt, ohne das Pappstück zu berühren. 
# Dazu arbeiten mehrere Gruppen getrennt voneinander, so dass die jeweilige Ausführung von den anderen Gruppen nicht gesehen wird (z.B. durch eine Pinnwand getrennt oder in verschiedenen Räumen). 


!Debriefing
Interessant dabei die unterschiedlichen Lösungsansätze. In dem Beispiel bauen deutsche Manager ein solides Fundament rund um die Pappe, auf dem der Turm ruht, während die Franzosen die Pappe unter den Tisch legen.
Witzige Möglichkeit, auch kulturelle Unterschiede der [[Mitarbeiter]] bei Mergern sichtbar zu machen.


!Quelle
Dunkel, Monika: Taube Ohren, Wirtschaftswoche 46/2002 S.99.

!See also
* [[Marshmellow Challenge]] 
* [[Großer Eierfall]]
* [[Turmbauübung]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Baukl%F6tze+stapeln+%28jt%29.html]]
<data>{"abstract":"Diese Übung lässt  [[Veränderungen|Organizational Change]] im Bezug auf die Struktur und den Prozess in [[Organisationen|Organisation]] erlebbar werden. Für 20 Teilnehmer."}</data>/%
http://www.ruhrwaerts.de/ruhrwaerts/randomlink.nsf/url/00000037/%24FILE/kla4festival.jpg
http://www.theaterregensburg.de/uploads/pics/siko02.jpg
%/<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.q-printsandservice.de/images/news/loft_kunstauktion.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Beethovens Siebte","abstract") </script>

!Beethovens Siebte
<script> return "<<tiddler [[Beethovens Siebte##Overview]]>>" </script> 

!Objectives
* Erleben von organisat. Veränderungen (Struktur und Prozess ).

!Audience
Group; für 20 Teilnehmer

!Timing
30min+

!Materials
* Stuhlkreis

!Procedure
# Die Teilnehmer bilden eine Kreis. 
# Der Moderator gibt mit Klatschen das rhythmische Motiv aus Beethovens 7. Symphonie vor: lang-kurz-kurz-lang-lang. 
# Die Teilnehmer vollziehen das Motiv mit Klatschen nach, wobei A mit lang beginnt, B mit kurz folgt, C ebenfalls dann kurz und D und F mit lang. Teilnehmer E beginnt wieder mit lang usw.
# Der Moderator fordert die Teilnehmer auf, sich genau zu merken, nach wem und vor wem sie klatschen und wann ihr Beitrag im Ganzen der 20 Personen erfolgt. Dabei sollen sie sich nicht auf das Sehen, sondern auf das Hören verlassen.
# Nach mehreren Durchgängen werden sie aufgefordert, sich mit dem Gesicht nach außen zu drehen, so dass kein Blickkontakt mehr möglich ist, und dann den Rhythmus zu klatschen.
# Wenn dies gelingt, werden die Teilnehmer gebeten, willkürlich im Raum herumzugehen, dabei erneut das Motiv zu klatschen in der eingeübten Reihenfolge. Anschließend sucht sich jeder einen neuen Platz im Kreis.
# Nun steht jeder an einer anderen Stelle im Kreis, dennoch soll der Rhythmus in der gleichen Reihenfolge weiter geklatscht werden.
# Schließlich setzen sich alle wieder in Bewegung und gehen allmählich klatschend wieder an ihre alte Stelle im Kreis.


!Debriefing
Die Auswertung beschäftigt sich mit der Frage, welche [[Erfahrungen|Erfahrung]] bezüglich  [[Veränderungen|Organizational Change]] zum Thema "Prozess- und Strukturveränderungen" gemacht wurden.

!Quelle
Achim Leuchtenberg / Ulrich Jakubek / Dirk Walliser: Supply Chain Development, nach Walter Appel, Salzburg, S. 38

!See also
* [[Organizational Change Management]]

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Beethovens+Siebte+%28jt%29&db=3]]
<data>{"abstract":"Die Übung [[Beratermarktübung]] eignet sich zum Einsatz in der ~Coaching-Ausbildung oder generell in der ~Berater-Ausbildung."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 20% auto title http://www.uni-leipzig.de/~grw/bbi/berater.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Beratermarktübung","abstract") </script>

!Beratermarktübung
<script> return "<<tiddler [[Beratermarktübung##Overview]]>>" </script> 

!Objectives
* Lösen einer Konkurrenzsituation 

!Timing
20min-30min

!Audience
Group

!Materials
*

!Procedure
# Je vier Teilnehmer bilden eine Kleingruppe (For pairing use [[Gruppenpuzzle]] or [[Hör gut hin!]]). 
# Der erste Teilnehmer (A) schildert ein berufliches Problem, B, C und D können nachfragen und unterbreiten dann jeweils ein Beratungsangebot aus ihrer Sicht.
# Teilnehmer A, der Kunde, wählt danach einen Berater (B) aus. <br>Sogleich wechseln C und D die Rolle und sind ab sofort Supervisoren. D.h. nun betrachten sie B und seine Beratung von A als Kollegen, nicht als Konkurrenten. 
# Dieser Rollen- bzw. Fokuswechsel verhindert, dass man in der vorhergehenden Konkurrenzsituation verhaftet bleibt.


!Debriefing
Die anschließende Auswertung des "Beratermarktes" dreht sich um Fragen wie: Warum hat A den Auftrag an B vergeben? Hat sich die Entscheidung bewährt? Welches Verhalten von C und D hat dazu geführt, dass sie den Auftrag nicht bekommen haben? Wie hätten ihre Angebote bessere Chancen gehabt?

!Quelle
Bernd Schmid: ~Coaching-Ausbildung: Wie Lernen `nebenbei´ passiert, wirtschaft + weiterbildung 11/12/2006, S. 56

+++*[Internet Videos]>
<<tiddler [[Business Kasper::Video]]>>
----
<<tiddler [[Berufsgruppen, die die Welt nicht braucht::Video]]>>
===

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Beratermarkt%FCbung+%28jt%29&db=3]]
<data>{"abstract":"Sich in die Sichtweise eines anderen hineinversetzen zu können, ist sicherlich die Basis für eine Verständigung in schwierigen Situationen. Eine kleine Übung dazu ist die [[Bildbetrachtung]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.marine.de/fileserving/PortalFiles/02DB070000000001/W282CK6M325INFODE/Bildbetrachtung_220.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Bildbetrachtung","abstract") </script>

!Bildbetrachung
<script> return "<<tiddler [[Bildbetrachtung##Overview]]>>" </script>

!Objectives
* Sichtweise eines anderen erkennen.

!Timing
10min

!Audience
Group


!Materials
* Fotos unterschiedlicher Kunstwerke 

!Procedure
# Hier breitet der Trainer eine Reihe von Fotos unterschiedlicher Kunstwerke aus. 
# Sodann werden die Teilnehmer gebeten zu sagen, welche Bilder ihnen gefallen und welche ihnen nicht gefallen. <br> Zu jedem Bild sollten mindestens zwei Teilnehmer gefunden werden, von denen einer das Bild mag und einer weniger. 
# Anschließend bekommt jeder etwas Zeit, das Bild genauer zu betrachten und zu überlegen, was er wahrnimmt und wie er es empfindet. Dazu soll er sich auch Notizen machen.
# Danach stellen sich die Paare ihre Sichtweise gegenseitig vor. 
## Zuerst schildert A seine Eindrücke, B hat die Aufgabe, das Bild aus der Perspektive von A zu betrachten und sich in seine Sichtweise hineinzuversetzen. 
## Anschließend wird gewechselt.

!Debriefing
Im Auswertungsgespräch innerhalb der Paare geht es darum, wie sich die Sichtweise verändert hat, was leicht gefallen und was weniger leicht gefallen ist und was sich an der eigenen Sichtweise geändert hat.
Im Plenum werden die Ergebnisse dieser Gespräche vorgestellt und die Erkenntnisse auf den Alltag übertragen.

!Quelle
[[Erika Lüthi / Hans Oberpriller: Teamentwicklung mit Diversity Management, ~Haupt-Verlag 2009, S.79.| http://www.amazon.de/gp/product/3258076014?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3258076014]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline|http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Bildbetrachung+%28jt%29]]
<data>{"abstract":"[[Bilder malen]], eine Übung, die im Rahmen von Integrationsprozessen nach Fusionen in Workshops zum besseren Verständnis der jeweiligen Kulturen gut eingesetzt werden kann.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://images.jam-art-gallery.com/session_malen_gross.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Bilder malen","abstract") </script>

!Bilder malen
<script> return "<<tiddler [[Bilder malen##Overview]]>>" </script>
!Objectives
* Verständnis anderer (Firmen-)Kulturen.

!Timing
30min

!Audience
Group

!Materials
* Flipchartpapier, 
* Buntstifte

!Procedure
Die Mitglieder der jeweiligen Gruppen erhalten den Auftrag, ein Bild der anderen Gruppe zu malen, so wie sie diese wahrnehmen. 

!Debriefing
Anschließend werden die Bilder gegenseitig präsentiert und gemeinsam diskutiert.

!Quelle
Dunkel, Monika: Taube Ohren, Wirtschaftswoche 46/2002, S.98

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Bilder+malen+%28jt%29.html]]
<data>{"abstract":"Manchmal ist es erforderlich, Seminarwissen abzufragen. Eine eher spielerische Methode  ist [[Bingo]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://yeinjee.com/discovery/wp-content/uploads/2007/09/cow-bingo.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Bingo","abstract") </script>

!Bingo
<script> return "<<tiddler [[Bingo##Overview]]>>" </script> 
Dazu verteilt der Dozent [[Bingo-Spielpläne|Bingo##Spielplan]], die stichwortartige Antworten enthalten, und zwar in einer Tabelle aus fünf Zeilen und fünf Spalten.

!Objectives
* Abfragen von Seminarwissen 

!Timing
20min

!Audience
Group / Individual


!Materials
* [[Bingo-Spielpläne|Bingo##Spielplan]]. 

!Procedure
# Der Dozent verteilt [[Bingo-Spielpläne|Bingo##Spielplan]], die stichwortartige Antworten enthalten, und zwar in einer Tabelle aus fünf Zeilen und fünf Spalten.
# Sodann werden die Fragen gestellt. Findet ein Teilnehmer die richtige Antwort auf dem Plan, legt er einen Spielstein auf das Feld. Sobald jemand fünf Steine in einer Reihe — waagerecht, senkrecht oder diagonal — hat, ruft er //"Bingo!"//. 
# Der Dozent überprüft die Richtigkeit der Antwort. Ist dies der Fall, werden die Fragen und die Antworten noch einmal gemeinsam durchgegangen.

Mit unterschiedlichen Fragevarianten kann man die Spielpläne mehrfach einsetzen. Die Wissensabfrage eignet sich z.B. bei ~BWL-Seminaren, ~DV-Trainings oder auch Sprachen.


!Debriefing


!Quelle
Sandra Schaffert und Martin Schön: aus: [[Rachow, Axel (Hrsg.): Spielbar II, managerSeminare Gerhard May Verlags GmbH 2002, S. 137/138| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FSpielbar-pr%25C3%25A4sentieren-Top-Spiele-Seminarpraxis-Seminarpraxis%2Fdp%2F3931488632%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1211920003%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Fortgeschrittene Seminarbausteine]<<tiddlerList tags:"advanced_training,-newTemplate" header:"Übungen Fortgeschrittene Seminarbausteine">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Bingo+%28jt%29&db=3]]
!Spielplan
* [[Bingo-Spielpläne 1| http://www.4teachers.de/?action=material&id=15458]]
* [[Bingo-Spielpläne 2| http://www.praxis-jugendarbeit.de/spielesammlung/bingo-quiz.html]]
<data>{"abstract":"[[Blind vorstellen]]: die Teilnehmer sitzen im Kreis. Alle schließen die Augen. Dann erzählt jeder etwas über sich, einer nach dem anderen. Da niemand etwas sieht, muss man sich ganz auf die Stimmen konzentrieren. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.handicap-scratchers.de/mm/golftrick20.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Blind vorstellen","abstract") </script>

!Blind vorstellen
<script> return "<<tiddler [[Blind vorstellen##Overview]]>>" </script> 

!Objectives
* [[Sach-|Sachebene]] und [[Beziehungsebene]] wahrnehmen

!Timing
30min-60min

!Audience
Group / Individual

!Materials
*

!Procedure
# Die Teilnehmer sitzen im Kreis. 
# Alle schließen die Augen. 
# Dann erzählt jeder etwas über sich, einer nach dem anderen. Da niemand etwas sieht, muss man sich ganz auf die Stimmen konzentrieren. 

!Debriefing
Bei Kommunikationstrainings kann man hier schon gleich etwas über die [[Sach-|Sachebene]] und die [[Beziehungsebene]] erfahren. Stimmen transportieren Emotionen, also kann man am Schluss alle fragen:
* Was ist hängen geblieben?
* Was ist auf der Sachebene — was auf der Beziehungsebene rübergekommen? 

!Quelle
Amelie Funcke: Vorstellbar, managerSeminare 2006 S.29.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Unesco, freie Lernressourcen| www.opentrainingplatform.org]]
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Blind+vorstellen+%28jt%29.html]]
<data>{"abstract":"[[Blinde Baumeister]]: eine Übung, in der [[Führung]] erlebbar und beobachtbar wird. Für diese hier benötigt man große Legosteine (Duplo)."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title  http://www.holbe.de/Images/bob_baumeister.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Blinde Baumeister","abstract") </script>

!Blinde Baumeister
<script> return "<<tiddler [[Blinde Baumeister##Overview]]>>" </script> 
Die Übung eignet sich zum Einsatz in Führungs-, [[Kommunikations-|Kommunikation]] und [[Teamentwicklungsseminaren|Teamentwicklung / Teambuilding]] für bis zu 12 Teilnehmer.

!Objectives
* [[Führung]] erlebbar und beobachtbar machen.


!Timing
35 min

!Audience
Group: für bis zu 12 Teilnehmer.


!Materials
* ~Duplo-Steine 
* Augenbinden

!Procedure
Der Trainer baut aus mindestens 20 solcher ~Duplo-Steine zwei beliebige Figuren. Diese sollen später von den Teilnehmern nachgebaut werden. 
Zuvor aber, in der Planungsphase, dürfen alle miteinander reden, die Figuren anfassen, auseinander- und wieder zusammenbauen. Sie dürfen sich jedoch keine Aufzeichnungen hierzu machen. Die Planungsphase dauert 15-20 Minuten.

Vor der Bauphase verteilt der Trainer die Einzelteile in einem Kreis auf dem Boden. Die Personen, die bauen sollen, sind zu diesem Zeitpunkt blind und befinden sich im Innenkreis. Sie dürfen miteinander sprechen und auch mit den außerhalb des Kreises stehenden Teilnehmern reden. 
Diese allerdings haben nur sechs Geräusche (!) zur Verfügung, mit denen sie antworten dürfen. 
Für die Bauphase stehen nur 15 Minuten zur Verfügung. 
Der Auftrag lautet, die Figuren farblich und förmlich fehlerfrei nachzubauen.

!Debriefing
Alles entscheidend ist hier die Planung. Was hier versäumt wurde, lässt sich später nur schwer nachholen. Entsprechend wird in der Auswertungsphase hierauf viel Wert gelegt.

!Quelle
[[Axel Rachow: Spielbar II, managerSeminare 2002, S.163| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FSpielbar-pr%25C3%25A4sentieren-Top-Spiele-Seminarpraxis-Seminarpraxis%2Fdp%2F3931488632%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1211920003%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]].

!See also

* [[Lego-Bagger]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Übungen Führung]<<tiddlerList tags:"leadership,-newTemplate" header:"Übungen Führung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Blinde+Baumeister+%28jt%29]]
<data>{"abstract":"Mit dem klassischen [[Blitzlicht]] erfragen Sie als Ausbilder / Ausbilderin das momentane Stimmungsbild der Gruppe. Erfahren Sie in diesem Tool, wie Sie jeden Teilnehmenden einzeln und gezielt zu Wort kommen lassen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.slr-foto.de/galerie-landschaft/foto/blitz3_1717.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Blitzlicht","abstract") </script>

!Blitzlicht
<script> return "<<tiddler [[Blitzlicht##Overview]]>>" </script> 

!Objectives
* Stimmungsbild der Gruppe

!Timing
10min-20min

!Audience
Group / Individual

!Materials
*

!Procedure
Verschiedene Arten von Blitzlicht:
* ''Wassereimer:'' Auf dem Tisch stehen eine große Kanne mit Wasser und zwei Gefäße. Die Teilnehmer sind reihum aufgefordert aus der Kanne Wasser in die beiden Gefäße zu füllen. Dabei steht das eine Gefäß für die Dinge die einem gefallen haben, das andere für die Dinge die einem nicht gefallenhaben. <br> Wenn alle durch sind kann man noch in die Runde fragen, ob jemand seine Wasserverteilung kommentieren möchte. <br> Geht schnell. Eignet sich nur für grobes Meinungsbild. Alle beteiligen sich.<br><br>
* ''Rote und Grüne Karte:'' Es werden je eine rote und eine grüne Karte herum gegeben. Jeder Teilnehmer soll zur grünen Karte erzählen, was er gut fand, zur roten, was er schlecht fand. <br> Man bekommt gegebenenfalls Anregungen und Vorschläge. Dauert etwas länger. Bleibt oft unkonkret.<br><br>
* ''Rote, Grüne und Gelbe Karte:'' Jeder Teilnehmer bekommt drei Karten: eine rote, eine grüne und eine gelbe. Nun werden konkrete Aussagen in die Runde gegeben, z. B. //„Ich hab bis jetzt etwas gelernt”, „Ich habe mich auf dem Treffen wohl gefühlt”, „Eine solche Veranstaltung muss auf jeden Fall wieder stattfinden”.// <br>Die Teilnehmer sollen durch heben der roten, gelben oder grünen Karte ihre Ablehnung, Unentschlossenheit oder Zustimmung bekunden. <br> Liefert schnell ein Meinungsbild. Gibt keine Verbesserungsvorschläge.<br><br>
* ''~Misthaufen-Erntewagen:'' Auf großen Plakaten sind ein Misthaufen und ein Erntewagen gemalt. Die Teilnehmer schreiben in den Erntewagen was sie "als Ernte eingefahren haben" und auf den Misthaufen was sie "gleich auf den Mist werfen". <br> Liefert schriftliche Reflektion zum Auswerten. Dauert etwas. Benötigt Material und Platz.<br><br>
* ''Blitzlicht:'' In der Abschlussrunde sollen die Teilnehmer reihum ein abschließendes Statement in ein bis zwei Sätzen über die Aktion abgeben. <br> Geht schnell. Wird meist nicht konkret. "Minimallösung" wenn man nix anderes mehr vorbereiten konnte.<br><br>
* ''Kristallkugel:'' Eigentlich keine Reflektionsmethode, sondern eine Methode um Erwartungen der Teilnehmer abzufragen. <br> Man reicht eine virtuelle Kristallkugel rum. Die Teilnehmer sollen reihum in die Kristallkugel schauen und z. B. erläutern „was der morgige Tag auf dem Lager/dem Kurs bringt”, „was sie nach dem Kurs zu Hause erwartet” oder „was sie am Ende des Treffens mit nach Hause nehmen”.


!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Moderation]<<tiddlerList tags:"moderation,-newTemplate" header:"Übungen Besprechung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://www.lernwerkstatt.ch/dateien/Blitzlicht.pdf
<data>{"abstract":"Wenn sich ein [[Team]] in der [[Besprechung]] nicht einig ist, welche der vorgeschlagenen strategischen Maßnahmen zielführend ist, hilft die [[Bogenschießübung]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://images.pixelio.de/data/media/6/100_1982.jpg>> 
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Bogenschießübung","abstract") </script>

!Bogenschießübung
<script> return "<<tiddler [[Bogenschießübung##Overview]]>>" </script> 
Diskussionen über die richtige Strategie können quälend sein und zu stunden-, ja sogar tagelangen Meetings führen. 
Die [[Bogenschießübung]] nimmt diesen Diskussionen die Schärfe und fördert eine einvernehmliche Auswertung von möglichen Strategien.
Angenommen, ein [[Team]] erarbeitet — mittels [[Brainstorming]], [[SMAR Goals]], [[Triple Nickels]] od. anderer [[Kreativitätstechniken]] — eine ganze Reihe von strategischen Initiativen und ist davon überzeugt, dass diese das Unternehmen zum Erfolg führen. Dazu gehört auch die Aufstellung übergeordneter strategischer [[Ziele|Ziel]]. Wenn diese formuliert sind, kommt die [[Bogenschießübung]] zum Einsatz.

!Vorteil
Der Nutzen dieser Form der Visiualisierung ist schnell ersichtlich: Statt jede Maßnahme getrennt zu diskutieren, wobei ihr "Erfinder" gezwungen wird, sich zu rechtfertigen, kann hier relativ rasch auf einen Blick erkannt werden, wo Handlungsbedarf besteht.

!Objectives
* Formulierung strategischer [[Ziele|Ziel]].
* Diskussionen entschärfen 
* einvernehmliche Auswertung von möglichen Strategien

!Timing
10min

!Audience
Group / Individual

!Materials
* je strateg. Ziel eine "Zielscheibe"
* Haftzettel 

!Procedure
# Der Moderator hängt je Ziel eine Zielscheibe an die Wand. 
# Die zuvor ausgearbeiteten Initiativen bzw. Maßnahmen werden jeweils auf Haftzettel geschrieben. 
# Sodann entscheidet die Gruppe für jede Maßnahme, welches der erarbeiteten Ziele sie am ehestens fördert. 
# Der jeweilige Zettel wird auf der betreffenden Zielscheibe angebracht, und zwar je nach Bedeutung für das Ziel im Zentrum, auf den äußeren Ringen oder außerhalb der Zielscheibe. 
# Am Ende sieht man auf einen Blick, welches Ziel durch viele wichtige Maßnahmen unterstützt wird und ob vielleicht auch ein Ziel dabei ist, auf das sich keine der gewählten Maßnahmen konzentriert. 
# In diesem Fall wird die Gruppe aufgefordert, neue Initiativen zu entwickeln, um auch das "vernachlässigte" Ziel zu erreichen.

!Debriefing
Initiativen, die auf dem äußeren Ring oder gar außerhalb der Zielscheibe eines Ziels liegen, können vertagt oder ganz abgeblasen werden, wenn es gleichzeitig andere Maßnahmen ins Zentrum geschafft haben.

!Quelle
Bob Frisch / Logan Chandler: So gelingen Strategiekonferenzen, Harvard Businessmanager 9/2006 S. 85.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Besprechungen]<<tiddlerList tags:"meeting,-newTemplate" header:"Übungen Besprechung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Bogenschie%DF%FCbung+%28jt%29]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!Bottleneck Game
<script> return "<<tiddler [[Bottleneck Game##Overview]]>>" </script>

!Objectives

!Timing


!Audience
Group

!Materials
*

!Procedure

!Debriefing

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.agilecoach.net/coach-tools/bottleneck-game/
<data>{"abstract":"Spielerisch im [[Team]] Strategien festlegen und sich auf Regeln einigen ist eine ~Standard-Situation im Training — hier mit einem [[BüroBoule-Spiel|http://www.bueroboule.de]] als Medium. Hier eine Übung, zum Einsatz bei der [[Teamentwicklung|Teamentwicklung / Teambuilding]] mit Gruppen mit mehr als 10 Teilnehmern."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://www.tc-denzlingen.de/images/boule3.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Boule einmal anders","abstract") </script>

!Boule einmal anders
<script> return "<<tiddler [[Boule einmal anders##Overview]]>>" </script>

!Objectives
* Teambuilding
* Strategien / Regeln entwickeln

!Timing
45 min

!Audience
Group: mehr als 10 Teilnehmern


!Materials
* 2 [[BüroBoule-Sets|http://www.bueroboule.de]]


!Procedure
Man benötigt mindestens zwei [[BüroBoule-Sets|http://www.bueroboule.de]], drei 4er-Gruppen treten gegeneinander an und spielen klassisches Boule: Man versucht, möglichst viele seiner Kugeln nahe an das Schweinchen zu werfen. Die anderen Teilnehmer werden als Beobachter eingesetzt. Alle Teilnehmer haben gleiche Kugeln, so dass nur schwer zu erkennen ist, welche Kugel von wem aus welchem [[Team]] geworfen worden ist. Die Aufgabe an die Teilnehmer lautet schlicht: //"Seid siegreich, egal wie!"//

Zunächst werden den Gruppen 10 min. Zeit gegeben, um ein Vorgehen im [[Team]] zu diskutieren. [[Kommunikation]] zwischen den [[Teams|Team]] ist nicht erlaubt. Dann beginnt das Spiel. Nach den ersten zwei Würfen aus jedem [[Team]] gibt es eine 5 minütige Abstimmungspause, um erneut zu beraten. Danach wird dann die Partie zu Ende gespielt.


!Debriefing
Nach dem Spiel geben die Beobachter ihre Eindrücke ab und zeigen ~Optimierungs-Möglichkeiten auf. Anschließend wird eine weitere beobachtete ~Boule-Partie mit den gleichen [[Teams|Team]] gespielt. Die Aufgabe besteht darin, das Vorgehen zu verbessern. Eine Endreflexion über die erlebten Unterschiede zwischen den beiden Partien rundet die Übung ab.

Die Übung ist über die Ausgestaltung der Beobachtungsbögen vielfältig einsetzbar zu Themenschwerpunkten wie [[Teamarbeit]], [[Projektmanagement]] und [Prozessmanagement]], [[Organisationsentwicklung]], [[Kommunikation]] oder [[Planung]].


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Boule+einmal+anders+%28Wilms%29.html]]
/***
|Name|BreadcrumbsPlugin|
|Author|Eric Shulman|
|Source|http://www.TiddlyTools.com/#BreadcrumbsPlugin|
|Documentation|http://www.TiddlyTools.com/#BreadcrumbsPluginInfo|
|Version|2.1.4|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|list/jump to tiddlers viewed during this session plus "back" button/macro|
This plugin provides a list of links to all tiddlers opened during the session, creating a "trail of breadcrumbs" from one tiddler to the next, allowing you to quickly navigate to any previously viewed tiddler, or select 'home' to reset the display to the initial set of tiddlers that were open at the start of the session (i.e., when the document was loaded into the browser).
!!!!!Documentation
<<<
see [[BreadcrumbsPluginInfo]]
<<<
!!!!!Configuration
<<<
<<option chkCreateDefaultBreadcrumbs>> automatically create breadcrumbs display (if needed)
<<option chkShowBreadcrumbs>> show/hide breadcrumbs display
<<option chkReorderBreadcrumbs>> re-order breadcrumbs when visiting a previously viewed tiddler
<<option chkBreadcrumbsHideHomeLink>> omit 'Home' link from breadcrumbs display
<<option chkBreadcrumbsSave>> prompt to save breadcrumbs when 'Home' link is pressed
<<option chkShowStartupBreadcrumbs>> show breadcrumbs for 'startup' tiddlers
<<option chkBreadcrumbsReverse>> show breadcrumbs in reverse order (most recent first)
<<option chkBreadcrumbsLimit>> limit breadcrumbs display to {{twochar{<<option txtBreadcrumbsLimit>>}}} items
<<option chkBreadcrumbsLimitOpenTiddlers>> limit open tiddlers to {{twochar{<<option txtBreadcrumbsLimitOpenTiddlers>>}}} items

<<<
!!!!!Revisions
<<<
2011.02.16 2.1.4 in refresh(), use 'inline' instead of 'block' style (avoids unwanted linebreak).  In previousTiddler(), allow handling even if not in a tiddler so that back button can be placed in ~MainMenu or ~SidebarOptions.
| Please see [[BreadcrumbsPluginInfo]] for previous revision details |
2006.02.01 1.0.0 initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.BreadcrumbsPlugin= {major: 2, minor: 1, revision: 4, date: new Date(2011,2,16)};

var defaults={
	chkShowBreadcrumbs:		true,
	chkReorderBreadcrumbs:		true,
	chkCreateDefaultBreadcrumbs:	true,
	chkShowStartupBreadcrumbs:	false,
	chkBreadcrumbsReverse:		false,
	chkBreadcrumbsLimit:		false,
	txtBreadcrumbsLimit:		5,
	chkBreadcrumbsLimitOpenTiddlers:false,
	txtBreadcrumbsLimitOpenTiddlers:3,
	chkBreadcrumbsHideHomeLink:	false,
	chkBreadcrumbsSave:		false,
	txtBreadcrumbsHomeSeparator:	' | ',
	txtBreadcrumbsCrumbSeparator:	' > '
};
for (var id in defaults) if (config.options[id]===undefined)
	config.options[id]=defaults[id];

config.macros.breadcrumbs =  {
	crumbs: [], // the list of current breadcrumbs
	askMsg: "Save current breadcrumbs before clearing?\n"
		+"Press OK to save, or CANCEL to continue without saving.",
	saveMsg: 'Enter the name of a tiddler in which to save the current breadcrumbs',
	saveTitle: 'SavedBreadcrumbs',
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var area=createTiddlyElement(place,"span",null,"breadCrumbs",null);
		area.setAttribute("homeSep",params[0]||config.options.txtBreadcrumbsHomeSeparator);
		area.setAttribute("crumbSep",params[1]||config.options.txtBreadcrumbsCrumbSeparator);
		this.render(area);
	},
	add: function (title) {
		var thisCrumb = title;
		var ind = this.crumbs.indexOf(thisCrumb);
		if(ind === -1)
			this.crumbs.push(thisCrumb);
		else if (config.options.chkReorderBreadcrumbs)
			this.crumbs.push(this.crumbs.splice(ind,1)[0]); // reorder crumbs
		else
			this.crumbs=this.crumbs.slice(0,ind+1); // trim crumbs
		if (config.options.chkBreadcrumbsLimitOpenTiddlers)
			this.limitOpenTiddlers();
		this.refresh();
		return false;
	},
	getAreas: function() {
		var crumbAreas=[];
		// find all DIVs with classname=="breadCrumbs"
		var all=document.getElementsByTagName("*");
		for (var i=0; i<all.length; i++)
			try{ if (hasClass(all[i],"breadCrumbs")) crumbAreas.push(all[i]); } catch(e) {;}
		// or, find single DIV w/fixed ID (backward compatibility)
		var byID=document.getElementById("breadCrumbs")
		if (byID && !hasClass(byID,"breadCrumbs")) crumbAreas.push(byID);
		if (!crumbAreas.length && config.options.chkCreateDefaultBreadcrumbs) {
			// no crumbs display... create one
			var defaultArea = createTiddlyElement(null,"span",null,"breadCrumbs",null);
		 	defaultArea.style.display= "none";
			var targetArea= document.getElementById("tiddlerDisplay");
		 	targetArea.parentNode.insertBefore(defaultArea,targetArea);
			crumbAreas.push(defaultArea);
		}
		return crumbAreas;
	},
	refresh: function() {
		var crumbAreas=this.getAreas();
		for (var i=0; i<crumbAreas.length; i++) {
			crumbAreas[i].style.display = config.options.chkShowBreadcrumbs?"inline":"none";
			removeChildren(crumbAreas[i]);
			this.render(crumbAreas[i]);
		}
	},
	render: function(here) {
		var co=config.options; var out=""
		if (!co.chkBreadcrumbsHideHomeLink) {
			createTiddlyButton(here,"Home",null,this.home,"tiddlyLink tiddlyLinkExisting");
			out+=here.getAttribute("homeSep")||config.options.txtBreadcrumbsHomeSeparator;
		}
		for (c=0; c<this.crumbs.length; c++) // remove non-existing tiddlers from crumbs
			if (!store.tiddlerExists(this.crumbs[c]) && !store.isShadowTiddler(this.crumbs[c]))
				this.crumbs.splice(c,1);
		var count=this.crumbs.length;
		if (co.chkBreadcrumbsLimit && co.txtBreadcrumbsLimit<count) count=co.txtBreadcrumbsLimit;
		var list=[];
		for (c=this.crumbs.length-count; c<this.crumbs.length; c++) list.push('[['+this.crumbs[c]+']]');
		if (co.chkBreadcrumbsReverse) list.reverse();
		out+=list.join(here.getAttribute("crumbSep")||config.options.txtBreadcrumbsCrumbSeparator);
		wikify(out,here);
	},
	home: function() {
		var cmb=config.macros.breadcrumbs;
		if (config.options.chkBreadcrumbsSave && confirm(cmb.askMsg)) cmb.saveCrumbs();
		story.closeAllTiddlers(); restart();
		cmb.crumbs = []; var crumbAreas=cmb.getAreas();
		for (var i=0; i<crumbAreas.length; i++) crumbAreas[i].style.display = "none";
		return false;
	},
	saveCrumbs: function() {
		var tid=prompt(this.saveMsg,this.saveTitle); if (!tid||!tid.length) return; // cancelled by user
		var t=store.getTiddler(tid);
		if(t && !confirm(config.messages.overwriteWarning.format([tid]))) return;
		var who=config.options.txtUserName;
		var when=new Date();
		var text='[['+this.crumbs.join(']]\n[[')+']]';
		var tags=t?t.tags:[]; tags.pushUnique('story');
		var fields=t?t.fields:{};
		store.saveTiddler(tid,tid,text,who,when,tags,fields);
		story.displayTiddler(null,tid);
		story.refreshTiddler(tid,null,true);
		displayMessage(tid+' has been '+(t?'updated':'created'));
	},
	limitOpenTiddlers: function() {
		var limit=config.options.txtBreadcrumbsLimitOpenTiddlers; if (limit<1) limit=1;
		for (c=this.crumbs.length-1; c>=0; c--) {
			var tid=this.crumbs[c];
			var elem=story.getTiddler(tid);
			if (elem) { // tiddler is displayed
				if (limit <=0) { // display limit has been reached
					if (elem.getAttribute("dirty")=="true") { // tiddler is being edited
						var msg= "'"+tid+"' is currently being edited.\n\n"
							+"Press OK to save and close this tiddler\n"
							+"or press Cancel to leave it opened";
						if (confirm(msg)) {
							story.saveTiddler(tid);
							story.closeTiddler(tid);
						}
					}
					else story.closeTiddler(this.crumbs[c]);
				}
				limit--;
			}
		}
	}
};
//}}}
// // PreviousTiddler ('back') command and macro
//{{{
config.commands.previousTiddler = {
	text: 'back',
	tooltip: 'view the previous tiddler',
	handler: function(event,src,title) {
		var crumbs=config.macros.breadcrumbs.crumbs;
		if (crumbs.length<2) config.macros.breadcrumbs.home();
		else story.displayTiddler(story.findContainingTiddler(src),crumbs[crumbs.length-2]);
		return false;
	}
};
config.macros.previousTiddler= {
	label: 'back',
	prompt: 'view the previous tiddler',
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var label=params.shift(); if (!label) label=this.label;
		var prompt=params.shift(); if (!prompt) prompt=this.prompt;
		createTiddlyButton(place,label,prompt,function(ev){
			return config.commands.previousTiddler.handler(ev,this)
		});
	}
}
//}}}
// // HIJACKS
//{{{
// update crumbs when a tiddler is displayed
if (Story.prototype.breadCrumbs_coreDisplayTiddler==undefined)
	Story.prototype.breadCrumbs_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler) {
	var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
	this.breadCrumbs_coreDisplayTiddler.apply(this,arguments);
	if (!startingUp || config.options.chkShowStartupBreadcrumbs)
		config.macros.breadcrumbs.add(title);
}

// update crumbs when a tiddler is deleted
if (TiddlyWiki.prototype.breadCrumbs_coreRemoveTiddler==undefined)
	TiddlyWiki.prototype.breadCrumbs_coreRemoveTiddler=TiddlyWiki.prototype.removeTiddler;
TiddlyWiki.prototype.removeTiddler= function() {
	this.breadCrumbs_coreRemoveTiddler.apply(this,arguments);
	config.macros.breadcrumbs.refresh();
}
//}}}
<data>{"abstract":"[[Brillenwechsel]] dient dazu, neue Energie und [[Motivation]] in Situationen zu aktivieren, die uns zunächst hoffnunsglos erscheinen. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 20% auto title http://blog.une.edu.au/klausrohde/files/2007/03/perspektive-a.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Brillenwechsel","abstract") </script>
Einen [[Perspektivenwechsel|Perspektivwechsel]] ([[Reframing]]) kann zur Entfaltung von bisher unbenutzten Kräften führen, indem durch wenige einfache Fragen Situationen in ein neues Licht gesetzt werden.

!Brillenwechsel
<script> return "<<tiddler [[Brillenwechsel##Overview]]>>" </script>
Die folgende kleine Übung dient dazu, neue Energie und [[Motivation]] in Situationen zu aktivieren, die uns zunächst hoffnunsglos erscheinen.
Wir haben alle eine Wahl, wie wir Ereignisse in unserem Leben einstufen und weiter erzählen. Gerade in schwierigen Situationen tendieren Menschen dazu, sich unnötigerweise in eine Opferrolle ([[Drama-Dreieck]]) zu begeben und [[Verantwortung]] bzw. Schuld für gewisse Vorkommnisse auf andere zu schieben.

!Objectives
* Aktivierung von Energie und [[Motivation]] in scheinbar hofflungslosen Situationen
* Perspektivwechsel, Reframing

!Timing
20min

!Audience
Group / Individual

!Materials
* 3 unterschiedliche Brillen

!Procedure
Ein schönes Bild hierfür sind die drei Brillen "verspiegelt", "Weitsicht" und ""Breitsicht".

<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.der-rollenshop.de/catalog/images/brille_fellowschwarz.jpg>>
* ''Verspiegelte Brille:''  "Was würde eine andere Person in dieser Situation sagen und für welche Aspekte mag das auch stimmen?"
* ''~Weitsicht-Brille:'' "Wie werde ich diese Situation in sechs Monaten sehen?"
* ''~Breitsicht-Brille:'' "Egal wie diese Sache ausgeht, wie kann ich hiervon lernen und wachsen?"


!Debriefing



!Quelle
T. Schwartz: Manage Your Energy, Not Your Time, Harvard Business Review 10.2007.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Self-Management]<<tiddlerList tags:"self_management,-newTemplate" header:"Übungen Self-Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/db/topics/themenentry.php4?to_parebene=Brillenwechsel+%28pw%29&db=3]]
<data>{"abstract":"[[Brilliante Momente]] ist eine lösungsorientierte ~Paar-Übung, die aus drei Schritten besteht: 1. Herausfinden, was einen besonderen Moment im Arbeitsleben //brilliant// gemacht hat, 2. Wertschätzung dafür anbieten und 3. kleine Schritte erarbeiten, die auf den gefundenen Qualitäten und Stärken aufbauen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.angievanarsdale.com/wp-content/uploads/2008/07/20080510_1464.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Brilliante Momente","abstract") </script>

!Brilliante Momente
<<tiddler [[Brilliante Momente##Overview]]>>
Die Übung kann
* … kann zu Beginn von [[Teamcoaching-Sitzungen|Team-Coaching im Phasenmodell]] und Workshops und auch bei der Einführung in die lösungsorientierte Arbeit eingesetzt werden. Solange die Anleitungen klar und eindeutig gegeben werden, ist die Übung sehr einfach und die Teilnehmenden sind oft verblüfft darüber, wie viele Dinge sie dabei herausfinden, die für sie nützlich sind. Auch das Thema Wertschätzung ([[Appreciate Resources]], [[Appreciate Inquiry]]) wird dabei in einer sehr einfachen und hilfreichen Weise eingeführt.
* … bringt mit viel Schwung und Energie verschiedene Elemente des lösungsorientierten Ansatzes in einen Gesprächszusammenhang. Sie führt schnell zu einer ressourcenorientierten Unterhaltung ganz ohne "psychologischen Tiefgang". Im Gegenteil, sie ermutigt gerade dazu, "an der Oberfläche zu bleiben". Ganz häufig sind die Teilnehmenden verblüfft darüber, wie die Frage //"Was noch?"// ihnen hilft, eine Menge nützlicher Dinge zusammenzutragen und wie gut die Wertschätzung, die auf dem ersten Teil aufbaut, zu der Person passt, der sie gegeben wird.
* … zeigt außerdem, dass //"[[Anerkennung|Lob und Anerkennung]] geben"// keine besonders schwierige Fertigkeit ist. Sie kann schon auf der Basis eines kurzen und konzentrierten Zuhörens stimmig gegeben werden. 
Setting:
* Die Übung lässt sich mit Gruppen zwischen zwei und 300 Teilnehmenden durchführen. Sie ist sehr gut für Großveranstaltungen geeignet, da jede der drei Stufen kurz ist und ganz klar beschrieben werden kann.
* Das Ganze dauert 15 bis 20 Minuten, zusätzlich fünf bis 10 Minuten für eine Auswertung, falls gewünscht.
* Benötigt werden Papier und Stifte — und eine gerade Anzahl von Teilnehmenden (die Übung ist zu dritt sehr viel schwieriger, finden Sie also eine Möglichkeit, in Paaren zu arbeiten).

!Objectives
* Herausfinden, was einen besonderen Moment im Arbeitsleben "brillant" gemacht hat, 
* Wertschätzung dafür anbieten und 
* kleine Schritte erarbeiten, die auf den gefundenen Qualitäten und Stärken aufbauen.

!Timing
25 bis 30 Min

!Audience
Group; 2-300 Teilnehmer (gerade Anzahl)


!Materials
* Papier und Stifte

!Procedure
Wie Sie das ~Solution-Tool "Brillante Momente" einsetzen, zeigt unsere Anleitung von Mark ~McKergow. 


!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[Zur Homepage von Mark McKergow...| http://www.sfwork.com/]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://blog.nayima.be/wp-content/uploads/bvg_devteam.png>>
<<showtoc>>
!Overview
The [[Business Value Game]]  is a fun simulation that allows you to experiment with different ways of managing your project portfolio, [[estimating|Estimating Business Value]] [[Business Value]], prioritising projects and evaluating the [[ROI|Return on Investment]] of [[process improvement|Process Improvement]]. 
The term [[Business Value Game]] was created by Andrea Tomasini in 2007. The Business Value Game is based on the idea of [[Planning Poker]] popularized by Mike Cohn.

!Business Value Game
<<tiddler [[Business Value Game##Overview]]>>
It avoids anchoring by asking each stakeholder to play their estimate card so that it cannot be seen by the others and then all cards are exposed at once. 
It makes fun ;-)

!Objectives
* Product Backlog Management
* Helping [[Product Owners]] and [[Stakeholder]] in sharing information related to Business Values

!Timing
2h-4h

!Audience
Group

!Materials
* Egg timer
* Whiteboard
* Note cards

!Procedure
All the [[Stakeholder]] are invited to a meeting, generally time-boxed (2h-4h), called Product Management Board, where they will have to vote what is the [[Business Value]] of each of the feature that is at the moment defined into the [[Product Backlog]] (prioritized List of Features).
The important thing is that Business Value will be determined relatively and should be justified in one of the following main categories:
* ''New Business:'' every feature that will potentially bring new customers or new markets, will also bring a fresh flow of money
* ''Up Sell:'' every feature that will potentially bring money from existing customers and could be sold as add-on, upgrade or plug-in
* ''Retainment:'' every feature that will avoid losing customers and will avoid the company losing money as well
* ''Operational Efficiency:'' every feature that will allow the company to save money (costs) given a potential increase in any operation (installation, configuration, customization...)

The Product Management Board meeting proceeds as follows:
* The [[Product Owner]] (acting as moderator) will give the [[Stakeholder]] an overview of the features present in the [[Product Backlog]]. Stakeholder may ask questions and clarification on the features without going too much in details.
* The Stakeholder will have to choose a well understood feature as a baseline and agree on a [[Business Value]] to assign to it. This is value is not a “normal” number, but is one of the [[Business Value point|Business Value Point]] in the sequence: 100, 200, 300, 500, 800, 1200, 2000, 3000.
* Once the [[Baseline]] will be defined each individual owning a full deck of Business Value Game Cards, will lay a card face down representing his/her own estimate.
* Everyone calls their cards simultaneously by turning them over (face up).
* People with high estimates and low estimates are given a soap box to offer their justification for their estimate and then discussion continues. The justification has to be in respect to the aforementioned “Business Value” categories, often the value importance is also represented by the order: New Business, Up Sell, Retainment and Operational Efficiency.
* Repeat the estimation process until a consensus is reached.
* An egg timer is used to ensure that discussion is structured; the Moderator may at any point start over the egg timer and when it runs out all discussion must cease and round of poker is played.

!Debriefing
One of the hardest things to find out, when prioritizing features for a product is: What is the real [[Business Value]] of these features. Not every company in fact, has structured and marketing driven sales processes that can very well determine what is the value, or better potential value of a feature to ship on the market. 
The value of a feature is linked to the timeframe in which it will be delivered to the market,
therefore to determine its value is also a matter of being able to determine the right moment in time when to ship it. 
It is not uncommon that the [[Stakeholder]] in a company have to decide what is more important or “valuable” to be shipped next. What often happens is that these [[Stakeholder]] do not agree on priorities together, but they just drop their individual wishes to the development teams, or better to the [[Product Owners|Product Owner]] ([[Scrum]]), which find themselves in charge of discriminating between different stakeholder wishes and priorities.

How to archive a common agreement between the [[Stakeholder]] so that:
* The priorities are understood and defined for the company and not for individuals or specific departments only.
* All Stakeholder are aware and participate in defining what is more valuable to the company, without delegating the whole [[responsibility|Verantwortung]] to [[Product Owners]].
This has to be achieve in respect to the fact, that the [[Product Owner]] should be the “ultimate” [[role|Rolle]] that is in charge of defining product priorities and owns the product even if he/she may need to be supported from Market Experts, Customers, Key Account Managers…


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.dennisstevens.com/wp-content/uploads/2009/08/samplefindings.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.selfishprogramming.com/wp-content/uploads/2008/10/the-cake-eaters1.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
!!Allgemein
* http://www.xp.be/businessvaluegame.html
* http://www.agile42.com/cms/pages/business-value-game/
* [[The Business Value Game| http://media.agile42.com/content/Business_Value_Game.pdf]]
* http://blog.nayima.be/2008/08/15/the-business-value-game-v10-released/
!!Downloads
* [[Download the game instructions and materials in English (approx 3 Mb)| http://www.xp.be/html/BVGv2.zip]]
* [[Download the game instructions and materials in French (approx 3 Mb)| http://www.xp.be/html/BVGv2FR.zip]]
<data>{"abstract":"[[Bär-Verleihung]], jeder Teilnehmer überlegt sich eine kurze Laudation für den berühmten Schauspieler an seiner Seite. Gut zur Einstimmung auf kreative Reden…  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.spiegel.de/img/0,1020,804662,00.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Bär-Verleihung","abstract") </script>

!~Bär-Verleihung
<script> return "<<tiddler [[Bär-Verleihung##Overview]]>>" </script>
Anlässlich der Berlinale: Die Bär-Verleihung (der Bär kann z.B. bei einem firmeninternen Seminar mit dem Firmennamen bezeichnet werden, sozusagen ein Sonderpreis).
Die Übung eignet sich gut für eine kurze Auflockerung, für die Einstimmung auf kreative Reden oder auch, um Reden mit intensiver Betonung zu üben.


!Objectives
* Auflockerung, 
* Einstimmung auf kreative Reden 
* Üben intensiver Betonung

!Timing
15 Minuten


!Audience
Group / Individual

!Materials
* verschiedene Requisiten
* verschiedene Musikstücke zur Untermalung

!Procedure
Jeder Teilnehmer überlegt sich eine kurze Laudation für den berühmten Schauspieler an seiner Seite. Als Vorbereitungszeit reichen 5-10 Minuten. 
Anschließend wird die Laudatio an einem Rednerpult oder ähnlichem sehr theatralisch vorgetragen. 
Hilfreich sind dabei Requisiten, also z.B. ein tatsächlich zu überreichender Gegenstand oder etwas "Glamour" für das Rednerpult. 
Auch eine musikalische Untermalung ist hilfreich, um die Stimmung entsprechend zu gestalten.


!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Präsentation]<<tiddlerList tags:"presentation,-newTemplate" header:"Übungen Präsentation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/B%E4r-Verleihung+%28bp%29.html]]
<<slider chkSliderSideBarTabs SideBarTabs "Index »" "display the timeline">>
/***
|Name|CalendarPlugin|
|Source|http://www.TiddlyTools.com/#CalendarPlugin|
|Version|1.5.1|
|Author|[[EricShulman]]|
|Original Author|SteveRumsby|
|License|unknown|
|~CoreVersion|2.1|
|Type|plugin|
|Description|display monthly and yearly calendars|
NOTE: For //enhanced// date popup display, optionally install [[DatePlugin]] and [[ReminderMacros]]
!!!Usage:
<<<
|{{{<<calendar>>}}}|full-year calendar for the current year|
|{{{<<calendar year>>}}}|full-year calendar for the specified year|
|{{{<<calendar year month>>}}}|one month calendar for the specified month and year|
|{{{<<calendar thismonth>>}}}|one month calendar for the current month|
|{{{<<calendar lastmonth>>}}}|one month calendar for last month|
|{{{<<calendar nextmonth>>}}}|one month calendar for next month|
|{{{<<calendar +n>>}}}<br>{{{<<calendar -n>>}}}|one month calendar for a month +/- 'n' months from now|
<<<
!!!Configuration:
<<<
|''First day of week:''<br>{{{config.options.txtCalFirstDay}}}|<<option txtCalFirstDay>>|(Monday = 0, Sunday = 6)|
|''First day of weekend:''<br>{{{config.options.txtCalStartOfWeekend}}}|<<option txtCalStartOfWeekend>>|(Monday = 0, Sunday = 6)|

<<option chkDisplayWeekNumbers>> Display week numbers //(note: Monday will be used as the start of the week)//
|''Week number display format:''<br>{{{config.options.txtWeekNumberDisplayFormat }}}|<<option txtWeekNumberDisplayFormat >>|
|''Week number link format:''<br>{{{config.options.txtWeekNumberLinkFormat }}}|<<option txtWeekNumberLinkFormat >>|
<<<
!!!Revisions
<<<
2011.01.04 1.5.1 corrected parameter handling for {{{<<calendar year>>}}} to show entire year instead of just first month.  In createCalendarMonthHeader(), fixed next/previous month year calculation (use parseInt() to convert to numeric value).  Code reduction (setting options).
2009.04.31 1.5.0 rewrote onClickCalendarDate() (popup handler) and added config.options.txtCalendarReminderTags.  Partial code reduction/cleanup.  Assigned true version number (1.5.0)
2008.09.10 added '+n' (and '-n') param to permit display of relative months (e.g., '+6' means 'six months from now', '-3' means 'three months ago'.  Based on suggestion from Jean.
2008.06.17 added support for config.macros.calendar.todaybg
2008.02.27 in handler(), DON'T set hard-coded default date format, so that *customized* value (pre-defined in config.macros.calendar.journalDateFmt is used.
2008.02.17 in createCalendarYear(), fix next/previous year calculation (use parseInt() to convert to numeric value).  Also, use journalDateFmt for date linking when NOT using [[DatePlugin]].
2008.02.16 in createCalendarDay(), week numbers now created as TiddlyLinks, allowing quick creation/navigation to 'weekly' journals (based on request from Kashgarinn)
2008.01.08 in createCalendarMonthHeader(), 'month year' heading is now created as TiddlyLink, allowing quick creation/navigation to 'month-at-a-time' journals
2007.11.30 added 'return false' to onclick handlers (prevent IE from opening blank pages)
2006.08.23 added handling for weeknumbers (code supplied by Martin Budden (see 'wn**' comment marks).  Also, incorporated updated by Jeremy Sheeley to add caching for reminders (see [[ReminderMacros]], if installed)
2005.10.30 in config.macros.calendar.handler(), use 'tbody' element for IE compatibility.  Also, fix year calculation for IE's getYear() function (which returns '2005' instead of '105'). Also, in createCalendarDays(), use showDate() function (see [[DatePlugin]], if installed) to render autostyled date with linked popup.  Updated calendar stylesheet definition: use .calendar class-specific selectors, add text centering and margin settings
2006.05.29 added journalDateFmt handling
<<<
!!!Code
***/
//{{{
version.extensions.CalendarPlugin= { major: 1, minor: 5, revision: 1, date: new Date(2011,1,4)};

// COOKIE OPTIONS
var opts={
	txtCalFirstDay:				0,
	txtCalStartOfWeekend:		5,
	chkDisplayWeekNumbers:		false,
	txtCalFirstDay:				0,
	txtWeekNumberDisplayFormat:	'w0WW',
	txtWeekNumberLinkFormat:	'YYYY-w0WW',
	txtCalendarReminderTags:		'reminder'
};
for (var id in opts) if (config.options[id]===undefined) config.options[id]=opts[id];

// INTERNAL CONFIGURATION
config.macros.calendar = {
	monthnames:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
	daynames:['M','T','W','T','F','S','S'],
	todaybg:'#ccccff',
	weekendbg:'#c0c0c0',
	monthbg:'#e0e0e0',
	holidaybg:'#ffc0c0',
	journalDateFmt:'DD MMM YYYY',
	monthdays:[31,28,31,30,31,30,31,31,30,31,30,31],
	holidays:[ ] // for customization see [[CalendarPluginConfig]]
};
//}}}
//{{{
function calendarIsHoliday(date)
{
	var longHoliday = date.formatString('0DD/0MM/YYYY');
	var shortHoliday = date.formatString('0DD/0MM');
	for(var i = 0; i < config.macros.calendar.holidays.length; i++) {
		if(   config.macros.calendar.holidays[i]==longHoliday
		   || config.macros.calendar.holidays[i]==shortHoliday)
			return true;
	}
	return false;
}
//}}}
//{{{
config.macros.calendar.handler = function(place,macroName,params) {
	var calendar = createTiddlyElement(place, 'table', null, 'calendar', null);
	var tbody = createTiddlyElement(calendar, 'tbody');
	var today = new Date();
	var year = today.getYear();
	if (year<1900) year+=1900;

 	// get journal format from SideBarOptions (ELS 5/29/06 - suggested by MartinBudden)
	var text = store.getTiddlerText('SideBarOptions');
	var re = new RegExp('<<(?:newJournal)([^>]*)>>','mg'); var fm = re.exec(text);
	if (fm && fm[1]!=null) { var pa=fm[1].readMacroParams(); if (pa[0]) this.journalDateFmt = pa[0]; }

	var month=-1;
	if (params[0] == 'thismonth') {
		var month=today.getMonth();
	} else if (params[0] == 'lastmonth') {
		var month = today.getMonth()-1; if (month==-1) { month=11; year--; }
	} else if (params[0] == 'nextmonth') {
		var month = today.getMonth()+1; if (month>11) { month=0; year++; }
	} else if (params[0]&&'+-'.indexOf(params[0].substr(0,1))!=-1) {
		var month = today.getMonth()+parseInt(params[0]);
		if (month>11) { year+=Math.floor(month/12); month%=12; };
		if (month<0)  { year+=Math.floor(month/12); month=12+month%12; }
	} else if (params[0]) {
		year = params[0];
		if(params[1]) {
			month=parseInt(params[1])-1;
			if (month>11) month=11; if (month<0) month=0;
		}
	}

	if (month!=-1) {
		cacheReminders(new Date(year, month, 1, 0, 0), 31);
		createCalendarOneMonth(tbody, year, month);
	} else {
		cacheReminders(new Date(year, 0, 1, 0, 0), 366);
		createCalendarYear(tbody, year);
	}
	window.reminderCacheForCalendar = null;
}
//}}}
//{{{
// cache used to store reminders while the calendar is being rendered
// it will be renulled after the calendar is fully rendered.
window.reminderCacheForCalendar = null;
//}}}
//{{{
function cacheReminders(date, leadtime)
{
	if (window.findTiddlersWithReminders == null) return;
	window.reminderCacheForCalendar = {};
	var leadtimeHash = [];
	leadtimeHash [0] = 0;
	leadtimeHash [1] = leadtime;
	var t = findTiddlersWithReminders(date, leadtimeHash, null, 1);
	for(var i = 0; i < t.length; i++) {
		//just tag it in the cache, so that when we're drawing days, we can bold this one.
		window.reminderCacheForCalendar[t[i]['matchedDate']] = 'reminder:' + t[i]['params']['title']; 
	}
}
//}}}
//{{{
function createCalendarOneMonth(calendar, year, mon)
{
	var row = createTiddlyElement(calendar, 'tr');
	createCalendarMonthHeader(calendar, row, config.macros.calendar.monthnames[mon]+' '+year, true, year, mon);
	row = createTiddlyElement(calendar, 'tr');
	createCalendarDayHeader(row, 1);
	createCalendarDayRowsSingle(calendar, year, mon);
}
//}}}
//{{{
function createCalendarMonth(calendar, year, mon)
{
	var row = createTiddlyElement(calendar, 'tr');
	createCalendarMonthHeader(calendar, row, config.macros.calendar.monthnames[mon]+' '+ year, false, year, mon);
	row = createTiddlyElement(calendar, 'tr');
	createCalendarDayHeader(row, 1);
	createCalendarDayRowsSingle(calendar, year, mon);
}
//}}}
//{{{
function createCalendarYear(calendar, year)
{
	var row;
	row = createTiddlyElement(calendar, 'tr');
	var back = createTiddlyElement(row, 'td');
	var backHandler = function() {
		removeChildren(calendar);
		createCalendarYear(calendar, parseInt(year)-1);
		return false; // consume click
	};
	createTiddlyButton(back, '<', 'Previous year', backHandler);
	back.align = 'center';
	var yearHeader = createTiddlyElement(row, 'td', null, 'calendarYear', year);
	yearHeader.align = 'center';
	yearHeader.setAttribute('colSpan',config.options.chkDisplayWeekNumbers?22:19);//wn**
	var fwd = createTiddlyElement(row, 'td');
	var fwdHandler = function() {
		removeChildren(calendar);
		createCalendarYear(calendar, parseInt(year)+1);
		return false; // consume click
	};
	createTiddlyButton(fwd, '>', 'Next year', fwdHandler);
	fwd.align = 'center';
	createCalendarMonthRow(calendar, year, 0);
	createCalendarMonthRow(calendar, year, 3);
	createCalendarMonthRow(calendar, year, 6);
	createCalendarMonthRow(calendar, year, 9);
}
//}}}
//{{{
function createCalendarMonthRow(cal, year, mon)
{
	var row = createTiddlyElement(cal, 'tr');
	createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon], false, year, mon);
	createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon+1], false, year, mon);
	createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon+2], false, year, mon);
	row = createTiddlyElement(cal, 'tr');
	createCalendarDayHeader(row, 3);
	createCalendarDayRows(cal, year, mon);
}
//}}}
//{{{
function createCalendarMonthHeader(cal, row, name, nav, year, mon)
{
	var month;
	if (nav) {
		var back = createTiddlyElement(row, 'td');
		back.align = 'center';
		back.style.background = config.macros.calendar.monthbg;

		var backMonHandler = function() {
			var newyear = year;
			var newmon = mon-1;
			if(newmon == -1) { newmon = 11; newyear = parseInt(newyear)-1;}
			removeChildren(cal);
			cacheReminders(new Date(newyear, newmon , 1, 0, 0), 31);
			createCalendarOneMonth(cal, newyear, newmon);
			return false; // consume click
		};
		createTiddlyButton(back, '<', 'Previous month', backMonHandler);
		month = createTiddlyElement(row, 'td', null, 'calendarMonthname')
		createTiddlyLink(month,name,true);
		month.setAttribute('colSpan', config.options.chkDisplayWeekNumbers?6:5);//wn**
		var fwd = createTiddlyElement(row, 'td');
		fwd.align = 'center';
		fwd.style.background = config.macros.calendar.monthbg; 

		var fwdMonHandler = function() {
			var newyear = year;
			var newmon = mon+1;
			if(newmon == 12) { newmon = 0; newyear = parseInt(newyear)+1;}
			removeChildren(cal);
			cacheReminders(new Date(newyear, newmon , 1, 0, 0), 31);
			createCalendarOneMonth(cal, newyear, newmon);
			return false; // consume click
		};
		createTiddlyButton(fwd, '>', 'Next month', fwdMonHandler);
	} else {
		month = createTiddlyElement(row, 'td', null, 'calendarMonthname', name)
		month.setAttribute('colSpan',config.options.chkDisplayWeekNumbers?8:7);//wn**
	}
	month.align = 'center';
	month.style.background = config.macros.calendar.monthbg;
}
//}}}
//{{{
function createCalendarDayHeader(row, num)
{
	var cell;
	for(var i = 0; i < num; i++) {
		if (config.options.chkDisplayWeekNumbers) createTiddlyElement(row, 'td');//wn**
		for(var j = 0; j < 7; j++) {
			var d = j + (config.options.txtCalFirstDay - 0);
			if(d > 6) d = d - 7;
			cell = createTiddlyElement(row, 'td', null, null, config.macros.calendar.daynames[d]);
			if(d == (config.options.txtCalStartOfWeekend-0) || d == (config.options.txtCalStartOfWeekend-0+1))
				cell.style.background = config.macros.calendar.weekendbg;
		}
	}
}
//}}}
//{{{
function createCalendarDays(row, col, first, max, year, mon) {
	var i;
	if (config.options.chkDisplayWeekNumbers){
		if (first<=max) {
			var ww = new Date(year,mon,first);
			var td=createTiddlyElement(row, 'td');//wn**
			var link=createTiddlyLink(td,ww.formatString(config.options.txtWeekNumberLinkFormat),false);
			link.appendChild(document.createTextNode(
				ww.formatString(config.options.txtWeekNumberDisplayFormat)));
		}
		else createTiddlyElement(row, 'td');//wn**
	}
	for(i = 0; i < col; i++)
		createTiddlyElement(row, 'td');
	var day = first;
	for(i = col; i < 7; i++) {
		var d = i + (config.options.txtCalFirstDay - 0);
		if(d > 6) d = d - 7;
		var daycell = createTiddlyElement(row, 'td');
		var isaWeekend=((d==(config.options.txtCalStartOfWeekend-0)
			|| d==(config.options.txtCalStartOfWeekend-0+1))?true:false);
		if(day > 0 && day <= max) {
			var celldate = new Date(year, mon, day);
			// ELS 10/30/05 - use <<date>> macro's showDate() function to create popup
			// ELS 05/29/06 - use journalDateFmt 
			if (window.showDate) showDate(daycell,celldate,'popup','DD',
				config.macros.calendar.journalDateFmt,true, isaWeekend);
			else {
				if(isaWeekend) daycell.style.background = config.macros.calendar.weekendbg;
				var title = celldate.formatString(config.macros.calendar.journalDateFmt);
				if(calendarIsHoliday(celldate))
					daycell.style.background = config.macros.calendar.holidaybg;
				var now=new Date();
				if ((now-celldate>=0) && (now-celldate<86400000)) // is today?
					daycell.style.background = config.macros.calendar.todaybg;
				if(window.findTiddlersWithReminders == null) {
					var link = createTiddlyLink(daycell, title, false);
					link.appendChild(document.createTextNode(day));
				} else
					var button = createTiddlyButton(daycell, day, title, onClickCalendarDate);
			}
		}
		day++;
	}
}
//}}}
//{{{
// Create a pop-up containing:
// * a link to a tiddler for this date
// * a 'new tiddler' link to add a reminder for this date
// * links to current reminders for this date
// NOTE: this code is only used if [[ReminderMacros]] is installed AND [[DatePlugin]] is //not// installed.
function onClickCalendarDate(ev) { ev=ev||window.event;
	var d=new Date(this.getAttribute('title')); var date=d.formatString(config.macros.calendar.journalDateFmt);
	var p=Popup.create(this);  if (!p) return;
	createTiddlyLink(createTiddlyElement(p,'li'),date,true);
	var rem='\\n\\<\\<reminder day:%0 month:%1 year:%2 title: \\>\\>';
	rem=rem.format([d.getDate(),d.getMonth()+1,d.getYear()+1900]);
	var cmd="<<newTiddler label:[[new reminder...]] prompt:[[add a new reminder to '%0']]"
		+" title:[[%0]] text:{{store.getTiddlerText('%0','')+'%1'}} tag:%2>>";
	wikify(cmd.format([date,rem,config.options.txtCalendarReminderTags]),p);
	createTiddlyElement(p,'hr');
	var t=findTiddlersWithReminders(d,[0,31],null,1);
	for(var i=0; i<t.length; i++) {
		var link=createTiddlyLink(createTiddlyElement(p,'li'), t[i].tiddler, false);
		link.appendChild(document.createTextNode(t[i]['params']['title']));
	}
	Popup.show(); ev.cancelBubble=true; if (ev.stopPropagation) ev.stopPropagation(); return false;
}
//}}}
//{{{
function calendarMaxDays(year, mon)
{
	var max = config.macros.calendar.monthdays[mon];
	if(mon == 1 && (year % 4) == 0 && ((year % 100) != 0 || (year % 400) == 0)) max++;
	return max;
}
//}}}
//{{{
function createCalendarDayRows(cal, year, mon)
{
	var row = createTiddlyElement(cal, 'tr');
	var first1 = (new Date(year, mon, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
	if(first1 < 0) first1 = first1 + 7;
	var day1 = -first1 + 1;
	var first2 = (new Date(year, mon+1, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
	if(first2 < 0) first2 = first2 + 7;
	var day2 = -first2 + 1;
	var first3 = (new Date(year, mon+2, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
	if(first3 < 0) first3 = first3 + 7;
	var day3 = -first3 + 1;

	var max1 = calendarMaxDays(year, mon);
	var max2 = calendarMaxDays(year, mon+1);
	var max3 = calendarMaxDays(year, mon+2);

	while(day1 <= max1 || day2 <= max2 || day3 <= max3) {
		row = createTiddlyElement(cal, 'tr');
		createCalendarDays(row, 0, day1, max1, year, mon); day1 += 7;
		createCalendarDays(row, 0, day2, max2, year, mon+1); day2 += 7;
		createCalendarDays(row, 0, day3, max3, year, mon+2); day3 += 7;
	}
}
//}}}
//{{{
function createCalendarDayRowsSingle(cal, year, mon)
{
	var row = createTiddlyElement(cal, 'tr');
	var first1 = (new Date(year, mon, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
	if(first1 < 0) first1 = first1+ 7;
	var day1 = -first1 + 1;
	var max1 = calendarMaxDays(year, mon);
	while(day1 <= max1) {
		row = createTiddlyElement(cal, 'tr');
		createCalendarDays(row, 0, day1, max1, year, mon); day1 += 7;
	}
}
//}}}
//{{{
setStylesheet('.calendar, .calendar table, .calendar th, .calendar tr, .calendar td { text-align:center; } .calendar, .calendar a { margin:0px !important; padding:0px !important; }', 'calendarStyles');
//}}}
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.cityofsound.com/photos/uncategorized/drivers_pavement.jpg>>
<<showtoc>>
!Overview
Identify the relevant [[change drivers|Change Driver]], which [[Change Level]] (''I''ndividual, ''T''eam, or ''O''rganization) is affected, and the consequences of change.

!Change Drivers and Change Levels
<<tiddler [[Change Drivers and Change Levels##Overview]]>>
Through various learning processes, the consultant or facilitator assists the individual, unit and organization to comprehend and reflect the various aspects affecting them and to realize positive opportunities for change. 

!Objectives
* Identify relevant change drivers
* Identify which level (''I''ndividual, ''T''eam, or ''O''rganization) is affected by change
* Identify consequences of change

!Timing
45min

!Materials
* flipchart
* sticky dots
* index cards

!Audience
Group

!Procedure
# Get together in groups of 7-8. Identify a facilitator, a time keeper and a presenter. (5 minutes)
# Each group member identifies one change driver that affects them in person, their core team, or organization as a whole. Write those change drivers on paper cards and fix them at the pin board (column 1). Do not discuss these change drivers, all opinions are valid. Contradictions are appreciated! (10 minutes)
# After having finished with step one, each member of the group marks those change drivers that affect her/him personally, her/his team, or the organization as a whole. Use the sticky dots for marking those in column 2. Again, do not discuss this step. Differences are appreciated! (10 minutes)
# Discuss with the other group members, whether those change drivers affect individuals, teams, and/or the organization as a whole, and make corresponding remarks in column 3 (I=individual; T=Team; O=Organization). A change driver might affect only one of the three levels, or two, or all three. If you cannot agree, mark the respective field with a red arrow (10 minutes)
# Together as a group, identify one consequence for the organization as a result of the change driver. The [[facilitator|Facilitator]] writes them on a paper cards and fixes them at column 4. (10 minutes)
# Present your results in the plenary. 

{{center{<<wikify [img(%0,%1)[%2|%3][%3]] 90% auto title http://www.change-management-toolbook.com/file.php/1/change_drivers.gif>>}}}

!Debriefing


/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.change-management-toolbook.com/mod/book/view.php?id=74&chapterid=57
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://entrepreneurshipinabox.com/wp-content/uploads/ChResistance.png>>
<<showtoc>>
!Overview
[[Change Resistance Experiment]], a simple experiment shows: most people are not against [[change|Organizational Change]].


!Change Resistance
<<tiddler [[|Change Resistance##Overview]]>>
Make a simple experiment with any group of people in an organization.


!Objectives
* people are not against [[change|Organizational Change]].

!Timing
5 min

!Audience
Group / Individual

!Materials
* 

!Procedure
Draw a matrix on the floor. One axis is about change in personal life (from //"I seek for change in my life constantly"// to //"I love stability"//), and the other axis is about change at work (from //"I adapt easily when I am asked to be changed"// to //"I don't like to be changed"//). Ask people to find their space on the grid. You will find that most people will be in the quadrant that says //"I seek for change and I adapt easily"//, while they would say that their staff and bosses are in other quadrants. Isn't that a paradox?

{{center{
|<br>''Personal Change''<br><br> | <br>//"I seek for change in my life constantly"//<br><br> | <br>//"I seek for change in my life constantly"<br><br> // |
|<br>''Change at Work''<br><br> | <br>//"I adapt easily when I am asked to be changed"//<br><br> | <br>//"I don't like to be changed"//<br><br> |
}}}


!Debriefing

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.change-management-blog.com/
* [[gantthead.com: How Do People Learn to Adapt to Change?| http://www.gantthead.com/blog/Change-Thinking/2438/]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.cartoonstock.com/newscartoons/cartoonists/cga/lowres/cgan1035l.jpg>>
<<showtoc>>
!Overview
[[Check-In]]: start retrospectives, in fact more or less any meeting, by having the participants [[check in|Check-In]]. After introducing the retrospective and describing its purpose, the facilitator let each participant in a round-robin fashion answer some question asked. 

!~Check-In
<<tiddler [[Check-In##Overview]]>>
By having each participant speak in turn, the tone is set to show that during this meeting everyone is allowed and encouraged to be an equal participant. If we instead would just ask if someone wants to say something, those who are unsure, shy or quiet would probably not say anything and would be more keen on staying in that mode for the entire meeting.

!Objectives
* Set the Stage in a [[retrospective|Agile Retrospectives]]
* Help people what they want from the retrospective/meeting and put aside other concerns

!Timing
10min-20min

!Audience
Group

!Materials
* flipchart

!Procedure
# Ask one question that each participant can answer with a word or a short phrase
# Get in a round-robin fashion the answers 

!!Examples
* //"One word: what do you need for yourself from this session?"//
* //"In a word or two, what are your hopes for the retrospective?"//

The [[facilitator|Facilitator]] reminds people of the actions we had set ourselves from the last retrospective, then asks each person to complete the sentence: 
* //"If we were a military commando, and our mission was last retrospective’s actions, we would be ...".// <br>Options: Awarded medals, Promoted, Ready for another mission, Court-marshalled, Dead
* //"If we were an Oscar-nominated Actress, and (project name/retrospective scope) was our film, we would be ..."// <br>Options: Champagne already on ice, Quietly confident, Nervous, Drunk, Not even at the ceremony.
* //"If we were an Islington (/area you are based) traffic warden, and (project name/retrospective scope) was a parked car, how much would we fine it?"// 
* //"If we were a Crufts dog show judge, what breed would (project name/retrospective scope) be?" or "what category would it win?"// 
* //"If we were an interviewer on the Today programme, what question would we ask (project name/retrospective scope)?"//
* //"If we were at the Cheltenham race meeting today, what odds would we offer on (project name/retrospective scope)?"// 
* //"If we were an organic farmer, what would we think was the best of (project name/retrospective scope)'s crop?"// 
* //"If the project was a vehicle from a well known 80's TV show, it would be ..."// <br>Options: Airwolf, KITT, The ~A-Team Van, Del Boy's Reliant Robin 

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.hedgate.net/articles/2009/04/16/retrospective-exercise-doodle-checkin/
* http://agileretrospectivewiki.org/index.php?title=Check-in_Ideas
/***
|Name|CheckboxPlugin|
|Source|http://www.TiddlyTools.com/#CheckboxPlugin|
|Documentation|http://www.TiddlyTools.com/#CheckboxPluginInfo|
|Version|2.4.0|
|Author|[[EricShulman]] - 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|Add checkboxes to your tiddler content|
This plugin extends the TiddlyWiki syntax to allow definition of checkboxes that can be embedded directly in tiddler content.  Checkbox states are preserved by:
* by setting/removing tags on specified tiddlers,
* or, by setting custom field values on specified tiddlers,
* or, by saving to a locally-stored cookie ID,
* or, automatically modifying the tiddler content (deprecated)
When an ID is assigned to the checkbox, it enables direct programmatic access to the checkbox DOM element, as well as creating an entry in TiddlyWiki's config.options[ID] internal data.  In addition to tracking the checkbox state, you can also specify custom javascript for programmatic initialization and onClick event handling for any checkbox, so you can provide specialized side-effects in response to state changes.
!!!!!Documentation
>see [[CheckboxPluginInfo]]
!!!!!Revision History
<<<
2008.01.08 [*.*.*] plugin size reduction: documentation moved to [[CheckboxPluginInfo]]
2008.01.05 [2.4.0] set global "window.place" to current checkbox element when processing checkbox clicks.  This allows init/beforeClick/afterClick handlers to reference RELATIVE elements, including using "story.findContainingTiddler(place)".  Also, wrap handlers in "function()" so "return" can be used within handler code.
|please see [[CheckboxPluginHistory]] for additional revision details|
2005.12.07 [0.9.0] initial BETA release
<<<
!!!!!Code
***/
//{{{
version.extensions.CheckboxPlugin = {major: 2, minor: 4, revision:0 , date: new Date(2008,1,5)};
//}}}
//{{{
config.checkbox = { refresh: { tagged:true, tagging:true, container:true } };
config.formatters.push( {
	name: "checkbox",
	match: "\\[[xX_ ][\\]\\=\\(\\{]",
	lookahead: "\\[([xX_ ])(=[^\\s\\(\\]{]+)?(\\([^\\)]*\\))?({[^}]*})?({[^}]*})?({[^}]*})?\\]",
	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) {
			// get params
			var checked=(lookaheadMatch[1].toUpperCase()=="X");
			var id=lookaheadMatch[2];
			var target=lookaheadMatch[3];
			if (target) target=target.substr(1,target.length-2).trim(); // trim off parentheses
			var fn_init=lookaheadMatch[4];
			var fn_clickBefore=lookaheadMatch[5];
			var fn_clickAfter=lookaheadMatch[6];
			var tid=story.findContainingTiddler(w.output);  if (tid) tid=tid.getAttribute("tiddler");
			var srctid=w.tiddler?w.tiddler.title:null;
			config.macros.checkbox.create(w.output,tid,srctid,w.matchStart+1,checked,id,target,config.checkbox.refresh,fn_init,fn_clickBefore,fn_clickAfter);
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
		}
	}
} );
config.macros.checkbox = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!(tiddler instanceof Tiddler)) { // if no tiddler passed in try to find one
			var here=story.findContainingTiddler(place);
			if (here) tiddler=store.getTiddler(here.getAttribute("tiddler"))
		}
		var srcpos=0; // "inline X" not applicable to macro syntax
		var target=params.shift(); if (!target) target="";
		var defaultState=params[0]=="checked"; if (defaultState) params.shift();
		var id=params.shift(); if (id && !id.length) id=null;
		var fn_init=params.shift(); if (fn_init && !fn_init.length) fn_init=null;
		var fn_clickBefore=params.shift();
		if (fn_clickBefore && !fn_clickBefore.length) fn_clickBefore=null;
		var fn_clickAfter=params.shift();
		if (fn_clickAfter && !fn_clickAfter.length) fn_clickAfter=null;
		var refresh={ tagged:true, tagging:true, container:false };
		this.create(place,tiddler.title,tiddler.title,0,defaultState,id,target,refresh,fn_init,fn_clickBefore,fn_clickAfter);
	},
	create: function(place,tid,srctid,srcpos,defaultState,id,target,refresh,fn_init,fn_clickBefore,fn_clickAfter) {
		// create checkbox element
		var c = document.createElement("input");
		c.setAttribute("type","checkbox");
		c.onclick=this.onClickCheckbox;
		c.srctid=srctid; // remember source tiddler
		c.srcpos=srcpos; // remember location of "X"
		c.container=tid; // containing tiddler (may be null if not in a tiddler)
		c.tiddler=tid; // default target tiddler 
		c.refresh = {};
		c.refresh.container = refresh.container;
		c.refresh.tagged = refresh.tagged;
		c.refresh.tagging = refresh.tagging;
		place.appendChild(c);
		// set default state
		c.checked=defaultState;
		// track state in config.options.ID
		if (id) {
			c.id=id.substr(1); // trim off leading "="
			if (config.options[c.id]!=undefined)
				c.checked=config.options[c.id];
			else
				config.options[c.id]=c.checked;
		}
		// track state in (tiddlername|tagname) or (fieldname@tiddlername)
		if (target) {
			var pos=target.indexOf("@");
			if (pos!=-1) {
				c.field=pos?target.substr(0,pos):"checked"; // get fieldname (or use default "checked")
				c.tiddler=target.substr(pos+1); // get specified tiddler name (if any)
				if (!c.tiddler || !c.tiddler.length) c.tiddler=tid; // if tiddler not specified, default == container
				if (store.getValue(c.tiddler,c.field)!=undefined)
					c.checked=(store.getValue(c.tiddler,c.field)=="true"); // set checkbox from saved state
			} else {
				var pos=target.indexOf("|"); if (pos==-1) var pos=target.indexOf(":");
				c.tag=target;
				if (pos==0) c.tag=target.substr(1); // trim leading "|" or ":"
				if (pos>0) { c.tiddler=target.substr(0,pos); c.tag=target.substr(pos+1); }
				if (!c.tag.length) c.tag="checked";
				var t=store.getTiddler(c.tiddler);
				if (t && t.tags)
					c.checked=t.isTagged(c.tag); // set checkbox from saved state
			}
		}
		// trim off surrounding { and } delimiters from init/click handlers
		if (fn_init) c.fn_init="(function(){"+fn_init.trim().substr(1,fn_init.length-2)+"})()";
		if (fn_clickBefore) c.fn_clickBefore="(function(){"+fn_clickBefore.trim().substr(1,fn_clickBefore.length-2)+"})()";
		if (fn_clickAfter) c.fn_clickAfter="(function(){"+fn_clickAfter.trim().substr(1,fn_clickAfter.length-2)+"})()";
		c.init=true; c.onclick(); c.init=false; // compute initial state and save in tiddler/config/cookie
	},
	onClickCheckbox: function(event) {
		window.place=this;
		if (this.init && this.fn_init) // custom function hook to set initial state (run only once)
			{ try { eval(this.fn_init); } catch(e) { displayMessage("Checkbox init error: "+e.toString()); } }
		if (!this.init && this.fn_clickBefore) // custom function hook to override changes in checkbox state
			{ try { eval(this.fn_clickBefore) } catch(e) { displayMessage("Checkbox onClickBefore error: "+e.toString()); } }
		if (this.id)
			// save state in config AND cookie (only when ID starts with 'chk')
			{ config.options[this.id]=this.checked; if (this.id.substr(0,3)=="chk") saveOptionCookie(this.id); }
		if (this.srctid && this.srcpos>0 && (!this.id || this.id.substr(0,3)!="chk") && !this.tag && !this.field) {
			// save state in tiddler content only if not using cookie, tag or field tracking
			var t=store.getTiddler(this.srctid); // put X in original source tiddler (if any)
			if (t && this.checked!=(t.text.substr(this.srcpos,1).toUpperCase()=="X")) { // if changed
				t.set(null,t.text.substr(0,this.srcpos)+(this.checked?"X":"_")+t.text.substr(this.srcpos+1),null,null,t.tags);
				if (!story.isDirty(t.title)) story.refreshTiddler(t.title,null,true);
				store.setDirty(true);
			}
		}
		if (this.field) {
			if (this.checked && !store.tiddlerExists(this.tiddler))
				store.saveTiddler(this.tiddler,this.tiddler,"",config.options.txtUserName,new Date());
			// set the field value in the target tiddler
			store.setValue(this.tiddler,this.field,this.checked?"true":"false");
			// DEBUG: displayMessage(this.field+"@"+this.tiddler+" is "+this.checked);
		}
		if (this.tag) {
			if (this.checked && !store.tiddlerExists(this.tiddler))
				store.saveTiddler(this.tiddler,this.tiddler,"",config.options.txtUserName,new Date());
			var t=store.getTiddler(this.tiddler);
			if (t) {
				var tagged=(t.tags && t.tags.indexOf(this.tag)!=-1);
				if (this.checked && !tagged) { t.tags.push(this.tag); store.setDirty(true); }
				if (!this.checked && tagged) { t.tags.splice(t.tags.indexOf(this.tag),1); store.setDirty(true); }
			}
			// if tag state has been changed, update display of corresponding tiddlers (unless they are in edit mode...)
			if (this.checked!=tagged) {
				if (this.refresh.tagged) {
					if (!story.isDirty(this.tiddler)) // the TAGGED tiddler in view mode
						story.refreshTiddler(this.tiddler,null,true); 
					else // the TAGGED tiddler in edit mode (with tags field)
						config.macros.checkbox.refreshEditorTagField(this.tiddler,this.tag,this.checked);
				}
				if (this.refresh.tagging)
					if (!story.isDirty(this.tag)) story.refreshTiddler(this.tag,null,true); // the TAGGING tiddler
			}
		}
		if (!this.init && this.fn_clickAfter) // custom function hook to react to changes in checkbox state
			{ try { eval(this.fn_clickAfter) } catch(e) { displayMessage("Checkbox onClickAfter error: "+e.toString()); } }
		// refresh containing tiddler (but not during initial rendering, or we get an infinite loop!) (and not when editing container)
		if (!this.init && this.refresh.container && this.container!=this.tiddler)
			if (!story.isDirty(this.container)) story.refreshTiddler(this.container,null,true); // the tiddler CONTAINING the checkbox
		return true;
	},
	refreshEditorTagField: function(title,tag,set) {
		var tagfield=story.getTiddlerField(title,"tags");
		if (!tagfield||tagfield.getAttribute("edit")!="tags") return; // if no tags field in editor (i.e., custom template)
		var tags=tagfield.value.readBracketedList();
		if (tags.contains(tag)==set) return; // if no change needed
		if (set) tags.push(tag); // add tag
		else tags.splice(tags.indexOf(tag),1); // remove tag
		for (var t=0;t<tags.length;t++) tags[t]=String.encodeTiddlyLink(tags[t]);
		tagfield.value=tags.join(" "); // reassemble tag string (with brackets as needed)
		return;
	}
}
//}}}
<data>{"abstract":"Eine kleine Checkliste zur genaueren Analyse eines bestehenden Problems.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.grusskartenkoenig.de/images/de/ecards/konfuzius_sagt/wer_einen_fehler_begeht.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Checkliste zur Problemidentifikation","abstract") </script>

!Checkliste zur Problemidentifikation
Die Teilnehmer einer [[Problemlösungsgruppe|Problemlösung]] müssen zuerst herausfinden, wo der Kern des vorhandenen Problems liegt, bevor sie Lösungsvarianten erarbeiten können. Die folgende [[Checkliste]] hilft, ein bestehendes Problem einzugrenzen und richtig zu identifizieren:
* Inwieweit sind die Dinge anders, als sie sein sollten?
* Was genau ist der Fehler? Welche anderen [[Fehler]] hätten erkannt werden können?
* Wann hat das Problem genau begonnen? Was geschah danach?
* Wann tritt das Problem auf und wann nicht?
* Hat man in letzter Zeit irgendetwas verändert, das diese Problemsituation verursacht haben könnte?
* Warum war mehrere Jahre lang alles in Ordnung?
* Wo ist der [[Fehler]] beobachtet worden? Wo hätte der [[Fehler]] auch festgestellt werden können?
* Wie stellen wir fest, wann das Problem auftritt?
* Was wissen wir noch nicht über dieses Problem?


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline|http://mwonline.de/db/topics/themenentry.php3?to_parebene=Ideenfabrik&db=3]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.netzwerk.li/Portals/0/Content/Stuhlkreis%20Gruppe.JPG>>
<<showtoc>>
!Overview
[[Circle of Questions]]: we all sit in a circle and, one at a time, ask the person to our left a question regarding something that was posted, as well as ask what they think we could do to improve. After a few rounds of the circle we usually come to a goal of sorts… something we can help plan for the next iteration to improve. 
Building off the communication example, this can come about by identifying four important keys to communication that make it meaningful… something we can use a radar to track daily or at the beginning of the next retrospective

!Circle of Questions
<<tiddler [[Circle of Questions##Overview]]>>

!Objectives
* Gather Data, Generate Insights in a [[retrospective|Agile Retrospectives]]

!Timing
30min

!Audience
Group

!Materials
* 

!Procedure
# The group sits in a circle, 
# Going around the circle, each person takes a turn asking a question to the person on their immediate left. The question can be about anything they like (barring anything offensive or attacking), but it’s helpful to focus on something relevant to this group and its history/activities. 
# The person to the left answers the question to the best of their ability, and then they ask the person to their left any other question (or the same question if they feel they’d like a better answer). 
# This continues until the allotted time is up, or until you have gone around the entire circle twice, whichever comes last. 

Make sure you go around the complete circle: if some people in the group get more turns to ask or answer a question than others, it can send the wrong message.

Variations
* After the first time around, reverse direction
* After the first time around, have every second person get up and change places
* Go around more than twice

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] 40% auto title http://praxisintakt.beepworld.de/files/stuhlkreis.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.corpuslinea.de/_img/inhalt/stuhlkreis.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.stevenlist.com/blog/2009/02/15/circle-of-questions/
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.vca.ag/typo3temp/pics/d4e983e306.jpg>>
<<showtoc>>
!Video
/%
|Name|Cobit Games Trailer|
|URL|http://www.youtube.com/v/z2WLY-TP2R0|
|Description|The [[COBIT Games|Cobit Games Trailer]] is an interactive simulation, where participants have to prepare the city of Concordia for hosting the upcoming Olympic Games. By preparing the infrastructure of the city, participants learn about the underlying aspects of [[IT governance|IT Governance]]. Additionally, they will learn to recognize how the adoption of a process and control framework can help achieve better business alignment, deliver value, manage risks and resources, and measure performance.<br>The COBIT Foundation course with the COBIT Games is a highly interactive and engaging classroom learning experience. This training program explains the elements and supporting materials of the [[COBIT framework|Control Objectives for Information and Related Technology]] in a logical and example-driven approach for everyone interested in obtaining foundation-level knowledge of COBIT.|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/z2WLY-TP2R0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/z2WLY-TP2R0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!Overview
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!Objectives
* To recognize symptoms of poor governance
* To understand the 5 focus areas of Governance
* IT Governance: Adding value to the business while managing risks vs. returns over IT and its processes

!Timing

!Materials
* Playing board, chance cards, project cards

!Audience
Group

!Procedure
The [[COBIT Games|Cobit Games Trailer]] is played in four rounds, each round taking about an hour to fully complete. You will need to pay close attention to the lecture sessions in the classroom course as every game round will introduce elements that are discussed in the classroom sessions. Every round has specific goals and objectives and you will need to apply principles of [[IT Governance]] and [[COBIT|Control Objectives for Information and Related Technology]] to meet these goals.

!!Round 1
Your team will Plan for the Development of Concordia to host the Olympic Games. Don’t expect this round to be easy, the Steering Committee Members will meet with the Project Managers and Developers to create an overall plan to prepare for the Olympics and there will COBIT Game Dashboardbe some interesting discussions!
Round 1 will teach you:
* To recognize symptoms of poor governance
* To understand the 5 focus areas of Governance
* IT Governance: Adding value to the business while managing risks vs. returns over IT and its processes
* To understand the characteristics of the COBIT Domains
* The impact that external regulatory requirements can have on the business.

!!Round 2
You will build your first projects in Concordia, from restructuring downtown and building canals for watertaxi’s to hiring road reporters to cover long distance sports such as marathons and cycling events. All projects vary in cost, benefit, risk and will all have a positive or negative impact on the people living in Concordia.
Beware of the chance cards (based on the four COBIT Domains (PO, AI, DS, ME) that might, or might not be of help!

!!Round 3
Round 3 will give you time to continue building your projects where you will also be able to outsource or enhance efficiency to free up some resources.

In round 3 you will learn:
To understand the characteristics of the COBIT Domains (PO, AI, DS, ME); with specific focus on DS and ME. To understand the need to measure performance to achieve IT goals.

!!Round 4
This is going to be challenging round, since you and your team members will have to complete the projects while also being challenged with significantly changing business requirements that affect your existing pending and completed projects!

Round 4 will show you:
The impact that external regulatory requirements can have on the business.

!Debriefing

!Credits
* [[ISACA|http://www.isaca.org]]
* http://www.cobitgames.com


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.cobitgames.com/images/cobit-game-dashborad-big.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.cobitgames.com/images/Change-Cards-big.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.cobitgames.com/images/Project-Cards-big.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>> %/
---- }}}
===


!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* [[Course Factsheet| http://www.cobitgames.com/FS_COB1023CL_140109_Letter_EN.pdf]]
* <<tiddler [[Cobit Games Trailer::URL]]>>
* http://www.cobitgames.com
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.usmoneyreserve.com/images/gold_coin_splash.png>>
<<showtoc>>
!Overview
[[Coin Sorting]] is an interactive game illustrating the importance of understanding customer goals and requirements

!Coin Sorting
<<tiddler [[Coin Sorting##Overview]]>>

!Objectives
* Understande customer goals and requirements.
* Timelines are often set without due diligence.
* Assumptions are often made without involving the customer.

!Timing
20 mins

!Materials
* Many coins of varying denominations

!Audience
Group / Individual

!Procedure
A customer wants to hire the subcontracting vendor who provides the quickest estimate to sorting a bag of coins. 
# Have teams of participants bid on the project by shouting out bids (in seconds). 
# Let all the teams attempt the exercise and hold them to their bids by timing them. 
# After they have finished, point out that what the customer actually wanted, was to have the coins sorted by date, not denomination.

!Debriefing
* Timelines are often set without due diligence.
* Assumptions are often made without involving the customer. These assumptions may hold true all the way to production.
* If a team had first sorted a sample of coins and demonstrated for feedback, the problem would have been caught before it became too costly.

!Credits
Michael ~McCullough

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/coin-sorting/
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.2010vancouver.ca/origami.jpg>>
<<showtoc>>
!Overview
Game Objectives of [[Collaborative Origami]]: collaboration leads to faster results and better quality,
communication barriers on geographically dispersed teams can be disastrous, even if there is unlimited verbal communication, visual maps are a useful communication tool.

!Collaborative Origami
<script> return "<<tiddler [[Collaborative Origami##Overview]]>>" </script>

!Objectives
* Collaboration leads to faster results and better quality, 
* Communication barriers on geographically dispersed teams can be disastrous
* Visual maps are a useful communication tool.

!Timing
15 mins

!Audience
Group

!Materials
* [[Origami instructions|http://www.origami-instructions.com/index.html]] or [[like this one (TastyCupCakes)| http://blog.tastycupcakes.com/wp-content/uploads/2010/12/Origami-Instructions-Improving.pdf]] or [[origami jumping frog| http://www.origami-fun.com/support-files/origami-jumping-frog-print.pdf]] for half the participants
* Blank standard sized printer paper for half the participants

!Procedure
Pair up participants and provide an instruction sheet (face down) to one person in each pair (the “instructor”), and provide a blank sheet of paper to the other member of the pair (the “folder”). Split the pairs into three groups:
* Group 1 sits side-by-side,
* Group 2 sits face-to-face, and
* Group 3 sits back-to-back.

On “Go!” the person with the instruction sheet flips it over and instructs the other member of the pair how to fold the origami.
* In Group 1, one person folds, but both can consult the instruction sheet as much as needed.
* In Group 2, the folder must not see the instruction sheet, but the instructor can watch the folder and provide feedback on progress.
* In Group 3, the instructor and the folder cannot see each other, but they can talk (over their shoulders) as much as possible.

As each group successfully completes the origami item, have them stand up. The [[facilitator|Facilitator]] may cut it off after a period of time, because Group 3 may not successfully finish.

!Debriefing
* Collaboration leads to faster results and better quality.
* Communication barriers on geographically dispersed teams can be disastrous, even if there is unlimited verbal communication.
* Visual maps are a useful communication tool.

!Credits
Michael ~McCullough

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/collaborative-origami/
<data>{"abstract":"Mit der [[Collage-Übung]] erleben [[Führungskräfte|Führung]] einen [[Changeprozess|Organizational Change Model]] praktisch im //Zeitraffer// — mit allen Emotionen und Unsicherheiten, die auch die Mitglieder durchleben."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.erdzeichen.de/Der_Kunstler/Collage/willi_collage_mittel.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Collage-Übung","abstract") </script>

!~Collage-Übung
<script> return "<<tiddler [[Collage-Übung##Overview]]>>" </script> 
 [[Veränderungen|Organizational Change]] sind nicht selten schmerzhaft, viele [[Führungskräfte|Führung]] unterschätzen die Emotionen, die durch [[Change-Projekte|Organizational Change Project]] ausgelöst werden. 
In Workshops mit Führungskräften können die ablaufenden Prozesse nachgebildet werden, z.B. durch den Einsatz künstlerischer Methoden wie der Collage-Übung.

Besonderer Charme an der Übung: Die Teilnehmer nehmen ihr neues Bild mit nach Hause und werden so an ihre [[Erfahrungen|Erfahrung]] erinnert. Später kann man in weiteren Veranstaltungen daran anknüpfen.

!Objectives
* Changeprozess im Zeitraffer erleben

!Timing
30min

!Audience
Group


!Materials
* verschiedene Bilder/Fotos
* Schere, Kleber

!Procedure
# Dazu wird den teilnehmenden Führungskräften eine Auswahl von Bildern gezeigt, von denen sich jede eines, das ihr besonders gut gefällt, aussucht. 
# Sodann erläutert jeder kurz, was ihm an dem Bild gefällt. Anschließend fordert der Trainer die Teilnehmer auf, ihre Bilder zu tauschen und das Bild des Kollegen in 10 Teile zu schneiden.
# Danach bekommen die Teilnehmer fünf Teile ihres Bildes zurück und sollen daraus ein neues Bild entwerfen — wobei sie auch ganz neue Wege gehen dürfen. <br> Welche Utensilien sie dazu nutzen, bleibt ihnen überlassen.


!Debriefing
Die Reflexion beschäftigt sich mit Fragen wie:
* Wie fühlten sich die Teilnehmer, als "ihr" Bild zerstört wurde?
* Wie ging es ihnen, als sie vor der Aufgabe standen, etwas Neues zu schaffen und dabei nicht auf "Bewährtes" zurückgreifen konnten?
* Wie ging es ihnen, als das neue Bild entstand und Form annahm? 

!Quelle
Elke ~Pfeifer-Nagel: Changemanagement: Bilder zerstören und neue entwerfen, Wirtschaftspsychologie aktuell, 4/2007, S.16-17

!See also

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php4?to_parebene=Collage-%DCbung+%28jt%29&db=3]]
* [[Loslassen Changemanagement als Kunst| http://www.business-wissen.de/organisation/veraenderungsmanagement/fachartikel/loslassen-changemanagement-als-kunst.html]]
/***
|Name|CollapseTiddlersPlugin|
|Source|http://www.TiddlyTools.com/#CollapseTiddlersPlugin|
|Version|2.0.0|
|Author|[[EricShulman]]|
|OriginalAuthor|Bradley Meck - http://gensoft.revhost.net/Collapse.html|
|License|unknown|
|~CoreVersion|2.1|
|Type|plugin|
|Requires|CollapsedTemplate|
|Description|show/hide content of a tiddler while leaving tiddler title visible|
This plugin provides commands to quickly switch a rendered tiddler between its current ViewTemplate display and a minimal display (title and toolbar) defined by a separate CollapsedTemplate.
!!!Usage
<<<
In [[ToolbarDefinitions::ViewToolbar|ToolbarDefinitions]], add:
{{{
collapseTiddler collapseOthers
}}}
you can also embed the following macros in tiddler content:
*{{{<<collapseAll>>}}} - adds 'collapse all' command that applies CollapsedTemplate to each displayed tiddler
*{{{<<expandAll>>}}} - adds 'expand all' command that re-applies ViewTemplate (or equivalent custom template) to each displayed tiddler
*{{{<<foldFirst>>}}} - immediately apply CollapsedTemplate to a given tiddler, as soon as it is displayed.
<<<
!!!Revisions
<<<
2009.05.04 [2.0.0] standardized documentation and added version #
2008.10.05 collapseAll() and expandAll(): added "return false" to button handlers to prevent IE page transition
2008.03.06 refactored all code for size reduction, readability, and I18N/L10N-readiness.  Also added 'folded' flag to tiddler elements (for use by other plugins that need to know if tiddler is folded (e.g., [[SinglePageModePlugin]]
2007.10.11 moved [[FoldFirst]] inline script and converted to {{{<<foldFirst>>}}} macro
2007.12.09 suspend/resume SinglePageMode (SPM/TPM/BPM) when folding/unfolding tiddlers
2007.05.06 add "return false" at the end of each command handler to prevent IE 'page transition' problem.
2007.03.30 add a shadow definition for CollapsedTemplate.  Tweak ViewTemplate shadow so "fold/unfold" and "focus" toolbar items automatically appear when using default templates.  Remove error check for "CollapsedTemplate" existence, since shadow version will now always work as a fallback.
2006.02.24 added fallback to "CollapsedTemplate" if "WebCollapsedTemplate" is not found
2006.02.06 added check for 'readOnly' flag to use alternative "WebCollapsedTemplate"
<<<
!!!Code
***/
//{{{
version.extensions.CollapseTiddlersPlugin= {major: 2, minor: 0, revision: 0, date: new Date(2009,5,4)};

config.shadowTiddlers.CollapsedTemplate=
	"<!--{{{-->\
	<div class='toolbar' macro='toolbar expandTiddler collapseOthers closeTiddler closeOthers +editTiddler permalink references jump'></div>\
	<div class='title' macro='view title'></div>\
	<!--}}}-->";

// automatically tweak shadow ViewTemplate to add "collapseTiddler collapseOthers" commands
config.shadowTiddlers.ViewTemplate=config.shadowTiddlers.ViewTemplate.replace(/closeTiddler/,"collapseTiddler collapseOthers closeTiddler");

config.commands.collapseTiddler = {
	text: "fold",
	tooltip: "Collapse this tiddler",
	collapsedTemplate: "CollapsedTemplate",
	webCollapsedTemplate: "WebCollapsedTemplate",
	handler: function(event,src,title) {
		var e = story.findContainingTiddler(src); if (!e) return false;
		// don't fold tiddlers that are being edited!
		if(story.isDirty(e.getAttribute("tiddler"))) return false;
		var t=config.commands.collapseTiddler.getCollapsedTemplate();
		config.commands.collapseTiddler.saveTemplate(e);
		config.commands.collapseTiddler.display(title,t);
		e.setAttribute("folded","true");
		return false;
	},
	getCollapsedTemplate: function() {
		if (readOnly&&store.tiddlerExists(this.webCollapsedTemplate))
			return this.webCollapsedTemplate;
		else
			return this.collapsedTemplate
	},
	saveTemplate: function(e) {
		if (e.getAttribute("savedTemplate")==undefined)
			e.setAttribute("savedTemplate",e.getAttribute("template"));

	},
	// fold/unfold tiddler with suspend/resume of single/top/bottom-of-page mode
	display: function(title,t) {
		var opt=config.options;
		var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
		var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
		var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
		story.displayTiddler(null,title,t);
		opt.chkBottomOfPageMode=saveBPM;
		opt.chkTopOfPageMode=saveTPM;
		opt.chkSinglePageMode=saveSPM;
	}
}

config.commands.expandTiddler = {
	text: "unfold",
	tooltip: "Expand this tiddler",
	handler: function(event,src,title) {
		var e = story.findContainingTiddler(src); if (!e) return false;
		var t = e.getAttribute("savedTemplate");
		config.commands.collapseTiddler.display(title,t);
		e.setAttribute("folded","false");
		return false;
	}
}

config.macros.collapseAll = {
	text: "collapse all",
	tooltip: "Collapse all tiddlers",
	handler: function(place,macroName,params,wikifier,paramString,tiddler){
		createTiddlyButton(place,this.text,this.tooltip,function(){
			story.forEachTiddler(function(title,tiddler){
				if(story.isDirty(title)) return;
				var t=config.commands.collapseTiddler.getCollapsedTemplate();


				config.commands.collapseTiddler.saveTemplate(tiddler);
				config.commands.collapseTiddler.display(title,t);
				tiddler.folded=true;
			});
			return false;
		})
	}
}

config.macros.expandAll = {
	text: "expand all",
	tooltip: "Expand all tiddlers",
	handler: function(place,macroName,params,wikifier,paramString,tiddler){
		createTiddlyButton(place,this.text,this.tooltip,function(){
			story.forEachTiddler(function(title,tiddler){
				var t=config.commands.collapseTiddler.getCollapsedTemplate();
				if(tiddler.getAttribute("template")!=t) return; // re-display only if collapsed
				var t=tiddler.getAttribute("savedTemplate");
				config.commands.collapseTiddler.display(title,t);
				tiddler.folded=false;
			});
			return false;
		})
	}
}

config.commands.collapseOthers = {
	text: "focus",
	tooltip: "Expand this tiddler and collapse all others",
	handler: function(event,src,title) {
		var e = story.findContainingTiddler(src); if (!e) return false;
		story.forEachTiddler(function(title,tiddler) {
			if(story.isDirty(title)) return;
			var t=config.commands.collapseTiddler.getCollapsedTemplate();
			if (e==tiddler) t=e.getAttribute("savedTemplate");
			config.commands.collapseTiddler.saveTemplate(tiddler);
			config.commands.collapseTiddler.display(title,t);
			tiddler.folded=(e!=tiddler);
		})
		return false;
	}
}

// {{{<<foldFirst>>}}} macro forces tiddler to be folded when *initially* displayed.
// Subsequent re-render does NOT re-fold tiddler, but closing/re-opening tiddler DOES cause it to fold first again.
config.macros.foldFirst = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler){
		var e=story.findContainingTiddler(place);
		if (e.getAttribute("foldedFirst")=="true") return; // already been folded once
		var title=e.getAttribute("tiddler")
		var t=config.commands.collapseTiddler.getCollapsedTemplate();
		config.commands.collapseTiddler.saveTemplate(e);
		config.commands.collapseTiddler.display(title,t);
		e.setAttribute("folded","true");
		e.setAttribute("foldedFirst","true"); // only when tiddler is first rendered
		return false;
	}
}
//}}}
/***
|Name|CommentPlugin|
|Source|http://www.TiddlyTools.com/#CommentPlugin|
|Documentation|http://www.TiddlyTools.com/#CommentPluginInfo|
|Version|2.9.5|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|automatically insert formatted comments into tiddler content|
!!!!!Documentation
>see [[CommentPluginInfo]]
!!!!!Configuration
>see [[CommentPluginInfo]]
!!!!!Revisions
<<<
2011.04.27 2.9.5 merge/clone defaultCustomFields for saving on TiddlySpace
| please see [[CommentPluginInfo]] for previous revision details |
2006.04.20 1.0.0 initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.CommentPlugin= {major: 2, minor: 9, revision: 5, date: new Date(2011,4,27)};

config.macros.comment= {
	marker: '/%'+'comment'+'%/',
	fmt: "__''%subject%''__\n^^posted by %who% on %when%^^\n<<<\n%message%\n<<<\n",
	datefmt: 'DDD, MMM DDth, YYYY at hh12:0mm:0ss am',
	tags: '',
	reverse: false,
	handler: function(place,macroName,params,wikifier,paramstring,tiddler) {
		var span=createTiddlyElement(place,'span');
		var here=story.findContainingTiddler(place);
		if (here) var tid=here.getAttribute('tiddler');  // containing tiddler title
		span.setAttribute('here',tid);
		var target=(params[0]&&params[0].length&&params[0]!='here')?params[0]:tid;  // target title
		span.setAttribute('target',target);
		var overwrite=(params[1]&&params[1].toLowerCase()=='overwrite'); if (overwrite) params.shift();
		span.setAttribute('overwrite',overwrite?'true':'false');
		var reverse=(params[1]&&params[1].toLowerCase()=='reverse'); if (reverse) params.shift();
		span.setAttribute('reverse',(reverse||this.reverse)?'true':'false');
		var marker=this.marker;
		if (params[1]&&params[1].substr(0,7)=='marker:') {
			var marker='/%'+params[1].substr(7)+'%/';
			params.shift();
		}
		span.setAttribute('marker',marker);
		var tags=(params[1]&&params[1].length)?params[1]:this.tags; // target tags
		span.setAttribute('tags',tags);
		var fmt=(params[2]&&params[2].length)?params[2]:this.fmt; // output format
		span.setAttribute('fmt',fmt.unescapeLineBreaks());
		var datefmt=(params[3]&&params[3].length)?params[3]:this.datefmt; // date format
		span.setAttribute('datefmt',datefmt.unescapeLineBreaks());
		var html=this.html;
		html=html.replace(/%nosubject%/g,(fmt.indexOf('%subject%')==-1)?'none':'block');
		html=html.replace(/%nomessage%/g,(fmt.indexOf('%message%')==-1)?'none':'block');
		var subjtxt=''; var msgtxt='';
		html=html.replace(/%subjtxt%/g,subjtxt);
		html=html.replace(/%msgtxt%/g,msgtxt);
		span.innerHTML=html;
	},
	html: "<form style='display:inline;margin:0;padding:0;'>\
		<div style='display:%nosubject%'>\
		subject:<br>\
		<input type='text' name='subject' title='enter subject text' style='width:100%' value='%subjtxt%'>\
		</div>\
		<div style='display:%nomessage%'>\
		message:<br>\
		<textarea name='message' rows='7' title='enter message text' \
			style='width:100%'>%msgtxt%</textarea>\
		</div>\
		<center>\
		<i>Please enter your information and then press</i>\
		<input type='button' value='post' onclick='\
			var s=this.form.subject; var m=this.form.message;\
			if (\"%nosubject%\"!=\"none\" && !s.value.length)\
				{ alert(\"Please enter a subject\"); s.focus(); return false; }\
			if (\"%nomessage%\"!=\"none\" && !m.value.length)\
				{ alert(\"Please enter a message\"); m.focus(); return false; }\
			var here=this.form.parentNode.getAttribute(\"here\");\
			var reverse=this.form.parentNode.getAttribute(\"reverse\")==\"true\";\
			var target=this.form.parentNode.getAttribute(\"target\");\
			var marker=this.form.parentNode.getAttribute(\"marker\");\
			var tags=this.form.parentNode.getAttribute(\"tags\").readBracketedList();\
			var fmt=this.form.parentNode.getAttribute(\"fmt\");\
			var datefmt=this.form.parentNode.getAttribute(\"datefmt\");\
			var overwrite=this.form.parentNode.getAttribute(\"overwrite\")==\"true\";\
			config.macros.comment.addComment(here,reverse,target,tags,fmt,datefmt,\
				s.value,m.value,overwrite,marker);'>\
		</center>\
		</form>",
	addComment: function(here,reverse,target,newtags,fmt,datefmt,subject,message,overwrite,marker) {
		var UTC=new Date().convertToYYYYMMDDHHMMSSMMM();
		var rand=Math.random().toString();
		var who=config.options.txtUserName;
		var when=new Date().formatString(datefmt);
		target=target.replace(/%tiddler%/g,here);
		target=target.replace(/%UTC%/g,UTC);
		target=target.replace(/%random%/g,rand);
		target=target.replace(/%who%/g,who);
		target=target.replace(/%when%/g,when);
		target=target.replace(/%subject%/g,subject);
		var t=store.getTiddler(target);
		var text=t?t.text:'';
		var modifier=t?t.modifier:config.options.txtUserName;
		var modified=t?t.modified:new Date();
		var tags=t?t.tags:[];
		for(var i=0; i<newtags.length; i++) tags.pushUnique(newtags[i]);
		var fields=merge(t?t.fields:{},config.defaultCustomFields,true)
		var out=fmt;
		out=out.replace(/%tiddler%/g,here);
		out=out.replace(/%UTC%/g,UTC);
		out=out.replace(/%when%/g,when);
		out=out.replace(/%who%/g,who);
		out=out.replace(/%subject%/g,subject);
		out=out.replace(/%message%/g,message);
		var pos=text.indexOf(marker);
		if (pos==-1) pos=text.length; // no marker - insert at end
		else if (reverse) pos+=marker.length; // reverse order by inserting AFTER marker
		var newtxt=overwrite?out:(text.substr(0,pos)+out+text.substr(pos));
		store.saveTiddler(target,target,newtxt,modifier,modified,tags,fields);
		autoSaveChanges();
		if (story.getTiddler(target))
			story.refreshTiddler(target,DEFAULT_VIEW_TEMPLATE,true);
		if (here!=target && story.getTiddler(here))
			story.refreshTiddler(here,DEFAULT_VIEW_TEMPLATE,true);
	}
};
//}}}
/***
|Name|CompareTiddlersPlugin|
|Source|http://www.TiddlyTools.com/#CompareTiddlersPlugin|
|Version|1.1.0|
|Author|[[EricShulman]]|
|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|show color-coded differences between two selected tiddlers|
!!!!!Usage
<<<
Display a form that lets you select and compare any two tiddlers:
{{{
<<compareTiddlers>>
}}}
To filter the lists of tiddlers by tags, include an optional tagvalue (or tag expression) parameter:
{{{
<<compareTiddlers "tagValue">>
   OR
<<compareTiddlers "boolean tag expression">> (requires MatchTagsPlugin)
}}}
<<<
!!!!!Example
<<<
{{{<<compareTiddlers>>}}}
{{smallform small{<<compareTiddlers>>}}}
<<<
!!!!!Revisions
<<<
2009.07.25 [1.1.0] added optional tag filter param
2007.10.15 [1.0.0] converted from inline script to true plugin
2006.12.27 [0.0.0] inline script.  {{{diff()}}} and {{{diffString()}}} functions written by Bradley Meck.
<<<
!!!!!Code
***/
//{{{
version.extensions.CompareTiddlersPlugin= {major: 1, minor: 1, revision: 0, date: new Date(2009,7,25)};
//}}}
//{{{
config.shadowTiddlers.CompareTiddlers='<<compareTiddlers>>';
//}}}
/***
//{{{
!html
<form><!--
--><input type=hidden name=filter value=''><!--
--><select name=list1 size=1 style='width:30%'
	onchange='config.macros.compareTiddlers.pick(this,this.form.view1,this.form.edit1,this.form.text1)'></select><!--
--><input type=button name=view1 style='width:10%' value='view' disabled
	onclick='if (this.form.list1.value.length)
		story.displayTiddler(story.findContainingTiddler(this),this.form.list1.value)'><!--
--><input type=button name=edit1 style='width:10%' value='edit' disabled
	onclick='if (this.form.list1.value.length)
		story.displayTiddler(story.findContainingTiddler(this),this.form.list1.value,DEFAULT_EDIT_TEMPLATE)'><!--
--><select name=list2 size=1 style='width:30%'
	onchange='config.macros.compareTiddlers.pick(this,this.form.view2,this.form.edit2,this.form.text2)'></select><!--
--><input type=button name=view2 style='width:10%' value='view' disabled
	onclick='if (this.form.list2.value.length)
		story.displayTiddler(story.findContainingTiddler(this),this.form.list2.value)'><!--
--><input type=button name=edit2 style='width:10%' value='edit' disabled
	onclick='if (this.form.list2.value.length)
		story.displayTiddler(story.findContainingTiddler(this),this.form.list2.value,DEFAULT_EDIT_TEMPLATE)'><br><!--
--><nobr><!--
--><textarea name=text1 style='width:49.5%;display:none' rows='10' readonly></textarea><!--
--><textarea name=text2 style='width:49.5%;display:none' rows='10' readonly></textarea><!--
--></nobr><!--
--><div style='float:left'><!--
-->Additions are shown in <span style='color:green'>GREEN</span>, <!--
-->deletions are shown in <span style='color:red'>RED</span><!--
--></div><!--
--><div style='text-align:right'><!--
--><input type=button name=compare style='width:10%' value='compare' disabled
	onclick='config.macros.compareTiddlers.compare(this.form,this.form.nextSibling)'><!--
--><input type=button name=done style='width:10%' value='done' disabled
	onclick='config.macros.compareTiddlers.reset(this.form,this.form.nextSibling)'><!--
--></div><!--
--></form><div class='compareTiddlersResults'>contents to be replaced by results of comparison</div>
!end
//}}}
***/
//{{{
config.macros.compareTiddlers= {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		setStylesheet(this.css,'CompareTiddlersStyles');
		var out=createTiddlyElement(place,'span');
		out.innerHTML=store.getTiddlerText('CompareTiddlersPlugin##html');
		var form=out.getElementsByTagName('form')[0];
		var target=form.nextSibling;
		this.reset(form,target,params[0]);
	},
	css: '.compareTiddlersResults \
		{ display:none;clear:both;margin-top:1em;border:1px solid;-moz-border-radius:1em;-webkit-border-radius:1em;padding:1em;white-space:normal; }',
	reset: function(f,target,filter) {
		if (f.filter.value.length) var filter=f.filter.value;
		if (filter) var tids=store.filterTiddlers('[tag['+filter+']]')
		else var tids=store.getTiddlers('title','excludeLists');
		f.text1.style.display='none'; f.text1.value='';
		while (f.list1.options[0]) f.list1.options[0]=null; 
		f.list1.options[0]=new Option('select a tiddler...','',false,false);
		for (i=0; i<tids.length; i++)
			f.list1.options[f.list1.length]=new Option(tids[i].title,tids[i].title,false,false);
		f.text2.style.display='none'; f.text2.value='';
		while (f.list2.options[0]) f.list2.options[0]=null; 
		f.list2.options[0]=new Option('select a tiddler...','',false,false);
		for (i=0; i<tids.length; i++)
			f.list2.options[f.list2.length]=new Option(tids[i].title,tids[i].title,false,false);
		f.view1.disabled=f.view2.disabled=f.edit1.disabled=f.edit2.disabled=f.compare.disabled=f.done.disabled=true;
		f.filter.value=filter;
		target.style.display='none';
		removeChildren(target);
	},
	pick: function(list,view,edit,text) {
		var f=list.form;
		view.disabled=edit.disabled=f.done.disabled=!list.value.length;
		f.compare.disabled=!f.list1.value.length||!f.list2.value.length;
		if (!list.value.length) return;
		f.text1.style.display=f.text2.style.display='inline';
		text.value=store.getTiddlerText(list.value);
	},
	compare: function(f,target) {
		if (!f.list1.value.length) { f.list1.focus(); return alert('select a tiddler'); }
		var t1=store.getTiddlerText(f.list1.value); if (!t1) { displayMessage(f.list1.value+' not found');return false; }
		if (!f.list2.value.length) { f.list2.focus(); return alert('select a tiddler'); }
		var t2=store.getTiddlerText(f.list2.value); if (!t2) { displayMessage(f.list2.value+' not found');return false; }
		var out=this.diffString(t1,t2); if (!out || !out.length) out='no differences';
		removeChildren(target);
		target.innerHTML=out;
		target.style.display='block';
		f.done.disabled=false;
	},
//}}}
//{{{
	diffString: function( o, n ) {
		// This function was written by Bradley Meck
		// returns difference between old and new text, color-formatted additions and deletions
		if (o==n) return ""; // simple check, saves time if true
		var error = 5;
		var reg = new RegExp( "\\n|(?:.{0,"+error+"})", "g" );
		var oarr = o.match( reg ); // dices text into chunks
		var narr = n.match( reg );
		var out = this.diff(oarr,narr); // compare the word arrays
		var str = ""; // construct output
		for (i=0; i<out.length; i++) {
			switch (out[i].change) {
				case "ADDED":
					str+="<span style='color:green'>";
					str+=narr.slice(out[i].index,out[i].index+out[i].length).join("");
					str+="</span> ";
					break;
				case "DELETED":
					str+="<span style='color:red'>";
					str+=oarr.slice(out[i].index,out[i].index+out[i].length).join("");
					str+="</span> ";
					break;
				default:
					str+="<span>";
					str+=oarr.slice(out[i].index,out[i].index+out[i].length).join("");
					str+="</span> ";
					break;
			}	
		}
		return str;
	},
	diff: function( oldArray, newArray ) {
		// This function was written by Bradley Meck
		// finds the differences between one set of objects and another.
		// The objects do not need to be Strings.  It outputs an array of objects with the properties value and change.
		// This function is pretty hefty but appears to be rather light for a diff and tops out at O(N^2) for absolute worst cast scenario.
		var newElementHash = { };
		for( var i = 0; i < newArray.length; i++ ) {
			if( ! newElementHash [ newArray [ i ] ] ) {
				newElementHash [ newArray [ i ] ] = [ ];
			}
			newElementHash [ newArray [ i ] ].push( i );
		}
		var substringTable = [ ];
		for( var i = 0; i < oldArray.length; i++ ) {
			if(newElementHash [ oldArray [ i ] ] ) {
				var locations = newElementHash [ oldArray [ i ] ] ;
				for( var j = 0; j < locations.length; j++){
					var length = 1;
					while( i + length < oldArray.length && locations [ j ] + length < newArray.length
						&& oldArray [ i + length ] == newArray [ locations [ j ] + length ] ){
						length++;
					}
					substringTable.push( {
						oldArrayIndex : i,
						newArrayIndex : locations [ j ],
						matchLength : length
					} );
				}
			}
		}
		substringTable.sort( function( a, b ) {
			if ( a.matchLength > b.matchLength /* a is less than b by some ordering criterion */ ) {
				return -1;
			}
			if ( a.matchLength < b.matchLength /* a is greater than b by the ordering criterion */ ) {
				return 1;
			}
			// a must be equal to b
			return 0
		} );
		//displayMessage( substringTable.toSource( ) );
		for( var i = 0; i < substringTable.length; i++) {
			for( var j = 0; j < i; j++) {
				var oldDelta = substringTable [ i ].oldArrayIndex + substringTable [ i ].matchLength - 1 - substringTable [ j ].oldArrayIndex;
				var newDelta = substringTable [ i ].newArrayIndex + substringTable [ i ].matchLength - 1 - substringTable [ j ].newArrayIndex;
				//displayMessage( "oldDelta ::: " + oldDelta );
				//displayMessage( "newDelta ::: " + newDelta );
				//displayMessage( "matchLength ::: " + substringTable [ j ].matchLength );
				if( ( oldDelta >= 0 && oldDelta <= substringTable [ j ].matchLength )
				|| ( newDelta >= 0 && newDelta <= substringTable [ j ].matchLength )
				|| ( oldDelta < 0 && newDelta > 0 )
				|| ( oldDelta > 0 && newDelta < 0 ) ) {
					substringTable.splice( i, 1 );
					i--;
					break;
				}
			}
		}
		//displayMessage( substringTable.toSource(  ) );
		substringTable.sort( function( a, b ) {
			if ( a.oldArrayIndex < b.oldArrayIndex /* a is less than b by some ordering criterion */ ) {
				return -1;
			}
			if ( a.oldArrayIndex > b.oldArrayIndex /* a is greater than b by the ordering criterion */ ) {
				return 1;
			}
			// a must be equal to b
			return 0
		} );
		//displayMessage( substringTable.toSource( ) );
		var oldArrayIndex = 0;
		var newArrayIndex = 0;
		var results = [ ];
		for( var i = 0; i < substringTable.length; i++ ) {
			if( oldArrayIndex != substringTable [ i ].oldArrayIndex ) {
				results.push( {
					change : "DELETED",
					length : substringTable [ i ].oldArrayIndex - oldArrayIndex,
					index : oldArrayIndex
				} );
			}
			if( newArrayIndex != substringTable [ i ].newArrayIndex ) {
				results.push( {
					change : "ADDED",
					length : substringTable [ i ].newArrayIndex - newArrayIndex,
					index : newArrayIndex
				} );
			}
			results.push( {
				change : "STAYED",
				length : substringTable [ i ].matchLength,
				index : substringTable [ i ].oldArrayIndex
			} );
			oldArrayIndex = substringTable [ i ].oldArrayIndex + substringTable [ i ].matchLength;
			newArrayIndex = substringTable [ i ].newArrayIndex + substringTable [ i ].matchLength;
		}
		if( oldArrayIndex != oldArray.length ) {
			results.push( {
				change : "DELETED",
				length : oldArray.length - oldArrayIndex,
				index : oldArrayIndex
			} );
		}
		if( newArrayIndex != newArray.length ) {
			results.push( {
				change : "ADDED",
				length : newArray.length - newArrayIndex,
				index : newArrayIndex
			} );
		}
		return results;
	}
}
//}}}
/***
|Name|ConfirmExitPlugin|
|Source|http://www.TiddlyTools.com/#ConfirmExitPlugin|
|Version|2.0.0|
|Author|[[EricShulman]] - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|window.confirmExit|
|Options|##Configuration|
|Description|extra safety when exiting with unsaved changes|
For extra "data safety" when exiting from a TiddlyWiki document, this plugin prompts you to ''//save any tiddlers that are still being actively edited//''.  The plugin then provides an additional option to ''//save the entire TiddlyWiki document//'' before continuing.  Finally, if you do not choose to save the file and there are still unsaved tiddler changes, the standard TiddlyWiki warning message is then displayed as usual, with options to ''//stay on the current page or exit and lose all changes.//''
!!!!!Configuration
<<<
<<option chkConfirmExit>> ''//always//'' confirm before exiting (even if no unsaved changes)
<<option chkSaveOnExit>> show save-before-exiting confirmation messages (if unsaved changes)
<<<
!!!!!Revisions
<<<
2008.09.05 2.2.0 renamed plugin ConfirmExitPlugin to better reflect general functionality
2008.09.05 2.1.0 added "always confirm exit" {{{<<option chkConfirmExit>>}}}
2008.04.03 2.0.0 completely re-written to provide checks for active tiddler editors and more consistent warning messages
2007.03.01 1.0.2 use apply() to invoke hijacked core function
2006.08.23 1.0.1 Re-released.  Note default is now to NOT enable second message. (i.e., standard behavior)
2006.02.24 1.0.0 Initial release.  Replaces ConfirmExitPlugin, which is now included in the TW core functionality.
<<<
!!!!!Code
***/
//{{{
version.extensions.SaveOnExit = {major: 2, minor: 2, revision: 0, date: new Date(2008,9,5)};

// do NOT enable safety checks by default (i.e., use standard behavior unless explicitly enabled)
if (config.options.chkSaveOnExit===undefined) config.options.chkSaveOnExit=false;
if (config.options.chkAlwaysConfirmExit===undefined) config.options.chkAlwaysConfirmExit=false;

config.messages.activeEditorWarning=
	"Are you sure you want to navigate away from this page?"
	+"\n\n--------------------------------\n\n"
	+"'%0' is currently being edited."
	+"\n\n--------------------------------\n\n"
	+"Press OK to save this tiddler, or Cancel to skip this tiddler and continue.";

config.messages.unsavedChangesWarning=
	"Are you sure you want to navigate away from this page?"
	+"\n\n--------------------------------\n\n"
	+"There are unsaved changes in this TiddlyWiki document."
	+"\n\n--------------------------------\n\n"
	+"Press OK to save the document, or Cancel to continue without saving.";

// for browsers that support onBeforeUnload event handling
window.saveOnExit_coreConfirmExit=window.confirmExit;
window.confirmExit=function() {
	// call core handler (to invoke other hijacked 'on exit' code, e.g., [[StorySaverPlugin]])
	window.saveOnExit_coreConfirmExit.apply(this,arguments);
	// check for tiddlers being edited and offer chance to save/close each
	if (config.options.chkSaveOnExit) story.forEachTiddler(function(tid,elem) {
		if (elem.getAttribute("dirty")!="true") return;
		if (!confirm(config.messages.activeEditorWarning.format([tid]))) return;
		story.saveTiddler(tid);
		story.closeTiddler(tid);
	});
	// check for unsaved changes
	if(store && store.isDirty && store.isDirty()) {
		if (config.options.chkSaveOnExit && confirm(config.messages.unsavedChangesWarning))
			saveChanges(); // save the file
		else
			return config.messages.confirmExit; // 'unsaved changes' confirmation message
	} else if (config.options.chkAlwaysConfirmExit)
		return ""; // 'no changes' confirmation message
}

// for older browsers that only support onUnload event handling
window.checkUnsavedChanges=function() { if(window.hadConfirmExit === false) window.confirmExit(); }
//}}}
/***
|Name|ConfirmSavePlugin|
|Source|http://www.TiddlyTools.com/#ConfirmSavePlugin|
|Documentation|http://www.TiddlyTools.com/#ConfirmSavePlugin|
|Version|1.1.0|
|Author|[[EricShulman]] - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|window.saveChanges()|
|Description|if tiddlers are being edited, or there are no unsaved changes, ask before saving|
When <<saveChanges>> command link is clicked, if there are tiddlers still being edited or there are no changes unsaved changes, then ask for confirmation before saving the document to the file.
!!!!!Configuration
<<<
:
<<option chkConfirmSaveIfEditing>> confirm saving if tiddlers are still being edited
<<option chkConfirmSaveIfNoChanges>> confirm saving if there are no unsaved tiddler changes
<<<
!!!!!Revisions
<<<
2008.03.15 [1.1.0] added option settings and check for 'no unsaved changes'
2008.03.15 [1.0.0] Initial Release.
<<<
!!!!!Code
***/
//{{{
version.extensions.ConfirmSave= {major: 1, minor: 1, revision: 0, date: new Date(2008,3,15)};
//}}}
//{{{
if (config.options.chkConfirmSaveIfEditing==undefined) config.options.chkConfirmSaveIfEditing=true;
if (config.options.chkConfirmSaveIfNoChanges==undefined) config.options.chkConfirmSaveIfNoChanges=true;
//}}}
//{{{
if (config.macros.saveChanges.confirmSave_onClick==undefined) 
	config.macros.saveChanges.confirmSave_onClick=config.macros.saveChanges.onClick
config.macros.saveChanges.onClick=function(e) {
	var msg="";
	var editing=[];	// check for tiddlers being edited
	if (config.options.chkConfirmSaveIfEditing)
		story.forEachTiddler(function(tid,elem) { if (elem.getAttribute("dirty")=="true") editing.push(tid);});
	if (editing.length) {
		msg+="There "+(editing.length>1?"are ":"is ")+editing.length;
		msg+=" tiddler"+(editing.length>1?"s":"")+" currently being edited:\n\n";
		msg+=editing.join(", ")+"\n\n";
		msg+="Changes to "+(editing.length>1?"these tiddlers":"this tiddler");
		msg+=" cannot be saved until editing is completed.";
	} else if (config.options.chkConfirmSaveIfNoChanges && !store.isDirty())
		msg+="There are no unsaved tiddler changes";
	if (msg.length) {
		msg+="\n\nPress OK to save the document anyway.";
		if (!confirm(msg)) return false;
	}
	return config.macros.saveChanges.confirmSave_onClick.apply(this,arguments); // let core save
}
//}}}
//synonym:// ''CAF''
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.drrusty.com/resources/_wsb_286x274_backpain1+copy.jpg>>
<<showtoc>>
!Overview
Der Zweck dieser Methode ist, möglichst viele Informationen und Einflussfaktoren, die mit Ihrer Entscheidungssituation zu tun haben, zu sammeln. Alle Faktoren, die Sie aufgeschrieben haben, helfen Ihnen dabei, Ihre Entscheidungssituation besser zu erkennen und einschätzen zu können

!Consider All Facts
<script> return "<<tiddler [[Consider All Facts##Overview]]>>" </script>
* Listen Sie im ersten Schritt alle Faktoren auf, die mit Ihrer Entscheidung zusammenhängen, mit Ihrem Problem, Ihrer Fragestellung oder mit Ihrer Entscheidungssituation zu tun haben.
* Setzen Sie Prioritäten. Nicht alle Einflussfaktoren sind gleich bedeutungsvoll. Sortieren Sie deshalb Ihre Liste, indem Sie die wichtigsten Einflussfaktoren nach oben stellen und die weniger wichtigen weiter unten anfügen.

Nutzen Sie das Ergebnis der [[CAF|Consider All Facts]] wie eine Checkliste. Bei der Entscheidung nehmen Sie Ihre Liste zur Hand und prüfen die verschiedenen Alternativen anhand der einzelnen Punkte.


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[CAF – Consider All Facts nach de Bono (Einbeziehung aller Fakten) — PDF| http://www.4managers.de/fileadmin/4managers/bilder/themen-folien_als_pdf/4managers_Entscheidungsmethode-CAF_01.pdf]]
* [[Consider All Facts — PDF| http://www.loroch.net/files/kreativitats-_und_problemlosungstechniken_2teil.pdf]]
* http://www.4managers.de/management/themen/caf-consider-all-facts/
* http://www.zeitzuleben.de/artikel/beruf/entscheidungsfindung-2.html
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.charlottenpraxis-dresden.de/aufstellung/aufstellung.gif>>
<<showtoc>>
!Overview
[[Constellation]], everyone arranges themselves around an object on the floor (in our case a roll of tape) depending how they feel about a statement such as “I like getting results”.  People align their bodies with the statement: standing beside the object signifies strong agreement while standing far away to signifies strong disagreement. It is very powerful since people are engaging their whole bodies. 

!Constellations
<<tiddler [[Constellations##Overview]]>>

!Objectives
* Team Formation 
* Energizing
* Understanding each other through motion

!Timing
30min

!Audience
Group

!Materials
* 

!Procedure
# Put an object on the floor (e.g. a roll of tape) 
# All participants stand in a circle; in a round-robin fashion each one states a statement such as “I like getting results”.
* Everyone arranges themselves around an object on the floor depending how they feel about the statement.

People align their bodies with the statement: standing beside the object signifies strong agreement while standing far away to signifies strong disagreement. It is very powerful since people are engaging their whole bodies. 

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.agilitrix.com/wp-content/uploads/2010/05/Constellation-Exercise-300x241.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Constellation Exercise Facilitation Guide — DOC| http://www.coachingagileteams.com/wp-content/uploads/2009/08/constellation-exercise.doc]]
* http://www.agilitrix.com/2010/05/constellation-timeline-and-marketplace-for-tuning-teams/
/***
<<tiddler CookieManager>>
***/
/***
!!![[Portable cookies:|CookieSaverPlugin]] {{fine{<<option chkPortableCookies>>enable <<option chkMonitorCookieJar>>monitor}}}
^^This section is ''//__automatically maintained__//'' by [[CookieSaverPlugin]].  To block specific cookies, see [[CookieSaverPluginConfig]].^^
***/
// // /% end portable cookies %/
/***
!!!Portable cookies: {{fine{<<option chkPortableCookies>>enable <<option chkMonitorCookieJar>>monitor}}}
^^This section is ''//__automatically maintained__//'' by [[CookieSaverPlugin]].  To block specific cookies, see [[CookieSaverPluginConfig]].^^
***/
//{{{
if (config.options.txtUserName=="MichaelTarnowski" && config.options.chkPortableCookies) {
	config.options.txtTabID="Changes";
	config.options.txtSBtabs="Glossary";
	config.options.chkPortableCookies=true;
	config.options.chkMonitorCookieJar=true;
	config.options["chkPortableCookies"]=true;
	config.options["txtTabID"]="Changes";
	config.options["txtSBtabs"]="Glossary";
	config.options["txtRecentDays"]="50";
	config.options["txtMaxEditRows"]="20";
	config.options["catalog"]="Packages";
	config.options["chktimeline0"]=true;
	config.options["txtTagTabID"]="Tags";
	config.options["chkShowQuickEdit"]=true;
	config.options["chkCaseSensitiveSearch"]=true;
	config.options["tabsConfig"]="Attachments";
	config.options["tabTabsForTags"]="twStoryPackage ";
	config.options["txtByTitleTab"]="B";
	config.options["txtListMaxSize"]="4";
	config.options["chkLooseLinks"]=false;
	config.options["txtMoreTabID"]="Missing";
}
//}}}
// // /% end portable cookies %/
/***
!!![[Baked cookies:|CookieManagerPlugin]]
^^Press {{smallform{<<cookieManager button>>}}} to save the current browser cookies… then hand-edit this section to customize the results.^^
***/

// 22 cookies saved on Sunday, August 16th 2009 at 16:15:18 by MichaelTarnowski//
//^^(edit/remove username check and/or individual option settings as desired)^^//
//{{{
if (config.options.txtUserName=="MichaelTarnowski") {
	config.options["chkAnimate"]=false;
	config.options["chkBackstage"]=false;
	config.options["chkDisplayWeekNumbers"]=true;
	config.options["chkFloatingSlidersAnimate"]=false;
	config.options["chkForceMinorUpdate"]=true;
	config.options["chkLooseLinks"]=true;
	config.options["chkSaveOnExit"]=true;
	config.options["chkShowQuickEdit"]=true;
	config.options["chkTopOfPageMode"]=true;
	config.options["txtBackupFolder"]="backups";
	config.options["txtFirstVisit_mtWikiLastVisit"]="Sun Aug 16 2009 13:59:28 GMT+0200";
	config.options["txtFontSize"]="100";
	config.options["txtLastVisit_mtWikiLastVisit"]="Sun Aug 16 2009 14:23:08 GMT+0200";
	config.options["txtMainTab"]="Timeline";
	config.options["txtMoreSystemTab"]="Plugins";
	config.options["txtMoreTabID"]="All";
	config.options["txtRecentDays"]="30";
	config.options["txtSBtabs"]="Glossary";
	config.options["txtTOCSortBy"]="modified";
	config.options["txtTabID"]="Changes";
	config.options["txtUserName"]="MichaelTarnowski";
	config.options["txtVisitCount_mtWikiLastVisit"]="2";
}
//}}}

// 147 options saved on Sunday, August 16th 2009 at 16:16:41 by MichaelTarnowski//
//^^(edit/remove username check and/or individual option settings as desired)^^//
//{{{
if (config.options.txtUserName=="MichaelTarnowski") {
	config.options["chkAdvancedOptions"]=true;
	config.options["chkAdvancedOptionsBackstage"]=true;
	config.options["chkAdvancedOptionsFallback"]=true;
	config.options["chkAllowBrowserCookies"]=true;
	config.options["chkAlwaysConfirmExit"]=false;
	config.options["chkAnimate"]=false;
	config.options["chkAutoSave"]=false;
	config.options["chkBackstage"]=false;
	config.options["chkBreadcrumbsHideHomeLink"]=false;
	config.options["chkBreadcrumbsLimit"]=false;
	config.options["chkBreadcrumbsLimitOpenTiddlers"]=false;
	config.options["chkBreadcrumbsReverse"]=false;
	config.options["chkBreadcrumbsSave"]=false;
	config.options["chkCaseSensitiveSearch"]=false;
	config.options["chkConfirmDelete"]=true;
	config.options["chkConfirmSaveIfEditing"]=true;
	config.options["chkConfirmSaveIfNoChanges"]=true;
	config.options["chkCookieJarAddToAdvancedOptions"]=true;
	config.options["chkCookieManagerAddToAdvancedOptions"]=true;
	config.options["chkCopyTiddlerDate"]=false;
	config.options["chkCreateDefaultBreadcrumbs"]=true;
	config.options["chkDatePopupHideChanged"]=false;
	config.options["chkDatePopupHideCreated"]=false;
	config.options["chkDatePopupHideReminders"]=false;
	config.options["chkDatePopupHideTagged"]=false;
	config.options["chkDisableAutoSelect"]=true;
	config.options["chkDiscussionTemplate"]=false;
	config.options["chkDisplayInstrumentation"]=false;
	config.options["chkDisplayWeekNumbers"]=true;
	config.options["chkDragScroll"]=true;
	config.options["chkExternalTiddlersImport"]=true;
	config.options["chkExternalTiddlersQuiet"]=false;
	config.options["chkExternalTiddlersTemporary"]=true;
	config.options["chkFloatingSlidersAnimate"]=false;
	config.options["chkForceMinorUpdate"]=true;
	config.options["chkFramedLinks"]=false;
	config.options["chkFramedLinksTag"]=true;
	config.options["chkGenerateAnRssFeed"]=false;
	config.options["chkHideMissingMacros"]=false;
	config.options["chkHttpReadOnly"]=true;
	config.options["chkIncrementalSearch"]=true;
	config.options["chkInsertTabs"]=false;
	config.options["chkLooseLinks"]=true;
	config.options["chkMonitorBrowserCookies"]=false;
	config.options["chkMonitorCookieJar"]=false;
	config.options["chkMoveablePanelShowManager"]=true;
	config.options["chkMoveablePanelShowStatus"]=true;
	config.options["chkOpenInNewWindow"]=true;
	config.options["chkPopupPreviews"]=true;
	config.options["chkPortableCookies"]=true;
	config.options["chkPreviewText"]=true;
	config.options["chkRegExpSearch"]=false;
	config.options["chkRelatedTiddlersShowList"]=true;
	config.options["chkRelatedTiddlersShowTree"]=false;
	config.options["chkRelatedTiddlersZoom"]=false;
	config.options["chkReorderBreadcrumbs"]=true;
	config.options["chkResizeEditor"]=true;
	config.options["chkSaveBackups"]=true;
	config.options["chkSaveEmptyTemplate"]=false;
	config.options["chkSaveOnExit"]=true;
	config.options["chkSaveStory"]=false;
	config.options["chkSearchAsYouType"]=true;
	config.options["chkSearchByDate"]=false;
	config.options["chkSearchExcludeTags"]=true;
	config.options["chkSearchExtendedFields"]=true;
	config.options["chkSearchFields"]=true;
	config.options["chkSearchHighlight"]=true;
	config.options["chkSearchInTags"]=true;
	config.options["chkSearchInText"]=true;
	config.options["chkSearchInTitle"]=true;
	config.options["chkSearchList"]=true;
	config.options["chkSearchListTiddler"]=false;
	config.options["chkSearchOpenTiddlers"]=false;
	config.options["chkSearchShadows"]=true;
	config.options["chkSearchTags"]=true;
	config.options["chkSearchText"]=true;
	config.options["chkSearchTitles"]=true;
	config.options["chkSearchTitlesFirst"]=true;
	config.options["chkShowBreadcrumbs"]=true;
	config.options["chkShowQuickEdit"]=true;
	config.options["chkShowStartupBreadcrumbs"]=false;
	config.options["chkSnapshotHTMLOnly"]=false;
	config.options["chkStickyPopups"]=false;
	config.options["chkStoryAllowAdd"]=true;
	config.options["chkStoryBottom"]=false;
	config.options["chkStoryClose"]=true;
	config.options["chkStoryFold"]=true;
	config.options["chkStoryTop"]=true;
	config.options["chkTOCIncludeHidden"]=false;
	config.options["chkTextAreaExtensions"]=true;
	config.options["chkToggleLinks"]=false;
	config.options["chkTopOfPageMode"]=true;
	config.options["chkUsePreForStorage"]=true;
	config.options["chkUseYourSearch"]=true;
	config.options["chkZoomText"]=true;
	config.options["txtAdvancedOptionsFallback"]="Configuration";
	config.options["txtBackupFolder"]="backups";
	config.options["txtBreadcrumbsLimit"]="5";
	config.options["txtBreadcrumbsLimitOpenTiddlers"]="3";
	config.options["txtCalFirstDay"]="0";
	config.options["txtCalStartOfWeekend"]="5";
	config.options["txtCalendarReminderTags"]="reminder";
	config.options["txtCookieJar"]="CookieJar";
	config.options["txtEditorFocus"]="text";
	config.options["txtExternalTiddlersTags"]="external";
	config.options["txtFileSystemCharSet"]="UTF-8";
	config.options["txtFirstVisit_mtWikiLastVisit"]="Sun Aug 16 2009 13:59:28 GMT+0200";
	config.options["txtFontSize"]="100";
	config.options["txtFrameHeight"]="80%";
	config.options["txtFrameWidth"]="100%";
	config.options["txtFramedLinksTag"]="framedLinks";
	config.options["txtIncrementalSearchDelay"]="500";
	config.options["txtIncrementalSearchMin"]="3";
	config.options["txtItemsPerPage"]="25";
	config.options["txtItemsPerPageWithPreview"]="10";
	config.options["txtLastVisit_mtWikiLastVisit"]="Sun Aug 16 2009 14:23:08 GMT+0200";
	config.options["txtMainTab"]="Timeline";
	config.options["txtMaxEditRows"]="30";
	config.options["txtMiniBrowserHeight"]="480";
	config.options["txtMiniBrowserWidth"]="100%";
	config.options["txtMoreSystemTab"]="Plugins";
	config.options["txtMoreTab"]="moreTabAll";
	config.options["txtMoreTabID"]="All";
	config.options["txtMoveablePanelMapName"]="DefaultMap";
	config.options["txtPlayerDefaultHeight"]="480";
	config.options["txtPlayerDefaultWidth"]="100%";
	config.options["txtPopupPreviewHeight"]="10em";
	config.options["txtPopupPreviewWidth"]="50%";
	config.options["txtPreviewAutoFreeze"]="250";
	config.options["txtRecentDays"]="30";
	config.options["txtRelatedTiddlersExclude"]="GettingStarted DefaultTiddlers SiteNews Download";
	config.options["txtRemotePassword"]="";
	config.options["txtRemoteUsername"]="";
	config.options["txtSBtabs"]="Glossary";
	config.options["txtSearchExcludeTags"]="excludeSearch";
	config.options["txtTOCListSize"]="19";
	config.options["txtTOCSortBy"]="modified";
	config.options["txtTabID"]="Changes";
	config.options["txtTemplateTweakFieldname"]="template";
	config.options["txtTheme"]="";
	config.options["txtTiddlerLinkTooltipDate"]="DDD, MMM DDth YYYY 0hh12:0mm AM";
	config.options["txtTiddlerLinkTootip"]="%0 - %1, %2 (%3 bytes) - %4";
	config.options["txtTweakerSortBy"]="modified";
	config.options["txtUserName"]="MichaelTarnowski";
	config.options["txtVisitCount_mtWikiLastVisit"]="2";
	config.options["txtWeekNumberDisplayFormat"]="w0WW";
	config.options["txtWeekNumberLinkFormat"]="YYYY-w0WW";
}
//}}}

// 153 options saved on Sunday, October 18th 2009 at 15:01:51 by MichaelTarnowski//
//^^(edit/remove username check and/or individual option settings as desired)^^//
//{{{
if (config.options.txtUserName=="MichaelTarnowski") {
	config.options["chkAdvancedOptions"]=true;
	config.options["chkAdvancedOptionsBackstage"]=true;
	config.options["chkAdvancedOptionsFallback"]=true;
	config.options["chkAllowBrowserCookies"]=true;
	config.options["chkAlwaysConfirmExit"]=false;
	config.options["chkAnimate"]=false;
	config.options["chkAutoSave"]=false;
	config.options["chkBackstage"]=false;
	config.options["chkBreadcrumbsHideHomeLink"]=false;
	config.options["chkBreadcrumbsLimit"]=false;
	config.options["chkBreadcrumbsLimitOpenTiddlers"]=false;
	config.options["chkBreadcrumbsReverse"]=false;
	config.options["chkBreadcrumbsSave"]=false;
	config.options["chkCaseSensitiveSearch"]=false;
	config.options["chkConfirmDelete"]=true;
	config.options["chkConfirmSaveIfEditing"]=true;
	config.options["chkConfirmSaveIfNoChanges"]=true;
	config.options["chkCookieJarAddToAdvancedOptions"]=true;
	config.options["chkCookieManagerAddToAdvancedOptions"]=true;
	config.options["chkCopyTiddlerDate"]=false;
	config.options["chkCreateDefaultBreadcrumbs"]=true;
	config.options["chkDatePopupHideChanged"]=false;
	config.options["chkDatePopupHideCreated"]=false;
	config.options["chkDatePopupHideReminders"]=false;
	config.options["chkDatePopupHideTagged"]=false;
	config.options["chkDisableAutoSelect"]=true;
	config.options["chkDiscussionTemplate"]=false;
	config.options["chkDisplayInstrumentation"]=false;
	config.options["chkDisplayWeekNumbers"]=true;
	config.options["chkDragScroll"]=true;
	config.options["chkExternalTiddlersImport"]=true;
	config.options["chkExternalTiddlersQuiet"]=false;
	config.options["chkExternalTiddlersTemporary"]=true;
	config.options["chkFileDropAttachLocalLink"]=true;
	config.options["chkFileDropContent"]=true;
	config.options["chkFileDropDisplay"]=true;
	config.options["chkFileDropLink"]=true;
	config.options["chkFileDropTrimFilename"]=false;
	config.options["chkFloatingSlidersAnimate"]=false;
	config.options["chkForceMinorUpdate"]=true;
	config.options["chkFramedLinks"]=false;
	config.options["chkFramedLinksTag"]=true;
	config.options["chkGenerateAnRssFeed"]=false;
	config.options["chkHideMissingMacros"]=false;
	config.options["chkHttpReadOnly"]=true;
	config.options["chkIncrementalSearch"]=true;
	config.options["chkInsertTabs"]=false;
	config.options["chkLooseLinks"]=false;
	config.options["chkMonitorBrowserCookies"]=false;
	config.options["chkMonitorCookieJar"]=false;
	config.options["chkMoveablePanelShowManager"]=true;
	config.options["chkMoveablePanelShowStatus"]=true;
	config.options["chkNoClose"]=true;
	config.options["chkOpenInNewWindow"]=true;
	config.options["chkPopupPreviews"]=true;
	config.options["chkPortableCookies"]=false;
	config.options["chkPreviewText"]=true;
	config.options["chkRegExpSearch"]=false;
	config.options["chkRelatedTiddlersShowList"]=true;
	config.options["chkRelatedTiddlersShowTree"]=false;
	config.options["chkRelatedTiddlersZoom"]=false;
	config.options["chkReorderBreadcrumbs"]=true;
	config.options["chkResizeEditor"]=true;
	config.options["chkSaveBackups"]=true;
	config.options["chkSaveEmptyTemplate"]=false;
	config.options["chkSaveOnExit"]=true;
	config.options["chkSaveStory"]=false;
	config.options["chkSearchAsYouType"]=true;
	config.options["chkSearchByDate"]=false;
	config.options["chkSearchExcludeTags"]=true;
	config.options["chkSearchExtendedFields"]=true;
	config.options["chkSearchFields"]=true;
	config.options["chkSearchHighlight"]=true;
	config.options["chkSearchInTags"]=true;
	config.options["chkSearchInText"]=true;
	config.options["chkSearchInTitle"]=true;
	config.options["chkSearchList"]=true;
	config.options["chkSearchListTiddler"]=false;
	config.options["chkSearchOpenTiddlers"]=false;
	config.options["chkSearchShadows"]=true;
	config.options["chkSearchTags"]=true;
	config.options["chkSearchText"]=true;
	config.options["chkSearchTitles"]=true;
	config.options["chkSearchTitlesFirst"]=true;
	config.options["chkShowBreadcrumbs"]=true;
	config.options["chkShowQuickEdit"]=false;
	config.options["chkShowStartupBreadcrumbs"]=false;
	config.options["chkSnapshotHTMLOnly"]=false;
	config.options["chkStickyPopups"]=false;
	config.options["chkStoryAllowAdd"]=true;
	config.options["chkStoryBottom"]=false;
	config.options["chkStoryClose"]=true;
	config.options["chkStoryFold"]=true;
	config.options["chkStoryTop"]=true;
	config.options["chkTOCIncludeHidden"]=false;
	config.options["chkTextAreaExtensions"]=true;
	config.options["chkToggleLinks"]=false;
	config.options["chkTopOfPageMode"]=true;
	config.options["chkUsePreForStorage"]=true;
	config.options["chkUseYourSearch"]=true;
	config.options["chkZoomText"]=true;
	config.options["txtAdvancedOptionsFallback"]="Configuration";
	config.options["txtBackupFolder"]="backups";
	config.options["txtBreadcrumbsLimit"]="5";
	config.options["txtBreadcrumbsLimitOpenTiddlers"]="3";
	config.options["txtCalFirstDay"]="0";
	config.options["txtCalStartOfWeekend"]="5";
	config.options["txtCalendarReminderTags"]="reminder";
	config.options["txtCookieJar"]="CookieJar";
	config.options["txtEditorFocus"]="text";
	config.options["txtExternalTiddlersTags"]="external";
	config.options["txtFileDropDataLimit"]="32768";
	config.options["txtFileDropLinkFormat"]="/%\n!link\n[[%0|%1]]\n!end\n%/";
	config.options["txtFileDropTags"]="";
	config.options["txtFileSystemCharSet"]="UTF-8";
	config.options["txtFontSize"]="100";
	config.options["txtFrameHeight"]="80%";
	config.options["txtFrameWidth"]="100%";
	config.options["txtFramedLinksTag"]="framedLinks";
	config.options["txtIncrementalSearchDelay"]="500";
	config.options["txtIncrementalSearchMin"]="3";
	config.options["txtItemsPerPage"]="25";
	config.options["txtItemsPerPageWithPreview"]="10";
	config.options["txtMainTab"]="tabTimeline";
	config.options["txtMaxEditRows"]="20";
	config.options["txtMiniBrowserHeight"]="480";
	config.options["txtMiniBrowserWidth"]="100%";
	config.options["txtMoreTab"]="moreTabAll";
	config.options["txtMoveablePanelMapName"]="DefaultMap";
	config.options["txtNoCloseTag"]="noClose";
	config.options["txtPlayerDefaultHeight"]="480";
	config.options["txtPlayerDefaultWidth"]="100%";
	config.options["txtPopupPreviewHeight"]="false";
	config.options["txtPopupPreviewWidth"]="50%";
	config.options["txtPreviewAutoFreeze"]="250";
	config.options["txtPrivWizardDefaultStep"]="1";
	config.options["txtRecentDays"]="30";
	config.options["txtRelatedTiddlersExclude"]="GettingStarted DefaultTiddlers";
	config.options["txtRemotePassword"]="";
	config.options["txtRemoteUsername"]="";
	config.options["txtSBtabs"]="Glossary";
	config.options["txtSearchExcludeTags"]="excludeSearch";
	config.options["txtTOCListSize"]="19";
	config.options["txtTOCSortBy"]="modified";
	config.options["txtTabID"]="Changes";
	config.options["txtTemplateTweakFieldname"]="template";
	config.options["txtTheme"]="";
	config.options["txtTiddlerLinkTooltipDate"]="DDD, MMM DDth YYYY 0hh12:0mm AM";
	config.options["txtTiddlerLinkTootip"]="%0 - %1, %2 (%3 bytes) - %4";
	config.options["txtTweakerSortBy"]="modified";
	config.options["txtUserName"]="MichaelTarnowski";
	config.options["txtWeekNumberDisplayFormat"]="w0WW";
	config.options["txtWeekNumberLinkFormat"]="YYYY-w0WW";
}
//}}}
/***
|Name|CookieManagerPlugin|
|Source|http://www.TiddlyTools.com/#CookieManagerPlugin|
|Version|2.4.0|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Options|##Configuration|
|Description|view/add/delete browser-based cookies and "bake" cookies to CookieJar tiddler for 'sticky' settings|
!!!!!Usage
<<<
This plugin provides an interactive control panel that lets you select, view, modify, or delete any of the current values for TiddlyWiki options that have been stored as local, private, //browser cookies//.  You can also use the control panel to "bake cookies", which generates a set of javascript statements that assign hard-coded option values to the TiddlyWiki internal variables that correspond to the current browser cookie settings.  These hard-coded values are then stored in the [[CookieJar]] tiddler, which is tagged with<<tag systemConfig>> so that each time the document is loaded, the baked cookie settings will be automatically applied.

When a set of baked cookies is added to the [[CookieJar]], it is automatically surrounded by a conditional test so that the hard-coded settings will only be applied for the username that was in effect when they were initially generated.  In this way, if you publish or share your document with others, //your// particular baked cookie settings are not automatically applied to others, so that their own browser-based cookie settings (if defined) will be applied as usual.

Whenever you "bake cookies", new hard-coded javascript assignment statements are *appended* to the end of the [[CookieJar]].  However, any baked cookies that were previously generated and stored in the [[CookieJar]] are not automatically removed from the tiddler.  As a result, because the most recently baked cookie settings in the [[CookieJar]] are always the last to be processed, the values assigned by older baked cookies are immediately overridden by the values from the newest baked cookies, so that the newest values will be in effect when the CookieJar startup processing is completed.

Each time you bake a new batch of cookies, it is recommended that you should review and hand-edit the [[CookieJar]] to remove any "stale cookies" or merge the old and new sets of baked cookies into a single block to simplify readability (as well as saving a little tiddler storage space).  Of course, you can also hand-edit the [[CookieJar]] tiddler at any time simply to remove a few individual //baked cookies// if they are no longer needed, and you can even delete the entire [[CookieJar]] tiddler and start fresh, if that is appropriate.  Please note that changing or deleting a baked cookie does not alter the current value of the corresponding option setting, and any changes you make to the [[CookieJar]] will only be applied after you have saved and reloaded the document in your browser.
<<<
!!!!!Examples
<<<
{{{<<cookieManager>>}}}
{{smallform small center{
@@display:block;width:35em;<<cookieManager>>@@}}}
<<<
!!!!!Configuration
<<<
<<option chkAllowBrowserCookies>> store ~TiddlyWiki option settings using private browser cookies
<<option chkMonitorBrowserCookies>> monitor browser cookie activity (show a message whenever a cookie is set or deleted)
<<option chkCookieManagerAddToAdvancedOptions>> display [[CookieManager]] in [[AdvancedOptions]]
//note: this setting does not take effect until you reload the document//
<<<
!!!!!Revisions
<<<
2009.08.05 [2.4.0] changed CookieJar output format to support odd symbols in option names (e.g. '@')
2008.09.14 [2.3.2] fixed handling for blocked cookies (was still allowing some blocked cookies to be set)
2008.09.12 [2.3.1] added blocked[] array and allowBrowserCookie() test function for selective blocking of changes to browser cookies based on cookie name
2008.09.08 [2.3.0] extensive code cleanup: defined removeCookie(), renamed cookies, added 'button' param for stand-alone "bake cookies" button, improved init of shadow [[CookieManager]] and [[CookieJar]] tiddlers for compatibility with new [[CookieSaverPlugin]]. 
2008.07.11 [2.2.1] fixed recursion error in hijack for saveOptionCookie()
2008.06.26 [2.2.0] added chkCookieManagerNoNewCookies option
2008.06.05 [2.1.3] replaced hard-coded definition for "CookieJar" title with option variable
2008.05.12 [2.1.2] add "cookies" task to backstage (moved from BackstageTasks)
2008.04.09 [2.1.0] added options: chkCookieManagerAddToAdvancedOptions
2008.04.08 [2.0.1] automatically include CookieManager control panel in AdvancedOptions shadow tiddler
2007.08.02 [2.0.0] converted from inline script
2007.04.29 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.CookieManagerPlugin= {major: 2, minor: 3, revision: 1, date: new Date(2008,9,12)};
//}}}
//{{{
config.macros.cookieManager = {
	target:
		config.options.txtCookieJar||"CookieJar",
	blockedCookies:
		[],
	allowBrowserCookie: function(name) {
		return true;
	},
	displayStatus: function(msg) {
		if (config.options.chkMonitorBrowserCookies && !startingUp)
			displayMessage("CookieManager: "+msg);
	},
	init: function() {
		if (config.options.txtCookieJar===undefined)
			config.options.txtCookieJar=this.target;
		if (config.options.chkAllowBrowserCookies===undefined)
			config.options.chkAllowBrowserCookies=true;
		if (config.options.chkMonitorBrowserCookies===undefined)
			config.options.chkMonitorBrowserCookies=false;

		config.shadowTiddlers.CookieManager=
			 "/***\n"
			+"!!![[Browser cookies:|CookieManagerPlugin]] "
			+"{{fine{<<option chkAllowBrowserCookies>>enable <<option chkMonitorBrowserCookies>>monitor}}}\n"
			+"^^Review, modify, or delete browser cookies..."
			+"To block specific cookies, see [[CookieManagerPluginConfig]].^^\n"
			+"@@display:block;width:30em;{{smallform small{\n<<cookieManager>>}}}@@\n"
			+"***/\n";

		// add CookieManager to shadow CookieJar
		var h="/***\n<<tiddler CookieManager>>\n***/\n";
		var t=(config.shadowTiddlers[this.target]||"").replace(new RegExp(h.replace(/\*/g,'\\*'),''),'')
		config.shadowTiddlers[this.target]=h+t;

		if (config.options.chkCookieManagerAddToAdvancedOptions===undefined)
			config.options.chkCookieManagerAddToAdvancedOptions=true;
		if (config.options.chkCookieManagerAddToAdvancedOptions)
			config.shadowTiddlers.AdvancedOptions+="\n!!CookieManager\n><<tiddler CookieManager>>";

		// add "cookies" backstage task
		if (config.tasks && !config.tasks.cookies) { // for TW2.2b3 or above
			config.tasks.cookies = {
				text: "cookies",
				tooltip: "manage cookie-based option settings",
				content: "{{groupbox{<<tiddler CookieManager>><<tiddler [["+this.target+"]]>>}}}"
			}
			config.backstageTasks.push("cookies");
		}
	},
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var span=createTiddlyElement(place,"span");
		span.innerHTML=(params[0]&&params[0].toLowerCase()=="button")?this.button:this.panel;
		this.setList(span.firstChild.list);
	},
	panel: '<form style="display:inline;margin:0;padding:0" onsubmit="return false"><!--\
		--><select style="width:99%" name="list" \
			onchange="this.form.val.value=this.value.length?config.options[this.value]:\'\';"><!--\
		--></select><br>\
		<input type="text" style="width:98%;margin:0;" name="val" title="enter an option value"><br>\
		<input type="button" style="width:33%;margin:0;" value="get" title="refresh list" \
			onclick="config.macros.cookieManager.setList(this.form.list);"><!--\
		--><input type="button" style="width:33%;margin:0;" value="set" title="save cookie value" \
			onclick="var cmc=config.macros.cookieManager;\
				var opt=this.form.list.value; var v=this.form.val.value; \
				var msg=opt+\' is a blocked cookie.  OK to proceed?\';\
				if ((!cmc.blockedCookies.contains(opt) && cmc.allowBrowserCookie(opt))||confirm(msg)) {\
					config.options[opt]=opt.substr(0,3)==\'txt\'?v:(v.toLowerCase()==\'true\'); \
					saveOptionCookie(opt);config.macros.cookieManager.setList(this.form.list);\
				}"><!--\
		--><input type="button" style="width:33%;margin:0;" value="del" title="remove cookie" \
			onclick="var cmc=config.macros.cookieManager; var opt=this.form.list.value; \
				var msg=opt+\' is a blocked cookie.  OK to proceed?\';\
				if ((!cmc.blockedCookies.contains(opt) && cmc.allowBrowserCookie(opt))||confirm(msg)) {\
					removeCookie(this.form.list.value,true); \
					cmc.setList(this.form.list);\
				}"><br>\
		<input type="button" style="width:50%;margin:0;" value="bake cookies" \
			title="save current cookie-based option values into a tiddler" \
			onclick="return config.macros.cookieManager.bake(this,false)"><!--\
		--><input type="button" style="width:50%;margin:0;" value="bake all options" \
			title="save ALL option values (including NON-COOKIE values) into a tiddler" \
			onclick="return config.macros.cookieManager.bake(this,true)"><!--\
		--></form>\
	',
	button: '<form style="display:inline;margin:0;padding:0" onsubmit="return false"><!--\
		--><input type="button" style="margin:0;" value="bake cookies" \
			title="save current browser-based cookie values into a tiddler" \
			onclick="return config.macros.cookieManager.bake(this,false)"><!--\
		--></form>\
	',
	getCookieList: function() {
		var cookies = { };
		if (document.cookie != "") {
			var p = document.cookie.split("; ");
			for (var i=0; i < p.length; i++) {
				var pos=p[i].indexOf("=");
				if (pos==-1) cookies[p[i]]="";
				else cookies[p[i].substr(0,pos)]=unescape(p[i].slice(pos+1));
			}
		}
		var opt=new Array(); for (var i in config.options) if (cookies[i]) opt.push(i); opt.sort();
		return opt;
	},
	setList: function(list) {
		if (!list) return false;
		var opt=this.getCookieList();
		var sel=list.selectedIndex;
		while (list.options.length > 1) { list.options[1]=null; } // clear list (except for header item)
		list.options[0]=new Option("There are "+opt.length+" cookies...","",false,false);
		if (!opt.length) { list.form.val.value=""; return; } // no cookies
		var c=1;
		for(var i=0; i<opt.length; i++) {
			var txt="";
			if  (opt[i].substr(0,3)=="chk")
				txt+="["+(config.options[opt[i]]?"\u221A":"_")+"] ";
			txt+=opt[i];
			list.options[c++]=new Option(txt,opt[i],false,false);
		}
		list.selectedIndex=sel>0?sel:0;
		list.form.val.value=sel>0?config.options[list.options[sel].value]:"";
	},
	header:
		"/***\n"
		+"!!![[Baked cookies:|CookieManagerPlugin]]\n"
		+"^^Press {{smallform{<<cookieManager button>>}}} to save the current browser cookies… "
		+"then hand-edit this section to customize the results.^^\n"
		+"***/\n",
	format: function(name) {
		if (name.substr(0,3)=='chk')
			return '\tconfig.options["'+name+'"]='+(config.options[name]?'true;':'false;');
		return '\tconfig.options["'+name+'"]="'+config.options[name]+'";';
	},
	bake: function(here,all) {
		if (story.isDirty(this.target)) return false; // target is being hand-edited… do nothing
		var text=store.getTiddlerText(this.target);
		if (text.indexOf(this.header)==-1) {
			text+=this.header;
			displayMessage("CookieManager: added 'Baked Cookies' section to CookieJar");
		}
		var who=config.options.txtUserName;
		var when=new Date();
		var tags=['systemConfig'];
		var tid=store.getTiddler(this.target)||store.saveTiddler(this.target,this.target,text,who,when,tags,{});
		if (!tid) return false; // if no target… do nothing
		if (all) { 
			var opts=new Array();
			for (var i in config.options) if (i.substr(0,3)=='chk'||i.substr(0,3)=='txt') opts.push(i);
			opts.sort();
		}
		else var opts=this.getCookieList();
		var t=tid.text;
		if (t.indexOf(this.header)==-1) t+=this.header;
		t+='\n// '+opts.length+(all?' options':' cookies')+' saved ';
		t+=when.formatString('on DDD, MMM DDth YYYY at 0hh:0mm:0ss');
		t+=' by '+who+'//\n';
		t+='//^^(edit/remove username check and/or individual option settings as desired)^^//\n';
		t+='//{{{\n';
		t+='if (config.options.txtUserName=="'+who+'") {\n';
		for (i=0; i<opts.length; i++) t+=config.macros.cookieManager.format(opts[i])+"\n";
		t+='}\n//}}}\n';
		store.saveTiddler(this.target,this.target,t,who,when,tags,tid?tid.fields:{});
		story.displayTiddler(story.findContainingTiddler(this),this.target);
		story.refreshTiddler(this.target,null,true);
		var msg=opts.length+(all?' options':' cookies')+' have been saved in '+this.target+'.  ';
		msg+='Please review all stored settings.';
		displayMessage(msg);
		return false;
	}
}
//}}}
//{{{
// Hijack saveOptionCookie() to add cookie blocking and monitoring messages
config.macros.cookieManager.saveOptionCookie=saveOptionCookie;
window.saveOptionCookie=function(name,force)
{
	var cmc=config.macros.cookieManager; // abbrev
	if (force || ((config.options.chkAllowBrowserCookies || name=="chkAllowBrowserCookies")
		&& !cmc.blockedCookies.contains(name) && cmc.allowBrowserCookie(name))) {
		cmc.saveOptionCookie.apply(this,arguments);
		cmc.displayStatus(name+"="+config.options[name]);
	} else cmc.displayStatus("setting of '"+name+"' is blocked");
}

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

// … and then hijack it to add cookie blocking and monitoring messages
config.macros.cookieManager.removeCookie=removeCookie;
window.removeCookie=function(name,force)
{
	var cmc=config.macros.cookieManager; // abbrev
	if (!cmc.getCookieList().contains(name))
		return; // not a current cookie!
	if (force || ((config.options.chkAllowBrowserCookies || name=="chkAllowBrowserCookies")
		&& !cmc.blockedCookies.contains(name) && cmc.allowBrowserCookie(name))) {
		cmc.removeCookie.apply(this,arguments);
		cmc.displayStatus("deleted "+name);
	} else cmc.displayStatus("deletion of '"+name+"' is blocked");
}
//}}}
/***
|Name|CookieManagerPluginConfig|
|Source|http://www.TiddlyTools.com/#CookieManagerPluginConfig|
|Requires|CookieManagerPlugin|
|Description|custom settings for [[CookieManagerPlugin]]|
!!!!!Browser Cookie Configuration:
***/
// // <<option chkAllowBrowserCookies>> store ~TiddlyWiki option settings using private browser cookies
// // <<option chkMonitorBrowserCookies>> monitor browser cookie activity (shows a message whenever a cookie is updated)
//{{{
// always default to these settings:
config.options.chkAllowBrowserCookies=true;	// if FALSE, this blocks *all* cookies
config.options.chkMonitorBrowserCookies=false;
//}}}

// // Individual cookie names can be prevented from being created, modified, or deleted in your browser's stored cookies by adding those names to the {{{config.macros.cookieManager.blockedCookies}}} array: 
//{{{
var bc=config.macros.cookieManager.blockedCookies; // abbreviation
bc.push("chkAnimate");			// core
bc.push("chkBackstage");		// core
bc.push("txtMainTab");			// core: SideBarTabs
bc.push("txtTOCSortBy");		// TiddlyTools: TableOfContentsPlugin
bc.push("txtCatalogTab");		// TiddlyTools: ShowCatalog
bc.push("txtUploadFilename");		// BidiX: UploadPlugin
bc.push("txtUploadDir");		// BidiX: UploadPlugin
bc.push("pasPassword");			// BidiX: UploadPlugin
bc.push("pasUploadPassword");		// BidiX: UploadPlugin
//}}}
// // You can also define a javascript test function that determines whether or not any particular cookie name should be blocked or allowed.  The {{{config.macros.cookieManager.allowBrowserCookie()}}} function should return FALSE if the browser cookie should be blocked, or TRUE if changes to the cookie should be allowed:
//{{{
config.macros.cookieManager.allowBrowserCookie=function(name) {
	// add tests based on specific cookie names and runtime conditions
	return true;
}
//}}}
/***
|Name|CookieSaverPlugin|
|Source|http://www.TiddlyTools.com/#CookieSaverPlugin|
|Version|1.1.0|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Options|##Configuration|
|Description|automatically save TiddlyWiki cookie options to [[CookieJar]] tiddler for portable settings|
!!!!!Usage
<<<
Whenever TiddlyWiki option settings are changed, a browser-based cookie value is added, removed, or changed.  Each time this occurs, the CookieSaverPlugin generates an equivalent ''portable cookie'': a single line of javascript code that assigns a stored value directly to the specific TiddlyWiki internal config.options.* variable corresponding to the browser cookie with the same name.

The portable cookies are automatically written into a tiddler named [[CookieJar]] that is tagged with<<tag systemConfig>>so that their values will be applied as soon as the document is saved and reloaded.  You can change or delete an individual portable cookie by editing the contents of the [[CookieJar]] and removing the appropriate line of javascript from the tiddler source code.  Note: editing the portable cookie definitions does not alter the values of any corresponding browser cookies, nor does it update the internal value that is in use within the current TiddlyWiki document session.  Changes made directly to the [[CookieJar]] are only applied after saving and reloading the document.  In any case, whenever a browser cookie value is updated, any modifications you made to the equivalent portable cookie are immediately rewritten to reflect the current browser cookie value.

Browser cookies are, obviously, stored with your browser… and are kept separate from the document itself.  In contrast, because your portable cookies are stored in a [[CookieJar]] within the document, they remain part of that document.

When the document is copied and shared with others, each copy includes the [[CookieJar]] containing //your// stored portable cookies.  Fortunately, CookieSaverPlugin can generate and maintain several separate sets of portable cookies in the same [[CookieJar]] tiddler, where each set is associated with a different TiddlyWiki username.  As long as other readers have not chosen the same username, your portable cookie values will not be automatically applied when they are reading the document.  Rather, as they interact with the document, a new set of portable cookies, associated with //their// username, will be automatically added to the [[CookieJar]].

In addition to tracking and applying separate portable cookies for each user, CookieSaverPlugin can also be configured so that sensitive data (such as internal URLs, email addresses, login IDs and passwords, etc.) will never be inadvertently stored in the [[CookieJar]].  To achieve this, you can selectively prevent specific cookienames from being used as portable cookies by placing a special javascript function definition in a tiddler named [[CookieSaverPluginConfig]], tagged with 'systemConfig':
{{{
config.macros.cookieSaver.allowPortableCookie=function(name){
	if ( … some test using 'name' ...) return false;
	if ( … another test with 'name' ...) return true;
	etc.
	return true;  // default=allow
}
}}}
The allowPortableCookie() function offers a flexible method for plugin developers and other technically skilled document authors to implement their own custom-defined, application-specific cookie data protection by applying sophisticated logic for deciding which cookies should be allowed or blocked based on variety of different conditions.  The basic operation of this function is to accept a cookie name as text input, apply some tests based on that cookie name (combined with any other useful criteria), and then return //true// if saving the portable cookie should be permitted, or //false// if the cookie should be excluded from the [[CookieJar]].

Unfortunately, although the technical expertise needed to write this test function is relatively minor, the level of programming ability that is needed can nonetheless be beyond the skills that many people possess.  To help address this, CookieSaverPlugin also supports an alternative syntax that allows you to define a simple array of cookie names that is used by the plugin to automatically block the indicated names from being included as portable cookies in the [[CookieJar]].  The array definition syntax looks like this:
{{{
// define a complete set of blocked cookie names
config.macros.cookieSaver.blockedCookies=['cookie','cookie','cookie',etc...];
}}}
or
{{{
// add individual cookies names to the current set of blocked cookies
config.macros.cookieSaver.blockedCookies.push('cookie');
config.macros.cookieSaver.blockedCookies.push('cookie');
etc…
}}}
Note: the allowPortableCookie() function and the blockedCookies[] array are only used to limit the creation of portable cookies within the [[CookieJar]], and are //not// applied when creating normal browser cookies.  Thus, regardless of whether or not a given portable cookie has been excluded or permitted, all the usual TiddlyWiki settings and internal state data can still be saved as secure, private, local browser cookies that are never made visible to others, even when the document is shared.
<<<
!!!!!Configuration
<<<
<<option chkPortableCookies>> allow ~CookieSaver to store //''portable cookies''// in [[CookieJar]] tiddler
<<option chkMonitorCookieJar>> monitor ~CookieSaver activity (show messages whenever [[CookieJar]] is updated)
<<option chkCookieJarAddToAdvancedOptions>> display [[CookieJar]] in [[AdvancedOptions]]
^^//note: changing this setting does not take effect until you reload the document//^^
<<<
!!!!!Revisions
<<<
2009.08.05 [1.1.0] changed CookieJar output format to support odd symbols in option names (e.g. '@')
2008.09.11 [1.0.2] automatically add portable cookies header to existing CookieJar (if any).  Also, added chkMonitorCookieJar option to display CookieJar activity messages
2008.09.10 [1.0.1] documentation, code cleanup, improvements in 'allowPortableCookie()' function handling
2008.09.09 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.CookieSaverPlugin= {major: 1, minor: 1, revision: 0, date: new Date(2009,8,5)};

config.macros.cookieSaver = {
	target:
		config.options.txtCookieJar||"CookieJar",
	init: function() {
		if (config.options.chkPortableCookies===undefined)
			config.options.chkPortableCookies=false;
		if (config.options.txtCookieJar===undefined)
			config.options.txtCookieJar=this.target;
		if (config.options.chkCookieJarAddToAdvancedOptions===undefined)
			config.options.chkCookieJarAddToAdvancedOptions=true;
		if (config.options.chkCookieJarAddToAdvancedOptions)
			config.shadowTiddlers.AdvancedOptions+="\n!!%0\n><<tiddler [[%0]]>>".format([this.target]);
		if (config.options.chkMonitorCookieJar===undefined)
			config.options.chkMonitorCookieJar=false;

		// add empty Portable Cookies section to shadow CookieJar
		var h="/***\n<<tiddler CookieManager>>\n***/\n";
		var t=(config.shadowTiddlers[this.target]||"").replace(new RegExp(h.replace(/\*/g,'\\*'),''),'')
		config.shadowTiddlers[this.target]=this.header+this.footer+t;

		// add empty Portable Cookies section to real CookieJar (if one exists)
		if (store.tiddlerExists(this.target) && !readOnly) {
			var tid=this.get(this.target);
			var t=tid.text;
			if (t.indexOf(this.header)==-1){
				t=this.header+this.footer+t.replace(new RegExp(h.replace(/\*/g,'\\*'),''),'');
				var who=config.options.chkForceMinorUpdate?tid.modifier:config.options.txtUserName;
				var when=config.options.chkForceMinorUpdate?tid.modified:new Date();
				store.saveTiddler(tid.title,tid.title,t,who,when,tid.tags,tid.fields);
				displayMessage("CookieSaver: added 'Portable Cookies' section to CookieJar");
			}
		}

		// add "cookies" backstage task
		if (config.tasks && !config.tasks.cookies) { // for TW2.2b3 or above
			config.tasks.cookies = {
				text: "cookies",
				tooltip: "manage cookie-based option settings",
				content: "{{groupbox{<<tiddler CookieManager>><<tiddler [[%0]]>>}}}".format([this.target])
			}
			config.backstageTasks.push("cookies");
		}
	},
	header:
		 "/***\n<<tiddler CookieManager>>\n***/\n"
		+"/***\n"
		+"!!![[Portable cookies:|CookieSaverPlugin]] "
		+"{{fine{<<option chkPortableCookies>>enable <<option chkMonitorCookieJar>>monitor}}}\n"
		+"^^This section is ''//__automatically maintained__//'' by [[CookieSaverPlugin]].  "
		+"To block specific cookies, see [[CookieSaverPluginConfig]].^^\n"
		+"***/\n",
	startUser:
		 "//{{{\n"
		+"if (config.options.txtUserName==\"%0\" && config.options.chkPortableCookies) {",
	endUser:
		"\n}\n//}}}\n",
	footer:
		"// // /% end portable cookies %/\n",
	get: function(tid) { // create or retrieve tiddler
		if (story.isDirty(tid)) return null; // tiddler is being hand-edited… leave it alone.
		var text=config.shadowTiddlers[this.target];
		var who=config.options.txtUserName;
		var when=new Date();
		var tags=['systemConfig'];
		return store.getTiddler(tid)||store.saveTiddler(tid,tid,text,who,when,tags,{});
	},
	format: function(name) {
		if (name.substr(0,3)=='chk')
			return '\tconfig.options["'+name+'"]='+(config.options[name]?'true;':'false;');
		return '\tconfig.options["'+name+'"]="'+config.options[name]+'";';
	},
	blockedCookies: [],
	allowPortableCookie: function(name) {
		return true;
	},
	set: function(name) {
		if (!name||!name.trim().length) return;
		if (name=='txtUserName' || this.blockedCookies.contains(name) || !this.allowPortableCookie(name)) {
			if (config.options.chkMonitorCookieJar && !startingUp)
				displayMessage("CookieJar: blocked '"+name+"'");
			return false; // don't save excluded cookies
		}
		var tid=this.get(this.target);
		if (!tid) return false; // if no tiddler… do nothing
		var t=tid.text;
		if (t.indexOf(this.header)==-1) {  // re-add Portable Cookies section if it was deleted by hand edit
			var h="/***\n<<tiddler CookieManager>>\n***/\n";
			t=this.header+this.footer+t.replace(new RegExp(h.replace(/\*/g,'\\*'),''),'');
		}
		var who=config.options.txtUserName;
		var when=new Date();
		var startmark=this.startUser.format([who]);
		var endmark=this.endUser;
		var startpos=t.indexOf(startmark);
		if (startpos==-1) { // insert new user (just before footer)
			if (config.options.chkMonitorCookieJar && !startingUp)
				displayMessage("CookieJar: added new user '"+who+"'");
			var addpos=t.indexOf(this.footer); if (addpos==-1) addpos=t.length;
			t=t.substr(0,addpos)+startmark+endmark+t.substr(addpos);
			startpos=addpos;
		}
		startpos+=startmark.length;
		var endpos=t.indexOf(endmark,startpos);
		var pre=t.substr(0,startpos);
		var lines=t.substring(startpos,endpos).split('\n');
		var post=t.substr(endpos);
		var code=this.format(name);
		var match='\tconfig.options["'+name+'"]=';
		var found=false; var changed=false;
		for (var i=0; i<lines.length; i++) { // find and replace existing setting
			if (lines[i].substr(0,match.length)==match) {
				found=true;
				if (changed=lines[i]!=code) lines[i]=code; // replace value
				if (config.options.chkMonitorCookieJar && !startingUp && changed)
					displayMessage("CookieJar: "+code);
			}
		}
		if (!found && code.length) { // OR, add new setting
			lines[lines.length]=code;
			if (config.options.chkMonitorCookieJar && !startingUp)
				displayMessage("CookieJar: "+code);
		}
		if (found && !changed) return; // don't alter tiddler unless necessary
		t=pre+lines.join('\n')+post;
		var who=config.options.chkForceMinorUpdate?tid.modifier:config.options.txtUserName;
		var when=config.options.chkForceMinorUpdate?tid.modified:new Date();
		store.saveTiddler(this.target,this.target,t,who,when,tid.tags,tid.fields);
		story.refreshTiddler(this.target,null,true);
	},
	remove: function(name) {
		if (!name||!name.trim().length) return;
		var who=config.options.txtUserName;
		var when=new Date();
		var tid=store.getTiddler(this.target);
		if (!tid) return false; // if no tiddler… do nothing
		var t=tid.text;
		var who=config.options.txtUserName
		var startmark=this.startUser.format([who]);
		var endmark=this.endUser;
		var startpos=t.indexOf(startmark);
		if (startpos==-1) return false; // no such user… do nothing
		startpos+=startmark.length;
		var endpos=t.indexOf(endmark,startpos);
		var pre=t.substr(0,startpos);
		var lines=t.substring(startpos,endpos).split('\n');
		var post=t.substr(endpos);
		var match='\tconfig.options["'+name+'"]';
		var found=false; var changed=false;
		for (var i=0; i<lines.length; i++) { // find and remove setting
			if (lines[i].substr(0,match.length)==match) {
				lines.splice(i,1);
				changed=true;
				if (config.options.chkMonitorCookieJar && !startingUp)
					displayMessage("CookieJar: deleted '"+name+"'");
				break;
			}
		}
		if (!changed) return; // not found… do nothing
		t=pre+lines.join('\n')+post;
		if (lines.length==1) { // no cookies left, remove user
			t=pre.substr(0,pre.length-startmark.length)+post.substr(endmark.length);
			if (config.options.chkMonitorCookieJar && !startingUp)
				displayMessage("CookieJar: removed user '"+who+"'");
		}
		var who=config.options.chkForceMinorUpdate?tid.modifier:config.options.txtUserName;
		var when=config.options.chkForceMinorUpdate?tid.modified:new Date();
		store.saveTiddler(this.target,this.target,t,who,when,tid.tags,tid.fields);
		story.refreshTiddler(this.target,null,true);
	}
}
//}}}
//{{{
// Hijack saveOptionCookie() to add CookieSaver processing
config.macros.cookieSaver.saveOptionCookie=saveOptionCookie;
window.saveOptionCookie=function(name)
{
	config.macros.cookieSaver.saveOptionCookie.apply(this,arguments);
	if (!readOnly && (config.options.chkPortableCookies || name=="chkPortableCookies"))
		config.macros.cookieSaver.set(name);
}
// if removeCookie() function is not defined by TW core, define it here.
if (window.removeCookie===undefined) {
	window.removeCookie=function(name) {
		document.cookie = name+'=; expires=Thu, 01-Jan-1970 00:00:01 UTC; path=/;'; 
	}
}
// … and then hijack it to also remove any corresponding PortableCookie
config.macros.cookieSaver.removeCookie=removeCookie;
window.removeCookie=function(name)
{
	if (config.options.chkPortableCookies && !readOnly)
		config.macros.cookieSaver.remove(name);
	config.macros.cookieSaver.removeCookie.apply(this,arguments);
}
//}}}
/***
|Name|CookieSaverPluginConfig|
|Source|http://www.TiddlyTools.com/#CookieSaverPluginConfig|
|Requires|CookieSaverPlugin|
|Description|custom settings for [[CookieSaverPlugin]]|
!!!!!Portable Cookie Configuration:
***/
// // <<option chkPortableCookies>> allow ~CookieSaver to store //''portable cookies''// in [[CookieJar]] tiddler
// // <<option chkMonitorCookieJar>> monitor ~CookieSaver activity (show messages whenever [[CookieJar]] is updated)
//{{{
// default to these settings:
// config.options.chkPortableCookies=false;	// when FALSE this blocks ALL portable cookies
// config.options.chkMonitorCookieJar=false;
//}}}

// // Individual cookie names can be added to the {{{config.macros.cookieSaver.blockedCookies}}} to prevented them from being stored as portable cookies in the [[CookieJar]].
//{{{
var bc=config.macros.cookieSaver.blockedCookies;
bc.push("chkAnimate");			// core
bc.push("chkBackstage");		// core
bc.push("txtMainTab");			// core: SideBarTabs
bc.push("txtTOCSortBy");		// TiddlyTools: TableOfContentsPlugin
bc.push("txtCatalogTab");		// TiddlyTools: ShowCatalog
bc.push("txtUploadFilename");		// BidiX: UploadPlugin
bc.push("txtUploadDir");		// BidiX: UploadPlugin
bc.push("pasPassword");			// BidiX: UploadPlugin
bc.push("pasUploadPassword");		// BidiX: UploadPlugin
//}}}
// // You can also define a javascript test function that determines whether or not any particular cookie name should be stored as portable cookies in the [[CookieJar]].  The {{{config.macros.cookieSaver.allowPortableCookie()}}} function should return FALSE if the portable cookie should be blocked, or TRUE if the cookie should be allowed:
//{{{
config.macros.cookieSaver.allowPortableCookie=function(name) {
	// add tests based on specific cookie names and runtime conditions
	if (name.substr(0,9)=="chkSlider") 	return false;	// NestedSlidersPlugin
	if (name.substr(0,13)=="txtFirstVisit")	return false;	// VisitCounter
	if (name.substr(0,12)=="txtLastVisit")	return false;	// VisitCounter
	if (name.substr(0,13)=="txtVisitCount")	return false;	// VisitCounter
	return true;
}
//}}}
/***
|Name|CopyTiddlerPlugin|
|Source|http://www.TiddlyTools.com/#CopyTiddlerPlugin|
|Version|3.2.5|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.3|
|Type|plugin|
|Description|Quickly create a copy of any existing tiddler|
!!!Usage
<<<
The plugin automatically updates the default (shadow) ToolbarCommands definitions to insert the ''copyTiddler'' command, which will appear as ''copy'' when a tiddler is rendered.  If you are already using customized toolbar definitions, you will need to manually add the ''copyTiddler'' toolbar command to your existing ToolbarCommands tiddler, e.g.:
{{{
|EditToolbar|... copyTiddler ... |
}}}
When the ''copy'' command is selected, a new tiddler is created containing an exact copy of the current text/tags/fields, using a title of "{{{TiddlerName (n)}}}", where ''(n)'' is the next available number (starting with 1, of course).  If you copy while //editing// a tiddler, the current values displayed in the editor are used (including any changes you may have already made to those values), and the new tiddler is immediately opened for editing.

The plugin also provides a macro that allows you to embed a ''copy'' command directly in specific tiddler content:
{{{
<<copyTiddler TidderName label:"..." prompt:"...">>
}}}
where
* ''TiddlerName'' (optional)<br>specifies the //source// tiddler to be copied.  If omitted, the current containing tiddler (if any) will be copied.
* ''label:"..."'' (optional)<br>specifies text to use for the embedded link (default="copy TiddlerName")
* ''prompt:"..."'' (optional)<br>specifies mouseover 'tooltip' help text for link
//Note: to use non-default label/prompt values with the current containing tiddler, use "" for the TiddlerName//
<<<
!!!Configuration
<<<
<<option chkCopyTiddlerDate>> use date/time from existing tiddler (otherwise, use current date/time)
{{{<<option chkCopyTiddlerDate>>}}}
<<<
!!!Revisions
<<<
2009.06.08 [3.2.5] added option to use timestamp from source tiddler
2009.03.09 [3.2.4] fixed IE-specific syntax error
2009.03.02 [3.2.3] refactored code (again) to restore use of config.commands.copyTiddler.* custom settings
2009.02.13 [3.2.2] in click(), fix calls to displayTiddler() to use current tiddlerElem and use getTiddlerText() to permit copying of shadow tiddler content
2009.01.30 [3.2.1] fixed handling for copying field values when in edit mode
2009.01.23 [3.2.0] refactored code and added {{{<<copyTiddler TiddlerName>>}}} macro
2008.12.18 [3.1.4] corrected code for finding next (n) value when 'sparse' handling is in effect (thanks to RussThomas for identifying and diagnosing the problem)
2008.11.14 [3.1.3] added optional 'sparse' setting (avoids 'filling in' missing numbers that may have been previously deleted)
2008.11.14 [3.1.2] added optional 'zeroPad' setting
2008.11.14 [3.1.1] moved hard-coded '(n)' regex into 'suffixPattern' object property so it can be customized
2008.09.26 [3.1.0] changed new title generation to use '(n)' suffix instead of 'Copy of' prefix
2008.05.20 [3.0.3] in handler, when copying from VIEW mode, create duplicate array from existing tags array before saving new tiddler.
2007.12.19 [3.0.2] in handler, when copying from VIEW mode, duplicate custom fields before saving new tiddler. Thanks to bug report from Ken Girard.
2007.09.26 [3.0.1] in handler, use findContainingTiddler(src) to get tiddlerElem (and title).  Allows 'copy' command to find correct tiddler when transcluded using {{{<<tiddler>>}}} macro or enhanced toolbar inclusion (see [[CoreTweaks]])
2007.06.28 [3.0.0] complete re-write to handle custom fields and alternative view/edit templates
2007.05.17 [2.1.2] use store.getTiddlerText() to retrieve tiddler content, so that SHADOW tiddlers can be copied correctly when in VIEW mode
2007.04.01 [2.1.1] in copyTiddler.handler(), fix check for editor fields by ensuring that found field actually has edit=='text' attribute
2007.02.05 [2.1.0] in copyTiddler.handler(), if editor fields (textfield and/or tagsfield) can't be found (i.e., tiddler is in VIEW mode, not EDIT mode), then get text/tags values from stored tiddler instead of active editor fields.  Allows use of COPY toolbar directly from VIEW mode (based on a request from LaurentCharles)
2006.12.12 [2.0.0] completely rewritten so plugin just creates a new tiddler EDITOR with a copy of the current tiddler EDITOR contents, instead of creating the new tiddler in the STORE by copying the current tiddler values from the STORE.
2005.xx.xx [1.0.0] original version by Tim Morgan
<<<
!!!Code
***/
//{{{
version.extensions.CopyTiddlerPlugin= {major: 3, minor: 2, revision: 5, date: new Date(2009,6,8)};

// automatically tweak shadow EditTemplate to add 'copyTiddler' toolbar command (following 'cancelTiddler')
config.shadowTiddlers.ToolbarCommands=config.shadowTiddlers.ToolbarCommands.replace(/cancelTiddler/,'cancelTiddler copyTiddler');

if (config.options.chkCopyTiddlerDate===undefined) config.options.chkCopyTiddlerDate=false;

config.commands.copyTiddler = {
	text: 'copy',
	hideReadOnly: true,
	tooltip: 'Make a copy of this tiddler',
	notitle: 'this tiddler',
	prefix: '',
	suffixText: ' (%0)',
	suffixPattern: / \(([0-9]+)\)$/,
	zeroPad: 0,
	sparse: false,
	handler: function(event,src,title)
		{ return config.commands.copyTiddler.click(src,event); },
	click: function(here,ev) {
		var tiddlerElem=story.findContainingTiddler(here);
		var template=tiddlerElem?tiddlerElem.getAttribute('template'):null;
		var title=here.getAttribute('from');
		if (!title || !title.length) {
			if (!tiddlerElem) return false;
			else title=tiddlerElem.getAttribute('tiddler');
		}
		var root=title.replace(this.suffixPattern,''); // title without suffix
		// find last matching title
		var last=title;
		if (this.sparse) { // don't fill-in holes... really find LAST matching title
			var tids=store.getTiddlers('title','excludeLists');
			for (var t=0; t<tids.length; t++) if (tids[t].title.startsWith(root)) last=tids[t].title;
		}
		// get next number (increment from last matching title)
		var n=1; var match=this.suffixPattern.exec(last); if (match) n=parseInt(match[1])+1;
		var newTitle=this.prefix+root+this.suffixText.format([String.zeroPad(n,this.zeroPad)]);
		// if not sparse mode, find the next hole to fill in...
		while (store.tiddlerExists(newTitle)||document.getElementById(story.idPrefix+newTitle))
			{ n++; newTitle=this.prefix+root+this.suffixText.format([String.zeroPad(n,this.zeroPad)]); }
		if (!story.isDirty(title)) { // if tiddler is not being EDITED
			// duplicate stored tiddler (if any)
			var text=store.getTiddlerText(title,'');
			var who=config.options.txtUserName;
			var when=new Date();
			var newtags=[]; var newfields={};
			var tid=store.getTiddler(title); if (tid) {
				if (config.options.chkCopyTiddlerDate) var when=tid.modified;
				for (var t=0; t<tid.tags.length; t++) newtags.push(tid.tags[t]);
				store.forEachField(tid,function(t,f,v){newfields[f]=v;},true);
			}
	                store.saveTiddler(newTitle,newTitle,text,who,when,newtags,newfields,true);
			story.displayTiddler(tiddlerElem,newTitle,template);
		} else {
			story.displayTiddler(tiddlerElem,newTitle,template);
			var fields=config.commands.copyTiddler.gatherFields(tiddlerElem); // get current editor fields
			var newTiddlerElem=document.getElementById(story.idPrefix+newTitle);
			for (var f=0; f<fields.length; f++) {  // set fields in new editor
				if (fields[f].name=='title') fields[f].value=newTitle; // rename title in new tiddler
				var fieldElem=config.commands.copyTiddler.findField(newTiddlerElem,fields[f].name);
				if (fieldElem) {
					if (fieldElem.getAttribute('type')=='checkbox')
						fieldElem.checked=fields[f].value;
					else 
						fieldElem.value=fields[f].value;
				}
			}
		}
		story.focusTiddler(newTitle,'title');
		return false;
	},
	findField: function(tiddlerElem,field) {
		var inputs=tiddlerElem.getElementsByTagName('input');
		for (var i=0; i<inputs.length; i++) {
			if (inputs[i].getAttribute('type')=='checkbox' && inputs[i].field == field) return inputs[i];
			if (inputs[i].getAttribute('type')=='text' && inputs[i].getAttribute('edit') == field) return inputs[i];
		}
		var tas=tiddlerElem.getElementsByTagName('textarea');
		for (var i=0; i<tas.length; i++) if (tas[i].getAttribute('edit') == field) return tas[i];
		var sels=tiddlerElem.getElementsByTagName('select');
		for (var i=0; i<sels.length; i++) if (sels[i].getAttribute('edit') == field) return sels[i];
		return null;
	},
	gatherFields: function(tiddlerElem) { // get field names and values from current tiddler editor
		var fields=[];
		// get checkboxes and edit fields
		var inputs=tiddlerElem.getElementsByTagName('input');
		for (var i=0; i<inputs.length; i++) {
			if (inputs[i].getAttribute('type')=='checkbox')
				if (inputs[i].field) fields.push({name:inputs[i].field,value:inputs[i].checked});
			if (inputs[i].getAttribute('type')=='text')
				if (inputs[i].getAttribute('edit')) fields.push({name:inputs[i].getAttribute('edit'),value:inputs[i].value});
		}
		// get textareas (multi-line edit fields)
		var tas=tiddlerElem.getElementsByTagName('textarea');
		for (var i=0; i<tas.length; i++)
			if (tas[i].getAttribute('edit')) fields.push({name:tas[i].getAttribute('edit'),value:tas[i].value});
		// get selection lists (droplist or listbox)
		var sels=tiddlerElem.getElementsByTagName('select');
		for (var i=0; i<sels.length; i++)
			if (sels[i].getAttribute('edit')) fields.push({name:sels[i].getAttribute('edit'),value:sels[i].value});
		return fields;
	}
};
//}}}
// // MACRO DEFINITION
//{{{
config.macros.copyTiddler = {
	label: 'copy',
	prompt: 'Make a copy of %0',
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var title=params.shift();
		params=paramString.parseParams('anon',null,true,false,false);
		var label	=getParam(params,'label',this.label+(title?' '+title:''));
		var prompt	=getParam(params,'prompt',this.prompt).format([title||this.notitle]);
		var b=createTiddlyButton(place,label,prompt,
			function(ev){return config.commands.copyTiddler.click(this,ev)});
		b.setAttribute('from',title||'');
	}
};
//}}}
/***
|Name|CoreTweaks|
|Source|http://www.TiddlyTools.com/#CoreTweaks|
|Version||
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.2.0|
|Type|plugin|
|Description|a small collection of overrides to TW core functions|
This tiddler contains small changes to TW core functions that correct or enhance standard features or behaviors.
***/
//{{{
// calculate TW version number - used to determine which tweaks should be applied
var ver=version.major+version.minor/10+version.revision/100;
//}}}
/***
----

***/
// // open tickets:
// // {{block{
/***
!!!608/609/610 toolbars - toggles, separators and transclusion
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/608 - OPEN (more/less toggle)
http://trac.tiddlywiki.org/ticket/609 - OPEN (separators)
http://trac.tiddlywiki.org/ticket/610 - OPEN (wikify tiddler/slice/section content)

This combination tweak extends the """<<toolbar>>""" macro to add use of '<' to insert a 'less' menu command (the opposite of '>' == 'more'), as well as use of '*' to insert linebreaks and "!" to insert a vertical line separator between toolbar items.  In addition, this tweak add the ability to use references to tiddlernames, slices, or sections and render their content inline within the toolbar, allowing easy creation of new toolbar commands using TW content (such as macros, links, inline scripts, etc.)

To produce a one-line style, with "less" at the end, use
| ViewToolbar| foo bar baz > yabba dabba doo < |
or to use a two-line style with more/less toggle:
| ViewToolbar| foo bar baz > < * yabba dabba doo |
***/
//{{{
merge(config.macros.toolbar,{
	moreLabel: 'more\u25BC',
	morePrompt: 'Show additional commands',
	lessLabel: '\u25C4less',
	lessPrompt: 'Hide additional commands',
	separator: '|'
});
config.macros.toolbar.onClickMore = function(ev) {
	var e = this.nextSibling;
	e.style.display = 'inline'; // show menu
	this.style.display = 'none'; // hide button
	return false;
};
config.macros.toolbar.onClickLess = function(ev) {
	var e = this.parentNode;
	var m = e.previousSibling;
	e.style.display = 'none'; // hide menu
	m.style.display = 'inline'; // show button
	return false;
};
config.macros.toolbar.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	for(var t=0; t<params.length; t++) {
		var c = params[t];
		switch(c) {
			case '!':  // ELS - SEPARATOR (added)
				createTiddlyText(place,this.separator);
				break;
			case '*':  // ELS - LINEBREAK (added)
				createTiddlyElement(place,'BR');
				break;
			case '<': // ELS - LESS COMMAND (added)
				var btn = createTiddlyButton(place,
					this.lessLabel,this.lessPrompt,config.macros.toolbar.onClickLess,'moreCommand');
				break;
			case '>':
				var btn = createTiddlyButton(place,
					this.moreLabel,this.morePrompt,config.macros.toolbar.onClickMore,'moreCommand');
				var e = createTiddlyElement(place,'span',null,'moreCommand');
				e.style.display = 'none';
				place = e;
				break;
			default:
				var theClass = '';
				switch(c.substr(0,1)) {
					case '+':
						theClass = 'defaultCommand';
						c = c.substr(1);
						break;
					case '-':
						theClass = 'cancelCommand';
						c = c.substr(1);
						break;
				}
				if(c in config.commands)

					this.createCommand(place,c,tiddler,theClass);
				else { // ELS - WIKIFY TIDDLER/SLICE/SECTION (added)
					if (c.substr(0,1)=='~') c=c.substr(1); // ignore leading ~
					var txt=store.getTiddlerText(c);
					if (txt) {
						// trim any leading/trailing newlines
						txt=txt.replace(/^\n*/,'').replace(/\n*$/,'');
						// trim PRE format wrapper if any
						txt=txt.replace(/^\{\{\{\n/,'').replace(/\n\}\}\}$/,'');
						// render content into toolbar
						wikify(txt,createTiddlyElement(place,'span'),null,tiddler);
					}
				} // ELS - end WIKIFY CONTENT
				break;
		}
	}
};
//}}}
// // }}}}}}// // {{block{
/***
!!!529 IE fixup - case-sensitive element lookup of tiddler elements
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/529 - OPEN
This tweak hijacks the standard browser function, document.getElementById(), to work-around the case-INsensitivity error in Internet Explorer (all versions up to and including IE7) //''Note: This tweak is only applied when using IE, and only for lookups of rendered tiddler elements within the containing 'tiddlerDisplay' element.''//
***/
//{{{
if (config.browser.isIE) {
document.coreTweaks_coreGetElementById=document.getElementById;
document.getElementById=function(id) {
	var e=document.coreTweaks_coreGetElementById(id);
	if (!e || !e.parentNode || e.parentNode.id!='tiddlerDisplay') return e;
	for (var i=0; i<e.parentNode.childNodes.length; i++)
		if (id==e.parentNode.childNodes[i].id) return e.parentNode.childNodes[i];
	return null;
};
}
//}}}
// // }}}}}}// // {{block{
/***
!!!890 add conditional test to """<<tiddler>>""" macro
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/890 - OPEN
This tweak extends the {{{<<tiddler>>}}} macro syntax so you can include a javascript-based //test expression// to determine if the tiddler transclusion should be performed:
{{{
<<tiddler TiddlerName if:{{...}} with: param param etc.>>
}}}
If the test is ''true'', then the tiddler is transcluded as usual.  If the test is ''false'', then the transclusion is skipped and //no output is produced//.
***/
//{{{
config.macros.tiddler.if_handler = config.macros.tiddler.handler;
config.macros.tiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
	params = paramString.parseParams('name',null,true,false,true);
	if (!getParam(params,'if',true)) return;
	this.if_handler.apply(this,arguments);
};
//}}}
// // }}}}}}// // {{block{
/***
!!!831 backslash-quoting for embedding newlines in 'line-mode' formats
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/831 - OPEN
This tweak pre-processes source content to convert 'double-backslash-newline' into {{{<br>}}} before wikify(), so that literal newlines can be embedded in line-mode wiki syntax (e.g., tables, bullets, etc.)
***/
//{{{
window.coreWikify = wikify;
window.wikify = function(source,output,highlightRegExp,tiddler)
{
	if (source) arguments[0]=source.replace(/\\\\\n/mg,'<br>');
	coreWikify.apply(this,arguments);
}
//}}}
// // }}}}}}// // {{block{
/***
!!!683 FireFox3 Import bug: 'browse' button replacement
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/683 - OPEN
The web standard 'type=file' input control that has been used as a local path/file picker for TiddlyWiki no longer works as expected in FireFox3, which has, for security reasons, limited javascript access to this control so that *no* local filesystem path information can be revealed, even when it is intentional and necessary, as it is with TiddlyWiki.  This tweak provides alternative HTML source that patches the backstage import panel.  It replaces the 'type=file' input control with a text+button combination of controls that invokes a system-native secure 'file-chooser' dialog box to provide TiddlyWiki with access to a complete path+filename so that TW functions properly locate user-selected local files.
>Note: ''This tweak also requires http://trac.tiddlywiki.org/ticket/604 - cross-platform askForFilename()''
***/
//{{{
if (window.Components) {
	var fixhtml='<input name="txtBrowse" style="width:30em"><input type="button" value="..."'
		+' onClick="window.browseForFilename(this.previousSibling,true)">';
	var cmi=config.macros.importTiddlers;
	cmi.step1Html=cmi.step1Html.replace(/<input type='file' size=50 name='txtBrowse'>/,fixhtml);
}

merge(config.messages,{selectFile:'Please enter or select a file'}); // ready for I18N translation

window.browseForFilename=function(target,mustExist) { // note: both params are optional
	var msg=config.messages.selectFile;
	if (target && target.title) msg=target.title; // use target field tooltip (if any) as dialog prompt text
	// get local path for current document
	var path=getLocalPath(document.location.href);
	var p=path.lastIndexOf('/'); if (p==-1) p=path.lastIndexOf('\\'); // Unix or Windows
	if (p!=-1) path=path.substr(0,p+1); // remove filename, leave trailing slash
	var file=''
	var result=window.askForFilename(msg,path,file,mustExist); // requires #604
	if (target && result.length) // set target field and trigger handling
		{ target.value=result; target.onchange(); }
	return result; 
}
//}}}
// // }}}}}}// // {{block{
/***
!!!604 cross-platform askForFilename()
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/604 - OPEN
invokes a system-native secure 'file-chooser' dialog box to provide TiddlyWiki with access to a complete path+filename so that TW functions properly locate user-selected local files.
***/
//{{{
window.askForFilename=function(msg,path,file,mustExist) {
	var r = window.mozAskForFilename(msg,path,file,mustExist);
	if(r===null || r===false)
		r = window.ieAskForFilename(msg,path,file,mustExist);
	if(r===null || r===false)
		r = window.javaAskForFilename(msg,path,file,mustExist);
	if(r===null || r===false)
		r = prompt(msg,path+file);
	return r||'';
}

window.mozAskForFilename=function(msg,path,file,mustExist) {
	if(!window.Components) return false;
	try {
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
		var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
		var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
		picker.init(window, msg, mustExist?nsIFilePicker.modeOpen:nsIFilePicker.modeSave);
		var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
		thispath.initWithPath(path);
		picker.displayDirectory=thispath;
		picker.defaultExtension='html';
		picker.defaultString=file;
		picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
		if (picker.show()!=nsIFilePicker.returnCancel)
			var result=picker.file.persistentDescriptor;
	}
	catch(ex) { displayMessage(ex.toString()); }
	return result;
}

window.ieAskForFilename=function(msg,path,file,mustExist) {
	if(!config.browser.isIE) return false;
	try {
		var s = new ActiveXObject('UserAccounts.CommonDialog');
		s.Filter='All files|*.*|Text files|*.txt|HTML files|*.htm;*.html|';
		s.FilterIndex=3; // default to HTML files;
		s.InitialDir=path;
		s.FileName=file;
		return s.showOpen()?s.FileName:'';
	}
	catch(ex) { displayMessage(ex.toString()); }
	return result;
}

window.javaAskForFilename=function(msg,path,file,mustExist) {
	if(!document.applets['TiddlySaver']) return false;
	// TBD: implement java-based askFile(...) function
	try { return document.applets['TiddlySaver'].askFile(msg,path,file,mustExist); } 
	catch(ex) { displayMessage(ex.toString()); }
}
//}}}
// // }}}}}}// // {{block{
/***
!!!657 wrap tabs onto multiple lines
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/657 - OPEN
This tweak inserts an extra space element following each tab, allowing them to wrap onto multiple lines if needed.
***/
//{{{
config.macros.tabs.handler = function(place,macroName,params)
{
	var cookie = params[0];
	var numTabs = (params.length-1)/3;
	var wrapper = createTiddlyElement(null,'div',null,'tabsetWrapper ' + cookie);
	var tabset = createTiddlyElement(wrapper,'div',null,'tabset');
	tabset.setAttribute('cookie',cookie);
	var validTab = false;
	for(var t=0; t<numTabs; t++) {
		var label = params[t*3+1];
		var prompt = params[t*3+2];
		var content = params[t*3+3];
		var tab = createTiddlyButton(tabset,label,prompt,this.onClickTab,'tab tabUnselected');
		createTiddlyElement(tab,'span',null,null,' ',{style:'font-size:0pt;line-height:0px'}); // ELS
		tab.setAttribute('tab',label);
		tab.setAttribute('content',content);
		tab.title = prompt;
		if(config.options[cookie] == label)
			validTab = true;
	}
	if(!validTab)
		config.options[cookie] = params[1];
	place.appendChild(wrapper);
	this.switchTab(tabset,config.options[cookie]);
};
//}}}
// // }}}}}}// // {{block{
/***
!!!628 hide 'no such macro' errors
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/628 - OPEN
When invoking a macro that is not defined, this tweak prevents the display of the 'error in macro… no such macro' message.  This is useful when rendering tiddler content or templates that reference macros that are defined by //optional// plugins that have not been installed in the current document.

<<option chkHideMissingMacros>> hide 'no such macro' error messages
***/
//{{{
if (config.options.chkHideMissingMacros===undefined)
	config.options.chkHideMissingMacros=false;

window.coreTweaks_missingMacro_invokeMacro = window.invokeMacro;
window.invokeMacro = function(place,macro,params,wikifier,tiddler) {
	if (!config.macros[macro] || !config.macros[macro].handler)
		if (config.options.chkHideMissingMacros) return;
	window.coreTweaks_missingMacro_invokeMacro.apply(this,arguments);
}
//}}}
// // }}}}}}
// // to be fixed in 2.6.0:
// // {{block{
/***
!!!1151 adjust popup placement when root element is in scrolled DIV
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/1151
When a popup link is placed inside a DIV with style "overflow:scroll" or "overflow:auto" and that DIV is then scrolled, the position of the resulting popup appears further down the page that intended, because it is not adjusting for the relative scroll offset of the containing DIV.  This tweak patches the Popup.place() function to calculate and subtract the current scroll offset from the computed popup position, so that it appears in the correct location on the page.

Test case: //(scroll to the bottom of this DIV and click on "test popup")//
{{groupbox{
 <<tiddler ScrollBox with: CoreTweaks##1151test 12em>>}}}/%
!1151test
<<tiddler About>>
<<tiddler ShowPopup with: About "test popup" About button auto sticky>>
!end
%/
***/
//{{{
window.findScrollOffsetX=function(obj) {
	var x=0;
	while(obj) {
		if (obj.scrollLeft && obj.nodeName!='HTML')
			x+=obj.scrollLeft;
		obj=obj.parentNode;
	}
	return -x;
}

window.findScrollOffsetY=function(obj) {
	var y=0;
	while(obj) {
		if (obj.scrollTop && obj.nodeName!='HTML')
			y+=obj.scrollTop;
		obj=obj.parentNode;
	}
	return -y;
}

var fn=Popup.place.toString();
if (fn.indexOf('findScrollOffsetX')==-1) { // only once
	fn=fn.replace(/var\s*rootLeft\s*=/,'var rootLeft = window.findScrollOffsetX(root) +');
	fn=fn.replace(/var\s*rootTop\s*=/,'var rootTop = window.findScrollOffsetY(root) +');
	eval('Popup.place='+fn);
}
//}}}
// // }}}}}}// // {{block{
/***
!!!1147 tiddler macro with params does not refresh
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/1147
when the {{{<<tiddler SomeTiddler>>}}} macro is handled, the resulting span has extra attributes: {{{refresh='content'}}} and {{{tiddler='SomeTiddler'}}}.  If SomeTiddler is changed, {{{store.notify('SomeTiddler')}}} triggers {{{refreshDisplay()}}}, which automatically re-renders transcluded content in any span that has these extra attributes.  However, when additional arguments are passed by using {{{<<tiddler SomeTiddler with: arg arg arg ...>>}}} then the resulting span does NOT get the extra attributes noted above and, as a consequence, the transcluded content is not being refreshed, even though the underlying tiddler has changed

To correct this, in {{{config.macros.tiddler.handler}}}:
*set the 'refresh' and 'tiddler' attributes even when arguments are present in the macro
*store the arguments themselves in an attribute (e.g, 'args'), using as a space-separated, bracketed list
Then, in {{{config.refreshers.content}}}:
*retrieve the stored arguments (if any) and the tiddler source
*substitute arguments into source and re-render the span with the updated content

***/
//{{{
config.refreshers.content=function(e,changeList) {
		var title = e.getAttribute("tiddler");
		var force = e.getAttribute("force");
		var args = e.getAttribute("args"); // ADDED
		if(force != null || changeList == null || changeList.indexOf(title) != -1) {
			removeChildren(e);
//			wikify(store.getTiddlerText(title,""),e,null,store.fetchTiddler(title)); // REMOVED
			config.macros.tiddler.transclude(e,title,args); // ADDED
			return true;
		} else
			return false;
};

config.macros.tiddler.handler=function(place,macroName,params,wikifier,paramString,tiddler) {
	params = paramString.parseParams("name",null,true,false,true);
	var names = params[0]["name"];
	var tiddlerName = names[0];
	var className = names[1] || null;
	var args = params[0]["with"];
	var wrapper = createTiddlyElement(place,"span",null,className);
//	if(!args) { // REMOVED
		wrapper.setAttribute("refresh","content");
		wrapper.setAttribute("tiddler",tiddlerName);
// 	} // REMOVED
	if(args!==undefined) wrapper.setAttribute("args",'[['+args.join(']] [[')+']]'); // ADDED
	this.transclude(wrapper,tiddlerName,args); // REFACTORED TO …tiddler.transclude
}

// REFACTORED FROM …tiddler.handler
config.macros.tiddler.transclude=function(wrapper,tiddlerName,args) {
	var text = store.getTiddlerText(tiddlerName); if (!text) return;
	var stack = config.macros.tiddler.tiddlerStack;
	if(stack.indexOf(tiddlerName) !== -1) return;
	stack.push(tiddlerName);
	try {
		if (typeof args == "string") args=args.readBracketedList(); // ADDED
		var n = args ? Math.min(args.length,9) : 0;
		for(var i=0; i<n; i++) {
			var placeholderRE = new RegExp("\\$" + (i + 1),"mg");
			text = text.replace(placeholderRE,args[i]);
		}
		config.macros.tiddler.renderText(wrapper,text,tiddlerName,null); // REMOVED UNUSED 'params'
	} finally {
		stack.pop();
	}
};
//}}}
// // }}}}}}// // {{block{
/***
!!!1134 allow leading whitespace in section headings / TBD handle shadow tiddler sections
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/1134
This tweak REPLACES and extends {{{store.getTiddlerText()}}} so it can return sections defined in shadow tiddlers as well as permitting use of leading whitespace in section headings.
***/
//{{{
TiddlyWiki.prototype.getTiddlerText = function(title,defaultText)
{
	if(!title) return defaultText;
	var parts = title.split(config.textPrimitives.sectionSeparator);
	var title = parts[0];
	var section = parts[1];
	var parts = title.split(config.textPrimitives.sliceSeparator);
	var title = parts[0];
	var slice = parts[1]?this.getTiddlerSlice(title,parts[1]):null;
	if(slice) return slice;
	var tiddler = this.fetchTiddler(title);
	var text = defaultText;
	if(this.isShadowTiddler(title))
		text = this.getShadowTiddlerText(title);
	if(tiddler)
		text = tiddler.text;
	if(!section) return text;
	var re = new RegExp("(^!{1,6}[ \t]*" + section.escapeRegExp() + "[ \t]*\n)","mg");
	re.lastIndex = 0;
	var match = re.exec(text);
	if(match) {
		var t = text.substr(match.index+match[1].length);
		var re2 = /^!/mg;
		re2.lastIndex = 0;
		match = re2.exec(t); //# search for the next heading
		if(match)
			t = t.substr(0,match.index-1);//# don't include final \n
		return t;
	}
	return defaultText;
};
//}}}
// // }}}}}}// // {{block{
/***
!!!824 ~WindowTitle - alternative to combined ~SiteTitle/~SiteSubtitle in window titlebar
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/824 - OPEN
This tweak allows definition of an optional [[WindowTitle]] tiddler that, when present, provides alternative text for display in the browser window's titlebar, instead of using the combined text content from [[SiteTitle]] and [[SiteSubtitle]] (which will still be displayed as usual in the TiddlyWiki document header area).

Note: this ticket replaces http://trac.tiddlywiki.org/ticket/401 (closed), which proposed using a custom [[PageTitle]] tiddler for this purpose.  ''If you were using the previous '401 ~PageTitle' tweak, you will need to rename [[PageTitle]] to [[WindowTitle]] to continue to use your custom window title text''
***/
//{{{
config.shadowTiddlers.WindowTitle='<<tiddler SiteTitle>> - <<tiddler SiteSubtitle>>';
window.getPageTitle=function() { return wikifyPlain('WindowTitle'); }
store.addNotification('WindowTitle',refreshPageTitle); // so title stays in sync with tiddler changes
//}}}
// // }}}}}}// // {{block{
/***
!!!471 'creator' field for new tiddlers
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/471 - OPEN
This tweak HIJACKS the core's saveTiddler() function to automatically add a 'creator' field to a tiddler when it is FIRST created. You can use """<<view creator>>""" (or """<<view creator wikified>>""" if you prefer) to show this value embedded directly within the tiddler content, or {{{<span macro="view creator"></span>}}} in the ViewTemplate and/or EditTemplate to display the creator value in each tiddler.  
***/
//{{{
// hijack saveTiddler()
TiddlyWiki.prototype.CoreTweaks_creatorSaveTiddler=TiddlyWiki.prototype.saveTiddler;
TiddlyWiki.prototype.saveTiddler=function(title,newTitle,newBody,modifier,modified,tags,fields)
{
	var existing=store.tiddlerExists(title);
	var tiddler=this.CoreTweaks_creatorSaveTiddler.apply(this,arguments);
	if (!existing) store.setValue(title,'creator',config.options.txtUserName);
	return tiddler;
}
//}}}
// // }}}}}}
// // fixed in ~TW2.4.3
// // {{block{
/***
!!!444 'tiddler' and 'place' - global variables for use in computed macro parameters
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/444 - CLOSED:FIXED - TW2.4.3 - http://trac.tiddlywiki.org/changeset/8367
When invoking a macro, this tweak makes the current containing tiddler object and DOM rendering location available as global variables (window.tiddler and window.place, respectively).  These globals can then be used within //computed macro parameters// to retrieve tiddler-relative and/or DOM-relative values or perform tiddler-specific side-effect functionality.
***/
//{{{
if (ver<2.43) {
window.coreTweaks_invokeMacro = window.invokeMacro;
window.invokeMacro = function(place,macro,params,wikifier,tiddler) {
	var here=story.findContainingTiddler(place);
	window.tiddler=here?store.getTiddler(here.getAttribute('tiddler')):tiddler;
	window.place=place;
	window.coreTweaks_invokeMacro.apply(this,arguments);
}
}
//}}}
// // }}}}}}
// // fixed in ~TW2.4.2:
// // {{block{
/***
!!!823 apply option values via paramifiers (e.g. #chk…and #txt...)
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/823 - CLOSED:FIXED - TW2.4.2 http://trac.tiddlywiki.org/changeset/7988
This tweak extends and ''//replaces//'' the core {{{invokeParamifier()}}} function to support use of ''option paramifiers'' that set TiddlyWiki option values on-the-fly, directly from a document URL.

If a paramifier begins with 'chk' (checkbox) or 'txt' (text field), it's value will be automatically stored in {{{config.options.*}}}, adding to or overriding any existing 'chk' or 'txt' option values that may have already been loaded from browser cookies and/or assigned by the TW core or plugin initialization functions using hard-coded default values.  Note: option values that have been overriden by paramifiers are only applied during the current document session, and are not //automatically// retained.  However, if you edit an overridden option value during that session, then the modified value is, of course, saved in a browser cookie, as usual.
***/
//{{{
if (ver<2.42) {
function invokeParamifier(params,handler)
{
	if(!params || params.length == undefined || params.length <= 1)
		return;
	for(var t=1; t<params.length; t++) {
		var p = config.paramifiers[params[t].name];
		if(p && p[handler] instanceof Function)
			p[handler](params[t].value);
		else { // not a paramifier with handler()... check for an 'option' prefix
			var h=config.optionHandlers[params[t].name.substr(0,3)];
			if (h && h.set instanceof Function)
				h.set(params[t].name,params[t].value);
		}
	}
}
}
//}}}
// // }}}}}}
// // closed: won't fix //(leave as core tweaks)//
// // {{block{
/***
!!!637 TiddlyLink tooltip - custom formatting
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/637 - CLOSED: WON'T FIX
This tweak modifies the tooltip format that appears when you mouseover a link to a tiddler.  It adds an option to control the date format, as well as displaying the size of the tiddler (in bytes)

Tiddler link tooltip format:
{{stretch{<<option txtTiddlerLinkTootip>>}}}
^^where: %0=title, %1=username, %2=modification date, %3=size in bytes, %4=description slice^^
Tiddler link tooltip date format:
{{stretch{<<option txtTiddlerLinkTooltipDate>>}}}
***/
//{{{
config.messages.tiddlerLinkTooltip='%0 - %1, %2 (%3 bytes) - %4';
config.messages.tiddlerLinkTooltipDate='DDD, MMM DDth YYYY 0hh12:0mm AM';

config.options.txtTiddlerLinkTootip=
	config.options.txtTiddlerLinkTootip||config.messages.tiddlerLinkTooltip;
config.options.txtTiddlerLinkTooltipDate=
	config.options.txtTiddlerLinkTooltipDate||config.messages.tiddlerLinkTooltipDate;

Tiddler.prototype.getSubtitle = function() {
	var modifier = this.modifier;
	if(!modifier) modifier = config.messages.subtitleUnknown;
	var modified = this.modified;
	if(modified) modified = modified.formatString(config.options.txtTiddlerLinkTooltipDate);
	else modified = config.messages.subtitleUnknown;
	var descr=store.getTiddlerSlice(this.title,'Description')||'';
	return config.options.txtTiddlerLinkTootip.format([this.title,modifier,modified,this.text.length,descr]);
};
//}}}
// // }}}}}}// // {{block{
/***
!!!607 add HREF link on permaview command
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/607 - CLOSED: WON'T FIX
This tweak automatically sets the HREF for the 'permaview' sidebar command link so you can use the 'right click' context menu for faster, easier bookmarking.  Note that this does ''not'' automatically set the permaview in the browser's current location URL… it just sets the HREF on the command link.  You still have to click the link to apply the permaview.
***/
//{{{
config.macros.permaview.handler = function(place)
{
	var btn=createTiddlyButton(place,this.label,this.prompt,this.onClick);
	addEvent(btn,'mouseover',this.setHREF);
	addEvent(btn,'focus',this.setHREF);
};
config.macros.permaview.setHREF = function(event){
	var links = [];
	story.forEachTiddler(function(title,element) {
		links.push(String.encodeTiddlyLink(title));
	});
	var newURL=document.location.href;
	var hashPos=newURL.indexOf('#');
	if (hashPos!=-1) newURL=newURL.substr(0,hashPos);
	this.href=newURL+'#'+encodeURIComponent(links.join(' '));
}
//}}}
// // }}}}}}// // {{block{
/***
!!!458 add permalink-like HREFs on internal TiddlyLinks
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/458 - CLOSED: WON'T FIX
This tweak assigns a permalink-like HREF to internal Tiddler links (which normally do not have any HREF defined).  This permits the link's context menu (right-click) to include 'open link in another window/tab' command.  Based on a request from Dustin Spicuzza.
***/
//{{{
window.coreTweaks_createTiddlyLink=window.createTiddlyLink;
window.createTiddlyLink=function(place,title,includeText,theClass,isStatic,linkedFromTiddler,noToggle)
{
	// create the core button, then add the HREF (to internal links only)
	var link=window.coreTweaks_createTiddlyLink.apply(this,arguments);
	if (!isStatic)
		link.href=document.location.href.split('#')[0]+'#'+encodeURIComponent(String.encodeTiddlyLink(title));
	return link;
}
//}}}
// // }}}}}}
// // <<foldHeadings>>
/***
|Name:|~DC3.LightBoxPlugin|
|Description:|LightBox support library|
|Date:|Dec 25, 2006|
|Source:|http://solo.dc3.com/tw/#DC3.LightBoxPlugin|
|Author:|Bob Denny ~DC-3 Dreams, SP|
|License:|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|Version:|1.0.1|
|~CoreVersion:|2.1.x|
|Browser:|Firefox 1.5/2.0; Internet Explorer 6.0/7.0; Safari|
|Require:|LightBoxCSS (see below), support HTML in MarkupPreHead (see below), access to icon images in subdir ''im'' (showAlert() only)|
!Description
This plugin implements a lightbox widget for ~TiddlyWiki. Via Javascript, you can display any HTML div in the lightbox, or use "canned" divs for displaying HTML message in a box or an alert with icon. The lightbox is closed by either clicking the X-icon or anywhere outside the lightbox. Only one lightbox can be active at a time. See the usage section below.
!!Usage
This plugin is a __library__, not a macro. Thus, it must be tagged {{{systemConfig}}}, but it does not support macro invocation. It is callable only from Javascript so the [[InlineJavascriptPlugin|http://www.tiddlytools.com/#InlineJavascriptPlugin]] is a virtual necessity!
|!Usage|!Sample Javascript|
|Display HTML message|{{{DC3.LightBox.showContent("Some <i>message</i>");}}}|
|Display alert|{{{DC3.LightBox.showAlert("ok", "All is well");}}}|
|Display any DIV in a lightbox|{{{DC3.LightBox.showBox("myLightBox");}}}|
|Close current lightbox|{{{DC3.LightBox.hideBox()}}}|
*The frame for the showContent() and showAlert() methods should expand to enclose text, but this happens only on IE and not FireFox. To be safe, just keep your messages short and use showBox() and your own HTML div for "big" messages etc.
*The first parameter to showAlert() is the icon name. This is simply translated to {{{http://solo.dc3.com/tw/im/icon.png}}}. The standard icon image files (below) are used with icon strings of "error, "info", "ok", "question", and "warning". 
*The generalized showBox() method can be used to display images, media players, whatever you want! Just make up the HTML div, give it an id, then pass that ID to showBox().
!!Advanced Usage - onClose
All three of the above methods support an optional parameter onClose, supplied as the last parameter in a call. It must evaluate to a function which is called (with no parameters) when the lightbox is about to close. If the onClose() function returns false, the lightbox will not be closed. For example 
{{{
DC3.LightBox.showAlert("warning", "Something <em>bad</em> is about to happen", soundBuzzer);
}}}
!Installation
#Paste this entire tiddler into a tiddler called DC3.LightBox and tag it {{{systemConfig}}}.
#Paste the Required CSS (below) into a tiddler called LightBoxCSS and tag it {{{systemContent}}}.
#Paste the content for MarkupPreHead (below) into MarkupPreHead.
#Put the image files (below) into a subfolder ''im'' relative to the location of the TiddlyWiki. 
!!!Required CSS
Paste into a tiddler called LightBoxCSS.
{{{
#lightBoxOverlay {
    position:absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 90;   
    background-color: #000;
    -moz-opacity: 0.6;
    opacity: .60;
    filter: alpha(opacity=60);
}
#lightBoxOverlay[id]{ 
    position: fixed;
}

div.lightBox {
    background: #2d2d2d;
    color: #fff;
    border: 2px solid #eee;
}

img.lightBoxClose {
    position: absolute;
    top: -5px;
    right: -5px;
    margin: 0px;
    cursor: pointer;
}

div.lightBoxAlert {
    width: 300px;
    height: 64px;
    background: #2d2d2d;
    color: #fff;
    padding: 10px;
    border: 2px solid #eee;
}

div.lightBoxAlertIcon {
	position: absolute;
	top: 8px;
	left: 8px;
	width: 48px;
	height: 48px;
}

div.lightBoxAlertMessage {
	margin-left: 56px;
	margin-top: 16px;
}
}}}
!!!Content for MarkupPreHead
{{{
<!-- LightBox translucent overlay -->
<div id="lightBoxOverlay" onclick="DC3.LightBox.hideBox()" style="display:none"></div>
<!-- General use simple LightBox -->
<div class="lightBox" id="lightBox" style="display:none">
	<img class="lightBoxClose" src="http://solo.dc3.com/tw/im/close.gif" onclick="DC3.LightBox.hideBox()" alt="Close" title="Close this window" />
	<div id="lightBoxContent"></div>
</div>
<!-- General use Alert LightBox -->
<div class="lightBoxAlert" id="lightBoxAlert" style="display:none">
	<img class="lightBoxClose" src="http://solo.dc3.com/tw/im/close.gif" onclick="DC3.LightBox.hideBox()" alt="Close" title="Close this window" />
	<div class="lightBoxAlertIcon"><img id="lightBoxAlertIcon" src="runtime" alt="runtime" title="runtime"></div>
	<div class="lightBoxAlertMessage" id="lightBoxAlertMessage">runtime</div>
</div>
<!-- End of LightBox -->
}}}
!!!Images (close box and alert icons)
These must be in a subfolder ''im'' below the ~TiddlyWiki. You can get the images by right clicking on the links and //save target/link//, or right clicking on the images and //save image//. @@Note: The images below will display ugly in IE6, but they will display nice (with transparency) in the lightbox alerts, owing to the use of the DXFilters for transparency in the code.@@
|[[close.gif|http://solo.dc3.com/tw/im/close.gif]]|[img[http://solo.dc3.com/tw/im/close.gif]]|[[error.png|http://solo.dc3.com/tw/im/error.png]]|[img[http://solo.dc3.com/tw/im/error.png]]|
|[[info.png|http://solo.dc3.com/tw/im/info.png]]|[img[http://solo.dc3.com/tw/im/info.png]]|[[ok.png|http://solo.dc3.com/tw/im/ok.png]]|[img[http://solo.dc3.com/tw/im/ok.png]]|
|[[question.png|http://solo.dc3.com/tw/im/question.png]]|[img[http://solo.dc3.com/tw/im/question.png]]|[[warning.png|http://solo.dc3.com/tw/im/warning.png]]|[img[http://solo.dc3.com/tw/im/warning.png]]|
!!Credits
This TiddlyWiki library and CSS is an amalgamation of the techniques and code described in the following: 
* [[Original LightBox|http://www.huddletogether.com/projects/lightbox/]] by Lokesh Dhakar
* [[Lightweight LightBox|http://www.pjhyett.com/posts/190-the-lightbox-effect-without-lightbox]] that can show any DIV by PJ Hyett
* [[Better Modal Windows with LightBox|http://blog.feedmarker.com/2006/02/12/how-to-make-better-modal-windows-with-lightbox/]] by Bruno
Bruno's CSS for the overlay is much better than the first two, it is independent of any PNG image(s) and does not have CSS quirk-hacks for IE, nor does it use IE's DXFilters for PNG transparency. Of course for IE6, the DXFilters are used in the Javascript!
!!Revision History
<<<
''2006.12.02 [1.0.1]'' Initial creation
''2006.12.03 [1.0.1]'' hideBox() no longer takes //id// just closes currently open box. Needed for overlay click/close.
''2006.12.03 [1.0.1]'' Add support for special Alert type LightBox with switchable icon. Hack IE for alpha transparency. See inline comments. Add showContent(html), showAlert(icon, message)
''2006.12.04 [1.0.1]'' Ignore show calls if box is already displayed. Optional callback for hideBox(), can prevent hiding. Allows modal box to be set up by caller.
''2006.12.25 [1.0.1]'' Documentation and installation instructions
<<<
!!Code
***/
//{{{

// Initialize style sheet from tiddler
refreshStyles("LightBoxCSS");

if (!window.DC3) window.DC3 = {};
window.DC3.LightBox = 
{
	//
	//Internal proterties
	//
	_curBox: null,						// [sentinel]
	_onClose: null,						// [sentinel]
	_alertImgDiv: null,					// [sentinel]
	_alertImgHTML: null,				// [sentinel]
	
	//
	// Public interface
	//
	showContent: function(content, onClose) {							// Uses generic LightBox in MarkupPreBody
		if(this._curBox) return;										// Ignore if box already showing (typ.)
		document.getElementById("lightBoxContent").innerHTML = content;
		this.showBox("lightBox", onClose);
	},
	
	showAlert: function(icon, message, onClose) {						// Uses standard alert LightBox in MarkupPreBody
		if(this._curBox) return;
		var icoElem = document.getElementById("lightBoxAlertIcon");
		icoElem.src = "http://solo.dc3.com/tw/im/" + icon + ".png";							// Requires icon.png (48 x 48)
		icoElem.title = icon;
		icoElem.alt = icon;
		document.getElementById("lightBoxAlertMessage").innerHTML = message;
		DC3.LightBox.showBox("lightBoxAlert", onClose);
	},
	
	showBox: function(id, onClose) 
	{
		if(this._curBox) return;
		this._onClose = onClose;										// If valid, call this in hideBox. See comments there!
		//
		// Surprise! In IE, the height:100% in the #overlay CSS definition does
		// not honor the z-order, and calculates the height to be the top margin!
		// So, for IE, I have added this imperfect hack which ,forces the overlay
		// size to the scroll size. This causes funny scrollbar behavior, but the
		// alternatives I tried were really complex. 
		//
		// Surprise #2! IE6 doesn't support alpha transparency in PNG images, and 
		// I use same for the icons in the LightBox Alert. Another hack needed.
		// We can't just change the DIV from containing an IMG tag to using the
		// bloody MS AlphaImageLoader, we also have to save the original IMG tag
		// because the alert is multi-use: the image to be shown can be changed 
		// dynamically. When closing the Lightbox, we restore the original inner
		// IMG tag and clear the filter style. On showing the box, we grab the path
		// to the image file then zap the IMG tag, using the image file path in
		// the filter/AlphaImageLoader. Egad!!!
		//
		var ovly = document.getElementById('lightBoxOverlay');
		if(config.browser.isIE) {
			var h1 = document.documentElement.scrollHeight;
			var h2 = document.documentElement.offsetHeight;
			ovly.style.height = Math.max(h1, h2);
			ovly.style.width = document.documentElement.scrollWidth;
			// Change icon div for IE proprietary
			var alertDivs = document.getElementById(id).getElementsByTagName("div");
			this._alertImgDiv = null;
			for(var i in alertDivs) {
				if(alertDivs[i].className && alertDivs[i].className == "lightBoxAlertIcon") {
					this._alertImgDiv = alertDivs[i];
					break;
				}
			}
			if(this._alertImgDiv) {
				var imgFile = this._alertImgDiv.firstChild.src;
				this._alertImgHTML = this._alertImgDiv.innerHTML;		// Saved to allow dynamic change of image file
				this._alertImgDiv.innerHTML = "";
				this._alertImgDiv.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"" + imgFile + "\", sizingMethod=\"scale\")";
			}
		}
	    ovly.style.display = 'block';
	    this._center(id);
	    this._curBox = id;
	    return false;
	},
	
	hideBox: function()
	{
		if(!this._curBox) return;
		if(this._onClose && this._onClose() === false)					// If onClose() returns false, refuse to close
			return false;
	    document.getElementById(this._curBox).style.display = 'none';
	    document.getElementById('lightBoxOverlay').style.display = 'none';
	    this._curBox = null;											// Allow show calls once again
		// Restore original non-IE image. Code may dynamically change image file!
		if(this._alertImgDiv) {
			this._alertImgDiv.innerHTML = this._alertImgHTML;
			this._alertImgDiv.style.filter = "";
		}
	    return false;
	},
	
	//
	// Internal methods
	//
	_getDimensions: function(elem)		// Lifted from Prototype and made independent
	{
		if(elem.style.display != 'none')
		  return { width: elem.offsetWidth, height: elem.offsetHeight};
		
		// All *Width and *Height properties give 0 on elements with display none,
		// so enable the elem temporarily
		var els = elem.style;
		var origVis = els.visibility;
		var origPos = els.position;
		els.visibility = 'hidden';
		els.position = 'absolute';
		els.display = '';
		var origW = elem.clientWidth;
		var origH = elem.clientHeight;
		els.display = 'none';
		els.position = origPos;
		els.visibility = origVis;
		return {width: origW, height: origH};
	},
	
	//
	// This is rather big. I'll have to look at more elegant way(s)
	// of doing this... some day! :-)
	//
	_center: function(elem)
	{
	    try{
	        elem = document.getElementById(elem);
	    }catch(e){
	        return;
	    }
	
	    var my_width  = 0;
	    var my_height = 0;
	
	    if ( typeof( window.innerWidth ) == 'number' ){
	        my_width  = window.innerWidth;
	        my_height = window.innerHeight;
	    } else if ( document.documentElement && 
	             ( document.documentElement.clientWidth ||
	               document.documentElement.clientHeight ) ){
	        my_width  = document.documentElement.clientWidth;
	        my_height = document.documentElement.clientHeight;
	    }
	    else if ( document.body &&
	            ( document.body.clientWidth || document.body.clientHeight ) ){
	        my_width  = document.body.clientWidth;
	        my_height = document.body.clientHeight;
	    }
	
	    elem.style.position = 'absolute';
	    elem.style.zIndex   = 99;
	
	    var scrollY = 0;
	
	    if ( document.documentElement && document.documentElement.scrollTop ){
	        scrollY = document.documentElement.scrollTop;
	    }else if ( document.body && document.body.scrollTop ){
	        scrollY = document.body.scrollTop;
	    }else if ( window.pageYOffset ){
	        scrollY = window.pageYOffset;
	    }else if ( window.scrollY ){
	        scrollY = window.scrollY;
	    }
	
	    var elementDimensions = this._getDimensions(elem);
	
	    var setX = ( my_width  - elementDimensions.width  ) / 2;
	    var setY = ( my_height - elementDimensions.height ) / 2 + scrollY;
	
	    setX = ( setX < 0 ) ? 0 : setX;
	    setY = ( setY < 0 ) ? 0 : setY;
	
	    elem.style.left = setX + "px";
	    elem.style.top  = setY + "px";
	
	    elem.style.display  = 'block';
	}
};
//}}}
/***
|Name|DOMTweaksPlugin|
|Source|http://www.TiddlyTools.com/#DOMTweaksPlugin|
|Version|1.0.1|
|Author|[[EricShulman]]|
|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|set DOM element IDs, add/remove classes and/or reposition rendered elements|

This plugin defines several useful functions for performing small 'tweaks' that directly manipulate DOM elements, including setting element ID's, moving elements, and adding/removing classnames from elements.
!!!!!Usage
<<<
The first parameter is the function to invoke.  The remaining parameters depend upon which function is being invoked:

{{{<<DOM setID id force>>}}}
>assign an ID to the DOM element in which this macro is being rendered.  If the current DOM element already has an ID, the new ID will //not// replace  the current ID, unless you include the additional "''force''" keyword parameter.  (note: requiring this extra parameter helps minimize any problems that may arise if an existing, system-assigned ID is unintentionally re-assigned due to mis-placement of the macro… e.g., renaming 'mainMenu' or 'header' is NOT a good idea, and is prevented unless "force" is used)
{{{<<DOM move id>>}}}
>Move any uniquely identified DOM element to the current rendering location.  Allows dynamic relocation of standard TW elements such as 'sidebar', 'mainMenu', as well as any other DOM elements that have an ID assigned to them (via the {{{<<DOM setID id>>}}} macro).  You can also use this macro to move [[NestedSlidersPlugin]]-generated slider/floating panels that have had an ID assigned to them (using either the {{{<<DOM setID id>>}}} macro or the NestedSlidersPlugin {{{#panelID:}}} syntax).
{{{<<DOM addclass classname>>}}}
>add a classname to the DOM element in which this macro is being rendered
{{{<<DOM removeClass classname>>}}}
>remove a classname from the DOM element in which this macro is being rendered
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''DOMTweaksPlugin'' (tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
''2007.07.20 [1.0.1]'' in setID handler, check for existing ID so multiple elements don't get the same ID.  Also added basic parameter checks.
''2007.07.20 [1.0.0]'' initial release
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]
<<<
!!!!!Code
***/
//{{{
version.extensions.DOM = {major: 1, minor: 0, revision: 1, date: new Date(2007,7,20)};
config.macros.DOM= {
	handler: function(place,macroName,params) {
		if (!params.length) return;
		switch (params[0].toUpperCase()) {
			case "SETID":
				if (!params[1]) return;
				if (place.id==params[1]) break; // already has this ID… do nothing!
				if (document.getElementById(params[1])) // if ID is already used by something else
					displayMessage("DOMTweaks: ID already in use: '"+params[1]+"'");
				else if (!place.id.length || params[2]&&params[2].toUpperCase=="FORCE")
					place.id=params[1]; // set (or clear) the ID
				else
					displayMessage("DOMTweaks: to re-assign existing ID for '"+place.id+"', use the 'Force' option… Luke. :-)" );
				break;
			case "MOVE":
				if (!params[1]) return;
				var e=document.getElementById(params[1]); if (e) place.insertBefore(e,null);
				break;
			case "ADDCLASS":
				if (!params[1]) return;
				addClass(place,params[1]);
				break;
			case "REMOVECLASS":
				if (!params[1]) return;
				removeClass(place,params[1]);
				break;
		}
	}
}
//}}}
/***
|Name|DOMViewerPlugin|
|Source|http://www.TiddlyTools.com/#DOMViewerPlugin|
|Version|1.8.0|
|Author|[[EricShulman]] - 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|display internal Document Object Model for wiki-formatted content|
Whenever TiddlyWiki renders a given tiddler, it creates a 'tree' of DOM (Document Object Model) elements that represent the information that is displayed by the browser.  You can use the ''DOMViewer'' macro to examine the internal DOM elements that are produced by TiddlyWiki's formatter (the 'wikifier'), or elements directly produced by embedded macros that create custom formatted output.  This can be particularly helpful when trying to fine tune the layout and appearance of your tiddler content.
!!!!! Usage/Example:
<<<
syntax: {{{<<DOMViewer rows:nn indent:xxxx inline path elementID|tiddlertitle>>}}}

DOMViewer creates a textarea control and reports the DOM tree for the current 'insertion point' where the DOMViewer macro is being placed.  ''inline'' flag uses TiddlyWiki rendering instead of textarea control. ''path'' shows the relative location of each child element in the DOM tree, using subscript notation, ''[elementID or tiddlertitle]'' displays DOM elements starting from the node with the specified ID.  If that ID is not found in the DOM tree, the macro attempts to open a tiddler with that title and then displays the DOM elements that were rendered for that tiddler.

<<DOMViewer tiddlerDOMViewerPlugin>>
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''DOMViewerPlugin'' (tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
''2007.09.27 [1.8.0]'' split DOMViewer macro into separate plugin (see [[TidIDEPlugin]])
|please see [[TidIDEPluginHistory]] for additional revision details|
''2006.04.15 [0.5.0]'' Initial ALPHA release. Converted from inline script.
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]].
<<<
!!!!!Code
***/
//{{{
version.extensions.DOMViewer = {major: 1, minor: 8, revision: 0, date: new Date(2006,9,27)};
config.macros.DOMViewer = { 
	handler: function(place,macroName,params) {
		// set default params
		var inline=false;
		var theRows=15;
		var theIndent="|  ";
		var showPath=false;
		var theTarget=place;
		// unpack options parameters
		if (params[0]=='inline') { inline=true; theIndent=">"; params.shift(); } 
		if (params[0]&&(params[0].substr(0,7)=="indent:")) { theIndent=params[0].substr(7); params.shift(); } 
		if (params[0]&&(params[0].substr(0,5)=="rows:")) { theRows=params[0].substr(5); params.shift(); } 
		if (params[0]=='path') { showPath=true; params.shift(); } 
		if (params[0]) {
			theTarget=document.getElementById(params[0]);
			if (!theTarget)
				if (store.getTiddler(params[0])!=undefined) {
					theTarget=document.getElementById("tiddler"+params[0]);
					if (!theTarget && confirm("DOMViewer asks:\n\nIs it OK to open tiddler '"+params[0]+"' now?")) { 
						story.displayTiddler(null,params[0],1,null,null,false);
						theTarget=document.getElementById("tiddler"+params[0]);
					}
				}
			params.shift();
		}
		// generate and display DOM tree
		if (inline) {
			var out=this.getNodeTree(theTarget,theIndent,showPath,inline);
			wikify(out,place);
		}
		else {
			var out=this.getNodeTree(theTarget,theIndent,showPath,inline);
			var css=".DOMViewer{width:100%;font-size:8pt;color:inherit;background:transparent;border:0px;}";
			setStylesheet(css,"DOMViewerStylesheet");
			var theTextArea=createTiddlyElement(place,"textarea",null,"DOMViewer",out);
			theTextArea.rows=theRows;
			theTextArea.cols=60;
			theTextArea.wrap="off";
			theTextArea.theTarget=theTarget;
			theTextArea.theIndent=theIndent;
			theTextArea.showPath=showPath;
		}
	},
	getNodeTree: function(theNode,theIndent,showPath,inline,thePrefix,thePath) {
		if (!theNode) return "";
		if (!thePrefix) thePrefix="";
		if (!thePath) thePath="";
		var mquote='"'+(inline?"{{{":"");
		var endmquote=(inline?"}}}":"")+'"';
		// generate output for this node
		var out = thePrefix;
		if (showPath && thePath.length)
			out += (inline?"//":"")+thePath.substr(1)+":"+(inline?"//":"")+"\r\n"+thePrefix;
		if (theNode.className=="DOMViewer")
			return out+'[DOMViewer]\r\n'; // avoid self-referential recursion
		out += (inline?"''":"")+theNode.nodeName.toUpperCase()+(inline?"''":"");
		if (theNode.nodeName=="#text")
			out += ' '+mquote+theNode.nodeValue.replace(/\n/g,'\\n')+endmquote;
		if (theNode.className)
			out += ' class='+mquote+theNode.className+endmquote;
		if (theNode.type)
			out += ' type='+mquote+theNode.type+endmquote;
		if (theNode.id)
			out += ' id='+mquote+theNode.id+endmquote;
		if (theNode.name)
			out += " "+theNode.name+(theNode.value?"="+mquote+theNode.value+endmquote:"");
		if (theNode.href)
			out += ' href='+mquote+theNode.href+endmquote;
		if (theNode.src)
			out += ' src='+mquote+theNode.src+endmquote;
		if (theNode.attributes && theNode.getAttribute("tiddlyLink")!=undefined)
			out += ' tiddler='+mquote+theNode.getAttribute("tiddlyLink")+endmquote;
		out += "\r\n";
		// recursively generate output for child nodes
		thePath=thePath+"."+theNode.nodeName.toLowerCase();
		thePrefix=theIndent+thePrefix;
		for (var i=0;i<theNode.childNodes.length;i++) {
			var thisChild=theNode.childNodes.item(i);
			var theNum=(inline?"~~":"(")+(i+1)+(inline?"~~":")");
			out += this.getNodeTree(thisChild,theIndent,showPath,inline,thePrefix,thePath+theNum);
		}
		return out;
	}
}
//}}}
<data>{"abstract":"[[Dalmuti]], eine spaßige Übung für die Seminarpause oder den gemeinsamen Abend, mit der man eine Gruppe eine Weile verblüffen kann."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.rue94.de/images/mediation.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Dalmuti","abstract") </script>

!Dalmuti
<script> return "<<tiddler [[Dalmuti##Overview]]>>" </script>
Ein Spaß für die Pause, den gemeinsamen Abend oder zur Auflockerung. 

!Objectives
* nonverbale Verständigung erkennen

!Timing
20min

!Audience
Group

!Materials
* —

!Procedure
# Eine Gruppe sitzt im Kreis. 
# Zwei sind "eingespielt" und kennen den Trick und die Regeln. 
# Der Rest ist unbefangen. Der ganzen Gruppe ist bekannt, dass es ein "eingespieltes Team" gibt, nämlich der Redner und der "Dalmuti".
# Der Rest muss nun herausfinden, wie sich die beiden nonverbal verständigen. 

# Es läuft so ab, dass der Moderator (Redner), während alle im Kreis sitzen, zu Dalmuti sagt: //"Dalmuti, Dalmuti, hör auf mein Wort und gehe nicht eher fort, bis das ich es Dir sage!"// 
# Nun sitzen alle gespannt, versteinert, aber (und das ist sicher) der eine oder die andere ist vorlaut und gibt einen Ton, ein Räuspern ein verwundertes //"Hääää"// von sich. Und dies ist das Signal zwischen Redner und Dalmuti. Dalmuti verschwindet also kurz aus dem Raum.
# Der Redner zeigt auf die sich eben als erste zu Wort gemeldete Person und wenn [[Dalmuti]] auf Zuruf wieder zurückkommt, dann ist klar, dass die selbe Person auch von Dalmuti identifiziert werden kann. Nur wundern sich alle anderen im Kreis, wie sich Dalmuti und Redner verständigt haben. 
# Das Spiel kann lange dauern, kann aber von einem den restlichen Teilnehmern entlarvt werden. 
# Wer es weiß, kann gerne auch als Dalmuti fungieren und somit mehr Spannung für den Rest der Gruppe erzeugen. Gutes Gelingen!

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline|http://mwonline.de/db/topics/themenentry.php3?to_parebene=Ideenfabrik&db=3]]
<data>{"abstract":"Altes muss weg, wenn Neues entstehen soll. Damit sich die [[Mitarbeiter]] von den gegenwärtigen Gegebenheiten lösen können, müssen sie einen Trauerprozess durchlaufen. Wie der angestoßen werden kann, zeigt das vorgestellte Tool, das mit der drastischen Metapher [[Das Bein muss ab!|Das Bein muss ab!]] arbeitet. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://opencontest.de/wp-content/uploads/2008/07/07-02.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Das Bein muss ab!","abstract") </script>

!Das Bein muss ab!
<script> return "<<tiddler [[Das Bein muss ab!##Overview]]>>" </script> 
Dieses Tool nutzt ein [[Rollenspiel|Improvisationstheater]], in dem sich alle Beteiligten eines [[Veränderungsprozesses|Organizational Change Model]] mit ihren Emotionen in Trauerprozessen auseinandersetzen können. Die Teilnehmer entwickeln Bewusstheit über die eigene Position und die ihrer Mitarbeiter. 
Mit Hilfe des Tools können [[Ideen|Ideenmanagement]] entwickelt werden zur Bewältigung der jeweiligen Phasen. Die Akzeptanz des Neuen ermöglicht die Arbeitsfähigkeit des Teams.

!Objectives
* Bewusstheit über die eigene Position und die ihrer Mitarbeiter. 
* Loslassen, Trauerarbeit

!Timing

!Audience
Group

!Materials
*

!Procedure

!Debriefing


!See also
* [[Abschied mit Kieselsteinen]]
+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[ManagerSeminare| http://www.managerseminare.de/managerSeminare/Archiv/Artikel?mecL=UmFuZG9tSVZUaUdErLvFDLvEp6bzOg3V&urlID=179450]]
* [[Download| http://www.managerseminare.de/SCD/UmFuZG9tSVZT82COVbpFHgNBBfpLSLPbB8npLuPHQXwApLSLP7vzJJngS5zpLSLPR6pLSLPx9cFrjUs5ipLSLPqBC8UOY9pLChLycCUdTJ2ZvdMTpLuPEanUoDLexWFFGAl1U=/MS135AR14.pdf]]
<data>{"abstract":"Einmal angenommen, man hat im Prinzip die Lösung für ein Problem gefunden, aber an der Umsetzung hapert es. Da hilft dann vielleicht die Fragen nach dem Schlimmsten, was passieren kann..."}>/data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.cartoonstock.com/newscartoons/cartoonists/mfl/lowres/mfln314l.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Das Schlimmste, was passieren kann","abstract") </script>

!Das Schlimmste, was passieren kann
An manche Probleme und auch an manche Lösungen traut man sich nicht heran, weil man befürchtet, dass sie zu groß sind oder es ungute Konsequenzen gibt. Hier hilft es, sich zu fragen: "Was ist das Schlimmste, was passieren kann?" Und sich dann — ggf. mit den beteiligten [[Mitarbeitern|Mitarbeiter]] — auszumalen, was Schreckliches sein könnte. 
Doppelt gewonnen: Das Aussprechen der Ängste ermöglicht es, sie zu entkräften oder Lösungen dafür zu finden. Meist stellt sich heraus, dass das Schlimmste gar nicht schlimm ist. 
Jeder geht mit mehr Zuversicht an die Lösung.


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline|http://mwonline.de/db/topics/themenentry.php3?to_parebene=Ideenfabrik&db=3]]
<data>{"abstract":"[[Dastehen und ansehen]], ein bekannter Tipp für jeden, der präsentiert: Suchen und halten Sie den Blickkontakt zu Ihren Zuhörern. Eine Übung aus dem Theaterbereich, wie man das im Training üben kann..."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.menzel-temime.de/mediac/400_0/media/1505071.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Dastehen und ansehen","abstract") </script>

!Dastehen und ansehen
<script> return "<<tiddler [[Dastehen und ansehen##Overview]]>>" </script> 
Leicht empfohlen, doch in der Praxis alles andere als einfach: Der Blickkontakt zum Zuhörer, wenn man vor einer Gruppe steht. Eine sehr einfache Übung aus dem Theaterbereich.

!Objectives
* Blicke anderer ertragen
* Andere ansehen

!Timing
5min

!Audience
Group

!Materials
* —

!Procedure
# Die Teilnehmer sitzen im Halbkreis, auf der offenen Seite ist die "Bühnenfläche". 
# Einer der Teilnehmer betritt die Bühne mit der Aufgabe, 3 bis 5 Minuten ruhig dazustehen und nur ins Publikum zu schauen. 
# Die anderen Teilnehmer beobachten lediglich, was passiert. 
# Wenn sich jemand angesehen fühlt, hebt er die Hand. 
# Wer nicht angesehen wird oder den Eindruck hat, es wird "durch ihn durchgesehen", senkt die Hand.

!Variation
* Die anderen Teilnehmer schließen die Augen und versuchen wahrzunehmen, wann der Blick auf sie fällt.

!Debriefing
In der Auswertung geht es um Fragen wie:
//„Wie erging es Ihnen auf der Bühne? Zu wem fiel der Kontakt leicht/schwer? Warum? Gab es eine Entwicklung?
Welche Ausstrahlunng kam rüber? Welche Arten von Blicken haben Sie empfunden?”//

!Quelle
[[Amelie Funcke: Vorstellbar, managerSeminare 2006, S. 109/110| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FVorstellbar-Methoden-Schauspielern-Regisseuren-normalen%2Fdp%2F3936075441%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214446177%26sr%3D8-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Präsentation]<<tiddlerList tags:"presentation,-newTemplate" header:"Übungen Präsentation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Dastehen+und+ansehen+%28jt%29&db=3]]
/***
|Name|DataDbPlugin|
|Source|http://baggr.tiddlyspot.com|
|Version|0.101|
|Author|molicule [at] gmail [dot] com|
|License|BSD open source|
|Type|plugin|
|Requires|DataDbPlugin|
|Description|Turn a tiddler into a database such as an address book.|
Provides the ability to create and maintain simple databses housed in a tiddler. Requires the DataTidlerPlugin.
!!!!!Usage
<<<
&lt;&lt;datadb name address city state zip&gt;&gt;
<<<
!!!!!How it works
<<<
A form input is provided and the data entered is stored within the tiddler in a JSON format.
This data is read by the plugin and displayed. Convenient actions such as move up, down,
delete and close/unclose are provided.
<<<
!!!!!Data storage format
<<<
<data>{"db": ["list", "of", "fields"]}</data>
<<<
Changelog
<<<
26 Sep 2008 Added export to html feature. This puts the output in a tiddler. Note you need to remove html tag wrapper to
use outside of a tiddler.
!!!!!Code
***/
//{{{
config.datadb = {
    list_refresh: function(title) {
        story.refreshTiddler(title, null, true);
    },
    item_over: function(e) {
        e.style.backgroundColor = "#f0f0f0";
    },
    item_out: function(e) {
        e.style.backgroundColor = "#ffffff";
    },
    show_view: function(title, v) {
        var t = store.getTiddler(title);
        var data = t.data();
        data['view'] = v;
        t.setData("view", data['view']);
        this.list_refresh(title);
    },
    build_head: function(title, view) {
        var txt = "<table style=\"margin:0px\" width=100%><tr><td width=85%>Data db: <u>" + view + " view</u></td><td style=\"text-align:right;\">";
        txt += "<span style=\"cursor:pointer;\" onclick=\"config.datadb.show_view('" + title + "', 'form');\" title=\"Form\" >Δ</span> &nbsp; ";
        txt += "<span style=\"cursor:pointer;\" onclick=\"config.datadb.show_view('" + title + "', 'query');\" title=\"Query\" >∈</span> &nbsp; ";
        txt += "<span style=\"cursor:pointer;\" onclick=\"config.datadb.show_view('" + title + "', 'schema');\" title=\"Schema\" >Ψ</span> &nbsp; ";
        txt += "<span style=\"cursor:pointer;\" onclick=\"config.datadb.show_view('" + title + "', 'tools');\" title=\"Tools\" >ξ</span> &nbsp; ";
        txt += "<span style=\"cursor:pointer;\" onclick=\"config.datadb.show_view('" + title + "', 'help');\" title=\"Help\" >?</span> &nbsp; ";
        txt += "</td></tr></table>";
        return txt;
    },
    build_help: function(title, params, data) {
        var stub = title.replace(/ /g, "_");
        var txt = "<div id=" + stub + "_vhelp>";
        txt += "<iframe src=http://baggr-help.tiddlyspot.com/ width=100% height=600px style=\"border:0px\" frameborder=no></iframe>";
        txt += "</div>";
        return txt;
    }
};
config.datadb.form = {
    about_status: "-",
    build: function(title, params, data) {
        var stub = title.replace(/ /g, "_");
        var txt = "<div id=" + stub + "_vform>";
        txt += this.build_form(title, params, data)
        txt += "</div>";
        return txt;
    },
    item_click: function(title, i) {
        var i = i*1;
        var t = store.getTiddler(title);
        var data = t.data();
        this.load_form(title, data, i);
    },
    item_del: function(title, num) {
        var t = store.getTiddler(title);
        var data = t.data("db");
        data.splice(num*1, 1);
        t.setData("data", data);
        story.refreshTiddler(title, null, true);
    },
    load_form: function(title, data, rnum) {
        var r = data['db'][rnum];
        var stub = title.replace(/ /g, "_");
        var rid = stub + "_num";
        document.getElementById(rid).value = rnum;
        for (var i=0; i<data['schema'].length; i++) {
            var rid = title + "_" + data['schema'][i] + "_" + i.toString();
            document.getElementById(rid).value = r[i];
        }
        // var rid = stub + "_clear";
        // document.getElementById(rid).style.opacity = "1";
        var rid = stub + "_add";
        document.getElementById(rid).style.color = "red";
        document.getElementById(rid).setAttribute("value", "edit");
    },
    form_submit: function(title) {
        return false;
    },
    form_add: function(title) {
        var t = store.getTiddler(title);
        var data = t.data();
        var r = []
        for (var i=0; i<data['schema'].length; i++) {
            var rid = title + "_" + data['schema'][i] + "_" + i.toString();
            r[i] = document.getElementById(rid).value;
        }
        var rid = title.replace(/ /g, "_") + "_num";
        var num = document.getElementById(rid).value;
        if (num) {
            num = num*1;
            data['db'][num] = r;
        } else {
            data['db'].push(r);
        }
        t.setData("db", data['db']);
        story.refreshTiddler(title, null, true);
    },
    form_clear: function(title) {
        var t = store.getTiddler(title);
        var data = t.data();
        var stub = title.replace(/ /g, "_");
        var rid = stub + "_num";
        document.getElementById(rid).value = '';
        for (var i=0; i<data['schema'].length; i++) {
            var rid = title + "_" + data['schema'][i] + "_" + i.toString();
            document.getElementById(rid).value = "";
        }
        // var rid = stub + "_clear";
        // document.getElementById(rid).style.opacity = ".5";
        var rid = stub + "_add";
        document.getElementById(rid).style.color = "black";
        document.getElementById(rid).setAttribute("value", "add");
    },
    show_view: function(title, v) {
        var t = store.getTiddler(title);
        var data = t.data();
        data['view'] = v;
        t.setData("view", data['view']);
        story.refreshTiddler(title, null, true);
    },
    toggle_about: function(title) {
        var stub = title.replace(/ /g, "_");
        if (this.about_status == '+') {
            document.getElementById(stub + "_about").style.height = "18px";
            document.getElementById(stub + "_about_text").style.display = "none";
            this.about_status = "-";
        } else {
            document.getElementById(stub + "_about").style.height = "100px";
            document.getElementById(stub + "_about_text").style.display = "inline";
            this.about_status = "+";
        }
    },
    build_form: function(title, params, data) {
        var stub = title.replace(/ /g, "_");
        var txt = "<div id=" + stub + "_about style=\"background-color:#f0f0f0;margin:5px;padding:5px;overflow:none;min-height:18px\">";
        txt += "<div style=\"float:right;cursor:pointer\" onclick=config.datadb.form.toggle_about('" + title + "')>(+/-)</div>";
        txt += "<div id=" + stub + "_about_text style=\"display:none\">";
        txt += "<h3>This form is where you enter the data</h3>";
        txt += "<b>the first field:</b> is what is displayed in the record selector.<br/>";
        txt += "<b>edit a record:</b> by clicking on it's selector entry and than in the form.<br/>";
        txt += "<b>delete a record:</b> by clicking on the 'x' character.<br/>";
        txt += "<b>clear:</b> clears the form fields and allows you to enter a new record.<br/>";
        txt += "</div>";
        txt += "</div>";
        txt += "<div style=\"float:left;width:30%;min-width:150px;max-height:400px;overflow:auto;border:1px solid #f0f0f0\">";
        txt += "<div style=\"background-color:#a0a0a0\">record selector</div>";
        for (var i=0; i<data['db'].length; i++) {
            txt += "<div ";
            txt += " onmouseover=\"config.datadb.item_over(this)\"";
            txt += " onmouseout=\"config.datadb.item_out(this)\"";
            txt += " onclick=\"config.datadb.form.item_click('" + title + "', '" + i.toString() + "')\"";
            txt += ">";
            txt += "<table width=100% style=\"margin:0px;padding:0px;border:0px\"><tr style=\"border:0px\"><td width=80% style=\"border:0px\">" + data['db'][i][0] + "</td><td style=\"border:0px;text-align:right\"><a href=\"javascript:config.datadb.form.item_del('" + title + "', '" + i + "');\">x</a></td></tr></table>";
            txt += "</div>";
        }
        txt += "</div>";
        txt += "<div style=\"float:left;margin:0px 0px 0px 5px;padding:0px;width:68%;\">";
        txt += "<div style=\"background-color:#a0a0a0;text-align:center\">the record</div>";
        txt += "<form id=" + stub + "_form name=" + stub + "_form onsubmit=\"return config.datadb.form.form_submit('" + title + "');\">";
        txt += "<table width=97%>";
        txt += "<tr><th>Field</th><th>Value</th></tr>";
        txt += "<input id=" + stub + "_num type=hidden value='' >";
        for (var i=0; i<data['schema'].length; i++) {
            txt += "<tr><td width=25%>" + data['schema'][i][0] + "</td><td width=75%><input id=" + title + "_" + data['schema'][i] + "_" + i.toString() + " type=text style=\"width:98%\"></td></tr>";
        }
        txt += "<tr><td colspan=2 style=\"text-align:right;padding:5px\"> <input style=\"opacity:.5;width:75px\" id=" + stub + "_clear type=submit name=clear value=clear onclick=config.datadb.form.form_clear('" + title + "')> <input style=\"width:75px;\" id=" + stub + "_add type=submit name=add value=add onclick=config.datadb.form.form_add('" + title + "')></td></tr>";
        txt += "</table>";
        txt += "</form>";
        txt += "</div>";
        txt += "<div style=\"clear:both\"></div>";
        return txt;
    }
};
config.datadb.schema = {
    props: ["name", "size", "default", "Qview"],
    about_status: "-",
    build: function(title, params, data) {
        var stub = title.replace(/ /g, "_");
        var txt = "<div id=" + stub + "_vschema>";
        txt += this.build_form(title, params, data)
        txt += "</div>";
        return txt;
    },
    item_up: function(title, s) {
        var t = store.getTiddler(title);
        var data = t.data("schema");
        var s = s*1;
        var a = data[s];
        var b = data[s-1];
        data[s] = b;
        data[s-1] = a;
        var db = t.data("db");
        for (var i=0; i<db.length; i++) {
            var a = db[i][s];
            var b = db[i][s-1];
            db[i][s] = b;
            db[i][s-1] = a;
        }
        t.setData("db", db);
        t.setData("schema", data);
        story.refreshTiddler(title, null, true);
    },
    item_down: function(title, s) {
        var t = store.getTiddler(title);
        var data = t.data("schema");
        var s = s*1;
        var a = data[s];
        var b = data[s+1];
        data[s+1] = a;
        data[s] = b;
        var db = t.data("db");
        for (var i=0; i<db.length; i++) {
            var a = db[i][s];
            var b = db[i][s+1];
            db[i][s+1] = a;
            db[i][s] = b;
        }
        t.setData("db", db);
        t.setData("schema", data);
        story.refreshTiddler(title, null, true);
    },
    item_click: function(title, i) {
        var i = i*1;
        var t = store.getTiddler(title);
        var data = t.data();
        this.load_form(title, data, i);
    },
    item_del: function(title, num) {
        var t = store.getTiddler(title);
        var data = t.data("schema");
        data.splice(num*1, 1);
        var db = t.data("db");
        for (var i=0; i<db.length; i++) {
            db[i].splice(num*1, 1);
        }
        t.setData("db", db);
        t.setData("schema", data);
        story.refreshTiddler(title, null, true);
    },
    load_form: function(title, data, rnum) {
        var r = data['schema'][rnum];
        var stub = title.replace(/ /g, "_");
        var rid = stub + "_num";
        document.getElementById(rid).value = rnum;
        for (var i=0; i<this.props.length; i++) {
            var rid = title + "_" + this.props[i] + "_" + i.toString();
            document.getElementById(rid).value = r[i];
        }
        var rid = stub + "_clear";
        document.getElementById(rid).style.opacity = "1";
        var rid = stub + "_add";
        document.getElementById(rid).style.color = "red";
        document.getElementById(rid).setAttribute("value", "edit");
    },
    form_submit: function(title) {
        return false;
    },
    form_add: function(title) {
        var t = store.getTiddler(title);
        var data = t.data();
        var r = []
        for (var i=0; i<this.props.length; i++) {
            var rid = title + "_" + this.props[i] + "_" + i.toString();
            r[i] = document.getElementById(rid).value;
        }
        var rid = title.replace(/ /g, "_") + "_num";
        var num = document.getElementById(rid).value;
        if (num) {
            num = num*1;
            data['schema'][num] = r;
        } else {
            data['schema'].push(r);
            for (var i=0; i<data["db"].length; i++) {
                data["db"][i].push("x");
            }
            t.setData("db", data["db"]);
        }
        t.setData("schema", data['schema']);
        story.refreshTiddler(title, null, true);
    },
    form_clear: function(title) {
        var t = store.getTiddler(title);
        var data = t.data();
        var stub = title.replace(/ /g, "_");
        var rid = stub + "_num";
        document.getElementById(rid).value = '';
        for (var i=0; i<this.props.length; i++) {
            var rid = title + "_" + this.props[i] + "_" + i.toString();
            document.getElementById(rid).value = "";
        }
        var rid = stub + "_clear";
        document.getElementById(rid).style.opacity = ".5";
        var rid = stub + "_add";
        document.getElementById(rid).style.color = "black";
        document.getElementById(rid).setAttribute("value", "add");
    },
    toggle_about: function(title) {
        var stub = title.replace(/ /g, "_");
        if (this.about_status == '+') {
            document.getElementById(stub + "_about").style.height = "18px";
            document.getElementById(stub + "_about_text").style.display = "none";
            this.about_status = "-";
        } else {
            document.getElementById(stub + "_about").style.height = "100px";
            document.getElementById(stub + "_about_text").style.display = "inline";
            this.about_status = "+";
        }
    },
    build_form: function(title, params, data) {
        var stub = title.replace(/ /g, "_");
        var txt = "<div id=" + stub + "_vform>";
        txt += "<div id=" + stub + "_about style=\"background-color:#f0f0f0;margin:5px;padding:5px;min-height:18px\">";
        txt += "<div style=\"float:right;cursor:pointer\" onclick=config.datadb.schema.toggle_about('" + title + "')>(+/-)</div>";
        txt += "<div id=" + stub + "_about_text style=\"display:none\">";
        txt += "<h3>This form is where you enter the fields that your database will have</h3>";
        txt += "<b>name:</b> field name- no spaces<br/>";
        txt += "<b>size:</b> for later use<br/>";
        txt += "<b>default:</b> the default value to use<br/>";
        txt += "<b>Qview:</b> enter y to ensure this field is visble in query view.<br/>";
        txt += "</div>";
        txt += "</div>";
        txt += "<div style=\"float:left;width:35%;min-width:150px;max-height:400px;overflow:auto;border:1px solid #f0f0f0\">";
        txt += "<div style=\"background-color:#ffffe0\">field selector</div>";
        for (var i=0; i<data['schema'].length; i++) {
            txt += "<div ";
            txt += " onmouseover=\"config.datadb.item_over(this)\"";
            txt += " onmouseout=\"config.datadb.item_out(this)\"";
            txt += " onclick=\"config.datadb.schema.item_click('" + title + "', '" + i.toString() + "')\"";
            txt += ">";
            txt += "<table width=100% style=\"margin:0px;padding:0px;border:0px\"><tr style=\"border:0px\"><td width=80% style=\"border:0px\">" + data['schema'][i][0] + "</td>";
            txt += "<td style=\"border:0px;text-align:right\">";
            txt += "<a ";
            if (i>0) {
            txt += "href=\"javascript:config.datadb.schema.item_up('" + title + "', '" + i + "');\"";
            }
            txt += ">";
            txt += "↑</a> &nbsp; ";
            txt += "<a ";
            if (i != data['schema'].length-1) {
            txt += "href=\"javascript:config.datadb.schema.item_down('" + title + "', '" + i + "');\"";
            }
            txt += ">";
            txt += "↓</a> &nbsp; ";
            txt += "<a style=\"color:red;\" href=\"javascript:config.datadb.schema.item_del('" + title + "', '" + i + "');\">x</a>";
            txt += "</td></tr></table>";
            txt += "</div>";
        }
        txt += "</div>";
        txt += "<div style=\"float:left;margin:0px 0px 0px 5px;padding:0px;width:63%;\">";
        txt += "<div style=\"background-color:#ffffe0;text-align:center\">field properties</div>";
        txt += "<form id=" + stub + "_form name=" + stub + "_form onsubmit=\"return config.datadb.schema.form_submit('" + title + "');\">";
        txt += "<table width=97%>";
        txt += "<tr><th>Field</th><th>Value</th></tr>";
        txt += "<input id=" + stub + "_num type=hidden value='' >";
        for (var i=0; i<this.props.length; i++) {
            txt += "<tr><td width=25%>" + this.props[i] + "</td><td width=75%><input id=" + title + "_" + this.props[i] + "_" + i.toString() + " type=text style=\"width:98%\"></td></tr>";
        }
        txt += "<tr><td colspan=2 style=\"text-align:right;padding:5px\"> <input style=\"opacity:.5;width:75px\" id=" + stub + "_clear type=submit name=clear value=clear onclick=config.datadb.schema.form_clear('" + title + "')> <input style=\"width:75px;\" id=" + stub + "_add type=submit name=add value=add onclick=config.datadb.schema.form_add('" + title + "')></td></tr>";
        txt += "</table>";
        txt += "</form>";
        txt += "</div>";
        txt += "</div>";
        txt += "<div style=\"clear:both\">";
        txt += "</div>";
        return txt;
    }
};
config.datadb.query = {
    build: function(title, params, data) {
        var stub = title.replace(/ /g, "_");
        var txt = "<div id=" + stub + "_vquery>";
        txt += this.build_form(title, params, data)
        txt += "</div>";
        return txt;
    },
    item_view: function(e, num, title) {
        var t = store.getTiddler(title);
        var data = t.data('schema');
        if (e.checked){
            data[num][3] = 'y';
        } else {
            data[num][3] = '';
        }
        t.setData("schema", data);
        story.refreshTiddler(title, null, true);
    },
    item_q: function(title) {
        var stub = title.replace(/ /g, "_");
        var t = store.getTiddler(title);
        var data = t.data('zq');
        var rid = stub + "_q";
        data = document.getElementById(rid).value;
        t.setData("zq", data);
        story.refreshTiddler(title, null, true);
    },
    form_submit: function(title) {
        return false;
    },
    build_form: function(title, params, data) {
        var stub = title.replace(/ /g, "_");
        var txt = "<div id=" + stub + "_vform>";
        txt += "<div style=\"float:left;width:100%;\">";
        txt += "<div style=\"background-color:#f0f0f0;margin:5px 2px 2px 2px;padding:10px\">";
        txt += "<div style=\"float:left;width:20%;height:60px;overflow:auto;border:0px solid #000000\">";
        for (var i=0; i<data['schema'].length; i++) {
            txt += "<input type=checkbox onclick=\"config.datadb.query.item_view(this, '" + i.toString() + "', '" + title + "');\"";
            if (data['schema'][i][3] == 'y') {
                txt += " checked ";
            }
            txt += "> ";
            txt += data['schema'][i][0] + "<br/>";
        }
        txt += "</div>";
        txt += "<div style=\"float:left;width:78%;padding-top:20px\">";
        txt += "<form id=" + stub + "_form name=" + stub + "_form onsubmit=\"return config.datadb.query.form_submit('" + title + "');\">";
        txt += "<center><b>Q</b>: <input id=" + stub + "_q name=q value=\"" + data['zq']  + "\" type=text style=\"width:70%\"> <input type=submit value=go onclick=config.datadb.query.item_q('" + title + "')></center>";
        txt += "</form>";
        txt += "</div>";
        txt += "<div style=\"clear:both\"></div>";
        txt += "</div>";
        txt += "<table width=97%>";
        for (var i=0; i<data['schema'].length; i++) {
            if (data['schema'][i][3] != '' || i == 0){
                txt += "<th>" + data['schema'][i][0] + "</th>";
            }
        }
        for (var i=0; i<data['db'].length; i++) {
            showit = true;
            if (data['zq'] != '') {
                showit = false;
                var q = data['zq'].toLowerCase();
                for (var j=0; j<data['db'][i].length; j++) {
                    var qq = data['db'][i][j].toLowerCase();
                    if (qq.indexOf(q) != -1) {
                        showit = true;
                    }
                }
            }
            if (showit) {
                txt += "<tr ";
                txt += " onmouseover=\"config.datadb.item_over(this)\"";
                txt += " onmouseout=\"config.datadb.item_out(this)\"";
                txt += " onclick=\"config.datadb.schema.item_click('" + title + "', '" + i.toString() + "')\"";
                txt += ">";
                for (var j=0; j<data['db'][i].length; j++) {
                    if (data['schema'][j][3] != '' || j == 0){
                        txt += "<td>" + data['db'][i][j] + "</td>";
                    }
                }
                txt += "</tr>";
            }
        }
        txt += "</table>";
        txt += "</div>";
        txt += "</div>";
        txt += "<div style=\"clear:both\"></div>";
        return txt;
    }
};
config.datadb.tools = {
    build: function(title, params, data) {
        var stub = title.replace(/ /g, "_");
        var txt = "<div id=" + stub + "_vtools>";
        txt += this.build_form(title, params, data)
        txt += "</div>";
        return txt;
    },
    xportcsv: function(title) {
        var stub = title.replace(/ /g, "_");
        var rid = stub + "_export_csv";
        extid = document.getElementById(rid).value;
        if (extid != "") {
            var newDate = new Date();
            var t = store.getTiddler(title);
            var data = t.data();
            var h = [];
            for (var i=0; i<data['schema'].length; i++) {
                h.push(data['schema'][i][0]);
            }
            txt = h.join(", ") + "\n";
            for (var i=0; i<data['db'].length; i++){
                txt += data['db'][i].join(", ") + "\n";
            }
            tags = "datadb";
            store.saveTiddler(extid, extid, txt, "datadb", newDate, tags, "", true, newDate);
            story.displayTiddler('top', extid, '', true, '', '', false);
        }
    },
    xporthtml: function(title) {
        var stub = title.replace(/ /g, "_");
        var rid = stub + "_export_html";
        extid = document.getElementById(rid).value;
        if (extid != "") {
            var newDate = new Date();
            var t = store.getTiddler(title);
            var data = t.data();
            var h = [];
            for (var i=0; i<data['schema'].length; i++) {
                h.push(data['schema'][i][0]);
            }
            txt = "<html>\n<table>";
            txt += "<tr><th>" + h.join("</th><th>") + "</th></tr>";
            for (var i=0; i<data['db'].length; i++){
                txt += "<tr><td>" + data['db'][i].join("</td><td>") + "</td></tr>";
            }
            txt += "</table>\n</html>";
            tags = "datadb";
            store.saveTiddler(extid, extid, txt, "datadb", newDate, tags, "", true, newDate);
            story.displayTiddler('top', extid, '', true, '', '', false);
        }
    },
    mport: function(title) {
        var stub = title.replace(/ /g, "_");
        var rid = stub + "_import";
        extid = document.getElementById(rid).value;
        if (extid != "") {
            var t = store.getTiddler(extid);
            var lines = t.text.split("\n");
            var db = [];
            for (var i=0; i<lines.length; i++) {
                if (lines[i].length>1) {
                    if (i==0) {
                        var f = lines[i].split(',');
                        var schema = []
                        for (var j=0; j<f.length; j++) {
                            if (j<3) {
                                schema[j] = [f[j], "", "", "y"];
                            } else {
                                schema[j] = [f[j], "", "", ""];
                            }
                        }
                    } else {
                        var f = lines[i].split(',');
                            var x = [];
                        for (var j=0; j<f.length; j++) {
                            x.push(f[j]);
                        }
                        db.push(x);
                    }
                }
            }
            var t = store.getTiddler(title);
            t.setData("db", db);
            t.setData("schema", schema);
            t.setData("view", "query");
            story.refreshTiddler(title, null, true);
        }
    },
    build_form: function(title, params, data) {
        var stub = title.replace(/ /g, "_");
        var txt = "<div id=" + stub + "_vform>";
        txt += "<div style=\"float:left;width:100%;min-width:300px;max-height:400px;overflow:auto;border:0px solid #f0f0f0\">";
        txt += "<div style=\"background-color:#f0f0f0;margin:5px 2px 2px 2px;padding:10px\">";
        txt += "<fieldset><legend>Export</legend>";
        txt += "<table style=\"border:0px\">";
        txt += "<tr style=\"border:0px\"><td style=\"border:0px\">Export to tiddler (csv):</td><td style=\"border:0px\"><input id=" + stub + "_export_csv type=text name=export_csv value=\"" + stub + "_export_csv\">";
        txt += " <input type=submit value=go onclick=config.datadb.tools.xportcsv('" + title + "')></td></tr>";
        txt += "<tr style=\"border:0px\"><td style=\"border:0px\">Export to tiddler (html):</td><td style=\"border:0px\"><input id=" + stub + "_export_html type=text name=export_html value=\"" + stub + "_export_html\">";
        txt += " <input type=submit value=go onclick=config.datadb.tools.xporthtml('" + title + "')></td></tr>";
        txt += "</table>";
        txt += "</fieldset>";
        txt += "<fieldset><legend>Import</legend>";
        txt += "Import from tiddler (csv): <input id=" + stub + "_import type=text name=import value=\"" + stub + "_import\">";
        txt += " <input type=submit value=go onclick=config.datadb.tools.mport('" + title + "')><br/>";
        txt += "Note: <ul>";
        txt += "<li>This imports data in a csv format from the specified tiddler.</li>";
        txt += "<li>The first line is interpreted to be the field names</li>";
        txt += "<li>Any existing data will be <u>overwritten</u></li>";
        txt += "</ul>";
        txt += "</fieldset>";
        txt += "</div>";
        txt += "</div>";
        txt += "</div>";
        txt += "<div style=\"clear:both\"></div>";
        return txt;
    }
};
config.macros.datadb = {
    handler: function(place,macroName,params, wikifier, paramString, tiddler) {
        var data = tiddler.data();
        if (!data) { data = {}; };
        if (!data['db']) { data['db'] = []; tiddler.setData('db', data['db']); }
        if (!data['schema']) { data['schema'] = [["name","","", "y"]]; tiddler.setData('schema', data['schema']); }
        if (!data['view']) { data['view'] = 'schema'; tiddler.setData('form', data['form']); }
        if (!data['zq']) { data['zq'] = ''; tiddler.setData('zq', data['zq']); }
        var txt = "<table width=92% style=\"margin:0px;padding:0px;border:0px;\"><tr style=\"border:0px\"><td style=\"border:0px\">";
        txt += config.datadb.build_head(tiddler.title, data['view']);
        switch (data['view']) {
            case 'form':
                txt += config.datadb.form.build_form(tiddler.title, params, data);
                break;
            case 'query':
                txt += config.datadb.query.build(tiddler.title, params, data);
                break;
            case 'schema':
                txt += config.datadb.schema.build(tiddler.title, params, data);
                break;
            case 'tools':
                txt += config.datadb.tools.build(tiddler.title, params, data);
                break;
            case 'help':
                txt += config.datadb.build_help(tiddler.title, params, data);
                break;
        }
        txt += "</td></tr></table>";
        wikify("<html> " + txt + " </html>", place);
    }
};
//}}}
/***
|''Name:''|DataTiddlerPlugin|
|''Version:''|1.0.7 (2012-04-19)|
|''Summary:''|Enhance your tiddlers with structured data (such as strings, booleans, numbers, or even arrays and compound objects) that can be easily accessed and modified through named fields (in JavaScript code).|
|''Source:''|http://tiddlywiki.abego-software.de/#DataTiddlerPlugin|
|''Twitter:''|[[@abego|https://twitter.com/#!/abego]]|
|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|
|''License:''|[[BSD open source license|http://www.abego-software.de/legal/apl-v10.html]]|
!Description
Enhance your tiddlers with structured data (such as strings, booleans, numbers, or even arrays and compound objects) that can be easily accessed and modified through named fields (in JavaScript code).

Such tiddler data can be used in various applications. E.g. you may create tables that collect data from various tiddlers. 

''//Example: "Table with all December Expenses"//''
{{{
<<forEachTiddler
    where
        'tiddler.tags.contains("expense") && tiddler.data("month") == "Dec"'
    write
        '"|[["+tiddler.title+"]]|"+tiddler.data("descr")+"| "+tiddler.data("amount")+"|\n"'
>>
}}}
//(This assumes that expenses are stored in tiddlers tagged with "expense".)//
<<forEachTiddler
    where
        'tiddler.tags.contains("expense") && tiddler.data("month") == "Dec"'
    write
        '"|[["+tiddler.title+"]]|"+tiddler.data("descr")+"| "+tiddler.data("amount")+"|\n"'
>>
For other examples see DataTiddlerExamples.




''Access and Modify Tiddler Data''

You can "attach" data to every tiddler by assigning a JavaScript value (such as a string, boolean, number, or even arrays and compound objects) to named fields. 

These values can be accessed and modified through the following Tiddler methods:
|!Method|!Example|!Description|
|{{{data(field)}}}|{{{t.data("age")}}}|Returns the value of the given data field of the tiddler. When no such field is defined or its value is undefined {{{undefined}}} is returned.|
|{{{data(field,defaultValue)}}}|{{{t.data("isVIP",false)}}}|Returns the value of the given data field of the tiddler. When no such field is defined or its value is undefined the defaultValue is returned.|
|{{{data()}}}|{{{t.data()}}}|Returns the data object of the tiddler, with a property for every field. The properties of the returned data object may only be read and not be modified. To modify the data use DataTiddler.setData(...) or the corresponding Tiddler method.|
|{{{setData(field,value)}}}|{{{t.setData("age",42)}}}|Sets the value of the given data field of the tiddler to the value. When the value is {{{undefined}}} the field is removed.|
|{{{setData(field,value,defaultValue)}}}|{{{t.setData("isVIP",flag,false)}}}|Sets the value of the given data field of the tiddler to the value. When the value is equal to the defaultValue no value is set (and the field is removed).|

Alternatively you may use the following functions to access and modify the data. In this case the tiddler argument is either a tiddler or the name of a tiddler.
|!Method|!Description|
|{{{DataTiddler.getData(tiddler,field)}}}|Returns the value of the given data field of the tiddler. When no such field is defined or its value is undefined {{{undefined}}} is returned.|
|{{{DataTiddler.getData(tiddler,field,defaultValue)}}}|Returns the value of the given data field of the tiddler. When no such field is defined or its value is undefined the defaultValue is returned.|
|{{{DataTiddler.getDataObject(tiddler)}}}|Returns the data object of the tiddler, with a property for every field. The properties of the returned data object may only be read and not be modified. To modify the data use DataTiddler.setData(...) or the corresponding Tiddler method.|
|{{{DataTiddler.setData(tiddler,field,value)}}}|Sets the value of the given data field of the tiddler to the value. When the value is {{{undefined}}} the field is removed.|
|{{{DataTiddler.setData(tiddler,field,value,defaultValue)}}}|Sets the value of the given data field of the tiddler to the value. When the value is equal to the defaultValue no value is set (and the field is removed).|
//(For details on the various functions see the detailed comments in the source code.)//


''Data Representation in a Tiddler''

The data of a tiddler is stored as plain text in the tiddler's content/text, inside a "data" section that is framed by a {{{<data>...</data>}}} block. Inside the data section the information is stored in the [[JSON format|http://www.crockford.com/JSON/index.html]]. 

//''Data Section Example:''//
{{{
<data>{"isVIP":true,"user":"John Brown","age":34}</data>
}}}

The data section is not displayed when viewing the tiddler (see also "The showData Macro").

Beside the data section a tiddler may have all kind of other content.

Typically you will not access the data section text directly but use the methods given above. Nevertheless you may retrieve the text of the data section's content through the {{{DataTiddler.getDataText(tiddler)}}} function.


''Saving Changes''

The "setData" methods respect the "ForceMinorUpdate" and "AutoSave" configuration values. I.e. when "ForceMinorUpdate" is true changing a value using setData will not affect the "modifier" and "modified" attributes. With "AutoSave" set to true every setData will directly save the changes after a setData.


''Notifications''

No notifications are sent when a tiddler's data value is changed through the "setData" methods. 

''Escape Data Section''
In case that you want to use the text {{{<data>}}} or {{{</data>}}} in a tiddler text you must prefix the text with a tilde ('~'). Otherwise it may be wrongly considered as the data section. The tiddler text {{{~<data>}}} is displayed as {{{<data>}}}.


''The showData Macro''

By default the data of a tiddler (that is stored in the {{{<data>...</data>}}} section of the tiddler) is not displayed. If you want to display this data you may used the {{{<<showData ...>>}}} macro:

''Syntax:'' 
|>|{{{<<}}}''showData '' [''JSON''] [//tiddlerName//] {{{>>}}}|
|''JSON''|By default the data is rendered as a table with a "Name" and "Value" column. When defining ''JSON'' the data is rendered in JSON format|
|//tiddlerName//|Defines the tiddler holding the data to be displayed. When no tiddler is given the tiddler containing the showData macro is used. When the tiddler name contains spaces you must quote the name (or use the {{{[[...]]}}} syntax.)|
|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|
!Source Code
***/
/***
This plugin's source code is compressed (and hidden). 
Use this [[link|http://tiddlywiki.abego-software.de/archive/DataTiddlerPlugin/1.0.7/DataTiddlerPlugin-1.0.7-src.js]] to get the readable source code.
***/
///%
if(!version.extensions.DataTiddlerPlugin){version.extensions.DataTiddlerPlugin={major:1,minor:0,revision:7,date:new Date(2012,3,19),type:"plugin",source:"http://tiddlywiki.abego-software.de/#DataTiddlerPlugin"};if(!window.story){window.story=window}if(!TiddlyWiki.prototype.getTiddler){TiddlyWiki.prototype.getTiddler=function(b){var a=this.tiddlers[b];return(a!==undefined&&a instanceof Tiddler)?a:null}}function DataTiddler(){}DataTiddler={stringify:null,parse:null};window.DataTiddler=DataTiddler;DataTiddler.getData=function(c,d,a){var b=(typeof c=="string")?store.getTiddler(c):c;if(!(b instanceof Tiddler)){throw"Tiddler expected. Got "+c}return DataTiddler.getTiddlerDataValue(b,d,a)};DataTiddler.setData=function(c,e,d,a){var b=(typeof c=="string")?store.getTiddler(c):c;if(!(b instanceof Tiddler)){throw"Tiddler expected. Got "+c+"("+b+")"}DataTiddler.setTiddlerDataValue(b,e,d,a)};DataTiddler.getDataObject=function(b){var a=(typeof b=="string")?store.getTiddler(b):b;if(!(a instanceof Tiddler)){throw"Tiddler expected. Got "+b}return DataTiddler.getTiddlerDataObject(a)};DataTiddler.getDataText=function(b){var a=(typeof b=="string")?store.getTiddler(b):b;if(!(a instanceof Tiddler)){throw"Tiddler expected. Got "+b}return DataTiddler.readDataSectionText(a)};DataTiddler.extendJSONError=function(a){if(a.name=="JSONError"){a.toString=function(){return a.name+": "+a.message+" ("+a.text+")"}}return a};DataTiddler.getTiddlerDataObject=function(a){if(a.dataObject===undefined){var b=DataTiddler.readData(a);a.dataObject=(b)?b:{}}return a.dataObject};DataTiddler.getTiddlerDataValue=function(b,d,a){var c=DataTiddler.getTiddlerDataObject(b)[d];return(c===undefined)?a:c};DataTiddler.setTiddlerDataValue=function(c,f,e,a){var d=DataTiddler.getTiddlerDataObject(c);var b=d[f];if(e==a){if(b!==undefined){delete d[f];DataTiddler.save(c)}return}d[f]=e;DataTiddler.save(c)};DataTiddler.readDataSectionText=function(a){var b=DataTiddler.getDataTiddlerMatches(a);if(b===null||!b[2]){return null}return b[2]};DataTiddler.readData=function(b){var c=DataTiddler.readDataSectionText(b);try{return c?DataTiddler.parse(c):null}catch(a){throw DataTiddler.extendJSONError(a)}};DataTiddler.getDataTextOfTiddler=function(a){var b=DataTiddler.getTiddlerDataObject(a);return DataTiddler.stringify(b)};DataTiddler.indexOfNonEscapedText=function(c,a,d){var b=c.indexOf(a,d);while((b>0)&&(c[b-1]=="~")){b=c.indexOf(a,b+1)}return b};DataTiddler.getDataSectionInfo=function(e){var a="<data>{";var f="}</data>";var d=DataTiddler.indexOfNonEscapedText(e,a,0);if(d<0){return null}var c=e.indexOf(f,d);if(c<0){return null}var b;while((b=e.indexOf(f,c+1))>=0){c=b}return{prefixEnd:d,dataStart:d+(a.length)-1,dataEnd:c,suffixStart:c+(f.length)}};DataTiddler.getDataTiddlerMatches=function(a){var f=a.text;var e=DataTiddler.getDataSectionInfo(f);if(!e){return null}var c=f.substr(0,e.prefixEnd);var b=f.substr(e.dataStart,e.dataEnd-e.dataStart+1);var d=f.substr(e.suffixStart);return[f,c,b,d]};DataTiddler.save=function(a){var e=DataTiddler.getDataTiddlerMatches(a);var d;var f;if(e===null){d=a.text;f=""}else{d=e[1];f=e[3]}var b=DataTiddler.getDataTextOfTiddler(a);var c=(b!==null)?d+"<data>"+b+"</data>"+f:d+f;if(c!=a.text){a.isDataTiddlerChange=true;a.set(a.title,c,config.options.txtUserName,config.options.chkForceMinorUpdate?undefined:new Date(),a.tags);delete a.isDataTiddlerChange;store.dirty=true;if(config.options.chkAutoSave){saveChanges()}}};DataTiddler.MyTiddlerChangedFunction=function(){if(this.dataObject&&!this.isDataTiddlerChange){delete this.dataObject}DataTiddler.originalTiddlerChangedFunction.apply(this,arguments)};config.formatters.push({name:"data-escape",match:"~<\\/?data>",handler:function(a){a.outputText(a.output,a.matchStart+1,a.nextMatch)}});config.formatters.push({name:"data",match:"<data>",handler:function(a){var b=DataTiddler.getDataSectionInfo(a.source);if(b&&b.prefixEnd==a.matchStart){a.nextMatch=b.suffixStart}else{a.outputText(a.output,a.matchStart,a.nextMatch)}}});DataTiddler.originalTiddlerChangedFunction=Tiddler.prototype.changed;Tiddler.prototype.changed=DataTiddler.MyTiddlerChangedFunction;Tiddler.prototype.data=function(b,a){return(b)?DataTiddler.getTiddlerDataValue(this,b,a):DataTiddler.getTiddlerDataObject(this)};Tiddler.prototype.setData=function(c,b,a){DataTiddler.setTiddlerDataValue(this,c,b,a)};config.macros.showData={label:"showData",prompt:"Display the values stored in the data section of the tiddler"};config.macros.showData.handler=function(a,g,h){var c=0;var d=false;if((c<h.length)&&h[c]=="JSON"){c++;d=true}var b=story.findContainingTiddler(a).getAttribute("tiddler");if(c<h.length){b=h[c];c++}try{if(d){this.renderDataInJSONFormat(a,b)}else{this.renderDataAsTable(a,b)}}catch(f){this.createErrorElement(a,f)}};config.macros.showData.renderDataInJSONFormat=function(a,b){var c=DataTiddler.getDataText(b);if(c){createTiddlyElement(a,"pre",null,null,c)}};config.macros.showData.renderDataAsTable=function(a,b){var f="|!Name|!Value|\n";var e=DataTiddler.getDataObject(b);if(e){for(var c in e){var d=e[c];f+="|"+c+"|"+DataTiddler.stringify(d)+"|\n"}}wikify(f,a)};config.macros.showData.createErrorElement=function(a,b){var c=(b.description)?b.description:b.toString();return createTiddlyElement(a,"span",null,"showDataError","<<showData ...>>: "+c)};setStylesheet(".showDataError{color: #ffffff;background-color: #880000;}","showData")}var JSON={copyright:"(c)2005 JSON.org",license:"http://www.crockford.com/JSON/license.html",stringify:function(c){var b=[];function f(a){b[b.length]=a}function d(a){var j,h=undefined,e,g;switch(typeof a){case"object":if(a){if(a instanceof Array){f("[");e=b.length;for(h=0;h<a.length;h+=1){g=a[h];if(typeof g!="undefined"&&typeof g!="function"){if(e<b.length){f(",")}d(g)}}f("]");return}else{if(typeof a.toString!="undefined"){f("{");e=b.length;for(h in a){g=a[h];if(a.hasOwnProperty(h)&&typeof g!="undefined"&&typeof g!="function"){if(e<b.length){f(",")}d(h);f(":");d(g)}}return f("}")}}}f("null");return;case"number":f(isFinite(a)?+a:"null");return;case"string":e=a.length;f('"');for(h=0;h<e;h+=1){j=a.charAt(h);if(j>=" "){if(j=="\\"||j=='"'){f("\\")}f(j)}else{switch(j){case"\b":f("\\b");break;case"\f":f("\\f");break;case"\n":f("\\n");break;case"\r":f("\\r");break;case"\t":f("\\t");break;default:j=j.charCodeAt();f("\\u00"+Math.floor(j/16).toString(16)+(j%16).toString(16))}}}f('"');return;case"boolean":f(String(a));return;default:f("null");return}}d(c);return b.join("")},parse:function(text){var p=/^\s*(([,:{}\[\]])|"(\\.|[^\x00-\x1f"\\])*"|-?\d+(\.\d*)?([eE][+-]?\d+)?|true|false|null)\s*/,token=undefined,operator=undefined;function error(m,t){throw {name:"JSONError",message:m,text:t||operator||token}}function next(b){if(b&&b!=operator){error("Expected '"+b+"'")}if(text){var t=p.exec(text);if(t){if(t[2]){token=null;operator=t[2]}else{operator=null;try{token=eval(t[1])}catch(e){error("Bad token",t[1])}}text=text.substring(t[0].length)}else{error("Unrecognized token",text)}}else{token=operator=undefined}}function val(){var k,o;switch(operator){case"{":next("{");o={};if(operator!="}"){for(;;){if(operator||typeof token!="string"){error("Missing key")}k=token;next();next(":");o[k]=val();if(operator!=","){break}next(",")}}next("}");return o;case"[":next("[");o=[];if(operator!="]"){for(;;){o.push(val());if(operator!=","){break}next(",")}}next("]");return o;default:if(operator!==null){error("Missing value")}k=token;next();return k}}next();return val()}};DataTiddler.format="JSON";DataTiddler.stringify=JSON.stringify;DataTiddler.parse=JSON.parse;
//%/
/***
|Name|[[DatePlugin]]|
|Source|http://www.TiddlyTools.com/#DatePlugin|
|Documentation|http://www.TiddlyTools.com/#DatePluginInfo|
|Version|2.7.1|
|Author|[[EricShulman]]|
|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||
|Options|##Configuration|
|Description|formatted dates plus popup menu with 'journal' link, changes and (optional) reminders|
This plugin provides a general approach to displaying formatted dates and/or links and popups that permit easy navigation and management of tiddlers based on their creation/modification dates.
!!!!!Documentation
>see [[DatePluginInfo]]
!!!!!Configuration
<<<
<<option chkDatePopupHideCreated>> omit 'created' section from date popups
<<option chkDatePopupHideChanged>> omit 'changed' section from date popups
<<option chkDatePopupHideTagged>> omit 'tagged' section from date popups
<<option chkDatePopupHideReminders>> omit 'reminders' section from date popups
<<option chkShowJulianDate>> display Julian day number (1-365) below current date

see [[DatePluginConfig]] for additional configuration settings, for use in calendar displays, including:
*date formats
*color-coded backgrounds
*annual fixed-date holidays
*weekends
<<<
!!!!!Revisions
<<<
2009.05.31 [2.7.1] in addRemindersToPopup(), 'new reminder....' command now uses {{{<<newTiddler>>}}} macro.  Also, general code reduction/cleanup.
|please see [[DatePluginInfo]] for additional revision details|
2005.10.30 [0.9.0] pre-release
<<<
!!!!!Code
***/
//{{{
version.extensions.DatePlugin= {major: 2, minor: 7, revision: 1, date: new Date(2009,5,31)};

config.macros.date = {
	format: 'YYYY.0MM.0DD', // default date display format
	linkformat: 'YYYY.0MM.0DD', // 'dated tiddler' link format
	linkedbg: '#babb1e', // 'babble'
	todaybg: '#ffab1e', // 'fable'
	weekendbg: '#c0c0c0', // 'cocoa'
	holidaybg: '#ffaace', // 'face'
	createdbg: '#bbeeff', // 'beef'
	modifiedsbg: '#bbeeff', // 'beef'
	remindersbg: '#c0ffee', // 'coffee'
	weekend: [ 1,0,0,0,0,0,1 ], // [ day index values: sun=0, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6 ],
	holidays: [ '01/01', '07/04', '07/24', '11/24' ]
		// NewYearsDay, IndependenceDay(US), Eric's Birthday (hooray!), Thanksgiving(US)
};

config.macros.date.handler = function(place,macroName,params)
{
	// default: display current date
	var now =new Date();
	var date=now;
	var mode='display';
	if (params[0]&&['display','popup','link'].contains(params[0].toLowerCase()))
		{ mode=params[0]; params.shift(); }

	if (!params[0] || params[0]=='today')
		{ params.shift(); }
	else if (params[0]=='filedate')
		{ date=new Date(document.lastModified); params.shift(); }
	else if (params[0]=='tiddler')
		{ date=store.getTiddler(story.findContainingTiddler(place).id.substr(7)).modified; params.shift(); }
	else if (params[0].substr(0,8)=='tiddler:')
		{ var t; if ((t=store.getTiddler(params[0].substr(8)))) date=t.modified; params.shift(); }
	else {
		var y = eval(params.shift().replace(/Y/ig,(now.getYear()<1900)?now.getYear()+1900:now.getYear()));
		var m = eval(params.shift().replace(/M/ig,now.getMonth()+1));
		var d = eval(params.shift().replace(/D/ig,now.getDate()+0));
		date = new Date(y,m-1,d);
	}
	// date format with optional custom override
	var format=this.format; if (params[0]) format=params.shift();
	var linkformat=this.linkformat; if (params[0]) linkformat=params.shift();
	showDate(place,date,mode,format,linkformat);
}

window.showDate=showDate;
function showDate(place,date,mode,format,linkformat,autostyle,weekend)
{
	mode	  =mode||'display';
	format	  =format||config.macros.date.format;
	linkformat=linkformat||config.macros.date.linkformat;

	// format the date output
	var title=date.formatString(format);
	var linkto=date.formatString(linkformat);

	// just show the formatted output
	if (mode=='display') { place.appendChild(document.createTextNode(title)); return; }

	// link to a 'dated tiddler'
	var link = createTiddlyLink(place, linkto, false);
	link.appendChild(document.createTextNode(title));
	link.title = linkto;
	link.date = date;
	link.format = format;
	link.linkformat = linkformat;

	// if using a popup menu, replace click handler for dated tiddler link
	// with handler for popup and make link text non-italic (i.e., an 'existing link' look)
	if (mode=='popup') {
		link.onclick = onClickDatePopup;
		link.style.fontStyle='normal';
	}
	// format the popup link to show what kind of info it contains (for use with calendar generators)
	if (autostyle) setDateStyle(place,link,weekend);
}
//}}}
//{{{
// NOTE: This function provides default logic for setting the date style when displayed in a calendar
// To customize the date style logic, please see[[DatePluginConfig]]
function setDateStyle(place,link,weekend) {
	// alias variable names for code readability
	var date=link.date;
	var fmt=link.linkformat;
	var linkto=date.formatString(fmt);
	var cmd=config.macros.date;

	if ((weekend!==undefined?weekend:isWeekend(date))&&(cmd.weekendbg!=''))
		{ place.style.background = cmd.weekendbg; }
	if (hasModifieds(date)||hasCreateds(date)||hasTagged(date,fmt))
		{ link.style.fontStyle='normal'; link.style.fontWeight='bold'; }
	if (hasReminders(date))
		{ link.style.textDecoration='underline'; }
	if (isToday(date))
		{ link.style.border='1px solid black'; }
	if (isHoliday(date)&&(cmd.holidaybg!=''))
		{ place.style.background = cmd.holidaybg; }
	if (hasCreateds(date)&&(cmd.createdbg!=''))
		{ place.style.background = cmd.createdbg; }
	if (hasModifieds(date)&&(cmd.modifiedsbg!=''))
		{ place.style.background = cmd.modifiedsbg; }
	if ((hasTagged(date,fmt)||store.tiddlerExists(linkto))&&(cmd.linkedbg!=''))
		{ place.style.background = cmd.linkedbg; }
	if (hasReminders(date)&&(cmd.remindersbg!=''))
		{ place.style.background = cmd.remindersbg; }
	if (isToday(date)&&(cmd.todaybg!=''))
		{ place.style.background = cmd.todaybg; }
	if (config.options.chkShowJulianDate) { // optional display of Julian date numbers
		var m=[0,31,59,90,120,151,181,212,243,273,304,334];
		var d=date.getDate()+m[date.getMonth()];
		var y=date.getFullYear();
		if (date.getMonth()>1 && (y%4==0 && y%100!=0) || y%400==0)
			d++; // after February in a leap year
		wikify('@@font-size:80%;<br>'+d+'@@',place);
	}

}
//}}}
//{{{
function isToday(date) // returns true if date is today
	{ var now=new Date(); return ((now-date>=0) && (now-date<86400000)); }
function isWeekend(date) // returns true if date is a weekend
	{ return (config.macros.date.weekend[date.getDay()]); }
function isHoliday(date) // returns true if date is a holiday
{
	var longHoliday = date.formatString('0MM/0DD/YYYY');
	var shortHoliday = date.formatString('0MM/0DD');
	for(var i = 0; i < config.macros.date.holidays.length; i++) {
		var holiday=config.macros.date.holidays[i];
		if (holiday==longHoliday||holiday==shortHoliday) return true;
	}
	return false;
}
//}}}
//{{{
// Event handler for clicking on a day popup
function onClickDatePopup(e) { e=e||window.event;
	var p=Popup.create(this); if (!p) return false;
	// always show dated tiddler link (or just date, if readOnly) at the top…
	if (!readOnly || store.tiddlerExists(this.date.formatString(this.linkformat)))
		createTiddlyLink(createTiddlyElement(p,'li'),this.date.formatString(this.linkformat),true);
	else
		createTiddlyText(createTiddlyElement(p,'li'),this.date.formatString(this.linkformat));
	if (!config.options.chkDatePopupHideCreated)
		addCreatedsToPopup(p,this.date,this.format);
	if (!config.options.chkDatePopupHideChanged)
		addModifiedsToPopup(p,this.date,this.format);
	if (!config.options.chkDatePopupHideTagged)
		addTaggedToPopup(p,this.date,this.linkformat);
	if (!config.options.chkDatePopupHideReminders)
		addRemindersToPopup(p,this.date,this.linkformat);
	Popup.show(); e.cancelBubble=true; if(e.stopPropagation)e.stopPropagation(); return false;
}
//}}}
//{{{
function indexCreateds() // build list of tiddlers, hash indexed by creation date
{
	var createds= { };
	var tiddlers = store.getTiddlers('title','excludeLists');
	for (var t = 0; t < tiddlers.length; t++) {
		var date = tiddlers[t].created.formatString('YYYY0MM0DD')
		if (!createds[date])
			createds[date]=new Array();
		createds[date].push(tiddlers[t].title);
	}
	return createds;
}
function hasCreateds(date) // returns true if date has created tiddlers
{
	if (!config.macros.date.createds) config.macros.date.createds=indexCreateds();
	return (config.macros.date.createds[date.formatString('YYYY0MM0DD')]!=undefined);
}

function addCreatedsToPopup(p,when,format)
{
	var force=(store.isDirty() && when.formatString('YYYY0MM0DD')==new Date().formatString('YYYY0MM0DD'));
	if (force || !config.macros.date.createds) config.macros.date.createds=indexCreateds();
	var indent=String.fromCharCode(160)+String.fromCharCode(160);
	var createds = config.macros.date.createds[when.formatString('YYYY0MM0DD')];
	if (createds) {
		createds.sort();
		var e=createTiddlyElement(p,'div',null,null,'created ('+createds.length+')');
		for(var t=0; t<createds.length; t++) {
			var link=createTiddlyLink(createTiddlyElement(p,'li'),createds[t],false);
			link.appendChild(document.createTextNode(indent+createds[t]));
		}
	}
}
//}}}
//{{{
function indexModifieds() // build list of tiddlers, hash indexed by modification date
{
	var modifieds= { };
	var tiddlers = store.getTiddlers('title','excludeLists');
	for (var t = 0; t < tiddlers.length; t++) {
		var date = tiddlers[t].modified.formatString('YYYY0MM0DD')
		if (!modifieds[date])
			modifieds[date]=new Array();
		modifieds[date].push(tiddlers[t].title);
	}
	return modifieds;
}
function hasModifieds(date) // returns true if date has modified tiddlers
{
	if (!config.macros.date.modifieds) config.macros.date.modifieds = indexModifieds();
	return (config.macros.date.modifieds[date.formatString('YYYY0MM0DD')]!=undefined);
}

function addModifiedsToPopup(p,when,format)
{
	var date=when.formatString('YYYY0MM0DD');
	var force=(store.isDirty() && date==new Date().formatString('YYYY0MM0DD'));
	if (force || !config.macros.date.modifieds) config.macros.date.modifieds=indexModifieds();
	var indent=String.fromCharCode(160)+String.fromCharCode(160);
	var mods = config.macros.date.modifieds[date];
	if (mods) {
		// if a tiddler was created on this date, don't list it in the 'changed' section
		if (config.macros.date.createds && config.macros.date.createds[date]) {
			var temp=[];
			for(var t=0; t<mods.length; t++)
				if (!config.macros.date.createds[date].contains(mods[t]))
					temp.push(mods[t]);
			mods=temp;
		}
		mods.sort();
		var e=createTiddlyElement(p,'div',null,null,'changed ('+mods.length+')');
		for(var t=0; t<mods.length; t++) {
			var link=createTiddlyLink(createTiddlyElement(p,'li'),mods[t],false);
			link.appendChild(document.createTextNode(indent+mods[t]));
		}
	}
}
//}}}
//{{{
function hasTagged(date,format) // returns true if date is tagging other tiddlers
{
	return store.getTaggedTiddlers(date.formatString(format)).length>0;
}

function addTaggedToPopup(p,when,format)
{
	var indent=String.fromCharCode(160)+String.fromCharCode(160);
	var tagged=store.getTaggedTiddlers(when.formatString(format));
	if (tagged.length) var e=createTiddlyElement(p,'div',null,null,'tagged ('+tagged.length+')');
	for(var t=0; t<tagged.length; t++) {
		var link=createTiddlyLink(createTiddlyElement(p,'li'),tagged[t].title,false);
		link.appendChild(document.createTextNode(indent+tagged[t].title));
	}
}
//}}}
//{{{
function indexReminders(date,leadtime) // build list of tiddlers with reminders, hash indexed by reminder date
{
	var reminders = { };
	if(window.findTiddlersWithReminders!=undefined) { // reminder plugin is installed
		var t = findTiddlersWithReminders(date, [0,leadtime], null, null, 1);
		for(var i=0; i<t.length; i++) reminders[t[i].matchedDate]=true;
	}
	return reminders;
}

function hasReminders(date) // returns true if date has reminders
{
	if (window.reminderCacheForCalendar)
		return window.reminderCacheForCalendar[date]; // use calendar cache
	if (!config.macros.date.reminders)
		config.macros.date.reminders = indexReminders(date,90); // create a 90-day leadtime reminder cache
	return (config.macros.date.reminders[date]);
}

function addRemindersToPopup(p,when,format)
{
	if(window.findTiddlersWithReminders==undefined) return; // reminder plugin not installed

	var indent = String.fromCharCode(160)+String.fromCharCode(160);
	var reminders=findTiddlersWithReminders(when, [0,31],null,null,1);
	createTiddlyElement(p,'div',null,null,'reminders ('+(reminders.length||'none')+')');
	for(var t=0; t<reminders.length; t++) {
		link = createTiddlyLink(createTiddlyElement(p,'li'),reminders[t].tiddler,false);
		var diff=reminders[t].diff;
		diff=(diff<1)?'Today':((diff==1)?'Tomorrow':diff+' days');
		var txt=(reminders[t].params['title'])?reminders[t].params['title']:reminders[t].tiddler;
		link.appendChild(document.createTextNode(indent+diff+' - '+txt));
	}
	if (readOnly) return;	// readonly… omit 'new reminder...' command
	var rem='\\<\\<reminder day:%0 month:%1 year:%2 title:"Enter a reminder title here"\\>\\>';
	rem=rem.format([when.getDate(),when.getMonth()+1,when.getYear()+1900]);
	var cmd="<<newTiddler label:[["+indent+"new reminder...]] prompt:[[add a reminder to '%0']]"
		+" title:[[%0]] text:{{var t=store.getTiddlerText('%0','');t+(t.length?'\\n':'')+'%1'}} tag:%2>>";
	wikify(cmd.format([when.formatString(format),rem,config.options.txtCalendarReminderTags||'']),
		createTiddlyElement(p,'li'));
}
//}}}
/***
|Name|DatePluginConfig|
|Source|http://www.TiddlyTools.com/#DatePluginConfig|
|Documentation|http://www.TiddlyTools.com/#DatePluginInfo|
|Version|2.6.0|
|Author|[[EricShulman]] - 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|formats, background colors and other optional settings for DatePlugin|
***/
// // Default popup content display options (can be overridden by cookies)
//{{{
if (config.options.chkDatePopupHideCreated===undefined)
	config.options.chkDatePopupHideCreated=false;
if (config.options.chkDatePopupHideChanged===undefined)
	config.options.chkDatePopupHideChanged=false;
if (config.options.chkDatePopupHideTagged===undefined)
	config.options.chkDatePopupHideTagged=false;
if (config.options.chkDatePopupHideReminders===undefined)
	config.options.chkDatePopupHideReminders=false;
//}}}

// // fixed-date annual holidays
//{{{
config.macros.date.holidays=[
	"01/01", // NewYearsDay, 
	"07/04", // US Independence Day
	"07/24"  // Eric's Birthday (hooray!)
];
//}}}

// // weekend map (1=weekend, 0=weekday)
//{{{
config.macros.date.weekend=[ 1,0,0,0,0,0,1 ]; // day index values: sun=0, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6
//}}}

// // date display/link formats
//{{{
config.macros.date.format="YYYY.0MM.0DD"; // default date display format
config.macros.date.linkformat="YYYY.0MM.0DD"; // 'dated tiddler' link format
//}}}

// // When displaying a calendar (see [[CalendarPlugin]]), you can customize the colors/styles that are applied to the calendar dates by modifying the values and/or functions below:
//{{{
// default calendar colors
config.macros.date.weekendbg="#c0c0c0";
config.macros.date.holidaybg="#ffaace";
config.macros.date.createdbg="#bbeeff";
config.macros.date.modifiedsbg="#bbeeff";
config.macros.date.linkedbg="#babb1e";
config.macros.date.remindersbg="#c0ffee";

// apply calendar styles
function setDateStyle(place,link,weekend) {
	// alias variable names for code readability
	var date=link.date;
	var fmt=link.linkformat;
	var linkto=date.formatString(fmt);
	var cmd=config.macros.date;

	if ((weekend!==undefined?weekend:isWeekend(date))&&(cmd.weekendbg!=""))
		{ place.style.background = cmd.weekendbg; }
	if (hasModifieds(date)||hasCreateds(date)||hasTagged(date,fmt))
		{ link.style.fontStyle="normal"; link.style.fontWeight="bold"; }
	if (hasReminders(date))
		{ link.style.textDecoration="underline"; }
	if (isToday(date))
		{ link.style.border="1px solid black"; }
	if (isHoliday(date)&&(cmd.holidaybg!=""))
		{ place.style.background = cmd.holidaybg; }
	if (hasCreateds(date)&&(cmd.createdbg!=""))
		{ place.style.background = cmd.createdbg; }
	if (hasModifieds(date)&&(cmd.modifiedsbg!=""))
		{ place.style.background = cmd.modifiedsbg; }
	if ((hasTagged(date,fmt)||store.tiddlerExists(linkto))&&(cmd.linkedbg!=""))
		{ place.style.background = cmd.linkedbg; }
	if (hasReminders(date)&&(cmd.remindersbg!=""))
		{ place.style.background = cmd.remindersbg; }
	if (isToday(date)&&(cmd.todaybg!=""))
		{ place.style.background = cmd.todaybg; }
}
//}}}
/***
|Name|DcTableOfContentsPlugin|
|Author|[[Doug Compton|http://www.zagware.com/tw/plugins.html#DcTableOfContentsPlugin]]|
|Contributors|[[Lewcid|http://lewcid.org]], [[FND|http://devpad.tiddlyspot.com]], [[ELS|http://www.tiddlytools.com]]|
|Source|[[FND's DevPad|http://devpad.tiddlyspot.com#DcTableOfContentsPlugin]]|
|Version|0.4.1|
|~CoreVersion|2.2|
<<showtoc>>
!Description
This macro will insert a table of contents reflecting the headings that are used in a tiddler and will be automatically updated when you make changes.  Each item in the table of contents can be clicked on to jump to that heading.  It can be used either inside of select tiddlers or inside a system wide template.

A parameter can be used to show the table of contents of a seperate tiddler, &lt;<showtoc tiddlerTitle>&gt;

It will also place a link beside each header which will jump the screen to the top of the current tiddler.  This will only be displayed if the current tiddler is using the &lt;<showtoc>&gt; macro.

The appearance of the table of contents and the link to jump to the top can be modified using CSS.  An example of this is given below.

!Usage
!!Only in select tiddlers
The table of contents above is an example of how to use this macro in a tiddler.  Just insert &lt;<showtoc>&gt; in a tiddler on a line by itself.

It can also display the table of contents of another tiddler by using the macro with a parameter, &lt;<showtoc tiddlerTitle>&gt;
!!On every tiddler
It can also be used in a template to have it show on every tiddler.  An example ViewTemplate is shown below.

//{{{
<div class='toolbar' macro='toolbar -closeTiddler closeOthers +editTiddler permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'>Created <span macro='view created date DD-MM-YY'></span>, updated <span macro='view modified date DD-MM-YY'></span></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class="toc" macro='showtoc'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
//}}}

!Examples
If you had a tiddler with the following headings:
{{{
!Heading1a
!!Heading2a
!!Heading2b
!!!Heading3
!Heading1b
}}}
this table of contents would be automatically generated:
* Heading1a
** Heading2a
** Heading2b
*** Heading3
* Heading1b
!Changing how it looks
To modifiy the appearance, you can use CSS similiar to the below.
//{{{
.dcTOC ul {
	color: red;
	list-style-type: lower-roman;
}
.dcTOC a {
	color: green;
	border: none;
}

.dcTOC a:hover {
	background: white;
	border: solid 1px;
}
.dcTOCTop {
	font-size: 2em;
	color: green;
}
//}}}

!Revision History
!!v0.1.0 (2006-04-07)
* initial release
!!v0.2.0 (2006-04-10)
* added the [top] link on headings to jump to the top of the current tiddler
* appearance can now be customized using CSS
* all event handlers now return false
!!v0.3.0 (2006-04-12)
* added the ability to show the table of contents of a seperate tiddler
* fixed an error when a heading had a ~WikiLink in it
!!v0.3.5 (2007-10-16)
* updated formatter object for compatibility with TiddlyWiki v2.2 (by Lewcid)
!!v0.4.0 (2007-11-14)
* added toggle button for collapsing/expanding table of contents element
* refactored documentation
!To Do
* code sanitizing/rewrite
* documentation refactoring
* use shadow tiddler for styles
!Code
***/
//{{{

version.extensions.DcTableOfContentsPlugin= {
	major: 0, minor: 4, revision: 0,
	type: "macro",
	source: "http://devpad.tiddlyspot.com#DcTableOfContentsPlugin"
};

// Replace heading formatter with our own
for (var n=0; n<config.formatters.length; n++) {
	var format = config.formatters[n];
	if (format.name == 'heading') {
		format.handler = function(w) {
			// following two lines is the default handler
			var e = createTiddlyElement(w.output, "h" + w.matchLength);
			w.subWikifyTerm(e, this.termRegExp); //updated for TW 2.2+

			// Only show [top] if current tiddler is using showtoc
			if (w.tiddler && w.tiddler.isTOCInTiddler == 1) {
				// Create a container for the default CSS values
				var c = createTiddlyElement(e, "div");
				c.setAttribute("style", "font-size: 0.5em; color: blue;");
				// Create the link to jump to the top
				createTiddlyButton(c, " [top]", "Go to top of tiddler", window.scrollToTop, "dcTOCTop", null, null);
			}
		}
		break;
	}
}

config.macros.showtoc = {
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		var text = "";
		var title = "";
		var myTiddler = null;

		// Did they pass in a tiddler?
		if (params.length) {
			title = params[0];
			myTiddler = store.getTiddler(title);
		} else {
			myTiddler = tiddler;
		}

		if (myTiddler == null) {
			wikify("ERROR: Could not find " + title, place);
			return;
		}

		var lines = myTiddler .text.split("\n");
		myTiddler.isTOCInTiddler = 1;

		// Create a parent container so the TOC can be customized using CSS
		var r = createTiddlyElement(place, "div", null, "dcTOC");
		// create toggle button
		createTiddlyButton(r, "» Table of Content", "show/collapse table of contents",
			function() { config.macros.showtoc.toggleElement(this.nextSibling); },
			"toggleButton")
		// Create a container so the TOC can be customized using CSS
		var c = createTiddlyElement(r, "div");

		if (lines != null) {
			for (var x=0; x<lines.length; x++) {
				var line = lines[x];
				if (line.substr(0,1) == "!") {
					// Find first non ! char
					for (var i=0; i<line.length; i++) {
						if (line.substr(i, 1) != "!") {
							break;
						}
					}
					var desc = line.substring(i);
					// Remove WikiLinks
					desc = desc.replace(/\[\[/g, "");
					desc = desc.replace(/\]\]/g, "");

					text += line.substr(0, i).replace(/[!]/g, '*');
					text += '<html><a href="javascript:;" onClick="window.scrollToHeading(\'' + title + '\', \'' + desc+ '\', event)">' + desc+ '</a></html>\n';
				}
			}
		}
		wikify(text, c);
	}
}

config.macros.showtoc.toggleElement = function(e) {
	if(e) {
		if(e.style.display != "none") {
			e.style.display = "none";
		} else {
			e.style.display = "";
		}
	}
};

window.scrollToTop = function(evt) {
	if (! evt)
		var evt = window.event;

	var target = resolveTarget(evt);
	var tiddler = story.findContainingTiddler(target);

	if (! tiddler)
		return false;

	window.scrollTo(0, ensureVisible(tiddler));

	return false;
};

window.scrollToHeading = function(title, anchorName, evt) {
	var tiddler = null;

	if (! evt)
		var evt = window.event;

	if (title) {
		story.displayTiddler(store.getTiddler(title), title, null, false);
		tiddler = document.getElementById(story.idPrefix + title);
	} else {
		var target = resolveTarget(evt);
		tiddler = story.findContainingTiddler(target);
	}

	if (tiddler == null)
		return false;
	
	var children1 = tiddler.getElementsByTagName("h1");
	var children2 = tiddler.getElementsByTagName("h2");
	var children3 = tiddler.getElementsByTagName("h3");
	var children4 = tiddler.getElementsByTagName("h4");
	var children5 = tiddler.getElementsByTagName("h5");

	var children = new Array();
	children = children.concat(children1, children2, children3, children4, children5);

	for (var i = 0; i < children.length; i++) {
		for (var j = 0; j < children[i].length; j++) {
			var heading = children[i][j].innerHTML;

			// Remove all HTML tags
			while (heading.indexOf("<") >= 0) {
				heading = heading.substring(0, heading.indexOf("<")) + heading.substring(heading.indexOf(">") + 1);
			}

			// Cut off the code added in showtoc for TOP
			heading = heading.substr(0, heading.length-6);

			if (heading == anchorName) {
				var y = findPosY(children[i][j]);
				window.scrollTo(0,y);
				return false;
			}
		}
	}
	return false
};
//}}}
[[Info]]
<data>{"abstract":"[[Definition von Erfolg]], die Übung ist gedacht für Trainings mit multikulturellen Teams. Sie dient dazu, die unterschiedlichen Auffassungen von Erfolg bewusst zu machen.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.r-h-c.eu/erfolgskonzept/newsletter/Bilder/baerenstark2.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Definition von Erfolg","abstract") </script>

!Definition von Erfolg
<script> return "<<tiddler [[Definition von Erfolg##Overview]]>>" </script>
Dies lässt sich ohne weiteres auf teamübergreifende Trainings übertragen.

!Objectives
* (Multikulturellen) Teams unterschiedliche Auffassungen von Erfolg bewusst machen.

!Timing
30 min

!Audience
Group


!Materials
* Kopien von Zeugnissen, Urkunden, Auszeichnungen, Fotos, Bilder mit Motiven, die für den Teilnehmer Erfolg darstellen
* Papier, Stifte, Kleber, eine große Papierfahne in Zeitungsgröße

!Procedure
Zunächst werden die Teilnehmer im Vorfeld des Trainings aufgefordert, "Erfolgsmaterialien" (Kopien von Zeugnissen, Urkunden, Auszeichnungen, Fotos, Bilder mit Motiven, die für den Teilnehmer Erfolg darstellen) mitzubringen. Diese Materialien werden auf einem großen Arbeitstisch abgelegt.

Danach setzen sich je zwei Teilnehmer unterschiedlicher Nationalität zusammen und erzählen sich gegenseitig, was für sie Erfolg bedeutet (jeweils 10 Minuten). 
Anschließend schreibt jeder Teilnehmer das auf, was er erfahren hat (3 Minuten). 
Danach werden größere gemischt Gruppen gebildet, die aus den mitgebrachten Materialien eine Zeitungsseite (Material: Papier, Stifte, Kleber, eine große Papierfahne in Zeitungsgröße) erstellen.


!Debriefing
Schließlich wird aus den Zeitungsseiten eine gemeinsame Wandzeitung erstellt (15 Minuten) zum Thema Erfolg. Die Gruppen sollen sich vorstellen, dass diese Zeitung einer Zielgruppe (z.B. der Leitung des Unternehmens) vorgestellt wird.


!Quelle
Eva Kaminski: Mit Spiel zum Ziel, managerSeminare 11/12/2004, S. 60


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.code-mitte.de/content/images/leistungen_erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.theleadership.de/img/erfolg.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.lmi-d.com/images/erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://blog.harald-dvorak.at/wp-content/uploads/2008/02/char00k.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.hamburger-bildungsserver.de/klima/fifty/img/erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.dpast.de/erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.basic-skills.eu/images/schuelerportal/Erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.donaufisch.de/assets/images/Finaler_Erfolg.1.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://ka-mpus.extrahertz.de/wp-content/uploads/2007/02/0702_karriere_erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.coaching-havenstein.com/images/erfolg_sxc_woodsy.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===


!See also
* [[Remember the Future]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Definition+von+Erfolg+%28jt%29.html]]
/***
|Name|DeleteAllTaggedPlugin|
|Source|http://ido-xp.tiddlyspot.com/#DeleteAllTaggedPlugin|
|Version|1.0|
|Author|[[IdoMagal]]|
|License||
|~CoreVersion|2.2.4|
|Type|plugin|
|Requires||
|Overrides|
|Description|Deletion of all tiddlers tagged as the hosting tiddler.|


An adaptation of DeleteDoneTasks ([[SimonBaird]]) by [[IdoMagal]]
To use this insert {{{<<deleteAllTagged>>}}} into the desired tiddler.

/***
Example usage:
{{{<<deleteAllTagged>>}}}
<<deleteAllTagged>>
***/
//{{{

config.macros.deleteAllTagged = {
	handler: function ( place,macroName,params,wikifier,paramString,tiddler ) {
		var buttonTitle = "Delete Tagged w/ '"+tiddler.title+"'";
		createTiddlyButton( place, buttonTitle, "Delete every tiddler tagged with '"+tiddler.title+"'", this.deleteAllTagged( tiddler.title ));
	},

	deleteAllTagged: function(tag) {
		return function() {
			var collected = [];
			store.forEachTiddler( function ( title,tiddler ) {
				if ( tiddler.tags.contains( tag ))
				{
					collected.push( title );
				}
			});
			if ( collected.length == 0 )
			{
				alert( "No tiddlers found tagged with '"+tag+"'." );
			}
			else
			{
				if ( confirm( "These tiddlers are tagged with '"+tag+"'\n'"
						+ collected.join( "', '" ) + "'\n\n\n"
						+ "Are you sure you want to delete these?" ))
				{
					for ( var i=0;i<collected.length;i++ )
					{
						store.deleteTiddler( collected[i] );
						displayMessage( "Deleted '"+collected[i]+"'" );
					}
				}
			}
		}
	}
};

//}}}
/***
|Name|DeprecatedFunctionsPlugin|
|Description|Provides support for functions removed from the TiddlyWiki core|
|Version|1.0.0|
|Status|stable|
|Source|http://www.tiddlywiki.com/plugins.html#DeprecatedFunctionsPlugin|
|~CodeRepository|http://svn.tiddlywiki.org/Trunk/association/plugins/DeprecatedFunctionsPlugin/DeprecatedFunctionsPlugin.js |
|License|[[BSD open source license]]|
|~CoreVersion|2.3.0|
|Feedback|[[TiddlyWiki community|http://groups.google.com/group/TiddlyWiki]] |
|Keywords|legacySupport|
!Code
***/
//{{{
if(!version.extensions.DeprecatedFunctionsPlugin) {
version.extensions.DeprecatedFunctionsPlugin = {installed:true};

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

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

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

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

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

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

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

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

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

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

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

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

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

}
//}}}
<data>{"abstract":"Ein größeres Projekt steht an, mehrere Abteilungen werden zusammen gelegt, eine Kooperation soll angestoßen werden, und zu Beginn geht es darum, dass sich alle Beteiligten näher kennenlernen, eine Art Gruppengefühl entsteht und die Basis für eine gute Zusammenarbeit gelegt wird. Eine etwas aufwändigere Teamübung..."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.tvworkshop.de/uploads/wysiwyg/Filmkamera384_86151a.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Der Film geht ab","abstract") </script>

!Der Film geht ab
<script> return "<<tiddler [[Der Film geht ab##Overview]]>>" </script> 
Die hier dargestellte Übung kann mit 10 bis 70 Personen durchgeführt werden und dauert zwischen zwei und sechs Stunden, je nach Gruppengröße. 
Basis ist eine Story, die sich die Moderatoren ausdenken. Für diese Story gibt es Rollenbeschreibungen, und zwar für jeden Teilnehmer. Das Ziel wird klar vorgegeben: Zu einem festgelegten Zeitpunkt findet eine Aufführung statt.

!Objectives
* Fusion von Teams
* Kennenlernen
* Gruppengefühl / Teambuilding
* Zusammenarbeit im Team

!Timing
2-6 h

!Audience
Group: 10 bis 70 Personen 

!Materials
* 

!Procedure
Die Story kann sehr unterschiedlich sein, z.B.: 

{{indent{
Ein berühmter Star soll am Abend auftreten, die Show beginnt um 19.00 Uhr. Es darf nichts schiefgehen. Mit der Vorbereitung sind eine Menge Leute beteiligt: Produzentin, Assistent, ~Bühnenbildner-Team, künstlerische Leitung, Tänzer, Choreograph, Maskenbildner…
In den Rollenbeschreibungen sind Hinweise zur Aufgabe der jeweiligen Rollen, aber auch zur Persönlichkeit der Rolleninhaber gegeben.
}}}

Als Thema kommt vieles in Betracht: Die Verleihung des Bundesverdienstkreuzes wird vorbereitet, die öffentliche Ehrung des Unternehmers des Jahres, eine "Wetten, dass..."-Sendung usw. Wenn es sich anbietet, kann sich die Story natürlich auch enger an den Anlass (ein Projekt, ein Zusammenschluss etc.) anlehnen.

Die Moderatoren erstellen im Vorfeld die Rahmenstory, die Rollenbeschreibungen sowie einen Raumplan und kümmern sich um die benötigten Materialien. 
Wichtig ist, dass auf jeden Fall zu dem vereinbarten Zeitpunkt das Ereignis, das alle vorbereiten, auch wirklich stattfindet. Anschließend wird gefeiert, die Auswertung findet später statt.

!Debriefing

!Quelle
[[Amelie Funcke: Vorstellbar, managerSeminare 2006, S. 271-277| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FVorstellbar-Methoden-Schauspielern-Regisseuren-normalen%2Fdp%2F3936075441%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214446177%26sr%3D8-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?db=3&to_parebene=Der+Film+geht+ab+%28jt%29]]
<data>{"abstract":"Es kann am Anfang, während oder am Ende eines Seminares zum [[Praxistransfer]] eingesetzt werden, auch als Abendunterhaltung eignet es sich: Das Ratespiel [[Der große Preis]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://rhein-zeitung.de/on/95/11/30/topnews/thoelke.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Der große Preis","abstract") </script>

!Der große Preis
<script> return "<<tiddler [[Der große Preis##Overview]]>>" </script> 

!Objectives
* [[Praxistransfer]]

!Timing
60 min

!Audience
Group

!Materials
* Kerzen, Streichhölzer, Nähnadel, Faden, Münzen
* Pinnwand
* farbige Karten mit Fragen zu verschiedenen Wissensgebieten; Rückseiten: Zahlen zwischen 100 und 600.

!Procedure
An einer Pinwand hängen farbige Karten mit Fragen zu verschiedenen Wissensgebieten. Sichtbar sind nur die Rückseiten, auf denen Zahlen zwischen 100 und 600 stehen. 
In [[Teams|Team]] von drei bis fünf Teilnehmern wird nun ausgewählt, der Spielleiter liest die Fragen vor, das [[Team]] hat eine Minute Zeit, die Frage zu beantworten, ansonsten geht sie ans nächste [[Team]] über. Die Fragen können vorbereitet werden, können aber auch von den Teilnehmern selbst entwickelt werden. Ein Spiel zur Wissensabfrage ([[Praxistransfer]]), mit eingestreuten ~Action-Karten wird´s spaßig.

Beispielsaufgaben: 
* Einer aus jedem [[Team]] zündet eine Kerze möglichst oft mit einem Streichholz an
* Das [[Team]] ertastet mit geschlossenen Augen den Wert von vier verschiedenen Münzen 
* Einer aus dem [[Team]] stellt acht Teilnehmer mit geschlossenen Augen ihrer Körpergröße nach auf 
* Jedes [[Team]] schätzt die Zahl von Pralinen in einem Glas 
* Einer aus dem [[Team]] hält eine Nähnadel, ein anderer fädelt den Faden ein, wobei man sich nicht berühren darf.
Viel Spaß dabei.

!Debriefing


!Quelle
Axel Rachow: Wissen spielerisch abfragen, Wirtschaft und Weiterbildung 3/1999 S.28-29.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* 
<data>{"abstract":"Mit dem [[Diagnosekarussell]] ist ein ganzheitlicher Blick auf den [[Ist-Zustand]] einer Organisation möglich."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.csn-deutschland.de/blog/wp-content/uploads/2009/08/karussell-xx.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Diagnosekarussell","abstract") </script>

!Diagnosekarussell
<script> return "<<tiddler [[Diagnosekarussell##Overview]]>>" </script> 
Auf der Grundlage des Sechs-~Felder-Modells nach [[Marvin Weisbord|http://www.marvinweisbord.com/]] werden Leitfragen zu Zielen, Strukturen, Beziehungen, [[Anerkennung|Lob und Anerkennung]], technischen Unterstützungssystemen und Führung entwickelt. 

!Objectives
* ganzheitlicher Blick auf den [[Ist-Zustand]] einer Organisation 

!Timing
* Vorbereitungszeit: ein Tag in der Arbeitsgruppe 'Diagnose', anschließende Ausarbeitung.
* Durchführungszeit: i.d.R. ein Tag.
* Nachbereitungszeit: ein Tag Arbeitsgruppe und Führungskräfte.

!Audience
Group / Individual


!Materials
* 

!Procedure
Dann startet das Karussell. Sechs Kleingruppen werden gebildet und bearbeiten die einzelnen [[Leitfragen|Leitfrage zur Wahrheit der Situation]]...
http://www.oe-und-pe.de/
Quelle: Fit for Change II

!!Vorbereitung und Voraussetzung
* Vorbereitungsarbeiten durch den Moderator, Trainer, Berater.
* Raum, in dem die Teilnehmer in Kleingruppen à drei bis fünf Personen arbeiten können, ohne sich gegenseitig zu stören.
* Material: zehn Pinnwände, am besten mit hellem Papier bezogen, zwei Flipcharts, ausreichend Moderationskarten und Stifte in unterschiedlichen Farben.

!!Erfolgsfaktoren
* Die Führungskräfte sollten bereit sein, sich offen mit den Fragen und Anliegen der Mitarbeiter auseinanderzusetzen.
* Da in der Regel zu den wesentlichen ~Diagnose-Ergebnissen jeweils kleine Lösungsteams gebildet werden, sind Arbeitszeitressourcen auch nach dem Workshop zur Verfügung zu stellen.


!Debriefing
* Zunächst sind klar definierte Optimierungsgegenstände benannt: Was ist warum mit welchen Zielen zu optimieren?
* Zudem ist am Ende des Workshops klar, wo die Stärken der Organisation liegen und woran bei der Optimierung angeknüpft werden kann.
* Konkrete Sofortmaßnahmen, die ohne umfassende Konzeptentwicklung umsetzbar sind, bilden die dritte Ergebnissäule.
* 'Nebenwirkungen': Ein Zuviel an Optimierungsbedarf bzw. Optimierungen ist nur schwer zu managen. Das Enttäuschungspotenzial ist dann sehr groß.


!See also

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

<<tiddler ShowTiddlerReferences>>

!Weblinks
* [[Enterprise Engineering| http://www.hjford.com/facilitation/organizational.htm]]
* [[ManagerSeminare| http://www.managerseminare.de/Knowhow/Wissen/Detail?mecL=UmFuZG9tSVZWeaBDTo2w6btI1IGP9MqR&urlID=185311]]
* [[Six-Box Model on MarvinWeisbord.com| http://www.marvinweisbord.com/sixboxmodel.html]]
* http://www.oe-und-pe.de/
<data>{"abstract":"[[Dinge wieder ins Rollen bringen]], mit dieser Bewegungsübung lassen sich Blockaden im [[Team]] auflösen, zumindest Dinge wieder in Bewegung versetzt werden — sprichwörtlich. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.note-i.de/blog/uploads/Christof/ChristofB/45420.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Dinge wieder ins Rollen bringen","abstract") </script>

!Dinge wieder ins Rollen bringen
<script> return "<<tiddler [[Dinge wieder ins Rollen bringen##Overview]]>>" </script> 

!Objectives
* Blockaden im [[Team]] auflösen

!Timing
30min-45min

!Audience
Group

!Materials
* verschiedene Bälle und Kugeln

!Procedure
# Jedes Teammitglied wählt sich aus dem reichhaltigen Angebot verschiedener Bälle und Kugeln (Von Murmel über Holzkugeln, Marmorkugeln, Gummibälle, Massageigel, Christbaumkugeln… verschiedenster Größe und Farbe) ein rollendes Teil aus. 
# Dann beschäftigt sich jedes Teammitglied zuerst einmal mit seiner Kugel/Ball, etc. 
# Der Coach gibt Anleitung zur [[Wahrnehmung]] //"Größe, Farbe, Beschaffenheit, was reizt mich, was entdecke ich, was gefällt mir"//, macht Angebote zum eigenen Ausprobieren: z.B auf der Hand rollen, Nacken abrollen, in der hohlen Hand halten, balancieren…
# Im nächsten Schritt sagt jedes Teammitglied einen Satz zu der benannten Situation: //"Mein Beitrag, damit es in unserer Gruppe wieder besser läuft, sieht so aus, fühlt sich so an...."// — Es werden die Eigenschaften und Möglichkeiten der Kugel / des Balles beschrieben.
# Danach ist die Bahn frei, entweder auf einem großen Tisch oder auf dem Boden die Kugeln, Bälle etc. frei laufen zu lassen. 

Das [[Team]] entwickelt sein eigenes Spiel, seine eigenen Spielregeln, seinen eigenen Prozess, was Tempo, [[Konflikte|Konflikt]], Missverständnisse, Untergruppen, etc. anbelangt. Nach Möglichkeit wird dabei nicht verbal kommuniziert.

!Debriefing
Danach erfolgt die Reflexion: 
* Wie ging es Ihnen dabei? 
Antworten können z. B sein: 
* //"Ich hatte große Lust, hat viel Spaß gemacht..., als Kollege N mit Schwung kam, bekam ich Angst, hatte plötzlich keine Lust mehr..., eine Zeitlang war es spannend, dann wurde es für mich langweilig, als es immer gleich ging..."//


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Dinge+wieder+ins+Rollen+bringen+%28mg%29]]
/***
|Name|DiscussionPlugin|
|Source|http://www.TiddlyTools.com/#DiscussionPlugin|
|Documentation|http://www.TiddlyTools.com/#DiscussionPluginInfo|
|Version|1.5.6|
|Author|[[EricShulman]] - 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|CommentPlugin|
|Overrides||
|Description|display tabbed discussion summary with comment input form|
!!!!!Documentation
>see [[DiscussionPluginInfo]]
!!!!!Configuration
<<<
When installed, [[DiscussionPlugin]] can automatically modify the default shadow [[ViewTemplate]] so that all tiddlers will be rendered with two tabs: "Page", and "Discussion".  The "Page" tab displays the regular tiddler content, while the "Discussion" tab displays the summary list of comments as well as an input form to enter new comments.  You can enable/disable this action by setting/clearing the following checkbox:
><<option chkDiscussionTemplate>> Automatically modify default shadow [[ViewTemplate]]
Note: //''You must reload your document for changes to this option to take effect.''//  In addition, this option is only applied to the shadow [[ViewTemplate]].  If you are using a custom [[ViewTemplate]], you will need to manually alter that template to add the Page and Discussion tab display.

''Please see [[DiscussionPluginInfo]] for additional configuration options and instructions.''
<<<
!!!!!Revisions
<<<
2008.10.31 [1.5.6] added optional 'after' param to countComments() so 'new postings' count can be displayed (using customized DiscussionViewTemplate
| please see [[DiscussionPluginInfo]] for previous revision details |
2008.04.15 [1.0.0] initial prototype
<<<
!!!!!Code
***/
//{{{
version.extensions.DiscussionPlugin= {major: 1, minor: 5, revision: 5, date: new Date(2008,10,30)};

if (config.options.chkDiscussionTemplate===undefined)
	config.options.chkDiscussionTemplate=false;

config.macros.discussion= {
	reverse: // display order for summary list
		false,
	listfmt: // format for summary list items
		"#<<slider [[]] [[%tiddler%]] [[%subject%]] [[posted by %who% on %when%]]>>\n",
	tags: // tags for comment tiddlers
		"excludeLists",
	slices: // slice format included in comment tiddlers - used to create summary list display
		"/%\n|subject|%subject%|\n|byline|%who%|\n|date|%when%|\n%/",
	titlefmt: // format for dynamically generating comment tiddler title
		"_%UTC%%random%", // default: append UTC timestamp and random number
	commentfmt: // format for individual comment content
		"^^posted by %who% on %when%^^\n<<<\n%message%\n<<<\n",
	datefmt: // date format for comments
		"DDD, MMM DDth, YYYY at hh12:0mm:0ss am",
	handler: function(place,macroName,params,wikifier,paramstring,tiddler) {
		var here=story.findContainingTiddler(place);
		if (here) var tid=here.getAttribute("tiddler");  // containing tiddler title
		var listfmt=(params[0]&&params[0].length)?params[0]:this.listfmt;  // item format
		var reverse=(params[1]&&params[1].toLowerCase()=="reverse"); if (reverse) params.shift();
		var tags=params[1]?params[1]:this.tags;  // target tags
		if (!tags.readBracketedList().contains("comment")) tags+=" comment"; // must be tagged with "comment"
		var commentfmt=(params[2]&&params[2].length)?params[2]:this.commentfmt; // output format
		var datefmt=(params[3]&&params[3].length)?params[3]:this.datefmt; // date format
		var tids=store.getTaggedTiddlers("comment","created");
		if (reverse||this.reverse) tids=tids.reverse();
		var out=""; var count=0;
		for (var t=0; t<tids.length; t++) if (tids[t].title!=tid && tids[t].title.substr(0,tid.length)==tid) {
			count++;
			var title=tids[t].title;
			var subject=store.getTiddlerSlice(title,"subject");
			var byline=store.getTiddlerSlice(title,"byline");
			var when=store.getTiddlerSlice(title,"date");
			out+=listfmt;
			out=out.replace(/%tiddler%/g,title);
			out=out.replace(/%subject%/g,subject);
			out=out.replace(/%who%/g,byline);
			out=out.replace(/%when%/g,when);
		}
		out="!!!There "+(count==1?"is ":"are ")+count+" comment"+(count==1?"":"s")+":\n"+out;
		var next="%tiddler%"+this.titlefmt;
		out+="!!!Add a comment:\n";
		out+="<<comment "+next+" [["+tags+"]] [["+this.slices+commentfmt+"]] [["+datefmt+"]]>>";
		wikify(out,place);
	},
	countComments: function(tid,after) {
		var tids=store.getTaggedTiddlers("comment","created");
		var count=0;
		for (var t=0; t<tids.length; t++)
			if (tids[t].title!=tid && tids[t].title.substr(0,tid.length)==tid)
				if (!after||tid.modified>=after) count++;
		return count;
	}
};
//}}}

// // automatically add shadow tiddlers and templates for displaying page/discussion tabs
//{{{

// macro for rendering current tiddler content
config.macros.currentTiddler= {
	handler: function(place,macroName,params,wikifier,paramstring,tiddler) {
		var here=story.findContainingTiddler(place); if (!here) return;
		var txt=store.getTiddlerText(here.getAttribute("tiddler"),"");
		txt=txt.replace(/\<\<currentTiddler\>\>/g,""); // prevents infinite recursion!
		removeChildren(place); wikify(txt,createTiddlyElement(place,"div",null,"viewer"));
	}
};

// [[CurrentTiddler]] allows tab to show tiddler content
config.shadowTiddlers.CurrentTiddler="<<currentTiddler>>";

// [[DiscussionTiddler]] allows tab to show discussion panel
config.shadowTiddlers.DiscussionTiddler="<<discussion>>";

// [[NoDiscussionViewTemplate]] is an unmodified copy of the shadow [[ViewTemplate]]
config.shadowTiddlers.NoDiscussionViewTemplate=store.getTiddlerText("ViewTemplate");

// [[DiscussionViewTemplate]] is a copy of the current [[ViewTemplate]] where the 
// default viewer content ("view text wikified") is replaced with tabs for Page/Discussion
config.shadowTiddlers.DiscussionViewTemplate=store.getTiddlerText("ViewTemplate").replace(/view text wikified/,
	'tabs txtDiscussionTab Page Page CurrentTiddler {{var c=config.macros.discussion.countComments(tiddler.title); "Discussion"+(c?" ("+c+")":"")}} Discussion DiscussionTiddler');

// optionally, automatically apply DiscussionViewTemplate to all tiddlers
if (config.options.chkDiscussionTemplate) config.shadowTiddlers.ViewTemplate="[[DiscussionViewTemplate]]";
//}}}
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://www.topnews.in/files/DoggyDays.jpg>>
<<showtoc>>
!Overview
Doggy Planning is an interactive game illustrating Agile estimation techniques.

!Doggy Planning
<<tiddler [[Doggy Planning##Overview]]>>

!Objectives
* illustrating Agile estimation techniques.
* getting participants familiar with using [[planning poker cards|Planning Poker]].

!Timing
10 mins

!Materials
* 1 set of planning poker cards per participant. 

!Audience
Group

!Procedure
One at a time, show each of the following dog names and have participants vote by showing an estimate card:
* Chihuahua — this is the smallest dog and should be the reference estimate. Others should be sized relative to it.
* Great Dane — estimates should be very large
* Golden Retriever — estimates should be medium or large
* Poodle — participants should ask for more information, e.g., is it a standard poodle or a toy poodle?
* Newfoundland — this is a lesser known dog; those who don’t know what it is should not vote and should instead ask questions
* Austrian Guildenbaur — this is a trick; the dog does not exist, so no estimates should be given

!Debriefing
* This exercise should get participants familiar with using the planning cards.
* Estimators should not be influenced by others.
* Topics are sized relative to each other, using Nebulous Units of Time.
* People should not vote on topics that are not understood. They should ask for clarification or if it is not in their domain, they should abstain.

!Credits
Michael ~McCullough

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/doggy-planning/
<<section [[Planning Poker##Planning Poker Cards]]>>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://goodlifezen.com/wp-content/uploads/2008/08/dot.jpg>>
<<showtoc>>
!Overview
With [[dot voting|Dot Voting]] you get from time to time during a meeting or workshop votes on a number things in order to rank or choose a subset.

!Dot Voting
<<tiddler [[Dot Voting##Overview]]>>
The [[facilitator|Facilitator]] invites the team members to stick colored dots to items according to their personal preferences/prioritization.
It is often useful to do a [[clustering|Clustering]] with [[Retrospective Clustering]] before. 
Categories for priorization can be importance, relevance, energy, impact, risk, etc.

!Objectives
* Every phase in a [[retrospective|Agile Retrospectives]]
* Prioritization of items within a group

!Timing
5 min

!Audience
Group

!Materials
* flipchart with items to be prioritized
* sticky color dots

!Procedure
* List all the things to be voted on and put the list on a wall using a white-board or flip-charts.
* Let each person make a fixed set of votes by a writing a dot next to the item they are voting for. Don't make people take turns or anything — just say something like //"you get five votes each."// They can make their votes at any time in any order. Also let people put more than one vote on one item if they want to show a strong preference.
* Once everyone's done tally up the number.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
* [[Online dot voting|dotvoting.org]]
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Group Brainstorming: Dot Voting with a Difference| http://www.innovationtools.com/Articles/ArticleDetails.asp?a=141]]
* [[Martin Fowler: DotVoting| http://martinfowler.com/bliki/DotVoting.html]]
<data>{"abstract":"[[Double Doodle]], ein kleines Spiel für zwischendurch, das Konzentration fördert und auch auf jedem Kindergeburtstag seine Anhänger finden wird."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://mizutamago.typepad.com/photos/uncategorized/doodle3.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Double Doodle","abstract") </script>

!Double Doodle
<script> return "<<tiddler [[Double Doodle##Overview]]>>" </script> 

!Objectives
* Konzentration

!Timing
15 min

!Audience
Group

!Materials
* Papier, Stifte

!Procedure
Jeder Teilnehmer hat ein weißes Blatt und zwei Bleistifte vor sich. 
Er versucht nun, mit beiden Händen gleichzeitig eine symmetrische Figur zu zeichnen. Wenn also die linke Hand nach oben malt, so zieht auch die rechte nach oben. Bewegt sich die linke Hand nach links, fährt die rechte nach rechts usw. 
Dabei entstehen witzige Figuren.

!Debriefing


!Quelle
[[Gudrun F. Wallenwein: Spiele: Der Punkt auf dem i, Beltz, 5. Aufl. 2003 S.243.| http://www.amazon.de/gp/product/3407364075?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3407364075]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Double+Doodle+%28jt%29.html]]
* [[Unesco, freie Lernressourcen| www.opentrainingplatform.org]]
/***
|Name|[[DragScrollPlugin]]|
|Source|http://www.TiddlyTools.com/#DragScrollPlugin|
|Documentation|http://www.TiddlyTools.com/#DragScrollPlugin|
|Version|1.0.0|
|Author|[[EricShulman]] - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|use SHIFT-DRAG to scroll the browser window|
DragScrollPlugin allows you to use your mouse to scroll the browser window by grabbing anywhere on the background of the document while holding the SHIFT key.
!!!!!Documentation
<<<
Whenever your page contains extra-wide content that does not 'wrap' onto extra lines, in can result in both horizontal and vertical scrollbars.  Unfortunately, using each scrollbar separately to navigate across the page can become very tedious and makes it more difficult to interact with your content in a flexible and effective manner.

''Drag-scrolling allows you to move in both the horizontal and vertical direction at the same time, simply by holding SHIFT while clicking and dragging the mouse across the page.''
<<<
!!!!!Configuration
<<<
<<option chkDragScroll>> enable //drag-scrolling//
<<<
!!!!!Revisions
<<<
2008.12.01 [1.0.0] Initial public release
<<<
!!!!!Code
***/
//{{{
version.extensions.DragScrollPlugin= {major: 1, minor: 0, revision: 0, date: new Date(2008,12,01)};

if (!config.dragscroll) { // only once
	config.dragscroll={
		// use to end event handling for processed events
		processed: function(ev) {
			var ev=ev||window.event;
			if (ev) { ev.cancelBubble=true; if (ev.stopPropagation) ev.stopPropagation(); }
			return false;
		},
		// MOUSE DOWN - SET CURSOR, SAVE SCROLL DATA
		savedMouseDown: document.onmousedown,
		mousedown: function(ev) {
			var ev=ev||window.event; var target=resolveTarget(ev); var d=config.dragscroll;
			var scroll=ev.shiftKey&&config.options.chkDragScroll;
			var skip=['input','option','textarea'].contains(target.nodeName.toLowerCase());
			if (!scroll||skip) { // handle event normally
				if (d.savedMouseDown!=undefined) return d.savedMouseDown.apply(target,arguments);
				else return;
			}
			d.mX=!config.browser.isIE?ev.pageX:ev.clientX; d.sX=findScrollX();
			d.mY=!config.browser.isIE?ev.pageY:ev.clientY; d.sY=findScrollY();
			d.scrolling=true; document.body.style.cursor='move';
			return config.dragscroll.processed(ev);
		},
		// MOUSE MOVE - UPDATE SCROLL DATA AND SCROLL THE WINDOW 
		savedMouseMove: document.onmousemove,
		mousemove: function(ev) {
			var ev=ev||window.event; var target=resolveTarget(ev); var d=config.dragscroll;
			if (!d.scrolling || !ev.shiftKey) { // NOT SCROLLING
				if (d.savedMouseMove!=undefined) return d.savedMouseMove.apply(target,arguments);
				else return;
			}
			// set scroll pos based on diff between new and old (x,y)
			var mx=!config.browser.isIE?ev.pageX:ev.clientX;
			var my=!config.browser.isIE?ev.pageY:ev.clientY;
			var sx=!config.browser.isIE?findScrollX():d.sX;
			var sy=!config.browser.isIE?findScrollY():d.sY;
			window.scrollTo(sx-mx+d.mX,sy-my+d.mY);
			return config.dragscroll.processed(ev);
		},
		// MOUSEUP - CLEAR THE DRAG DATA, RESET THE CURSOR
		savedMouseUp: document.onmouseup,
		mouseup: function(ev) {
			var ev=ev||window.event; var target=resolveTarget(ev); var d=config.dragscroll;
			var wasScrolling=d.scrolling; d.scrolling=false; document.body.style.cursor='auto';
			if (d.savedMouseUp!=undefined) return d.savedMouseUp.apply(target,arguments);
			if (wasScrolling) return config.dragscroll.processed(ev);
			return;
		}
	}
	// DEFAULT SETTING (ENABLED)
	if (config.options.chkDragScroll===undefined) config.options.chkDragScroll=true;
	// HIJACK MOUSE HANDLERS
	document.onmousedown=config.dragscroll.mousedown;
	document.onmousemove=config.dragscroll.mousemove;
	document.onmouseup  =config.dragscroll.mouseup;
}
//}}}
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!Drawing Game
<<tiddler [[Drawing Game##Overview]]>>


!Objectives

!Timing

!Materials
*

!Audience
Group / Individual

!Procedure

!Debriefing

!Credits
Lisa Crispin

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Agile Groups: DrawingExercise.pdf| http://groups.google.com/group/agilegames/attach/4d8495340e42f536/DrawingExercise.pdf?part=4]]
* [[Drawing Game.pdf| http://groups.google.com/group/agilegames/attach/4d8495340e42f536/Drawing+Game.pdf?part=5]]
* [[DrawingExercise.pdf| http://groups.google.com/group/agilegames/attach/4d8495340e42f536/DrawingExercise.pdf?part=6]]
* [[Short Game with a focus on quality?| http://groups.google.com/group/agilegames/browse_thread/thread/6b5df3a5f378a1f8]]
<data>{"abstract":"[[Drei Arten zuzuhören]], wie sensibilisiert man für die offenen und verdeckten Aspekte, die in einer Äußerung enthalten sind? Eine Übung für die fortgeschrittene Phase in einem Kommunikationsseminar."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.ohmpage.de/acrylbilder/geruecht.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Drei Arten zuzuhören","abstract") </script>

!Drei Arten zuzuhören
<<tiddler [[Drei Arten zuzuhören##Overview]]>>
Eine Übung für die fortgeschrittene Phase in einem [[Kommunikationsseminar|Kommunikation]], wenn es um [[aktives Zuhören|Aktives Zuhören]], Verbalisieren und Paraphrasieren geht.

!Objectives
* [[Aktives Zuhören]], 
* Verbalisieren und Paraphrasieren 

!Timing
120 min

!Audience
Group / Individual


!Materials
* 

!Procedure
Zeitbedarf: Für Schritte 1 und 2 rund 90 Minuten, für Schritt 3 weitere 30 Minuten.
!!Schritt 1
Vier Teilnehmer sitzen ohne Tische im [[Kreis|Listening Circle]] und übernehmen verschiedene Rollen (im Uhrzeigersinn), die anderen Seminarteilnehmer sitzen im Kreis darum herum.

* A berichtet von einem persönlichen Erlebnis (z.B. Erfolg oder Misserfolg bei der Arbeit).
* B fasst mit eigenen Worten den Inhalt dessen zusammen, was A gesagt hat (Paraphrasieren).
* C spiegelt die Gefühle, die er bei A´s Schilderung heraus gehört hat (Verbalisieren).
* D spiegelt die bei A wahrgenommenen Wünsche und Bedürfnisse.

Nachdem sich B geäußert hat, ergänzen zunächst die Beobachter ihre eigenen [[Wahrnehmungen|Wahrnehmung]] und A sagt, inwieweit er sich verstanden fühlt. Erst dann ist C an der Reihe, wieder ergänzt durch die Eindrücke der Beobachter und die [[Rückmeldung|Feedback]] durch A, dasselbe Vorgehen wiederholt sich bei D.

!!Schritt 2
Alle Teilnehmer üben in Vierergruppen. Die Rollen werden nach jeder Übung im Uhrzeigersinn weitergegeben. In den Gruppen finden also jeweils vier Übungen statt.

!!Schritt 3
Die Teilnehmer üben in Paaren, A erzählt und B spiegelt alle drei Anteile (Inhalt, Gefühle und Wünsche). Danach werden die Rollen getauscht. Dieser letzte Schritt ist sehr anspruchsvoll.


!Debriefing


!Quelle
Dürrschmidt et.al.: Methodensammlung für Trainer, managerSeminare 2005, S.95.

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.collectivewisdominitiative.org/papers/Circleof7/three_conditions_450.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.fes.de/forumjugend/pix/rhetorik1.gif>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
* [[Eisberg-Modell der Kommunikation]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Drei+Arten+zuzuh%F6ren+%28fe%29&db=3]]
* [[Where Do You Listen From?| http://blog.projectconnections.com/geof_lory/2009/03/where-do-you-listen-from.html]]
<data>{"abstract":"Hartnäckigen Problemen auf den Grund zu gehen ist das Ziel von drei Arten von Fragen, die bei Honda gestellt werden.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://static.twoday.net/MAllrich/images/4302-fragezeichen.jpg>> 
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Drei Frageniveaus","abstract") </script>

!Drei Frageniveaus
Bei Honda werden die [[Mitarbeiter]] aufgefordert, hartnäckigen Problemen mit ebenso hartnäckigen Fragen auf unterschiedlichem Niveau zu Leibe zu rücken. 

* ''Niveau A'' betrifft technische Daten: //"Wie viel PS soll dieser Motor haben?"// <br>Wenn eine Frage keine befriedigende Antwort erzeugt, wird die Frage auf das nächsthöhere 

* ''Niveau A0'' gehoben: //"Wie sieht das Konzept dieses Motors aus?"// <br> Hier geht es um Fragen der Gestaltung. Hilft auch das nicht weiter, folgt 

* ''Niveau A00'', bei dem es um Grundsätzliches geht: //"Warum bauen wir diesen Motor überhaupt?"// oder //"Was nützt dieser Motor?"// oder gar: //"Warum gibt es Honda überhaupt?"//

!Quelle
Ikujiro Nonaka: Starke Gemeinschaft, Wirtschaftswoche 50/2000 S.176.


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Drei+Frageniveaus+%28jt%29]]
<data>{"abstract":"[[Drei Mann in einem Boot]], eine Übung, die sicher nur von erfahrenen Trainern eingesetzt werden sollte, z.B. bei einem Verkaufstraining bzw. dann, wenn es um das Thema //überzeugend argumentieren// geht."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://www.nairaland.com/attachments/305873_titanic_jpgb6dda7e099d12da901287e26c19035f2>>/%
http://cdn.fotocommunity.com/photos/16341735.jpg>>
http://japanoma.blueblog.ch/files/images/2006/9/mob192_1159261724.jpg>> %/
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Drei Mann in einem Boot","abstract") </script>

!Drei Mann in einem Boot
<script> return "<<tiddler [[Drei Mann in einem Boot##Overview]]>>" </script> 

!Objectives
* überzeugend Argumentieren unter erschwerten Umständen, 
* Erkenntnis gewinnen, daß der Unterschied zwischen Fakten und Darstellung enorm ist.
* Merke: //„Wer spricht, erfährt nichts!”//

!Timing
10min-20min

!Audience
Group

!Materials
* 3 Stühle
* Videokamera

!Procedure
# Vor der Videokamera stehen drei Stühle, auf denen nacheinander jeweils drei Seminarteilnehmer Platz nehmen. 
# Die Instruktion lautet: 
{{indent{
Stellen Sie sich vor, Sie fahren auf der Titanic von Europa nach Amerika. Plötzlich finden Sie sich zu dritt in einem kleinen Rettungsboot wieder. 
Einer von Ihnen ist der Funker (Kärtchen ziehen lassen) und am Bein schwer verletzt. 
Ein anderer ist der Maschinist und am Arm schwer  verletzt. 
Der dritte ist Arzt und völlig gesund. 
An Bord des Rettungsbootes befindet sich ein defektes Funkgerät, ein defekter Motor und eine Tasche mit der notwendigsten medizinischen Ausrüstung. 
Während Sie so dahindümpeln, stellen Sie fest, daß das Boot für drei Leute viel zu klein ist und einer von Ihnen das Boot verlassen muss, damit wenigstens zwei Leute gerettet werden können. 
Ihre Aufgabe ist es festzustellen, wer das Boot verlassen muss und wer nicht. Keiner möchte ertrinken.
}}}

!Debriefing
Die Abmoderation beschäftigt sich mit den Fragen
* Welche Rolle war die günstigste? Welche Rolle würden Sie beim nächsten Mal wählen?
* Warum hilft das nichts?
* Wenn man das Spiel mit 9000 Personen 3000 mal spielen würde, welche Funktion würde am häufigsten über Bord gehen?
* Bei 1000 Durchgängen liegt die Abweichung bei +/- 5%. Warum?
* Worauf kommt es wirklich an? (Koalitionen bilden, Koalitionen verhindern, Koalitionen sprengen) Was hat diese Situation mit dem Alltag zu tun?

Am Ende steht die Erkenntnis, dass in der Regel derjenige von Bord geht, der anfängt zu sprechen. Die anderen können sich mit dem stärksten der Vorredner solidarisieren. 

{{center{{{big{
| Merke: „Wer spricht, erfährt nichts!” |
}}}}}}

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Drei+Mann+in+einem+Boot+%28gk%29&db=3]]
<data>{"abstract":"[[Drei Stühle des Walt Disney]], eine Übung, bei der sich drei Teilnehmer in unterschiedlichen Rollen (auf unterschiedlichen Stühlen) an die [[Lösung|Problemlösung]] eines [[Problems]] begeben und bei Bedarf die Plätze tauschen.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://img.archiexpo.de/images_ae/photo-g/moderner-sessel-103787.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Drei Stühle des Walt Disney","abstract") </script>

!Drei Stühle des Walt Disney
<<tiddler [[Drei Stühle des Walt Disney##Overview]]>>

!Objectives
* Problemlösung

!Timing
60 min

!Audience
Group / Individual

!Materials
* 3 Stühle

!Procedure
Diese Übung ist auch bekannt als [[Walt Disney Kreativitätsstrategie]] ([[Walt Disney Circle]]): Drei Mitglieder eines [[Teams|Team]] diskutieren auf unterschiedlichen Stühlen über eine zu lösende Aufgabe, der Rest der Gruppe beobachtet das Geschehen. 

Die Stühle tragen die Namen 
* ''"Traumstuhl"'' — auf ihm werden Visionen und der Soll-Zustand entwickelt
* ''"Kritikstuhl"'' — von ihm aus werden Argumente gegen den "Traumstuhl" vorgebracht — und der 
* ''"Realisationsstuhl"'' — sein Inhaber versucht, eine brauchbare, realistische Lösung aus den [[Ideen|Ideenmanagement]] der beiden anderen abzuleiten. 

Die Inhaber der Stühle können wechseln, die Rollen dürfen zwischendurch getauscht werden, so daß jeder auch einmal die Rollen der anderen einnehmen kann.

!Note
Anmerkungen von Norbert Ortzeif (jebis ~GmbH): Schon interessant, wie Techniken so verbogen werden können, damit sie die Wirkung verlieren. Angenommen, wir ändern die Reihenfolge und Bedeutung der Stühle ein wenig, dann wird ein schicker Schuh daraus:
# träumen (wirklich frei träumen)
# realisieren (hier ist alles möglich, z.B. haben wir unendlich viele Ressourcen zur Verfügung, wir stellen hier nur fest, daß wir sie benötigen werden.)
# kritisieren (wir finden die Knackpunkte, z.B. stellen wir fest, nicht alle Ressourcen im benötigten Maße vorhanden sind oder Menschen und Maschinen nur begrenzte Zeit ohne Schlaf/[[Wartung]] auskommen)

Spannend wird es nun: Das Ergebnis des Kritisierens wird an a) weitergegeben und immer weiter im Kreis, bis auf allen Positionen Zufriedenheit herrscht.
Wichtig dabei: Die Ergebisse werden als Geschenk von einem Platz zum anderen gegeben und dort auch als Bereicherung empfangen.

Jetzt ist das Procedere zwar nicht mehr so "logisch" (dialektisch), auch nicht mehr so dramatisch inszeniert, dafür besteht die Chance, dass wirklich neue [[Ideen|Ideenmanagement]] nicht gleich gebügelt werden. 

!Debriefing

!Quelle
[[Pink, R.: Wege aus der Routine: Kreativitätstechniken für Beruf und Alltag, S.93-94.| http://www.amazon.de/gp/product/3093058627?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3093058627]]

!See also
* [[Zwei Stühle]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Moderation]<<tiddlerList tags:"moderation,-newTemplate" header:"Übungen Moderation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Die+drei+St%FChle+des+Walt+Disney+%28jt%29.html]]
<data>{"abstract":"[[Drei Türen]], wie bringt man eine Gruppe dazu, ein Thema aus [[verschiedenen Perspektiven|Perspektivwechsel]] zu beleuchten und die Perspektiven auch einzuhalten?"}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.goeriz.de/bilder/bilder_angebot_kl/tueren.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Drei Türen","abstract") </script>

!Drei Türen
<<tiddler [[Drei Türen##Overview]]>>
Bei einer [[Moderation]] / in einem [[Meeting]] / im Workshop soll ein bestimmtes Thema von verschiedenen Seiten beleuchtet werden. 

!Objectives
* [[Perspektivwechsel]]
* Reframing

!Timing
60min

!Audience
Group

!Materials
* Flipcharts
* Klebepunkte

!Procedure
# Der Moderator/Trainer malt auf ein Flipchart drei Türen. Die Türen stehen für die unterschiedliche Herangehensweisen an das Thema. Auf einer Tür steht "Anwendung", eine andere heißt "Strukturierung und Einordnung in Zusammenhänge" und hinter dritten Tür verbirgt sich die "Philosophie".
# Die ~TeilnehmerInnen können wählen  durch welche Tür sie zuerst gehen möchten. Alternativ können sich auch Kleingruppen bilden — For pairing use [[Gruppenpuzzle]] or [[Hör gut hin!]] —, die das Thema unter einer der Türüberschriften vorbereiten und dann präsentieren.

!Debriefing

!Quelle
[[O'Connor, Joseph / Seymour, John: Weiterbildung auf neuem Kurs, 4. Aufl. 1996, S. 206| http://www.amazon.de/gp/product/3924077851?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3924077851]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Moderation]<<tiddlerList tags:"moderation,-newTemplate" header:"Übungen Moderation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* 
<data>{"abstract":"[[Drei, Zwei, Eins]], eine Übung, die recht drastisch verdeutlich, wie man selbst Kontakt aufnimmt und wie man mit Erfolg und Misserfolg umgeht — zum Einsatz für fortgeschrittene Trainer geeignet."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://tubuk.com/assets/cover/zoom/zoom_eins_zwei_drei_tier.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Drei, Zwei, Eins","abstract") </script>

!Drei, Zwei, Eins
<script> return "<<tiddler [[Drei, Zwei, Eins##Overview]]>>" </script> 

!Objectives
* Wie geht man mit Erfolg und Misserfolg um?

!Timing
10min

!Audience
Group

!Materials
* —

!Procedure
# Dazu stellen sich drei Teilnehmer in verschiedenen Ecken des Raumes auf und gehen langsam aufeinander zu. # Die Aufgabe lautet, unter Ausschluss des Dritten eine Paarbeziehung einzugehen. 
# Verständigen dürfen sie sich nur mit Blicken und Gesten, berühren und sprechen ist nicht gestattet. 
# Beendet ist die Übung, wenn sich zwei gemeinsam aus der Mitte entfernen.

Das dauert zwar meist nur wenige Minuten, aber während dieser kurzen Zeit läuft seelisch eine Menge ab. 

!Debriefing
Eine ganze Reihe von Fragen lassen sich stellen, z.B.
* Wie wirbt man selbst?
* Stößt die eigene Werbung auf Resonanz oder Ablehnung?
* Lehnt man die Rivalisierung ab?
* Zieht man die Übung ins Lächerliche?
* Ergreift man die erste Gelegenheit zur Paarbildung oder prüft erst einmal, ob man den Partner überhaupt will?
* Wie reagiert man, wenn man feststellt, dass man abgelehnt wird?
* Welche Gefühle melden sich, wenn man erfolgreich war?
Im Anschluss bietet es sich an, das Wahrgenommene mit der Gestaltung anderer Beziehungen zu vergleichen, z.B. zwischen Kollegen oder zum Vorgesetzten und zu schauen, ob man dort von sich selbst ähnliche Reaktionen kennt. Das könnte erste Ansätze bieten, um diese Beziehungen zu verbessern.

!Quelle
[[Jörg Fengler: Feedback geben, Beltz 2002, S. 49-50| http://www.amazon.de/gp/product/3407364717?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3407364717]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Drei-Zwei-Eins+%28jt%29&db=3]]
<data>{"abstract":"[[Druck und Gegendruck]], ein Klassiker — so einfach und vielleicht deshalb so eindrucksvoll. Vordergründig geht es darum, die Kräfte zu messen. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://i.ytimg.com/vi/A44tqxBuNgw/0.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Druck und Gegendruck","abstract") </script>

!Druck und Gegendruck
<<tiddler [[Druck und Gegendruck##Overview]]>>
Die Übung kann als Aktivierung nach einer Pause eingesetzt werden, aber eigentlich ist sie zu schade dafür. Denn in unterschiedlichen Kontexten kann man damit demonstrieren, wie [[Menschen auf Druck reagieren|Druck und Gegendruck]].

!Objectives
* Wie reagieren [[Menschen auf Druck|Druck und Gegendruck]].

!Timing
5min

!Audience
Group


!Materials
* 

!Procedure
# Die Teilnehmer werden aufgefordert, sich paarweise gegenüber zu stellen. 
# Dabei sollten Partner in etwa die gleiche Größe und die gleiche "Gewichtsklasse" haben. 
# Die Partner werden aufgefordert, sich etwa in einem halben Meter Abstand voneinander aufzustellen und die Handflächen auf Brusthöhe gegeneinander zu legen. 
# Nun soll Partner A Partner B aus dem Gleichgewicht bringen. <br>Der Trainer kann das zunächst mit einem Teilnehmer demonstrieren und zeigen, dass man nicht nur durch Verstärkung des Druck, sondern auch durch Wegziehen der Hände den anderen aus dem Gleichgewicht bringen kann.
# Sodann lässt er die Übung 90 Sekunden lang laufen, dann werden die Rollen gewechselt und Partner B ist an der Reihe.

!Variation
Eine Variante: Bei der Übung stehen die Teilnehmer auf einem Bein.

!Debriefing
Abgesehen von dem Spaß lässt sich mit der Übung zum Thema "Durchsetzung" zeigen, wie Menschen auf Druck reagieren — und wie man z.B. bei [[Konflikten|Konflikt]] oder Angriffen in Diskussionen auch reagieren könnte.


!Quelle
Thomas Schmidt: ~Konfliktmanagement-Trainings erfolgreich leiten. managerSeminare 2009, S. 220-221)

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/online/themen/3/Ideenfabrik/Druck+und+Gegendruck+%28jt%29.html]]
* [[Unesco, freie Lernressourcen| www.opentrainingplatform.org]]
<data>{"abstract":"Die klassische [[Moderation]] läuft in der Regel nach einem wohl strukturierten Muster ab. Der menschliche Geist allerdings funktioniert anders, nämlich viel chaotischer, [[Dynamic-Facilitation]] berücksicht das."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.collectivewisdominitiative.org/papers/what_is_enlightenment/chap4_graphic.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Dynamic-Facilitation","abstract") </script>

!~Dynamic-Facilitation
<script> return "<<tiddler [[Dynamic-Facilitation##Overview]]>>" </script> 
Die klassische Moderation läuft in der Regel nach einem wohl strukturierten Muster ab. Da werden Probleme gesammelt, geclustert, gewichtet, Lösungen gesucht, wieder gewichtet und schließlich entschieden. Und stets erfolgt der nächste Schritt erst, wenn der letzte abgeschlossen wurde. 

Doch das menschliche Denken funktioniert so nicht. Es ist viel spontaner, springt hin und her. Was dazu führt, dass möglicher Weise gute Ideen, die bei der Problemsammlung aufblitzen, längst wieder vergessen sind, wenn es an die Lösungen geht.

Der Amerikaner Jim Rough entwickelte hieraus ein Format, das die bisherigen Moderationsabläufe und Diskussionrituale auf den Kopf stellt. Er nennt es "Choice Creating" (Wahlmöglichkeiten schaffen).
Das Schöne daran: So werden alle Beiträge gewürdigt, keiner verschoben, vertagt oder als "unzulässig" verworfen (wie im klassischen [[Brainstorming]]). Mit Hilfe der [[Dynamic-Facilitation]] sind laut Begründer Jim Rough echte Durchbrüche möglich.

!Objectives


!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Der Ablauf ist verblüffend einfach. Es gibt vier Listen, die an der Pinwand sichtbar sind und während der Moderation gefüllt werden. Sie sind überschrieben mit
* Probleme
* Lösungen
* Bedenken
* Informationen

Warum gerade diese? In jeder Sitzung werden [[Probleme|Problem]] diskutiert, [[Informationen|Information]] weitergegeben, Bedenken geäußert und Lösungen entwickelt. 
Der Moderator hat nun die Aufgabe, alle Äußerungen festzuhalten und der Liste zuzuordnen, in die sie gehören. 


!Debriefing


!Quelle
Matthias zur Bonsen: Ganz anders moderieren, managerSeminare 3/2005, S. 55-58.


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.bw21.de/PortalData/3/Resources//inhaltsbereich/praesentationen/Debriefing2.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.tobe.net/df/files/page17_1.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.maero.de/images/graphics/df-pinwaende.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.bluestonegroup.org/wp-content/uploads/2009/02/group_pencil.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.unagaliciamoderna.com/eawp/revistaAntigua/eawp/archives/vol4n7/problematic/Image2.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===


!See also
* [[Meeting]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Moderation]<<tiddlerList tags:"moderation,-newTemplate" header:"Übungen Moderation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Jim Rough and Associates, Inc| http://www.tobe.net/]]
* [[Ganz anders moderieren — PDF| http://www.all-in-one-spirit.de/pdf/DynFac.pdf]]
* [[Dynamic Facilitation Wenn der Moderator die Besprechung frei laufen lässt| http://www.business-wissen.de/index.php?id=7902]]
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Dynamic-Facilitation+%28jt%29]]
/***
|Name|EditFieldPlugin|
|Source|http://www.TiddlyTools.com/#EditFieldPlugin|
|Version|1.0.0|
|Author|[[EricShulman]] - 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|extend core edit macro for use in ViewTemplates or direct embedding in tiddler content|

This HIJACK extends the core <<edit fieldname>> macro for use in a ViewTemplate or directly embedded in tiddler content.  Enter single- or multi- line text from 'view mode' tiddler displays and save/discard your input using ENTER, ESC, or automatic 'blur' handling.
!!!!!Usage
<<<
Normally, when you edit a tiddler, any changes you make are only saved (or discarded) when you press the "done" (or "cancel") command in the tiddler editor's toolbar.  However, when in a 'view mode' context, these command items are not available, and so cannot be used to trigger the 'save/discard' handling once you have decided that your input [[activities|Aktivitaet]] are complete.  Instead, you will be automatically prompted to save/discard your changes (if any) as soon as you move away from a text edit field or multi-line text area.  Alternatively, pressing ENTER while in an edit field will save your input, while pressing ESCAPE will abandon your input (after prompting for confirmation).  
<<<
!!!!!Examples
<<<
{{{<<edit foobar>>}}}
<<edit foobar>>
{{{<<edit mumble 5>>}}}
<<edit mumble 5>>
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document: [[EditFieldPlugin]]
<<<
!!!!!Revision History
<<<
''2007.08.22 [1.0.0]'' initial release
<<<
!!!!!Credits
<<<
This feature was developed by Eric L Shulman / ELS Design Studios
<<<
!!!!!Code
***/
//{{{
version.extensions.editFieldPlugin= {major: 1, minor: 0, revision: 0, date: new Date(2007,8,22)};

config.macros.edit.editFieldPlugin_savedHandler=config.macros.edit.handler;
config.macros.edit.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	// let core create edit field
	config.macros.edit.editFieldPlugin_savedHandler.apply(this,arguments);
	// get edit field or textarea
	var ins=place.getElementsByTagName(params[0]=="text"||params[1]?'textarea':'input');
	var e=ins[ins.length-1];
	// if viewing tiddler, add autosave handlers
	var here=story.findContainingTiddler(place);
	if (here && here.getAttribute("template").indexOf("ViewTemplate")!=-1) {
		story.setDirty(tiddler.title,false); // clear tiddler ("dirty") flag set by core when field was created
		var field=e.getAttribute("edit");
		var val=store.getValue(tiddler.title,field); if (!val) val="";
		e.setAttribute("currval",val); // remember starting value
		e.setAttribute("tiddler",tiddler.title); // remember target tiddler
		e.onkeydown=function(ev) { // ENTER key=save (for single-line edit fields only)
			var event=ev?ev:window.event;
			this.setAttribute("keyCode",event.keyCode); // save last keyCode for blur() handler
			if (event.keyCode==13 && this.nodeName.toUpperCase()!="TEXTAREA")
				this.saveField(); // save input to tiddler field
		}
		e.onblur=function(ev) { // accept or reject input when focus moves away from field
			var event=ev?ev:window.event;
			var tid=this.getAttribute("tiddler"); if (!tid || !tid.length) return;
			var field=this.getAttribute("edit");
			if (this.value!=this.getAttribute("currval")) { // if value has changed
				if (this.getAttribute("keyCode")=="27") { // if user pressed ESC
					var msg="Abandon changes to %0@%1?".format([field,tid]);
					if (confirm(msg)) this.value=this.getAttribute("currval"); // reset to starting value
					this.id=new Date().getTime(); // set unique ID
					setTimeout("document.getElementById('"+this.id+"').focus()",1); // restore focus (after blur completes)
				} else { // other focus change events
					var msg="Save changes to %0@%1?".format([field,tid]);
					if (confirm(msg)) this.saveField(); // save input to tiddler field, then continue blur
					else this.value=this.getAttribute("currval"); // reset to starting value, then continue blur
				}
			}
		};
		e.saveField=function() { // save input value to tiddler field (create, touch or rename tiddler as needed)
			var tid=this.getAttribute("tiddler"); if (!tid || !tid.length) return;
			var field=this.getAttribute("edit");
			var title=(field=="title")?this.value:tid;
			if (!title.length) { // prevent blank tiddler title from being used
				this.value=this.getAttribute("currval"); // reset to starting value
				this.id=new Date().getTime(); // set unique ID
				setTimeout("displayMessage('Please enter a non-blank value')",1); // notify user
				setTimeout("document.getElementById('"+this.id+"').focus()",2); // set focus to continue editing
				return;
			}
			var t=store.getTiddler(tid);
			store.suspendNotifications();
			var anim=config.options.chkAnimate; config.options.chkAnimate=false; // suspend animation
			store.saveTiddler(t?tid:title,title,t?t.body:"",config.options.txtUserName,new Date(),t?t.tags:[],t?t.fields:null);
			store.setValue(title,field,this.value); // save value in tiddler field
			this.setAttribute("currval",this.value); // remember new starting value
			if (tid!=title) // if title changed, display renamed tiddler in place of current one
				{ story.displayTiddler(story.findContainingTiddler(this),title); story.closeTiddler(tid); }
			if (field=="text") // if tiddler content changed, refresh tiddler display
				{ story.refreshTiddler(title,null,true); }
			config.options.chkAnimate=anim; // resume animation
			store.resumeNotifications();
		};
	}
}
//}}}
/***
|Name|EditSectionPlugin|
|Source|http://www.TiddlyTools.com/#EditSectionPlugin|
|Documentation|http://www.TiddlyTools.com/#EditSectionPlugin|
|Version|1.5.1|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|invoke popup 'section editor' for specified section of a tiddler|
!!!!!Usage
<<<
{{{
<<editSection TiddlerName##sectionname label tooltip>>
}}}
where:
* ''~TiddlerName##sectionname'' specifies the tiddler and section you want to edit.
** If you omit the "##sectionname" portion (i.e., only enter "~TiddlerName"), the entire content of the indicated tiddler is edited.
** If you omit the "~TiddlerName" portion (i.e., only enter "##sectionname"), the current containing tiddler (if any) is assumed.
** Changing the section name in the popup editor //renames// that section within the tiddler.
** Changing the tiddler title in the popup editor //copies// that section to another tiddler.
** If the indicated tiddler and/or section does not yet exist, it will be created when you press 'save'.
* ''label'' and ''tooltip'' (both //optional//) specify the link label and mouseover help text for the 'edit section' command link.
Note: when a document is viewed in 'readOnly' mode, the macro is bypassed and a command link is not rendered.
<<<
!!!!!Sample
<<<
This is a sample section for you to try
<<<
!!!!!Example
<<<
{{{
<<editSection ##Sample>>
}}}
<<editSection ##Sample>>
<<<
!!!!!Configuration
<<<
To customize and/or translate the HTML form layout used to render the section editor, edit the [[EditSectionTemplate]] shadow tiddler.
<<<
!!!!!Revisions
<<<
2011.01.09 1.5.1 in handler(), don't render command link if document is readOnly
2010.12.24 1.5.0 replace use of core Popups with custom panel handling (bypass core interactions and errors)
2010.11.07 1.4.0 in popup(), render HTML form from EditSectionTemplate, and then applyHtmlMacros() to render wiki-syntax macro-generated form elements (e.g., {{{<<option>>, <<select>>}}}, etc.).  Also, refactored form init/save handling to add customization 'hooks'
2010.10.25 1.3.0 added support for editing complete tiddlers using "~TiddlerName" syntax (omit "##sectionname")
2010.07.15 1.2.0 added confirmation when section rename will overwrite other section
2010.07.13 1.1.1 added 'dirty flag' confirmation to popup handling to avoid discarding unsaved changes
2010.07.11 1.1.0 fixed handling for creating new sections in existing tiddlers. Copied StickyPopupPlugin to eliminate dependency. Added Popup.showHere()
2010.05.24 1.0.2 in save(), escape regexp chars in section titles (e.g. "!SectionNameWith?InIt")
2009.09.07 1.0.1 documentation/code cleanup
2009.09.01 1.0.0 initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.EditSectionPlugin= {major: 1, minor: 5, revision: 1, date: new Date(2011,1,9)};

config.macros.editSection = {
	label: 'edit section...',
	tip: 'edit %0',
	sectionfmt: '{{hidden{\n!%0\n%1\n!end\n}}}',
	sectionerr: 'Invalid tiddler/section name: %0',
	newtiddlertxt: '',
	discardmsg: 'Discard unsaved changes for %0%1%2?',
	overwritemsg: '%0##%2 already exists. Choose OK to overwrite it',
	template: 'EditSectionTemplate',
	init: function() {
		// SHADOW PAYLOAD FOR EditSectionTemplate FORM DEFINITION
		config.shadowTiddlers[this.template]
			=store.getTiddlerText('EditSectionPlugin##HTML','');

		// CLOSE PANELS IF CLICK on other than POPUP OR EDITOR PANEL
		addEvent(document,'click',function(ev) {
			var p=resolveTarget(ev||window.event);
			while (p) {
				if (hasClass(p,'editSectionPanel')) break;
				if (hasClass(p,'popup')) break;
				p=p.parentNode;
			}
			if (!p) config.macros.editSection.removeAllPanels();
			return true;
		});

		// HIJACK QuickEditPlugin's getField() to support use with editSectionPanel
		if (config.quickEdit) {
			config.quickEdit.getTiddlerField=config.quickEdit.getField;
			config.quickEdit.getField=function(where) {
				var e=where; while(e) {	if (hasClass(e,'editSectionPanel')) break; e=e.parentNode; }
				return e?e.getElementsByTagName('textarea')[0]:this.getTiddlerField(where);
			}

		}
	},
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		if (readOnly) return;
		var here=story.findContainingTiddler(place);
		var tid=params[0];
		var label=params[1]||this.label.format([tid]);
		var tip=params[2]||this.tip.format([tid]);
		var btn=createTiddlyButton(place,label,tip,this.click);
		btn.setAttribute('tid',tid);
	},
	processed: function(ev) {
		ev.cancelBubble=true;
		if(ev.stopPropagation)ev.stopPropagation();
		return false;
	},
	click: function(ev,template,initForm,saveForm) {
		var parts=this.getAttribute('tid').split('##');
		var title=parts[0]; var section=parts[1];
		var here=story.findContainingTiddler(this);
		if (!title&&here) title=here.getAttribute('tiddler');
		if (!title) return false;
		return config.macros.editSection.createPanel(this,ev,title,section,template,initForm,saveForm);
	},
	createPanel: function(here,ev,title,section,template,initForm,saveForm) {
		if (!this.removeAllPanels()) return this.processed(ev);
		var p=createTiddlyElement(document.body,"ol","popup","popup smallform editSectionPanel");
		p.root=here; 
		p.setAttribute('dirty',null);
		p.setAttribute('message',this.discardmsg.format([title,section?'##':'',section]));
		p.innerHTML=store.getRecursiveTiddlerText(template||this.template,'',10);
		applyHtmlMacros(p,store.getTiddler(title));
		var f=p.getElementsByTagName('form')[0];
		this.initPanel(p,here,f,title,section,initForm,saveForm);
		this.showPanel(p,here,ev);
		return this.processed(ev);
	},
	initPanel: function(p,here,f,title,section,initForm,saveForm) {
		f.panel=p;
		f.title.value=title;
		f.section.value=section;
		f.newsection.value=title+(section?'##'+section:'');
		f.content.value=store.getTiddlerText(f.newsection.value,'');
		if (version.extensions.TextAreaPlugin) new window.TextAreaResizer(f.content);
		f.initForm=initForm;
		f.saveForm=saveForm;
		if (f.initForm) f.initForm(here,f,title,section);
	},
	showPanel: function(p,here,ev) {
		var x=ev.pageX; var y=ev.pageY;
		if (config.browser.isIE)	{ x=ev.clientX+findScrollX(); y=ev.clientY+findScrollY(); }
		var winw=findWindowWidth();
		var scrollw=winw-document.body.offsetWidth;
		if(p.offsetWidth>winw*0.75) p.style.width=winw*0.75 + "px";
		if(x+p.offsetWidth>winw-scrollw-1) x=winw-p.offsetWidth-scrollw-1;
		var s=p.style; s.left=x+'px'; s.top=y+'px'; s.display='block';
		if(config.options.chkAnimate && anim)	anim.startAnimating(new Scroller(p));
		else					window.scrollTo(0,ensureVisible(p));
	},
	removePanel: function(p) {
		if (!p || p.getAttribute('dirty')!='true' || confirm(p.getAttribute('message')))
			{ if (p) removeNode(p); return true; }
		return false;
	},
	removeAllPanels: function() {
		var ok=true;
		jQuery('.editSectionPanel').each(function(index){
			var f=this.getElementsByTagName('form')[0];
			f.content.blur(); // force onchange (sets 'dirty' flag as needed)
			ok=config.macros.editSection.removePanel(this);
			return true;
		});
		return ok; // FALSE if panels remain
	},
	changed: function(here,ev) {
		here.form.panel.setAttribute('dirty','true');
		return this.processed(ev);
	},
	cancel: function(here,ev) {
		this.removePanel(here.form.panel);
		return this.processed(ev);
	},
	save: function(here,ev) {
		var f=here.form;

		// GET TARGET TITLE/SECTION
		var tid=f.newsection.value;
		var parts=tid.split('##');
		var title=parts[0];
		var section=parts[1];
		var where=here.form.panel.root;
		if (!title) title=story.findContainingTiddler(where).getAttribute('tiddler');
		if (!title) {
			displayMessage(this.sectionerr.format([f.newsection.value]));
			f.newsection.focus(); f.newsection.select(); return false;
		}

		// GET (or CREATE) TIDDLER
		var t=store.getTiddler(title);
		var who =t&&config.options.chkForceMinorUpdate?t.modifier:config.options.txtUserName;
		var when=t&&config.options.chkForceMinorUpdate?t.modified:new Date();
		if (!t) {
			t=new Tiddler(); t.text=store.getTiddlerText(title,'');
			if (section&&!t.text.length) t.text=this.newtiddlertxt.format([title,section]);
		}

		// GET NEW CONTENT FROM FORM CONTROLS (DEFAULT = TEXT CONTENT ONLY)
		var txt=f.saveForm?f.saveForm(where,f):f.content.value;

		// CHECK FOR TIDDLER OVERWRITE
		if (!section && title!=f.title.value && store.tiddlerExists(title)) {
			if (!confirm(config.messages.overwriteWarning.format([title])))
				{ f.newsection.focus(); f.newsection.select(); return this.processed(ev); }

		}

		// ADD/REVISE/RENAME SECTION CONTENT (if any)
		if (section) {
			// GET SECTION VALUES
			var oldsection=f.section.value;
			var oldval=store.getTiddlerText(title+'##'+oldsection); // previous section value
			var newval=txt; // revised section value
			var existingval=store.getTiddlerText(title+'##'+section); // existing section value

			// REVISE TIDDLER TEXT
			var txt=t.text; // default tiddler text = unchanged
			var pattern=new RegExp('(.*!{1,6})'+oldsection.escapeRegExp()+'\\n'
				+(oldval||'').escapeRegExp()+'((?:\\n!{1,6}|$).*)');
			var altpattern=this.sectionfmt.format([oldsection,oldval||'']);
			if (section!=oldsection && existingval) { // rename overwrites another section...
				if (!confirm(this.overwritemsg.format([title,section])))
					return this.processed(ev);
				txt=txt.replace(altpattern,''); // REMOVE old section (auto-generated)
				txt=txt.replace(pattern,'$2');  // REMOVE old section (generic format)
				// TARGET new section name and value
				pattern=new RegExp('(.*!{1,6})'+section.escapeRegExp()+'\\n'
					+existingval.escapeRegExp()+'((?:\\n!{1,6}|$).*)');
				oldval=existingval;
			}
			if (typeof oldval=="string") // section exists... update/rename it
				txt=txt.replace(pattern,'$1'+section+'\n'+newval+'$2');
			else // otherwise, append a new section to end of tiddler
				txt=txt+this.sectionfmt.format([section,newval]);
		}

		// SAVE TIDDLER
		store.saveTiddler(title,title,txt,who,when,t.tags,t.fields);
		story.refreshTiddler(title,null,true);
		f.panel.setAttribute('dirty',null);
		this.removePanel(f.panel);
		return this.processed(ev);
	}
}
//}}}
/***
//{{{
!HTML
<!--{{{-->
<!--
|Name|EditSectionTemplate|
|Source||
|Version||
|Author||
|License|http://www.TiddlyTools.com/#LegalStatements|
|Type|template|
|Requires|EditSectionPlugin|
|Description|popup editor form template used by EditSectionPlugin|
-->
<form action='javascript:;' style="white-space:nowrap">
<input type="hidden" name="title" value="">
<input type="hidden" name="section" value="">
<input type="text" name="newsection" value="" autocomplete="off" style="width:73%"
	onchange="return config.macros.editSection.changed(this,event);">
<input type=button value="save" style="width:12%"
	onclick="return config.macros.editSection.save(this,event)">
<input type=button value="cancel" style="width:12%"
	onclick="return config.macros.editSection.cancel(this,event)">
<div macro="tiddler QuickEditToolbar"></div>
<textarea name="content" rows="15" cols="80" autocomplete="off"
	onchange="return config.macros.editSection.changed(this,event)"></textarea>
</form>
<!--}}}-->
!end
//}}}
***/
 
/***
|Name|EditTiddlerPlugin|
|Source|http://www.TiddlyTools.com/#EditTiddlerPlugin|
|Version|1.3.1|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|embed an 'edit' link in tiddler content to invoke edit on any specified tiddler title|
!!!!!Usage
<<<
{{{
<<editTiddler TiddlerName label>>
}}}
*''~TiddlerName''<br>the title of the tiddler to edit (omit or use the keyword 'here' for current //containing// tiddler)
*''label''<br>command link text (default="edit")
The plugin also adds ''ctrl-enter'' as a ''keyboard shortcut to start editing'' the current //selected// tiddler (the one with an active toolbar menu)
<<<
!!!!!Revisions
<<<
2009.08.15 1.3.1 in shortcut, invoke editTiddler command handler (sets focus and custom fields)
2009.08.14 1.3.0 added CTRL-ENTER keyboard shortcut to invoke edit for 'selected' tiddlers
2007.03.22 1.2.0 added 'here' keyword and optional 2nd param to specify label text
2007.03.15 1.1.1 fixed 'get tiddler ID' logic so it actually works! D'oh! 
2007.03.11 1.1.0 changed 'get tiddler ID' logic so that macro can be used outside a tiddler (i.e., in mainMenu) by specifying the ID
2006.10.04 1.0.1 invoke findContainingTiddler() as fallback when 'tiddler' param is null
2006.04.28 1.0.0 Initial release
<<<
!!!Code
***/
//{{{
version.extensions.EditTiddlerPlugin={major:1, minor:3, revision:1, date: new Date(2009,8,15)};

config.macros.editTiddler={
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var tid=params.shift(); // use specified tiddler ID (or "here")
		if (!tid || tid=="here") {
			var here=story.findContainingTiddler(place);
			if (!here) return; // not in a tiddler, do nothing
			tid=here.getAttribute('tiddler'); // get ID from tiddler element
		}
		var label="edit"; if (params[0]) label=params.shift();
		createTiddlyButton(place,label,'edit tiddler: '+tid,this.onclick).setAttribute('which',tid);
	},
	onclick: function(e) {
		story.displayTiddler(null,this.getAttribute('which'),DEFAULT_EDIT_TEMPLATE);
	}
}
//}}}
//{{{
	addEvent(document,'keypress', function(ev) { var ev=ev||window.event;
		if (!ev.ctrlKey || ev.keyCode!=13) return; // CTRL-ENTER = edit tiddler
		story.forEachTiddler(function(title,tiddler){
			if (hasClass(tiddler,'selected') && !story.isDirty(title))
				config.commands.editTiddler.handler(ev,null,title);
		});
		return false;
	});
//}}}
<data>{"abstract":"Man stelle sich vor, untereinander zerstrittene Manager versammeln sich in einem Hotel und [[bringen ihre Ehepartner mit|Ehepartner an den Tisch]]. Diese verhandeln dann den [[Konflikt]] und lösen ihn stellvertretend. Ungewöhnlich, oder?"}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.uloc.de/screenshots/h/habf11_33_bankett.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Ehepartner an den Tisch","abstract") </script>

!Ehepartner an den Tisch
<script> return "<<tiddler [[Ehepartner an den Tisch##Overview]]>>" </script> 
Die folgende ungewöhnliche Methode der [[Konfliktlösung|Konflikt]] soll aus dem Hause Arthur D. Little stammen.

!Objectives
* Konfliktlösung

!Timing
2-3h

!Audience
Group

!Materials
* 

!Procedure
Eine Gruppe von [[Mitarbeitern|Mitarbeiter]], die untereinander zerstritten ist, wird in ein Hotel eingeladen, wobei die einzelnen Teilnehmer aufgefordert werden, ihre Ehepartner zu der Veranstaltung mitzubringen. 
Im Hotel werden die Teilnehmer gebeten, ihren jeweiligen Partner über die wesentlichen Grundlagen des [[Konfliktes|Konflikt]] zu informieren. 
Danach dürfen die Betroffenen selbst ihrer Wege gehen, während die Partner in den Konferenzraum gebeten werden. Ihr Auftrag lautet nun, gemeinsam eine [[Konfliktlösung|Konflikt]] zu erarbeiten.

Unter Anleitung eines erfahrenen Moderators soll die Sache in der Regel in zwei bis drei Stunden vom Tisch sein. 
Wenn die Streitparteien zurückkommen, werden sie über die Lösung und die dazu gehörenden Aufträge informiert. 

!Debriefing
Der Trick: Der scheinbar unlösbare [[Konflikt]] wird in einen neuen Rahmen gestellt, der Blickwinkel auf das Problem wird verändert. Ausprobieren??


!Quelle
Gloger, Axel: Kompetent in Konflikten, managerSeminare 6/2002 S. 28.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Ehepartner+an+den+Tisch+%28jt%29]]
<data>{"abstract":"[[Eier kochen]], ein Seminarteilnehmer erhält von anderen Teilnehmern ein [[Feedback]], etwa nach einem [[Rollenspiel|Improvisationstheater]] oder einem Vortrag. Wie man dieses erleichtert… "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.basimo.de/words/wp-content/high_tech_ei.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Eier kochen","abstract") </script>

!Eier kochen
<script> return "<<tiddler [[Eier kochen##Overview]]>>" </script> 

Das Rollenspiel ist beendet, der Vortrag ist gehalten, die Gruppenübung abgeschlossen. Nun geht es ans [[Einzelfeedback|Feedback]]. In Gruppen, die eher zurückhaltend sind mit klaren Rückmeldungen, bietet sich folgende Vorgehensweise an.

!Objectives
* ~Feedback-Übung

!Timing
15 min

!Audience
Group

!Materials
* 3 Stühle
* Namensschilder

!Procedure
Im Raum stehen drei Stühle. Vor ihnen auf dem Fußboden befinden sich Namensschilder, beschriftet mit "weich", "mittel" und "hart". 

Der Teilnehmer entscheidet sich nun, ob er das [[Feedback]] schonend oder unverblümt haben möchte. D.h. er setzt sich auf den Stuhl mit dem Titel "weich", wenn er geschont werden möchte, "hart" heißt, man soll kein Blatt vor den Mund nehmen.
Setzt er sich auf den dritten Stuhl, haben die anderen Teilnehmern das Okay, frei und offen zu reden. Ansonsten sollen sie natürlich auch alles sagen, was sie beobachtet haben, nur muss dann die Verpackung anders sein.

!Debriefing

!Quelle
[[Bernd Weidenmann: Handbuch Active Training, Beltz 2006, S. 159-160.| http://www.amazon.de/gp/product/3407364601?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3407364601]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?db=3&to_parebene=Eier+kochen+%28jt%29]]
//synonym://
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!Eierlegende Wollmilchsau
<<tiddler [[Eierlegende Wollmilchsau##Overview]]>>


!Objectives

!Timing

!Materials
*

!Audience
Group / Individual

!Procedure

!Debriefing

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Mit kreativen Impulsen emotionale Probleme lösen| http://www.business-wissen.de/index.php?id=7882]]
/%
|Name|Elefantastisch.de|
|URL|http://www.elefantastisch.de/kooperation.htm|
|Description|Gruppenspiele|
|Author|Sebastian Fiebig|

!Objectives
* Gruppenspiele

!Timing
—

!Materials
* —

!Audience
Group

!Procedure

!Debriefing

%/
<data>{"abstract":"Wie gehen Menschen mit (unerwarteten)  [[Veränderungen|Organizational Change]] um? Diese Übung lässt auf anschauliche Weise [[Erfahrungen|Erfahrung]] im [[Team]] sammeln."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.teich-center.com/images/elektrozaun_detail.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Elektrozaun","abstract") </script>

!Elektrozaun
<script> return "<<tiddler [[Elektrozaun##Overview]]>>" </script> 

!Objectives
* Teambuilding

!Timing
60 min

!Audience
Group: 10 bis 15 Teilnehmern

!Materials
* 2 Seile
* 1 Brett
* Augenbinden

!Procedure
Eine Gruppe von 10 bis 15 Teilnehmern erhält den Auftrag, ein Seil zu überqueren. Dieses ist in 1,5m Höhe zwischen zwei Bäumen gespannt. Ein zweites Seil ist in 40 cm Höhe gespannt und bildet mit dem ersten Seil ein Dreieck.
Als einziges Hilfsmittel erhält die Gruppe ein stabiles Brett. 
Sobald ein Teilnehmer beim Überqueren das Seil (den "Elektrozaun") berührt, muss die ganze Gruppe wieder von vorne anfangen.

Die Gruppe darf entscheiden, welche zwei Teilnehmer den niedrigeren Abschnitt überwinden dürfen, alle anderen müssen über den 1,5m hohen Zaun klettern. Der Fantasie sind dabei keine Grenzen gesetzt.

Hat etwa ein Drittel der Gruppe den Zaun überwunden, tritt eine gravierende Veränderung ein. Das kann die Höhe des Seiles sein oder eine Einschränkung der [[Wahrnehmung]], indem z.B. der Hälfte der Teilnehmer die Augen verbunden werden.

Um die Sicherheit zu gewährleisten, bietet sich an, das Seil am Ende mit einem dünnen Faden anzubinden, der bei heftiger Berühung reißt.

!Debriefing
Auswertungsfragen am Ende können z.B. sein:
* Was geschah nach der Veränderung?
* Welche [[Konflikte|Konflikt]] sind entstanden?
* Welche Phasen des Gruppenprozesses gab es?
* Was kam Ihnen aus dem beruflichen Alltag bekannt vor?
* Was lässt sich auf die Gestaltung von [[Veränderungsprozessen|Organizational Change Model]] übertragen bzw. welche Hinweise zur Bewältigung von  [[Veränderungen|Organizational Change]] können wir aus der Übung ableiten? 

Standardhinweis wie bei jeder [[Outdoor-Übung|outdoor]]: Der Trainer greift sofort ein, wenn die Sicherheit der Teilnehmer beeinträchtigt ist. Die Übung lässt sich auch in einem großen Raum durchführen, wobei man die Seile z.B. zwischen Stühlen spannen kann.

!Quelle
André Mersch / Frank Strikker: Elektrozaun — Veränderung erleben, aus: Anja Leao / Mathias Hofmann (Hg.): Fit for Change managerSeminare Verlags ~GmbH 2007, S. 40-45.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Outddor]<<tiddlerList tags:"outdoor,-newTemplate" header:"Übungen Outdoor">>===

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?db=3&to_parebene=Elektrozaun+%28jt%29]]
<data>{"abstract":"[[Eltern-Ich-Botschaften]], diese kleine [[Fantasiereise]] hilft, sich der unterstützenden bzw. kritischen [[Eltern-Botschaften|Eltern-Ich-Botschaften]] bewusst zu werden. Eine Übung für Trainer, die mit dem Modell der [[Transaktionsanalyse|Transaktions-Modell der Kommunikation/ichZustände]] arbeiten. Auch geeignet, um  [[Ich-Zustände zu erkennen|Ich-Zustände erkennen]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.team-f.de/konkret/2004/5/Eltern-Baby.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Eltern-Ich-Botschaften","abstract") </script>

!Eltern-~Ich-Botschaften
<<tiddler [[Eltern-Ich-Botschaften##Overview]]>>

!Objectives
* Erkennen von [[Ich-Zuständen|Ich-Zustände erkennen]]

!Timing
15 Minuten

!Audience
Group / Individual


!Materials
* ~Flipchart-Papier

!Procedure
Der Trainer gibt den Seminarteilnehmern folgende Übungsanleitung: 

{{indent{
//"Überlegen Sie sich oder denken Sie sich eine Situation, bei der Sie sich geärgert haben…
Nun stellen Sie sich vor, Sie sitzen zu Hause in Ihrem Zimmer, da geht die Tür auf und Ihr Vater (Mutter) kommt herein, unabhängig davon, ob Ihr Vater (Mutter) noch lebt oder nicht …
Sie erzählen ihm (ihr) den Vorfall …
Wie reagiert Ihr Vater (Mutter)? Was macht er (sie)?"//
}}}

!Debriefing
Der obige Text wird mit kurzer Pause zweimal hintereinander gesprochen. Einmal bezieht sich die Anweisung auf den Vater und einmal auf die Mutter.
Sodann unterteilt der Trainer das ~Flip-Chart-Blatt in zwei Spalten. Links werden die kritischen Bemerkungen notiert, rechts die unterstützenden ~Eltern-Botschaften.
Die TN sollen herausfinden nach welchen Kriterien die Äußerungen geordnet wurden, das heißt welche Überschriften man den beiden Spalten geben kann ("Kritisches ~Eltern-Ich/Unterstützendes [[Eltern-Ich|Transaktions-Modell der Kommunikation/elternIch]] )


!Quelle
[[Rüttinger, Rolf & Kruppa, Reinhold; Übungen zur Transaktionsanalyse. Windmühle 2006, S. 25| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2F%25C3%259Cbungen-zur-Transaktionsanalyse-Praxis-Organisation%2Fdp%2F3937444009%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214665662%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Eltern-Ich-Botschaften+%28Wrede%29&db=3]]
<<wikify [>img(%0,%1)[%2|%3]] 60% auto title http://www.customerthink.com/files2/images/LV_Single_TP.jpg>>
<<showtoc>>
!Overview
[[Emotion Curve]] is a technique used in [[customer satisfaction research|Customer Satisfaction]].
Remember the emotions during the time period in question.

!Emotion Curve
<<tiddler [[Emotion Curve##Overview]]>>

!Objectives
* Gather Data, Generate Insights in a [[retrospective|Agile Retrospectives]]
* Remember the emotions during the time period in question.

!Timing
20min

!Audience
Group

!Materials
* flipchart
* coloured dots

!Procedure
# The [[facilitator|Facilitator]] draws the [[timeline|Retrospective Timeline]] and invites the participants to add teir emotions.
# Let the participants draw/stick dots on the timeline according their feelings
# The facilitator draws a trend line
# Discuss the result.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.thekua.com/rant/wp-content/uploads/2006/03/RetrospectiveTimelineEventsSmall.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.thekua.com/rant/wp-content/uploads/2006/03/RetrospectiveTimelineFeelingsSmall.jpg>>
{{small{Optional, draw an [[Emotion Curve]] below the [[timeline|Retrospective Timeline]]: get the team to fill in how they felt about each event or how they felt in general for that period. You can try to limit them by getting them to put three dots per significant period (week/month) or perhaps one per event posted, with the idea that you want to get a general feeling for the overall morale of the team.}}}
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.thekua.com/rant/wp-content/uploads/2006/03/RetrospectiveTimelineTrendsSmall.jpg>>
{{small{Once the team has finished plotting all their points, you can then try to draw a trend through them that helps to establish a real idea of how the project went.}}}  /%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* 
<data>{"abstract":"[[Ent-Lastung mit Symbol]], wir spüren täglich unsere Belastungen, manchmal erscheinen sie kaum tragbar. Doch das Loslassen fällt schwer, wir tragen weiter schwer an unserer Last. Eine kleine Übung zum Einsatz im [[Coaching]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.museumsberatung.ch/Entlastung.JPG>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Ent-Lastung mit Symbol","abstract") </script>

!~Ent-Lastung mit Symbol
<script> return "<<tiddler [[Ent-Lastung mit Symbol##Overview]]>>" </script>
Der Coachee berichtet, er fühle sich stark belastet (eine schwere Aufgabe, Stress, eine schwierige Entscheidung,  [[Veränderungen|Organizational Change]]...). Mentale Bearbeitungsstrategien sind bisher nicht erfolgreich gewesen. Der Eindruck entsteht, der Klient kann/will die Belastung nicht "loslassen".

!Objectives
* Loslassen
* Trauerarbeit

!Timing
10min-20min

!Audience
Group / Individual

!Materials
* schwerer Gegenstand

!Procedure
# Bitten Sie den Klienten, einen schweren Gegenstand zu wählen (schweres Buch oder Stein), den er nun mindestens eine Woche ständig mit sich herumzutragen (in der Aktentasche, Sporttasche, Einkaufstasche z.B.) hat, so dass er die Last körperlich spürt. 
# Er soll das so lange tun, bis er die Last nicht mehr ertragen kann und er darf sie erst dann ablegen, wenn es absolut nicht mehr erträglich ist. 
# Der gewählte Gegenstand sollte vorher in einem kleinen "Ritual" mit Bedeutung verbunden/aufgeladen werden (nicht empfehlenswert bei Leuten mit Rückenproblemen!).

!Variation
Die Übung kann auch im Rahmen einer Coachingsitzung angewandt werden. Der Coachee soll dann den schweren Gegenstand solange aufrechtstehend halten, wie es ihm erträglich ist und darf ihn erst dann absetzen. Die Übung lässt sich gut mit entsprechenden [[Bodenankern|Aufstellung mit Bodenankern]] verknüpfen.

!Debriefing

!See also
* [[Abschied mit Kieselsteinen]]
* [[Das Bein muss ab!]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline|http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Ent-Lastung+mit+Symbol+%28D.Fritzsche%29]]
<data>{"abstract":"Wenn Sie für ein Problem mehrere Lösungen haben, können Ihnen gewichtete Kriterien helfen, eine Vorentscheidung zu treffen. Hier finden Sie ein ~Excel-Formular, das Ihnen die Berechnung abnimmt.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.ocw.cn/NR/rdonlyres/Civil-and-Environmental-Engineering/1-012Spring2002/E801E4BA-572A-47D6-A16E-9D68B8660450/0/scoring_matrix.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Entscheidungsmatrix","abstract") </script>

!Entscheidungsmatrix
Manchmal hat man die Qual der Wahl: Man hat zwei oder mehr Möglichkeiten, sich in einer konkreten Situation zu entscheiden, aber welche ist die richtige? Oder besser: Welche ist die für ein Ausgangsproblem geeignetste? Eine Möglichkeit, hier ein wenig Klarheit zu schaffen, ist die  [[Bewertung]]  und Gewichtung der Alternativen.
Zunächst führen Sie in einer Tabelle die Kriterien auf, die Sie zur  [[Bewertung]]  der Alternativen heranziehen möchten.

Beispiel: Sie wissen nicht so recht, wohin es diesmal in Urlaub gehen soll. Mögliche Kriterien sind: Erholung, kulturelle Attraktionen, Unterhaltung, Wetter, Natur ....

Wenn die Kriterien feststehen, vergleichen Sie diese paarweise, und zwar jedes mit jedem. Sie geben jeweils demjenigen eines Paares, das Ihnen wichtiger ist, eine 1. Die aufaddierten Zahlen stellen das Gewicht des Kriteriums dar.

Im nächsten Schritt schreiben Sie Ihre Alternativen auf (Skandinavien, Sizilien, Schwarzwald...) und wenden nun Ihre Kriterien auf die Alternativen an. Verteilen Sie dabei Werte von 1 bis 10, je nachdem, welchen Wert Sie einem Kriterium geben wollen (Skandinavien erhält bei Kultur eine 2, bei Wetter eine 3, bei Natur eine 10 etc.).

Im letzten Schritt multplieren Sie je Kriterium Gewicht mit  [[Bewertung]]  und dividieren durch die Anzahl der Kriterien. Damit haben Sie einen Wert je Alternative, der einen deutlichen Hinweis bezüglich Ihrer Prioritäten darstellen sollte.


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing


!See also
* [[MS Excel Help]]
<<tiddler ShowTiddlerReferences>>
<<tiddlerList tags:"decision_theory">>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks (Excel):
* [[MS Excel Entscheidungsmatrix| http://ilias.tfh-wildau.de/~laborwww/downloads/Bewertungen_2006-05-23.xls]]
* [[MS Excel Entscheidungstabelle / Entscheidungsmatrix| http://sorger-online.de/download/Entscheidungsmatrix%20Teilnehmerversion%20031209.xls]]
* [[MS Excel Kriterien| http://www.mwonline.de/entscheidungsmatrix.xls]]
* [[MWonline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Entscheidungsmatrix+%28as%29.html]]
<data>{"abstract":"Zu Beginn eines Workshops stehen oft Befürchtungen, Ängste und Vorurteile bezüglich des ~Workshop-Themas im Raum. Hier hilft es, direkt am Anfang diese [[Latenzen abzufragen|Entzauberung von Latenzen]] und zu visualisieren."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.hs-hallein-neualm.salzburg.at/chemie09/zauberer.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Entzauberung von Latenzen","abstract") </script>

!Entzauberung von Latenzen
<script> return "<<tiddler [[Entzauberung von Latenzen##Overview]]>>" </script> 
Die //kritischen Punkte// bleiben dann während des gesamten Workshops (im Hintergrund) sichtbar. 
In der Abschlussphase des Workshops werden sie wieder in den Vordergrund geholt und hinsichtlich ihres Fortbestehens bzw. ihrer Wirksamkeit für die Zukunft bewertet.

!Anwendungsbereiche
Das Tool kommt in der Abschlussphase zum Einsatz. Es knüpft an den Einstieg in einen themenbezogenen Workshop an. Insbesondere eignet es sich für konfliktträchtige Themenstellungen, die in einem Workshop behandelt werden sollen ([[Konfliktmoderation|Konflikt]]).

Typische Anwendungsfelder sind Restrukturierungen, Zusammenlegung von Bereichen, Neukonzeptionierung von Wertschöpfungsketten/Prozessabläufen und insbesondere die Verbesserung der Zusammenarbeit zwischen Bereichen.

Generell kann diese Methodik dort angewandt werden, wo unterschiedliche Teilnehmererwartungen bzw. unterschiedliche Sichtweisen zur Themenstellung des Workshops erwartet werden.

!Zielsetzung und Nutzen
In [[Veränderungsprozessen|Organizational Change Model]] gilt es gerade zu Beginn, [[Widerständen|Change Resistance]], berechtigten Vorurteilen (auf Grund schlechter [[Erfahrungen|Erfahrung]]) oder schlicht (Interessens-)Konflikten eine Plattform zu bieten, auf der sie artikuliert werden können. Bleiben die Konfliktthemen latent, das heißt, werden sie nicht mehr oder weniger öffentlich thematisiert, können sie langfristig wie "schleichendes Gift" wirken. Man ignoriert sie zunächst, leugnet sie oder spielt sie herunter. Wenn sie langsam wirksam werden, kann man ihre destruktive Wirkung auf den Veränderungsprozess kaum mehr verhindern.

Das hier skizzierte Tool dient vorwiegend dem Bewusstwerden und Thematisieren offensichtlicher, aber auch unterschwelliger Konflikte und daraus resultierender [[Widerstände|Change Resistance]].

Die Teilnehmer können zu Beginn des Workshops ihre Bedenken und ihre Einschätzungen zu etwaigen Konfliktpotenzialen äußern. Dies versetzt sie in die Lage, mögliches "vermintes Gelände" vorsichtiger und wachsamer zu betreten. Erst indem potenzielle Konfliktlinien sichtbar thematisiert werden, werden die Grenzen des Machbaren mit Blick auf die Themenstellung und in Bezug auf die notwendigen Handlungs-/Erarbeitungsfelder deutlich. Mit der Veröffentlichung von Konfliktlinien wird die "Macht des Latenten" eingedämmt. 

!Objectives
* Konfliktmoderation
* Restrukturierungen, Zusammenlegung von Bereichen, Neukonzeptionierung von Wertschöpfungsketten / Prozessabläufen und insbesondere die Verbesserung der Zusammenarbeit zwischen Bereichen.
* unterschiedliche Teilnehmererwartungen bzw. unterschiedliche Sichtweisen zur Themenstellung eines Workshops.

!Timing
1,5h

!Audience
Group / Individual


!Materials
* 

!Procedure
siehe Literaturangabe

!Debriefing

!Quelle
[[Arnim Rohm: Change-Tools. Erfahrene Prozessberater präsentieren wirksame Workshop-Interventionen. managerSeminare GmbH, 2006.| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FChange-Tools-Erfahrene-Prozessberater-pr%25C3%25A4sentieren-Workshop-Interventionen%2Fdp%2F3936075395%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214936596%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Moderation]<<tiddlerList tags:"moderation,-newTemplate" header:"Übungen Moderation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://www.managerseminare.de/dod?uD=163908&mecL=UmFuZG9tSVYCDVSnCQfnlMjFEnZxkmpm
<data>{"abstract":"[[Erfolge]], Menschen wissen viel mehr über die [[Lösung von Problemen|Problemlösung]] als sie selbst es für möglich halten — eine Grundannahme der [[lösungsorientierten Ansätze|Lösungsorientierte Fragen]]. Mit dieser Übung wird dies den Seminarteilnehmern bewusst."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.literatur-kreis.de/assets/images/erfolg3.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Erfolge","abstract") </script>

!Erfolge
<script> return "<<tiddler [[Erfolge##Overview]]>>" </script>
Das gilt auch für den Umgang mit [[Konflikten|Konflikt]]. Diese haben leider die unangenehme Eigenschaft, dass vor allem diejenigen Konflikte im Gedächtnis bleiben, die eskalierten und nicht gelöst wurden. Das bleibt uns dann als eine Art "[[Versagen|Archäologie des Scheiterns]]" in Erinnerung.
Diese Übung hilft den Teilnehmern z.B. eines [[Konfliktworkshops|Konflikt]], aber ebenso auch eines ~Stressmanagement-Seminars, eines Kommunikationstrainings etc., sich ihrer Erfolge und damit ihrer Fähigkeiten bewusst zu werden.

!Objectives
* Bewußtwerdung von [[Erfolgen|Erfolge]] als [[Problemlösung]].

!Timing
20min-30min

!Audience
Group; bis zu 25 Teilnehmern. 


!Materials
* Flipchart

!Procedure
# Die Teilnehmer werden in kleine [[Teams|Team]] von bis zu fünf Teilnehmern aufgeteilt. For pairing use [[Gruppenpuzzle]] or [[Hör gut hin!]].
# Dann werden alle gebeten, sich an die Zeit zu erinnern, als sich ein [[Konflikt]] andeutete, aber am Ende doch nichts passierte. Irgendetwas geschah, was den Konflikt verhinderte und sogar für alle positiv enden ließ. Die Kleingruppen versuchen, solche Situation zu erinnern und diskutieren sie.
# Anschließend bittet der Trainer, Freiwillige, solche Erfolgsgeschichten zu erzählen. Dann stellt der Trainer die Frage: //"Welche besonderen Stärken haben es Ihnen ermöglicht, in dieser Situation ein gutes Ergebnis zu erzielen?"//
# Die Antworten werden am Flipchart in Stichworten festgehalten. Dies wiederholt der Trainer mit mehreren Freiwilligen, am Ende hat er am Flip eine Liste von Verhaltensweisen, die genau diejenigen sind, die man braucht, um Konflikte zu lösen, z.B.: Zuhören, einfühlen, objektiv bleiben, verstehen…

!Debriefing
Auf dem Flip steht eine Liste von Verhaltensweisen, die genau diejenigen sind, die man braucht, um Konflikte zu lösen, z.B.: Zuhören, einfühlen, objektiv bleiben, verstehen…
Damit ist genau das belegt, was der Trainer zu Beginn des Seminars behauptet hat: Jeder trägt die Fähigkeiten in sich, Konflikte friedlich zu lösen. Mit der entstandenen Liste kann er dann weiter arbeiten.


!Quelle
Barry Winbolt, [[Peter Röhrig: Solution Tools. Die 60 besten sofort einsetzbaren Workshop-Interventionen mit dem Solution-Focus, Managerseminare Verlag, 2008| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FSolution-Tools-einsetzbaren-Workshop-Interventionen-Solution-Focus%2Fdp%2F3936075735%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1219099547%26sr%3D8-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]], S. 43-49.


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.schulen.wien.at/schulen/913022/motivation1-Dateien/images/motivation_erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.dpast.de/erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.basic-skills.eu/images/schuelerportal/Erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] 40% 40% title http://www.sibi.honnef.de/ueberdassibi/service/images/erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://de.dreamstime.com/erfolg--thumb2207270.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.hochplus.at/web/images/stories/erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.blueprint-for-your-databasemarketing.at/images/bilder/erfolg.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://blog.harald-dvorak.at/wp-content/uploads/2008/02/char00k.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.jobhunter.de/bilder/erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://t3.gstatic.com/images?q=tbn:XVGX8rYU_TyAiM:http://www.code-mitte.de/content/images/leistungen_erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] 40% 40% title http://www.erfolg321.de/images/kunde/Erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.successpedia.de/images/erfolg-saeulen.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://berufsverband-gibt-perspektiven.de/images/erfolg2.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.your-outdoor.de/Bilder/Erfolg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.chlosta-consult.de/Bilder/Bilderpool/schwerpunkte/Gross/Erfolg-pi-x-el-x87010.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.unternehmer-scouts.de/Images/imgErfolg.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.schlank-sein-muttenz.ch/media/Erfolg.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Erfolge+%28jt%29]]
<data>{"abstract":"[[Erwartungsplakate]], die [[Streitparteien|Konflikt]] schreiben auf Moderationswänden ihre Erwartungen und Befürchtungen in einem stummen Dialog auf. Alle können das bereits Geschriebene ergänzen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.new-video.de/co/groserwa.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Erwartungsplakate","abstract") </script>

!Erwartungsplakate
<script> return "<<tiddler [[Erwartungsplakate##Overview]]>>" </script>

!Objectives
* Konfliktlösung

!Timing
20min

!Audience
Group

!Materials
* 4 vorbereitete Moderationswände

!Procedure
Der [[Mediator|Mediation]] bittet die Teilnehmer auf drei bis vier vorbereiteten Moderationswänden unter verschiedenen Überschriften ihre Gedanken und Gefühle zu notieren. Mögliche Überschriften sind:

{{indent{
//Bis gerade eben habe ich … gemacht.
Mich beschäftigt gerade …
Ich erwarte von heute …
Am liebsten würde ich jetzt …
Mir geht es …
Das soll hier nicht passieren ...//
}}}

Dabei sprechen die [[Konfliktparteien|Konflikt]] nicht miteinander, sondern bearbeiten die Aufgabe still. Sie können hinter dem Geschriebenen ihren Namen schreiben oder ihre Aussage anonym vornehmen. Sie müssen auch nicht jeden Satz ergänzen, können aber die Sätze anderer kommentieren.

Nach ca. 10 bis 15 Minuten wird der "stumme Dialog" beendet. Die Teilnehmer erhalten noch einige Minuten, um alle Beiträge zu lesen und ggfs. Verständnisfragen zu stellen.

!Debriefing
Es besteht ein gewisses Risiko, dass der [[Konflikt]] noch angeheizt wird und erste Konflikte schriftlich ausgetragen werden. Daher sollte bei hoch eskalierten Konflikten nicht zu Kommentaren zu anderen Sätzen aufgefordert werden. Wichtig ist auch, die Freiwilligkeit zu betonen.

Der Nutzen der Einstiegsübung besteht darin, dass die Teilnehmer "ankommen" können. Jede Streitpartei kann sich offen äußern, ohne sich selbst zu stark zu exponieren. Das Lesen der anderen Kommentare gibt eine erste Orientierung und damit Sicherheit für den Mediationsprozess.

!Quelle
[[Bähner, Christian/Oboth, Monika/Schmidt, Jörg: Praxisbox Konfliktklärung in Teams und Gruppen. Praktische Anleitung und Methoden zur Mediation in Gruppen. Junfermann, 2008.| http://www.amazon.de/gp/product/3873876795?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3873876795]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Erwartungsplakate+%28baehner%29]]
<data>{"abstract":"Einen neuen Zugang zu einem Problem und damit Ansätze zur Lösung verspricht dieses Vorgehen, das auch in Gruppen sinnvoll eingesetzt werden kann.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.spiegel.de/img/0,1020,860924,00.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Erwecken Sie Ihre Intuition zum Leben","abstract") </script>

!Erwecken Sie Ihre Intuition zum Leben
Diese Übung ist nützlich, wenn Sie einen neuen Zugang zu einem Problem suchen. Sie ist einsetzbar in Gruppen, vorher jedoch beschäftigt sich jeder zuerst einmal allein nach folgendem Muster: 
!Stufe 1
Denken Sie an eine Frage oder eine Situation auf die Sie eine Antwort haben möchten.
!Stufe 2
Auf einem Blatt mit vier Spalten notieren Sie hinter der jeweiligen Nummer
# (ein Gegenstand im Raum, den ich mag)
# (ein Gegenstand im Raum, den ich nicht mag oder etwas mit dem ich unzufrieden bin)
# (Etwas Neues in meiner Wohnung oder an meinem Arbeitsplatz)
# (Ein Tier, das mir gerade in den Sinn kommt)

!Hintergrund: 
# repräsentiert einen Überblick, was Sie ändern wollen oder was passieren sollte
# zeigt mögliche Blockierungen an. Welche Formen von Blockaden werden durch den Gegenstand sichtbar?
# zeigt einen möglichen Lösungsansatz. Überlegen Sie, wie dieser Gegenstand in Ihr Haus (an Ihren Arbeitsplatz) gelangt ist.
# Das Tier repräsentiert einen neuen Verhaltensstil, der nützlich ist, um das angestrebte Ziel zu erreichen.
Nun widmen Sie sich der Frage: Was und wie tragen diese vier Gegenstände zur Lösung Ihres Problems bei? Erkennen Sie den Nutzen?

!Aufgabe:
Diskutieren Sie die Fragen in einer Dreiergruppe und schreiben Sie Ihre Ergebnisse stichwortartig mit.
([[MWonline|http://mwonline.de/db/topics/themenentry.php3?to_parebene=Ideenfabrik&db=3]] zur Verfügung gestellt von MWonline Partner Frank-Lothar Köpcke, MWonline-Partner creaktiv)


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline|http://mwonline.de/online/themen/3/Ideenfabrik/Ideenfabrik.html]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Example.svg/600px-Example.svg.png>>
<<showtoc>>
!Overview
The Agile game [[Example Please!]] helps to prompt and establish an understanding how the values of Agile will and should impact a particular group or organization. The exercise is a complement to describing the general meaning and intent of these values which is still an important conversation. The intent here is to create understanding and self discovery for the participants in their environment. 

!Example Please!
<<tiddler [[Example Please!##Overview]]>>

!Objectives
* Establish an understanding how the values of Agile 
* Begin the establishment of a new set of norms since these are examples of behaviour that the team has defined
* Helps a new coach to better understand the challenges of a team and organization.
* Create understanding and self discovery for the participants in their environment. 

!Timing
20-40 mins

!Materials
* Paper, pens, whiteboard and markers

!Audience
Group

!Procedure
# Briefly review the four value statements from the [[Agile Manifesto]]: http://agilemanifesto.org/.
# One at a time for each statment ask the group to write down an example (60 -90 seconds). 
# In turn have everyone read their example aloud. 
# Ask the group to choose the example they like best, write it on the board (two is fine if there is a split or close call).  

!Debriefing
* This Agile Game helps to prompt and establish an understanding how the values of Agile will and should  impact a particular group or organization. The exercise is a complement to describing the general meaning and intent of these values which is still an important conversation. The intent intent here is to create understanding and self discovery for the participants in their environment.
* Begins the establishment of a new set of norms since these are examples of behaviour that the team has defined.
* For a coach new to an organization this can also help you better understand the challenges a team and organization will face culturally and systemically.

!Credits
Michael ~McCullough

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/08/example-please/
/***
|Name|ExcludeTimelinePlugin|
|Source|http://soloport.tiddlyspot.com/#ExcludeTimelinePlugin, http://groups.google.com/group/tiddlywiki/browse_thread/thread/c6ac266d68bb14d9|
|Version||
|Author|[[Soloport]]|
|License||
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description|[[ExcludeTimeline]] — excludes any tiddlers from timeline that have been tagged with ''excludeTimeline''|
***/
/*{{{*/
config.macros.timeline.handler = function(place,macroName,params)
{
	var field = params[0] ? params[0] : "modified";
	var tiddlers = store.reverseLookup("tags","excludeTimeline",false,field);
	var lastDay = "";
	var last = params[1] ? tiddlers.length-Math.min(tiddlers.length,parseInt(params[1])) : 0;
	for(var t=tiddlers.length-1; t>=last; t--)
		{
		var tiddler = tiddlers[t];
		var theDay = tiddler[field].convertToLocalYYYYMMDDHHMM().substr(0,8);
		if(theDay != lastDay)
			{
			var theDateList = document.createElement("ul");
			place.appendChild(theDateList);
			createTiddlyElement(theDateList,"li",null,"listTitle",tiddler[field].formatString(this.dateFormat));
			lastDay = theDay;
			}
		var theDateListItem = createTiddlyElement(theDateList,"li",null,"listLink");
		theDateListItem.appendChild(createTiddlyLink(place,tiddler.title,true));
		}
}
/*}}}*/
//synonym:// ''ESVP''
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.janaebower.com/wp-content/uploads/2009/05/j0430462.jpg>> 
<<showtoc>>
!Overview
[[Explorer, Shopper, Vacationer, Prisoner]]: each member annotates anonymously his/her impressions about doing the retrospective: he must express his/her general feeling using one of the following roles: ''Explorer'' (high interest, eager to discover), ''Shopper'' (interested, browsing and hoping to get at least one good idea) ''Vacationer'' (hecked out but glad not to be working), ''Prisoner'' (forced to come).

!Explorer, Shopper, Vacationer, Prisoner
<<tiddler [[Explorer, Shopper, Vacationer, Prisoner##Overview]]>>

!Objectives
* Set the Stage in a [[retrospective|Agile Retrospectives]]
* Get a feeling for participant's attitude about the meeting/retrospective.

!Timing
5min

!Audience
Group

!Materials
* index cards
* bowl

!Procedure
# Each member annotates anonymously his/her impressions about doing the retrospective: he must express his/her general feeling using one of the following roles: 
** ''Explorer'' (high interest)
** ''Shopper'' (interested but please, let us do as fast as possible…) 
** ''Vacationer'' (having nothing better to do right now), 
** ''Prisoner'' (my boss sent me).
# Collect the cards in the bowl.
# Get from the results a picture of the participant's attitude about the meeting/retrospective.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://bp2.blogger.com/_kPB534M7x6c/R193JoXPiZI/AAAAAAAAAAs/Vbg6hwaLLL8/s400/Motivation+Safety.png>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* 
/***
|Name|ExportTiddlersPlugin|
|Source|http://www.TiddlyTools.com/#ExportTiddlersPlugin|
|Documentation|http://www.TiddlyTools.com/#ExportTiddlersPluginInfo|
|Version|2.9.5|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|interactively select/export tiddlers to a separate file|
!!!!!Documentation
>see [[ExportTiddlersPluginInfo]]
!!!!!Inline control panel (live):
><<exportTiddlers inline>>
!!!!!Revisions
<<<
2010.02.25 2.9.5 added merge checkbox option and improved 'merge' status message
|please see [[ExportTiddlersPluginInfo]] for additional revision details|
2005.10.09 0.0.0 development started
<<<
!!!!!Code
***/
//{{{
// version
version.extensions.ExportTiddlersPlugin= {major: 2, minor: 9, revision: 5, date: new Date(2010,2,25)};

// default shadow definition
config.shadowTiddlers.ExportTiddlers='<<exportTiddlers inline>>';

// add 'export' backstage task (following built-in import task)
if (config.tasks) { // TW2.2 or above
	config.tasks.exportTask = {
		text:'export',
		tooltip:'Export selected tiddlers to another file',
		content:'<<exportTiddlers inline>>'
	}
	config.backstageTasks.splice(config.backstageTasks.indexOf('importTask')+1,0,'exportTask');
}

config.macros.exportTiddlers = {
	$: function(id) { return document.getElementById(id); }, // abbreviation
	label: 'export tiddlers',
	prompt: 'Copy selected tiddlers to an export document',
	okmsg: '%0 tiddler%1 written to %2',
	failmsg: 'An error occurred while creating %1',
	overwriteprompt: '%0\ncontains %1 tiddler%2 that will be discarded or replaced',
	mergestatus: '%0 tiddler%1 added, %2 tiddler%3 updated, %4 tiddler%5 unchanged',
	statusmsg: '%0 tiddler%1 - %2 selected for export',
	newdefault: 'export.html',
	datetimefmt: '0MM/0DD/YYYY 0hh:0mm:0ss',  // for 'filter date/time' edit fields
	type_TW: "tw", type_PS: "ps", type_TX: "tx", type_CS: "cs", type_NF: "nf", // file type tokens
	type_map: { // maps type param to token values
		tiddlywiki:"tw", tw:"tw", wiki: "tw",
		purestore: "ps", ps:"ps", store:"ps",
		plaintext: "tx", tx:"tx", text: "tx",
		comma:     "cs", cs:"cs", csv:  "cs",
		newsfeed:  "nf", nf:"nf", xml:  "nf", rss:"nf"
	},
	handler: function(place,macroName,params) {
		if (params[0]!='inline')
			{ createTiddlyButton(place,this.label,this.prompt,this.togglePanel); return; }
		var panel=this.createPanel(place);
		panel.style.position='static';
		panel.style.display='block';
	},
	createPanel: function(place) {
		var panel=this.$('exportPanel');
		if (panel) { panel.parentNode.removeChild(panel); }
		setStylesheet(store.getTiddlerText('ExportTiddlersPlugin##css',''),'exportTiddlers');
		panel=createTiddlyElement(place,'span','exportPanel',null,null)
		panel.innerHTML=store.getTiddlerText('ExportTiddlersPlugin##html','');
		this.initFilter();
		this.refreshList(0);
		var fn=this.$('exportFilename');
		if (window.location.protocol=='file:' && !fn.value.length) {
			// get new target path/filename
			var newPath=getLocalPath(window.location.href);
			var slashpos=newPath.lastIndexOf('/'); if (slashpos==-1) slashpos=newPath.lastIndexOf('\\'); 
			if (slashpos!=-1) newPath=newPath.substr(0,slashpos+1); // trim filename
			fn.value=newPath+this.newdefault;
		}
		return panel;
	},
	togglePanel: function(e) { var e=e||window.event;
		var cme=config.macros.exportTiddlers; // abbrev
		var parent=resolveTarget(e).parentNode;
		var panel=cme.$('exportPanel');
		if (panel==undefined || panel.parentNode!=parent)
			panel=cme.createPanel(parent);
		var isOpen=panel.style.display=='block';
		if(config.options.chkAnimate)
			anim.startAnimating(new Slider(panel,!isOpen,e.shiftKey || e.altKey,'none'));
		else
			panel.style.display=isOpen?'none':'block' ;
		if (panel.style.display!='none') {
			cme.refreshList(0);
			cme.$('exportFilename').focus(); 
			cme.$('exportFilename').select();
		}
		e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); return(false);
	},
	process: function(which) { // process panel control interactions
		var theList=this.$('exportList'); if (!theList) return false;
		var count = 0;
		var total = store.getTiddlers('title').length;
		switch (which.id) {
			case 'exportFilter':
				count=this.filterExportList();
				var panel=this.$('exportFilterPanel');
				if (count==-1) { panel.style.display='block'; break; }
				this.$('exportStart').disabled=(count==0);
				this.$('exportDelete').disabled=(count==0);
				this.displayStatus(count,total);
				if (count==0) { alert('No tiddlers were selected'); panel.style.display='block'; }
				break;
			case 'exportStart':
				this.go();
				break;
			case 'exportDelete':
				this.deleteTiddlers();
				break;
			case 'exportHideFilter':
			case 'exportToggleFilter':
				var panel=this.$('exportFilterPanel')
				panel.style.display=(panel.style.display=='block')?'none':'block';
				break;
			case 'exportSelectChanges':
				var lastmod=new Date(document.lastModified);
				for (var t = 0; t < theList.options.length; t++) {
					if (theList.options[t].value=='') continue;
					var tiddler=store.getTiddler(theList.options[t].value); if (!tiddler) continue;
					theList.options[t].selected=(tiddler.modified>lastmod);
					count += (tiddler.modified>lastmod)?1:0;
				}
				this.$('exportStart').disabled=(count==0);
				this.$('exportDelete').disabled=(count==0);
				this.displayStatus(count,total);
				if (count==0) alert('There are no unsaved changes');
				break;
			case 'exportSelectAll':
				for (var t = 0; t < theList.options.length; t++) {
					if (theList.options[t].value=='') continue;
					theList.options[t].selected=true;
					count += 1;
				}
				this.$('exportStart').disabled=(count==0);
				this.$('exportDelete').disabled=(count==0);
				this.displayStatus(count,count);
				break;
			case 'exportSelectOpened':
				for (var t=0; t<theList.options.length; t++) theList.options[t].selected=false;
				var tiddlerDisplay=this.$('tiddlerDisplay');
				for (var t=0; t<tiddlerDisplay.childNodes.length;t++) {
					var tiddler=tiddlerDisplay.childNodes[t].id.substr(7);
					for (var i=0; i<theList.options.length; i++) {
						if (theList.options[i].value!=tiddler) continue;
						theList.options[i].selected=true; count++; break;
					}
				}
				this.$('exportStart').disabled=(count==0);
				this.$('exportDelete').disabled=(count==0);
				this.displayStatus(count,total);
				if (count==0) alert('There are no tiddlers currently opened');
				break;
			case 'exportSelectRelated':
				// recursively build list of related tiddlers
				function getRelatedTiddlers(tid,tids) {
					var t=store.getTiddler(tid); if (!t || tids.contains(tid)) return tids;
					tids.push(t.title);
					if (!t.linksUpdated) t.changed();
					for (var i=0; i<t.links.length; i++)
						if (t.links[i]!=tid) tids=getRelatedTiddlers(t.links[i],tids);
					return tids;
				}
				// for all currently selected tiddlers, gather up the related tiddlers (including self) and select them as well
				var tids=[];
				for (var i=0; i<theList.options.length; i++)
					if (theList.options[i].selected) tids=getRelatedTiddlers(theList.options[i].value,tids);
				// select related tiddlers (includes original selected tiddlers)
				for (var i=0; i<theList.options.length; i++)
					theList.options[i].selected=tids.contains(theList.options[i].value);
				this.displayStatus(tids.length,total);
				break;
			case 'exportListSmaller':	// decrease current listbox size
				var min=5;
				theList.size-=(theList.size>min)?1:0;
				break;
			case 'exportListLarger':	// increase current listbox size
				var max=(theList.options.length>25)?theList.options.length:25;
				theList.size+=(theList.size<max)?1:0;
				break;
			case 'exportClose':
				this.$('exportPanel').style.display='none';
				break;
		}
		return false;
	},
	displayStatus: function(count,total) {
		var txt=this.statusmsg.format([total,total!=1?'s':'',!count?'none':count==total?'all':count]);
		clearMessage();	displayMessage(txt);
		return txt;
	},
	refreshList: function(selectedIndex) {
		var theList = this.$('exportList'); if (!theList) return;
		// get the sort order
		var sort;
		if (!selectedIndex)   selectedIndex=0;
		if (selectedIndex==0) sort='modified';
		if (selectedIndex==1) sort='title';
		if (selectedIndex==2) sort='modified';
		if (selectedIndex==3) sort='modifier';
		if (selectedIndex==4) sort='tags';

		// unselect headings and count number of tiddlers actually selected
		var count=0;
		for (var t=5; t < theList.options.length; t++) {
			if (!theList.options[t].selected) continue;
			if (theList.options[t].value!='')
				count++;
			else { // if heading is selected, deselect it, and then select and count all in section
				theList.options[t].selected=false;
				for ( t++; t<theList.options.length && theList.options[t].value!=''; t++) {
					theList.options[t].selected=true;
					count++;
				}
			}
		}

		// disable 'export' and 'delete' buttons if no tiddlers selected
		this.$('exportStart').disabled=(count==0);
		this.$('exportDelete').disabled=(count==0);

		// show selection count
		var tiddlers = store.getTiddlers('title');
		if (theList.options.length) this.displayStatus(count,tiddlers.length);

		// if a [command] item, reload list… otherwise, no further refresh needed
		if (selectedIndex>4) return;

		// clear current list contents
		while (theList.length > 0) { theList.options[0] = null; }
		// add heading and control items to list
		var i=0;
		var indent=String.fromCharCode(160)+String.fromCharCode(160);
		theList.options[i++]=
			new Option(tiddlers.length+' tiddlers in document', '',false,false);
		theList.options[i++]=
			new Option(((sort=='title'   )?'>':indent)+' [by title]', '',false,false);
		theList.options[i++]=
			new Option(((sort=='modified')?'>':indent)+' [by date]', '',false,false);
		theList.options[i++]=
			new Option(((sort=='modifier')?'>':indent)+' [by author]', '',false,false);
		theList.options[i++]=
			new Option(((sort=='tags'    )?'>':indent)+' [by tags]', '',false,false);

		// output the tiddler list
		switch(sort) {
			case 'title':
				for(var t = 0; t < tiddlers.length; t++)
					theList.options[i++] = new Option(tiddlers[t].title,tiddlers[t].title,false,false);
				break;
			case 'modifier':
			case 'modified':
				var tiddlers = store.getTiddlers(sort);
				// sort descending for newest date first
				tiddlers.sort(function (a,b) {if(a[sort] == b[sort]) return(0); else return (a[sort] > b[sort]) ? -1 : +1; });
				var lastSection = '';
				for(var t = 0; t < tiddlers.length; t++) {
					var tiddler = tiddlers[t];
					var theSection = '';
					if (sort=='modified') theSection=tiddler.modified.toLocaleDateString();
					if (sort=='modifier') theSection=tiddler.modifier;
					if (theSection != lastSection) {
						theList.options[i++] = new Option(theSection,'',false,false);
						lastSection = theSection;
					}
					theList.options[i++] = new Option(indent+indent+tiddler.title,tiddler.title,false,false);
				}
				break;
			case 'tags':
				var theTitles = {}; // all tiddler titles, hash indexed by tag value
				var theTags = new Array();
				for(var t=0; t<tiddlers.length; t++) {
					var title=tiddlers[t].title;
					var tags=tiddlers[t].tags;
					if (!tags || !tags.length) {
						if (theTitles['untagged']==undefined) { theTags.push('untagged'); theTitles['untagged']=new Array(); }
						theTitles['untagged'].push(title);
					}
					else for(var s=0; s<tags.length; s++) {
						if (theTitles[tags[s]]==undefined) { theTags.push(tags[s]); theTitles[tags[s]]=new Array(); }
						theTitles[tags[s]].push(title);
					}
				}
				theTags.sort();
				for(var tagindex=0; tagindex<theTags.length; tagindex++) {
					var theTag=theTags[tagindex];
					theList.options[i++]=new Option(theTag,'',false,false);
					for(var t=0; t<theTitles[theTag].length; t++)
						theList.options[i++]=new Option(indent+indent+theTitles[theTag][t],theTitles[theTag][t],false,false);
				}
				break;
			}
		theList.selectedIndex=selectedIndex; // select current control item
		this.$('exportStart').disabled=true;
		this.$('exportDelete').disabled=true;
		this.displayStatus(0,tiddlers.length);
	},
	askForFilename: function(here) {
		var msg=here.title; // use tooltip as dialog box message
		var path=getLocalPath(document.location.href);
		var slashpos=path.lastIndexOf('/'); if (slashpos==-1) slashpos=path.lastIndexOf('\\'); 
		if (slashpos!=-1) path = path.substr(0,slashpos+1); // remove filename from path, leave the trailing slash
		var filetype=this.$('exportFormat').value.toLowerCase();
		var defext='html';
		if (filetype==this.type_TX) defext='txt';
		if (filetype==this.type_CS) defext='csv';
		if (filetype==this.type_NF) defext='xml';
		var file=this.newdefault.replace(/html$/,defext);
		var result='';
		if(window.Components) { // moz
			try {
				netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
				var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
				var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
				picker.init(window, msg, nsIFilePicker.modeSave);
				var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
				thispath.initWithPath(path);
				picker.displayDirectory=thispath;
				picker.defaultExtension=defext;
				picker.defaultString=file;
				picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
				if (picker.show()!=nsIFilePicker.returnCancel) var result=picker.file.persistentDescriptor;
			}
			catch(e) { alert('error during local file access: '+e.toString()) }
		}
		else { // IE
			try { // XPSP2 IE only
				var s = new ActiveXObject('UserAccounts.CommonDialog');
				s.Filter='All files|*.*|Text files|*.txt|HTML files|*.htm;*.html|XML files|*.xml|';
				s.FilterIndex=defext=='txt'?2:'html'?3:'xml'?4:1;
				s.InitialDir=path;
				s.FileName=file;
				if (s.showOpen()) var result=s.FileName;
			}
			catch(e) {  // fallback
				var result=prompt(msg,path+file);
			}
		}
		return result;
	},
	initFilter: function() {
		this.$('exportFilterStart').checked=false; this.$('exportStartDate').value='';
		this.$('exportFilterEnd').checked=false;  this.$('exportEndDate').value='';
		this.$('exportFilterTags').checked=false; this.$('exportTags').value='';
		this.$('exportFilterText').checked=false; this.$('exportText').value='';
		this.showFilterFields();
	},
	showFilterFields: function(which) {
		var show=this.$('exportFilterStart').checked;
		this.$('exportFilterStartBy').style.display=show?'block':'none';
		this.$('exportStartDate').style.display=show?'block':'none';
		var val=this.$('exportFilterStartBy').value;
		this.$('exportStartDate').value
			=this.getFilterDate(val,'exportStartDate').formatString(this.datetimefmt);
		if (which && (which.id=='exportFilterStartBy') && (val=='other'))
			this.$('exportStartDate').focus();

		var show=this.$('exportFilterEnd').checked;
		this.$('exportFilterEndBy').style.display=show?'block':'none';
		this.$('exportEndDate').style.display=show?'block':'none';
		var val=this.$('exportFilterEndBy').value;
		this.$('exportEndDate').value
			=this.getFilterDate(val,'exportEndDate').formatString(this.datetimefmt);
		 if (which && (which.id=='exportFilterEndBy') && (val=='other'))
			this.$('exportEndDate').focus();

		var show=this.$('exportFilterTags').checked;
		this.$('exportTags').style.display=show?'block':'none';

		var show=this.$('exportFilterText').checked;
		this.$('exportText').style.display=show?'block':'none';
	},
	getFilterDate: function(val,id) {
		var result=0;
		switch (val) {
			case 'file':
				result=new Date(document.lastModified);
				break;
			case 'other':
				result=new Date(this.$(id).value);
				break;
			default: // today=0, yesterday=1, one week=7, two weeks=14, a month=31
				var now=new Date(); var tz=now.getTimezoneOffset()*60000; now-=tz;
				var oneday=86400000;
				if (id=='exportStartDate')
					result=new Date((Math.floor(now/oneday)-val)*oneday+tz);
				else
					result=new Date((Math.floor(now/oneday)-val+1)*oneday+tz-1);
				break;
		}
		return result;
	},
	filterExportList: function() {
		var theList  = this.$('exportList'); if (!theList) return -1;
		var filterStart=this.$('exportFilterStart').checked;
		var val=this.$('exportFilterStartBy').value;
		var startDate=config.macros.exportTiddlers.getFilterDate(val,'exportStartDate');
		var filterEnd=this.$('exportFilterEnd').checked;
		var val=this.$('exportFilterEndBy').value;
		var endDate=config.macros.exportTiddlers.getFilterDate(val,'exportEndDate');
		var filterTags=this.$('exportFilterTags').checked;
		var tags=this.$('exportTags').value;
		var filterText=this.$('exportFilterText').checked;
		var text=this.$('exportText').value;
		if (!(filterStart||filterEnd||filterTags||filterText)) {
			alert('Please set the selection filter');
			this.$('exportFilterPanel').style.display='block';
			return -1;
		}
		if (filterStart&&filterEnd&&(startDate>endDate)) {
			var msg='starting date/time:\n'
			msg+=startDate.toLocaleString()+'\n';
			msg+='is later than ending date/time:\n'
			msg+=endDate.toLocaleString()
			alert(msg);
			return -1;
		}
		// if filter by tags, get list of matching tiddlers
		// use getMatchingTiddlers() (if MatchTagsPlugin is installed) for full boolean expressions
		// otherwise use getTaggedTiddlers() for simple tag matching
		if (filterTags) {
			var fn=store.getMatchingTiddlers||store.getTaggedTiddlers;
			var t=fn.apply(store,[tags]);
			var tagged=[];
			for (var i=0; i<t.length; i++) tagged.push(t[i].title);
		}
		// scan list and select tiddlers that match all applicable criteria
		var total=0;
		var count=0;
		for (var i=0; i<theList.options.length; i++) {
			// get item, skip non-tiddler list items (section headings)
			var opt=theList.options[i]; if (opt.value=='') continue;
			// get tiddler, skip missing tiddlers (this should NOT happen)
			var tiddler=store.getTiddler(opt.value); if (!tiddler) continue; 
			var sel=true;
			if ( (filterStart && tiddler.modified<startDate)
			|| (filterEnd && tiddler.modified>endDate)
			|| (filterTags && !tagged.contains(tiddler.title))
			|| (filterText && (tiddler.text.indexOf(text)==-1) && (tiddler.title.indexOf(text)==-1)))
				sel=false;
			opt.selected=sel;
			count+=sel?1:0;
			total++;
		}
		return count;
	},
	deleteTiddlers: function() {
		var list=this.$('exportList'); if (!list) return;
		var tids=[];
		for (i=0;i<list.length;i++)
			if (list.options[i].selected && list.options[i].value.length)
				tids.push(list.options[i].value);
		if (!confirm('Are you sure you want to delete these tiddlers:\n\n'+tids.join(', '))) return;
		store.suspendNotifications();
		for (t=0;t<tids.length;t++) {
			var tid=store.getTiddler(tids[t]); if (!tid) continue;
			var msg="'"+tid.title+"' is tagged with 'systemConfig'.\n\n";
			msg+='Removing this tiddler may cause unexpected results.  Are you sure?'
			if (tid.tags.contains('systemConfig') && !confirm(msg)) continue;
			store.removeTiddler(tid.title);
			story.closeTiddler(tid.title);
		}
		store.resumeNotifications();
		alert(tids.length+' tiddlers deleted');
		this.refreshList(0); // reload listbox
		store.notifyAll(); // update page display
	},
	go: function() {
		if (window.location.protocol!='file:') // make sure we are local
			{ displayMessage(config.messages.notFileUrlError); return; }
		// get selected tidders, target filename, target type, and notes
		var list=this.$('exportList'); if (!list) return;
		var tids=[]; for (var i=0; i<list.options.length; i++) {
			var opt=list.options[i]; if (!opt.selected||!opt.value.length) continue;
			var tid=store.getTiddler(opt.value); if (!tid) continue;
			tids.push(tid);
		}
		if (!tids.length) return; // no tiddlers selected
		var target=this.$('exportFilename').value.trim();
		if (!target.length) {
			displayMessage('A local target path/filename is required',target);
			return;
		}
		var merge=this.$('exportMerge').checked;
		var filetype=this.$('exportFormat').value.toLowerCase();
		var notes=this.$('exportNotes').value.replace(/\n/g,'<br>');
		var total={val:0};
		var out=this.assembleFile(target,filetype,tids,notes,total,merge);
		if (!total.val) return; // cancelled file overwrite
		var link='file:///'+target.replace(/\\/g,'/');
		var samefile=link==decodeURIComponent(window.location.href);
		var p=getLocalPath(document.location.href);
		if (samefile) {
			if (config.options.chkSaveBackups) { var t=loadOriginal(p);if(t)saveBackup(p,t); }
			if (config.options.chkGenerateAnRssFeed && saveRss instanceof Function) saveRss(p);
		}
		var ok=saveFile(target,out);
		displayMessage((ok?this.okmsg:this.failmsg).format([total.val,total.val!=1?'s':'',target]),link);
	},
	plainTextHeader:
		 'Source:\n\t%0\n'
		+'Title:\n\t%1\n'
		+'Subtitle:\n\t%2\n'
		+'Created:\n\t%3 by %4\n'
		+'Application:\n\tTiddlyWiki %5 / %6 %7\n\n',
	plainTextTiddler:
		'- - - - - - - - - - - - - - -\n'
		+'|     title: %0\n'
		+'|   created: %1\n'
		+'|  modified: %2\n'
		+'| edited by: %3\n'
		+'|      tags: %4\n'
		+'- - - - - - - - - - - - - - -\n'
		+'%5\n',
	plainTextFooter:
		'',
	newsFeedHeader:
		 '<'+'?xml version="1.0"?'+'>\n'
		+'<rss version="2.0">\n'
		+'<channel>\n'
		+'<title>%1</title>\n'
		+'<link>%0</link>\n'
		+'<description>%2</description>\n'
		+'<language>en-us</language>\n'
		+'<copyright>Copyright '+(new Date().getFullYear())+' %4</copyright>\n'
		+'<pubDate>%3</pubDate>\n'
		+'<lastBuildDate>%3</lastBuildDate>\n'
		+'<docs>http://blogs.law.harvard.edu/tech/rss</docs>\n'
		+'<generator>TiddlyWiki %5 / %6 %7</generator>\n',
	newsFeedTiddler:
		'\n%0\n',
	newsFeedFooter:
		'</channel></rss>',
	pureStoreHeader:
		 '<html><body>'
		+'<style type="text/css">'
		+'	#storeArea {display:block;margin:1em;}'
		+'	#storeArea div {padding:0.5em;margin:1em;border:2px solid black;height:10em;overflow:auto;}'
		+'	#pureStoreHeading {width:100%;text-align:left;background-color:#eeeeee;padding:1em;}'
		+'</style>'
		+'<div id="pureStoreHeading">'
		+'	TiddlyWiki "PureStore" export file<br>'
		+'	Source'+': <b>%0</b><br>'
		+'	Title: <b>%1</b><br>'
		+'	Subtitle: <b>%2</b><br>'
		+'	Created: <b>%3</b> by <b>%4</b><br>'
		+'	TiddlyWiki %5 / %6 %7<br>'
		+'	Notes:<hr><pre>%8</pre>'
		+'</div>'
		+'<div id="storeArea">',
	pureStoreTiddler:
		'%0\n%1',
	pureStoreFooter:
		'</div><!--POST-BODY-START-->\n<!--POST-BODY-END--></body></html>',
	assembleFile: function(target,filetype,tids,notes,total,merge) {
		var revised='';
		var now = new Date().toLocaleString();
		var src=convertUnicodeToUTF8(document.location.href);
		var title = convertUnicodeToUTF8(wikifyPlain('SiteTitle').htmlEncode());
		var subtitle = convertUnicodeToUTF8(wikifyPlain('SiteSubtitle').htmlEncode());
		var user = convertUnicodeToUTF8(config.options.txtUserName.htmlEncode());
		var twver = version.major+'.'+version.minor+'.'+version.revision;
		var v=version.extensions.ExportTiddlersPlugin; var pver = v.major+'.'+v.minor+'.'+v.revision;
		var headerargs=[src,title,subtitle,now,user,twver,'ExportTiddlersPlugin',pver,notes];
		switch (filetype) {
			case this.type_TX: // plain text
				var header=this.plainTextHeader.format(headerargs);
				var footer=this.plainTextFooter;
				break;
			case this.type_CS: // comma-separated
				var fields={};
				for (var i=0; i<tids.length; i++) for (var f in tids[i].fields) fields[f]=f;
				var names=['title','created','modified','modifier','tags','text'];
				for (var f in fields) names.push(f);
				var header=names.join(',')+'\n';
				var footer='';
				break;
			case this.type_NF: // news feed (XML)
				headerargs[0]=store.getTiddlerText('SiteUrl','');
				var header=this.newsFeedHeader.format(headerargs);
				var footer=this.newsFeedFooter;
				break;
			case this.type_PS: // PureStore (no code)
				var header=this.pureStoreHeader.format(headerargs);
				var footer=this.pureStoreFooter;
				break;
			case this.type_TW: // full TiddlyWiki
			default:
				var currPath=getLocalPath(window.location.href);
				var original=loadFile(currPath);
				if (!original) { displayMessage(config.messages.cantSaveError); return; }
				var posDiv = locateStoreArea(original);
				if (!posDiv) { displayMessage(config.messages.invalidFileError.format([currPath])); return; }
				var header = original.substr(0,posDiv[0]+startSaveArea.length)+'\n';
				var footer = '\n'+original.substr(posDiv[1]);
				break;
		}
		var out=this.getData(target,filetype,tids,fields,merge);
		var revised = header+convertUnicodeToUTF8(out.join('\n'))+footer;
		// if full TW, insert page title and language attr, and reset all MARKUP blocks…
		if (filetype==this.type_TW) {
			var newSiteTitle=convertUnicodeToUTF8(getPageTitle()).htmlEncode();
			revised=revised.replaceChunk('<title'+'>','</title'+'>',' ' + newSiteTitle + ' ');
			revised=updateLanguageAttribute(revised);
			var titles=[]; for (var i=0; i<tids.length; i++) titles.push(tids[i].title);
			revised=updateMarkupBlock(revised,'PRE-HEAD',
				titles.contains('MarkupPreHead')? 'MarkupPreHead' :null);
			revised=updateMarkupBlock(revised,'POST-HEAD',
				titles.contains('MarkupPostHead')?'MarkupPostHead':null);
			revised=updateMarkupBlock(revised,'PRE-BODY',
				titles.contains('MarkupPreBody')? 'MarkupPreBody' :null);
			revised=updateMarkupBlock(revised,'POST-SCRIPT',
				titles.contains('MarkupPostBody')?'MarkupPostBody':null);
		}
		total.val=out.length;
		return revised;
	},
	getData: function(target,filetype,tids,fields,merge) {
		// output selected tiddlers and gather list of titles (for use with merge)
		var out=[]; var titles=[];
		var url=store.getTiddlerText('SiteUrl','');
		for (var i=0; i<tids.length; i++) {
			out.push(this.formatItem(store,filetype,tids[i],url,fields));
			titles.push(tids[i].title);
		}
		// if TW or PureStore format, ask to merge with existing tiddlers (if any)
		if (filetype==this.type_TW || filetype==this.type_PS) {
			var txt=loadFile(target);
			if (txt && txt.length) {
				var remoteStore=new TiddlyWiki();
				if (version.major+version.minor*.1+version.revision*.01<2.52) txt=convertUTF8ToUnicode(txt);
				if (remoteStore.importTiddlyWiki(txt)) {
					var existing=remoteStore.getTiddlers('title');
					var msg=this.overwriteprompt.format([target,existing.length,existing.length!=1?'s':'']);
					if (merge) {
						var added=titles.length; var updated=0; var kept=0;
						for (var i=0; i<existing.length; i++)
							if (titles.contains(existing[i].title)) {
								added--; updated++;
							} else {
								out.push(this.formatItem(remoteStore,filetype,existing[i],url));
								kept++;
							}
						displayMessage(this.mergestatus.format(
							[added,added!=1?'s':'',updated,updated!=1?'s':'',kept,kept!=1?'s':'',]));
					}
					else if (!confirm(msg)) out=[]; // empty the list = don't write file
				}
			}
		}
		return out;
	},
	formatItem: function(s,f,t,u,fields) {
		if (f==this.type_TW)
			var r=s.getSaver().externalizeTiddler(s,t);
		if (f==this.type_PS)
			var r=this.pureStoreTiddler.format([t.title,s.getSaver().externalizeTiddler(s,t)]);
		if (f==this.type_NF)
			var r=this.newsFeedTiddler.format([t.saveToRss(u)]);
		if (f==this.type_TX)
			var r=this.plainTextTiddler.format([t.title, t.created.toLocaleString(), t.modified.toLocaleString(),
				t.modifier, String.encodeTiddlyLinkList(t.tags), t.text]);
		if (f==this.type_CS) {
			function toCSV(t) { return '"'+t.replace(/"/g,'""')+'"'; } // always encode CSV
			var out=[ toCSV(t.title), toCSV(t.created.toLocaleString()), toCSV(t.modified.toLocaleString()),
				toCSV(t.modifier), toCSV(String.encodeTiddlyLinkList(t.tags)), toCSV(t.text) ];
			for (var f in fields) out.push(toCSV(t.fields[f]||''));
			var r=out.join(',');
		}
		return r||"";
	}
}
//}}}
/***
!!!Control panel CSS
//{{{
!css
#exportPanel {
	display: none; position:absolute; z-index:12; width:35em; right:105%; top:6em;
	background-color: #eee; color:#000; font-size: 8pt; line-height:110%;
	border:1px solid black; border-bottom-width: 3px; border-right-width: 3px;
	padding: 0.5em; margin:0em; -moz-border-radius:1em;-webkit-border-radius:1em;
}
#exportPanel a, #exportPanel td a { color:#009; display:inline; margin:0px; padding:1px; }
#exportPanel table {
	width:100%; border:0px; padding:0px; margin:0px;
	font-size:8pt; line-height:110%; background:transparent;
}
#exportPanel tr { border:0px;padding:0px;margin:0px; background:transparent; }
#exportPanel td { color:#000; border:0px;padding:0px;margin:0px; background:transparent; }
#exportPanel select { width:98%;margin:0px;font-size:8pt;line-height:110%;}
#exportPanel input  { width:98%;padding:0px;margin:0px;font-size:8pt;line-height:110%; }
#exportPanel textarea  { width:98%;padding:0px;margin:0px;overflow:auto;font-size:8pt; }
#exportPanel .box {
	border:1px solid black; padding:3px; margin-bottom:5px;
	background:#f8f8f8; -moz-border-radius:5px;-webkit-border-radius:5px; }
#exportPanel .topline { border-top:2px solid black; padding-top:3px; margin-bottom:5px; }
#exportPanel .rad { width:auto;border:0 }
#exportPanel .chk { width:auto;border:0 }
#exportPanel .btn { width:auto; }
#exportPanel .btn1 { width:98%; }
#exportPanel .btn2 { width:48%; }
#exportPanel .btn3 { width:32%; }
#exportPanel .btn4 { width:24%; }
#exportPanel .btn5 { width:19%; }
!end
//}}}
!!!Control panel HTML
//{{{
!html
<!-- target path/file  -->
<div>
<div style="float:right;padding-right:.5em">
<input type="checkbox" style="width:auto" id="exportMerge" CHECKED
	title="combine selected tiddlers with existing tiddlers (if any) in export file"> merge
</div>
export to:<br>
<input type="text" id="exportFilename" size=40 style="width:93%"><input 
	type="button" id="exportBrowse" value="..." title="select or enter a local folder/file..." style="width:5%" 
	onclick="var fn=config.macros.exportTiddlers.askForFilename(this); if (fn.length) this.previousSibling.value=fn; ">
</div>

<!-- output format -->
<div>
format:
<select id="exportFormat" size=1>
	<option value="TW">TiddlyWiki HTML document (includes core code)</option>
	<option value="PS">TiddlyWiki "PureStore" HTML file (tiddler data only)</option>
	<option value="TX">TiddlyWiki plain text TXT file (tiddler source listing)</option>
	<option value="CS">Comma-Separated Value (CSV) data file</option>
	<option value="NF">RSS NewsFeed XML file</option>
</select>
</div>

<!-- notes -->
<div>
notes:<br>
<textarea id="exportNotes" rows=3 cols=40 style="height:4em;margin-bottom:5px;" onfocus="this.select()"></textarea> 
</div>

<!-- list of tiddlers -->
<table><tr align="left"><td>
	select:
	<a href="JavaScript:;" id="exportSelectAll"
		onclick="return config.macros.exportTiddlers.process(this)" title="select all tiddlers">
		&nbsp;all&nbsp;</a>
	<a href="JavaScript:;" id="exportSelectChanges"
		onclick="return config.macros.exportTiddlers.process(this)" title="select tiddlers changed since last save">
		&nbsp;changes&nbsp;</a>
	<a href="JavaScript:;" id="exportSelectOpened"
		onclick="return config.macros.exportTiddlers.process(this)" title="select tiddlers currently being displayed">
		&nbsp;opened&nbsp;</a>
	<a href="JavaScript:;" id="exportSelectRelated"
		onclick="return config.macros.exportTiddlers.process(this)" title="select tiddlers related to the currently selected tiddlers">
		&nbsp;related&nbsp;</a>
	<a href="JavaScript:;" id="exportToggleFilter"
		onclick="return config.macros.exportTiddlers.process(this)" title="show/hide selection filter">
		&nbsp;filter&nbsp;</a>
</td><td align="right">
	<a href="JavaScript:;" id="exportListSmaller"
		onclick="return config.macros.exportTiddlers.process(this)" title="reduce list size">
		&nbsp;&#150;&nbsp;</a>
	<a href="JavaScript:;" id="exportListLarger"
		onclick="return config.macros.exportTiddlers.process(this)" title="increase list size">
		&nbsp;+&nbsp;</a>
</td></tr></table>
<select id="exportList" multiple size="10" style="margin-bottom:5px;"
	onchange="config.macros.exportTiddlers.refreshList(this.selectedIndex)">
</select><br>

<!-- selection filter -->
<div id="exportFilterPanel" style="display:none">
<table><tr align="left"><td>
	selection filter
</td><td align="right">
	<a href="JavaScript:;" id="exportHideFilter"
		onclick="return config.macros.exportTiddlers.process(this)" title="hide selection filter">hide</a>
</td></tr></table>
<div class="box">

<input type="checkbox" class="chk" id="exportFilterStart" value="1"
	onclick="config.macros.exportTiddlers.showFilterFields(this)"> starting date/time<br>
<table cellpadding="0" cellspacing="0"><tr valign="center"><td width="50%">
	<select size=1 id="exportFilterStartBy"
		onchange="config.macros.exportTiddlers.showFilterFields(this);">
		<option value="0">today</option>
		<option value="1">yesterday</option>
		<option value="7">a week ago</option>
		<option value="30">a month ago</option>
		<option value="file">file date</option>
		<option value="other">other (mm/dd/yyyy hh:mm)</option>
	</select>
</td><td width="50%">
	<input type="text" id="exportStartDate" onfocus="this.select()"
		onchange="config.macros.exportTiddlers.$('exportFilterStartBy').value='other';">
</td></tr></table>

<input type="checkbox" class="chk" id="exportFilterEnd" value="1"
	onclick="config.macros.exportTiddlers.showFilterFields(this)"> ending date/time<br>
<table cellpadding="0" cellspacing="0"><tr valign="center"><td width="50%">
	<select size=1 id="exportFilterEndBy"
		onchange="config.macros.exportTiddlers.showFilterFields(this);">
		<option value="0">today</option>
		<option value="1">yesterday</option>
		<option value="7">a week ago</option>
		<option value="30">a month ago</option>
		<option value="file">file date</option>
		<option value="other">other (mm/dd/yyyy hh:mm)</option>
	</select>
</td><td width="50%">
	<input type="text" id="exportEndDate" onfocus="this.select()"
		onchange="config.macros.exportTiddlers.$('exportFilterEndBy').value='other';">
</td></tr></table>

<input type="checkbox" class="chk" id=exportFilterTags value="1"
	onclick="config.macros.exportTiddlers.showFilterFields(this)"> match tags<br>
<input type="text" id="exportTags" onfocus="this.select()">

<input type="checkbox" class="chk" id=exportFilterText value="1"
	onclick="config.macros.exportTiddlers.showFilterFields(this)"> match titles/tiddler text<br>
<input type="text" id="exportText" onfocus="this.select()">

</div> <!--box-->
</div> <!--panel-->

<!-- action buttons -->
<div style="text-align:center">
<input type=button class="btn4" onclick="config.macros.exportTiddlers.process(this)"
	id="exportFilter" value="apply filter">
<input type=button class="btn4" onclick="config.macros.exportTiddlers.process(this)"
	id="exportStart" value="export tiddlers">
<input type=button class="btn4" onclick="config.macros.exportTiddlers.process(this)"
	id="exportDelete" value="delete tiddlers">
<input type=button class="btn4" onclick="config.macros.exportTiddlers.process(this)"
	id="exportClose" value="close">
</div><!--center-->
!end
//}}}
***/
 
/***
|Name|ExternalLinkPreviewPlugin|
|Source|http://tw.lewcid.org/sandbox/#ExternalLinkPreviewPlugin|
|Version||
|Author|[[SaqImtiaz]]|
|License||
|~CoreVersion|2.0+|
|Type|plugin|
|Requires||
|Overrides||
|Description|the websnapr preview script ported to TW.|
***/
//{{{
//  WebSnapr - Preview Bubble Javascript
//  Written by Juan Xavier Larrea
//  Adapted for TW by Saq Imtiaz
// requires [[this image|bg.png]]

function applyStyleString(obj,str) {
	if(document.all && !window.opera) {
		obj.style.setAttribute("cssText",str);
	} else {
		obj.setAttribute("style",str);
	}
}

// Point this variable to the correct location of the bg.png file
var bubbleImagePath = 'bg.png';

function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

function bindBubbles(e){
    lbActions=getElementsByClassName(document,"a","externalLink");
    for(i=0;i<lbActions.length;i++){
        addEvent(lbActions[i],"mouseover",attachBubble,false);
        addEvent(lbActions[i],"mouseout",detachBubble,false);
        lbActions[i].title = '';
        }
}

function attachBubble(_b){
    var _c;
    if(_b["srcElement"]){
        _c=_b["srcElement"];
    }else{
        _c=_b["target"];
    }
    if (_c.href == undefined){
	    _c=_c.parentNode;
     }
    var _d=_c.href;
    var _e=findPosX(_c) +5;
    var _f=findPosY(_c) +17;  
    var _10=document.createElement("div");
    document.getElementsByTagName("body")[0].appendChild(_10);
    _10.className="previewbubble";
    applyStyleString(_10,"text-align: center; z-index: 99999; position: absolute; top: "+_f+"px ; left: "+_e+"px ;  width: 240px; height: 190px; padding: 0; margin: 0;");
    if (config.browser.isIE)
        _10.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bubbleImagePath + "',sizingMethod='image')";
   else
       _10.style.background= "url("+ bubbleImagePath +") no-repeat";
   var img=document.createElement("img");
   _10.appendChild(img);

    applyStyleString(img,"padding-top: 0; padding-left: 0; padding-right: 0; padding-bottom: 0; margin-top: 27px; margin-left: 12px; margin-bottom: 0; margin-right: 0; border: 0");
    img.setAttribute("src","http://images.websnapr.com/?url="+_d);
    img.setAttribute("width",202);
    img.setAttribute("height",152);
    img.setAttribute("alt","Snapshot");
}

function detachBubble(_12){
    lbActions=getElementsByClassName(document,"div","previewbubble");
    for(i=0;i<lbActions.length;i++){
        lbActions[i].parentNode.removeChild(lbActions[i]);
    }
}

old_websnapr_refreshTiddler = Story.prototype.refreshTiddler;
Story.prototype.refreshTiddler = function(title,template,force)
{
    var tiddlerElem = old_websnapr_refreshTiddler.apply(this,arguments);
    bindBubbles();
    return tiddlerElem;
}
//}}}
/***
|Name|ExternalTiddlersPlugin|
|Source|http://www.TiddlyTools.com/#ExternalTiddlersPlugin|
|Documentation|http://www.TiddlyTools.com/#ExternalTiddlersPluginInfo|
|Version|1.3.1|
|Author|[[EricShulman]] - 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|TemporaryTiddlersPlugin (optional, recommended)|
|Overrides|config.macros.tiddler.handler|
|Options|##Configuration|
|Description|retrieve and wikify content from external files or remote URLs|
This plugin extends the {{{<<tiddler>>}}} macro syntax so you can retrieve and wikify content directly from external files or remote URLs.  You can also define alternative "fallback" sources to provide basic "import on demand" handling by automatically creating/importing tiddler content from external sources when the specified ~TiddlerName does not already exist in your document.
!!!!!Documentation
>see [[ExternalTiddlersPluginInfo]]
!!!!!Configuration
<<<
<<option chkExternalTiddlersImport>> automatically create/import tiddlers when using external fallback references
{{{usage: <<option chkExternalTiddlersImport>>}}}
<<option chkExternalTiddlersQuiet>> don't display messages when adding tiddlers ("quiet mode")
{{{usage: <<option chkExternalTiddlersQuiet>>}}}
<<option chkExternalTiddlersTemporary>> tag retrieved tiddlers as 'temporary'(requires [[TemporaryTiddlersPlugin]])
{{{usage: <<option chkExternalTiddlersTemporary>>}}}
tag retrieved tiddlers with: <<option txtExternalTiddlersTags>>
{{{usage: <<option txtExternalTiddlersTags>>}}}

__password-protected server settings //(optional, if needed)//:__
>username: <<option txtRemoteUsername>> password: <<option txtRemotePassword>>
>{{{usage: <<option txtRemoteUsername>> <<option txtRemotePassword>>}}}
>''note: these settings are also used by [[LoadTiddlersPlugin]] and [[ImportTiddlersPlugin]]''
<<<
!!!!!Revisions
<<<
2008.10.27 [1.3.1] in insertTiddler(), fixed Safari bug by replacing static Array.concat(...) with new Array().concat(...)
|please see [[ExternalTiddlersPluginInfo]] for additional revision details|
2007.11.25 [1.0.0] initial release - moved from CoreTweaks
<<<
!!!!!Code
***/
//{{{
version.extensions.ExternalTiddlersPlugin= {major: 1, minor: 3, revision: 1, date: new Date(2008,10,27)};

// optional automatic import/create for missing tiddlers
if (config.options.chkExternalTiddlersImport==undefined) config.options.chkExternalTiddlersImport=true;
if (config.options.chkExternalTiddlersTemporary==undefined) config.options.chkExternalTiddlersTemporary=true;
if (config.options.chkExternalTiddlersQuiet==undefined) config.options.chkExternalTiddlersQuiet=false;
if (config.options.txtExternalTiddlersTags==undefined) config.options.txtExternalTiddlersTags="external";
if (config.options.txtRemoteUsername==undefined) config.options.txtRemoteUsername="";
if (config.options.txtRemotePassword==undefined) config.options.txtRemotePassword="";

config.macros.tiddler.externalTiddlers_handler = config.macros.tiddler.handler;
config.macros.tiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
	params = paramString.parseParams("name",null,true,false,true);
	var names = params[0]["name"];
	var list = names[0];
	var items = list.split("|"); 
	var className = names[1] ? names[1] : null;
	var args = params[0]["with"];

	// UTILITY FUNCTIONS
	function extract(text,tids) { // get tiddler source content from plain text or TW doc
		if (!text || !tids || !tids.length) return text; // no text or no tiddler list… return text as-is
		var remoteStore=new TiddlyWiki();
		if (!remoteStore.importTiddlyWiki(text)) return text; // not a TW document… return text as-is
		var out=[]; for (var t=0;t<tids.length;t++)
			{ var txt=remoteStore.getTiddlerText(tids[t]); if (txt) out.push(txt); }
		return out.join("\n");
	}
	function substitute(text,args) { // replace "substitution markers" ($1-$9) with macro param values (if any)
		if (!text || !args || !args.length) return text;
		var n=args.length; if (n>9) n=9;
		for(var i=0; i<n; i++) { var re=new RegExp("\\$" + (i + 1),"mg"); text=text.replace(re,args[i]); }
		return text;
	}
	function addTiddler(src,text,tids) { // extract tiddler(s) from text and create local copy
		if (!config.options.chkExternalTiddlersImport) return; // not enabled… do nothing
		if (!text || !tids || !tids.length) return; // no text or no tiddler list… do nothing
		var remoteStore=new TiddlyWiki();
		if (!remoteStore.importTiddlyWiki(text)) // not a TW document… create a single tiddler from text
			makeTiddler(src,text,tids[0]);
		else // TW document with "permaview-like" suffix… copy tiddler(s) from remote store
			for (var t=0;t<tids.length;t++)
				insertTiddler(src,remoteStore.getTiddler(tids[t]));
		return;
	}
	function makeTiddler(src,text,title) { // create a new tiddler object from text
		var who=config.options.txtUserName; var when=new Date();
		var msg="/%\n\nThis tiddler was automatically created using ExternalTiddlersPlugin\n";
		msg+="by %0 on %1\nsource: %2\n\n%/";
		var tags=config.options.txtExternalTiddlersTags.readBracketedList();
		if (config.options.chkExternalTiddlersTemporary) tags.pushUnique(config.options.txtTemporaryTag); 
		store.saveTiddler(null,title,msg.format([who,when,src])+text,who,when,tags,{});
		if (!config.options.chkExternalTiddlersQuiet) displayMessage("Created new tiddler '"+title+"' from text file "+src);
	}
	function insertTiddler(src,t) { // import a single tiddler object into the current document store
		if (!t) return;
		var who=config.options.txtUserName; var when=new Date();
		var msg="/%\n\nThis tiddler was automatically imported using ExternalTiddlersPlugin\n";
		msg+="by %0 on %1\nsource: %2\n\n%/";
		var newtags=new Array().concat(t.tags,config.options.txtExternalTiddlersTags.readBracketedList());
		if (config.options.chkExternalTiddlersTemporary) newtags.push(config.options.txtTemporaryTag);
		store.saveTiddler(null,t.title,msg.format([who,when,src])+t.text,t.modifier,t.modified,newtags,t.fields);
		if (!config.options.chkExternalTiddlersQuiet) displayMessage("Imported tiddler '"+t.title+"' from "+src);
	}
	function getGUID()  // create a Globally Unique ID (for async reference to DOM elements)
		 { return new Date().getTime()+Math.random().toString(); }

	// loop through "|"-separated list of alternative tiddler/file/URL references until successful
	var fallback="";
	for (var i=0; i<items.length; i++) { var src=items[i];
		// if tiddler (or shadow) exists, replace reference list with current source name and apply core handler
		if (store.getTiddlerText(src)) {
			arguments[2][0]=src; // params[] array
			var p=arguments[4].split(list); arguments[4]=p[0]+src+p[1]; // paramString
			this.externalTiddlers_handler.apply(this,arguments);
			break; // stop processing alternatives
		}
		// tiddler doesn't exist, and not an external file/URL reference… skip it
		if (!config.formatterHelpers.isExternalLink(src)) {
			if (!fallback.length) fallback=src; // title to use when importing external tiddler
			continue;
		}
		// separate 'permaview' list of tiddlers (if any) from file/URL (i.e., '#name name name..." suffix)
		var p=src.split("#"); src=p[0]; var tids=p[1]?p[1].readBracketedList(false):[];
		// if reference is to a remotely hosted document or the current document is remotely hosted…
		if (src.substr(0,4)=="http" || document.location.protocol.substr(0,4)=="http") {
			if (src.substr(0,4)!="http") // fixup URL for relative remote references
				{ var h=document.location.href; src=h.substr(0,h.lastIndexOf("/")+1)+src; }
			var wrapper = createTiddlyElement(place,"span",getGUID(),className); // create placeholder for async rendering
			var callback=function(success,params,text,src,xhr) { // ASYNC CALLBACK
				if (!success) { displayMessage(xhr.status); return; } // couldn't read remote file… report the error 
				if (params.fallback.length)
					addTiddler(params.url,text,params.tids.length?params.tids:[params.fallback]); // import tiddler
				var wrapper=document.getElementById(params.id); if (!wrapper) return; 
				wikify(substitute(extract(text,params.tids),params.args),wrapper); // ASYNC RENDER
			};
			var callbackparams={ url:src, id:wrapper.id, args:args, tids:tids, fallback:fallback }  // ASYNC PARAMS
			var name=config.options.txtRemoteUsername; // optional value
			var pass=config.options.txtRemotePassword; // optional value
			var x=doHttp("GET",src,null,null,name,pass,callback,callbackparams,null)
			if (typeof(x)=="string") // couldn't start XMLHttpRequest… report error
				{ displayMessage("error: cannot access "+src); displayMessage(x); }
			break; // can't tell if async read will succeed.... stop processing alternatives anyway.
		}
		else { // read file from local filesystem
			var text=loadFile(getLocalPath(src));
			if (!text) { // couldn't load file… fixup path for relative reference and retry…
				var h=document.location.href;
				var text=loadFile(getLocalPath(decodeURIComponent(h.substr(0,h.lastIndexOf("/")+1)))+src);
			}
			if (text) { // test it again… if file was loaded OK, render it in a class wrapper
				if (fallback.length) // create new tiddler using primary source name (if any)
					addTiddler(src,text,tids.length?tids:[fallback]);
				var wrapper=createTiddlyElement(place,"span",null,className);
				wikify(substitute(extract(text,tids),args),wrapper); // render
				break; // stop processing alternatives
			}
		}
	}
};
//}}}
/***
|Name|FAQList|
|Version|1.4|
|~CoreVersion:|2.0.0|
|Author|[[AlanHecht]]|
|Type|plugin|
|Source|http://www.personal.psu.edu/staff/a/c/ach12/tiddlywiki/extensions.htm#%5B%5BFaqList%20(for%20TW%202.0)%5D%5D|
|Description|FAQ List lets you compile a list of Frequently Asked Questions and present them in a cascading style for the viewer.|
***/

// //''Description:'' FAQ List lets you compile a list of Frequently Asked Questions and present them in a cascading style for the viewer. Each question is turned into a link that will toggle the view of the answer text. The list can be compiled either from all tiddlers containing a certain tag or from a single tiddler that contains all the needed questions and answers.

// //''Syntax:'' << {{{ faqlist mode source sortBy hrSeparator }}} >>
// // ''faqlist:'' the macro call (required)
// // ''mode:'' either "byTag" or "byTitle" (required)
// // ''source:'' the associated tag or tiddler title (required)
// // ''sortBy:'' if byTag, sort can be "title," "modifier," "modified." If byTitle, sort can be "question" and will reorder the questions in alphabetical order. (this parameter is optional; use "null" if you don't want a sort order, but want to use "hr" as the last parameter)
// // ''hrSeparator:'' if "hr" is included at the end of the call string, each question/answer set will be separated by a horizontal rule.
// //Examples: (edit these two tiddlers to see the syntax used for each)
// // • [[FAQ Method One|http://www.personal.psu.edu/staff/a/c/ach12/tiddlywiki/extensions.htm#%5B%5BFAQ%20Method%20One%5D%5D]] (compiled from tiddlers tagged with a certain tag)
// // • [[FAQ Method Two|http://www.personal.psu.edu/staff/a/c/ach12/tiddlywiki/extensions.htm#%5B%5BFAQ%20Method%20Two%5D%5D]] (compiled using the content of a single tiddler)
// // • @@color(#ff0000):''New!''@@ [[FAQ Method Three| http://www.personal.psu.edu/staff/a/c/ach12/tiddlywiki/extensions.htm#%5B%5BFAQ%20Method%20Three%5D%5D]] (uses the {{{<<tiddler>>}}} macro to pull the faq questions from a single tiddler and the answers from other tiddlers…very cool!)

// //''Directions:'' <<tiddler StartupBehaviorDirections>> <<tiddler MacroDirections>>

// //''Notes:'' If you choose to use byTitle mode where the entire set of questions/answers comes from a single tiddler, the syntax for the tiddler content is as follows:
// // • Each question must be a single line (i.e. no hard returns) but can wrap as needed
// // • The answer to a question begins on the next line after the question and can be as long as needed. It can also include hard returns as part of the answer text, but it cannot include empty lines (i.e. an empty line is the result of pressing enter twice).
// // • Each question/answer set must be seperated by two hard returns (i.e. must have a single, blank line between them.
// // Refer to [[FAQ Tiddler Sample| http://www.personal.psu.edu/staff/a/c/ach12/tiddlywiki/extensions.htm#%5B%5BFAQ%20Tiddler%20Sample%5D%5D]] for an example.

// //''Known Issues:'' If a user clicks too quickly to toggle a FAQ entry on/off, they will go into tiddler edit mode. This should be corrected in the future by allowing web-hosted versions of the faq to disable double-clicking.

// //''Revision History:''
// // v0.1.0 (01 August 2005): initial release
// // v0.1.1 (04 August 2005): Fixed an endless loop bug (thanks to Kevin Kleinfelter).
// // v0.1.2 (19 October 2005): Fixed TW compatibility .32 bugs (newline for block quote and e.preventDefault by Clint Checketts)
// // v0.1.3 (01 November 2005): Thanks to Clint's work, I fixed a similar "jump to top" problem when using the expand & collapse buttons. Also added the description for [[FAQ Method Three| http://www.personal.psu.edu/staff/a/c/ach12/tiddlywiki/extensions.htm#%5B%5BFAQ%20Method%20Three%5D%5D]]
// // v0.1.4 (05 January 2006): Created a special version of FaqList to work with TW v2.0.0


// //''Code section:''
version.extensions.faqlist = {major: 0, minor: 1, revision: 4, date: new Date("Jan 05, 2006")};
config.macros.faqlist = {
 bulletCollapse: "►",
 bulletExpand: "▼",
 expandButton: {title: "Expand All", tooltip: "Open all items for reading"},
 collapseButton: {title: "Collapse All", tooltip: "Close all items"}
};
config.macros.faqlist.handler = function(place,macroName,params)
{
 lingo = config.macros.faqlist;
 var mode = params[0].toLowerCase();
 var list = [];
 switch(mode)
 {
 case "bytag":
 var tagged = store.getTaggedTiddlers(params[1], params[2]);
 for(t=0; t<tagged.length; t++)
 {
 var title = tagged[t].title;
 list[t] = [title,store.getTiddlerText(title)];
 }
 var subTitle = store.fetchTiddler(title).getSubtitle();
 break;
 case "bytitle":
 var faqText = store.getTiddlerText(params[1]);
 var faqItems = faqText.split("\n\n");
 if(params[2] == "question")
 faqItems.sort();
 for(t=0; t<faqItems.length; t++)
 {
 list[t] = [faqItems[t].substring(0,faqItems[t].indexOf("\n")),faqItems[t].substring(faqItems[t].indexOf("\n")+1)];
 }
 var subTitle = null;
 break;
 }
 
 var faqHeading = place.appendChild(document.createElement("span"));
 faqHeading.appendChild(createTiddlyButton(faqHeading,lingo.expandButton.title,lingo.expandButton.tooltip,faqExpandAll));
 faqHeading.appendChild(createTiddlyButton(faqHeading,lingo.collapseButton.title,lingo.collapseButton.tooltip,faqCollapseAll));
 faqHeading.appendChild(document.createElement("p"));
 var faqBody = place.appendChild(document.createElement("span"));
 for(var t=0; t<list.length; t++)
 {
 var title = list[t][0];

 var content = "<<<\n" + list[t][1] + "=\n<<<\n";
 var theClass = "tiddlyLinkExisting tiddlyLink";
 var itemHeading = faqBody.appendChild(document.createElement("span"));
 itemHeading.appendChild(document.createTextNode(config.macros.faqlist.bulletCollapse + " "));
 createTiddlyButton(itemHeading,title,subTitle,faqToggleThis,theClass);
 var itemBody = faqBody.appendChild(document.createElement("span"));
 itemBody.style.display = "none";
 itemBody.className = "itemBody";
 wikify(content,itemBody,null,null);
 faqBody.appendChild(itemBody);
 faqBody.appendChild(document.createElement("p"));
 if(params[3] == "hr")
 faqBody.appendChild(document.createElement("hr"));
 }
}

function faqToggleThis(e)
{
 var content = this.parentNode.nextSibling;
 var shown = content.style.display;
 if(shown == "none")
 {
 content.style.display = "inline";
 this.previousSibling.nodeValue = config.macros.faqlist.bulletExpand + " ";
 }
 else
 {
 content.style.display = "none";
 this.previousSibling.nodeValue = config.macros.faqlist.bulletCollapse + " ";
 }
}

function faqExpandAll(e)
{
 for(t=0; t<this.parentNode.nextSibling.childNodes.length; t++)
 {
 if(this.parentNode.nextSibling.childNodes[t].className == "itemBody")
 {
 this.parentNode.nextSibling.childNodes[t].style.display = "inline";
 this.parentNode.nextSibling.childNodes[t].previousSibling.childNodes[0].nodeValue = config.macros.faqlist.bulletExpand + " ";
 }
 }
// e.preventDefault();
}

function faqCollapseAll(e)
{
 for(t=0; t<this.parentNode.nextSibling.childNodes.length; t++)
 {
 if(this.parentNode.nextSibling.childNodes[t].className == "itemBody")
 {
 this.parentNode.nextSibling.childNodes[t].style.display = "none";
 this.parentNode.nextSibling.childNodes[t].previousSibling.childNodes[0].nodeValue = config.macros.faqlist.bulletCollapse + " ";
 }
 }
// e.preventDefault();
}
/%
|Name|Fabrik im Seminarraum|
|URL|http://www.learning-factory.de/|
|Description|Das Planspiel 'Fabrik im Seminarraum', für dessen Einsatz sich seit Kurzem Trainer autorisieren lassen können, soll die Optimierung von Geschäfts- und Kommunikationsprozessen unterstützen|
|Author|© 2011 Learning Factory|
%/

/%
!Objectives

!Timing

!Materials
*

!Audience
Group / Individual

!Procedure

!Debriefing

!Credits

%/
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!Facilitation Pattern
<<tiddler [[Facilitation Pattern##Overview]]>>


!Objectives
* Active Listening

!Timing

!Materials
*

!Audience
Group / Individual

!Procedure

!Debriefing

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Facilitation Pattern| http://www.stevenlist.com/blog/?s=pattern%3A]]
<data>{"abstract":"[[Faktum oder Fantasie]], eine bekannte Übung, um zu zeigen wie [[Kommunikation]] selbst bei einfachen [[Informationen|Information]] misslingen kann. Mit einer Variation zur Teamleistung."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://www.loslachen.ch/wp-content/uploads/2008/09/fantasiebilder_2_auf_loslachench_027.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Faktum oder Fantasie","abstract") </script>

!Faktum oder Fantasie
<script> return "<<tiddler [[Faktum oder Fantasie##Overview]]>>" </script>

!Objectives
* Scheitern von [[Kommunikation]]

!Timing
20min

!Audience
Group / Individual

!Materials
* vorbereitete Geschichte

!Procedure
# Der Trainer liest eine [[Geschichte|Geschichtenmethode]] vor, 
# die Teilnehmer erhalten ein Blatt mit Aussagen und die Aufgabe, anzukreuzen, ob diese zutreffen, falsch sind oder nicht beantwortet werden können.

!Debriefing
Anschließend fragt der Trainer die Ergebnisse ab und präsentiert dann die "richtigen" Antworten. Damit lässt sich schön demonstrieren, wie wir durch Annahmen, Vermutungen und Interpretationen Informationen ergänzen, verfälschen, "passend machen".

!Variation
Eine Variation dieser Übung ermöglicht zu zeigen, wie man durch das Einholen mehrerer Meinungen die [[Qualität|Qualitaet]] des Verstandenen optimieren kann. Nachdem jeder Teilnehmer seine Lösungen notiert hat, stellt man kleine Gruppen zusammen und bittet diese, eine Gruppenentscheidung herbeizuführen. Erst dann werden die richtigen Lösungen vorgestellt.

!Quelle
Petra Halbreiner, aus: [[Axel Rachow: Spielbar II, managerSeminare 2002, S. 113-115| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FSpielbar-pr%25C3%25A4sentieren-Top-Spiele-Seminarpraxis-Seminarpraxis%2Fdp%2F3931488632%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1211920003%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Faktum+oder+Fantasie+%28jt%29]]
//synonym:// ''FEAR''
<data>{"abstract":"Bei [[Veränderungsprozessen|Organizational Change Model]] häufig anzutreffender [[Widerstand|Change Resistance]] beruht zumeist auf Angst. Ein einfaches Instrument zur Vorhersage möglicher Ängste ist [[FEAR|False Expectations Appear Realistic]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.thoughtsfromthepond.com/imagesmisc/61001tlafbft2abnb0.gif>> /%
http://miamiblog.activerain.com/image_store/uploads/7/9/7/4/5/ar117692465854797.jpg>> %/
<<showtoc>>
!Overview
<script> return DataTiddler.getData("False Expectations Appear Realistic","abstract") </script>

!False Expectations Appear Realistic
<script> return "<<tiddler [[False Expectations Appear Realistic##Overview]]>>" </script> 
Angst ist ein Gefühl, das auch in der Arbeitswelt große Bedeutung besitzt. Viele Entscheidungen und Handlungen werden durch Ängste beeinflusst und gesteuert. 
Gerade der bei [[Veränderungsprozessen|Organizational Change Model]] häufig anzutreffende [[Widerstand|Change Resistance]] beruht zumeist auf Angst. Für Manager und Personalentscheider ist es meist sehr schwer, die zu erwartenden Ängste der Betroffenen richtig einzuschätzen. 

Hierfür sind vielfach zwei Gründe verantwortlich:
# Die Entscheider haben ausreichend Zeit gehabt, sich mit dem Sachverhalt und den verschiedenen Handlungsoptionen auseinander zu setzen. Gegenüber den Betroffenen haben Sie einen deutlichen [[Informationsvorsprung|Information]] und mehr Zeit, nachzudenken.
# Die Entscheider sind sich nicht darüber im Klaren, mit welchen Ängsten konkret zu rechnen ist.

!Objectives
* Vorhersage möglicher Ängste

!Timing


!Audience
Group


!Materials
* 

!Procedure
Ein einfaches Instrument zur Vorhersage möglicher Ängste ist [[FEAR|False Expectations Appear Realistic]].

{{indent{
{{big{''F''}}} &nbsp;&nbsp; alse
{{big{''E''}}} &nbsp;&nbsp; xpectations
{{big{''A''}}} &nbsp;&nbsp; ppear
{{big{''R''}}} &nbsp;&nbsp; ealistic
}}}

Falsche Erwartungen erscheinen realistisch. Wenn sich Entscheider fragen, welche (falschen) Erwartungen die [[Mitarbeiter]] wahrscheinlich aufbauen, werden sie schnell ableiten können, welche [[Kommunikation]] und Handlungen für die beabsichtigte Veränderung sinnvoll und notwendig sind. Damit verfügen sie dann über eine bessere Grundlage für eine erfolgreiche Veränderung bei geringeren Widerständen.

!Debriefing
Bei den Überlegungen gilt es auch an die unterschiedlichsten Katastrophenszenarien zu denken, die [[Mitarbeiter]] im Geiste aufbauen. Diese entstehen zumeist aus allgemeinen Entwicklungen und [[Erfahrungen|Erfahrung]] (z.B.: Unternehmensberatung = 20% Personalabbau) und der Veränderungshistorie im Unternehmen. Hier lohnt es sich, genauer hinzuschauen: Wie sieht diese aus?


!See also
* [[Organizational Change Management]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=FEAR+%28fe%29&db=3]]
/***
|''Name''|FancyBoxPlugin|
|''Description''|Wraps the jQuery.fancybox() function into a TiddlyWiki friendly macro|
|''Author''|PMario|
|''Version''|0.4.3|
|''Status''|''beta''|
|''Source''|http://fancybox-plugin.tiddlyspace.com/|
|''License''|http://www.opensource.org/licenses/mit-license.php|
|''CoreVersion''|2.5.0|
|''Keywords''|light box fancybox|
!Documentation
*[[FancyBoxPluginInfo|http://fancybox.tiddlyspace.com/#About]]
!!!Description
<<<
Wraps the jQuery.fancybox() function into a TiddlyWiki friendly macro
<<<
!!!!Usage
<<<
Used in a tiddler, the macro assumes, that ''only'' pictures inside this tiddler will open the lightbox.
The default mode is "slides". If there are several pictures in one tiddler and you click one, a slideshow of all of them will be created.
{{{
<<fancyBox>>
}}}
If you add the {{{mode:picture}}} parameter it will open the lightbox in single picture mode.
{{{
<<fancyBox mode:picture>>
}}}

Used with ViewTemplate
{{{
<span macro='fancyBox'></span>
or
<span macro='fancyBox mode:picture'></span>
}}}
<<<
!!!!StyleSheet
<<<
*add this to your StyleSheet
{{{
[[FancyBoxStyleSheet]]
}}}
<<<
!!!!~AttachFilePluginFormatters
<<<
If AttachFilePluginFormatters plugin is available, it will be used.
<<<
!!!!Further readings
<<<
see: http://fancybox.net/api
<<<
***/
//{{{

version.extensions.FancyBox = {
	major: 0,
	minor: 4,
	revision: 3,
	date: new Date(2011, 2, 9)
};

(function ($) {
	var me;

	config.macros.fancyBox = me = {
		// should be done for easy localisation
		locale: {
			txtNoConfigTiddler: "%0: configuration tiddler doesn't exist",
			slideShowParamMissing: "fancyBox: slideShow parameter missing. See documentation!",
			buttonParamMissing: "fancyBox: button parameter missing. See documentation!",
			slideShowConfigMissing: "fancyBox: SlideShow configuration tiddler missing or wrong name!",
			txtSlideRefMissing: 'Slide reference in [[%0]] is missing'
		},

		fix: {
			txtDefaultMode: 'slide' // do not translate
		},

		setFbAdvanced: function (conf, params) {
			// set the fancyBox advanced options
			var type = getParam(params, 'type', undefined); // Forces content type. Can be set to 'image', 'ajax', 'iframe', 'swf' or 'inline'
			var href = getParam(params, 'href', undefined); // Forces content source
			var title = getParam(params, 'title', undefined); // Forces title
			var content = getParam(params, 'content', undefined); // Forces content (can be any html data)
			var orig = getParam(params, 'orig', undefined); // Sets object whos position and dimensions will be used by 'elastic' transition
			var index = getParam(params, 'index', undefined); // Custom start index of manually created gallery (since 1.3.1)
			// Set the params only if available
			if (type) {
				conf.type = type;
			}
			if (href) {
				conf.href = href;
			}
			if (title) {
				conf.title = title;
			}
			if (content) {
				conf.content = content;
			}
			if (orig) {
				conf.orig = orig;
			}
			if (index) {
				conf.index = index;
			}

			return conf;
		},

		createElement: function (tagName, thumbURI, picURI, label, relId, alt, data) {
			return '<span class="twfb-list twfb-' + tagName + '">' + '<a class="imageLink" rel="' + relId + '" href=' + picURI + '>' + '<img title="' + label + '" alt="' + alt + '" src="' + thumbURI + '" />' + '</a>' + '</span>';
		},

		calcTextSlices: function (text) {
			var slices = {};

			var helper = {
				'true': true,
				'false': false,
				'null': null
			};

			store.slicesRE.lastIndex = 0;
			var m = store.slicesRE.exec(text);
			while (m) {
				if (m[2]) {
					if (isNaN(m[3])) {
						slices[m[2]] = (m[3] in helper) ? helper[m[3]] : m[3];
					}
					else {
						slices[m[2]] = parseInt(m[3]);
					}
				} else {
					if (isNaN(m[6])) {
						slices[m[5]] = (m[6] in helper) ? helper[m[6]] : m[6];
					}
					else {
						slices[m[5]] = parseInt(m[6]);
					}
				}
				m = store.slicesRE.exec(text);
			}
			return slices;
		},

		rdSettings: function (cName, offline) {
			var settings = {};
			var text;
			var offName, title = cName;

			var pos = title.indexOf(config.textPrimitives.sectionSeparator);
			var section = null;
			if (pos != -1) {
				section = title.substr(pos + config.textPrimitives.sectionSeparator.length);
				title = title.substr(0, pos);
			}

			offName = (title) ? title + '##Offline' : tiddler.title + '##Offline';
			cName = (title) ? cName : tiddler.title + cName;

			title = (title) ? title : tiddler.title;

			if (store.tiddlerExists(title)) {
				// read Offline config if offline
				if (offline) {text = store.getTiddlerText(offName);}
				//	console.log({'cName':cName, 'offName':offName, 'text':text});
				// if there is no offline section use the defaults section
				text = (text) ? text : store.getTiddlerText(cName);
				settings = me.calcTextSlices(text);
				//	console.log({'settings':settings});
			}
			if (settings.swf) {
				settings.swf = $.parseJSON(settings.swf);
			}
			if (settings.href) {
				settings.href = settings.href.replace(/youtube.com\/watch\?v=/i, 'youtube.com/v/');
			}

			var cmfa = config.macros.fancyBox.addOns;
			var x = settings.onComplete;
			if (x) {
				settings.onComplete = (cmfa[x]) ? cmfa[x] : null;
			}

			x = settings.onStart;
			if (x) {
				settings.onStart = (cmfa[x]) ? cmfa[x] : null;
			}

			x = settings.onCancel;
			if (x) {
				settings.onCancel = (cmfa[x]) ? cmfa[x] : null;
			}

			x = settings.onCleanup;
			if (x) {
				settings.onCleanup = (cmfa[x]) ? cmfa[x] : null;
			}

			x = settings.onClosed;
			if (x) {
				settings.onClosed = (cmfa[x]) ? cmfa[x] : null;
			}

			x = settings.titleFormat;
			if (x) {
				settings.titleFormat = (cmfa[x]) ? cmfa[x] : null;
			}

			//			console.log('settings: ', settings, 'x:', x);
			return settings;
		},

		// creates a fancybox friendly DOM structure
		thumbList: function (list, data) {
			var label, slide, elem, thumbURI, picURI, alt = '';
			var relId = '';
			var cma = (config.macros.attach) ? config.macros.attach : null;

			data.selector = '#' + data.genIdA + ' a.imageLink';

			// createTiddlyElement(parent, element, id, className, text, attribs)
			var listElem = createTiddlyElement(place, 'div', data.genIdA, 'imgStack');

			if (data.hide) {
				$(listElem).hide();
			}

			if (['slide', 'pictureLinkSlide'].contains(data.mode)) {
				relId = data.genIdA;
			}

			// ToDo clean up redundant code
			if (!data.picHost && cma.getAttachment) {
				for (var i = 0; i < list.length; i += 1) {
					slide = store.getTiddlerText(list[i].title + '##slide');

					thumbURI = cma.getAttachment(list[i].title);
					picURI = (data.conf.href) ? data.conf.href : (slide) ? cma.getAttachment(slide.trim()) : thumbURI;

					if (!slide && !data.conf.href) {
						list[i].label = me.locale.txtSlideRefMissing.format([list[i].title]);
					}

					label = (list[i].label) ? list[i].label : '';
					alt = (alt) ? alt : label;
					elem = this.createElement(data.tagName, thumbURI, picURI, label, relId, alt);

					jQuery(elem).appendTo($(listElem)[0]);
				}
			}
			else {
				for (var i = 0; i < list.length; i += 1) {
					thumbURI = (data.thumbHost) ? data.thumbHost + list[i].title : list[i].title;
					picURI = (data.conf.href) ? data.conf.href : (data.picHost) ? data.picHost + list[i].title : list[i].title;

					label = (list[i].label) ? list[i].label : '';
					alt = (alt) ? alt : label;
					elem = this.createElement(data.tagName, thumbURI, picURI, label, relId, alt);

					jQuery(elem).appendTo($(listElem)[0]);
				}
			}
			return data;
		},
		// End slide
		buttonSlideShow: function () {
			var data = $(this).data('data');
			var index = data.conf.index || 0;
			var elems;

			data.mode = 'manual';
			elems = me.activateBox(data);

			if (elems.length > index) {
				$(elems[index]).trigger('click');
			}
		},

		activateBox: function (data) {
			$(data.selector).each(function (index, element) {
				$(this).attr('title', $(element).children('img').attr('title'));
			});

			if (['picture', 'pictureLink'].contains(data.mode)) {
				return jQuery(data.selector).fancybox(data.conf);
			}
			else {
				// mode: 'slide', 'selector', 
				return jQuery(data.selector).attr('rel', data.genIdA).fancybox(data.conf);
			}
		},
		// activate Box
		idGenerator: function () {
			var space = 'fancybox.tiddlyspace.com';
			var date = new Date();
			var time = date.getTime();
			var random = Math.floor(Math.random() * 1000);

			return Crypto.hexSha1Str(time + '@' + space + '-' + random);
		},

		handler: function (place, macroName, params, wikifier, paramString, tiddler) {
			params = paramString.parseParams('pictureLink', null, true);

			var conf = {}; // everything, that comes from fancyBox library
			var data = {}; // fancxBox TW data + conf
			var btn;

			data.mode = me.fix.txtDefaultMode;

			// fancyBox can be called with several pictures.
			var pictureLink = getParam(params, 'pictureLink', undefined);
			if (pictureLink) {
				data.src = 'pictureLink';
				data.tagName = 'pictureLink';
				pictureLink = params[0].pictureLink;
				if (pictureLink.length > 1) {
					data.mode = 'pictureLinkSlide'; // creates a slideshow
				}
			}

			// if several pics are called several labels are needed. 
			// label is used, because title is used by fancyBox library allready.
			var label = getParam(params, 'label', undefined);
			if (label) {
				label = params[0].label;
			}

			// may be slideShowLinkList is needed ToDo
			// var slideShowId = getParam(params, 'slideShow', undefined);
			// set defaults like: FancyBoxConfig
			var configId = getParam(params, 'defaults', undefined);
			if (configId) {
				// get alternative setting if TW is offline.
				conf = me.rdSettings(configId, (document.location.protocol === "file:"));
			}

			configId = getParam(params, 'fancy', undefined);
			if (configId) {
				var tmp = me.rdSettings(configId);
				conf = merge(conf, tmp);
			}

			// set advanced params from macro params
			data.conf = me.setFbAdvanced(conf, params);

			// set the selector
			var selector = getParam(params, 'selector', undefined);
			if (selector) {
				data.selector = selector;
				data.mode = 'selector';
			}

			data.sortField = getParam(params, 'sort', 'title'); // ToDo
			// sets paths for thumbs and pics. relative file paths are possible
			// named params overwrite the global settings.
			var thumbHost = getParam(params, 'thumbHost', undefined); // needs to be defined!
			var picHost = getParam(params, 'picHost', undefined);

			data.thumbHost = (thumbHost) ? thumbHost : conf.thumbHost;
			data.picHost = (picHost) ? picHost : conf.picHost;

			// if tag is used, all pics are part of the TW .. create an overview.
			data.tagName = getParam(params, 'tag', undefined);
			if (data.tagName) {
				data.mode = 'tag';
				data.src = 'tag';
			}

			// set slideShow like: SlideShowExample
			var txtImageButton = getParam(params, 'imageButton', undefined);
			var txtButton = getParam(params, 'button', undefined);

			if (txtImageButton) {
				data.mode = 'imageButton';
				data.hide = true;
			}
			else if (txtButton) {
				data.mode = 'button';
				data.hide = true;
			}

			// possible modes: 'slide' (default), 'picture'
			// mode set by user overwrites all guesses!
			var mode = getParam(params, 'mode', undefined);
			data.mode = (mode) ? mode : data.mode;

			var genId = me.idGenerator();
			data.genIdA = 'A' + genId.substr(1, 6);

			var tlist;
			switch (data.src) {
			case 'tag':
				tlist = store.getTaggedTiddlers(data.tagName, data.sortField);
				data = me.thumbList(tlist, data);
				break; // 'tag'
			case 'pictureLink':
				tlist = [];
				for (var i = 0; i < pictureLink.length; i += 1) {
					tlist.push({
						'title': pictureLink[i]
					});
					tlist[i].label = (label && label[i]) ? label[i] : '';
				}

				data = me.thumbList(tlist, data);
				break; // 'tag'
			case 'list':
				// get the list of [img[prettyLink|pic][externalLink]]
				// Better done with <<tiddler LinkedTiddler>> and selector !!!
				break; // 'list'
			}
			//console.log('data: ', data);
			switch (data.mode) {
			case 'imageButton':
				// automatically makes use of AttachFilePluginFormatters
				// check dependencies ToDo
				data.tagName = data.tagName || 'manual';

				// createTiddlyButton(parent, text, tooltip, action, className, id, accessKey, attribs)
				btn = createTiddlyButton(place, '', null, me.buttonSlideShow);

				$(btn).removeClass('button');
				wikify(txtImageButton, btn);

				$(btn).data('data', data);

				return;
			//	break; // button
			case 'button':
				// check dependencies ToDo
				data.tagName = data.tagName || 'manual';

				// createTiddlyButton(parent, text, tooltip, action, className, id, accessKey, attribs)
				btn = createTiddlyButton(place, txtButton, null, me.buttonSlideShow);

				$(btn).data('data', data);

				return;
			//	break; // button
			case 'tag':
				data.selector = '.twfb-' + data.tagName + ' a';
				me.activateBox(data);
				break; // tag
			case 'pictureLink':
			case 'pictureLinkSlide':
				data.selector = '#' + data.genIdA + ' a.imageLink';
				me.activateBox(data);
				break; // tag
			case 'list':
				break; // list
			case 'selector':
				me.activateBox(data);
				break; // xxx
		//	case 'slide':
			default:
				// limit selection to containing tiddler, if there is no selector param
				// 'a.imageLink' is default produced by [img[picture.jpg][http:// .. ]]
				// imageMacro is different ???!!!  ToDo
				var container = story.findContainingTiddler(place);

				$(container).find('.viewer').attr('id', data.genIdA);

				data.selector = '#' + data.genIdA + ' a.imageLink';

				me.activateBox(data);
				break; // xxx
			} // switch
		} // handler
	}; // end plugin
})(jQuery);

//}}}
/***
|''Name''|FancyBoxPluginAddOns|
|''Description''|Adds some add on features to the FancyBoxPlugin|
|''Author''|PMario|
|''Version''|0.1.0|
|''Status''|''beta''|
|''Source''|http://fancybox-plugin.tiddlyspace.com/|
|''License''|http://www.opensource.org/licenses/mit-license.php|
|''CoreVersion''|2.5.0|
|''Requires''|FancyBoxPlugin|
|''Keywords''|light box fancybox add on addon|
!Documentation
<<<
*[[FancyBoxPluginInfo|http://fancybox.tiddlyspace.com/#About]]
<<<
!Description
<<<
Adds some functions to FancyBoxPlugin, that are described at: http://fancybox.net/blog Tips&Tricks
At the moment, there are 3 different titles and an automaticSlideShow addOn available.
<<<
!!!Usage: showTitleOnHover, titleFormatSpecial, titleFormatTip7
<<<
See: [[Example_AdvancedTitles_1|http://fancybox.tiddlyspace.com/#Example_AdvancedTitles_1]]
Somewhere in the ''Default'' section use:
{{{
onComplete: showTitleOnHover
// showTitleOnHover has to be used with onComplete!

titleFormat: titleFormatSpecial
}}}
See: [[Example_AdvancedTitles_2|http://fancybox.tiddlyspace.com/#Example_AdvancedTitles_2]]
{{{
titleFormat: titleFormatTip7
}}}
<<<
!!!Usage: automaticSlideShow
See: [[Example_AutomaticSlideShow|http://fancybox.tiddlyspace.com/#Example_AutomaticSlideShow]]
<<<
{{{
showCloseButton: false
// hide the close button, because it is part of the title.

titlePosition: inside
// inside, outside, over

cyclic: true
// If you set cyclic to true, you'll have an endless loop.

slideShowInterval: 3000
// defines the interval, to switch to the next pictureLink

slideShowAutostart: false
// If slideShowAutostart is set to true, the show is started automatically.


//the following parameters must be set 

titleFormat: automaticSlideShow_title
// defines the SlideShow title, with start and stop buttons.

onComplete: automaticSlideShow_onComplete
// internal functions to initialize everything in the right way

onClosed: automaticSlideShow_onClosed
// clear the timeout loop. 
}}}
<<<
!!!!StyleSheet
add this to your StyleSheet
<<<
{{{
#tip7-title { text-align: left; overflow: auto; }
#tip7-title b { display: block; margin-right: 80px; }
#tip7-title span { float: right; text-align: right; }
}}}
<<<
***/
//{{{

version.extensions.FancyBox.AddOns = {
	major: 0,
	minor: 1,
	revision: 0,
	date: new Date(2011, 2, 9)
};

(function ($) {

	config.macros.fancyBox.addOns = {
		getAttachment: function(title, opts) {
			var picURI;
			picURI = (opts.thumbHost) ? opts.thumbHost + title : '';

			if (!picURI) {
				picURI = (config.macros.attach) ? config.macros.attach.getAttachment(title) : title;
			}
		return picURI;	
		}

	};

//********
// Shows the picture title only, if the picture is hovered.
	config.macros.fancyBox.addOns.showTitleOnHover = function () {
		jQuery("#fancybox-title").hide();
		jQuery("#fancybox-outer").mouseover(function () {
			jQuery("#fancybox-title").show();
		});

		jQuery("#fancybox-outer").mouseout(function () {
			jQuery("#fancybox-title").hide();
		});
	};

//********
// Different Title formatting
	config.macros.fancyBox.addOns.titleFormatSpecial = function (title, currentArray, currentIndex, currentOpts) {
		return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>';
	};

//********
// Title formatted like the Tip7 from the original library. 
	config.macros.fancyBox.addOns.titleFormatTip7 = function (title, currentArray, currentIndex, currentOpts) {
		var picture = config.macros.fancyBox.addOns.getAttachment('close.png', currentOpts);
		
		return '<div id="tip7-title">'+
					'<span>'+
							'<a href="javascript:;" onclick="jQuery.fancybox.close();">'+
								'<img alt="Close" src="'+picture+'" />'+
							'</a>'+
					'</span>' + (title && title.length ? '<b>' + title + '</b>' : '') + 'Image ' + (currentIndex + 1) + ' of ' + currentArray.length + '</div>';
	};

//********
// automatic slide show addOn
	var ass;
	config.macros.fancyBox.addOns.automaticSlideShow = ass = {
		interval: 6000,
		status : '',
		idTimeout: null,
	
		onTimeout : function () {
			jQuery.fancybox.next();
			ass.setSlideshowTimer('active');
		},
			
		setSlideshowTimer:  function(status) {
			ass.status = status;
		
			if (ass.status === 'active') {
				ass.idTimeout = setTimeout(ass.onTimeout, ass.interval);
			}
			else {
				clearTimeout(ass.idTimeout);
			}
		}
	};

	config.macros.fancyBox.addOns.automaticSlideShow_onComplete = function (currentArray, currentIndex, currentOpts) {
		ass.interval = (currentOpts.slideShowInterval) ? currentOpts.slideShowInterval : 6000;		
		if ((currentOpts.slideShowAutostart === true) && (ass.status ==='')) {
			ass.startSlideshowTimer();
		}
		if ((currentIndex === (currentArray.length - 1)) && (currentOpts.cyclic===false)) {
			ass.setSlideshowTimer('paused');
		}
	};

	config.macros.fancyBox.addOns.automaticSlideShow_onClosed = function (currentArray, currentIndex, currentOpts) {
		ass.setSlideshowTimer('');
	};

	config.macros.fancyBox.addOns.automaticSlideShow_title = function (title, currentArray, currentIndex, currentOpts) {
		var closeImg = config.macros.fancyBox.addOns.getAttachment('close.png', currentOpts);
		var playImg = config.macros.fancyBox.addOns.getAttachment('play.png', currentOpts);
		var pauseImg = config.macros.fancyBox.addOns.getAttachment('pause.png', currentOpts);

		var starter =	'<a href="javascript:;" onclick="config.macros.fancyBox.addOns.automaticSlideShow.setSlideshowTimer(\'active\');">'+
								'<img alt="Start" src="'+playImg+'" />'+
						'</a>';
		var stopper =	'<a href="javascript:;" onclick="config.macros.fancyBox.addOns.automaticSlideShow.setSlideshowTimer(\'paused\');">'+
								'<img alt="Stop" src="'+pauseImg+'" />'+
						'</a>';
	
		return '<div id="tip7-title">'+  
					'<span>' + 
							'<a href="javascript:;" onclick="jQuery.fancybox.close();">'+
								'<img alt="Close" src="'+closeImg+'" />'+
							'</a><br />' + starter + stopper +
					'</span>' + (title && title.length ? '<b>' + title + '</b>' : '') + 'Image ' + (currentIndex + 1) + ' of ' + currentArray.length + '</div>';
	};
// end of automaticSlideShow
//********

})(jQuery);

//}}}
<data>{"abstract":"Bei [[Veränderungsprojekten|Organizational Change Project]] liegen die kritischen Punkte häufig im sozialen Subsystem der [[Organisation]]. Wie diese sichtbar und erlebbar gemacht werden können, zeigt die Übung [[Farbportraits der Organisation]]."}</data>
/% http://www.masternewmedia.org/images/key_id304145_size480.jpg %/
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://data.blogg.de/14629/images/CS_Farb_Portrait1_.jpg>>/%
http://www.teleclub.ch/VirtualMedia/Kanaele/Stimmungsbilder/Content/mgm.jpg>> %/
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Farbportraits der Organisation","abstract") </script>

!Farbportraits der Organisation
<script> return "<<tiddler [[Farbportraits der Organisation##Overview]]>>" </script> 

!Objectives
* Verdeutlichen der sozialen Subsystem einer [[Organisation]]. 

!Timing
120 min

!Audience
Group

!Materials
* Flipchart

!Procedure
In mehreren Untergruppen werden Farbportraits der eigenen [[Organisation]] gestaltet. Die Vorlage besteht aus einem Oval, das auf ein Flipchart gemalt wird. 
Das Oval ist dreigeteilt: Im oberen Teil ist das kulturelle, im mittleren das soziale und im unteren Teil das technisch-instrumentelle Subsystem angesiedelt. 
Sodann gestalten die Teilnehmer die Vorlage farbig so, wie sie die [[Organisation]] erleben. Dabei dürfen sie nicht miteinander sprechen.

!Debriefing
Nach Abschluss der Übung [[Farbportraits der Organisation]] gibt es eine [[Vernissage]], wobei die entstandenen Bilder betrachtet werden. 
Zuerst deuten diejenigen die Bilder, die an der Entstehung nicht beteiligt waren, dann die Beteiligten. 
Die jeweiligen Gruppen hören dabei zunächst nur zu, ohne zu kommentieren. 
Erst danach findet der Austausch über die unterschiedliche [[Wahrnehmung]] der [[Organisation]] statt.

!Quelle
Achim Leuchtenberg / Ulrich Jakubek / Dirk Walliser: Supply Chain Development, S. 36-37.

!See also
* [[Organizational Change Management]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Farbportraits+der+Organisation+%28jt%29&db=3]]
<data>{"abstract":"Normalerweise enden (Change-)Workshops mit dem [[Feedback]] zum Ablauf und Ergebnissen des Workshops. Mindestens ebenso wichtig sind Feedbacks zu zwei zukunftsorientierten Fragen: den [[Transferbedingungen|Praxistransfer]] und -chancen sowie den Auswirkungen und ihren [[Risiken|Risiko]]. Diese Feedbacks geben den Verantwortlichen Hinweise für die Realisierung der  [[Veränderungen|Organizational Change]] mit auf den Weg..."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.stakeholdermapping.com/Images/Feedback.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Feedback","abstract") </script>

!Feedback
<script> return "<<tiddler [[Feedback##Overview]]>>" </script> 

!!Feedback 1. bzw. 2. Ordnung
[[Feedback]] ist in der Regel vergangenheitsbezogen. Feedbacks am Ende eines ~Veränderungs-Workshops betreffen meist die Zufriedenheit der Teilnehmer mit dem ~Workshop-Verlauf und den -Ergebnissen (=Feedback 1. bzw. 2. Ordnung). 


!Objectives
* Transferbedingungen und -chancen von Feedback
* Auswirkungen und [[Risiken|Risiko]].

!Timing
Feedback 1. Ordnung: 10-15 Minuten.
Feedback 2. Ordnung: 15-20 Minuten.


!Audience
Group / Individual


!Materials
* 

!Procedure
Beide Feedbacks werden gegeben, nachdem der Workshop eigentlich beendet ist. Alle Teilnehmer stehen schon im Raum, die vereinbarten Maßnahmen hängen sichtbar für alle an der (Pin-)Wand.

!!Feedback 2. Ordnung 
Effekte beschreiben:
Je drei bis vier Personen finden ein Flipchart mit den Fragen:

{{indent{ //"Was wir mit den Maßnahmen konkret bewirken werden..."// und
//"Was wir noch mit diesen Maßnahmen auslösen werden..."// }}}


In einem kurzen [[Brainstorming]] werden beide Fragen beantwortet. Anschließend werden alle Antworten gemeinsam auf Zuruf von dem Moderator in einem [[Mindmap|Mind Mapping]] angeordnet zu der Frage: Welche Chancen und [[Risiken|Risiko]] sind mit den Maßnahmen verbunden? //(Chancen und [[Risiken|Risiko]] bewerten)//.

!!Feedback 3. Ordnung
Stolpersteine und Konsequenzen erfassen:
In einer Tabelle werden maximal sieben der vereinbarten Maßnahmen aufgeführt und je Maßnahme drei mögliche Stolpersteine notiert. Anschließend wird je Stolperstein die Hauptkonsequenz genannt, die das Eintreten des Stolperstein hätte.
In einem vorletzten Schritt bewertet jeder Teilnehmer mit einem grünen bzw. roten Klebepunkt auf einer Skala von 1 bis 5 die Auftrittswahrscheinlichkeit je Stolperstein und Konsequenz //(Stolpersteine und Konsequenzen bewerten)//.

Die fünf Stolpersteine mit der höchsten Wahrscheinlichkeit werden nun hervorgehoben, sodann werden die Teilnehmer gebeten, drei Post-it-Zettel zu füllen mit Vorschlägen, wie die Stolpersteine zu verhindern sind (Tipps für die Umsetzung geben). Dies geschieht schon im Hinausgehen, der Workshop wird vorher beendet.

Die Ergebnisse werden in der [[Workshop-Dokumentation|Dokumentation]] zusammengefasst und allen Teilnehmern zur Verfügung gestellt.

!Debriefing

!Quelle
Armin Rohm (Hg.): ~Change-Tools, managerSeminare 2006, S. 237-242.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Feedback+3.+und+4.+Ordnung+%28jt%29]]
* [[Positive Feedback and targets| http://creativedifference.wordpress.com/2010/01/31/positive-feedback-and-targets/]]
* [[Tough Feedback Tips| http://www.greatleadershipbydan.com/2008/02/tough-feedback-tips.html]]
<data>{"abstract":"[[Feedback 3. und 4. Ordnung]], normalerweise enden [[(Change-)Workshops|Organizational Change Model]] mit dem [[Feedback]] zum Ablauf und Ergebnissen des Workshops. Was aber ist mit den zu erwartenden [[Hindernissen|Change Resistance]] und [[Stolpersteinen|Organizational Change Blunders]]? Auch hierzu sollte [[Feedback]] erhoben werden… "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.stakeholdermapping.com/Images/Feedback.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Feedback 3. und 4. Ordnung","abstract") </script>

!Feedback 3. und 4. Ordnung
<script> return "<<tiddler [[Feedback 3. und 4. Ordnung##Overview]]>>" </script>
[[Feedback]] ist in der Regel vergangenheitsbezogen. Feedbacks am Ende eines Workshops betreffen meist die Zufriedenheit der Teilnehmer mit dem ~Workshop-Verlauf und den ~Workshop-Ergebnissen (=Feedback 1. bzw. 2. Ordnung). 
Mindestens ebenso wichtig sind Feedbacks zu zwei zukunftsorientierten Fragen: den [[Transferbedingungen|Praxistransfer]] und -chancen sowie den Auswirkungen und ihren Risiken. Diese Feedbacks geben den Verantwortlichen Hinweise für die Realisierung der [[Veränderungen|Organizational Change]] mit auf den Weg.

!Objectives
* [[Feedback]] zu erwartenden Hindernissen und Stolpersteinen

!Timing
* Feedback 3. Ordnung: 10-15 Minuten.
* Feedback 4. Ordnung: 15-20 Minuten.

!Audience
Group / Individual

!Materials
* Flipchart

!Procedure
Beide Feedbacks werden gegeben, nachdem der Workshop eigentlich beendet ist. Alle Teilnehmer stehen schon im Raum, die vereinbarten Maßnahmen hängen sichtbar für alle an der (Pin-)Wand.

!!Feedback 3. Ordnung
Beim Feedback 3. Ordnung geht darum, Effekte zu beschreiben: 
Je drei bis vier Personen finden ein Flipchart mit den Fragen

{{indent{
//"Was wir mit den Maßnahmen konkret bewirken werden…"// und
//"Was wir noch mit diesen Maßnahmen auslösen werden…"//
}}}

In einem kurzen [[Brainstorming]] werden beide Fragen beantwortet. Anschließend werden alle Antworten gemeinsam auf Zuruf von dem Moderator in einem [[Mindmap|Mind Mapping]] angeordnet zu der Frage: //"Welche Chancen und Risiken sind mit den Maßnahmen verbunden?"// (Chancen und [[Risiken|Risiko]] bewerten).

!!Feedback 4. Ordnung
Beim Feedback 4. Ordnung geht es darum, Stolpersteine und Konsequenzen zu erfassen:
In einer Tabelle werden maximal sieben der vereinbarten Maßnahmen aufgeführt und je Maßnahme drei mögliche Stolpersteine notiert. Anschließend wird je Stolperstein die Hauptkonsequenz genannt, die das Eintreten des Stolperstein hätte.
In einem vorletzten Schritt bewertet jeder Teilnehmer mit einem grünen bzw. roten Klebepunkt auf einer Skala von 1 bis 5 die Auftrittswahrscheinlichkeit je Stolperstein und Konsequenz (Stolpersteine und Konsequenzen bewerten).

Die fünf Stolpersteine mit der höchsten Wahrscheinlichkeit werden nun hervorgehoben, sodann werden die Teilnehmer gebeten, drei ~Post-it-Zettel zu füllen mit Vorschlägen, wie die Stolpersteine zu verhindern sind (Tipps für die Umsetzung geben). Dies geschieht schon im Hinausgehen, der Workshop wird vorher beendet.

!Debriefing
Die Ergebnisse werden in der ~Workshop-Dokumentation zusammengefasst und allen Teilnehmern zur Verfügung gestellt.


!Quelle
Dieter Kannenberg:, aus Armin Rohm (Hg.): ~Change-Tools, managerSeminare 2006, S. 237-242


!See also

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Feedback+3.+und+4.+Ordnung+(jt).html]]
<data>{"abstract":"[[Feedback erleben]], was der eine schon als unangemessen scharfe Rückmeldung erlebt, kommt dem anderen nahezu lasch vor. [[Feedback]] ist nicht gleich [[Feedback 3. und 4. Ordnung]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.armacell.com/WWW/aps/INETAPSHomepage.nsf/0/DA26CE39ACD4A68FC125700A00441ED8/$FILE/360_feedback_gross.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Feedback erleben","abstract") </script>

!Feedback erleben
<script> return "<<tiddler [[Feedback erleben##Overview]]>>" </script> 
Um zu zeigen, dass [[Feedback]] nicht gleich [[Feedback unter 4 Augen]] ist, eignet sich die Übung [[Feedback erleben]]. 

!Objectives


!Timing
20min+

!Audience
Group / Individual

!Materials
* —

!Procedure
# Zwei Teilnehmer melden sich freiwillig zu einem [[Rollenspiel|Improvisationstheater]]. 
# Die Situation, um die es geht, ist beliebig. Wichtig ist nur, dass der eine dem anderen zu dessen (fiktivem) Verhalten eine Rückmeldung gibt: z.B. könnte man als Ausgangssituation nehmen, dass der eine Teilnehmer häufig zu spät an den Arbeitsplatz kommt, der andere meldet ihm das jetzt als störend und den Kollegen gegenüber unfair zurück.
# Während er nun dieses Feedback gibt, zeigt der Feedbacknehmer per Handzeichen an, wenn ihm eine Äußerung als zu scharf oder gar verletzend erscheint, aber auch, wenn sie ihn gleichgültig, völlig unberührt lässt.

Alle anderen Seminarteilnehmer dürfen genau wie der Feedbacknehmer die Hand heben, wenn es ihnen (an seiner Stelle) ähnlich ergeht. Auf diese Weise wird deutlich, wie unterschiedlich Feedback wahrgenommen wird und wie gut man im Grunde seinen Gesprächspartner kennen muss, um individuell auf ihn eingehen zu können.

!Debriefing


!Quelle
C.Moser / N.Bußmann: Feedback geben, Trainingaktuell 6/2008 S. 7.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Feedback+erleben+%28jt%29]]
<data>{"abstract":"Wenn gegenseitiges [[Feedback]] im [[Team]] stattfinden, aber gleichzeitig die Vertraulichkeit gewahrt werden soll, bietet sich diese Variante an.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.hofburg.at/modules/bildgalerie/upload/327_1627_zz0j1485.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Feedback unter 4 Augen","abstract") </script>

!Feedback unter 4 Augen
<script> return "<<tiddler [[Feedback unter 4 Augen##Overview]]>>" </script> 

!Objectives
* ~Feedback-Übung

!Timing
60 min

!Audience
Group

!Materials
* vorbereitet Arbeitsblätter/Karten

!Procedure
# Der Trainer legt einen Stapel Arbeitsblätter in die Mitte des Raums. Auf den Arbeitsblättern steht "Rüchmeldung von .... an ..." Es folgt die Überschrift "In der Zusammenarbeit mit Dir/Ihnen ...". Darunter gibt es drei Felder mit ausreichend Platz für Notizen:
## … finde ich hilfreich (gefällt mir, freut mich)
## … finde ich schwierig (stört mich, ärgert mich)
## … wünsche ich mir<br><br>
# Der Trainer instruiert die Teilnehmer. Jeder soll insgesamt z.B. fünf Kolleginnen und Kollegen — vertraulich unter vier Augen — eine differenzierte Rückmeldung zur Zusammenarbeit geben. Die Teilnehmer können selbst entscheiden, wem Sie ein [[Feedback]] geben wollen. Auf diese Weise bestimmen sie das potenzielle [[Risiko]] selbst ("Schmusekissen" oder "Reibeisen").<br><br>
# Die Teilnehmer nehmen sich jeweils fünf Arbeitsblätter, suchen sich einen ruhigen Ort und notieren ihre Feedbacks stichwortartig in die entsprechenden Felder. Sie erhalten hierfür 30 Minuten Zeit.<br><br>
# Wenn alle Teilnehmer die Blätter ausgefüllt haben, wird der Feedbackprozess in Form eines "Marktplatzes" in Gang gesetzt. Alle Akteure stehen oder bewegen sich im Raum (Stühle wurden zuvor beiseite geräumt).       Jeder sucht sich seinen ersten Gesprächspartner, zieht sich mit diesem in eine störungsfreie Umgebung zurück und gibt ihm in der vorgegebenen Struktur Feedback. Der Feedbacknehmer soll nur zuhören, evtl. nachfragen und um Beipiele bitten, jedoch auf Kommentare und vor allem auf eventuelle Rechtfertigungen verzichten. Sein "Text" heißt stattdessen einfach "Danke".       Am Ende "schenkt" der Feedbackgeber dem Feedbacknehmer das Arbeitsblatt mit den Notizen.<br><br>
# Nach jeder Feedbacksequenz kehren die Akteure zum "Marktplatz" zurück und suchen ihre nächsten Gesprächspartner bzw. bieten sich als potenzielle Feedbachnehmer an.<br><br>
# Die Übung ist beendet, wenn alle Teilnehmer ihr [[Feedback]] "losgeworden" sind. 


!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Feedback+unter+4+Augen+%28Rohm%29]]
/***
|Location|http://visualtw.ouvaton.org/VisualTW.html|
|Version|1.0.0|
|Requires|~TW2.2.x|
|Browsers|Firefox 2.0.x, IE 6.0+, others|
!Description:
//create//, //edit//, //view// and //delete// commands in toolbar <<toolbar fields>>
!Demo:
On [[homepage|http://visualtw.ouvaton.org/VisualTW.html]], see [[FieldEditor example]]
!Installation:
*import this tiddler from [[homepage|http://visualtw.ouvaton.org/VisualTW.html]] (tagged as systemConfig)
*save and reload
*optionnaly : add the following css text in your StyleSheet : {{{#popup tr.fieldTableRow td {padding:1px 3px 1px 3px;}}}}
!Code
***/

//{{{

config.commands.fields.handlePopup = function(popup,title) {
	var tiddler = store.fetchTiddler(title);
	if(!tiddler)
		return;
	var fields = {};
	store.forEachField(tiddler,function(tiddler,fieldName,value) {fields[fieldName] = value;},true);
	var items = [];
	for(var t in fields) {
		var editCommand = "<<untiddledCall editFieldDialog "+escape(title)+" "+escape(t)+">>";
		var deleteCommand = "<<untiddledCall deleteField "+escape(title)+" "+escape(t)+">>";
		var renameCommand = "<<untiddledCall renameField "+escape(title)+" "+escape(t)+">>";
		items.push({field: t,value: fields[t], actions: editCommand+renameCommand+deleteCommand});
	}
	items.sort(function(a,b) {return a.field < b.field ? -1 : (a.field == b.field ? 0 : +1);});
	var createNewCommand = "<<untiddledCall createField "+escape(title)+">>";
	items.push({field : "", value : "", actions:createNewCommand });
	if(items.length > 0)
		ListView.create(popup,items,this.listViewTemplate);
	else
		createTiddlyElement(popup,"div",null,null,this.emptyText);
}

config.commands.fields.listViewTemplate = {
	columns: [
		{name: 'Field', field: 'field', title: "Field", type: 'String'},
		{name: 'Actions', field: 'actions', title: "Actions", type: 'WikiText'},
		{name: 'Value', field: 'value', title: "Value", type: 'WikiText'}
	],
	rowClasses: [
			{className: 'fieldTableRow', field: 'actions'}
	],
	buttons: [	//can't use button for selected then delete, because click on checkbox will hide the popup
	]
}

config.macros.untiddledCall = {  // when called from listview, tiddler is unset, so we need to pass tiddler as parameter
	handler : function(place,macroName,params,wikifier,paramString) {
		var macroName = params.shift();
		if (macroName) var macro = config.macros[macroName];
		var title = params.shift();
		if (title) var tiddler = store.getTiddler(unescape(title));
		if (macro) macro.handler(place,macroName,params,wikifier,paramString,tiddler);		
	}
}

config.macros.deleteField = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly && params[0]) {
			fieldName = unescape(params[0]);
			var btn = createTiddlyButton(place,"delete", "delete "+fieldName,this.onClickDeleteField);
			btn.setAttribute("title",tiddler.title);
			btn.setAttribute("fieldName", fieldName);
		}
	},
	onClickDeleteField : function() {
		var title=this.getAttribute("title");
		var fieldName=this.getAttribute("fieldName");
		var tiddler = store.getTiddler(title);
		if (tiddler && fieldName && confirm("delete field " + fieldName+" from " + title +" tiddler ?")) {
			delete tiddler.fields[fieldName];	
			story.refreshTiddler(title,"ViewTemplate",true);
		}
		return false;
	}
}

config.macros.createField = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly) {
			var btn = createTiddlyButton(place,"create new", "create a new field",this.onClickCreateField);
			btn.setAttribute("title",tiddler.title);
		}
	},
	onClickCreateField : function() {
		var title=this.getAttribute("title");
		var tiddler = store.getTiddler(title);
		if (tiddler) {
			var fieldName = prompt("Field name","");
			if (store.getValue(tiddler,fieldName)) {
				window.alert("This field already exists.");
			}
			else if (fieldName) {
				var v = prompt("Field value","");
				tiddler.fields[fieldName]=v;
				story.refreshTiddler(title,"ViewTemplate",true);
			}
		}
		return false;
	}
}

config.macros.editFieldDialog = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly && params[0]) {
			fieldName = unescape(params[0]);
			var btn = createTiddlyButton(place,"edit", "edit this field",this.onClickEditFieldDialog);
			btn.setAttribute("title",tiddler.title);
			btn.setAttribute("fieldName", fieldName);
		}
	},
	onClickEditFieldDialog : function() {
		var title=this.getAttribute("title");
		var tiddler = store.getTiddler(title);
		var fieldName=this.getAttribute("fieldName");
		if (tiddler && fieldName) {
			var value = tiddler.fields[fieldName];
			value = value ? value : "";
			var lines = value.match(/\n/mg);
			lines = lines ? true : false;
			if (!lines || confirm("This field contains more than one line. Only the first line will be kept if you edit it here. Proceed ?")) {
				var v = prompt("Field value",value);
				tiddler.fields[fieldName]=v;
				story.refreshTiddler(title,"ViewTemplate",true);
			}
		}
		return false;
	}
}

config.macros.renameField = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly && params[0]) {
			fieldName = unescape(params[0]);
			var btn = createTiddlyButton(place,"rename", "rename "+fieldName,this.onClickRenameField);
			btn.setAttribute("title",tiddler.title);
			btn.setAttribute("fieldName", fieldName);
		}
	},
	onClickRenameField : function() {
		var title=this.getAttribute("title");
		var fieldName=this.getAttribute("fieldName");
		var tiddler = store.getTiddler(title);
		if (tiddler && fieldName) {
			var newName = prompt("Rename " + fieldName + " as ?", fieldName);
			if (newName) {
				tiddler.fields[newName]=tiddler.fields[fieldName];
				delete tiddler.fields[fieldName];	
				story.refreshTiddler(title,"ViewTemplate",true);
			}
		}
		return false;
	}
}
//}}}
/***
|Name:|FieldsEditorPlugin|
|Description:|//create//, //edit//, //view// and //delete// commands in toolbar <<toolbar fields>>.|
|Version:|1.0.2|
|Date:|Dec 21,2007|
|Source:|http://visualtw.ouvaton.org/VisualTW.html|
|Author:|Pascal Collin|
|License:|[[BSD open source license|License]]|
|~CoreVersion:|2.2.0|
|Browser:|Firefox 2.0; InternetExplorer 6.0, others|
!Demo:
On [[homepage|http://visualtw.ouvaton.org/VisualTW.html]], see [[FieldEditor example]]
!Installation:
*import this tiddler from [[homepage|http://visualtw.ouvaton.org/VisualTW.html]] (tagged as systemConfig)
*save and reload
*optionnaly : add the following css text in your StyleSheet : {{{#popup tr.fieldTableRow td {padding:1px 3px 1px 3px;}}}}
!Code
***/

//{{{

config.commands.fields.handlePopup = function(popup,title) {
	var tiddler = store.fetchTiddler(title);
	if(!tiddler)
		return;
	var fields = {};
	store.forEachField(tiddler,function(tiddler,fieldName,value) {fields[fieldName] = value;},true);
	var items = [];
	for(var t in fields) {
		var editCommand = "<<untiddledCall editFieldDialog "+escape(title)+" "+escape(t)+">>";
		var deleteCommand = "<<untiddledCall deleteField "+escape(title)+" "+escape(t)+">>";
		var renameCommand = "<<untiddledCall renameField "+escape(title)+" "+escape(t)+">>";
		items.push({field: t,value: fields[t], actions: editCommand+renameCommand+deleteCommand});
	}
	items.sort(function(a,b) {return a.field < b.field ? -1 : (a.field == b.field ? 0 : +1);});
	var createNewCommand = "<<untiddledCall createField "+escape(title)+">>";
	items.push({field : "", value : "", actions:createNewCommand });
	if(items.length > 0)
		ListView.create(popup,items,this.listViewTemplate);
	else
		createTiddlyElement(popup,"div",null,null,this.emptyText);
}

config.commands.fields.listViewTemplate = {
	columns: [
		{name: 'Field', field: 'field', title: "Field", type: 'String'},
		{name: 'Actions', field: 'actions', title: "Actions", type: 'WikiText'},
		{name: 'Value', field: 'value', title: "Value", type: 'WikiText'}
	],
	rowClasses: [
			{className: 'fieldTableRow', field: 'actions'}
	],
	buttons: [	//can't use button for selected then delete, because click on checkbox will hide the popup
	]
}

config.macros.untiddledCall = {  // when called from listview, tiddler is unset, so we need to pass tiddler as parameter
	handler : function(place,macroName,params,wikifier,paramString) {
		var macroName = params.shift();
		if (macroName) var macro = config.macros[macroName];
		var title = params.shift();
		if (title) var tiddler = store.getTiddler(unescape(title));
		if (macro) macro.handler(place,macroName,params,wikifier,paramString,tiddler);		
	}
}

config.macros.deleteField = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly && params[0]) {
			fieldName = unescape(params[0]);
			var btn = createTiddlyButton(place,"delete", "delete "+fieldName,this.onClickDeleteField);
			btn.setAttribute("title",tiddler.title);
			btn.setAttribute("fieldName", fieldName);
		}
	},
	onClickDeleteField : function() {
		var title=this.getAttribute("title");
		var fieldName=this.getAttribute("fieldName");
		var tiddler = store.getTiddler(title);
		if (tiddler && fieldName && confirm("delete field " + fieldName+" from " + title +" tiddler ?")) {
			delete tiddler.fields[fieldName];
			store.saveTiddler(tiddler.title,tiddler.title,tiddler.text,tiddler.modifier,tiddler.modified,tiddler.tags,tiddler.fields);
			story.refreshTiddler(title,"ViewTemplate",true);
		}
		return false;
	}
}

config.macros.createField = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly) {
			var btn = createTiddlyButton(place,"create new", "create a new field",this.onClickCreateField);
			btn.setAttribute("title",tiddler.title);
		}
	},
	onClickCreateField : function() {
		var title=this.getAttribute("title");
		var tiddler = store.getTiddler(title);
		if (tiddler) {
			var fieldName = prompt("Field name","");
			if (store.getValue(tiddler,fieldName)) {
				window.alert("This field already exists.");
			}
			else if (fieldName) {
				var v = prompt("Field value","");
				tiddler.fields[fieldName]=v;
				store.saveTiddler(tiddler.title,tiddler.title,tiddler.text,tiddler.modifier,tiddler.modified,tiddler.tags,tiddler.fields);
				story.refreshTiddler(title,"ViewTemplate",true);
			}
		}
		return false;
	}
}

config.macros.editFieldDialog = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly && params[0]) {
			fieldName = unescape(params[0]);
			var btn = createTiddlyButton(place,"edit", "edit this field",this.onClickEditFieldDialog);
			btn.setAttribute("title",tiddler.title);
			btn.setAttribute("fieldName", fieldName);
		}
	},
	onClickEditFieldDialog : function() {
		var title=this.getAttribute("title");
		var tiddler = store.getTiddler(title);
		var fieldName=this.getAttribute("fieldName");
		if (tiddler && fieldName) {
			var value = tiddler.fields[fieldName];
			value = value ? value : "";
			var lines = value.match(/\n/mg);
			lines = lines ? true : false;
			if (!lines || confirm("This field contains more than one line. Only the first line will be kept if you edit it here. Proceed ?")) {
				var v = prompt("Field value",value);
				tiddler.fields[fieldName]=v;
				store.saveTiddler(tiddler.title,tiddler.title,tiddler.text,tiddler.modifier,tiddler.modified,tiddler.tags,tiddler.fields);
				story.refreshTiddler(title,"ViewTemplate",true);
			}
		}
		return false;
	}
}

config.macros.renameField = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly && params[0]) {
			fieldName = unescape(params[0]);
			var btn = createTiddlyButton(place,"rename", "rename "+fieldName,this.onClickRenameField);
			btn.setAttribute("title",tiddler.title);
			btn.setAttribute("fieldName", fieldName);
		}
	},
	onClickRenameField : function() {
		var title=this.getAttribute("title");
		var fieldName=this.getAttribute("fieldName");
		var tiddler = store.getTiddler(title);
		if (tiddler && fieldName) {
			var newName = prompt("Rename " + fieldName + " as ?", fieldName);
			if (newName) {
				tiddler.fields[newName]=tiddler.fields[fieldName];
				delete tiddler.fields[fieldName];
				store.saveTiddler(tiddler.title,tiddler.title,tiddler.text,tiddler.modifier,tiddler.modified,tiddler.tags,tiddler.fields);
				story.refreshTiddler(title,"ViewTemplate",true);
			}
		}
		return false;
	}
}

config.shadowTiddlers.StyleSheetFieldsEditor = "/*{{{*/\n";
config.shadowTiddlers.StyleSheetFieldsEditor += ".fieldTableRow td {padding : 1px 3px}\n";
config.shadowTiddlers.StyleSheetFieldsEditor += ".fieldTableRow .button {border:0; padding : 0 0.2em}\n";
config.shadowTiddlers.StyleSheetFieldsEditor +="/*}}}*/";
store.addNotification("StyleSheetFieldsEditor", refreshStyles);

//}}}
/***
|Description: |Server adaptor for talking to static TiddlyWiki files|
|Source: |http://trac.tiddlywiki.org/browser/Trunk/core/js/FileAdaptor.js?rev=3558&format=txt|
***/

function FileAdaptor()
{
	this.host = null;
	this.store = null;
	return this;
}

FileAdaptor.serverType = 'file';

FileAdaptor.prototype.setContext = function(context,userParams,callback)
{
	if(!context) context = {};
	context.userParams = userParams;
	if(callback) context.callback = callback;
	context.adaptor = this;
	if(!context.host)
		context.host = this.host;
	context.host = FileAdaptor.fullHostName(context.host);
	if(!context.workspace)
		context.workspace = this.workspace;
	return context;
};

FileAdaptor.fullHostName = function(host)
{
	if(!host)
		return '';
	if(!host.match(/:\/\//))
		host = 'http://' + host;
	return host;
};

FileAdaptor.minHostName = function(host)
{
	return host ? host.replace(/^http:\/\//,'').replace(/\/$/,'') : '';
};

/***
// Open the specified host
//#   host - url of host (eg, "http://www.tiddlywiki.com/" or "www.tiddlywiki.com")
//#   context is itself passed on as a parameter to the callback function
//#   userParams - user settable object object that is passed on unchanged to the callback function
//#   callback - optional function to be called on completion
//# Return value is true if the request was successfully issued, false if this connector doesn't support openHost(),
//#   or an error description string if there was a problem
//# The callback parameters are callback(context)
//#   context.status - true if OK, string if error
//#   context.adaptor - reference to this adaptor object
//#   userParams - parameters as originally passed into the openHost function
***/
FileAdaptor.prototype.openHost = function(host,context,userParams,callback)
{
	this.host = host;
	context = this.setContext(context,userParams,callback);
	context.status = true;
	if(callback)
		window.setTimeout(function() {context.callback(context,userParams);},10);
	return true;
};

FileAdaptor.loadTiddlyWikiCallback = function(status,context,responseText,url,xhr)
{
	context.status = status;
	if(!status) {
		context.statusText = "Error reading file: " + xhr.statusText;
	} else {
		//# Load the content into a TiddlyWiki() object
		context.adaptor.store = new TiddlyWiki();
		if(!context.adaptor.store.importTiddlyWiki(responseText))
			context.statusText = config.messages.invalidFileError.format([url]);
	}
	context.complete(context,context.userParams);
};

/***
// Get the list of workspaces on a given server
//#   context - passed on as a parameter to the callback function
//#   userParams - user settable object object that is passed on unchanged to the callback function
//#   callback - function to be called on completion
//# Return value is true if the request was successfully issued, false if this connector doesn't support getWorkspaceList(),
//#   or an error description string if there was a problem
//# The callback parameters are callback(context,userParams)
//#   context.status - true if OK, false if error
//#   context.statusText - error message if there was an error
//#   context.adaptor - reference to this adaptor object
//#   userParams - parameters as originally passed into the getWorkspaceList function
***/
FileAdaptor.prototype.getWorkspaceList = function(context,userParams,callback)
{
	context = this.setContext(context,userParams,callback);
	context.workspaces = [{title:"(default)"}];
	context.status = true;
	if(callback)
		window.setTimeout(function() {callback(context,userParams);},10);
	return true;
};

/***
// Open the specified workspace
//#   workspace - name of workspace to open
//#   context - passed on as a parameter to the callback function
//#   userParams - user settable object object that is passed on unchanged to the callback function
//#   callback - function to be called on completion
//# Return value is true if the request was successfully issued
//#   or an error description string if there was a problem
//# The callback parameters are callback(context,userParams)
//#   context.status - true if OK, false if error
//#   context.statusText - error message if there was an error
//#   context.adaptor - reference to this adaptor object
//#   userParams - parameters as originally passed into the openWorkspace function
***/
FileAdaptor.prototype.openWorkspace = function(workspace,context,userParams,callback)
{
	this.workspace = workspace;
	context = this.setContext(context,userParams,callback);
	context.status = true;
	if(callback)
		window.setTimeout(function() {callback(context,userParams);},10);
	return true;
};

/***
// Gets the list of tiddlers within a given workspace
//#   context - passed on as a parameter to the callback function
//#   userParams - user settable object object that is passed on unchanged to the callback function
//#   callback - function to be called on completion
//#   filter - filter expression
//# Return value is true if the request was successfully issued,
//#   or an error description string if there was a problem
//# The callback parameters are callback(context,userParams)
//#   context.status - true if OK, false if error
//#   context.statusText - error message if there was an error
//#   context.adaptor - reference to this adaptor object
//#   context.tiddlers - array of tiddler objects
//#   userParams - parameters as originally passed into the getTiddlerList function
***/
FileAdaptor.prototype.getTiddlerList = function(context,userParams,callback,filter)
{
	context = this.setContext(context,userParams,callback);
	if(!context.filter)
		context.filter = filter;
	context.complete = FileAdaptor.getTiddlerListComplete;
	if(this.store) {
		var ret = context.complete(context,context.userParams);
	} else {
		ret = loadRemoteFile(context.host,FileAdaptor.loadTiddlyWikiCallback,context);
		if(typeof ret != "string")
			ret = true;
	}
	return ret;
};

FileAdaptor.getTiddlerListComplete = function(context,userParams)
{
	if(context.filter) {
		context.tiddlers = context.adaptor.store.filterTiddlers(context.filter);
	} else {
		context.tiddlers = [];
		context.adaptor.store.forEachTiddler(function(title,tiddler) {context.tiddlers.push(tiddler);});
	}
	for(var i=0; i<context.tiddlers.length; i++) {
		context.tiddlers[i].fields['server.type'] = FileAdaptor.serverType;
		context.tiddlers[i].fields['server.host'] = FileAdaptor.minHostName(context.host);
		context.tiddlers[i].fields['server.page.revision'] = context.tiddlers[i].modified.convertToYYYYMMDDHHMM();
	}
	context.status = true;
	if(context.callback) {
		window.setTimeout(function() {context.callback(context,userParams);},10);
	}
	return true;
};

FileAdaptor.prototype.generateTiddlerInfo = function(tiddler)
{
	var info = {};
	info.uri = tiddler.fields['server.host'] + "#" + tiddler.title;
	return info;
};

/***
// Retrieve a tiddler from a given workspace on a given server
//#   title - title of the tiddler to get
//#   context - passed on as a parameter to the callback function
//#   userParams - user settable object object that is passed on unchanged to the callback function
//#   callback - function to be called on completion
//# Return value is true if the request was successfully issued,
//#   or an error description string if there was a problem
//# The callback parameters are callback(context,userParams)
//#   context.status - true if OK, false if error
//#   context.statusText - error message if there was an error
//#   context.adaptor - reference to this adaptor object
//#   context.tiddler - the retrieved tiddler, or null if it cannot be found
//#   userParams - parameters as originally passed into the getTiddler function
***/
FileAdaptor.prototype.getTiddler = function(title,context,userParams,callback)
{
	context = this.setContext(context,userParams,callback);
	context.title = title;
	context.complete = FileAdaptor.getTiddlerComplete;
	return context.adaptor.store ? 
		context.complete(context,context.userParams) :
		loadRemoteFile(context.host,FileAdaptor.loadTiddlyWikiCallback,context);
};

FileAdaptor.getTiddlerComplete = function(context,userParams)
{
	var t = context.adaptor.store.fetchTiddler(context.title);
	t.fields['server.type'] = FileAdaptor.serverType;
	t.fields['server.host'] = FileAdaptor.minHostName(context.host);
	t.fields['server.page.revision'] = t.modified.convertToYYYYMMDDHHMM();
	context.tiddler = t;
	context.status = true;
	if(context.allowSynchronous) {
		context.isSynchronous = true;
		context.callback(context,userParams);
	} else {
		window.setTimeout(function() {callback(context,userParams);},10);
	}
	return true;
};

FileAdaptor.prototype.close = function()
{
	delete this.store;
	this.store = null;
};

config.adaptors[FileAdaptor.serverType] = FileAdaptor;

config.defaultAdaptor = FileAdaptor.serverType;
/***
|Name|FileDropPlugin|
|Source|http://www.TiddlyTools.com/#FileDropPlugin|
|Version|2.1.4|
|Author|[[BradleyMeck]] and [[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|drag-and-drop files/directories to create tiddlers|
''requires FireFox or another Mozilla-compatible browser.''
!!!!!Usage
<<<
This plugin automatically creates tiddlers from files that are dropped onto an open TiddlyWiki document.  You can drop multiple selected files and/or folders to create many tiddlers at once.  New tiddler titles are created using the filename of each dropped file (i.e., omitting the path).  If a title is already in use, you are prompted to enter a new title for that file.  If you drop a folder, you will be asked if you want to create a simple 'directory list' of files in a single tiddler or create one tiddler for each file in that folder.  

By default, it is assumed that all dropped files contain text.  However, if [[AttachFilePlugin]], [[AttachFilePluginFormatters]] and [[AttachFileMIMETypes]] are installed, then you can drop ''//binary data files//'' as well as text files.  If the MIME type of a dropped file is not "text/plain", then AttachFilePlugin is used to create an 'attachment' tiddler, rather than creating a simple text tiddler.

When creating text tiddlers, you can embed a //link// to the original external file at the top of the new tiddler, in addition to (or instead of) the text content itself.  The format for this link (see Configuration, below) uses embedded ''//replacement markers//'' that allow you to generate a variety of wiki-formatted output, where:
*%0 = filename (without path)
*%1 = local """file://...""" URL
*%2 = local path and filename (OS-native format)
*%3 = relative path (if subdirectory of current document directory)
*%4 = file size
*%5 = file date
*%6 = current date
*%7 = current ~TiddlyWiki username
*\n = newline
By default, the link format uses the filename (%0) and local URL (%1), enclosed within a //hidden section// syntax, like this:
{{{
/%
!link
[[%0|%1]]
!end
%/
}}}
This permits the link to be embedded along with the text content, without changing the appearance of that content when the tiddler is viewed.  To display the link in your tiddler content, use:
{{{
<<tiddler TiddlerName##link>>
}}}
<<<
!!!!!Configuration
<<<
__FileDropPlugin options:__
<<option chkFileDropContent>>Copy file content into tiddlers if smaller than: <<option txtFileDropDataLimit>> bytes
&nbsp; //(note: excess text content will be truncated, oversized binary files will skipped, 0=no limit)//
<<option chkFileDropLink>>Generate external links to files, using this format:{{editor{<html><nowiki><textarea rows="4" onchange="
config.macros.option.propagateOption('txtFileDropLinkFormat','value',this.value.escapeLineBreaks(),'input');
"></textarea></html><<tiddler {{
	var ta=place.lastChild.getElementsByTagName('textarea')[0];
	var v=config.options.txtFileDropLinkFormat.unescapeLineBreaks();
	ta.value=v;
"";}}>>}}}<<option chkFileDropTrimFilename>>Omit file extensions from tiddler titles
<<option chkFileDropDisplay>>Automatically display newly created tiddlers
Tag newly created tiddlers with: <<option txtFileDropTags>>

__FileDropPlugin+AttachFilePlugin options:__ //(binary file data as encoded 'base64' text)//
<<option chkFileDropAttachLocalLink>> attachment includes reference to local path/filename
>Note: if the plugin does not seem to work, enter ''about:config'' in the Firefox address bar, and make sure that {{{signed.applets.codebase_principal_support}}} is set to ''true''
<<<
!!!!!Examples (custom handler functions)
<<<
Adds a single file with confirmation and prompting for title:
{{{
config.macros.fileDrop.addEventListener('application/x-moz-file',
	function(nsiFile) {
		var msg='You have dropped the file:\n'
			+nsiFile.path+'\n'
			+'onto the page, it will be imported as a tiddler. Is that ok?'
		if(confirm(msg)) {
			var newDate = new Date();
			var title = prompt('what would you like to name the tiddler?');
			store.saveTiddler(title,title,loadFile(nsiFile.path),config.options.txtUserName,newDate,[]);
		}
		return true;
	});
}}}
Adds a single file without confirmation, using path/filename as tiddler title:
{{{
config.macros.fileDrop.addEventListener('application/x-moz-file',
	function(nsiFile) {
		var newDate = new Date();
		store.saveTiddler(nsiFile.path,nsiFile.path,loadFile(nsiFile.path),config.options.txtUserName,newDate,[]);
		story.displayTiddler(null,nsiFile.path)
		return true;
	});
}}}
<<<
!!!!!Revisions
<<<
2010.03.06 2.1.4 added event listener for 'dragover' (for FireFox 3.6+)
2009.10.10 2.1.3 fixed IE code error
2009.10.08 2.1.2 fixed chkFileDropContent bypass handling for binary attachments
2009.10.07 2.1.0 added chkFileDropContent and chkFileDropLink/txtFileDropLinkFormat
2009.08.19 2.0.0 fixed event listener registration for FireFox 3.5+.  Also, merged with FileDropPluginConfig, with code cleanup/reduction
2008.08.11 1.5.1 added chkFileDropAttachLocalLink option to allow suppression of local path/file link
2007.xx.xx *.*.* add suspend/resume of notifications to improve performance when multiple files are handled
2007.01.01 0.9.9 extensions for AttachFilePlugin
2006.11.04 0.1.1 initial release by Bradley Meck
<<<
!!!!!Code
***/
//{{{
version.extensions.FileDropPlugin={major:2, minor:1, revision:4, date: new Date(2010,3,6)};

config.macros.fileDrop = {
	customDropHandlers: [],
	addEventListener: function(paramflavor,func,inFront) {
		var obj={}; obj.flavor=paramflavor; obj.handler=func;
		if (!inFront) this.customDropHandlers.push(obj);
		else this.customDropHandlers.shift(obj);
	},
	dragDropHandler: function(evt) {
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
		var dragService = Components.classes['@mozilla.org/widget/dragservice;1'].getService(Components.interfaces.nsIDragService);
		var dragSession = dragService.getCurrentSession();
		var transferObject = Components.classes['@mozilla.org/widget/transferable;1'].createInstance();
		transferObject = transferObject.QueryInterface(Components.interfaces.nsITransferable);
		transferObject.addDataFlavor('application/x-moz-file');
		var numItems = dragSession.numDropItems;
		if (numItems>1) {
			clearMessage();
			displayMessage('Reading '+numItems+' files...');
			store.suspendNotifications();
		}
		for (var i = 0; i < numItems; i++) {
			dragSession.getData(transferObject, i);
			var dataObj = {};
			var dropSizeObj = {};
			for(var ind=0; ind<config.macros.fileDrop.customDropHandlers.length; ind++) {
				var item = config.macros.fileDrop.customDropHandlers[ind];
				if(dragSession.isDataFlavorSupported(item.flavor)) {
					transferObject.getTransferData(item.flavor, dataObj, dropSizeObj);
					var droppedFile = dataObj.value.QueryInterface(Components.interfaces.nsIFile);
					var result = item.handler.call(item,droppedFile);
					evt.stopPropagation();
					evt.preventDefault();
					if (result) break;
				}
			}
		}
		if (numItems>1) {
			store.resumeNotifications();
			store.notifyAll();
			displayMessage(numItems+' files have been processed');
		}
	}
}
//}}}
/***
!!!!!window event handlers
***/
//{{{
if(!window.event) {
	window.addEventListener('dragdrop',	// FireFox3.1-
		config.macros.fileDrop.dragDropHandler, true);
	window.addEventListener('drop',		// FireFox3.5+
		config.macros.fileDrop.dragDropHandler, true);
	window.addEventListener('dragover',	// FireFox3.6+
		function(e){e.stopPropagation();e.preventDefault();}, true); 
}
//}}}
/***
!!!!!handler for files, directories and binary attachments (see [[AttachFilePlugin]])
***/
//{{{
var defaults={
	chkFileDropDisplay:		true,
	chkFileDropTrimFilename:	false,
	chkFileDropContent:		true,
	chkFileDropLink:		true,
	txtFileDropLinkFormat:		'/%\\n!link\\n[[%0|%1]]\\n!end\\n%/',
	txtFileDropDataLimit:		'32768',
	chkFileDropAttachLocalLink:	true,
	txtFileDropTags:		''
};
for (var id in defaults) if (config.options[id]===undefined)
	config.options[id]=defaults[id];

config.macros.fileDrop.addEventListener('application/x-moz-file',function(nsiFile) {
	var co=config.options; // abbrev
	var header='Index of %0\n^^(as of %1)^^\n|!filename| !size | !modified |\n';
	var item='|[[%0|%1]]| %2|%3|\n';
	var footer='Total of %0 bytes in %1 files\n';
	var now=new Date();
	var files=[nsiFile];
	if (nsiFile.isDirectory()) {
		var folder=nsiFile.directoryEntries;
		var files=[];
		while (folder.hasMoreElements()) {
			var f=folder.getNext().QueryInterface(Components.interfaces.nsILocalFile);
			if (f instanceof Components.interfaces.nsILocalFile && !f.isDirectory()) files.push(f);
		}
		var msg=nsiFile.path.replace(/\\/g,'/')+'\n\n';
		msg+='contains '+files.length+' files… ';
		msg+='select OK to attach all files or CANCEL to create a list...';
		if (!confirm(msg)) { // create a list in a tiddler
			var title=nsiFile.leafName; // tiddler name is last directory name in path
			while (title && title.length && store.tiddlerExists(title)) {
				if (confirm(config.messages.overwriteWarning.format([title]))) break;
				title=prompt('Enter a new tiddler title',nsiFile.path.replace(/\\/g,'/'));
			}
			if (!title || !title.length) return true; // cancelled
			var text=header.format([nsiFile.path.replace(/\\/g,'/'),now.toLocaleString()]);
			var total=0;
			for (var i=0; i<files.length; i++) { var f=files[i];
				var name=f.leafName;
				if (co.chkFileDropTrimFilename)
					{ var p=name.split('.'); if (p.length>1) p.pop(); name=p.join('.'); }
				var path='file:///'+f.path.replace(/\\/g,'/');
				var size=f.fileSize; total+=size;
				var when=new Date(f.lastModifiedTime).formatString('YYYY.0MM.0DD 0hh:0mm:0ss');
				text+=item.format([name,path,size,when]);
			}
			text+=footer.format([total,files.length]);
			var newtags=co.txtFileDropTags?co.txtFileDropTags.readBracketedList():[];
			store.saveTiddler(null,title,text,co.txtUserName,now,newtags);
			if (co.chkFileDropDisplay) story.displayTiddler(null,title);
			return true;
		}
	}
	if (files.length>1) store.suspendNotifications();
	for (i=0; i<files.length; i++) {
		var file=files[i];
		if (file.isDirectory()) continue; // skip over nested directories
		var type='text/plain';
		var title=file.leafName; // tiddler name is file name
		if (co.chkFileDropTrimFilename)
			{ var p=title.split('.'); if (p.length>1) p.pop(); title=p.join('.'); }
		var name=file.leafName;
		var path=file.path;
		var url='file:///'+path.replace(/\\/g,'/');
		var size=file.fileSize;
		var when=new Date(file.lastModifiedTime);
		var now=new Date();
		var who=config.options.txtUserName;
		var h=document.location.href;
		var cwd=getLocalPath(decodeURIComponent(h.substr(0,h.lastIndexOf('/')+1)));
		var relpath=path.startsWith(cwd)?'./'+path.substr(cwd.length):path;
		while (title && title.length && store.tiddlerExists(title)) {
			if (confirm(config.messages.overwriteWarning.format([title]))) break;
			title=prompt('Enter a new tiddler title',path.replace(/\\/g,'/'));
		}
		if (!title || !title.length) continue; // cancelled
		if (config.macros.attach) {
			type=config.macros.attach.getMIMEType(name,'');
			if (!type.length)
				type=prompt('Unknown file type.  Enter a MIME type','text/plain');
			if (!type||!type.length) continue; // cancelled
		}
		var newtags=co.txtFileDropTags?co.txtFileDropTags.readBracketedList():[];
		if (type=='text/plain' || !co.chkFileDropContent) {
			var txt=''; var fmt=co.txtFileDropLinkFormat.unescapeLineBreaks();
			if (co.chkFileDropLink) txt+=fmt.format([name,url,path,relpath,size,when,now,who]);
			if (co.chkFileDropContent) {
				var out=loadFile(path); var lim=co.txtFileDropDataLimit;
				txt+=co.txtFileDropDataLimit?out.substr(0,lim):out;
				if (size>lim) txt+='\n----\nfilesize ('+size+')'
					+' is larger than FileDrop limit ('+lim+')...\n'
					+'additional content has been omitted';
			}
			store.saveTiddler(null,title,txt,co.txtUserName,now,newtags);
		} else {
			var embed=co.chkFileDropContent
				&& (!co.txtFileDropDataLimit||size<co.txtFileDropDataLimit);
			newtags.push('attachment'); newtags.push('excludeMissing');
			config.macros.attach.createAttachmentTiddler(path,
				now.formatString(config.macros.timeline.dateFormat),
				'attached by FileDropPlugin', newtags, title,
				embed, co.chkFileDropAttachLocalLink, false,
				relpath, '', type,!co.chkFileDropDisplay);
		}
		if (co.chkFileDropDisplay) story.displayTiddler(null,title);
	}
	if (files.length>1) { store.resumeNotifications(); store.notifyAll(); }
	return true;
})
//}}}
<data>{"abstract":"[[Finger fangen]], eine Übung, um Teilnehmer mit Spaß in Schwung zu bringen — ohne tieferen Sinn. Eignet sich auch für Kindergeburtstage..."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.kiwelt.de/images/finger2.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Finger fangen","abstract") </script>

!Finger fangen
<script> return "<<tiddler [[Finger fangen##Overview]]>>" </script> 

!Objectives
* Aufwärmen
* Reaktionsschnelligkeit und Konzentration. 

!Timing
5 min

!Audience
Group

!Materials
* 

!Procedure
Die Teilnehmer stehen im Kreis, jeder hält seine rechte Hand so, dass die Handfläche nach oben zeigt. 
Der Nachbar stellt den Zeigefinger seiner linken Hand auf die Handfläche. 
Auf ein Kommando des Trainers ("1, 2, 3") versucht jeder, den Finger seines Nachbarn zu greifen und gleichzeitig seinen Finger wegzuziehen.

Nach ein paar Versuchen wird die Hand getauscht, d.h. man versucht nun, den Zeigefinger der rechten Hand des anderen Nachbarn mit seiner linken Hand zu fangen.

!Debriefing

!Quelle
[[Zamyat M. Klein: Das tanzende Kamel. Kreative und bewegte Spiele für Trainings und Seminare, managerSeminare 2008, S. 57| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FDas-tanzende-Kamel-Kreative-Trainings%2Fdp%2F3936075719%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214996144%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Finger+fangen+%28jt%29]]
* [[Unesco, freie Lernressourcen| www.opentrainingplatform.org]]
/***
|''Name''|FirefoxPrivilegesPlugin|
|''Description''|Create a backstage tab to manage Firefox url privileges|
|''Author''|Xavier Vergés (xverges at gmail dot com)|
|''Version''|1.1.1 ($Rev: 4266 $)|
|''Date''|$Date: 2008-04-06 09:04:49 +0200 (dom, 06 abr 2008) $|
|''Status''|@@beta@@|
|''Source''|http://firefoxprivileges.tiddlyspot.com/|
|''CodeRepository''|http://trac.tiddlywiki.org/browser/Trunk/contributors/XavierVerges/plugins/FirefoxPrivilegesPlugin.js|
|''License''|BSD tbd|
|''CoreVersion''|2.2.4 (maybe 2.2+?)|
|''Feedback''|http://groups.google.com/group/TiddlyWiki|
|''BookmarkletReady''|http://icanhaz.com/firefoxprivileges|
|''Browser''|Mozilla. Tested under Firefox 2.0.0.12 and Firefox 3.0b4|
|''Documentation''|http://firefoxprivileges.tiddlyspot.com/#HowTo|
/%
!Description
!Notes
!Usage
!Revision History
!!v1.0 (2008-03-23)
* First public version
%/
!Usage
The wizard can be opened from the backstage or using the macro {{{<<firefoxPrivileges>>}}}
The step to show when opening the wizard can be set with the {{{txtPrivWizardDefaultStep}}} option: <<option txtPrivWizardDefaultStep>>
!Code
***/
//{{{
if(window.Components) {
config.macros.firefoxPrivileges = {};
config.macros.firefoxPrivileges.lingo = {};
/*
//}}}
!!! Strings to translate
//{{{
*/
merge(config.macros.firefoxPrivileges.lingo ,{
	wizardTitle: "Manage Firefox Privileges",
	learnStepTitle: "1. Learn about the risks of giving privileges to file: urls",
	learnStepHtml: "<h3>Local files</h3><p>Firefox can be configured to grant the same security privileges to every html document loaded from disk (those <i>file:</i> urls), or to grant different privileges on a per file basis. Local TiddyWikis need some high security privileges in order to let you save changes to disk, or to import tiddlers from remote servers. Unfortunately, these same privileges can potentially be used by the bad guys to launch programs, get files from your disk and upload them somewhere, access your browsing history...</p><p>While it is more convenient to let Firefox give all your local files the same security privileges, and I'm not aware of any malware attack that tries to take advantage of privileged <i>file:</i> urls, an ounce of prevention is worth a pound of cure.</p><p>You can learn more about this by reading <a href='http://www.mozilla.org/projects/security/components/per-file.html' class='externalLink'>Per-File Permissions</a> and <a href='http://www.mozilla.org/projects/security/components/signed-scripts.html#privs-list' class='externalLink'>JavaScript Security: Signed Script</a> at mozilla.org.</p><h3>Remote files</h3><p>When a remote document (<i>http:</i> urls) requests especial privileges, Firefox <ul><li>checks the value of <code>signed.applets.codebase_principal_support</code>, a preference that can be configured from the page that is loaded when you type <code>about:config</code> in the address bar</li><li>if the previous value is set to false, Firefox denies silently the request</li><li>if the previous value is set to true, Firefox looks for the document's domain in the list of privileges urls that can be configured from this wizard, and, if not there, asks the user to grant the privilege</li></ul><p>Note that, in this case, and unlike when dealing with local files, Firefox will only take into account the document's domain instead of performing an exact match of the url.</p><p>Take a look at <a href='http://messfromabove.tiddlyspot.com' class='externalLink'>http://messfromabove.tiddlyspot.com</a> to learn more about the nice and nasty possibilities that this setting provides.</p><h3>This Wizard</h3><p>This wizard will help you to grant the required privileges to your TiddlyWikis, local or remote, and warn you if you have enabled a dangerous default. To do so, Firefox will probably prompt you to grant it some special privileges in order to list and modify the list of privileged urls.</p><p>Please note that changing the privileges for an url may not have effect until you reload it in the browser.</p><input type='hidden' name='mark'></input>",
	learnStepButton: "1. Learn about the risks",
	learnStepButtonTooltip: "Learn why 'Remember this' is an unsafe choice in security prompts",
	grantStepTitle: "2. Grant privileges to individual local documents or remote domains",
	grantStepHtml: "Url: <input type='text' size=80 name='txtUrl'><br/><br/><input type='checkbox' checked='true' name='chkUniversalXPConnect'>Grant rights required to save to disk (Run or install software on your machine — UniversalXPConnect)</input><br/><input type='checkbox' checked='true' name='chkUniversalBrowserRead'>Grant rights required to import tiddlers from servers or access TiddlySpot (Read and upload local files — UniversalBrowserRead)</input><br/><input type='checkbox' name='chkUniversalBrowserWrite'>Modify any open window — UniversalBrowserWrite</input><br/><input type='checkbox' name='chkUniversalFileRead'>Read and upload local files — UniversalFileRead</input><br/><input type='checkbox' name='chkCapabilityPreferencesAccess'>By-pass core security settings — CapabilityPreferencesAccess</input><br/><input type='checkbox' name='chkUniversalPreferencesRead'>Read program settings — UniversalPreferencesRead</input><br/><input type='checkbox' name='chkUniversalPreferencesWrite'>Modify program settings — UniversalPreferencesWrite</input><br/><input type='button' class='button' name='btnGrant' value='Set privileges'/>",
	grantStepButton: "2. Set privileges",
	grantStepButtonTooltip: "Manage privileges for this or other docs",
	viewStepTitle: "3. Granted privileges",
	viewStepHtml: "<input type='hidden' name='mark'></input>",
	viewStepButton: "3. View privileges",
	viewStepButtonTooltip: "List granted privileges, and optionally reset them",
	viewStepEmptyMsg: "Asking for temporary privileges to list permanent privileges...",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'url', type: 'Selector'},
			{name: 'Url', field: 'url', title: "Url", type: 'LongLink'},
			{name: 'Granted', field: 'granted', title: "Granted", type: 'StringList'},
			{name: 'Denied', field: 'denied', title: "Denied", type: 'StringList'},
			{name: 'Handle', field: 'handle', title: "Handle", type: 'String'},
            {name: 'Notes', field: 'notes', title: "Notes", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'highlight'},
			{className: 'error', field: 'warning'}
			]
		},
	listResetButton: "Reset the privileges of the selected urls",
	noteDangerous: "This is dangerous",
	noteNoEffect: "This has no effect",
	noteThisUrl: "This document's url",
	noteTheUrlYouUpdated: "The url you just updated",
	errNoUrl: "The url is required",
	errNotAuthorized: "Not enough privileges. Maybe you are trying this from a tiddlywiki loaded from a server?",
	msgUpdating: "Updating privileges for %0",
	msgSetting: "Setting privileges for %0",
	msgResetting: "Resetting privileges for %0"
});
merge(config.optionsDesc,{
	txtPrivWizardDefaultStep: "Step to show when opening the 'Manage Firefox Privileges' wizard"
});
merge(config.tasks,{
	firefoxPrivileges: {text: "security", tooltip: "Work with Firefox url privileges", content: '<<firefoxPrivileges>>'}
});
/*
//}}}
!!! Regular code
//{{{
*/
config.backstageTasks.pushUnique("firefoxPrivileges");
if (typeof(config.options.txtPrivWizardDefaultStep) === "undefined"){
	config.options.txtPrivWizardDefaultStep = "1";
}

(function(){

var plugin = config.macros.firefoxPrivileges;
var lingo = plugin.lingo;
plugin.privAccessCapabilities = "UniversalXPConnect CapabilityPreferencesAccess";
plugin.stepNames = ["learn", "grant", "view"];
plugin.lastUrl = document.location.toString();

plugin.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
	var wizard = new Wizard();
	wizard.createWizard(place,lingo.wizardTitle);
	var step = parseInt(config.options.txtPrivWizardDefaultStep);
	step = (isNaN(step)||(step<=0)||(step>3))? 0 : step-1;
	plugin.step(wizard, step);
};
plugin.buttons = (function(){
	var onclick = {};
	for (var ii=0; ii<plugin.stepNames.length; ii++) {
		onclick[plugin.stepNames[ii]] = 
			(function() {
				var index = ii;
				var handler = function(e) {
					plugin.step(new Wizard(resolveTarget(e)), index);
					return false;
				};
				return handler;})();
	}
	var getButtons = function(index) {
		var buttons = [];
		for (var ii= 0; ii<plugin.stepNames.length; ii++) {
			if (ii !== index) {
				var name = plugin.stepNames[ii];
				buttons.push({
					onClick: onclick[name],
					caption: lingo[name+"StepButton"],
					tooltip: lingo[name+"StepButtonTooltip"]
				});
			}
		}
		return buttons;
	};
	return getButtons;
})();
plugin.step = function(wizard, stepIndex, extraParams)
{
	var name = plugin.stepNames[stepIndex];
	var stepResult = {};
	wizard.addStep(lingo[name+"StepTitle"],lingo[name+"StepHtml"]);
	wizard.setButtons(plugin.buttons(stepIndex));
	if (plugin[name+"StepProcess"]) {
		plugin[name+"StepProcess"](wizard, extraParams);
	}
};
plugin.getMarkedDiv = function(wizard)
{
	var mark = wizard.getElement("mark");
	var div = document.createElement("div");
	mark.parentNode.insertBefore(div,mark);
	return div;
};
plugin.learnStepProcess = function(wizard)
{
	var src = config.optionsDesc.txtPrivWizardDefaultStep + ": <<option txtPrivWizardDefaultStep>>";
	wikify(src, plugin.getMarkedDiv(wizard));
}
plugin.grantStepProcess = function(wizard)
{
	wizard.getElement("btnGrant").onclick = plugin.btnSetPrivileges;
	wizard.getElement("txtUrl").value = plugin.lastUrl;
};
plugin.viewStepProcess = function(wizard, extraParams)
{
	var listWrapper = plugin.getMarkedDiv(wizard);
	listWrapper.innerHTML = lingo.viewStepEmptyMsg;

	var html = [];
	try {
		if (!extraParams || extraParams.reqAcccess) {
			netscape.security.PrivilegeManager.enablePrivilege(plugin.privAccessCapabilities);
		}

		var thisUrl = document.location.toString();
		var privs = plugin.getPrivilegedUrls(false);
		var listItems = [];
		for (var handle in privs) {
			if (privs.hasOwnProperty(handle)) {
				var priv = privs[handle];
				if ((priv.url === "file://") ||
					(priv.url.indexOf(" ") !== -1)) {
					priv.warning = true;
					priv.notes = (priv.url === "file://")? lingo.noteDangerous:lingo.noteNoEffect;
				} else if ((priv.url === thisUrl) || 
				           (priv.url === plugin.lastUrl)) {
					priv.highlight = true;
					priv.notes = (priv.url === thisUrl)? lingo.noteThisUrl:lingo.noteTheUrlYouUpdated;
				} 
				listItems.push(priv);
			}
		}
		var sortFunc = function(a,b) {
			if(a.url > b.url) {return 1;}
			if(a.url < b.url) {return -1;}
			return 0;
		};
		listItems.sort(sortFunc);
		listWrapper.innerHTML = "";
		var listView = ListView.create(listWrapper, listItems, lingo.listViewTemplate);
		wizard.setValue("listView",listView);

		createTiddlyButton(listWrapper, lingo.listResetButton, "", plugin.btnResetPrivileges);
	} catch (ex) {
		listWrapper.innerHTML = "Error: " + ex;
	}
};
plugin.btnSetPrivileges = function(ev)
{
	var wizard = new Wizard(this);
	var checkboxes = wizard.bodyElem.getElementsByTagName("input");
	var grant = [];
	for(var t=0; t<checkboxes.length; t++) {
		var cb = checkboxes[t];
		if((cb.getAttribute("type") === "checkbox")&&cb.checked) {
			grant.push(cb.name.substring(3));
		}
	}
	var url = wizard.getElement("txtUrl").value;
	if (!url) {
		alert(lingo.errNoUrl);
	} else {
		plugin.lastUrl = url;
		var viewStepExtraParams = {reqAcccess: false};
		var gotPrivileges = false;
		try {
			netscape.security.PrivilegeManager.enablePrivilege(config.macros.firefoxPrivileges.privAccessCapabilities);
			gotPrivileges = true;
		} catch(ex) {}
		if (gotPrivileges) {
			plugin.setUrlPrivilege(false, url, grant, false);
			plugin.step(wizard, 2, viewStepExtraParams);
		} else {
			alert(lingo.errNotAuthorized);
		}
	}
	return false;
};
plugin.btnResetPrivileges = function(ev)
{
	var wizard = new Wizard(this);
	var listView = wizard.getValue("listView");
	var urls = ListView.getSelectedRows(listView);
	if(urls.length === 0) {
		alert(config.messages.nothingSelected);
	} else {
		netscape.security.PrivilegeManager.enablePrivilege(config.macros.firefoxPrivileges.privAccessCapabilities);
		for (var ii=0; ii<urls.length; ii++) {
			plugin.setUrlPrivilege(false, urls[ii], [], true);
		}
		plugin.step(wizard, 2, {reqAcccess: false});
	}
	return false;
};
plugin.setUrlPrivilege = function(reqAccess, url, rights, reset)
{
	function getFreeHandle(dict, prefix) {
		var handle = prefix;
		var ii = 0;
		while("undefined" !== typeof(dict[handle])) {
			ii++;
			handle = prefix + ii;
		}
		return handle;
	}
	if (reqAccess) {
		netscape.security.PrivilegeManager.enablePrivilege(plugin.privAccessCapabilities);
	}
	var isUpdate = true;
	var urlHandle = "";
	var urls = plugin.getPrivilegedUrls(false);
	for (var handle in urls) {
		if (urls[handle].url === url) {
			urlHandle = handle;
			break;
		}
	}
	var denied = [];
	var granted = [];
	if (urlHandle) {
		if (!reset) {
			displayMessage(lingo.msgUpdating.format([url]), url);
			denied = urls[urlHandle].denied.slice();
			granted = urls[urlHandle].granted.slice();
		} else {
			displayMessage(lingo.msgResetting.format([url]), url);
		}
	} else {
		displayMessage(lingo.msgSetting.format([url]), url);
		urlHandle = getFreeHandle(urls, "FirefoxPrivilegesPlugin");
		isUpdate = false;
	}
	for (var ii=0; ii<rights.length; ii++) {
		denied.remove(rights[ii]);
		granted.pushUnique(rights[ii]);
	}
	var prefs = plugin.getPrefsBranch();
	var idStr = urlHandle + ".id";
	var deniedStr = urlHandle + ".denied";
	var grantedStr = urlHandle + ".granted";
	function clearPref(str) {
		if (prefs.prefHasUserValue(str)) {
			prefs.clearUserPref(str);
		}
	}
	function setOrClearPref(str, val) {
		if (val.length) {
			val = ("string" === typeof(val))? val : val.join(" ");
			prefs.setCharPref(str, val);
			// why oh why?!
			if (!prefs.prefHasUserValue(str)) {
				prefs.setCharPref(str, val);
			}
		} else {
			clearPref(str);
		}
	}
	if (!denied.length && !granted.length) {
		prefs.deleteBranch(urlHandle + ".");
	} else {
		setOrClearPref(idStr, url);
		setOrClearPref(deniedStr, denied);
		setOrClearPref(grantedStr , granted);
		setOrClearPref(idStr, url);
	}
	var prefService = plugin.getPrefsService();
	prefService.savePrefFile(null);

	return !isUpdate;
};
plugin.getPrivilegedUrls = function(reqAccess)
{
	function Privileged(url, granted, denied, handle) {
		this.url = url;
		this.granted = granted;
		this.denied = denied;
		this.handle = handle;
	}
	function getPermissions(branch, handle, type) {
		var permissions = [];
		var pref = handle + "." + type;
		if (branch.prefHasUserValue(pref)) {
			permissions = branch.getCharPref(pref).split(/\s+/);
			permissions.sort();
		}
		return permissions;
	}
	var privileged = {};
	if (reqAccess) {
		netscape.security.PrivilegeManager.enablePrivilege(plugin.privAccessCapabilities);
	}
	var prefs = plugin.getPrefsBranch(); 
	var capsEntries = prefs.getChildList("", { value: 0 }); 

	for (var ii=0; ii < capsEntries.length; ii++) 
	{ 
		var matches = capsEntries[ii].match(/([^\.]*)[\.]id/); 
		if (matches && (2 === matches.length)) 
		{ 
			var handle = matches[1];
			var url = prefs.prefHasUserValue(capsEntries[ii])? prefs.getCharPref(capsEntries[ii]) : "Error getting " + capsEntries[ii]; 
			var granted = getPermissions(prefs, handle, "granted");
			var denied = getPermissions(prefs, handle, "denied");
			privileged[handle] = new Privileged(url, granted, denied, handle);
		}
	}
	return privileged;
};
plugin.getPrefsService = function()
{
	return Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
};
plugin.getPrefsBranch = function()
{
	var prefsService = plugin.getPrefsService();
	return prefsService.getBranch("capability.principal.codebase."); 
};
/*
//}}}
!!! Bookmarklet interface
//{{{
*/
plugin.onload = function()
{
	var b=backstage;
	var bt=createTiddlyButton(b.toolbar, "security"+glyph("downTriangle"), "", b.onClickTab,"backstageTab");
	var fp="firefoxPrivileges";
	bt.setAttribute("task",fp);
	b.switchTab(fp);
};
/*
//}}}
!!! ListView tweak for long urls. http://trac.tiddlywiki.org/ticket/570
//{{{
*/
ListView.columnTypes.LongLink = {
	createHeader: ListView.columnTypes.String.createHeader,
	createItem: function(place,listObject,field,columnTemplate,col,row)
		{
			var v = listObject[field];
			var c = columnTemplate.text;
			if(v != undefined) {
				var link = createExternalLink(place,v);
				if(!c) {
					c = v.replace(/#|\.|\/|(\%..)|\?|\&/g, config.browser.isIE? "$&<wbr>": "$&&#8203;");
					link.innerHTML = c;
				} else {
					createTiddlyText(link, c);
				}
			}
		}
};


})();	// scope hiding

} // endif(window.Components)
//}}}
<data>{"abstract":"[[First Impressions]], eine Übung zur Schulung der [[Wahrnehmung]] — und mit interessanten Erkenntnissen zum Entstehen des 1. Eindrucks."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://bp3.blogger.com/_tWwdYD4X8bE/R1A99Xgg-zI/AAAAAAAAAII/F2hEU9dwgYo/s320/handshake+first+impression.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("First Impressions","abstract") </script>

!First Impressions
<script> return "<<tiddler [[First Impressions##Overview]]>>" </script> 
Kennen wir doch alle: Der erste Händedruck setzt schon unser Urteil in Gang. Wir schließen vom Händedruck auf die Person. Aber überprüfen wir unser Urteil auch?

!Objectives
* Schulung der [[Wahrnehmung]]

!Timing
30 min

!Audience
Group

!Materials
* 

!Procedure
Ein Teilnehmer A setzt sich auf einen Stuhl vor der Gruppe und schließt die Augen. 
Der Trainer bittet einen anderen Teilnehmer B nach vorne, dieser schüttelt A die Hand und setzt sich wieder. 
Während er nach vorne und wieder zurückgeht, trampeln die anderen mit den Füßen auf, damit A nicht erkennt, aus welcher Richtung B gekommen ist und so Rückschlüsse auf die Person ziehen kann.

A hält weiter die Augen geschlossen und beantwortet Fragen wie: 
* //"Wie alt könnte B sein?"// 
* //"Ist B ein Mann oder eine Frau?"// 
* //"Wie könnte B gekleidet sein?"// 
* //"Welche Hobbies hat B vermutlich?"// 
* //"Welche Eigenschaften?"//

!Debriefing
Interessant und Gegenstand der anschließenden Auswertung ist die Tatsache, wie überzeugt wir manchmal von unseren Spekulationen über andere sind — und das aufgrund minimaler Wahrnehmungen.

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://i563.photobucket.com/albums/ss80/WestwoodVA/JulieBauke/FirstImpressions.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Unesco, freie Lernressourcen| www.opentrainingplatform.org]]
* [[MWOnline| http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=First+Impressions+(jt)]]
<data>{"abstract":"Ein [[Auto bauen, wie Fred Feuerstein|Flintstone-Autobau]] es hatte: Eine Übung für ein [[Team]], vorausgesetzt, man hat die richtigen Materialien"}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.idcow.net/idcow/products/etl2061.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Flintstone-Autobau","abstract") </script>

!~Flintstone-Autobau
<script> return "<<tiddler [[Flintstone-Autobau##Overview]]>>" </script> 
Die meisten dürften sich unter dem steinzeitlichen Gefährt aus der ~Zeichentrick-Serie "Familie Feuerstein" ("Flintstones") etwas vorstellen können. Das abenteuerliche Vehikel aus der Steinzeit dient als Vorbild für diese [[Outdoor-Übung|outdoor]].

!Objectives
* Teambuilding

!Timing
3h

!Audience
Group

!Materials
* 18 Balken à 2,5m, 
* 4 Balken à 4m, 
* eine 4x4 m große Plane, 
* 1 blaue Tonne, 
* 2 Sitzbänke, 
* 40 Schnüre 
* 8 Autoräder. 

!Procedure
Die Gruppen sollen ein fahrtüchtiges Auto aus den folgenden Materialien bauen: 18 Balken à 2,5m, 4 Balken à 4m, eine 4x4 m große Plane, eine blaue Tonne, zwei Sitzbänke, 40 Schnüre und acht Autoräder. 
Nach erfolgtem Bau wird das Produkt in einer Probefahrt vorgeführt und ein Marketingkonzept präsentiert.

!Debriefing

!Quelle
Renner, ~Hans-Georg / Trefzer, Markus: Ziele und Aufgaben in ~Outdoor-Seminare, in: [[Renner / Strasmann (Hrsg.): Das Outdoor-Seminar in der betrieblichen Praxis, Windmühle 2003, S.16| http://www.amazon.de/gp/product/3922789862?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3922789862]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Outdoor]<<tiddlerList tags:"outdoor,-newTemplate" header:"Übungen Outdoor">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Build a Fred Flintstone car| http://www.automotogadgets.com/build-a-fred-flintstone-car.html]]
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Flintstone-Autobau+%28jt%29]]
<data>{"abstract":"Was erwartet den Seminarteilnehmer nach einem Seminar? Das Bild eines [[Flusslaufes|Flusslauf]] stellt die Klippen, Stromschnellen, Hinweisschilder und Anlegestellen dar…  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.heimat-vilstal.de/images/maeanderi.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Flusslauf","abstract") </script>

!Flusslauf
<script> return "<<tiddler [[Flusslauf##Overview]]>>" </script> 


!Objectives
* Erwartungen spezifizieren

!Timing
* 60 min (abh. von Teilnehmerzahl)

!Audience
Group / Individual


!Materials
* 

!Procedure
Um Seminarteilnehmer auf das vorzubereiten, was nach ihrer Rückkehr aus dem Seminar auf sie zukommt, bittet sie der Trainer, einen Flusslauf zu malen, und zwar von Quelle bis zu Mündung. Die Quelle steht für das Seminar, die Mündung für das, was der Teilnehmer erreichen möchte. In den Fluss und an seine Ufer malt er nun alle möglichen Symbole wie Fische, Stromschnellen, Schilder, Wasserfälle, Anlegestellen…

Diese stehen für das, was alles nach dem Seminar abläuft: Schwierige Aufgaben, Hindernisse, Hilfsmittel, Ziele, Hilfsmittel…

!Debriefing
Anschließend erläutert jeder Teilnehmer sein Bild der Gruppe. Die Übung kann auch in einer Kleingruppe eingesetzt werden.

!Quelle
A. Rachow, gefunden bei Svenja Gloger: Marathon der Methoden, managerSeminare 1/2002 S.52

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Flusslauf+%28jt%29.html]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.looneylabs.com/Resources/images/Fluxx4/F4.0.box.jpg>>
<<showtoc>>
!Overview
[[Fluxx|Fluxx - Die Regeln bestimmen Sie!]] — The rules of flux are very simple, draw one card, play one card. Every other rule (including winning conditions) is determined by what what cards get played.
[[Fluxx|Fluxx - Die Regeln bestimmen Sie!]], a card game by ~LooneyLabs, is great for learning flexible thinking and to speed up responsiveness and reactivity. 

!Fluxx - Die Regeln bestimmen Sie!
<<tiddler [[Fluxx - Die Regeln bestimmen Sie!##Overview]]>>
Even the object of the game will often change as you play, as players swap out one Goal card for another. Can you get the Rocket to the Moon before someone changes the goal to Death by Chocolate?
Fluxx is a card game where the rules are changing virtually every time someone plays a card.  The value of the game is to help people who are buried tight in the mindset of  //"but we've always done it this way"// have a quick experience where they have to constantly ask, //"what are the rules during this moment?."// 

!Objectives
* learning flexible thinking
* speeding up responsiveness and reactivity

!Timing
5 and 20 minutes

!Materials
* deck of [[Fluxx cards|http://www.wunderland.com/LooneyLabs/Fluxx/]]

!Audience
Group

!Procedure
# There is one basic rule: Draw one card, Play one card.
# You start with a hand of three cards... add the card you drew to your hand, and then choose one card to play, following the directions written on your chosen card.  
# As cards are drawn and played from the deck, the rules of the game change from how many cards are drawn, played or even how many cards you can hold at the end of your turn. 
# see rules sheet: http://www.looneylabs.com/literature/Fluxx-Rules.html


!Debriefing

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.wunderland.com/LooneyLabs/Fluxx/
* [[Google Agile Games Group| http://groups.google.com/group/agilegames/msg/4b0433edc542fc54]]
/***
|Name|FoldHeadingsPlugin|
|Source|http://www.TiddlyTools.com/#FoldHeadingsPlugin|
|Version|1.1.1|
|Author|[[EricShulman]] - 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|automatically turn headings into slider-like panels that can be folded/unfolded with a single click|
This plugin defines a macro that automatically converts heading-formatted content into sliders that let you expand/collapse their content by clicking on individual headings.
!!!!!Usage
<<<
{{{
<<foldHeadings opened|closed tag tag tag...>>
}}}
where: ''opened'' or ''closed'' is a keyword indicating the initial state of the sections (default: opened), and ''tag tag tag...'' is an optional list of tags to match, so that the foldable effect is only applied to tiddlers that contain one (or more) of the indicated tags.  

When you place the macro in a tiddler, any heading-formatted content (i.e, "!" through "!!!!!") in that tiddler will automatically become //'fold-able'//, allowing you to expand/collapse the content that follows each heading simply by clicking on that heading.  Each content section begins with the first element following a heading, and continues until either another heading is found or the end of the tiddler is reached.  For example:
{{{
<<foldHeadings closed>>
}}}
is embedded in ''this'' tiddler in order to make all the headings it contains 'fold-able'.  Note that the macro has been placed at the //end// of the tiddler because it only operates on *rendered* content.  Thus, only headings that //precede// it in the same tiddler will become fold-able, as any headings that //follow// it are not actually rendered until //after// the macro has been processed.

You can further limit the effect of the macro within the tiddler by surrounding several headings in a "css class wrapper" ("""{{classname{...}}}""") or other containing DOM element (e.g., """@@display:inline;...@@""") and then embedding the {{{<<foldHeadings>>}}} macro inside that container (at the end)... only those headings that are also within that container will be made fold-able, instead of converting ''all'' the headings in that tiddler.

Conversely, if you want the fold-able ability to apply to the headings in //all// tiddlers, ''without having to alter //any// of those individual tiddlers'', you can add the macro to the end of your [[ViewTemplate]], so that it will be invoked after the content in each tiddler has been rendered, causing all headings they contain to automatically become fold-able.  For example:
{{{
<span macro="foldHeadings closed"></span>
}}}
You can also limit this effect to selected tiddlers by specifying one or more tags as additional macro parameters.  For example:
{{{
<span macro="foldHeadings closed systemConfig"></span>
}}}
is only applied to headings contained in //plugin tiddlers// (i.e., tiddlers tagged with <<tag systemConfig>>), while headings in other tiddlers remain unaffected by the macro, even though it is embedded in the common [[ViewTemplate]] definition.
<<<
!!!!!Revisions
<<<
2009.01.06 [1.1.1] removed hijack of scrollToSection() (see [[SectionLinksPlugin]] for equivalent code)
2008.11.17 [1.1.0] added hijack of 'scrollToSection()' function (see [[CoreTweaks]] and http://trac.tiddlywiki.org/ticket/784)
2007.12.06 [1.0.2] fix handling for empty sections when checking for sliderPanel/floatingPanel
2007.12.02 [1.0.1] fix handling when content following a heading is already a sliderPanel/floatingPanel
2007.12.01 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.FoldHeadingsPlugin= {major: 1, minor: 1, revision: 1, date: new Date(2009,1,6)};

config.macros.foldHeadings = {
	guideText: "opened|closed className",
	showtip: "click to show '%0'",
	hidetip: "click to hide '%0'",
	showlabel: "more...",
	hidelabel: "[x]",
	html: "<span style='float:right;text-weight:normal;font-size:80%;' class='TiddlyLinkExisting'>%0&nbsp;</span>",
	handler: function(place,macroName,params) {
		var show=params[0] && params.shift().toLowerCase()!="closed";
		if (params.length) { // if filtering by tag(s)
			var here=story.findContainingTiddler(place);
			if (here) var tid=store.getTiddler(here.getAttribute("tiddler"));
			if (!tid || !tid.tags.containsAny(params)) return; // in a tiddler and not tagged… do nothing…
		}
		var elems=place.parentNode.getElementsByTagName("*");
		var heads=[]; for (var i=0; i<elems.length; i++) { // get non-foldable heading elements
			var n=elems[i].nodeName; var foldable=hasClass(elems[i],"foldable");
			if ((n=="H1"||n=="H2"||n=="H3"||n=="H4"||n=="H5")&&!foldable)
				heads.push(elems[i]);
			}
		for (var i=0; i<heads.length; i++) { var h=heads[i]; // for each heading element…
			// find start/end of section content (up to next heading or end of content)
			var start=end=h.nextSibling; while (end && end.nextSibling) {
				var n=end.nextSibling.nodeName.toUpperCase();
				if (n=="H1"||n=="H2"||n=="H3"||n=="H4"||n=="H5") break;
				end=end.nextSibling;
			}
			if (start && hasClass(start,"sliderPanel")||hasClass(start,"floatingPanel")) continue; // heading is already a slider!
			var span=createTiddlyElement(null,"span",null,"sliderPanel"); // create container
			span.style.display=show?"inline":"none"; // set initial display state
			h.parentNode.insertBefore(span,start); // and insert it following the heading element
			// move section elements into container…
			var e=start; while (e) { var next=e.nextSibling; span.insertBefore(e,null); if (e==end) break; e=next; }
			// set heading label/tip/cursor…
			h.title=(show?this.hidetip:this.showtip).format([h.textContent])
			h.innerHTML=this.html.format([show?this.hidelabel:this.showlabel])+h.innerHTML;
			h.style.cursor='pointer';
			addClass(h,"foldable"); // so we know it been done (and to add extra styles)
			h.onclick=function() {
				var panel=this.nextSibling; var show=panel.style.display=="none";
				// update panel display state
				if (config.options.chkAnimate) anim.startAnimating(new Slider(panel,show));
				else panel.style.display = show?"inline":"none";
				// update heading label/tip
				this.removeChild(this.firstChild); // remove existing label
				var fh=config.macros.foldHeadings; // abbreviation for readability…
				this.title=(show?fh.hidetip:fh.showtip).format([this.textContent])
				this.innerHTML=fh.html.format([show?fh.hidelabel:fh.showlabel])+this.innerHTML;
			}
		}		
	}
}

if (story.scrollToSection) {
Story.prototype.foldheadings_scrollToSection=Story.prototype.scrollToSection;
Story.prototype.scrollToSection=function(title,section) {
	var e=this.foldheadings_scrollToSection.apply(this,arguments);
	// if scrolling to a folded section heading, click to expand it
	if (e && hasClass(e,'foldable') && e.nextSibling.style.display=='none') e.onclick();
}
}
//}}}
// //<<foldHeadings closed>>
/***
|Name|FontSizePlugin|
|Author|[[SaqImtiaz]]|
|Source|http://tw.lewcid.org/#FontSizePlugin|
|Version|1.0|
|Type|plugin|
|~CoreVersion|2.x|
|Requires|~TW2.x|
|Description|Resize tiddler text on the fly. The text size is remembered between sessions by use of a cookie.|
!Description:
Resize tiddler text on the fly. The text size is remembered between sessions by use of a cookie.
You can customize the maximum and minimum allowed sizes.
(only affects tiddler content text, not any other text)

Also, you can load a TW file with a font-size specified in the url.
Eg: http://tw.lewcid.org/#font:110

!Demo:
Try using the font-size buttons in the sidebar, or in the MainMenu above.

!Installation:
Copy the contents of this tiddler to your TW, tag with systemConfig, save and reload your TW.
Then put {{{<<fontSize "font-size:">>}}} in your SideBarOptions tiddler, or anywhere else that you might like.

!Usage
{{{<<fontSize>>}}} results in <<fontSize>>
{{{<<fontSize font-size: >>}}} results in <<fontSize font-size:>>

!Customizing:
The buttons and prefix text are wrapped in a span with class fontResizer, for easy css styling.
To change the default font-size, and the maximum and minimum font-size allowed, edit the config.fontSize.settings section of the code below.

!Notes:
This plugin assumes that the initial font-size is 100% and then increases or decreases the size by 10%. This stepsize of 10% can also be customized.

!History:
*27-07-06, version 1.0 : prevented double clicks from triggering editing of containing tiddler.
*25-07-06,  version 0.9

!Code
***/

//{{{
config.fontSize={};

//configuration settings
config.fontSize.settings =
{
            defaultSize : 100,  // all sizes in %
            maxSize : 200,
            minSize : 40,
            stepSize : 10
};

//startup code
var fontSettings = config.fontSize.settings;

if (!config.options.txtFontSize)
            {config.options.txtFontSize = fontSettings.defaultSize;
            saveOptionCookie("txtFontSize");}
setStylesheet(".tiddler .viewer {font-size:"+config.options.txtFontSize+"%;}\n","fontResizerStyles");
setStylesheet("#contentWrapper .fontResizer .button {display:inline;font-size:105%; font-weight:bold; margin:0 1px; padding: 0 3px; text-align:center !important;}\n .fontResizer {margin:0 0.5em;}","fontResizerButtonStyles");

//macro
config.macros.fontSize={};
config.macros.fontSize.handler = function (place,macroName,params,wikifier,paramString,tiddler)
{

               var sp = createTiddlyElement(place,"span",null,"fontResizer");
               sp.ondblclick=this.onDblClick;
               if (params[0])
                           createTiddlyText(sp,params[0]);
               createTiddlyButton(sp,"+","increase font-size",this.incFont);
               createTiddlyButton(sp,"=","reset font-size",this.resetFont);
               createTiddlyButton(sp,"–","decrease font-size",this.decFont);
}

config.macros.fontSize.onDblClick = function (e)
{
             if (!e) var e = window.event;
             e.cancelBubble = true;
             if (e.stopPropagation) e.stopPropagation();
             return false;
}

config.macros.fontSize.setFont = function ()
{
               saveOptionCookie("txtFontSize");
               setStylesheet(".tiddler .viewer {font-size:"+config.options.txtFontSize+"%;}\n","fontResizerStyles");
}

config.macros.fontSize.incFont=function()
{
               if (config.options.txtFontSize < fontSettings.maxSize)
                  config.options.txtFontSize = (config.options.txtFontSize*1)+fontSettings.stepSize;
               config.macros.fontSize.setFont();
}

config.macros.fontSize.decFont=function()
{

               if (config.options.txtFontSize > fontSettings.minSize)
                  config.options.txtFontSize = (config.options.txtFontSize*1) - fontSettings.stepSize;
               config.macros.fontSize.setFont();
}

config.macros.fontSize.resetFont=function()
{

               config.options.txtFontSize=fontSettings.defaultSize;
               config.macros.fontSize.setFont();
}

config.paramifiers.font =
{
               onstart: function(v)
                  {
                   config.options.txtFontSize = v;
                   config.macros.fontSize.setFont();
                  }
};
//}}}
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.scheinphysik.de/images/flag/football_flamme.gif>>
<<showtoc>>
!Overview
[[Football Scrum]] is an interactive game illustrating the practice of Scrum or [[Daily Standup Meetings|Daily Scrum Meeting]]. Tracking who has not yet spoken and the expectation of receiving the football keeps everybody alert, involved, and entertained. Only those holding the football can speak. 

!Football Scrum
<<tiddler [[Football Scrum##Overview]]>>

!Objectives
* Enforce the rules of the daily stand-up meeting
* Track who has not yet spoken 

!Timing
15 min

!Materials
* Football (or some other kind of ball)

!Audience
Group / Individual

!Procedure
# In order to enforce the rules of the daily stand-up meeting and to keep it more entertaining, a football can be used. 
# Only those holding the football can speak. 
# Once they have completed answering their questions, they can throw the football to another team member who has not yet spoken. 
# This continues until all members have spoken. 
# It is up to each individual to remember who has not spoken. 
# You can implement penalties for violations of the rules (scoreboard, $1 to the happy hour or lunch fund, etc.)

!Debriefing
* Tracking who has not yet spoken and the expectation of receiving the football keeps everybody alert, involved, and entertained.
* Only one member speaks at a time.

!Credits
Don ~McGreal

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/football-scrum/
/***
|Name|FootnotesPlugin|
|Description|Create automated tiddler footnotes.|
|Author|[[SaqImtiaz]] ( lewcid@gmail.com )|
|Source|http://tw.lewcid.org/#FootnotesPlugin|
|Code Repository|http://tw.lewcid.org/svn/plugins|
|Version|2.01|
|Date|10/25/07|
|License|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|~CoreVersion|2.2.2|

!!Usage:
*To create a footnote, just put the footnote text inside triple backticks.
*Footnotes are numbered automatically, and listed at the bottom of the tiddler.
*{{{Creating a footnote is easy. ```This is the text for my footnote```}}}
*[[Example|FootnotesDemo]]
***/

//{{{
config.footnotesPlugin = {
	backLabel: "back",
	prompt:"show footnote"
};

config.formatters.unshift( {
    name: "footnotes",
    match: "```",
    lookaheadRegExp: /```((?:.|\n)*?)```/g,
    handler: function(w)
    {
        this.lookaheadRegExp.lastIndex = w.matchStart;
        var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
        if(lookaheadMatch && lookaheadMatch.index == w.matchStart )
            {
			var tiddler = story.findContainingTiddler(w.output);
			if (!tiddler.notes)
				tiddler.notes = [];
			var title = tiddler.getAttribute("tiddler");
			tiddler.notes.pushUnique(lookaheadMatch[1]);
			var pos = tiddler.notes.indexOf(lookaheadMatch[1]) + 1;
			createTiddlyButton(w.output,pos,config.footnotesPlugin.prompt,function(){var x = document.getElementById(title+"ftn"+pos);window.scrollTo(0,ensureVisible(x)+(ensureVisible(x)<findScrollY()?(findWindowHeight()-x.offsetHeight):0));return false;},"ftnlink",title+"ftnlink"+pos);			
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
            }
    }
});

old_footnotes_refreshTiddler = Story.prototype.refreshTiddler;
Story.prototype.refreshTiddler = function(title,template,force)
{
    var tiddler = old_footnotes_refreshTiddler.apply(this,arguments);
	if (tiddler.notes && tiddler.notes.length)
	{
		var holder = createTiddlyElement(null,"div",null,"footnoteholder");
		var list = createTiddlyElement(holder,"ol",title+"footnoteholder");
		for (var i=0; i<tiddler.notes.length; i++)
		{
			var ftn = createTiddlyElement(list,"li",title+"ftn"+(i+1),"footnote");
			wikify(tiddler.notes[i]+" ",ftn);
			createTiddlyButton(ftn,"["+config.footnotesPlugin.backLabel+"]",config.footnotesPlugin.backLabel,function(){window.scrollTo(0,ensureVisible(document.getElementById(this.parentNode.id.replace("ftn","ftnlink"))));return false;},"ftnbklink");
		}
		var count = tiddler.childNodes.length;
		for (var j=0; j<count; j++){
			if(hasClass(tiddler.childNodes[j],"viewer")){
				var viewer = tiddler.childNodes[j];	
			}
		}
		viewer.appendChild(holder);
		tiddler.notes = [];
	}
    return tiddler;
};

setStylesheet(
".tiddler a.ftnlink {vertical-align: super; font-size: 0.8em; color:red;}\n"+
".tiddler a.ftnlink:hover, .tiddler .footnoteholder a.ftnbklink:hover{color:#fff;background:red;}\n"+
".tiddler div.footnoteholder{margin:1.8em 1.0em; padding:0.1em 1.0em 0.1em 1.0em ;border-left: 1px solid #ccc;}"+
".tiddler footnoteholder ol {font-size: 0.9em; line-height: 1.2em;}\n"+
".tiddler .footnoteholder li.footnote {margin: 0 0 5px 0;}\n"+
".tiddler .footnoteholder a.ftnbklink{color:red;}\n","FootNotesStyles");
//}}}
/***
|Name|ForEachTiddlerPlugin|
|Version|1.0.7|
|Source|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin|
|Author|[[UdoBorkowski]]|
|Licence|[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]|
|Copyright|&copy; 2005-2006 [[abego Software|http://www.abego-software.de]]|
|TiddlyWiki|1.2.38+, 2.0|
|~CoreVersion|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.|

!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|http://tiddlywiki.abego-software.de/#ForEachTiddlerMacro]] and [[ForEachTiddlerExamples|http://tiddlywiki.abego-software.de/#ForEachTiddlerExamples]].

!Revision history
* 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: 7, 
	date: new Date(2007,2,28), 
	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: 7, date: new Date(2007,2,28), 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) {
		var errorText = tiddlyWiki.importTiddlyWiki(content);
		if (errorText)
			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|Produkt]] 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.
***/
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.graphicdesignbasics.com/uploadedfiles/2009/10/force-field-300x224.jpg>>
<<showtoc>>
!Overview
[[Force Field Analysis]] is management technique developed by [[Kurt Lewin|http://en.wikipedia.org/wiki/Kurt_Lewin]], a pioneer in the field of social sciences, for diagnosing situations.

!Force Field Analysis
<<tiddler [[Force Field Analysis##Overview]]>>
Lewin assumes that in any situation there are both driving and restraining forces that influence any change that may occur.
//Driving forces// are those forces affecting a situation that are pushing in a particular direction; they tend to initiate a change and keep it going. 
//Restraining forces// are forces acting to restrain or decrease the driving forces.
Equilibrium is reached when the sum of the driving forces equals the sum of the restraining forces. This equilibrium can be raised or lowered by changes in the relationship between the driving and the restraining forces.

!Objectives
* Identify driving and restraining factors

!Timing
45min

!Audience
Group

!Materials
* egg timer
* for each group a poster showing "driving vs. restraining factors"
<<wikify [img(%0,%1)[%2|%3][%3]] 30%  auto title http://www.jiscinfonet.ac.uk/tools/force-field-eg.png>> 

!Procedure
# Pick a topic of concern.
# Break the team into groups of around three. For pairing use [[Gruppenpuzzle]] or [[Hör gut hin!]].
# Set the timer and give the groups five minutes to list all the supporting/driving factors for the topic.
# Go around room to each group.  Have them give one thing from their list and write it on the board under the driving column.  
# Repeat this until every group has exhausted all of their items.
# Repeat these steps for inhibiting/restraining factors for the topic.  This would be all the things that make it hard to engage in the topic or make the topic difficult to support.
# Review items on both lists and clarify.  Make sure that the collective doesn’t have any additional items to add.
# Let each person know they have two votes.  Read off each item in the driving column and ask for a [[dot vote|Dot Voting]] if they think its “strongest” factor for that column.  Tally the vote next to the factor.  Repeat this for each item.
# Pick the top two or three items and draw large arrows towards the opposite column.  This highlights that this is a quick win to combat the opposite side so increasing/decreasing this factor has the largest win in making the topic successful.
# Repeat for the Restraining column.
# Now that you know what is conspiring against you and what is cheering you on in being successful in the topic have a quick [[brainstorming|Brainstorming]] session (15 minutes or so) on action items you can do to //increase// the driving factors and //decrease// the restraining factors.


!Debriefing



!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://if-blog.de/wp-content/uploads/2009/04/forcefield1.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://jayderagon.com/blog/wp-content/uploads/2007/10/force_field_analysis1.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.jiscinfonet.ac.uk/tools/force-field-eg.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.lindsay-sherwin.co.uk/improvement_guide/images/force_1.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.12manage.com/images/picture_lewin_force_field_diagram.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://quality-management-tools.com/force_Field_Tool.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] 80% auto title http://opensourceinnovation.files.wordpress.com/2007/06/ffa-image.jpg>> /%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Agile Retrospective Using Force Field Analysis — Derek Neighbors| http://derekneighbors.com/2009/02/agile-retrospective-using-force-field-analysis/]]
* [[Force Field Analysis| http://accel-team.com/techniques/force_field_analysis.html]]
* http://www.mindtools.com/pages/article/newTED_06.htm
<data>{"abstract":"[[Forced-Relationship]], wer mit Lösungen direkt am Problem ansetzt, der übersieht möglicherweise völlig neue Ideen. Die Kombination mit artfremden Begriffen führt auf neue Spuren."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.agentur-mediation.de/images/blatt.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Forced-Relationship","abstract") </script>

!~Forced-Relationship
<script> return "<<tiddler [[Forced-Relationship##Overview]]>>" </script>

!Objectives
* Ideen, Lösungen finden

!Timing
30min

!Audience
Group / Individual


!Materials
* 

!Procedure
# Zunächst wird ein Oberbegriff für das zu lösende Problem gesucht (z.B. eine Kundenveranstaltung soll organisiert werden => Kundenveranstaltung). 
# Im zweiten Schritt werden Substantive gesammelt, die nichts mit dem zu lösenden Problem zu tun haben (z.B. Ozean). Es entsteht die Wortverknüpfung "~Kundenveranstaltung-Ozean". 
Ideen, die sich daraus entwickeln können: Strandparty, Schifffahrt, "Kulinarische Weltreise", die Einladungen werden als Flaschenpost verschickt, "Bezahlung" mit Muschelgeld … Die Methode ist am effektivsten, wenn möglichst viele Begriffskombinationen durchgespielt werden.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Forced-Relationship+%28ak%29.html]]
<data>{"abstract":"Auch wenn man nur auf der [[Sachebene]] kommuniziert (soweit das überhaupt geht), ist Verstehen schwierig. Was diese Übung zeigt. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://static.twoday.net/MAllrich/images/4302-fragezeichen.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Fragen lernen","abstract") </script>

!Fragen lernen
<script> return "<<tiddler [[Fragen lernen##Overview]]>>" </script> 
Eine ~Alternativ-Übung zur "~Einweg-Zweiweg-Kommunikation": Zwei Seminarteilnehmer sitzen Rücken an Rücken und haben einen Block und Stift in der Hand. 


!Objectives
* [[Kommunikation]]
* Verstehen allein auf der [[Sachebene]] zu verdeutlichen

!Timing
5 min

!Audience
Group / Individual

!Materials
* Block
* Stift

!Procedure
Zwei Seminarteilnehmer sitzen Rücken an Rücken und haben einen Block und Stift in der Hand. 

# im ersten Durchgang zeichnet der eine ein Muster seiner Wahl und beschreibt es dabei, während der andere nach den mündlichen Anweisungen das Muster nachzeichnet. Hierfür haben sie zwei Minuten Zeit. 
# im zweiten Durchgang darf derjenige, der nachzeichnet, seinem Partner drei [[Fragen|Frageformen]] stellen, aber nicht mehr. Hier dürfte das Ergebnis schon besser ausfallen. 
# im dritten Durchgang dürfen beide während der zwei Minuten uneingeschränkt miteinander reden. 

Nette Übung, um die Probleme des gegenseitigen Verstehens allein auf der Sachebene zu verdeutlichen und um die Bedeutung klarer Aussagen (z.B. am Telefon) herauszustellen.
!Debriefing

!Quelle
Martin Pichler: Mehr Pep ins Seminar, wirtschaft und weiterbildung, 1/2000 S.83.

!See also
* [[Systemisches Fragen]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Fragen+lernen+%28jt%29&db=3]]
/***
|Name|FramedLinksPlugin|
|Source|http://www.TiddlyTools.com/#FramedLinksPlugin|
|Version|1.1.1|
|Author|[[EricShulman]] - 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.11.14 [1.1.1] fixed handling for external links embedded in //shadow// tiddlers
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: 1, date: new Date(2008,11,14)};

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);
		if (here) var tid=store.getTiddler(here.getAttribute("tiddler"));
		var enabled=co.chkFramedLinks || co.chkFramedLinksTag && tid && tid.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;
}
//}}}
<data>{"abstract":"[[Freeze and Clap]]: spielerisches [[Brainstormen|Brainstorming]] mit großen Bewegungen — eine Übung aus dem [[Improvisationstheater]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.toonpool.com/user/1391/files/freeze_365465.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Freeze and Clap","abstract") </script>

!Freeze and Clap
<script> return "<<tiddler [[Freeze and Clap##Overview]]>>" </script>
Die Übung eignet sich im Rahmen einer [[Teamentwicklung|Teamentwicklung / Teambuilding]] z.B. zur Aufarbeitung von Themen oder einfach zur Lockerung und Kreativitätsförderung.
Sie ist eine Art [[Brainstorming]] zu bestimmten willkürlichen oder für die Gruppe derzeit relevanten Themen. Diese werden spielerisch inszeniert und für die gesamte Gruppe im Raum erfahrbar.

!Objectives
* Aufarbeitung von Themen 
* Lockerung und Kreativitätsförderung.

!Timing
Pro Thema ca. 5-10 Minuten assoziieren.

!Audience
Group / Individual


!Materials
* 

!Procedure
Die Gruppe (max. 15 Personen je nach Raumgröße) bewegt sich im Raum, mit raumgreifenden Schritten, ruhig durcheinander in unterschiedlichen Richtungen. 
Es wird ein bestimmtes Thema vorgegeben z.B. "Frühling" oder auch fachnäher z.B. "Teambesprechung". Nun kann jeweils ein einzelner Teilnehmer einen Aspekt dieses Themas in den Raum bringen. Dies kann ein Satz, ein Zitat, eine Bewegung, ein Liedtext, ein Laut etc. sein. Der Fantasie sind keine Grenzen gesetzt! 
Der "Impulsgeber" klatscht hierzu in die Hände und alle Anderen müssen ins Freeze , d.h. sie müssen körperlich "einfrieren" in der jeweiligen Gestik und mimischen Haltung, in der sie sich befinden. Hierdurch entsteht i.d.R. auch eine starke Konzentration.

In diese körperliche Erstarrung der Gruppe hinein gibt ein zufällig entstehender "Impulsgeber" die jeweilige Aussage z.B. beim Thema Frühling //"Ich habe Schmetterlinge im Bauch"// oder //"Mist, ich bin Pollenallergiker!"// bei Frühling (gestisch und mimisch z.B. durch Niesen unterstützt). Durch ein erneutes Klatschen "darf" die gesamte Gruppe sich aus dem Einfrieren befreien und gemeinsam mit den anderen weiter durch den Raum laufen. Der nächste Impulsgeber kann nun klatschen und seine Bilder, seinen Satz zum Thema nennen bzw. zeigen.


!Debriefing
Es macht Sinn, in der Gruppe anzuregen, wirklich große Bewegungen zu machen und aus dieser Haltung heraus einzufrieren. Außerdem ist es sinnvoll, zur Übung zunächst mit einem "arbeitsfernen" Begriff zu beginnen, z.B. "Sommer" oder "Jugend" und später Themen aus der Gruppe zu wählen, z.B. //"wie sehen uns die anderen?"// oder "Videokonferenzen". Die Übung funktioniert wie ein kreatives spielerisches [[Brainstorming]] zu einem Thema.


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Freeze+and+Clap+%28Brinkhoff%29.html]]
<data>{"abstract":"[[Frühjahrsfasten]], große [[Veränderungsprojekte|Organizational Change Project]] kosten Kraft und Energie. Zum Auftanken kann ein gemeinsames ~Büro-Ausmisten neue [[Motivation]] bringen. Auch ohne großes Projekt manchmal sinnvoll. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://mediadb.alpin.de/news/e3d37062-a185-4ea0-b9c2-dd20a97c7415/aufmacher.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Frühjahrsfasten","abstract") </script>

!Frühjahrsfasten
<script> return "<<tiddler [[Frühjahrsfasten##Overview]]>>" </script> 
[[Veränderungen|Organizational Change Model]] kosten Kraft, und viele werden die [[Erfahrung]] gemacht haben, dass die Energie nach einem größeren [[Projekt]] mehr oder weniger schnell schwindet, ehe alles wieder in den gewohnten Trott verfällt. Da bietet es sich an, jährlich für Ereignisse zu sorgen, mit dem alle aus dem grauen Alltag herausgeholt werden. 
Eine Idee ist das [[Frühjahrsfasten]]. 

!Objectives
* Loslassen können

!Timing
3 h

!Audience
Group / Individual

!Materials
* speziell aufgestellte Müllcontainer

!Procedure
An einem Freitagnachmittag tun sich Vorgesetzte und [[Mitarbeiter]] zusammen und misten kräftig die Büros, Labore und Arbeitsstätten aus. 
Danach wird dann noch gemeinsam am speziell aufgestellten Müllcontainer angestoßen.

!Debriefing

!Quelle
Matthias zur Bonsen: Und was passiert jetzt? managerSeminare 4/2001, S.86

!See also
* [[Organizational Change Management]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Fr%FChjahrsfasten+%28jt%29&db=3]]
/***
|Name|FullScreenPlugin|
|Author|[[SaqImtiaz]]|
|Source|http://tw.lewcid.org/#FullScreenPlugin|
|Version|1.1|
|Type|plugin|
|~CoreVersion|2.x|
|Description|Toggle between viewing tiddlers fullscreen and normally. Very handy for when you need more viewing space.|
!Description:
Toggle between viewing tiddlers fullscreen and normally. Very handy for when you need more viewing space.

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

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

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

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

config.commands.fullscreen =
{
            text:" ↕ ",
            tooltip:"Fullscreen mode"
};

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

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

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


Slider.prototype.lewcidStop = Slider.prototype.stop;
Slider.prototype.stop = function()
{
           this.lewcidStop();
           if (story.isEmpty() && lewcidFullScreen == true)
              config.commands.fullscreen.handler();
}
//}}}
/***
|''Name''|FullSectionPlugin|
|''Description''|allows to transclude a sections with all subsections|
|''Version''|0.1.0 (2010-09-17) @@color:red; ''ALPHA (QUICKHACK!)''@@|
|''Type''|plugin|
|''Author''|[[TobiasBeer]]|
|''Source''|http://FullSectionPlugin.tiddlyspot.com|
|''Documentation''|http://fullsection.tiddlyspot.com/#Welcome|
|''License''|[[Creative Commons Attribution-Share Alike 3.0|http://creativecommons.org/licenses/by-sa/3.0/]]|
!Code
***/
//{{{
config.macros.section={
handler:function(place,macroName,params,wikifier,paramString,tiddler){
	params = paramString.parseParams("name",null,true,false,true);
	var names = params[0]["name"];
	var tiddlerName = names[0];
	var className = names[1] || null;
	var args = params[0]["with"];
	var wrapper = createTiddlyElement(place,"span",null,className);
	wrapper.setAttribute("refresh","content");
	wrapper.setAttribute("tiddler",tiddlerName);
	if(args!==undefined)
		wrapper.setAttribute("args","[["+args.join("]] [[")+"]]");
	this.transclude(wrapper,tiddlerName,args);
},
transclude:function(wrapper,tiddlerName,args){
	var text = store.getTiddlerSection(tiddlerName);
	if(!text)return;
	var stack = config.macros.tiddler.tiddlerStack;
	if(stack.indexOf(tiddlerName) !== -1)return;
	stack.push(tiddlerName);
	try {
		if(typeof args == "string")
			args = args.readBracketedList();
		var n = args ? Math.min(args.length,9) : 0;
		for(var i=0; i<n; i++) {
			var placeholderRE = new RegExp("\\$" + (i + 1),"mg");
			text = text.replace(placeholderRE,args[i]);
		}
		config.macros.tiddler.renderText(wrapper,text,tiddlerName,params);
	} finally {
		stack.pop();
	}
}
}

// Retrieve tiddler contents
TiddlyWiki.prototype.getTiddlerSection = function(title,defaultText){
	if(!title)return defaultText;
	var i,m,ok=false,s,tid,title;
	i = title.indexOf(config.textPrimitives.sectionSeparator);
	s = null;
	if(i != -1) {
		s = title.substr(i + config.textPrimitives.sectionSeparator.length);
		title = title.substr(0,i);
	}
	var tid = this.fetchTiddler(title);
	if(tid) {
		if(!s)return tid.text;
		var re = new RegExp("(^!{1,6}[ \t]*" + s.escapeRegExp() + "[ \t]*\n)","mg");
		re.lastIndex = 0;
		var match = re.exec(tid.text);
		if(match) {
			i=1;m=match.index;
			while(m-i>0&&tid.text.substr(m-i,1)!='\n')i++;
			var t = tid.text.substr(m+match[1].length);
			var re2 = new RegExp("(^!{1,"+i+"})","mg");
			re2.lastIndex = 0;
			while(!ok){
				match = re2.exec(t); //# search for the next higher heading
				if(match){
					if(t.substr(match.index+match.length-1,1)!='!'){
						t = t.substr(0,match.index-1);//# don't include final \n
						ok=true;
					}
				}else ok=true;
			}
			return t;
		}
		return defaultText;
	}
	if(this.isShadowTiddler(title))return this.getShadowTiddlerText(title);
	if(defaultText != undefined)return defaultText;
	return null;
};
//}}}
<data>{"abstract":"[[Fusionsverhandlung]], sehr lebendige Übung zum vielseitigen Einsatz, sei es in Sachen [[Verhandlung|Negotiation]], [[Kommunikation]] oder Kooperation. Auch in [[Teamtrainings|Teamentwicklung / Teambuilding]] nützlich.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://echosuhrerchopf.files.wordpress.com/2009/11/flirten.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Fusionsverhandlung","abstract") </script>

!Fusionsverhandlung
<script> return "<<tiddler [[xxxx##Overview]]>>" </script>
Eine [[Verhandlungsübung|Negotiation]], die auch in Trainings zum Thema [[Kommunikation]] und [[Führung]] ihre Wirkung nicht verfehlen wird. 

!Objectives
* [[Teamentwicklung / Teambuilding]]

!Timing
30min+

!Audience
Group; mehreren Gruppen zu je vier Spielern 

!Materials
* —

!Procedure
Beteiligt sind vier Spieler (im Seminar kann sie parallel in mehreren Gruppen zu je vier Spielern durchgeführt werden). 
* Einer ist der zukünftige Manager eines neuen Unternehmens, das aus der Fusion mehrerer anderer Unternehmen entstehen wird. <br> Diese Unternehmen heißen Neptun, Pluto und Venus, und die anderen drei Mitspieler vertreten jeweils eines dieser Unternehmen. Ihr Ziel in der 20minütigen Verhandlungsübung ist es, einen oder sogar zwei Fusionspartner zu finden und dabei einen möglichst maximalen Anteil am neuen Unternehmen zu ergattern. <br> Der Wert möglicher Fusionen geht aus der folgenden Tabelle hervor:
{{center{
|Mögliche Kombinationen |Wert der Kombinationen (in Euro) |Managerleistung (in Punkten)|
|Neptun + Pluto | 20 Mio. | 10 |
|Neptun + Venus | 18 Mio. | 9 |
|Pluto + Venus | 12 Mio. | 6 |
|Neptun, Pluto + Venus | 24 Mio. | 12 |
}}}
* Die vier Mitspieler verteilen sich im Raum, überlegen sich ihr Vorgehen und treten dann in Verhandlungen. 
Wenn zwei oder mehr Parteien miteinander verhandeln, dürfen die anderen zwei Minuten lang nicht unterbrechen. 

!Beispiel
Neptun und Pluto einigen sich auf eine Fusion, aus der Neptun mit mit 13 Mio. Anteil und Pluto mit 7 Mio. Anteil hervorgeht. Der zukünftige Chef erhält 10 Punkte (= Ansehen, Status ...), Venus geht leer aus. Gut für Neptun, ganz ordentlich für den Manager (der natürlich am liebsten alle drei zusammenbringen möchte), noch passabel für Pluto, aber bitter für Venus.

!Note
''Wichtig:'' Vor dem Beginn der eigentlichen Verhandlungen dürfen keine Absprachen getroffen werden außer über den Verhandlungsort.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"negotiaton,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Verhandlung]<<tiddlerList tags:"negotiaton,-newTemplate" header:"Übungen Verhandlung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Fusionsverhandlung+%28jt%29.html]]
//synonym://
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.mdtmag.com/uploadedImages/MDT/Community/Blogs/MDT_Blog/Ethnofuturism-blog.jpg>>
<<showtoc>>
!Overview
Im [[Futur Perfect]] entwirft das [[Team]] eine möglichst präzise Vorstellung einer Zukunft, in der die Probleme gelöst sind. Der [[Futur Perfect]] ist ein Schritt im Tool [[Solution Circle]]. Z.B. //„Wenn wir in diesem Workshop wirklich sehr erfolgreich wären und sich das Team dabei genau nach unseren Wünschen entwickeln würde – wo würde das Team dann in zwei Jahren stehen?”// — //„Was würden sie genau anders tun?”//
Das Future Perfect ist ähnlich der Übung [[Remember the Future]].

!Futur Perfect
<script> return "<<tiddler [[Futur Perfect##Overview]]>>" </script>

!Objectives
* Decide what to do in a [[Retrospectives|Agile Retrospectives]]

!Timing
???

!Materials
* ???

!Audience
Group

!Procedure

!Debriefing

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://upload.wikimedia.org/wikipedia/commons/thumb/6/62/EGG_Future_perfect_in_past.svg/549px-EGG_Future_perfect_in_past.svg.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.changezone.co.uk/Solutions%20Focus.JPG>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
* [[Video: Remember the Future]]
* [[Remember the Future]]
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Focusing on Solutions – not problems — PDF| http://www.google.de/url?sa=t&source=web&cd=8&sqi=2&ved=0CD8QFjAH&url=http%3A%2F%2Fwww.changezone.co.uk%2Fdownload%2FFocusing%2520on%2520Solutions%2520-%2520not%2520Problems%25202.pdf&rct=j&q=Futur%20Perfect%20solution%20focused&ei=EkrRTIKeGpKTjAfOscGVDA&usg=AFQjCNH3xX3zWNV4XRTK__JZc6aCArmfOg&cad=rja]] (''!!!'')
* [[Future Perfect — PDF| http://www.thesolutionsfocus.co.uk/sites/default/files/Future%20Perfect%20Extract.pdf]]
<data>{"abstract":"Interessante [[Erfahrungen|Erfahrung]] können zukünftige und aktuelle [[Führungskräfte|Führung]] machen, wenn sie am eigenen Leib spüren, was es heißt, andere aktiv zu führen oder von ihnen geführt zu werden."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.almagro.at/hppic2.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Führen aktiv und passiv","abstract") </script>

!Führen aktiv und passiv
<script> return "<<tiddler [[Führen aktiv und passiv##Overview]]>>" </script> 

!Objectives
* Erleben, aktiv zu führen oder geführt zu werden

!Timing
30 min

!Audience
Group

!Materials
* 

!Procedure
Die Teilnehmer des Führungstrainings stehen paarweise hintereinander. Dann legt der hintere seinem Vordermann eine Hand flach auf den Kreuzwirbelbereich und führt hin durch Druck der Hand in unterschiedliche Richtungen durch den Raum. 
Danach wird getauscht. 

Eine Steigerung der Erfahrung ist es, wenn man die Übung wiederholt, dann aber sich am Kinn durch den Raum führt. Hier könnte das Abhängigkeitsgefühl noch stärker spürbar sein, da das Kinn einen intimeren Bereich darstellt.

!Debriefing

!Quelle
Susanne Benker: Im Reich der Etrusker, managerSeminare 2/2000, S.62

!See also
* [[Haus-Baum-Hund]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Führung]<<tiddlerList tags:"leadership,-newTemplate" header:"Übungen Führung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php4?to_parebene=F%FChren+aktiv+und+passiv+%28jt%29&db=3]]
<data>{"abstract":"Niemand kann in die Zukunft blicken — man kann sich jedoch mögliche Reaktionen des eigenen Unternehmens auf mögliche zukünftige Entwicklungen erarbeiten. Zum Beispiel, indem man sie durch fünf verschiedene [[Brillen|Fünf Brillen]] betrachtet."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://anzeigervonsaanen.typepad.com/.a/6a00d8341c96c753ef0120a5235e9a970c-250wi>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Fünf Brillen","abstract") </script>

!Fünf Brillen
<script> return "<<tiddler [[Fünf Brillen##Overview]]>>" </script> 
Niemand kann in die Zukunft blicken — man kann sich jedoch mögliche Reaktionen des eigenen Unternehmens auf mögliche zukünftige Entwicklungen erarbeiten. 

!Objectives
* Von allen Seiten betrachten

!Timing
30min

!Audience
Group / Individual


!Materials
* 5 farbige Brillen

!Procedure
Hier ein Zukunftsmanagement, das aus fünf Phasen besteht. Betrachten Sie in einer Gruppe aus Experten unterschiedlicher Fachrichtungen die Zukunft durch fünf verschiedene Brillen:

# ''Die blaue Brille.'' Sie betrachtet die wahrscheinliche Zukunft in Form von Annahmen: Wie wird sich das Umfeld bezüglich Kunden, Markt, Technologie und Recht entwickeln?<br><br>
# ''Die grüne Brille.'' Hier geht es um die denkbare Zukunft, der Schwerpunkt liegt auf den Chancen und Bedrohungen: Welche Chancen und Bedrohungen liegen für uns in den zukünftigen  [[Veränderungen|Organizational Change]]?<br><br>
# ''Die gelbe Brille.'' Nun geht es an die gewünschte Zukunft, es wird eine Vision entwickelt: Wie soll unser Unternehmen in fünf bis zehn Jahren aussehen?<br><br>
# ''Die rote Brille.'' Sie nimmt mögliche Diskontinuitäten ins Blickfeld, die unerwartete Zukunft: Was könnte uns überraschen?<br><br>
# ''Die violette Brille.'' Jetzt wird es konkret, Strategien werden entwickelt: Was wollen wir konkret tun?

Wichtig ist, dass die fünf Phasen nacheinander angegangen und keine ausgelassen wird. Und es sollte nicht bei einem einmaligen Prozess bleiben, mit der Zukunft seines Unternehmen sollte man sich durchaus regelmäßig beschäftigen.

!Debriefing

!Quelle
Pero Micic: In die Welt von morgen blicken, managerSeminare 1/2003, S.22


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.duisburg.de/micro2/2027/projekt/projektorganisation/102010100000267035.php.media/266763/102010100000266763.jpg.scaled/661x450.pm1.bgFFFFFF.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
* [[Drei Stühle des Walt Disney]]
* [[Organizational Change Management]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonlinehttp://mwonline.de/db/topics/themenentry.php3?to_parebene=F%FCnf+Brillen+%28jt%29&db=3]]
//synonym://
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!xxx
<<tiddler [[xxxxx##Overview]]>>


!Objectives

!Timing

!Materials
*

!Audience
Group / Individual

!Procedure

!Debriefing

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* 

/%
|Name||
|Source||
|Version||
|Author||
|License||
|~CoreVersion||
|Type|newTemplate|
|Requires||
|Overrides||
|Description|Template tagged as "game" for general glossary game tagged entries|
%/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[games|Games]] for [[moderation|Moderation]], [[motivation|Motivation]], [[negotiation|Negotiation]], [[presentation]], [[communication|Kommunikation]], [[idea management|Ideenmanagement]], [[agile retrospectives|Agile Retrospective]], [[self management|self_management]], [[problem solving|problem_solving]], [[advanced training|advanced_training]], [[conflict resolution|conflict_resolution]], [[knowledge management|Wissensmanagement]], [[organizational change management|Organizational Change Management]], [[innovation|Innovation]], [[Teambuilding|Teamentwicklung / Teambuilding]].

!Games
<<tiddler [[Games##Overview]]>>

!All Games
<script>
var out=[];
var tids=store.getMatchingTiddlers("game AND NOT excludeLists AND NOT newTemplate");
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
return out+="\n }}}"
</script>

!Games by Application
<<forEachTiddler
    where
        'tiddler.title.contains("Games for") & !tiddler.title.contains("Wilderness")'    
    sortBy '(tiddler.title.toLowerCase())'
    write
        '"!!"+tiddler.title+"\n <<section [["+tiddler.title+"##Games]]$))\n"'
>>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
<<forEachTiddler
    where
        'tiddler.title.contains("Games for") & !tiddler.title.contains("Wilderness")'    
    sortBy '(tiddler.title.toLowerCase())'
    write
        '"!!"+tiddler.title+"\n {{indent{<<section [["+tiddler.title+"##Weblinks]]$))}}}\n"'
>>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[Advanced training games|Games for Advanced Training]].

!Games for Advanced Training
<<tiddler [[Games for Advanced Training##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("advanced_training AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open advanced training games" game AND advanced_training>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("advanced_training AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[games for agile teams|Games for Agile]]. Agile Games are [[facilitated workshops|Facilitated Workshop]] whereas agile is about delivering the highest business value possible faster by focusing on people and Continuous Improvement and the participants are a carefully selected group of stakeholders, including customers and subject matter experts, work together to discover, create, verify, and document predefined deliverables. 

!Games for Agile
<<tiddler [[Games for Agile##Overview]]>>

{{center{
<<wikify [img(%0,%1)[%2|%3][%3]] 70% 70% title http://www.agilitrix.com/wp-content/uploads/2010/06/Games-Grid-630x493.jpg>>}}}

* ''People'' – games about people learning individual skills or learning about individuals
* ''System'' — games about the team or organization
* ''Concepts'' — games primarily about teaching concepts or ideas
* ''“Experiencing our reality”'' — games the help us understand ourselves and our context

!!People/Concepts
* [[Multi-tasking]] (10 min)
* [[Collaborative Origami]] – collaboration & communication (15min)
* [[Yellow Brick Road]]: Fresh Insights through peer coaching (90min)
* [[Pair Draw]] (30min)
* [[99 Test Balloons]] – acceptance testing (30min)
* [[Go!]] – A game for illustrating the [[Agile mindset|Agile Principles]], your brain on [[Scrum]] (10min)

!!System/Concept
* [[Bang For The Buck Prioritization]] – backlog ([[Sprint Backlog]], [[Product Backlog]]) organization and prioritization – (60 min).
* [[The Backlog is in the Eye of the Beholder]] – organizing backlog from stakeholder view (40min). 
* [[Business Value Game]] – helps understand differing sources of value. (90min)
* [[Marshmallow Challenge]] – understand benefits of incremental design (45min)
* [[XP Game]], [[XP Game – Scrum variant]] – basics of iterative development and acceptance testing (180min)
* [[Penny Game]] – Flow of value, process improvement (40 min?)
* [[Bottleneck Game]] – understanding process and applying theory of constraints (90min)
* [[Name Game]] – Limit concurrent projects (10min)
* [[Movers and Shapers]] – team dynamics (10min)

!!System/Reality
* [[Ball Point Game]] – process improvement, teamwork – simpler than penny game (40min)
* [[Value Stream Mapping]] – hmmm. not a game really
* [[Leadership Game]] – self-organization and leadership styles (180min)

!!People/Reality
* [[Constellations]] – Share team perspectives (30min)
* [[Improv Games]] and [[Hypnotizing hypnotist]] – Get better at collaboration and innovation (10min to ?)
* [[Market Place]] – share skills with team members (30+ min)

!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("agile AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open agile games" game AND agile>>
===


!Internet Images
+++*[Internet Images]> {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://ebgconsulting.com/blog/wp-content/uploads/2010/07/game-blog-photo-first.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://leadinganswers.typepad.com/leading_answers/images/2007/03/22/s.jpg>> 
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://leadinganswers.typepad.com/leading_answers/images/2007/03/22/rtf_2.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://leadinganswers.typepad.com/leading_answers/images/2007/03/22/stpt_2.jpg>> /%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>> %/
---- }}}
===


!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
!!Weblinks - General
* [[Agile Games Collection: Agile games of agilecoach.net| http://www.agilecoach.net/]]
* [[Agile Games Collection: Jurgen De Smet's game collection| http://agilefun.com/2008/10/18/agile-games-and-techniques-time-to-share-some/]]
* [[Agile Games Collection: TastyCupCakes. |http://blog.tastycupcakes.com/]] (''!!!!!!'')
* [[Agile development as alternate-reality game?| http://groups.google.com/group/agilegames/browse_thread/thread/c153b6eb387ee618]]
* [[Encourage Playing Games at Office| http://blog.staffannoteberg.com/tag/facilitated-workshop/]]
* [[Games and tough questions for Agile Adoption| http://agilitrix.com/2009/09/games-and-tough-questions/]]
* [[Games for what?| http://blog.connexxo.com/2011/05/games-for-what.html]] (''!!'')
* [[Games over a computer & phone?| http://groups.google.com/group/agilegames/browse_thread/thread/a041361ffa484ff5]]
* [[Games you can play with a distributed team| http://groups.google.com/group/agilegames/browse_thread/thread/502dc77f7fe4c9b6]]
* [[Google group: Agile Games| http://groups.google.com/group/agilegames/]]
* [[How to Facilitate a Great Game Debrief| http://agilitrix.com/tag/training/]]
* [[How to create your own game| http://www.agilitrix.com/2010/05/how-to-create-your-own-game/]]
* [[Innovation Games| http://innovationgames.com/]]
* [[Learn to coach and observe through play| http://www.agilitrix.com/2010/05/learn-to-coach-and-observe-through-play/]]
* [[Learning Through Games| http://www.agilitrix.com/2010/06/learning-through-games/]]
* [[LEGO Serious Play| http://www.seriousplay.com/]]
* [[Mary Gorman: Being Agile when Designing and Playing Agile Games| http://ebgconsulting.com/blog/being-agile-when-designing-and-playing-agile-games/]] (''!!'')
* [[Mary Gorman: Playing at Work. Games That Deliver Value| http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=16287&tth=DYN&tt=siteemail&iDyn=2]] (''!!'')
* [[Screencast – Four Ways to Search for Games on TastyCupcakes| http://www.youtube.com/watch?v=T7H3Ye4o0yM&feature=player_embedded]]
* [[Short Game with a focus on quality?| http://groups.google.com/group/agilegames/browse_thread/thread/6b5df3a5f378a1f8]]
* [[Sven Röpstorff: Agile Games| http://www.conceptpeople.de/uploads/ConceptPeople_IT-Talk_Agile_Games_20110606.pdf]] (http://www.transment.de/de/index.php)
* [[Team and pair games for building collaboration| http://www.agilitrix.com/2010/05/team-and-pair-games-for-building-collaboration/]]
* [[We Played InnovationGames to Plan TastyCupcakes.org| http://tastycupcakes.org/es/2011/05/we-played-innovationgames-to-plan-tastycupcakes-org/]]
* [[Yves Hanoulle: Just Do IT| http://www.hanoulle.be/2011/04/just-do-it/]] (''!!'')
* [[Product owner simulation| http://groups.google.com/group/agilegames/browse_thread/thread/66b29b80d5877163]]
* [[PO Game| http://groups.google.com/group/agilegames/browse_thread/thread/87d575c73759d26e]]
* [[Agile Estimation for 700 person audience ?| http://groups.google.com/group/agilegames/browse_thread/thread/aaa9a6db6d7c2ad0]]
* [[Game to train scrum values| http://groups.google.com/group/agilegames/browse_thread/thread/62ce50fb6cdaea75]]
* [[Game for testers new to agile| http://groups.google.com/group/agilegames/browse_thread/thread/25838a9bd070d749]]
* [[Birdie-Birdie: a product-building simulation| http://www.cyment.com/blog/2011/10/birdie-birdie-a-product-building-simulation/]]
* [[Management awareness games| http://groups.google.com/group/agilegames/browse_thread/thread/3a6a47b367565b83]]
* [[A game to demonstrate the affects of team size| http://groups.google.com/group/agilegames/browse_thread/thread/1190cc2f6ed97f2c]]
* [[Game to Measure WIP Limit| http://groups.google.com/group/agilegames/browse_thread/thread/68e91c2247b336c6]]
* http://www.agilehardware.com/

/%
!!Weblinks agile Games in this Wiki
+++*[Tables of Games]> 
<script>
var out=[];
var tids=store.getMatchingTiddlers("agile AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='\n!!' +t+ '\n <<section [[' +t+ '##Weblinks]]>>';
}
return out
</script>
=== %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[coaching games|Games for Coaching]].

!Games for Coaching
<<tiddler [[Games for Coaching##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("coaching AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open coaching games" game AND coaching>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("coaching AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[CobIT games|Games for CobIT]].

!Games for ~CobIT
<<tiddler [[Games for CobIT##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("cobit AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open CobIT games" game AND cobit>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("cobit AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[Communication games|Games for Communication]].

!Games for Communication
<<tiddler [[Games for Communication##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("communication AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open communication games" game AND communication>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("communication AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> /%
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[conflict resolution games|Games for Conflict Resolution]].

!Games for Conflict Resolution
<<tiddler [[Games for Conflict Resolution##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("conflict_resolution AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open conflict resolution games" game AND conflict_resolution>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("conflict_resolution AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[creativity games|Games for Creativity]].

!Games for Creativity
<<tiddler [[Games for Creativity##Overview]]>>

!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("creativity AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open creativity games" game AND creativity>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("creativity AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[flow games|Games for Flow]].

!Games for Flow
<<tiddler [[Games for Flow##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("flow AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open flow games" game AND flow>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("flow AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[ideamanagement games|Games for Ideamanagement]].

!Games for Ideamanagement
<<tiddler [[Games for Ideamanagement##Overview]]>>

!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("idea_management AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |{{bold{Weblinks}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |<<section "' +t+ '##Weblinks">> |\n';
}
out+"{{indent{"+i.toFixed(0)+" games listed}}} \n }}}";
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open idea management games" game AND idea_management>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("idea_management AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[innovation games|Games for Innovation]]. Games and simulations provide an excellent platform for [[innovation|Innovation]], learning concepts and new behaviours. 

!Games for Innovation
<<tiddler [[Games for Innovation##Overview]]>>
There are four specific ways in which you can use [[Innovation Games|Innovation Game]]:
# ''directed market research, or market research'' that is designed to answer specific questions with data that supports taking action against these data. Examples of directed market research include determining what features should be included in a specific product release or specific pain points of target markets (including, but not limited to, existing customers, prospects, competitors, channel partners, and so forth).<br><br>
# ''customer-centric [[innovation|Innovation]]'', in which you use the games to uncover previously unknown market needs. As you'll see later, Innovation Games are especially effective at creating opportunities to learn "what you didn't know that you didn't know," which in many ways serves as the heart of innovation.<br><br>
# generating the ''rich understanding of customer needs and desires'' that feed the various requirements techniques we use to manage products. User personas, scenarios, and use cases, assessing feature importance through Kano analysis, or creating "nonfunctional requirements" are all importantbut all come after the insights that lead to innovation, shaping them and defining them. Innovation comes before requirements, and playing Innovation Games with your customers creates richer requirements.<br><br>
# providing ''support and strengthening the ongoing customer relationship'' that you have with key customers through existing channels such as customer advisory boards, user groups, and/or customer conferences. 

!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("innovation AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open innovation games" game AND innovation>>
===

!Organizing Innovation Games
!!Purpose
|sortable|k
|''What do you want to understand?''  |''Consider These Games''  |h
|''Unmet and/or idealized market needs.'' <br>Although all [[Innovation Games|Innovation Game]] provide insight into market needs, these games are specifically designed for identifying unmet and/or idealized market needs, which can then be used as input to strategic planning and the identification of new business opportunities.  |[[Product Box]], [[Me and My Shadow]], [[Buy a Feature]], [[Give Them a Hot Tub]], [[Remember the Future]]  |
|''Products and services usage and relationships.'' <br>Successful products evolve over time, typically becoming richer and more customized to meet the needs of increasingly diverse markets. A key aspect to managing this evolution and tapping into new markets is gaining a better understanding of how customers use existing products and services and how they are related to other products and services. These games will help.  |[[Spider Web]], [[Start Your Day]], [[Me and My Shadow]], [[Show and Tell]], [[The Apprentice]]  |
|''Product and service functionality.''<br>As Theodore Levitt wrote in his seminal work "The Marketing Imagination"```Levitt, T.: //The Marketing Imagination.// New York, NY: The Free Press, 1986.``` customers don't want a drill, they want a hole. Clayton Christensen echoes this theme in "The Innovator's Dilemma"```Christensen, C. M.: //The Innovator's Dilemma.// Boston, MA: Harvard Business School Press, 1997.``` by reminding us, "We hire products to do jobs." These games will help you better understand the jobs your customers are striving to accomplish.  |[[Product Box]], [[20/20 Vision]], [[Me and My Shadow]], [[Speed Boat]], [[Start Your Day]], [[The Apprentice]], [[Buy a Feature]]  |
|''How to shape your product for the future.''<br>Every company spends a lot of time thinking about the future of its products and services. Unfortunately, all too often they don't explicitly include their customers in the conversation. These games provide a way for your customer to join you in shaping your future together.  |[[Remember the Future]], [[20/20 Vision]], [[Buy a Feature]], [[Prune the Product Tree]]  |


!!Degree of Physical Preparation
The degree of physical preparation addresses the various supplies or materials that you need to play a game.
 
|sortable|k
|''Degree''  |''Games''  |h
|Low  |[[Spider Web]], [[Remember the Future]], [[Speed Boat]], [[Give Them a Hot Tub]]  |
|Medium  |[[The Apprentice]], [[Me and My Shadow]],  [[20/20 Vision]]  |
|High  |[[Buy a Feature]], [[Start Your Day]], [[Show and Tell]], [[Prune the Product Tree]], [[Product Box]]  |


!!Degree of open-ended Exploration
The degree of open-ended exploration refers to how much or how little you constrain interaction with a customer.

|sortable|k
|''Degree''  |''Games''  |h
|Low  |[[Buy a Feature]], [[The Apprentice]], [[20/20 Vision]], [[Give Them a Hot Tub]]  |
|Medium  |[[Prune the Product Tree]], [[Me and My Shadow]], [[Start Your Day]], [[Show and Tell]]  |
|High  |[[Speed Boat]], [[Product Box]], [[Spider Web]], [[Remember the Future]] |


!!Degree of Scalability
Innovation Games are designed for relatively small groups, typically between 4 and 24 people. However, we have had success in scaling some of the games to several hundred people. 
The two key tricks in scaling the games to large groups is leveraging the natural structure of the games to subdivide larger groups into smaller groups that can play the games and changing the degree of facilitation within the games.

|sortable|k
|''Degree''  |''Games''  |h
|Low  |[[Speed Boat]], [[Buy a Feature]], [[Show and Tell]] |
|Medium  |[[Product Box]], [[20/20 Vision]], [[The Apprentice]], [[Prune the Product Tree]], [[Me and My Shadow]], [[Start Your Day]], [[Give Them a Hot Tub]]|
|High  |[[Spider Web]], [[Remember the Future]] |


!!Time Frame of Action
The games also vary by the time frame for putting the result of the game into action. 

|sortable|k
|''Degree''  |''Games''  |h
|Low  |[[Buy a Feature]], [[Show and Tell]], [[Speed Boat]], |
|Medium  |[[Product Box]], [[The Apprentice]], [[20/20 Vision]], [[Give Them a Hot Tub]], [[Prune the Product Tree]], [[Me and My Shadow]], [[Start Your Day]]  |
|High  |[[Spider Web]], [[Remember the Future]] |

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
<<tiddler [[Innovation Game##Weblinks]]>>
<<tiddler [[Innovation Game##Further Reading]]>> /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("innovation AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[kaizen games|Games for Kaizen]].

!Games for Kaizen
<<tiddler [[Games for Kaizen##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("kaizen AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open kaizen games" game AND kaizen>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("kaizen AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[kanban games|Games for Kanban]].

!Games for Kanban
<<tiddler [[Games for Kanban##Overview]]>>

!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("kanban AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open kanban games" game AND kanban>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Kanban games...What's up your sleeve?| http://groups.google.com/group/agilegames/browse_thread/thread/17f74cb9342b41f9]] /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("kanban AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[knowledge management games|Games for Knowledge Management]].

!Games for Knowledge Management
<<tiddler [[Games for Knowledge Management##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("knowledge_management AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open knowledge management games" game AND knowledge_management>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("knowledge_management AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[leadership games|Games for Leadership]].

!Games for Leadership
<<tiddler [[Games for Leadership##Overview]]>>

!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("leadership AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open leadership games" game AND leadership>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Management awareness games| http://groups.google.com/group/agilegames/browse_thread/thread/3a6a47b367565b83]] /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("leadership AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[lean games|Games for Lean]].

!Games for Lean
<<tiddler [[Games for Lean##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("lean AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open lean games" game AND lean>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Lean games - Torch game| http://www.youtube.com/watch?v=Bsp2dpVO96c&feature=related]] /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("lean AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[learning games|Games for Learning]].

!Games for Learning
<<tiddler [[Games for Learning##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("learning AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open learning games" game AND learning>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("learning AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
/%
|Name|Games for Learning - Taking fun seriously|
|URL|http://www.youtube.com/v/qq_7zyg5qoA|
|Description|xxxx|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/qq_7zyg5qoA"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/qq_7zyg5qoA" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[games for better meetings|Games for Meeting]].

!Games for Meeting
<<tiddler [[Games for Meeting##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("meeting AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open meeting games" game AND meeting>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("meeting AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[mnemonic games|Games for Mnemonic]].

!Games for Mnemonic
<<tiddler [[Games for Mnemonic##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("mnemonic AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open mnemonic games" game AND mnemonic>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("mnemonic AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[moderation games|Games for Moderation]].

!Games for Moderation
<<tiddler [[Games for Moderation##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("moderation AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open moderation games" game AND moderation>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("moderation AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[motivation games|Games for Motivation]].

!Games for Motivation
<<tiddler [[Games for Motivation##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("motivation AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open motivation games" game AND motivation>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("motivation AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[negotiation games|Games for Negotiation]].

!Games for Negotiation
<<tiddler [[Games for Negotiation##Overview]]>>

!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("negotiation AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open negotiation games" game AND negotiation>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("negation AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[organizational change management games|Games for Organizational Change Management]].

!Games for Organizational Change Management
<<tiddler [[Games for Organizational Change Management##Overview]]>>

!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("ocm AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open ocm games" game AND ocm>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks 
* [[GameStorming| http://www.gogamestorm.com/]] /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("ocm AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[outdoor games|Games for Outdoor]].

!Games for Outdoor
<<tiddler [[Games for Outdoor##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("outdoor AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open outdoor games" game AND outdoor>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("outdoor AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[presentation games|Games for Presentation]].

!Games for Presentation
<<tiddler [[Games for Presentation##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("presentation AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open presentation games" game AND presentation>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("presentation AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[problem solving games|Games for Problem Solving]].

!Games for Problem Solving
<<tiddler [[Games for Problem Solving##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("problem_solving AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open problem solving games" game AND problem_solving>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("problem_solving AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[process improvement games|Games for Process Improvement]].

!Games for Process Improvement
<<tiddler [[Games for Process Improvement##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("process_improvement AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open process improvement games" game AND process_improvement>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("process_improvement AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[agile retrospectives games|Games for Retrospectives]]. [[Retrospective|Agile Retrospective]] generally means to take a look back at events that already have taken place. In software engineering a retrospective is a meeting held by a [[project team|Projektteam]] at the end of a [[project|Projekt]] or process (often after an [[iteration|Iteration]] or [[sprint|Sprint]]) to discuss what was successful about the project or time period covered by that retrospective, what could be improved, and how to incorporate the successes and improvements in future iterations or projects.
[[Games for Retrospectives]] help to foster retrospectives and to excavate lessons learned, experience, and to better plan the next steps.

!Games for Retrospectives
<<tiddler [[Games for Retrospectives##Overview]]>>
[[Agile retrospectives|Agile Retrospectives]] play a very important role in iterative and incremental development. At the end of every iteration a retrospective is held to look for ways to improve the process for the next iteration.

!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("retrospective AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open retrospective games" retrospective AND game>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("retrospective AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[selfmanagement games|Games for Selfmanagement]].

!Games for Selfmanagement
<<tiddler [[Games for Selfmanagement##Overview]]>>


!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("self_management AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open self management games" game AND self_management>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("self_management AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://blogs.theage.com.au/screenplay/seriousgames.jpg
<<showtoc>>
!Overview
Managementtrainings finden immer häufiger auf einem Kreuzfahrtschiff, auf ~Südsee-Inseln oder im fernen Shanghai statt – dank neuer Computersimulationen. Grund für den Vormarsch der Serious Games: Die Lerntools werden von der Generation der Digital Natives zunehmend eingefordert. Zu Recht. Denn die Spiele bieten ideale Settings, um vor allem eines zu lernen: den Umgang mit Komplexität.

!Serious Games
<<tiddler [[Serious Games##Overview]]>>

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://seriousgames.msu.edu/images/heart.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://lostgarden.com/gfx/Essays/3D_application-game_overlap.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.ribbonfarm.com/wp-content/uploads/2008/12/serious-games-learning-matrix.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] 99% auto title http://scope.bccampus.ca/file.php/8/160_Games/Map_The_Value_of_Serious_Games.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://courses.science.fau.edu/~rjordan/images/learning_cone.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.e-learning-bw.de/typo3temp/pics/b73436833c.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] 90% auto title http://4.bp.blogspot.com/_Ss_rLDyRQCk/TG1biK4kPiI/AAAAAAAAN14/RkVh854Rtw0/s1600/373+Serious-Games.jpg>> /%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>> %/
---- }}}
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Experiential Learning Games...Maximise learning through fun experiences| http://www.experiential-learning-games.com/index.html]] (''!!'' collection of games)
* [[Lego Serious Play| http://www.seriousplay.com/]]
* [[Marktübersicht 2010: 46 Business-Planspiele im Überblick| http://www.managerseminare.de/Wissen/Marktuebersicht-46-Business-Planspiele-im-Ueberblick,203985?mecL=UmFuZG9tSVaLnVIATKHGUvbovMW8bAkN]]
* [[Tom Grant, Forrester: Corporate Serious Games Are Changing The Rules Of Product Development| http://www.slideshare.net/TomGrantForr/corporate-serious-games-are-changing-the-rules-of-product-development]]
* [[managerseminare ???|http://www.managerseminare.de]]
* http://www.calvin.edu/~dsc8/games.htm
* http://www.managerseminare.de/ms_Artikel/Serious-Games-und-Planspiele-Update-aus-der-Spiele-Welt,204320
* http://www.serious-games.de/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.eis.schulen-offenbach.de/eichendorff-homepage/elterninfo/pausenzeiten.gif>>
<<showtoc>>
!Overview
List of [[teambuilding games|Games for Teambuilding]]. Teambuilding games are a fun way to develop cohesiveness. They tear down walls in communications, provide avenues that encourage discussion, and increase productivity. [[Team building|Teamentwicklung / Teambuilding]] takes time but the end results are well worth the extra time. It is an ongoing process that boosts [[commitment|Commitment]].

!Games for Teambuilding
<<tiddler [[Games for Teambuilding##Overview]]>>

!Games
+++*[Tables of Games]> 
<script>
var out=[];
var ctr=0;
var tids=store.getMatchingTiddlers("teambuilding AND game AND NOT excludeLists AND NOT newTemplate");
if(tids.length>0){
out.push("{{fine{\n|sortable|k\n|{{bold{Name}}} |{{bold{Objectives}}} |{{bold{Materials}}} |{{bold{Timing}}} |{{bold{Audience}}} |h\n");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        ctr++;
        out+='|[[' +t+ ']] |<<tiddler [[' +t+ '##Objectives]]>> |<<tiddler [[' +t+ '##Materials]]>> |<<tiddler [[' +t+ '##Timing]]>> |<<tiddler [[' +t+ '##Audience]]>> |\n';
}
out+"}}}";
}
return out+"{{indent{"+ctr.toFixed(0)+" games listed}}}\n"
</script>
<<matchTags popup "label:Open teambuilding games" game AND teambuilding>>
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Arbeitshilfe Teamspiele — PDF| http://www.cvjm-ag.de/fileadmin/user_upload/tagungen/Fuehrungskraeftetagung/Arbeitshilfe_Teamspiele.pdf]]
* [[Diverse Teamspiele — PDF| http://www.region-online.de/bildung/semi/projekte/spiele.pdf]]
* [[Free team building games — Ideas and theory for employee motivation, training and development| http://www.businessballs.com/teambuildinggames.htm]]
* [[Group Games: A database of icebreakers, group games, fun games, party games, teambuilding activities.| http://www.group-games.com/]] (''!!'')
* [[Icebreaker Games| http://businessmajors.about.com/od/icebreakers/Icebreaker_Games.htm]]
* [[Indoor Games for Team Building| http://www.buzzle.com/articles/indoor-games-for-team-building.html]]
* [[Luftballons als Team-Building-Tool| http://artikel.4.am/archives/21992-Luftballons-als-Team-Building-Tool.html]]
* [[Team Building Exercise & Problem Solving Activity Websites| http://wilderdom.com/games/TeamBuildingExercisesWebsites.html]]
* [[Team Building Games| http://www.oakharborcheer.com/TeamBuildingGames.html]]
* [[Teambuilding Games — PDF| http://www.ev-jugend-loehne.de/ideen/teambuilding.pdf]]
* [[teambuildingportal.com: Effective Teams| http://www.teambuildingportal.com/articles/effective-teams]] (''!!'')
* [[teambuildingportal.com: Systems & Approaches| http://www.teambuildingportal.com/articles/systems]] (''!!'')
* [[teambuildingportal.com: Team Building Games| http://www.teambuildingportal.com/games]] (''!!'')
* [[teambuildingportal.com: Team Building Problems and Symptoms| http://www.teambuildingportal.com/articles/team-failure]] (''!!'')
* [[A game to demonstrate the affects of team size| http://groups.google.com/group/agilegames/browse_thread/thread/1190cc2f6ed97f2c]] /%
<script>
var out=[];
var tids=store.getMatchingTiddlers("teambuilding AND game AND NOT bookmark AND NOT excludeLists AND NOT newTemplate");
for (var i=0; i<tids.length; i++) {
        var t=tids[i].title;
        out+='!!' +t+ '\n <<section "' +t+ '##Weblinks">> \n';
}
return out
</script> %/
<data>{"abstract":"Das [[Gast-Interview]] ist eine effektive [[Abschlussintervention|Intervention]]: Am Ende eines Workshops eines [[Veränderungsprojektes|Organizational Change Project]] erhalten die Teilnehmer Gelegenheit, [[offene Fragen|Offene Frage]] an einen prozessverantwortlichen Entscheider zu adressieren, der als Gast zur Abschlussphase erscheint."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.edutrends.de/wp-content/uploads/2008/09/interview.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gast-Interview","abstract") </script>

!~Gast-Interview
<script> return "<<tiddler [[Gast-Interview##Overview]]>>" </script> 
 Das Gespräch mit dem Gast schafft Transparenz in der Sache und fördert die Akzeptanz des [[Veränderungsvorhabens|Organizational Change Project]].

!Objectives
* Transparenz, Akzeptanz von [[Veränderungsprojekten|Organizational Change Project]].

!Timing
Die Dauer variiert mit der Anzahl der Personen und Fragen. Da die Zielgruppe bereits intensive Arbeitsphasen hinter sich gebracht hat, sollte die Vorbereitung 30 Minuten, die Präsentation 60 Minuten und das Interview 90 Minuten nicht überschreiten.

!Audience
Group

!Materials
* 

!Procedure
Wie Sie das ~Change-Tool "Gast-Interview" richtig anwenden und einsetzen können, zeigt die Anleitung von Dr. Susanne Klein, die Sie folgendem Beitrag (aus: "~Change-Tools") entnehmen können. 


!Debriefing
!!Anwendungsbereiche
Das Gast-Interview ist vor allem dann eine sinnvolle und überaus effektive Abschlussintervention, wenn folgende Bedingungen erfüllt sind:
* Der Workshop dient der Themensammlung und/oder der Suche nach Lösungsoptionen.
* Entscheidungen werden nicht getroffen, sondern "nur" vorbereitet.
* Die Teilnehmer des Workshops sind zwar Beteiligte, sie sind aber nicht die Entscheider im Veränderungsprozess.
* Die Entscheider selbst nehmen am Workshop nicht teil, mit Ausnahme des Gasts, der jedoch den Workshop lediglich eröffnet und dann erst wieder zur Abschlussphase erscheint.

Im Rahmen größerer [[Veränderungsprozess|Organizational Change Model]] werden häufig Workshops auf mehreren ~Hierarchie-Ebenen durchgeführt, um eine breite Beteiligung und damit Akzeptanz herzustellen und möglichst viele Sichtweisen in den Prozess zu integrieren. 
Sinnvoll sind solche Workshops z.B. zu Beginn des [[Change-Prozesses|Organizational Change Model]], wenn es darum geht die prozessrelevanten Themen zu identifizieren. Wenn dabei möglichst viele Blickwinkel aus allen Ebenen und Bereichen der Organisation berücksichtigt werden, kann eine vollständige, differenzierte und realistische Themenlandschaft erarbeitet werden.

Später im Prozess sind solche Workshops erneut nützlich. Wenn das Management die wesentlichen Entscheidungen zum anstehenden [[Veränderungsprozess|Organizational Change Model]] getroffen hat, werden "~Umsetzungs-Workshops" initiiert, die den erfolgreichen Transfer der Strategie in den Unternehmensalltag vorbereiten sollen. Wieder erarbeiten die Teilnehmer hauptsächlich [[Ideen|Ideenmanagement]] und Vorschläge — die verbindliche Entscheidung über die tatsächliche Umsetzung wird aber weitgehend auf anderer Ebene getroffen.

In den beschriebenen Ausgangssituationen engagieren sich die Teilnehmer also entweder für ein Ziel, von dem sie nur die ungefähre Richtung kennen (z.B. "Prozesse optimieren!") oder das Ziel ist klar vorgegeben und steht im Workshop nicht zur Diskussion. In beiden Fällen werden im Verlauf der Veranstaltung zwangsläufig immer wieder Fragen zum Gesamtkonzept des Prozesses auftauchen, die ein externer Moderator in der Regel nicht oder nur unzureichend beantworten kann. Deshalb sollten die Teilnehmer unbedingt zum Ende des Workshops die Möglichkeit haben, im Rahmen eines Gast-Interviews die offenen Themen besprechen und klären zu können. Der Gast ist ein ranghoher Entscheider (idealerweise Mitglied der Geschäftsführung, des Vorstands und/oder des Lenkungsausschusses), der den Veränderungsprozess maßgeblich verantwortet.

!!Zielsetzung und Nutzen
Das Gast-Interview ist eine wirkungsvolle Methode, von der alle Beteiligten profitieren. Der Nutzen für die Teilnehmer:
* Sie können ihre Fragen direkt an einen zuständigen Entscheider adressieren. Oft handelt es sich um spezielle Fragen, deren Relevanz erst im Verlauf der Veranstaltung durch die gemeinsame Arbeit am Thema sichtbar wurde. Sie erhalten direkt klare und kompetente Antworten.
* Irritationen, Missverständnisse und Unsicherheiten werden beseitigt oder zumindest abgeschwächt.
* Die Teilnehmer entwickeln eine klare Vorstellung vom weiteren Prozessverlauf. Sie erfahren, was die nächsten konkreten Schritte sein werden und in welcher Weise die Arbeitsergebnisse des Workshops in die Entscheidungs- und Umsetzungsprozesse einfließen werden.
* Die Teilnehmer werden in die Lage versetzt, ihren Mitarbeitern oder Kollegen ausführlich und kompetent Rede und Antwort stehen zu können.

!!Nutzen für den Gast
* Die Fragen, die von Seiten der Teilnehmer adressiert werden, sind für den "Gast" eine unschätzbare Informationsquelle, um den Prozess weiter zu optimieren.
* Das  [[Interview|Interviewing Technique]]  hilft, eventuelle Schwierigkeiten auf sachlicher und psychologischer Ebene vorauszusehen.
* Der Gast kann Hintergründe, Zusammenhänge und strategische Notwendigkeiten erläutern und so über die Abteilungsgrenzen hinweg den Blick auf das Ganze vermitteln. Dadurch wird die Loyalität der Teilnehmer im Hinblick auf die gemeinsame Umsetzung der Strategie gestärkt.
* Er kann klären, welche Erwartungen und Wünsche der Teilnehmer erfüllt werden können und welche definitiv nicht. Diese Klarheit ist oft sehr wichtig, um [[Gerüchten|Gerüchteküche]] und Spekulationen entgegenzuwirken und um unfruchtbare Diskussionen frühzeitig zu unterbinden.
Nicht zuletzt kann er aktive "Beziehungsarbeit" leisten, indem er das Engagement der Teilnehmer authentisch würdigt, eventuelle Sorgen und Ängste verständnisvoll aufnimmt, interessiert nachfragt oder ganz einfach aufmerksam zuhört.

Das Tool dient auch dazu, den Prozess von der Rolle des Moderators zu lösen. Durch das [[Gast-Interview]] wird der Workshop langsam in den betrieblichen Alltag zurück überführt.


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[Zur Homepage von Dr. Susanne Klein…| http://www.moderationstools.de/]]
<data>{"abstract":"Können wir [[Gedanken lesen]]? Das vielleicht nicht, aber wir sind in der Lage, selbst aus sinnlosem Gemurmel Stimmungen und Gefühle heraus zu hören und so unsere [[Wahrnehmung]] zu schulen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.wfishermagic.de/assets/images/Gedanken_lesen.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gedanken lesen","abstract") </script>

!Gedanken lesen
<script> return "<<tiddler [[Gedanken lesen##Overview]]>>" </script> 
Angenommen, wir könnten Gedanken lesen und praktizierten diese Fähigkeit unbewusst andauernd. 
Was wäre die Folge? Dann nähmen wir ja [[Informationen|Information]] auf, deren Herkunft wir nicht zuordnen können. 
Da es aber in unserem Weltbild keine Wirkung ohne Ursache geben kann, finden wir rationale Erklärungen, die allerdings wenig mit dem Sprecher, sondern vielmehr mit uns, dem Zuhörer, zu tun haben. Dass wir in der Lage sind, "Gedanken zu lesen", können wir mit einer kleinen Übung leicht demonstrieren:

!Objectives
* trainieren der Wahrnehmungsfähigkeit
* Trennung von [[Wahrnehmung]], Bedeutung und eigener Reaktion
* Bewußtwerdung eigener (bisher unbekannter) Fähigkeiten

!Timing
10min

!Audience
Group / Individual

!Materials
* —

!Procedure
# Einer der Teilnehmer aus der Gruppe findet je eine Situation oder eine Person, an die er mit Groll, Wut o.ä. denkt und eine, an die er mit Freude, Lust usw. denkt. 
# Zuerst begibt er sich je einmal in jede der Situationen und sagt nur //"Rhabarber, Rhabarber..."// und sagt vorher an, ob es die positive oder negative Situation ist, damit sich die Zuhörer auf die Tonalität kalibrieren können. 
# Danach sagt er dies nicht mehr an, begibt sich in eine der Situationen und sagt: //"Rhabarber, Rhabarber".// 

Wichtig ist, dass er einfach nur //"Rhabarber"// sagt und sich eben nicht bemüht, Hinweise in die eine oder andere Richtung zu geben.

!Debriefing
Zu ihrer eigenen Überraschung haben die Teilnehmer eine deutliche Ahnung, ob der Protagonist in der positiven oder negativen Situation war. Diese Fähigkeit haben die Teilnehmer ohne jede Anleitung oder bewusste Kompetenz. 

Je öfter die Übung wiederholt wird, desto mehr bekommen die Teilnehmer die Fähigkeit, festzustellen, welche Beobachtung oder [[Wahrnehmung]] sie zu der einen oder anderen Meinung bewegt.
Wir schaffen den Übergang vom Gedankenlesen zum genauen Beobachten und Zuhören.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Gedanken+lesen+%28no%29&db=3]]
<data>{"abstract":"[[Gegen- oder miteinander]], eine Variante des berühmten Prisoners Dilemma, überall dort einsetzbar, wo es um Zusammenarbeit zwischen einzelnen und/oder Gruppen geht und //Vertrauen// das Thema ist.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.leichtathletik.de/dokumente/ergebnisse/uploads/la_training/S1-15033.jpg>>/%
http://roger.phrblog.kaywa.ch/files/images/2006/12/mob11_1165323432.jpg>> %/
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gegen- oder miteinander","abstract") </script>

!Gegen- oder miteinander

!Objectives
* Zusammenarbeit zwischen einzelnen und/oder Gruppen; 
* Vertrauen

!Timing
15min

!Audience
Group / Individual


!Materials
* 4 Moderationskarten, auf denen jeweils der Buchstabe "O", "K", "L" bzw. "U". 


!Procedure
# Man bildet zwei Gruppen. For pairing use [[Gruppenpuzzle]] or [[Hör gut hin!]].
# Die eine erhält zwei Moderationskarten, auf denen jeweils der Buchstabe "O" und "K" steht. 
# Die andere Gruppe hat Karten mit den Buchstaben "L" bzw. "U". 
# Die Gruppen sitzen getrennt voneinander und senden nun der anderen Gruppe eine Karte. 
# Werden die Karten "K" und "L" versandt, kassieren beide Gruppen 7 Punkte. 
# Wer den "feindlichen" Buchstaben "O" bzw. "U" schickt, kassiert vom anderen 10 Punkte, wenn dieser seinen "freundlichen" Buchstaben "K" bzw. "L" geschickt hat. 
# Senden allerdings beide Gruppen gleichzeitig ihre "feindlichen" Buchstaben, verlieren beide 10 Punkte. 
Auch hier werden wieder mehrere Runden gespielt, wobei zwischendurch Verhandlungen stattfinden.


!Debriefing


!Quelle
Oliver Steeger: Lernen von Moses und Eisenhower, wirtschaft&weiterbildung 2/2004, S. 16

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Gegen-+oder+miteinander+%28jt%29.html]]
<data>{"abstract":"[[Gegenseitiges Interview]], die beste Voraussetzung, um einen [[Konflikt]] beizulegen, ist das Verständnis für die Haltung des anderen. Mit dieser Übung lässt sich ein solches Verständnis leichter erzielen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.dirksipp.de/mediac/400_0/media/Miho$20gibt$20ein$20Interview_bearbeitet-1.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gegenseitiges Interview","abstract") </script>

!Gegenseitiges Interview
<script> return "<<tiddler [[Gegenseitiges Interview##Overview]]>>" </script> 
Die beste Voraussetzung, um einen [[Konflikt]] beizulegen, ist das Verständnis für die Haltung des anderen. Mit dieser Übung lässt sich ein solches Verständnis leichter erzielen.
Verständnis für die Haltung des anderen wäre die beste Voraussetzung für die Beilegung eines [[Konfliktes|Konflikt]]. Aber wie soll das erreicht werden? 

!Objectives
* Verständnis für die Haltung des anderen. 
* Konfliktbewältigung

!Timing
30 min

!Audience
Group / Individual


!Materials
* 

!Procedure
Bei dieser Übung notiert jeder der Konfliktpartner für sich alleine die aktuellen Streitpunkte sowie seine dazugehörigen Emotionen. 
Gleichzeitig schreibt man auf, wie man die Emotionen der Gegenpartei zu dem [[Konfliktpunkt|Konflikt]] einschätzt. 
Diese Aufzeichnungen werden dann ausgetauscht. 
Danach interviewen sich die [[Konfliktgegner|Konflikt]] zu den einzelnen Punkten. Es geht darum, besonders Trennendes im Rahmen dieses Interviews sichtbar zu machen. 

!Debriefing
Der Effekt: Die [[Konfliktpartner|Konflikt]] lernen die Haltung des anderen genauer kennen — und möglicherweise verstehen.

!Quelle
Bernd Wittschier: ~Konfliktlösungs-Workshop, Wirtschaft und Weiterbildung 4/1999, S.34

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Gegenseitiges+Interview+%28jt%29]]
<data>{"abstract":"Der Coachee steht vor einer Entscheidung und schwankt zwischen zwei Alternativen. Der Coach hilft ihm, indem er den //Advocatus Diaboli// spielt…  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://kwerfeldein.de/wp-content/uploads/2010/01/Gegenwind.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gegenwind","abstract") </script>

!Gegenwind
<script> return "<<tiddler [[Gegenwind##Overview]]>>" </script> 
Der Coachee steht vor einer Entscheidung und schwankt zwischen zwei Alternativen. Der Coach hilft ihm, indem er als "Advocatus Diaboli" die Gegenargumente vorträgt, während der Coachee beide Alternativen verteidigen muss.

!Objectives
* Wahlt zw. Alternativen

!Timing
20min-30min

!Audience
Group / Individual


!Materials
* 3 Stühle

!Procedure
Praktisch läuft das so ab: 
* Im Raum stehen drei Stühle im Dreieck. 
* Der Coachee setzt sich auf einen Stuhl, der Coach auf einen der beiden anderen. 
* In dieser Position wird er versuchen, Alternative A zu "demontieren". 
* Der Coach bittet den Coachee sich vorzustellen, er habe sich schon für den Weg A entschieden. <br>Nun begegnet er jemandem, der versuchen wird, ihm diesen Weg auszureden. 
* Während der Coach nun versucht, die Unsinnigkeit der Alternative A deutlich zu machen, soll der Coachee für sie kämpfen. <br>Wenn dem Coachee die Argumente ausgehen, wird kurz unterbrochen. 
* Der Coachee atmet kräftig durch und wird gefragt, ob er bereit ist für einen weiteren Gegenwind. 
* Dann wechselt der Coach auf den Stuhl für die Alternative B und das Prozedere wird wie zuvor durchgeführt.

!Debriefing
Anschließend verlassen Coach und Coachee das Dreieck und betrachten die Stühle von außerhalb. 
Die Frage an den Coachee lautet nun: 
* //"Wenn Sie hier und jetzt entscheiden müssten — wie würden Sie entscheiden?" //
Diese Entscheidung sollte durchaus noch einmal "überschlafen" werden. Sollte sie danach immer noch nicht gefällt sein, ist eine weitere Sitzung notwendig, wo z.B. mit den klassischen Fragen 
* //"Wozu ist es nützlich, dass Sie nicht entscheiden?"// oder 
* //"Was passiert, wenn nichts passiert?"//
gearbeitet wird.


!Quelle
Andreas Steinhübel, in: [[Christopher Rauen (Hrsg.): Coaching-Tools: Erfolgreiche Coaches präsentieren 60 Interventionstechniken aus ihrer Coaching-Praxis, Managerseminare Verlag, 2008| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FCoaching-Tools-Erfolgreiche-pr%25C3%25A4sentieren-Interventionstechniken-Coaching-Praxis%2Fdp%2F3936075182%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1216165913%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]], S.232-235.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Gegenwind+%28jt%29&db=3]]
<data>{"abstract":"Kennen Sie die [[geheimen Spielregeln|Geheime Spielregeln]] in Ihrem Unternehmen? Eine Möglichkeit, in Workshops an sie heranzukommen, ist eine einfache [[Frage|Frageformen]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 35% auto title http://files.boardgamegeek.com/bggimages/pic26494.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Geheime Spielregeln","abstract") </script>

!Geheime Spielregeln
<script> return "<<tiddler [[Geheime Spielregeln##Overview]]>>" </script> 
 [[Veränderungen|Organizational Change]] anzustoßen, ohne die geheimen Spielregeln in einem Unternehmen zu kennen, ist eine mühsame, wenn nicht gar unmögliche Aufgabe. 
Wie aber herankommen an diese [[ungeschriebenen Regeln|Verborgene Strukturen aufdecken]]? Wie lassen sich [[Geheimnisse austauschen]]?

!Objectives
* Aufdecken geheimer Spielregeln, ungeschriebener Regeln

!Timing
10min-20min

!Audience
Group / Individual


!Materials
* 

!Procedure
Im Rahmen von Workshops eignet sich folgende Frage: 

{{indenrt{
//"Was würden Sie Ihrem besten Freund raten, wenn er morgen in diesem Unternehmen anfangen würde zu arbeiten?"// 
}}}

Je nach Offenheit der Kultur können die Antworten offen oder schriftlich und anonym eingesammelt werden.


!Debriefing

!Quelle
Schwaab / Frey: Kombinierte Team — und Führungskräfteentwicklung, Personalführung 1/1999, S.22


!See also
* [[Organizational Change Management]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Geheime+Spielregeln+%28jt%29&db=3]]
<data>{"abstract":"[[Geheimnisse austauschen]] eine Kennen-~Lern-Übung in [[Teams]], in denen sich die [[Mitarbeiter]] schon recht gut kennen. Aber auch hier kann man so manche Überraschung erleben…  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 35% auto title http://www.rhetorik.ch/Geruecht/normanrockwell.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Geheimnisse austauschen","abstract") </script>

!Geheimnisse austauschen
<script> return "<<tiddler [[Geheimnisse austauschen##Overview]]>>" </script> 

!Objectives
* Kennenlernen

!Timing
10min

!Audience
Group / Individual

!Materials
* Moderationskarten, Stifte
* Schachtel

!Procedure
# Verteilen Sie im [[Team]] Karten und fordern Sie alle Teammitglieder auf, hierauf ein persönliches Geheimnis zu notieren, von dem sie annehmen, daß es niemand kennt und das zu offenbaren ihnen nichts ausmacht. 
# Jeder, der seine Karte ausgefüllt hat, wirft sie in die Schachtel. 
# Dann zieht jeder nacheinander eine Karte aus der Schachtel, liest sie laut vor und es darf geraten werden, von wem sie stammt. 

Sie können manche Überraschungen erleben, ungeahnte Talente entdecken, auf jeden Fall für ein besseres Kennenlernen im [[Team]] sorgen.

!Debriefing

!Quelle
[[Morris, Tom: Aristoteles auf dem Chefsessel. Was Manager von Philosophen lernen können, Verlag moderne industrie 1997, Seite 239| http://www.amazon.de/gp/product/3478359406?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3478359406]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Geheimnisse+austauschen+%28jt%29]]
<data>{"abstract":"[[Gehirnjogging]], kleine unterhaltsame Übung zur Auflockerung der Atmosphäre im Seminar und ein wenig Kreativitätstraining."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 35% auto title http://images.amazon.com/images/G/03/software/features/gehirnjogging_brain_big.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gehirnjogging","abstract") </script>

!Gehirnjogging
<script> return "<<tiddler [[Gehirnjogging##Overview]]>>" </script> 
Als Einstieg für den zweiten Seminartag oder ein ~Follow-Up-Seminar, bevorzugt in Rhetorik- oder Kommunikationstrainings, eignet sich die folgende unterhaltsame Übung. 

!Objectives
* Aufwärmen
* Aktiviert und sorgt für eine lockere Atmosphäre.

!Timing

!Audience
Group

!Materials
* Zettel, Stifte

!Procedure
Jeder Teilnehmer erhält zwei Zettel, auf die er jeweils einen Begriff schreibt. Die Zettel werden eingesammelt und gemischt. 
Danach zieht jeder Teilnehmer wieder zwei Zettel aus dem Stapel. 
Die Aufgabe lautet nun, eine originelle Geschichte zu erzählen, in der beide Begriffe vorkommen. 

!Debriefing

!Quelle
Axel Rachow: Spielbares, managerSeminare 5/2000, S.52, Spiel von Ingrid Binderlehner.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Gedaechnistraining]<<tiddlerList tags:"mnemonic,-newTemplate" header:"Übungen Gedaechnistraining">>===

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Gehirnjogging+%28jt%29]]
<data>{"abstract":"[[Gehirnknöpfe]], eine Auflockerungsübung mit Körpererfahrung — entspannend und unterhaltsam, wobei sie durchaus mit Seminarinhalten verknüpft werden darf.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.factoryplus.de/Textil_2007/Varianten/H017_Knoepfe_Wunschf.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gehirnknöpfe","abstract") </script>

!Gehirnknöpfe
<script> return "<<tiddler [[Gehirnknöpfe##Overview]]>>" </script> 

!Objectives
* Gelöste Stimmung 
* Bewegung

!Timing

!Materials
*

!Audience
Group

!Procedure
# Die Teilnehmer stellen sich hin und "halten" ihren Bauchnabel, indem sie eine Hand auf diese Stelle legen. 
# Die andere Hand wird gespreizt und so auf die Brust gelegt, daß Daumen und Zeigefinger unterhalb des Schlüsselbeins neben dem Brustbein liegen. 
# Dort gibt es zwei weiche Stellen, die leicht gerieben werden. Dabei stellt man sich vor, wie man mit der verlängerten Nase eine Acht in die Luft malt. Das soll umgehend eine wohltuende Wirkung entfalten. 

Wenn es der Trainer dann noch versteht, die Anleitung hierzu mit phantasievollen Geschichten zu versehen, die vielleicht noch am Seminargeschehen anknüpfen ("bayrisches Benchmarking", "Angewandte Einwandbehandlung" etc.), entsteht die gewünschte Auflockerung.

!Debriefing

!Quelle
A. Rachow: Der Spieler, managerSeminare 2/99 S.87

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Gehirnkn%F6pfe+%28jt%29]]
<data>{"abstract":"[[Gelüftetes Geheimnis]]: [[Konflikten|Konflikt]] auf den Grund gehen ist mühsam und nicht unbedingt vom Erfolg gekrönt. Jeder Beteiligte an einem [[Konflikt]] vertritt in der Regel eine unterschiedliche Auffassung von der Ursache des Streits. Dies aufzudecken ist Aufgabe des [[Konfliktmanagements|Konfliktmanagement]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.ubergizmo.com/photos/2007/2/super-secret-mp3.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gelüftetes Geheimnis","abstract") </script>

!Gelüftetes Geheimnis
<script> return "<<tiddler [[Gelüftetes Geheimnis##Overview]]>>" </script> 

!Objectives
* Konfliktbewältigung

!Timing
60 min

!Audience
Group

!Materials
* Moderationskarten

!Procedure
Eine Möglichkeit, diese Auffassungen und [[Geheime Spielregeln]] transparent zu machen bzw. [[Geheimnisse austauschen]]: Jeder schreibt ohne Namensnennung auf eine Metaplankarte, welche Geheimnisse er bei diesem [[Konflikt]] vermutet oder er selbst hat. 
Dies soll so formuliert werden, daß Rückschlüsse auf den Schreiber nicht möglich sind. 

!Debriefing
Anschließend werden diese Geheimnisse gemeinsam analysiert, was häufig sofort zum Kern des [[Konfliktes|Konflikt]] führt.

!Quelle
Bernd Wittschier: ~Konfliktlösungs-Workshop, Wirtschaft und Weiterbildung 4/1999, S.34.

!See also 
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Gel%FCftetes+Geheimnis+%28jt%29]]
<data>{"abstract":"[[Gerade Linie]], die [[Kommunikations-|Kommunikation]] und [[Informationswege|Information]] in einem Unternehmen sind selten so, wie sie in einem Organigramm dargestellt werden. Das lässt sich mit dieser Übung schön verdeutlichen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.uais.org/img/StraightLine.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gerade Linie","abstract") </script>

!Gerade Linie
<script> return "<<tiddler [[Gerade Linie##Overview]]>>" </script> 

!Objectives
* Visualisierung der direkten Berichtswege und "kleiner Umwege".

!Timing
30 min

!Audience
Group

!Materials
* Großer, leerer Raum, lassen Sie die Teilnehmer sich im Raum verteilen.

!Procedure
* ''Instruktion I:'' Gehen Sie alle zunächst nur gerade Linien, nur gerade aus, stoßen Sie auf einen anderen Teilnehmer, einigen Sie sich, wer als erster seinen Weg fortsetzt. Kommen Sie an eine Wand, gehen Sie bitte stets im rechten Winkel (rechts oder links herum) weiter.
* ''Instruktion II:'' Nach wenigen Minuten ermuntern Sie die Teilnehmer, jetzt nur gebogene, gekrümmte Linien zu gehen — und wieder nur vorwärts. In aller Regel finden die Teilnehmer ein solches "Herumgehen" merkwürdig und recht einseitig.


!Debriefing
Die geraden Linien sind die [[Metapher|Metaphorik]] direkter Berichtslinien, wie unsere Organigramme so gerne unterstellen. Die gebogenen symbolisieren die "kleinen Umwege". Jeder erkennt symbolisch, das Leben in [[Organisationen|Organisation]] ist gerade nicht so. 
Es ist letztlich ein Knäuel — damit kann man die Übung auflösen, lassen Sie die Teilnehmer wild durcheinander gehen, so wie sie in ihrer [[Organisation]] die [[Berichts-|Berichtswesen]], [[Kommunikations-|Kommunikation]] und [[Informationswege|Information]] wahrnehmen.

!See also
* [[Organizational Change Management]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Gerade+Linien+%28ua%29&db=3]]
<data>{"abstract":"Eine Übung, die die Faszination von [[Gerichtsverhandlungen|Gerichtsverhandlung]] nutzt und die Argumentations- und Kommunikationsfähigkeiten schult.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.welt.de/multimedia/archive/00379/hammer_gericht_DW_W_379637g.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gerichtsverhandlung","abstract") </script>

!Gerichtsverhandlung
<script> return "<<tiddler [[Gerichtsverhandlung##Overview]]>>" </script> 
Gerichtsfilme sind spannend und gern gesehen. Warum nicht mal eine Diskussion in Form einer Gerichtsverhandlung durchführen? 

!Objectives
* Konfliktbewältigung
* Schulung der Argumentations- und Kommunikationsfähigkeiten

!Timing
60 min

!Audience
Group

!Materials
* 

!Procedure
Die Pro- und Kontraseite benennt jeweils zwei Anwälte und zwei Zeugen. 
Sodann hält der jeweils erste Anwalt jeder Seite die Eröffnungsrede. 
Anschließend befragt jede Seite ihre beiden Zeugen. 
Man kann sogar ein Kreuzverhör anschließen, hierüber sollte allerdings der Trainer die Entscheidung fällen — Frustrationsgrenze der Zeugen beachten. Anschließend halten die jeweils zweiten Anwälte die Schlussplädoyers. 
Danach kann ein Richter oder eine Jury das Urteil fällen. 

!Debriefing
Zum Abschluss gibt es ein [[Feedback]] der Gruppe.

!Quelle
Martin Pichler: Mehr Pep ins Seminar, wirtschaft und weiterbildung, 1/2000 S.83

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Gerichtsverhandlung+%28jt%29]]
<data>{"abstract":"[[Geschenke annehmen]]: Wie geht man mit Einwänden um, die eine Präsentation empfindlich stören können? Wertschätzend, und das kann man mit dieser kleinen Übung trainieren."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.welt.de/multimedia/archive/00714/geschenke_DW_Wirtsc_714209p.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Geschenke annehmen","abstract") </script>

!Geschenke annehmen
<script> return "<<tiddler [[Geschenke annehmen##Overview]]>>" </script> 
Wer eine Rede halten muss, tut gut daran, Einwände seiner Zuhörer als Bereicherung und Ergänzung für seinen Vortrag anzusehen und sich nicht über sie zu ärgern. 
Die folgende Übung ist geeignet, diese Einstellung zu trainieren. 

!Objectives
* Zuhörer als Bereicherung und Ergänzung erkennen

!Timing
60 min

!Audience
Group

!Materials
* 

!Procedure
Dazu werden zwei Teilnehmer benötigt, die sich gegenseitig "Geschenke" machen. Diese sind imaginär, es wird nicht mitgeteilt, um was es sich handelt. 
Der Teilnehmer, der das Geschenk erhält, nimmt das so interessiert und aufmerksam wie möglich entgegen, es gefällt ihm auf jeden Fall, er kann damit spielen, es benutzen, es anziehen — was auch immer. 
Wichtig ist, dass er es für sich interessant macht und schätzt. Das kann pantomimisch oder mit wortreichem Unsinn untermalt werden.

!Debriefing

!Quelle
Susanne Nerzger: Von Schauspielern lernen, wirtschaft & weiterbildung 8/2001, S.43, nach Keith Johnstone: Improvisation und Theater, Alexander Verlag.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Präsentation]<<tiddlerList tags:"presentation,-newTemplate" header:"Übungen Präsentation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Geschenke+annehmen+%28jt%29]]
/***
|Source||
***/
config.macros.getversion = {}
config.macros.getversion.handler = function(place,macroName,params)
{
var versionData = version.extensions[params].major + "." + version.extensions[params].minor + "." + version.extensions[params].revision;
createTiddlyElement(place,"span",null,null,versionData);
}

config.macros.getversiondate = {}
config.macros.getversiondate.handler = function(place,macroName,params)
{
var versionDate = version.extensions[params[0]].date.formatString(params[1].trim());
createTiddlyElement(place,"span",null,null,versionDate);
}
<data>{"abstract":"Als konstruktives Gegenstück zum Drama-Dreieck kann im [[Coaching]] das Gewinner-Dreieck eingesetzt werden.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.linedancefun.de/Erfolge/gewinner.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gewinner-Dreieck","abstract") </script>

!~Gewinner-Dreieck
<script> return "<<tiddler [[Gewinner-Dreieck##Overview]]>>" </script> 
Als konstruktives Gegenstück zum [[Drama-Dreieck]] kann im Coaching das ~Gewinner-Dreieck nach Rolf Balling eingesetzt werden. 

!Objectives
* Identify positive biased team roles

!Timing
60 min

!Audience
Group

!Materials
* 

!Procedure
Die möglichen Rollen lauten:
* ''Konfrontierer:'' Er bleibt in der [[o.k.-o.k. Position|Transaktions-Modell der Kommunikation/okokPosition]] , d.h. er steht zu seiner Haltung und macht deutlich, dass es o.k. ist, [[Fehler]] zu machen. Er vertritt seine Meinung, setzt Grenzen und stützt sich auf beobachtbares Verhalten.<br><br>
* ''Helfer:'' Er betrachtet den anderen als mündigen Erwachsenen. Er fragt ihn, was er braucht und trifft eine klare Absprache. Er hilft so, dass der andere dabei etwas lernt.<br><br>
* ''Bedürftiger:'' Er bittet andere um Unterstützung und Orientierung, ohne sich selbst abzuwerten. Dabei definiert er selbst, was er konkret benötigt und trifft schließlich eine klare Absprache, wobei er auch zu einer entsprechenden Gegenleistung bereit ist.
Die drei "Rollen" sind allesamt dem [[Erwachsenen-Ich|Transaktions-Modell der Kommunikation/erwachsenenIch]]  zuzuordnen.

!Debriefing

!Quelle
Claudia Marker: Put the stinking fish on the table, management + training, 4/2004, S.14-15

!See also
* [[Transaktions-Modell der Kommunikation]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Gewinner-Dreieck+%28jt%29&db=3]]
<data>{"abstract":"Wenn [[Führungskräfte|Führung]] verzweifeln, weil ihre [[Mitarbeiter]] alte Gewohnheiten nicht von heute auf morgen umstellen wollen, dann hilft diese kleine Demonstration, um eine Ahnung davon zu bekommen, wie schwierig das ist. Wie kann man das [[Problem]] der  [[Veränderung|Organizational Change]] erlebbar machen?"}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.aktive-diabetiker.at/pic/rauch.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gewohnheiten ändern","abstract") </script>

!Gewohnheiten ändern
<script> return "<<tiddler [[Gewohnheiten ändern##Overview]]>>" </script> 

!Objectives
* Loslassen können

!Timing
60 min

!Audience
Group

!Materials
* DIN A4 Blatt

!Procedure
Indem der Trainer die Teilnehmer bittet, ein DIN A4 Blatt mit einem Wort zu beschriften, zuerst mit der gewohnten Schreibhand, dann mit der anderen. 
Obwohl man mit der anderen Hand viel länger braucht, ist das Ergebnis deutlich schlechter. Wenn man dies trainiert, braucht man schon sechs Monate, ehe die Ergebnisse nicht mehr voneinander zu unterscheiden sind. 

Wie lange wird es dauern, liebgewordene Gewohnheiten, zum Beispiel nach einem Seminar, zu ändern? Angenommen, neues Verhalten würde ähnlich intensiv geübt, wären einige Wochen "durchzuhalten", ehe mit der neuen Fähigkeit "vorzeigbare" Ergebnisse erzielt werden.

!Debriefing

!Quelle
Martin Pichler: Mehr Pep ins Seminar, wirtschaft und weiterbildung, 1/2000, S.83

!See also
* [[Organizational Change Management]]
* [[Chinesische Vase]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Gewohnheiten+%E4ndern+%28jt%29&db=3]]
<data>{"abstract":"Das Tool [[Gift - Gegengift]] ist ein kreativitätsförderndes und spielerisches Tool, um [[Veränderungs-|Organizational Change Management]]  und [[Lösungsideen|Problemlösung]] zu entwickeln. Besonders gut ist es geeignet, um eingefahrene [[Denkmuster aufzulockern|Perspektivwechsel]] und „innere Saboteure” zu erkennen. Es ist eine Art [[paradoxe Verschreibung|Paradoxe Verschreibung]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.br-online.de/content/cms/Universalseite/2007/12/19/cumulus/BR-online-Publikation--124184-20080506133448.jpg>> /%
http://www.pilzfreunde-owl.de/sites/home/images/gross_20051004161749_fliegenpilz.jpg>> %/
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gift - Gegengift","abstract") </script>

!Gift - Gegengift
<script> return "<<tiddler [[Gift - Gegengift##Overview]]>>" </script> 
Zudem kann es als Ventil dienen, um Frustrationen und Ärger abzubauen. Es wird eingesetzt, wenn ein Klient sein (Zwischen-)Ziel im Dialog mit dem Coach klar definiert und überprüft hat und nun Lösungsideen oder Handlungsalternativen entwickeln möchte.

!Objectives
* Abbau von Frustrationen und Ärger 

!Timing


!Audience
Group / Individual

!Materials
* 

!Procedure
Zunächst wird ein wünschenswertes Ziel oder eine Fragestellung in ihr Gegenteil verkehrt. Dann werden [[Ideen|Ideenmanagement]] und Strategien gesammelt, die helfen, das neu formulierte [[Ziel]] (also das Gegenteil des ursprünglichen Ziels) zu erreichen („Gift”) — [[paradoxe Verschreibung|Paradoxe Verschreibung]]. 
Diese „giftigen” Strategien werden wieder ins Gegenteil verkehrt, so dass neue Lösungsansätze für das Ausgangsziel entstehen.

!Beispiel
Ein Beispiel für die Anwendung im ~Einzel-Coaching: Ein 44-jähriger Klient arbeitet mit wachsender Unzufriedenheit seit über acht Jahren in einem Dienstleistungsunternehmen. Nennenswerte Karriereschritte waren in den vergangenen drei Jahren ausgeblieben. Der Klient klagt über Überlastung und absurde Entscheidungen des Managements. Die Unzufriedenheit überträgt sich zunehmend auch auf sein Privatleben.

Das ~Coaching-Ziel des Klienten //„Ich möchte meine Zufriedenheit an meinem Arbeitsplatz steigern. In den nächsten sechs bis acht Monaten möchte ich mich beruflich neu positionieren”// wird in sein Gegenteil umformuliert: //„Ich möchte an meinem Arbeitsplatz möglichst unzufrieden sein. Meine Situation darf sich auf keinen Fall verbessern.”//


!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* http://www.managerseminare.de/bT?uD=164337&mecL=UmFuZG9tSVaB551ORloHwTZkRkxmSI6V
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.psychologytoday.com/files/u40/feeling-faces.jpg>>
<<showtoc>>
!Overview
[[Glad, Sad, Mad]] allows all [[stakeholders|Stakeholders]] impacted by the [[project|Projekt]] / [[sprint|Sprint]] / [[change processes|Organizational Change Project]] to share personal emotions. 

!Glad, Sad, Mad
<<tiddler [[Glad, Sad, Mad##Overview]]>>

!Objectives
* Gather Data in a [[retrospective|Agile Retrospectives]]
* Collect data directly connected to emotions.

!Timing
10 min

!Audience
Group

!Materials
* index cards / sticky notes
* Flipchart with "Glad, Sad, Mad" matrix:
{{indent{ 
| ''Glad'' | ''Sad'' | ''Mad'' |h
| … | … | … |
| … | … | … |
| … | … | … |
}}}

!Procedure
# Let team members write cards for things that made them glad.
# Let team members write cards for things that made them mad
# Let team members write cards for things that made them sad.
# Let them explain and stick the cards in the correspending column.
Variant: collect the cards without any order.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
* [[MercuryApp]]
<<tiddler ShowTiddlerReferences>>
!Weblinks
* 
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://cache2.artprintimages.com/p/LRG/15/1576/TQMDD00Z/charles-schulz-peanuts-go-for-it.jpg>>
<<showtoc>>
!Overview
A game for illustrating the [[Agile mindset|Agile Principles]], your brain on [[Scrum]].

!Go!
<script> return "<<tiddler [[Go!##Overview]]>>" </script>

!Objectives
* Illustrating the [[Agile mindset|Agile Principles]], 
* Setting your brain on [[Scrum]].

!Timing

!Audience
Group

!Materials
* none

!Procedure
Have your participants stand in a circle, evenly spaced.  Introduce the game like this: I shall point at someone; when I point the person will tell me to go, so I’ll walk over to take his space.  In order to take the space the person has to leave it, and the only way to leave your space is to point at someone else. When you point the new person will tell you to go, so you’ll walk over to take his space. And so on.  This will be a continuous exercise with no obvious end point. The game will find its own conclusion.

!Variations 
After running the standard game for a while, try out some alternatives.  Replace the pointing gesture with one of an open hand.  This feels like more of a request than a command. Have no gesture, just use eye contact to give permission.  Play without permission at all, just walk to where you want to go and trust that the space will become available. 

!Debriefing
Explain that the [[Agile mindset|Agile Principles]] is utterly different to a traditional mindset, and ask how the game gets that message across.  The participants have a lot to say, so listen and learn.  Some of the discussion centers around the importance of team work, and being aware of the needs of others .  Other times it will focus more on the difficulty of changing the way we typically do things.  If you have used and variations have the participants discuss the different dynamics.

!What Happens? 
At first the participants will really struggle with this.  They point and say „Go” , or when being pointed at they leave their space without saying „Go”, before realizing there is no new place to go to.  It is necessary to stop the game and restate the rules a couple of time. Other behaviors that occur include moving quickly and getting to your new place before the person who said „Go” has left it, and failure to pay attention thus not being aware when someone point at you.  After two or three stops, and a clarification of the requirements, the game is played smoothly and you can start to build up speed.

!Notes
# I added these notes after witnessing the game being played and somewhat  misunderstood.  This is NOT altogether an open game, there is a very deliberate learning outcome… the recognition that Scrum is simple, but it is not easy. <br> I learned this game from Improv artist/actor Matt Smith.  Matt uses it to show the mindset shift needed to embrace improv ideas. <br> [[Scrum]] requires a similar mindset shift (a paradigm shift if you like).  Go! illustrates the pain that comes with this shift.  It is difficult, but it can be overcome.  We need to re-train our minds to think differently about what we do. Ask people early on in this game why they are screwing up a game that has only (essentially) 3 rules.  What is going on… why is it so hard?  Help participants understand that the difficulties arise when they have to change ingrained patterns.  [[Scrum]] is simple, but it isn’t easy.<br><br>
# Go! can develop into a game about [[flow]], patterns, respect, listening, team-awareness and all kinds of other good things.  But beware.  Mixing up many learning outcomes in one game can be confusing.  I recommend using Go! in its simplest form to illustrate the mind shift required to do Scrum.  Pick the game up again later in the session, (using looks, head-nods, etc.) to focus on the patterns/flow part of teamwork.  Or use a different game.<br><br>
# There is a great deal of skill required to run a game successfully, to notice the learning opportunities and seize them appropriately, without being overly prescriptive.  So again, please use these games with great care - and be prepared to acknowledge your own failure, and improve as a result.

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://agileanarchy.wordpress.com/2009/10/13/the-agile-playground-1/
<data>{"abstract":"[[Gordischer Knoten]], eine kleine Aktivierungsübung für //zwischendurch//, die verbindet und Spaß macht. Vorausgesetzt, anfassen ist //erlaubt//.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://karikatur.augsten.at/karikaturen/2006-11-14_Gordischer-Knoten/2006-11-14_gordischer-knoten_640.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gordischer Knoten","abstract") </script>

!Gordischer Knoten
<script> return "<<tiddler [[Gordischer Knoten##Overview]]>>" </script>


!Objectives
* Aktivieren von (Seminar)Teilnehmern
* Aktivieren von Energie

!Timing
15min

!Audience
Group; mindestens acht Personen

!Materials
* 

!Procedure
Die Teilnehmer werden gebeten, sich im Kreis aufzustellen. 
Dann sollen sie die Augen schließen, die Arme nach vorne ausstrecken und langsam auf die Mitte zugehen. Wenn sie andere Hände berühren, ergreifen sie diese. Dann öffnen alle die Augen und sehen den "Gordischen Knoten" — alle sind miteinander verbunden.

Nun müssen sie diesen Knoten lösen, ohne die Hände loszulassen. Das Ziel lautet, einen bis zwei Kreise zu bilden.


!Debriefing
Die Übung dauert etwa 15 Minuten, bringt die Teilnehmer ein wenig in Bewegung und lässt sich zumindest in Ansätzen auch noch auswerten (Wie lief der "Lösungsprozess" ab? Was war der entscheidende Schritt zur Lösung?).

!Quelle
Birgit Bader, aus: [[Axel Rachow (Hg): Spielbar, managerSeminare 2. Aufl. 2006, S. 101| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FSpielbar-pr%25C3%25A4sentieren-Top-Spiele-Seminarpraxis-Seminarpraxis%2Fdp%2F3931488632%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1211920003%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/db/topics/themenentry.php4?to_parebene=Gordischer+Knoten+%28jt%29&db=3]]
/***
|Name|GotoListMaxSize|
|Source||
|Version||
|Author|[[MichealTarnowski]]|
|License||
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description|NewTemplate for TiddlyWiki plugins|
***/
//{{{
if (config.options.txtListMaxSize===undefined)
   config.options.txtListMaxSize=6; // change this number
config.options.txtListMaxSize=6;
//}}}
/***
|Name|GotoPlugin|
|Source|http://www.TiddlyTools.com/#GotoPlugin|
|Documentation|http://www.TiddlyTools.com/#GotoPluginInfo|
|Version|1.9.2|
|Author|[[EricShulman]]|
|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|view any tiddler by entering it's title - displays list of possible matches|
''View a tiddler by typing its title and pressing //enter//.''  As you type, a list of possible matches is displayed.  You can scroll-and-click (or use arrows+enter) to select/view a tiddler, or press escape to close the listbox to resume typing.  When the listbox is not displayed, pressing //escape// clears the current input.
!!!Documentation
>see [[GotoPluginInfo]]
!!!Configuration
<<<
*Match titles only after {{twochar{<<option txtIncrementalSearchMin>>}}} or more characters are entered.<br>Use down-arrow to start matching with shorter input.  //Note: This option value is also set/used by [[SearchOptionsPlugin]]//.
*To set the maximum height of the listbox, you can create a tiddler tagged with <<tag systemConfig>>, containing:
//{{{
//
if (config.options.txtListMaxSize===undefined)
	config.options.txtListMaxSize=6; // change this number
config.options.txtListMaxSize=6;
//}}}
<<<
!!!Revisions
<<<
2009.05.22 [1.9.2] use reverseLookup() for IncludePlugin
|please see [[GotoPluginInfo]] for additional revision details|
2006.05.05 [0.0.0] started
<<<
!!!Code
***/
//{{{
version.extensions.GotoPlugin= {major: 1, minor: 9, revision: 2, date: new Date(2009,5,22)};

// automatically tweak shadow SideBarOptions to add <<gotoTiddler>> macro above <<search>>
config.shadowTiddlers.SideBarOptions=config.shadowTiddlers.SideBarOptions.replace(/<<search>>/,"{{button{goto}}}\n<<gotoTiddler>><<search>>");

if (config.options.txtIncrementalSearchMin===undefined) config.options.txtIncrementalSearchMin=3;

config.macros.gotoTiddler= { 
	listMaxSize: config.options.txtListMaxSize,
	listHeading: 'Found %0 matching title%1...',
	searchItem: "Search for '%0'...",
	handler:
	function(place,macroName,params,wikifier,paramString,tiddler) {
		var quiet	=params.contains("quiet");
		var showlist	=params.contains("showlist");
		var search	=params.contains("search");
		params = paramString.parseParams("anon",null,true,false,false);
		var instyle	=getParam(params,"inputstyle","");
		var liststyle	=getParam(params,"liststyle","");
		var filter	=getParam(params,"filter","");
		var html=this.html;
		var keyevent=window.event?"onkeydown":"onkeypress"; // IE event fixup for ESC handling
		html=html.replace(/%keyevent%/g,keyevent);
		html=html.replace(/%search%/g,search);
		html=html.replace(/%quiet%/g,quiet);
		html=html.replace(/%showlist%/g,showlist);
		html=html.replace(/%display%/g,showlist?'block':'none');
		html=html.replace(/%position%/g,showlist?'static':'absolute');
		html=html.replace(/%instyle%/g,instyle);
		html=html.replace(/%liststyle%/g,liststyle);
		html=html.replace(/%filter%/g,filter);
		if (config.browser.isIE) html=this.IEtableFixup.format([html]);
		var span=createTiddlyElement(place,'span');
		span.innerHTML=html; var form=span.getElementsByTagName("form")[0];
		if (showlist) this.fillList(form.list,'',filter,search,0);
	},
	html:
	'<form onsubmit="return false" style="display:inline;margin:0;padding:0">\
		<input name=gotoTiddler type=text autocomplete="off" accesskey="G" style="%instyle%"\
			title="Enter title text… ENTER=goto, SHIFT-ENTER=search for text, DOWN=select from list"\
			onfocus="this.select(); this.setAttribute(\'accesskey\',\'G\');"\
			%keyevent%="return config.macros.gotoTiddler.inputEscKeyHandler(event,this,this.form.list,%search%,%showlist%);"\
			onkeyup="return config.macros.gotoTiddler.inputKeyHandler(event,this,%quiet%,%search%,%showlist%);">\
		<select name=list style="display:%display%;position:%position%;%liststyle%"\
			onchange="if (!this.selectedIndex) this.selectedIndex=1;"\
			onblur="this.style.display=%showlist%?\'block\':\'none\';"\
			%keyevent%="return config.macros.gotoTiddler.selectKeyHandler(event,this,this.form.gotoTiddler,%showlist%);"\
			onclick="return config.macros.gotoTiddler.processItem(this.value,this.form.gotoTiddler,this,%showlist%);">\
		</select><input name="filter" type="hidden" value="%filter%">\
	</form>',
	IEtableFixup:
	"<table style='width:100%;display:inline;padding:0;margin:0;border:0;'>\
		<tr style='padding:0;margin:0;border:0;'><td style='padding:0;margin:0;border:0;'>\
		%0</td></tr></table>",
	getItems:
	function(list,val,filter) {
		if (!list.cache || !list.cache.length || val.length<=config.options.txtIncrementalSearchMin) {
			// starting new search, fetch and cache list of tiddlers/shadows/tags
			list.cache=new Array();
			if (filter.length) {
				var fn=store.getMatchingTiddlers||store.getTaggedTiddlers;
				var tiddlers=store.sortTiddlers(fn.apply(store,[filter]),'title');
			} else 
				var tiddlers=store.reverseLookup('tags','excludeLists');
			for(var t=0; t<tiddlers.length; t++) list.cache.push(tiddlers[t].title);
			if (!filter.length) {
				for (var t in config.shadowTiddlers) list.cache.pushUnique(t);
				var tags=store.getTags();
				for(var t=0; t<tags.length; t++) list.cache.pushUnique(tags[t][0]);
			}
		}
		var found = [];
		var match=val.toLowerCase();
		for(var i=0; i<list.cache.length; i++)
			if (list.cache[i].toLowerCase().indexOf(match)!=-1) found.push(list.cache[i]);
		return found;
	},
	getItemSuffix:
	function(t) {
		if (store.tiddlerExists(t)) return "";  // tiddler
		if (store.isShadowTiddler(t)) return " (shadow)"; // shadow
		return " (tag)"; // tag 
	},
	fillList:
	function(list,val,filter,search,key) {
		if (list.style.display=="none") return; // not visible… do nothing!
		var indent='\xa0\xa0\xa0';
		var found = this.getItems(list,val,filter); // find matching items…
		found.sort(); // alpha by title
		while (list.length > 0) list.options[0]=null; // clear list
		var hdr=this.listHeading.format([found.length,found.length==1?"":"s"]);
		list.options[0]=new Option(hdr,"",false,false);
		for (var t=0; t<found.length; t++) list.options[list.length]=
			new Option(indent+found[t]+this.getItemSuffix(found[t]),found[t],false,false);
		if (search)
			list.options[list.length]=new Option(this.searchItem.format([val]),"*",false,false);
		list.size=(list.length<this.listMaxSize?list.length:this.listMaxSize); // resize list…
		list.selectedIndex=key==38?list.length-1:key==40?1:0;
	},
	keyProcessed:
	function(ev) { // utility function
		ev.cancelBubble=true; // IE4+
		try{event.keyCode=0;}catch(e){}; // IE5
		if (window.event) ev.returnValue=false; // IE6
		if (ev.preventDefault) ev.preventDefault(); // moz/opera/konqueror
		if (ev.stopPropagation) ev.stopPropagation(); // all
		return false;
	},
	inputEscKeyHandler:
	function(event,here,list,search,showlist) {
		if (event.keyCode==27) {
			if (showlist) { // clear input, reset list
				here.value=here.defaultValue;
				this.fillList(list,'',here.form.filter.value,search,0);
			}
			else if (list.style.display=="none") // clear input
				here.value=here.defaultValue;
			else list.style.display="none"; // hide list
			return this.keyProcessed(event);
		}
		return true; // key bubbles up
	},
	inputKeyHandler:
	function(event,here,quiet,search,showlist) {
		var key=event.keyCode;
		var list=here.form.list;
		var filter=here.form.filter;
		// non-printing chars bubble up, except for a few:
		if (key<48) switch(key) {
			// backspace=8, enter=13, space=32, up=38, down=40, delete=46
			case 8: case 13: case 32: case 38: case 40: case 46: break; default: return true;
		}
		// blank input… if down/enter… fall through (list all)... else, and hide or reset list
		if (!here.value.length && !(key==40 || key==13)) {
			if (showlist) this.fillList(here.form.list,'',here.form.filter.value,search,0);
			else list.style.display="none";
			return this.keyProcessed(event);
		}
		// hide list if quiet, or below input minimum (and not showlist)
		list.style.display=(!showlist&&(quiet||here.value.length<config.options.txtIncrementalSearchMin))?'none':'block';
		// non-blank input… enter=show/create tiddler, SHIFT-enter=search for text
		if (key==13 && here.value.length) return this.processItem(event.shiftKey?'*':here.value,here,list,showlist);
		// up or down key, or enter with blank input… shows and moves to list…
		if (key==38 || key==40 || key==13) { list.style.display="block"; list.focus(); }
		this.fillList(list,here.value,filter.value,search,key);
		return true; // key bubbles up
	},
	selectKeyHandler:
	function(event,list,editfield,showlist) {
		if (event.keyCode==27) // escape… hide list, move to edit field
			{ editfield.focus(); list.style.display=showlist?'block':'none'; return this.keyProcessed(event); }
		if (event.keyCode==13 && list.value.length) // enter… view selected item
			{ this.processItem(list.value,editfield,list,showlist); return this.keyProcessed(event); }
		return true; // key bubbles up
	},
	processItem:
	function(title,here,list,showlist) {
		if (!title.length) return;
		list.style.display=showlist?'block':'none';
		if (title=="*")	{ story.search(here.value); return false; } // do full-text search
		if (!showlist) here.value=title;
		story.displayTiddler(null,title); // show selected tiddler
		return false;
	}
}
//}}}
/***
|Name|GridPlugin|
|Source|http://www.TiddlyTools.com/#GridPlugin|
|Documentation|http://www.TiddlyTools.com/#GridPluginInfo|
|Version|2.0.7|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1.3|
|Type|plugin|
|Description|Display/edit slices, sections and fields in a grid (table) for a 'birds-eye' view of your document|
!!!!!Documentation
>see [[GridPluginInfo]]
!!!!!Revisions
<<<
2010.03.06 2.0.7 fixed setSection()
2009.09.26 2.0.6 fixed setSlice() for existing slices with empty values
|please see [[GridPluginInfo]] for additional revision details|
2007.01.30 0.0.1 started
<<<
!!!!!Code
***/
//{{{
version.extensions.GridPlugin= {major: 2, minor: 0, revision: 7, date: new Date(2010,3,6)};

config.macros.grid= {
	sizeSliceName: 'TiddlerSize', // fake slice to show # of bytes in tiddler 
	noColsMsg: '@@display:block;border:1px solid;there are no columns to display@@',
	showHeaders:'&#x25BA;&#x25BA;&#x25BA;',
	showHeadersTip:'show column headings',
	hideHeaders:'&#x25C4;&#x25C4;&#x25C4;',
	hideHeadersTip:'hide column headings',
	slicesRE: /(?:^\|\s*[\'\/]*~?(\w+)\:?[\'\/]*\s*\|\s*(.*?)\s*\|$)/gm,
	gridStyles: '.viewer .grid thead td, .grid thead td { background:transparent; }',
	init: function() { setStylesheet(this.gridStyles,'gridStyles'); },
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var edit=params.contains('edit') && !readOnly; // no editing if readOnly
		var wiki=params.contains('wikify');
		var inline=params.contains('inline');
		if (inline) var heads=true;
		var all=params.contains('all');
		params=paramString.parseParams('name',null,true,false,true); // for NAMED VALUES
		var filter=getParam(params,'filter',''); // core or MatchTagsPlugin tag filter syntax
		if (filter.length && !filter.startsWith('[tag[')) filter='[tag['+filter+']]';
		var tags=this.getList(getParam(params,'tags'),true); // older "match at least one tag" syntax
		if (tags.length) filter='[tag['+tags.join(']][tag[')+']]'+filter;
		var names=this.getList(getParam(params,'columns')); // slices/sections/fields to use as columns
		var clip=getParam(params,'clip',0); // 0=no clipping
		var width=getParam(params,'width','auto');
		var rc=this.getRowsAndCols(filter,names,all);
		if (!rc.cols.length) wikify(this.noColsMsg,place);
		else this.renderTable(place,rc.rows,rc.cols,inline,heads,wiki,edit,clip,width);
	},
	getList: function(t,gettags) {
		var items=(t||'').readBracketedList();
		for (var i=0;i<items.length;i++) { var item=items[i];
			// replace item with list based on item prefix:
			// +name  contents of tiddler (space-separated list)
			// @name  slices/tags,
			// @!name sections
			// @=name fields
			if ('@+'.indexOf(item.substr(0,1))!=-1) {
				var title=item.substr(1); var type=title.substr(0,1);
				if ('=!'.indexOf(type)!=-1) title=title.substr(1);
				if (title=='here')
					title=story.findContainingTiddler(place).getAttribute('tiddler');
				var tid=store.getTiddler(title); if (tid) {
					var list=[];
					if (item.substr(0,1)=='+') list=tid.text.readBracketedList();  // contents
					else if (gettags) list=tid.tags; // tags
					else if (type=='!') list=this.getSections(tid.title);  // sections
					else if (type=='=') list=this.getFields(tid.title); // fields
					else for (var s in this.getSlices(tid.title)) list.push(s);  // slices
					items.splice(i,1); // remove item
					for (var j=0;j<list.length;j++,i++) items.splice(i,0,list[j]); // add list
				}
			}
		}
		return items;
	},
	getRowsAndCols: function(filter,names,all) {
		var rows=[]; var cols=[]; // get rows (tiddlers) and columns (slices)
		var tiddlers=filter&&filter.length?store.filterTiddlers(filter):store.getTiddlers();
		for (i=0; i<tiddlers.length; i++) {
			var slices=this.getSlices(tiddlers[i].title);
			var include=false; for (var s in slices) { cols.pushUnique(s); include=true; }
			if (include||all) rows.push(tiddlers[i].title);
		}
		rows=rows.sort();
		// use specified list instead of collected slice names
		if (names.length) var cols=names;
		return {rows:rows,cols:cols};
	},
	renderTable: function(place,rows,cols,inline,heads,wiki,edit,clip,width) {
		var span=createTiddlyElement(place,'span')
		span.innerHTML=this.generateTable(rows,cols,inline,heads,wiki,edit,clip,width)
		// replace TD content with wikified elements
		var tds=span.getElementsByTagName('td');
		for (var t=0; t<tds.length; t++) {
			if (hasClass(tds[t],'wiki')) {
				var txt=getPlainText(tds[t]);
				if (hasClass(tds[t],'grid_heading')) txt='[['+txt+']]';
				removeChildren(tds[t]);
				wikify(txt,tds[t]);
			}
		}
	},
	generateTable: function(rows,cols,inline,heads,wiki,edit,clip,width) {
		var out= "<html><table class='sortable grid' style='border:0;padding:0;spacing:0;"
			+"border-collapse:collapse;width:"+width+"'>";

		// column headings
		out+=	 "<thead><tr style='border:0;vertical-align:bottom'>"
			+"<td style='text-align:right;border:0'>"
			+"<a href='javascript:;' style='font-size:80%;'"
			+"	title='"+(heads?this.hideHeadersTip:this.showHeadersTip)+"'"
			+"	onclick='return config.macros.grid.toggleHeaders("
			+"		this,event,"+(heads?"true":"false")+")'>"
			+(heads?this.hideHeaders:this.showHeaders)
			+"</a>"
			+"</td>";
		for (var i=0;i<cols.length;i++) {
			out+=	 "<td style='text-align:center;cursor:pointer;"
				+"	border:0;padding-left:2px;padding-right:2px;' "
				+"<span style='display:"+(heads?"block":"none")+"'>"
				+cols[i].replace(/^[=!]/,'')
				+"</span></td>";
		}
		out+="</tr></thead>";

		// row heading format ('fake' tiddler link)
		// %0=cell width, %1=tiddler name, %2='wiki' classname (optional), %3='inline' classname (optional)
		var head="<td style='text-align:right;border:0;padding-right:2px;white-space:nowrap;%0;'>"
			+"<a href='javascript:;' tid=\"%1\" class='grid_heading %2 %3' "
			+"onclick='story.displayTiddler("
			+"	this,this.getAttribute(\"tid\"));return false'>%1</a></td>";

		// row value format
		// %0=bgcolor, %1=cellwidth, %2=cell alignment, %3=tiddler name
		// %4=slice/section/field name, %5=tooltip, %6='wiki' classname (optional),
		// %7='inline' classname (optional), %8=cell content value
		var cell="<td style='background-color:%0;border:1px solid;%1;%2;' tid=\"%3\" ";
		if (edit) cell+="onclick='return config.macros.grid.editInPlace("
			+"this,event,this.getAttribute(\"tid\"),\"%4\");' ";
		cell+="title=\"%5\" class='grid_content %6 %7'>%8</td>";

		// generate rows
		for (var i=0;i<rows.length;i++) {
			var tiddlersrc=rows[i].replace(/"/g,"&#x22;");
			out+="<tr style='border:0;vertical-align:top'>";
			out+=head.format([inline?'width:1%':'',tiddlersrc,wiki?'wiki':'',inline?'inline':'']);
			for (var j=0;j<cols.length;j++) { var c=cols[j];
				var val=this.get(rows[i],c);
				var content="&nbsp;";
				if (val.length && inline) {
					content=val.htmlEncode();
					if (c=='=text'||clip) // truncate
						content=val.substr(0,clip||500)
							+(val.length>(clip||500)?"...":"");
					if (c=='=text') // format tiddler source
						content='<html><code style="line-height:100%">'
							+content.replace(/\n/g,'<br>')
							+'</code></html>';
				}
				var title=this.showName(tiddlersrc,c)+(!inline?'='+val:'');
				out+=cell.format([
					val.length&&!inline?'#999':'transparent', !inline?'width:1em;':'',
					inline&&!isNaN(parseFloat(val))?'text-align:right !important;':'',
					tiddlersrc, c, title, wiki?'wiki':'', inline?'inline':'', content]);
			}
			out+='</tr>';
		}
		out+="</table></html>";
		return out;
	},
	showName: function(tid,name) {
		if (name==this.sizeSliceName) var fmt='%0 - size (in bytes)'; // fake slice
		var fmt=(name.substr(0,1)=='=')?'%1@%0':(name.substr(0,1)=='!')?'%1##%0':'%0::%1';
		return fmt.format([tid,name.replace(/^[=!]/,'')]);
	},
	toggleHeaders: function(here,event,defOpen) {
		if (here.expanded==undefined) here.expanded=defOpen;
		var ex=here.expanded=!here.expanded; 
		here.innerHTML=ex?this.hideHeaders:this.showHeaders;
		here.title=ex?this.hideHeadersTip:this.showHeadersTip;
		var cells=here.parentNode.parentNode.getElementsByTagName('td');
		for (i=1; i<cells.length; i++) cells[i].firstChild.style.display=ex?'inline':'none';
		event.cancelBubble=true;if(event.stopPropagation)event.stopPropagation();return false;
	},
	editInPlace: function(here,event,tid,name) {
		if (here.editing) return false; // already editing, don't re-init
		if (name==this.sizeSliceName) return false; // read-only fake slice
		var v=this.get(tid,name); // current value
		var lines=v.split('\n').length;
		var title=this.showName(tid,name);
		var style=lines>1?'font-size:90%;width:99%;':'font-size:100%;width:95%;line-height:100%;'
		var maxlines=Math.min(lines,config.options['txtMaxEditRows']); // for textarea
		var html=lines>1?'<textarea rows='+maxlines:'<input type="text"';
		html   +=' tid="'+tid.replace(/"/g,'&#x22;')+'"'
			+' name="'+name.replace(/"/g,'&#x22;')+'"'
			+' style="margin:0px;padding:1px 0px 1px 3px;border:0;'+style+'"'
			+' title="'+title+' (ENTER=submit, ESC=cancel)"'
			+' onblur="config.macros.grid.blur(this,event)"'
			+' onkeydown="config.macros.grid.keydown(this,event)"';
		html+=lines>1?'></textarea>':'>';
		here.editing=true;
		here.setAttribute('savedWidth',here.style.width);
		here.setAttribute('savedPadding',here.style.padding);
		here.setAttribute('savedColor',here.style.backgroundColor);
		if (!hasClass(here,'inline')) here.style.width='99%';
		here.style.padding='0px'; 
		here.style.backgroundColor='#fff';
		here.innerHTML=html;
		var ta=here.firstChild; ta.value=v; ta.focus(); ta.select();
		event.cancelBubble=true;if(event.stopPropagation)event.stopPropagation();return false;
	},
	keydown: function(here,ev) { ev=ev||window.event;
		var tid=here.getAttribute('tid');
		var name=here.getAttribute('name');
		if (ev.keyCode==27) {
			var currval=this.get(tid,name);
			if (here.value==currval) { here.blur(); return false; }
			here.asking=true; // prevents blur handling during confirm()
			var discard=confirm('OK to discard changes to '+this.showName(tid,name)+'?');
			here.asking=false;
			if (discard) { here.value=currval; here.blur(); }
			return false;
		}
		else if (ev.keyCode==13 && !ev.ctrlKey) {
			this.set(tid,name,here.value);
			here.blur();
			return false;
		}
	},
	blur: function(here,ev) { ev=ev||window.event;
		if (here.asking) return false;
		var tid=here.getAttribute('tid');
		var name=here.getAttribute('name');
		var currval=this.get(tid,name);
		var msg=this.showName(tid,name)+' has changed… OK to save changes?';
		if (here.value!=currval && confirm(msg))
			{ this.set(tid,name,here.value); currval=this.get(tid,name); }
		var target=here.parentNode;
		target.editing=false;
		target.style.backgroundColor=target.getAttribute('savedColor');
		target.style.padding=target.getAttribute('savedPadding');
		target.style.width=target.getAttribute('savedWidth');
		if (name=='=text') currval='<html><code>'+currval.substr(0,500).replace(/\\n/g,'<br>')+'</code></html>';
		if (hasClass(target,'wiki')) { removeChildren(target); wikify(currval,target); }
		else target.innerHTML=hasClass(target,'inline')?currval:'&nbsp;';
	},
	get: function(tid,name) {
		if (name.substr(0,1)=='=') var v=store.getValue(tid,name.substr(1)); // field
		else if (name.substr(0,1)=='!') var v=store.getTiddlerText(tid+'##'+name.substr(1));  // section
		else if (name==this.sizeSliceName) var v=store.getTiddlerText(tid,'').length.toString();  // fake slice
		else var v=store.getTiddlerSlice(tid,name); // real slice
		return v||'';
	},
	set: function(tid,name,val) {
		if (val==this.get(tid,name)) return false; // unchanged… do nothing
		if (name.substr(0,1)=='=') // field
			{  name=name.substr(1); store.setValue(tid,name,val); }
		else if (name.substr(0,1)=='!') // section
			{  name=name.substr(1); this.setSection(tid,name,val); }
		else // slice
			{ this.setSlice(tid,name,val); }
		displayMessage(this.showName(tid,name)+' has been updated');
		return false;
	},
	setSection: function(tid,name,newval) {
		var t=store.getTiddler(tid); if (!t) { var t=new Tiddler(); t.text=''; }
		var oldval=this.get(tid,'!'+name).escapeRegExp();
		var pattern=new RegExp('(.*!{1,6}'+name+'\\n)'+oldval+'((?:\\n!{1,6}|$).*)');
		var newText=t.text.replace(pattern,'$1'+newval+'$2');
		var who=config.options.txtUserName; var when=new Date();
		if (config.options.chkForceMinorUpdate) { var who=t.modifier; var when=t.modified; }
		store.saveTiddler(tid,tid,newText,who,when,t.tags,t.fields);
		story.refreshTiddler(tid,null,true);
	},
	setSlice: function(tid,name,newval) {
		var t=store.getTiddler(tid); if (!t) { var t=new Tiddler(); t.text=''; }
		var oldval=this.get(tid,name)||'';
		var pattern="((?:^|\\n)\\|\\s*[\\'\\/]*~?(?:"
			+name.escapeRegExp()
			+")\\:?[\\'\\/]*\\s*\\|\\s*)(?:"
			+oldval.escapeRegExp()
			+")(\\s*\\|(?:\\n|$))";
		var match=t.text.match(new RegExp(pattern));
		if (match) {
			var pos=t.text.indexOf(match[0]);
			var newText=t.text.substr(0,pos)
				+match[1]+newval+match[2]
				+t.text.substr(pos+match[0].length);
		} else { // create new slice at start of tiddler or after last existing slice (if any)
			var match=t.text.match(this.slicesRE); if (match) var last=match[match.length-1];
			var pos=last?t.text.indexOf(last)+last.length+1:0; 
			var newText=t.text.substr(0,pos)+'|'+name+'|'+newval+'|\n'+t.text.substr(pos);
		}
		var who=config.options.txtUserName; var when=new Date();
		if (config.options.chkForceMinorUpdate) { var who=t.modifier; var when=t.modified; }
		store.saveTiddler(tid,tid,newText,who,when,t.tags,t.fields);
		story.refreshTiddler(tid,null,true);
	},
	getSlices: function(tid) {
		var slices = {};
		var text = store.getTiddlerText(tid,'');
		slices[this.sizeSliceName]=text.length.toString();  // fake slice
		this.slicesRE.lastIndex = 0;
		do {
			var m = this.slicesRE.exec(text);
			if (m) { if (m[1]) slices[m[1]] = m[2]; else slices[m[3]] = m[4]; }
		} while(m);
		return slices;
	},
	getSections: function(tid) {
		var s=[];
		var t=store.getTiddlerText(tid,'');
		var p=/(?:^|\n)!{1,6}([^\n]*)\n/gm;
		do { var m=p.exec(t); if (m) { s.push(m[1]); } } while(m);
		return s;
	},
	getFields: function(tid) {
		var t=store.getTiddler(tid); if (!t) return [];
		var fields=['=created','=modified','=modifier','=text','=tags'];
		for (var f in t.fields) fields.push('='+f);
		return fields;
	}
};
//}}}
<data>{"abstract":"Was für eine [[Kreativität|Kreativitätstechniken]] in einer Gruppe steckt, lässt sich manchmal mit sehr einfachen Mitteln erlebbar machen — in diesem Fall muss das eine oder andere [[Hühnerei|Großer Eierfall]] dran glauben."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.gerricus-schule.de/wp-content/uploads/2009/07/b6kiwo041.JPG>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Großer Eierfall","abstract") </script>

!Großer Eierfall
<<tiddler [[Großer Eierfall##Overview]]>>
Nicht nur um [[Teamentwicklung|Teamentwicklung / Teambuilding]] und Kooperation geht es bei diesem Spiel, das in der Regel großen Spaß bereitet, sondern auch um [[Kreativität|Kreativitätstechniken]]. 

!Objectives
* Teambuilding
* Kooperation 

!Timing
60min

!Audience
Group

!Materials
pro (Klein)Gruppe:
* 25 Strohlame 
* ein rohes Ei
* 125 cm Tesafile

!Procedure
# Die Gesamtgruppe wird in mehrere Kleingruppen (for pairing use [[Gruppenpuzzle]] or [[Hör gut hin!]]) zu 4 bis 5 Teilnehmern aufgeteilt. 
# Jede Gruppe erhält 25 Strohhalme, ein rohes Ei und 125 cm Tesafilm.
# Die Aufgabe lautet, das Ei mit diesen wenigen Materialien so zu verpacken, dass es einen Fall aus 2,5m Höhe heil überlebt. 
# Die Gruppe hat dafür 40 Minuten Zeit. In dieser Zeit muss sie allerdings auch noch einen Namen für ihre "Maschine" erfinden. 
# Nach Ablauf der 40 Minuten präsentiert jede Gruppe ihre Konstruktion und erklärt die Funktionsweise und den Namen. 
# Anschließend kommt die Testphase, in der jede Gruppe ihre "Erfindung" aus der angegebenen Höhe herabfallen lässt (im Seminarraum sollte für eine entsprechende Unterlage gesorgt werden.)

!Debriefing

!Quelle
Gilsdorf/Kistner: Kooperative Abenteuerspiele, Kallmeyersche Verlagsbuchhandlung, S.94.

!See also
* [[Marshmellow Challenge]]
* [[Turmbauübung]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Der+gro%DFe+Eierfall+%28jt%29]]
<data>{"abstract":"In vielen [[Besprechungen|Besprechung]] prallen Meinungen aufeinander, die zu endlosen Diskussionen führen. Das [[Aufdecken|Grundannahmen sichtbar machen]] der [[Grundannahmen|Annahmen widerlegen]] hinter den Meinungen kann hier helfen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.hermann-direkt.de/sys/data/shop/bilder/53020100g.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Grundannahmen sichtbar machen","abstract") </script>

!Grundannahmen sichtbar machen
Ein Beispiel für eine Grundannahme: Man kann Probleme vermeiden, wenn man //DIE// Ursache oder //DEN// Schuldigen findet. Oder: Wer am meisten redet, der überzeugt am ehesten. Damit ein [[Team]] lernt, die hinter häufiger geäußerten Meinungen liegenden Annahmen zu verstehen, bietet sich folgende Übung an:

Für ein aktuelles, besonders wichtiges Thema versuchen die Teammitglieder, die Annahmen hinter den Meinungen zu ergründen. 

!Objectives
* Aufdecken von Grundannahmen

!Timing
60 min

!Audience
Group

!Materials
* Flipchart,
* Zettel, Stifte

!Procedure
Die Übung findet in vier Phasen statt.
# Jeder Teilnehmer schreibt seine Meinung zu dem zuvor benannten Thema in einem einzigen Satz auf. Wichtig ist, die Aussage auf den Punkt zu bringen.
# Der erste "Meinungsbringer" liest seine Meinung vor.
# Die anderen stellen Vermutungen zu folgenden Fragen an:
** Welche [[Erfahrungen|Erfahrung]] oder [[Informationen|Information]] könnten dieser Meinung zugrunde liegen?
** Welche Theorien oder Prinzipien könnten dahinter stehen?
** Welche Gefühle verbergen sich dahinter?
** Welche Absicht ist mit der Meinung verbunden? <br>      Beurteilungen sind nicht erlaubt, nur Vermutungen. Bevor jemand mit einer Vermutung kommt, wiederholt er die gehörte Meinung. Der "Meinungsbringer" hört nur zu und lässt das Gehörte auf sich wirken.
# Der "Meinungsbringer" erzählt, welche Vermutungen ihn berührt, irritiert, überrascht oder betroffen machten. 

Anschließend werden die Phasen 2 bis 4 mit jedem weiteren Teammitglied wiederholt.
Den Abschluss bildet eine gemeinsame Reflexion zu den Fragen:
* Wie erging es mir, als ich den Vermutungen über meine Grundannahmen schweigend zuhören musste?
* Wie erging es mir, als ich Vermutungen über die Grundannahmen anderer aussprechen musste? 

!Debriefing
Die Antworten werden in Stichworten am Flipchart festgehalten. Nach einer solchen Gesprächsrunde lassen sich manch kontroverse Themen leichter auflösen und das Verständnis für die gegenteiligen Positionen ist gewachsen.

!Quelle
[[C.Mandl / M.Hauser / H.Mandl: Die schöpferische Besprechung, EHP Organisation 2008, S. 115-118.| http://www.amazon.de/gp/product/3897970570?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3897970570]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Besprechungen]<<tiddlerList tags:"meeting,-newTemplate" header:"Übungen Besprechung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Grundannahmen+sichtbar+machen+%28jt%29.html]]
<data>{"abstract":"[[Gruppenpuzzle]], eine aktivierende Form, in einem Seminar neue Kleingruppen zu bilden."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.ancla.de/images/Puzzleteile_springen.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Gruppenpuzzle","abstract") </script>

!Gruppenpuzzle
<script> return "<<tiddler [[Gruppenpuzzle##Overview]]>>" </script> 
Immer wieder stehen Sie als Trainer vor der Aufgabe, Ihre Teilnehmer in kleinere Gruppen aufteilen zu müssen. Eine aktivierende Form der Gruppenfindung ist das [[Gruppenpuzzle]]. 

!Objectives
* Bildung von Arbeitsgruppen

!Timing
5 min

!Audience
Group


!Materials
* 

!Procedure
Dazu bereitet der Trainer auf leichtem Karton mehrere Arbeitsblätter vor, auf denen die Arbeitsaufgaben für die Gruppen beschrieben werden. 
Diese Arbeitsblätter werden in mehrere ~Puzzle-Teile zerschnitten, so dass genau so viele Teile wie Teilnehmer entstehen. Nun zieht sich jeder ein Teil, anschließend wird versucht, die Originale wieder zusammen zu setzen. 
Die Teilnehmer, die ein Ausgangspapier hergestellt haben, bilden eine Gruppe und können mit der Kleingruppenarbeit beginnen.

!Debriefing

!Quelle
Klaus Oltmanns, aus: [[Rachow, Axel: Spielbar II, managerSeminare Gerhard May Verlags GmbH, 2002| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FSpielbar-pr%25C3%25A4sentieren-Top-Spiele-Seminarpraxis-Seminarpraxis%2Fdp%2F3931488632%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1211920003%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Gruppenpuzzle+%28jt%29]]
<data>{"abstract":"[[Haar in der Suppe]], es gibt Situationen im Seminar, in denen viel kritisiert wird. Mit dieser kleinen Vorführung machen Sie die negative Haltung den Teilnehmern bewusst.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% 40% title http://baeckes.de/hp/Fun/Haar_in_der_Suppe.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Haar in der Suppe","abstract") </script>

!Haar in der Suppe
<script> return "<<tiddler [[Haar in der Suppe##Overview]]>>" </script> 
Es gibt Situationen im Seminar, in denen viel kritisiert wird. Mal passt dem einen Seminarteilnehmer etwas nicht, mal einem anderen. 
Nach einer Unterbrechung können Sie es einmal mit diesem kleinen Experiment versuchen.

!Objectives
* Bewußt werden negativer Haltung (der Teilnehmer)

!Timing
5 min

!Audience
Group

!Materials
* Flipchart

!Procedure
Sie kündigen ganz schlicht an: //"Ich möchte Ihnen mal etwas zeigen!"// 
Dann schreiben Sie vier Rechenaufgaben samt Lösung ans ~Flip-Chart, von der Art

{{indent{
22 * 8 = 176
945 - 613 = 332
156 : 12 = 13
458 + 266 = 734
}}}

Dann fragen Sie die Teilnehmer, ob ihnen etwas auffällt. Jede Wette, dass schon bald jemand feststellt: //"Eine Aufgabe ist falsch."// Die anderen werden das bestätigen. Sie sagen darauf: //"Mir fällt auf, dass drei Aufgaben richtig sind."//

Ganz ungefährlich ist diese "Belehrung" nicht, da könnte sich auch jemand "vorgeführt" fühlen. Also nicht vergessen, dass Sie in diesem Moment ebenfalls etwas kritisieren, nämlich die Tatsache, dass zu viel kritisiert wird.

!Debriefing

!Quelle
[[Bernd Weidenmann: Handbuch Active Training, Beltz 2006, S. 52-53.| http://www.amazon.de/gp/product/3407364601?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3407364601]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Haar+in+der+Suppe+%28jt%29]]
/***
|Name|HaloscanMacro|
|Author|[[JimSpeth]] (modifyied by [[BramChen]])|
|Location|http://end.com/~speth/HaloscanMacro.html|
|Version|1.0.6|
|License||
|~CoreVersion|~TW2.1|
|Type|plugin|
|Requires|[[MoveablePanelPlugin]]|
|Overrides||
|Description|Comment and trackback support for TiddlyWiki (via [[Haloscan|http://www.haloscan.com]]).|

!History
* Apr 30, 2007 v1.0.6 Runs with loaded from external js, and using the text of tiddler named "HaloscanAccount" as the haloscan account.
* Aug 17, 2006 v1.0.5 Refactored codes
* Feb 15, 2006 v1.0.3 Fixed 'URI encode' of id by bram
* Feb 12, 2006 v1.0.2 Fixed 'var declaration' issus by bram
* Jan 31, 2006 v1.0.1, fixed display of counts for default tiddlers
* Jan 30, 2006 v1.0, initial release

!Examples
|!Source|!Output|h
|{{{<<haloscan>>}}}|<<haloscan>>|
|{{{<<haloscan comments>>}}}|<<haloscan comments>>|
|{{{<<haloscan trackbacks>>}}}|<<haloscan trackbacks>>|

!Installation
#Register for a [[Haloscan|http://www.haloscan.com]] account. 
#Install the HaloscanMacro in a new tiddler with a tag of systemConfig (save and reload TW to activate).
#Create a tiddler named [[HaloscanAccount]] and enter the Haloscan account data as text to the tiddler.
Use the macro somewhere in a tiddler (see ViewTemplate for an example).

!Notes
Communication with their servers is asynchronous, and until it has completed, the counts will be displayed as question marks.

!Code
***/
//{{{

version.extensions.haloscan = {major: 1, minor: 0, revision: 6, date: new Date("Apr 30, 2007")};
var safeWrite = function(s)
{
	document.written = s;
	return s;
};
document.write = safeWrite;
//var count, hs = [], hstb = [];
config.macros.haloscan = {
	account: "HaloscanAccount",
	baseURL: "http://www.haloscan.com/load/",
	commentURL: "http://www.haloscan.com/comments/%0/%1/",
	trackbackURL: "http://www.haloscan.com/tb/%0/%1/",
//	haloscanIframe: "+++*[%0]: <html><iframe src='%1' width= 480 height = 240></iframe></html>===\n",
        haloscanIframe: "+++^*[%0]<<moveablePanel>> ---- <html><iframe src='%1' width= 500 height = 450> </iframe></html>===\n",
	haloscanLoaded: false,
	validParams: {comments:0,trackbacks:1},
	paramsError: 'Parameters error!'
};

config.macros.haloscan.initHaloscan = function (){
	if (config.macros.haloscan.haloscanLoaded){
		return;
	}
	var account = store.getTiddlerText("HaloscanAccount");
	if (!account) {
		account = config.macros.haloscan.account;
	}
	var el = document.createElement('script');
	el.id = 'Haloscan';
	el.type = 'text/javascript'; 
	el.src = config.macros.haloscan.baseURL + account;
	document.documentElement.childNodes[0].appendChild(el);
	config.macros.haloscan.haloscanLoaded = true;
}

config.macros.haloscan.refreshCount = function(title) {
	var counts = ['',''];
	if (typeof postCount !== 'undefined') {
		postCount(title);
		counts[0] = document.written;
	}
	if(typeof postCountTB !== 'undefined') {
		postCountTB(title);
		counts[1] = document.written;
	}
	return counts;
};

config.macros.haloscan.handler = function (place,macroName,params,wikifier,paramString,tiddler)
{
	if (params && (params.length == 1 && typeof this.validParams[params[0]] === 'undefined' || params.length>1)) {
		wikify(this.paramsError,place);
		return false;
	}
	var account = store.getTiddlerText("HaloscanAccount");
	if (!account) {
		account = config.macros.haloscan.account;
	}
	var title = story.findContainingTiddler(place).id.substr(7);
	title = encodeURIComponent(String.encodeTiddlyLink(title));
//	title = String.encodeTiddlyLink(title);
	var haloscanCounts = this.refreshCount(title);

	var result = "";
	if (params[0])
		result = haloscanCounts[this.validParams[params[0]]];
	else {
		result = this.haloscanIframe.format([haloscanCounts[0],this.commentURL.format([account, title])]);
		result += this.haloscanIframe.format([haloscanCounts[1],this.trackbackURL.format([account, title])]);
	}
	wikify(result, place);
};
window.haloscanInterval = setInterval(function(){if(formatter) {clearInterval(window.haloscanInterval); config.macros.haloscan.initHaloscan();};},100);
//}}}
<data>{"abstract":"[[Haltung zum Gegenüber]], wie nehmen wir andere wahr? Wovon hängt unsere [[Wahrnehmung]] ab? Ein kleines Experiment führt zu ~Aha-Erlebnissen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.kinomorgen.de/dateien/14178.c.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Haltung zum Gegenüber","abstract") </script>

!Haltung zum Gegenüber
<script> return "<<tiddler [[Haltung zum Gegenüber##Overview]]>>" </script> 
Dass unsere Haltung die [[Wahrnehmung]] anderer und damit auch unser Verhalten ihnen gegenüber beeinflusst, gehört zum Allgemeinwissen. Nur ist es uns häufig nicht bewusst, und wenn wir dann über andere reden, tun wir so, als sprechen wir Wahrheiten aus.
Das folgende kleine Experiment lässt Seminarteilnehmer hierfür wieder etwas sensibler werden.

!Objectives
* Sensibilität im Umgang mit anderen

!Timing
20min

!Audience
Group


!Materials
* Zettel, Stifte

!Procedure
# Der Trainer bittet die Teilnehmer, sich eine Person vorzustellen, die man mag. Sodann sollen sie drei Charaktereigenschaften auf einen Zettel schreiben, die diese Person auszeichnen. 
# Anschließend sollen sie dies mit einer Person machen, die sie nicht mögen.
# Nun werden die Teilnehmer aufgefordert, einen Satz zu bilden nach dem Muster: //"Ich bin eine Person, die Wert legt auf.... "// (hier werden die Adjektive eingefügt, die zu der Person, die man mag, passen). <br>Dann wird der Satz gebildet: //"Ich bin eine Person, die Schwierigkeiten hat mit…"// (und nun die anderen Adjektive).

!Debriefing
So formuliert, erkennen die Teilnehmer, warum sie auf bestimmtes Verhalten oder bei bestimmten Leuten viel empfindlicher und mitunter auch ungerecht reagieren. Oder warum sie bei dem einen [[Mitarbeiter]] ein Auge zudrücken, bei dem anderen aber hart reagieren.

!Quelle
Workshop mit Susanne Winkler und Dr. Frank Taschner bei den Petersberger Trainertagen 2008, nach C. Moser / N. Bußmann: Feedback geben, Training aktuell 6/2008, S. 6.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Haltung+zum+Gegen%FCber+%28jt%29]]
* [[Unesco, freie Lernressourcen| www.opentrainingplatform.org]]
<data>{"abstract":"[[Haus der Führung]], eine Übung zum Thema [[Führung]] mit vielen Möglichkeiten der Reflexion und des Austausches.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.luxist.de/luxist/wp-content/uploads/2007/04/haus1.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Haus der Führung","abstract") </script>

!Haus der Führung
<script> return "<<tiddler [[Haus der Führung##Overview]]>>" </script>
Eine Übung zum Thema "Führungsverständnis" ([[Führung]]). 

!Objectives
* Führungsverständnis

!Timing
90-120 min

!Audience
Group / Individual


!Materials
* 

!Procedure
Die Gruppe legt sich zuerst fest, welche Kompetenzen sie zum Führen braucht. Sie muss sich dabei auf sieben beschränken. Die sieben Kompetenzen werden als Patenschaften vergeben. Die Teilnehmer sollen gleichmäßig auf die Kompetenzen verteilt sein. (20 bis 30 Minuten)

Nach einer kurzen Reflexion (//"Fehlt was?"//, //"Wie effektiv war die Gruppe"//) wird im nächsten Schritt mit Seilen ein quadratischer Raum ausgelegt mit einer symbolischen Öffnung als Tür. Aufgabe der Teilnehmer ist es, für ihre Kompetenz ein Zimmer einzurichten. 
Wichtigste Regel: Kein Mensch kann durch Wände gehen! Die Teilnehmer handeln aus, wer welchen Raum mit welchen Türen belegt.

Für die Einrichtung des Kompetenzraumes stehen unterschiedliche Materialien zur Verfügung — eine dicke "Spielzeugkiste" und ein voller Moderationskoffer oder Material aus der Natur ist hilfreich. (ca. 40 – 60 Min.)

Am Ende gibt es eine Hausführung, bei der die Paten ihren Raum beschreiben und sich den Fragen der anderen stellen. (30 Min.)


!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Übungen Führung]<<tiddlerList tags:"leadership,-newTemplate" header:"Übungen Führung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Haus+der+F%FChrung+%28OBOE%29.html]]
<data>{"abstract":"[[Haus-Baum-Hund]], ohne großen Aufwand ist diese Übung zum Thema //Führen und Geführt-werden// durchzuführen. Mit einem Bleistift und einem Blatt Papier können Seminarteilnehmer beide Rollen erleben.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.ibiza-hunde.de/mediac/400_0/media/0095~$28Kopieren~1$29.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Haus-Baum-Hund","abstract") </script>

!Haus-~Baum-Hund
<script> return "<<tiddler [[Haus-Baum-Hund##Overview]]>>" </script> 
Eine tolle Übung zum Thema "[[Führen|Führung]] und geführt werden".

!Objectives
* Führen und Geführt-werden

!Timing
60 min

!Audience
Group

!Materials
* Papier, Stifte

!Procedure
Die Teilnehmer sitzen sich in 2er-Gruppen gegenüber. Während der Übung ist jede [[Kommunikation]] verboten. 

Jedes Paar hält gemeinsam (!) einen Stift und malt zusammen ein Haus, einen Baum und einen Hund. Außerdem unterschreibt jedes Paar ihr Bild mit einem Künstlernamen und vergibt (immer noch schweigend!) eine Note. 

!Debriefing
Anschließend tauschen sich die Partner über den Prozeß aus:
* Wie war es zu führen oder geführt zu werden? 
* Wann gab es Schwierigkeiten, wann lief es gut? 
* Wie wurden Missverständnisse gelöst? 

!Quelle
[[Rabenstein, Reichel Thanhoffer: "Das ~Methoden-Set", Ökotopia Verlag; Auflage: 12. (31. August 2004)| http://www.amazon.de/gp/product/3925169210?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3925169210]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Führung]<<tiddlerList tags:"leadership,-newTemplate" header:"Übungen Führung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* http://www.imk.fhg.de/ich-sehe-was-du-hoerst/HausBaumHund.html
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Haus-Baum-Hund+%28msi%29]]
<data>{"abstract":"[[Herrenlose Gegenstände]], Sie bearbeiten ein wichtiges Seminarthema in einem Training zum Thema [[Kommunikation]], [[Konfliktmanagement]], [[Teamentwicklung|Teamentwicklung / Teambuilding]] oder der Persönlichkeitsentwicklung — diese Übung verschafft neue Einblicke."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://images.ratschlag24.com/dpa/Turnschuh_21469876.onlineBild.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Herrenlose Gegenstände","abstract") </script>

!Herrenlose Gegenstände
<script> return "<<tiddler [[Herrenlose Gegenstände##Overview]]>>" </script>

!Objectives


!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Gehen Sie mit den Teilnehmern spazieren und bitten sie, ein paar herrenlose Gegenstände, die ihnen auf dem Weg auffallen, mitzunehmen (Kieselsteine, eine Feder, Blätter, Tannenzapfen...)

Zurück im Seminarraum fordern Sie die Teilnehmer auf, sich durch die Gegenstände anregen zu lassen, das Thema neu zu betrachten. Einer nach dem anderen assoziiert, was ihm spontan zu seinen Gegenständen einfällt. Für neue Einsichten und überraschende Verbindungen ist in der Regel gesorgt.


!Debriefing


!Quelle
Anita von Hertel: Wie Mediation und Coaching sich ergänzen, wirtschaft & weiterbildung 3/2004, S. 23/24.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://www.mwonline.de/online/themen/3/Ideenfabrik/Herrenlose+Gegenst%E4nde+%28jt%29.html
/***
|Name:|HideWhenPlugin|
|Description:|Allows conditional inclusion/exclusion in templates|
|Version:|3.1 ($Rev: 3919 $)|
|Date:|$Date: 2008-03-13 02:03:12 +1000 (Thu, 13 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#HideWhenPlugin|
|Author:|[[SimonBaird]] <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
For use in ViewTemplate and EditTemplate. Example usage:
{{{<div macro="showWhenTagged Task">[[TaskToolbar]]</div>}}}
{{{<div macro="showWhen tiddler.modifier == 'BartSimpson'"><img src="bart.gif"/></div>}}}
***/
//{{{

window.hideWhenLastTest = false;

window.removeElementWhen = function(test,place) {
	window.hideWhenLastTest = test;
	if (test) {
		removeChildren(place);
		place.parentNode.removeChild(place);
	}
};


merge(config.macros,{

	hideWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( eval(paramString), place);
	}},

	showWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !eval(paramString), place);
	}},

	hideWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAll(params), place);
	}},

	showWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAll(params), place);
	}},

	hideWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAny(params), place);
	}},

	showWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAny(params), place);
	}},

	hideWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAll(params), place);
	}},

	showWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAll(params), place);
	}},

	hideWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0]), place);
	}},

	showWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !(store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0])), place);
	}},

	hideWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.title == params[0], place);
	}},

	showWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.title != params[0], place);
	}},

	'else': { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !window.hideWhenLastTest, place);
	}}

});

//}}}
<data>{"abstract":"[[Horrorszenarien]]: vorweggenommene Problemsituationen verlieren ihren Schrecken. Eine Möglichkeit, den [[Transfer-Erfolg|Praxistransfer]] eines Seminares zu sichern, ist die Beschäftigung mit den möglichen Problemen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://serv.freewareapp.net/full_screenshots/3/d/3d-halloween-horror-screensaver.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Horrorszenarien","abstract") </script>

!Horrorszenarien
<script> return "<<tiddler [[Horrorszenarien##Overview]]>>" </script> 
Im sicheren Seminarraum ideale Lösungen und Verhaltensweisen entwickeln, das ist eine Sache, sie in die Realität umzusetzen, die andere. Was könnte helfen, den [[Transfer|Transferwatcher]] wahrscheinlicher zu machen? 

!Objectives
* [[Praxistransfer]]

!Timing
30 min

!Audience
Group

!Materials
* 

!Procedure
Man kann die Realität vorweg nehmen. Das bedeutet, dass man noch im Seminarraum [[in die Zukunft schaut|Zukunfts-Szenarien]] und das gerade Erfahrene "ausprobiert". So kann man die Teilnehmer auffordern, sich [[Horrorszenarien]] auszudenken, dies sind Situationen, in denen es nahezu unmöglich erscheint, das Gelernte einzusetzen. 

!Debriefing
Anschließend stimmen die Teilnehmer ab, welches Szenario das schlimmste von allen ist. 
Danach werden die Teilnehmer zu Beratern und sammeln in einem [[Brainstorming]] Lösungen für die beschriebene Situation. Vorweggenommene Problemsituationen verlieren so ihren Schrecken.


!Quelle
Claudia Monnet: In sechs Schritten Teilnehmer aktivieren, Wirtschaft und Weiterbildung 7/1999, S.32

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Horrorszenarien+%28jt%29]]
<data>{"abstract":"Eine recht aufwendige und komplexe Übung. Hier müssen die Teilnehmer im Wald ein komplettes [[Hotel errichten|Hotelbau]]. Man sollte den Förster informieren."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.kubesch-gmbh.de/innenausbau.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Hotelbau","abstract") </script>

!Hotelbau
<<tiddler [[Hotelbau##Overview]]>>

!Objectives

!Timing
Der Zeitaufwand beträgt eineinhalb Tage: Am ersten wird geplant und gebaut, am zweiten wird im "Seminarraum" ausgewertet und wieder abgebaut. 

!Materials
*

!Audience
Group
Die Gruppengröße beträgt 12 bis 25 Teilnehmer. 

!Procedure
Die Aufgabe lautet, ein Hotel mit Restaurant, Seminarraum, Kaminzimmer (für das Lagerfeuer) und Schlafraum für alle Teilnehmer zu errichten. Hierfür eignet sich am ehesten ein Mischwald mit Bachlauf. Die Ausrüstung für die Übung besteht aus dem kompletten [[Outdoor|outdoor]]-Equipment für eine Bergsportübung mit Übernachtung. Dazu kommen Taschenlampen, Messer, Sägen, Planen und Seile.

!Debriefing
Die Auswertung enthält alles, was eine klassische Teamübung ausmacht, vor allem wie Entscheidungsprozesse abliefen, wie geplant wird und wer welche Rolle übernommen hat.
Die Übung bedarf entsprechender Erfahrung im [[Outdoortraining|outdoor]].

!Quelle
~Hans-Georg Renner: Hotelbau: Blätterdach oder First Class, in Anstoß zur Teambildung, managerSeminare 10/2004, S. 57-58.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Outdoor]<<tiddlerList tags:"outdoor,-newTemplate" header:"Übungen Outdoor">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Hotelbau+%28jt%29.html]]
/***
|Name|HoverMenuPlugin|
|Author|[[SaqImtiaz]], changed by [[MichaelTarnowski]]|
|Source|http://tw.lewcid.org/#HoverMenuPlugin|
|Version|1.11|
|Type|plugin|
|~CoreVersion|2.x|
|Description|Provides a hovering menu on the edge of the screen for commonly used commands, that scrolls with the page.|
!Description:
Provides a hovering menu on the edge of the screen for commonly used commands, that scrolls with the page.

!Demo:
Observe the hovering menu on the right edge of the screen.

!Installation:
Copy the contents of this tiddler to your TW, tag with systemConfig, save and reload your TW.
To customize your HoverMenu, edit the HoverMenu shadow tiddler.

To customize whether the menu sticks to the right or left edge of the screen, and its start position, edit the HoverMenu configuration settings part of the code below. It's well documented, so don't be scared!

The menu has an id of hoverMenu, in case you want to style the buttons in it using css.

!Notes:
Since the default HoverMenu contains buttons for toggling the side bar and jumping to the top of the screen and to open tiddlers, the ToggleSideBarMacro, JumpMacro and the JumpToTopMacro are included in this tiddler, so you dont need to install them separately. Having them installed separately as well could lead to complications.

If you dont intend to use these three macros at all, feel free to remove those sections of code in this tiddler.

!To Do:
* rework code to allow multiple hovering menus in different positions, horizontal etc.
* incorporate code for keyboard shortcuts that correspond to the buttons in the hovermenu

!History:
*03-08-06, ver 1.1.2: compatibility fix with SelectThemePlugin
*03-08-06,  ver 1.11: fixed error with button tooltips
*27-07-06, ver 1.1 : added JumpMacro to hoverMenu
*23-07-06

*23-02-07, JumpToBottom function added by MT


!Code

start HoverMenu plugin code
***/
//{{{
config.hoverMenu={};
//}}}

/***
!!HoverMenu configuration settings
***/
//{{{
config.hoverMenu.settings={
               align: 'right',    //align menu to right or left side of screen, possible values are 'right' and 'left'               
               x: 10,              // horizontal distance of menu from side of screen, increase to your liking.
               y: 158            //vertical distance of menu from top of screen at start, increase or decrease to your liking
               };

config.hoverMenu.handler=function()
{              
               if (!document.getElementById("hoverMenu"))
               {
               var theMenu = createTiddlyElement(document.getElementById("contentWrapper"), "div","hoverMenu");
               theMenu.setAttribute("refresh","content");
               theMenu.setAttribute("tiddler","HoverMenu");
               var menuContent = store.getTiddlerText("HoverMenu");
               wikify(menuContent,theMenu);
              }

	       var Xloc = this.settings.x;
	       Yloc =this.settings.y;
	       var ns = (navigator.appName.indexOf("Netscape") != -1);
	       function SetMenu(id)
                        {
		        var GetElements=document.getElementById?document.getElementById(id):document.all?document.all[id]:document.layers[id];
		        if(document.layers)GetElements.style=GetElements;
		        GetElements.sP=function(x,y){this.style[config.hoverMenu.settings.align]=x +"px";this.style.top=y +"px";};
		        GetElements.x = Xloc;
		        GetElements.y = findScrollY();
		        GetElements.y += Yloc;
		        return GetElements;
	                }
               window.LoCate_XY=function()
                        {
		        var pY =  findScrollY();
                        ftlObj.y += (pY + Yloc - ftlObj.y)/15;
		        ftlObj.sP(ftlObj.x, ftlObj.y);
		        setTimeout("LoCate_XY()", 10);
	                }
               ftlObj = SetMenu("hoverMenu");
	       LoCate_XY();
};

window.old_lewcid_hovermenu_restart = restart;
restart = function()
{
               window.old_lewcid_hovermenu_restart();
               config.hoverMenu.handler();
};
//}}}

/***
!!StyleSheet definitions
***/
//{{{
setStylesheet(
"#hoverMenu .imgLink, #hoverMenu .imgLink:hover {border:none; padding:0px; float:right; margin-bottom:2px; margin-top:0px;}\n"+
"#hoverMenu  .button, #hoverMenu  .tiddlyLink {border:none; font-weight:bold; background:#39a; color:#FFF; padding:0 5px; float:right; margin-bottom:4px;}\n"+
"#hoverMenu .button:hover, #hoverMenu .tiddlyLink:hover {font-weight:bold; border:none; color:#fff; background:#000; padding:0 5px; float:right; margin-bottom:4px;}\n"+
"#hoverMenu .button {width:100%; text-align:center}"+
"#hoverMenu { position:absolute; width:7px;}\n"+
"\n","hoverMenuStyles");
//}}}

//{{{
config.macros.renameButton={};
config.macros.renameButton.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
               if (place.lastChild.tagName!="BR")
                     {
                      place.lastChild.firstChild.data = params[0];
                      if (params[1]) {place.lastChild.title = params[1];}
                     }
};

config.shadowTiddlers["HoverMenu"]="<<top>>\n<<toggleSideBar>><<renameButton '►' >>\n<<jump j '' top>>\n<<saveChanges>><<renameButton s 'Save TiddlyWiki'>>\n<<newTiddler>><<renameButton n>>\n";
//}}}

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

config.macros.toggleSideBar.onToggleSideBar = function(){
          var sidebar = document.getElementById("sidebar");
          var settings = config.macros.toggleSideBar.settings;
          if (sidebar.getAttribute("toggle")=='hide')
             {
              setStylesheet(settings.styleShow,"ToggleStyleSheetSideBar");
              sidebar.setAttribute("toggle","show");
              this.firstChild.data= (this.firstChild.data).replace(settings.arrow1,settings.arrow2);
              }
          else
              {    
               setStylesheet(settings.styleHide,"ToggleStyleSheetSideBar");
               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");
//}}}


/***
!!MT JumpToBottom
***/
//{{{
config.macros.bottom={};
config.macros.bottom.handler=function(place,macroName)
{
               createTiddlyButton(place,"▼","jump to bottom",this.onclick);
}
config.macros.bottom.onclick=function()
{
               window.scrollTo(0,999999);
};

config.commands.bottom=
{
               text:"▼",
               tooltip:"jump to bottom"
};

config.commands.bottom.handler = function(event,src,title)
{
               window.scrollTo(0,1e24);
}
//}}}


/***
!!JumpToTop
***/
//{{{
config.macros.top={};
config.macros.top.handler=function(place,macroName)
{
               createTiddlyButton(place,"▲","jump to top",this.onclick);
}
config.macros.top.onclick=function()
{
               window.scrollTo(0,0);
};

config.commands.top =
{
               text:"▲",
               tooltip:"jump to top"
};

config.commands.top.handler = function(event,src,title)
{
               window.scrollTo(0,0);
}
//}}}


/***
!!JumpMacro code
***/
//{{{
config.macros.jump= {};
config.macros.jump.handler = function (place,macroName,params,wikifier,paramString,tiddler)
{
        var label = (params[0] && params[0]!=".")? params[0]: 'jump';
        var tooltip = (params[1] && params[1]!=".")? params[1]: 'jump to an open tiddler';
        var top = (params[2] && params[2]=='top') ? true: false;        

        var btn =createTiddlyButton(place,label,tooltip,this.onclick);
        if (top==true)
              btn.setAttribute("top","true")
}

config.macros.jump.onclick = function(e)
{
        if (!e) var e = window.event;
        var theTarget = resolveTarget(e);
        var top = theTarget.getAttribute("top");
	var popup = Popup.create(this);
	if(popup)
		{
                 if(top=="true")
                                {createTiddlyButton(createTiddlyElement(popup,"li"),'Top ↑','Top of TW',config.macros.jump.top);
                                 createTiddlyElement(popup,"hr");}
		
		story.forEachTiddler(function(title,element) {
			createTiddlyLink(createTiddlyElement(popup,"li"),title,true);
			});
                }
	Popup.show(popup,false);
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	return false;
}

config.macros.jump.top = function()
{
       window.scrollTo(0,0);
}
//}}}


/***
!!Utility functions
***/
//{{{
Popup.show = function(unused,slowly)
{
	var curr = Popup.stack[Popup.stack.length-1];
	var rootLeft = findPosX(curr.root);
	var rootTop = findPosY(curr.root);
	var rootHeight = curr.root.offsetHeight;
	var popupLeft = rootLeft;
	var popupTop = rootTop + rootHeight;
	var popupWidth = curr.popup.offsetWidth;
	var winWidth = findWindowWidth();
        if (isChild(curr.root,'hoverMenu'))
              var x = config.hoverMenu.settings.x;
        else
              var x = 0;
	if(popupLeft + popupWidth+x > winWidth)
		popupLeft = winWidth - popupWidth -x;
        if (isChild(curr.root,'hoverMenu'))
  	        {curr.popup.style.right = x + "px";}
        else
                curr.popup.style.left = popupLeft + "px";
	curr.popup.style.top = popupTop + "px";
	curr.popup.style.display = "block";
	addClass(curr.root,"highlight");
	if(config.options.chkAnimate)
		anim.startAnimating(new Scroller(curr.popup,slowly));
	else
		window.scrollTo(0,ensureVisible(curr.popup));
}

window.isChild = function(e,parentId) {
        while (e != null) {
                var parent = document.getElementById(parentId);
                if (parent == e) return true;
                e = e.parentNode;
                }
        return false;
};
//}}}
/***
|Name|HTMLFormattingPlugin|
|Source|http://www.TiddlyTools.com/#HTMLFormattingPlugin|
|Documentation|http://www.TiddlyTools.com/#HTMLFormattingPluginInfo|
|Version|2.4.1|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|embed wiki syntax formatting inside of HTML content|
The ~HTMLFormatting plugin allows you to ''mix wiki-style formatting syntax within HTML formatted content'' by extending the action of the standard TiddlyWiki formatting handler.
!!!!!Documentation
>see [[HTMLFormattingPluginInfo]]
!!!!!Configuration
<<<
Use {{{<hide linebreaks>}}} within HTML content to wiki-style rendering of line breaks.  To //always// omit all line breaks from the rendered output, you can set this option:
><<option chkHTMLHideLinebreaks>> ignore all line breaks
which can also be 'hard coded' into your document by adding the following to a tiddler, tagged with <<tag systemConfig>>
>{{{config.options.chkHTMLHideLinebreaks=true;}}}
<<<
!!!!!Revisions
<<<
2010.05.07 2.4.1 added chkHTMLHideLinebreaks option
| see [[HTMLFormattingPluginInfo]] for additional revision details |
2005.06.26 1.0.0 Initial Release (as code adaptation - pre-dates TiddlyWiki plugin architecture!!)
<<<
!!!!!Code
***/
//{{{
version.extensions.HTMLFormattingPlugin= {major: 2, minor: 4, revision: 1, date: new Date(2010,5,7)};

// find the formatter for HTML and replace the handler
initHTMLFormatter();
function initHTMLFormatter()
{
	for (var i=0; i<config.formatters.length && config.formatters[i].name!="html"; i++);
	if (i<config.formatters.length)	config.formatters[i].handler=function(w) {
		if (!this.lookaheadRegExp)  // fixup for TW2.0.x
			this.lookaheadRegExp = new RegExp(this.lookahead,"mg");
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var html=lookaheadMatch[1];
			// if <nowiki> is present, just let browser handle it!
			if (html.indexOf('<nowiki>')!=-1)
				createTiddlyElement(w.output,"span").innerHTML=html;
			else {
				// if <hide linebreaks> is present, or chkHTMLHideLinebreaks is set
				// suppress wiki-style literal handling of newlines
				if (config.options.chkHTMLHideLinebreaks||(html.indexOf('<hide linebreaks>')!=-1))
					html=html.replace(/\n/g,' ');
				// remove all \r's added by IE textarea and mask newlines and macro brackets
				html=html.replace(/\r/g,'').replace(/\n/g,'\\n').replace(/<</g,'%%(').replace(/>>/g,')%%');
				// create span, let browser parse HTML
				var e=createTiddlyElement(w.output,"span"); e.innerHTML=html;
				// then re-render text nodes as wiki-formatted content
				wikifyTextNodes(e,w);
			}
			w.nextMatch = this.lookaheadRegExp.lastIndex; // continue parsing
		}
	}
}

// wikify #text nodes that remain after HTML content is processed (pre-order recursion)
function wikifyTextNodes(theNode,w)
{
	function unmask(s) { return s.replace(/\%%\(/g,'<<').replace(/\)\%%/g,'>>').replace(/\\n/g,'\n'); }
	switch (theNode.nodeName.toLowerCase()) {
		case 'style': case 'option': case 'select':
			theNode.innerHTML=unmask(theNode.innerHTML);
			break;
		case 'textarea':
			theNode.value=unmask(theNode.value);
			break;
		case '#text':
			var txt=unmask(theNode.nodeValue);
			var newNode=createTiddlyElement(null,"span");
			theNode.parentNode.replaceChild(newNode,theNode);
			wikify(txt,newNode,highlightHack,w.tiddler);
			break;
		default:
			for (var i=0;i<theNode.childNodes.length;i++)
				wikifyTextNodes(theNode.childNodes.item(i),w); // recursion
			break;
	}
}
//}}}
/***
|Name|HypergraphPlugin|
|Source|http://dahukanna.net/wiki/tiddlywiki.htm|
|Version|0.9.0|
|Author|[[DawnAhukanna]]|
|License||
|~CoreVersion|2.0+|
|Type|plugin|
|Requires||
|Overrides||
|Description|Work in progress. Shows links as hypergraph|
***/

//{{{
version.extensions._HyperGraph={major: 0, minor: 9, revision: 0, date: new Date(2006,3,18), source: "http://www.aurore.eclipse.co.uk/wiki/twextensions.htm#_HyperGraph", author:"DawnAhukanna"};
//Work in progress.
config.macros.openTiddler = {};
config.macros.openTiddler.handler = function(place,macroName,params){
 var ul = createTiddlyElement(place,"ul",null,null,"");
 var li = createTiddlyElement(ul,"li",null,null,"");
 var link = createTiddlyLink(li,params,true);
 onClickTiddlerLink(link);
}

//Options for generating hypergraph XML for current TiddlyWiki document.
config.options.chkMenugraphTiddlers=true;
config.options.chkMenugraphTags=true;
config.options.chkMenugraphDates=true;
config.options.chkMenugraphShadowed=true;
config.options.chkMenugraphModifiers=true;
config.options.chkMenugraphStructured=false;
if(config.shadowTiddlers.HypergraphOptions==undefined || config.shadowTiddlers.HypergraphOptions==null || config.shadowTiddlers.HypergraphOptions==""){
config.shadowTiddlers.HypergraphOptions = "\n <<option chkMenugraphTiddlers>> Add tiddlers to menugraph.\n <<option chkMenugraphShadowed>> Add shadow tiddlers to menugraph.\n <<option chkMenugraphTags>> Add tags to menugraph.\n <<option chkMenugraphDates>> Add dates to menugraph.\n <<option chkMenugraphModifiers>> Add modifiers to menugraph.";
}else{
config.shadowTiddlers.HypergraphOptions += "\n <<option chkMenugraphTiddlers>> Add tiddlers to menugraph.\n <<option chkMenugraphShadowed>> Add shadow tiddlers to menugraph.\n <<option chkMenugraphTags>> Add tags to menugraph.\n <<option chkMenugraphDates>> Add dates to menugraph.\n <<option chkMenugraphModifiers>> Add modifiers to menugraph.";
}
//Default xml file for menu hypergraph and saving generated file.
config.options.txtHypergraphXMLfile="tiddlerMap.xml";
//Default main menu hypergraph applet
config.shadowTiddlers.menuGraph="<html><div><applet class='sitemap' align='baseline' code='hypergraph.applications.hexplorer.HExplorerApplet.class' name = 'mainMenuApplet' archive='hyperapplet-0.6.3.jar' width='900' height='200'> <param name='file' value='"+config.options.txtHypergraphXMLfile+"'></applet></div></html>";

config.macros.hypergraph = {
 applets:{
 mainMenuApplet:"mainMenuApplet", 
 demoApplet1:"demoApplet",
 demoApplet2:"menuApplet",
 demoApplet3:"orgApplet",
 demoApplet4:"hyperApplet"
 },
 GraphXMLPath:"GraphXML.dtd", 
 HypergraphJar:{path:"hyperapplet-0.6.3.jar",width:900, height:200,tiddler:"DemoDisplayHypergraphXML"}, 
 label:{centre:"Centre %0", saveXML:"Save XML"}, 
 prompt:{centre:"Centre %0", saveXML:"Save hypergraph XML %0 for current Tiddlywiki"},
 messages:{saveXMLError:"XML error %0- select xml file", appletError:"Applet error %0- ",hypergraphXMLSaved:"Saved xmlgraph file",hypergraphXMLSavedError:"Failed to save xmlgraph file"},
 node:{
 main:{colour:"black",fill:"#d0d0ff"},
 group:{colour:"black",fill:"#eeeeee"},
 child:{colour:"green",fill:"white"},
 tiddler:{colour:"blue",fill:"#c0d0f0",shadow:"#eeeeee"}
 },
 edge:{
 centre:{colour:"blue", lineStyle:"solid"},
 tiddler:{colour:"blue", lineStyle:"dashed",shadowcolour:"#d0d0ff"}
 }
}
config.macros.hypergraph.handler = function(place,macroName,params){
/*
params[0]: Function.
params[1]: Applet Name.
params[2]: Hypergraph xml file.
*/
/* Check for valid appletname in param[1]*/
 var applet=null;
 var prompt=null;
 var label=null;

 if ((params[1]==this.applets.demoApplet1)||(params[1]==this.applets.demoApplet2)||(params[1]==this.applets.demoApplet3)||(params[1]==this.applets.demoApplet4)){
 applet=params[1];
 } else {
 applet=this.applets.mainMenuApplet;
 }
/* Execute instruction in param[0]*/
 switch (params[0]) {
 case "centre" :
 prompt = this.prompt.centre.format([applet]);
 label = this.label.centre.format([applet]);
 createTiddlyButton(place,label,prompt,function(){centreTree(applet); return false;});
 break;

 case "saveXML" :
 if(!readOnly) {
 prompt = this.prompt.saveXML.format([applet]);
 label = this.label.saveXML.format([applet]);
 createTiddlyButton(place,label,prompt,function(){saveHypergraph(); return false;});
 }
 break;

 case "displayXML" :
//Work in progress.
 var file=params[2];
 if (file) {
 var text="<html><div><applet class='sitemap' align='baseline' code='hypergraph.applications.hexplorer.HExplorerApplet.class' name = '"+ applet +"' archive='"+ config.macros.hypergraph.HypergraphJar.path +"' width='"+ config.macros.hypergraph.HypergraphJar.width +"' height='"+ config.macros.hypergraph.HypergraphJar.height +"'> <param name='file' value='"+ file +"'></applet></div></html>";
 var newTitle = config.macros.hypergraph.HypergraphJar.tiddler;
 //createTiddlyLink(createTiddlyElement(place,"span",null,null,text),newTitle,true); 
 story.displayTiddler(null,newTitle);
 /*
 //grab the new Tiddlers text edit box
 var tiddlerTextArea = getTiddlerEditField(newTitle,"text");
 //Stuff template info into newly created tiddler
 tiddlerTextArea.value=text;
 //story.focusTiddler(newTitle,"text");
 */
 } else {
 displayMessage(this.messages.saveXMLError.format([applet]));
 }
 break;

 default :
 var graphInfo = null;
 graphInfo = showGraphInfo(applet);
 createTiddlyElement(place,"span",null,null,graphInfo);
 //createTiddlyLink(createTiddlyElement(place,"span",null,null,graphInfo),"Test",true); 
 }

//Helper functions
function valueInDateArray(dateArray,value){
 var key = -1;
 if (!(dateArray==null || dateArray==undefined)){
 for(var i=0;i<dateArray.length;i++){
 if(dateArray[i][0]==value){
 key = i;
 break;
 }
 if(key>-1)
 break;
 }
 }
 return key;
 }

//Helper functions for tiddlers.
function getModifiers(){
 var results = [];
 var tiddlers = store.getTiddlers("modifier","excludeLists");
 for(var i=0; i<tiddlers.length; i++){
 var modifier = tiddlers[i].modifier;
 var f = false;
 for(var j=0; j<results.length; j++){
 if(results[j]==modifier){
 f = true;
 break;
 }
 }
 if(!f)
 results.push(modifier);
 }
 results.sort(function (a,b) {if(a.toLowerCase() == b.toLowerCase()) return(0); else return (a.toLowerCase() < b.toLowerCase()) ? -1 : +1; });
 return results;
}

function getTimelineArray(){
 var field = "modified";
 var tiddlers = store.getTiddlers(field);
 var dates=[];
 for(var i=0; i<tiddlers.length; i++){
 var tiddler = tiddlers[i];
 var theDate = tiddler[field].convertToYYYYMMDDHHMM().substr(0,8);
 var theDay = tiddler[field].convertToYYYYMMDDHHMM().substr(6,2);
 var theMonth = tiddler[field].convertToYYYYMMDDHHMM().substr(4,2);
 var theYear = tiddler[field].convertToYYYYMMDDHHMM().substr(0,4);
 var yearKey=-1;
 var monthKey=-1;
 var dayKey=-1;
 yearKey=valueInDateArray(dates,theYear);
 if (yearKey==-1){
 dates.push(new Array(theYear,new Array()));
 yearKey = dates.length-1;
 }
 monthKey=valueInDateArray(dates[yearKey][1],theMonth);
 if (monthKey==-1){
 dates[yearKey][1].push(new Array(theMonth,new Array()));
 monthKey = dates[yearKey][1].length-1;
 }
 dayKey=valueInDateArray(dates[yearKey][1][monthKey][1],theDay);
 if (dayKey==-1){
 dates[yearKey][1][monthKey][1].push(new Array(theDay,new Array()));
 dayKey = dates[yearKey][1][monthKey][1].length-1;
 }
 dates[yearKey][1][monthKey][1][dayKey][1].push(tiddler.title); 
 }
 return dates;
}

function getXMLFilePath () {
 var originalPath = document.location.toString();
 // 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;
 var finalPath;
 if(originalPath.charAt(9) == ":"){ // pc local file
 localPath = unescape(originalPath.substr(8)).replace(new RegExp("/","g"),"\\");
 finalPath = localPath.substr(0,localPath.lastIndexOf("\\")) + "\\";
 }else if(originalPath.indexOf("file://///") == 0){ // FireFox pc network file
 localPath = "\\\\" + unescape(originalPath.substr(10)).replace(new RegExp("/","g"),"\\");
 finalPath = localPath.substr(0,localPath.lastIndexOf("\\"))+ "\\";
 }else if(originalPath.indexOf("file:///") == 0) {// mac/unix local file
 localPath = unescape(originalPath.substr(7));
 finalPath = localPath.substr(0,localPath.lastIndexOf("/"))+ "/";
 }else if(originalPath.indexOf("file:/") == 0){ // mac/unix local file
 localPath = unescape(originalPath.substr(5));
 finalPath = localPath.substr(0,localPath.lastIndexOf("/"))+ "/";
 }else{ // pc network file
 localPath = "\\\\" + unescape(originalPath.substr(7)).replace(new RegExp("/","g"),"\\");
 finalPath = localPath.substr(0,localPath.lastIndexOf("\\"))+ "\\";
 }
 return finalPath;
}

//Helper functions for hypergraph object.
function showGraphInfo(appletName){
 try {
 var graphApplet = document.applets[appletName];
 var graph = graphApplet.getGraphPanel().getGraph();
 return "Graph " + appletName + ": has " + graph.getNodes().size() + " nodes and " + graph.getEdges().size() + " edges." 
 }catch (exception) {
 displayMessage(config.macros.hypergraph.messages.appletError.format([applet]) + exception.message);
 }
}

 function centreTree(appletName){
 try {
 var graphApplet = document.applets[appletName];
 var graphPanel = graphApplet.getGraphPanel();
 var graph = graphPanel.getGraph();
 var tree = graph.getSpanningTree();
 var attrManager = tree.getAttributeManager();
 var root = attrManager.getAttribute(attrManager.GRAPH_ROOT, tree);
 graphPanel.centerNode(root);
 }catch (exception) {
 displayMessage(config.macros.hypergraph.messages.appletError.format([applet])+exception.message);
 }
 }

 function saveHypergraph() {
 var localPath = getXMLFilePath();
 var xmlGraphPath = localPath + config.options.txtHypergraphXMLfile;
 var xmlGraphSave = saveFile(xmlGraphPath,convertUnicodeToUTF8(generateHypergraphXML()));
 if(xmlGraphSave)
 displayMessage(config.macros.hypergraph.messages.hypergraphXMLSaved,xmlGraphPath);
 else
 alert(this.messages.hypergraphXMLSavedError);
 }

function generateHypergraphXML(){
 var hyperGraph = [];
 var d = new Date();
 var siteUrl = store.getTiddlerText("SiteUrl",null);
 // Assemble the header
 hyperGraph.push("<?xml version='1.0'?>");
 hyperGraph.push("<!DOCTYPE GraphXML SYSTEM '"+ config.macros.hypergraph.GraphXMLPath +"'>");
 hyperGraph.push("<GraphXML xmlns:xlink='http://www.w3.org/1999/xlink/namespace/'>");
 hyperGraph.push("<graph id='tiddlymap' version='"+ version.extensions._HyperGraph.major + "." + version.extensions._HyperGraph.minor + "." + version.extensions._HyperGraph.revision+"'>");
 hyperGraph.push("<style>");
 hyperGraph.push("<!-- Node styles -->");
 hyperGraph.push("<line tag='node' class='main' colour='"+ config.macros.hypergraph.node.main.colour +"'/>");
 hyperGraph.push("<line tag='node' class='group' colour='"+ config.macros.hypergraph.node.group.colour +"'/>");
 hyperGraph.push("<line tag='node' class='child' colour='"+ config.macros.hypergraph.node.child.colour +"'/>");
 hyperGraph.push("<line tag='node' class='tiddler' colour='"+ config.macros.hypergraph.node.tiddler.colour +"'/>");
 hyperGraph.push("<!-- Edge styles -->");
 hyperGraph.push("<line tag='edge' class='centre' colour='"+ config.macros.hypergraph.edge.centre.colour +"'/>");
 hyperGraph.push("<line tag='edge' class='tiddler' colour='"+ config.macros.hypergraph.edge.tiddler.colour +"' linestyle='"+ config.macros.hypergraph.edge.tiddler.lineStyle +"'/>");
 hyperGraph.push("<line tag='edge' class='shadowed' colour='"+ config.macros.hypergraph.edge.tiddler.shadowcolour+"' linestyle='"+ config.macros.hypergraph.edge.tiddler.lineStyle +"'/>");
 hyperGraph.push("</style>");
 //Root node
 hyperGraph.push("<node class='main' name='home'><label>Home</label><dataref><ref xlink:href='" + siteUrl +"'/></dataref><style><fill colour='#e0e0ff'/></style></node>");
 hyperGraph.push("<!-- Groups nodes and edges-->");

 var groupName=null;
 var groupLabel=null;
 if (config.options.chkMenugraphTiddlers) {
 groupName="tiddlers";
 groupLabel="Tiddlers";
 // generate tiddler nodes and edges.
 hyperGraph.push("<node class='group' name='"+groupName+"'><label>"+groupLabel+"</label><style><fill colour='"+ config.macros.hypergraph.node.group.fill +"'/></style></node><edge source='home' target='"+groupName+"'/>");
 //hyperGraph.push(generateHypergraphSections ("group",[groupName,groupLabel]);
 var tiddlers = store.getTiddlers("title","excludeLists");
 for (var i=0; i<tiddlers.length; i++) {
 hyperGraph.push("<node class='tiddler' name='"+tiddlers[i].title+"'><label>"+tiddlers[i].title+"</label><dataref><ref xlink:href='javascript:story.displayTiddler(null,\""+tiddlers[i].title+"\")' xlink:title='"+tiddlers[i].title+"'/></dataref><style><fill colour='"+ config.macros.hypergraph.node.tiddler.fill +"'/></style></node><edge class='tiddler' source='"+ groupName +"' target='"+tiddlers[i].title+"'/>");
 }
 }

 if (config.options.chkMenugraphShadowed) {
 groupName="shadowtiddlers";
 groupLabel="Shadow Tiddlers";
 // generate shadow tiddler nodes and edges.
 hyperGraph.push("<node class='group' name='"+groupName+"'><label>"+groupLabel+"</label><style><fill colour='"+ config.macros.hypergraph.node.group.fill +"'/></style></node><edge source='home' target='"+groupName+"'/>");
 //hyperGraph.push(generateHypergraphSections ("group",[groupName,groupLabel]);
 var tiddlers = store.getShadowed();
 for (var i=0; i<tiddlers.length; i++) {
 hyperGraph.push("<node class='tiddler' name='"+tiddlers[i]+"'><label>"+tiddlers[i]+"</label><dataref><ref xlink:href='javascript:story.displayTiddler(null,\""+tiddlers[i]+"\")' xlink:title='"+tiddlers[i]+"'/></dataref><style><fill colour='"+ config.macros.hypergraph.node.tiddler.shadow +"'/></style></node><edge class='shadowed' source='"+ groupName +"' target='"+tiddlers[i]+"'/>");
 }
 }

 if (config.options.chkMenugraphTags) {
 groupName="tags";
 groupLabel="Tags";
 // generate tag nodes and edges.
 hyperGraph.push("<node class='group' name='"+groupName+"'><label>"+groupLabel+"</label><style><fill colour='"+ config.macros.hypergraph.node.group.fill +"'/></style></node><edge source='home' target='"+groupName+"'/>");
 //hyperGraph.push(generateHypergraphSections ("group",[groupName,groupLabel]);
 var tags = store.getTags();
 for (var i=0; i<tags.length; i++) {
 hyperGraph.push("<node class='child' name='"+tags[i][0]+"'><label>"+tags[i]+"</label><dataref><ref xlink:href='javascript:story.displayTiddler(null,\""+tags[i][0]+"\")' xlink:title='"+tags[i][0]+"'/></dataref></node><edge class='centre' source='"+ groupName +"' target='"+tags[i][0]+"'/>");
 }
 }

 if (config.options.chkMenugraphDates) {
 groupName="dates";
 groupLabel="Dates";
 // generate date nodes and edges.
 hyperGraph.push("<node class='group' name='"+groupName+"'><label>"+groupLabel+"</label><style><fill colour='"+ config.macros.hypergraph.node.group.fill +"'/></style></node><edge source='home' target='"+groupName+"'/>");
 //hyperGraph.push(generateHypergraphSections ("group",[groupName,groupLabel]);
 var dated= getTimelineArray();
 for (var years=0; years<dated.length; years++) {
 //create year node and edge.
 currentYear = dated[years][0];
 hyperGraph.push("<node class='group' name='"+currentYear+"'><label>"+currentYear+"</label><style><fill colour='"+ config.macros.hypergraph.node.group.fill +"'/></style></node><edge source='"+groupName+"' target='"+currentYear+"'/>");
 for (var months=0; months<dated[years][1].length; months++) {
 //create month node and edge.
 currentMonth = dated[years][1][months][0];
 hyperGraph.push("<node class='group' name='"+currentYear+currentMonth+"'><label>"+currentMonth+"</label><style><fill colour='"+ config.macros.hypergraph.node.group.fill +"'/></style></node><edge source='"+currentYear+"' target='"+currentYear+currentMonth+"'/>");
 for (var days=0; days<dated[years][1][months][1].length; days++) {
 //create day node and edge.
 currentDay = dated[years][1][months][1][days][0]
 hyperGraph.push("<node class='group' name='"+currentYear+currentMonth+currentDay+"'><label>"+currentDay+"</label><style><fill colour='"+ config.macros.hypergraph.node.group.fill +"'/></style></node><edge source='"+currentYear+currentMonth+"' target='"+currentYear+currentMonth+currentDay+"'/>");
 for (var tiddlers=0; tiddlers<dated[years][1][months][1][days][1].length; tiddlers++) {
 //create tiddler node and edge.
 currentTiddler = dated[years][1][months][1][days][1][tiddlers];
 hyperGraph.push("<node class='tiddler' name='dateRef"+currentTiddler+"' isMetanode='true'><label>"+currentTiddler+"</label><dataref><ref xlink:href='javascript:story.displayTiddler(null,\""+currentTiddler+"\")' xlink:title='"+currentTiddler+"'/></dataref></node><edge class='tiddler' source='"+currentYear+currentMonth+currentDay+"' target='dateRef"+currentTiddler+"'/>");
 }
 }
 }
 }
 }

 if (config.options.chkMenugraphModifiers) {
 groupName="modified";
 groupLabel="ModifiedBy";
 // generate tiddler nodes and edges.
 hyperGraph.push("<node class='group' name='"+groupName+"'><label>"+groupLabel+"</label><style><fill colour='"+ config.macros.hypergraph.node.group.fill +"'/></style></node><edge source='home' target='"+groupName+"'/>");
 //hyperGraph.push(generateHypergraphSections ("group",[groupName,groupLabel]);
 var modifiers= getModifiers();
 for (var i=0; i<modifiers.length; i++) {
 hyperGraph.push("<node class='child' name='"+modifiers[i]+"'><label>"+modifiers[i]+"</label><dataref><ref xlink:href='javascript:story.displayTiddler(null,\""+modifiers[i]+"\")' xlink:title='"+modifiers[i]+"'/></dataref></node><edge class='centre' source='"+ groupName +"' target='"+modifiers[i]+"'/>");
 }
 }

 if (config.options.chkMenugraphStructured) {
 groupName="structured";
 groupLabel="Structured";
 // generate structured tiddler nodes and edges. For TWRDF, not used at the moment.
 //hyperGraph.push(generateHypergraphSections ("group",[groupName,groupLabel]);
 }

 if (config.options.chkMenugraphShadowed && config.options.chkMenugraphTags) {
 //Metanode
 hyperGraph.push("<node class='child' name='refTabTags1' isMetanode='true'><label>Goto TabTags</label><dataref><ref xlink:href='#TabTags'/></dataref><style><fill xlink:href='point.gif'/></style></node><edge class='centre' source='tags' target='refTabTags1' isDirected='true'/>");
 }
 // Close open tags
 hyperGraph.push("</graph>");
 hyperGraph.push("</GraphXML>");

 // Output xml.
 return hyperGraph.join("\n");
}

function generateHypergraphSections (section, params){
//Work in progress.
 switch (section) {
 case "group": 
 var groupName = params[0];
 var groupLabel = params[1];
 return "<node class='group' name='"+groupName+"'><label>"+groupLabel+"</label><style><fill colour='"+ config.macros.hypergraph.node.group.fill +"'/></style></node><edge source='home' target='"+groupName+"'/>";
 }
}
}
//}}}
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!Hypontizing hypnotist
<script> return "<<tiddler [[Hypontizing hypnotist##Overview]]>>" </script>

!Objectives

!Timing

!Audience
Group

!Materials
*

!Procedure

!Debriefing


/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.agilitrix.com/2010/05/team-and-pair-games-for-building-collaboration/
<data>{"abstract":"Im Seminar kommt es immer wieder vor, dass Paare oder [[Gruppen|Gruppenpuzzle]] gebildet werden. Das kann man auch spielerisch und anregend gestalten mit dieser kleinen [[Wahrnehmungsübung|Wahrnehmung]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://u.jimdo.com/www7/o/s1b882f969338ca9d/img/i0fde3c3b01c10d69/1279217010/std/gut-hinh%C3%83%C2%B6ren-es-gibt-einen-podcast.jpg>> /%
http://www.krusenstern.ch/wp-content/uploads/2008/10/radio-on-air-symbol.jpg>> %/
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Hör gut hin!","abstract") </script>

!Hör gut hin!
<script> return "<<tiddler [[Hör gut hin!##Overview]]>>" </script> 

!Objectives
* Bildung von Arbeitsgruppen

!Timing
5 min

!Audience
Group

!Materials
* Tablett mit Filmdöschen mit unterschiedlichen Dingen: Sand, Steinchen. Stöckchen, Zucker, Reis u.ä.

!Procedure
Dazu füllt der Trainer je zwei kleine Filmdöschen mit unterschiedlichen Dingen: Sand, Steinchen. Stöckchen, Zucker, Reis u.ä. 
Die Filmdöschen stehen auf einem Tablett, jeder nimmt sich eines, schüttelt sie, um den Klang zu erkennen. Dann gehen alle auf die Suche nach dem Teilnehmer, der den gleichen Klang in seiner Filmdose erkannt hat.

Natürlich kann man auf diese Weise auch Dreier- oder ~Vierer-Gruppen zusammenstellen. Wichtig ist, dass die Dosen auch gleichmäßig gefüllt sind.

!Debriefing

!Quelle
[[Gudrun F. Wallenwein: Spiele: Der Punkt auf dem i, Beltz, 5. Aufl. 2003 S.162.| http://www.amazon.de/gp/product/3407364075?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3407364075]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Unesco, freie Lernressourcen| www.opentrainingplatform.org]]
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/H%F6r+gut+hin%21+%28jt%29.html]]
<data>{"abstract":"[[Ich für dich]], wenn zwei sich streiten, stecken sie meist so tief in ihrer eigenen emotionalen Betroffenheit, dass sie kaum einen Blick für die Situation des anderen haben. Diese Übung hilft, sich trotzdem in den Kontrahenten zu versetzen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title https://www.imagebroker.net/previews/06/16/616591.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Ich für dich","abstract") </script>

!Ich für dich
<script> return "<<tiddler [[Ich für dich##Overview]]>>" </script>
Eine Übung aus dem "Werkzeugkasten" der [[Mediation]]. Die Beteiligten an einer [[Konfliktsituation|Konflikt]] besprechen einzelne Konfliktthemen. 

!Objectives
* In Gefühle des anderen hineinversetzen
* Konfliktlösung

!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
# Der Mediator fordert alle auf, die Gefühle des Kontrahenten genau zu beobachten. 
# Wenn z.B. A glaubt, dass B sich ärgert, soll er direkt rufen: //"Ich für B: Die letzte Bemerkung ärgert mich besonders. 
# Stimmt das, B?"// Dann antwortet B nur mit //"Ja"// oder //"Nein"//.
# Jeder darf zu jeder Zeit //"Ich für dich"// rufen. 

!Debriefing
Wichtig ist, dass die Äußerungen nicht bewertet oder kommentiert werden. Es sind Eindrücke, und als solche sollen sie auch stehen bleiben.

!Quelle
Bernd Wittschier: Übungen gegen Konflikte, wirtschaft & weiterbildung 6/2002 S.28.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
/***
|Name|IconMacroPlugin|
|Author|[[SaqImtiaz]]|
|Source|http://tw.lewcid.org/#IconMacro|
|Version|beta 1.1|
|Requires|~TW2.x|
|Description:|Replace macro buttons with icons|
***/
//{{{
// version: beta 1.1
//replace macro buttons with icons
// http://tw.lewcid.org/#IconMacro
// params[0] = image location
//params[1] = image width
//params[2] = image height
//params[3] = image title (optional)
config.macros.icon={};
config.macros.icon.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
               if (place.lastChild.tagName!="BR")
                     {
                     var tempTitle = place.lastChild.firstChild.title;
                     removeChildren(place.lastChild);
                     place.lastChild.className = "imgLink";
                     var img = createTiddlyElement(place.lastChild,"img");
                     img.src = params[0];
                     if (params[3])
                         img.title = params[3];
                     img.width= params[1];
                     img.height =params[2];
                     }
};

//use icons for toolbar commands.
// used in view template like:
// <span macro='commandIcon jump jump.bmp'></span>
//params[0] = command name
//params[1] = image location
config.macros.commandIcon={};
config.macros.commandIcon.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{if(!e) var e = window.event;
    var img = createTiddlyElement(place,"img",null,"toolbarImg");
    img.src = params[1];
    img.onclick = function(){config.commands[params[0]].handler(e,place,story.findContainingTiddler(place).getAttribute("tiddler"));};
    img.title = config.commands[params[0]].tooltip;
}

setStylesheet(".toolbarImg {vertical-align: middle; cursor:pointer;}\n","commandIconStyles"); 

//}}}
/***
|Name|ImageMapPlugin|
|Source|http://www.TiddlyTools.com/#ImageMapPlugin|
|Documentation|http://www.TiddlyTools.com/#ImageMapPluginInfo|
|Version|1.2.2|
|Author|[[EricShulman]]|
|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|apply image maps ('hotspots') with links to tiddlers|
!!!!!Documentation
>see [[ImageMapPluginInfo]]
!!!!!Revisions
<<<
2009.05.27 [1.2.2] improved autoscroll for {{{<<mapMaker>>}}} textarea
2009.05.14 [1.2.1] added cursor changes
see [[ImageMapPluginInfo]] for additional revision details
2009.05.09 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.ImageMapPlugin= {major: 1, minor: 2, revision: 2, date: new Date(2009,5,27)};
//}}}
//{{{
config.macros.imageMap = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		// image element must immediately precede macro
		var img=place.lastChild; if (!img||img.nodeName!='IMG') return;
		var map=params[0]; var items=store.getTiddlerText(map,'').split('\n----\n'); if (!items) return;
		var out=['<MAP NAME="'+map+'">'];
		var fmt='<AREA SHAPE="POLY" TIDDLER="%0" COORDS="%1" TITLE="%2" ALT="%2" ONCLICK="%3" STYLE="%4">';
		var click="story.displayTiddler(story.findContainingTiddler(this),this.getAttribute('tiddler'));";
		var style='cursor:pointer';
		for (var i=0; i<items.length; i++) {
			var lines=items[i].split('\n'); var tid=lines.shift(); var coords=lines.join('');
			var tip=store.tiddlerExists(tid)?store.getTiddler(tid).getSubtitle():tid;
			out.push(fmt.format([tid,coords,tip,click,style]));
		}
		out.push('</MAP>');
		createTiddlyElement(place,'span').innerHTML=out.join('');
		img.setAttribute('isMap',true);
		img.setAttribute('useMap','#'+map);
		img.style.border=0;
	}
}
//}}}
//{{{
config.macros.mapMaker= {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var img=place.lastChild; // image element must immediately precede macro
		if (!img||img.nodeName!='IMG') return;
		img.onmousemove=function(ev){ ev=ev||window.event;
			var mX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
			var mY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
			var ta=this.nextSibling.getElementsByTagName('textarea')[0];
			var lines=ta.value.split('\n'); var last=lines.length?lines.length-1:0;
			var vals=lines[last].split(','); vals.pop(); vals.pop(); lines[last]=vals.join(',');
			lines[last]+=(lines[last].length?',':'')+(mX-findPosX(this))+','+(mY-findPosY(this));
			ta.value=lines.join('\n');
			ta.scrollTop=ta.scrollHeight-ta.offsetHeight+this.emH*2;
			ta.scrollLeft=lines[last].length*this.emW-ta.offsetWidth;
			ta.focus();
		};
		img.onmouseout=function(ev){ ev=ev||window.event;
			var ta=this.nextSibling.getElementsByTagName('textarea')[0];
			var lines=ta.value.split('\n'); var last=lines.length?lines.length-1:0;
			var vals=lines[last].split(','); vals.pop(); vals.pop(); lines[last]=vals.join(',');
			ta.value=lines.join('\n');
			ta.scrollTop=ta.scrollHeight-ta.offsetHeight+this.emH*2;
			ta.scrollLeft=lines[last].length*this.emW-ta.offsetWidth;
		};
		img.onmouseover=img.onclick=function(ev) { ev=ev||window.event;
			var mX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
			var mY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
			var ta=this.nextSibling.getElementsByTagName('textarea')[0];
			ta.value+=(ta.value.length?',':'')+(mX-findPosX(this))+','+(mY-findPosY(this));
			var lines=ta.value.split('\n'); var last=lines.length?lines.length-1:0;
			ta.scrollTop=ta.scrollHeight-ta.offsetHeight+this.emH*2;
			ta.scrollLeft=lines[last].length*this.emW-ta.offsetWidth;
			ta.focus();
		}
		img.style.border='1px solid #999';
		img.style.cursor='crosshair';
		var map=params[0]||'';
		var s=createTiddlyElement(place,'div');
		s.style.height=s.style.width='1em';
		img.emW=s.offsetWidth; img.emH=s.offsetHeight; // get font metrics (for auto scrolling)
		s.style.height=s.style.width='';
		s.innerHTML+='<div class="toolbar">'
			+'<a href="javascript:;" '
			+'onclick="config.macros.mapMaker.load(this.parentNode.nextSibling)">load map</a>'
			+'<a href="javascript:;" '
			+'onclick="config.macros.mapMaker.save(this.parentNode.nextSibling)">save map</a>'
			+'</div>'
			+'<textarea rows="8" style="display:block;clear:both;width:100%;" tiddler="'+map+'">'
			+store.getTiddlerText(map,'')
			+'</textarea>';
	},
	load: function(ta) {
		var tid=prompt('Enter a tiddler title:',ta.getAttribute('tiddler')||'');
		if (!tid||!tid.length) return; // cancelled by user
		ta.value=store.getTiddlerText(tid,''); ta.setAttribute('tiddler',tid);
		return false;
	},
	save: function(ta) {
		var tid=prompt('Enter a tiddler title:',ta.getAttribute('tiddler')||'NewImageMap');
		while (tid && tid.length && store.tiddlerExists(tid)) {
			if(confirm(config.messages.overwriteWarning.format([tid]))) break;
			var tid=prompt('Enter a different tiddler title:',tid);
		}
		if (!tid||!tid.length) return; // cancelled by user
		store.saveTiddler(tid,tid,ta.value,config.options.txtUserName,new Date(),['imageMap'],{});
		story.displayTiddler(null,tid);
		displayMessage('image map saved to: '+tid);
		ta.setAttribute('tiddler',tid);
		return false;
	}
}
//}}}
/***
|Name|ImageSizePlugin|
|Source|http://www.TiddlyTools.com/#ImageSizePlugin|
|Version|1.2.2|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|adds support for resizing images|
This plugin adds optional syntax to scale an image to a specified width and height and/or interactively resize the image with the mouse.
!!!!!Usage
<<<
The extended image syntax is:
{{{
[img(w+,h+)[...][...]]
}}}
where ''(w,h)'' indicates the desired width and height (in CSS units, e.g., px, em, cm, in, or %). Use ''auto'' (or a blank value) for either dimension to scale that dimension proportionally (i.e., maintain the aspect ratio). You can also calculate a CSS value 'on-the-fly' by using a //javascript expression// enclosed between """{{""" and """}}""". Appending a plus sign (+) to a dimension enables interactive resizing in that dimension (by dragging the mouse inside the image). Use ~SHIFT-click to show the full-sized (un-scaled) image. Use ~CTRL-click to restore the starting size (either scaled or full-sized).
<<<
!!!!!Examples
<<<
{{{
[img(100px+,75px+)[images/meow2.jpg]]
}}}
[img(100px+,75px+)[images/meow2.jpg]]
{{{
[<img(34%+,+)[images/meow.gif]]
[<img(21% ,+)[images/meow.gif]]
[<img(13%+, )[images/meow.gif]]
[<img( 8%+, )[images/meow.gif]]
[<img( 5% , )[images/meow.gif]]
[<img( 3% , )[images/meow.gif]]
[<img( 2% , )[images/meow.gif]]
[img(  1%+,+)[images/meow.gif]]
}}}
[<img(34%+,+)[images/meow.gif]]
[<img(21% ,+)[images/meow.gif]]
[<img(13%+, )[images/meow.gif]]
[<img( 8%+, )[images/meow.gif]]
[<img( 5% , )[images/meow.gif]]
[<img( 3% , )[images/meow.gif]]
[<img( 2% , )[images/meow.gif]]
[img(  1%+,+)[images/meow.gif]]
{{tagClear{
}}}
<<<
!!!!!Revisions
<<<
2010.07.24 [1.2.2] moved tip/dragtip text to config.formatterHelpers.imageSize object to enable customization
2009.02.24 [1.2.1] cleanup width/height regexp, use '+' suffix for resizing
2009.02.22 [1.2.0] added stretchable images
2008.01.19 [1.1.0] added evaluated width/height values
2008.01.18 [1.0.1] regexp for "(width,height)" now passes all CSS values to browser for validation
2008.01.17 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.ImageSizePlugin= {major: 1, minor: 2, revision: 2, date: new Date(2010,7,24)};
//}}}
//{{{
var f=config.formatters[config.formatters.findByField("name","image")];
f.match="\\[[<>]?[Ii][Mm][Gg](?:\\([^,]*,[^\\)]*\\))?\\[";
f.lookaheadRegExp=/\[([<]?)(>?)[Ii][Mm][Gg](?:\(([^,]*),([^\)]*)\))?\[(?:([^\|\]]+)\|)?([^\[\]\|]+)\](?:\[([^\]]*)\])?\]/mg;
f.handler=function(w) {
	this.lookaheadRegExp.lastIndex = w.matchStart;
	var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
	if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
		var floatLeft=lookaheadMatch[1];
		var floatRight=lookaheadMatch[2];
		var width=lookaheadMatch[3];
		var height=lookaheadMatch[4];
		var tooltip=lookaheadMatch[5];
		var src=lookaheadMatch[6];
		var link=lookaheadMatch[7];

		// Simple bracketted link
		var e = w.output;
		if(link) { // LINKED IMAGE
			if (config.formatterHelpers.isExternalLink(link)) {
				if (config.macros.attach && config.macros.attach.isAttachment(link)) {
					// see [[AttachFilePluginFormatters]]
					e = createExternalLink(w.output,link);
					e.href=config.macros.attach.getAttachment(link);
					e.title = config.macros.attach.linkTooltip + link;
				} else
					e = createExternalLink(w.output,link);
			} else 
				e = createTiddlyLink(w.output,link,false,null,w.isStatic);
			addClass(e,"imageLink");
		}

		var img = createTiddlyElement(e,"img");
		if(floatLeft) img.align="left"; else if(floatRight) img.align="right";
		if(width||height) {
			var x=width.trim(); var y=height.trim();
			var stretchW=(x.substr(x.length-1,1)=='+'); if (stretchW) x=x.substr(0,x.length-1);
			var stretchH=(y.substr(y.length-1,1)=='+'); if (stretchH) y=y.substr(0,y.length-1);
			if (x.substr(0,2)=="{{")
				{ try{x=eval(x.substr(2,x.length-4))} catch(e){displayMessage(e.description||e.toString())} }
			if (y.substr(0,2)=="{{")
				{ try{y=eval(y.substr(2,y.length-4))} catch(e){displayMessage(e.description||e.toString())} }
			img.style.width=x.trim(); img.style.height=y.trim();
			config.formatterHelpers.addStretchHandlers(img,stretchW,stretchH);
		}
		if(tooltip) img.title = tooltip;

		// GET IMAGE SOURCE
		if (config.macros.attach && config.macros.attach.isAttachment(src))
			src=config.macros.attach.getAttachment(src); // see [[AttachFilePluginFormatters]]
		else if (config.formatterHelpers.resolvePath) { // see [[ImagePathPlugin]]
			if (config.browser.isIE || config.browser.isSafari) {
				img.onerror=(function(){
					this.src=config.formatterHelpers.resolvePath(this.src,false);
					return false;
				});
			} else
				src=config.formatterHelpers.resolvePath(src,true);
		}
		img.src=src;
		w.nextMatch = this.lookaheadRegExp.lastIndex;
	}
}

config.formatterHelpers.imageSize={
	tip: 'SHIFT-CLICK=show full size, CTRL-CLICK=restore initial size',
	dragtip: 'DRAG=stretch/shrink, '
}

config.formatterHelpers.addStretchHandlers=function(e,stretchW,stretchH) {
	e.title=((stretchW||stretchH)?this.imageSize.dragtip:'')+this.imageSize.tip;
	e.statusMsg='width=%0, height=%1';
	e.style.cursor='move';
	e.originalW=e.style.width;
	e.originalH=e.style.height;
	e.minW=Math.max(e.offsetWidth/20,10);
	e.minH=Math.max(e.offsetHeight/20,10);
	e.stretchW=stretchW;
	e.stretchH=stretchH;
	e.onmousedown=function(ev) { var ev=ev||window.event;
		this.sizing=true;
		this.startX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
		this.startY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
		this.startW=this.offsetWidth;
		this.startH=this.offsetHeight;
		return false;
	};
	e.onmousemove=function(ev) { var ev=ev||window.event;
		if (this.sizing) {
			var s=this.style;
			var currX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
			var currY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
			var newW=(currX-this.offsetLeft)/(this.startX-this.offsetLeft)*this.startW;
			var newH=(currY-this.offsetTop )/(this.startY-this.offsetTop )*this.startH;
			if (this.stretchW) s.width =Math.floor(Math.max(newW,this.minW))+'px';
			if (this.stretchH) s.height=Math.floor(Math.max(newH,this.minH))+'px';
			clearMessage(); displayMessage(this.statusMsg.format([s.width,s.height]));
		}
		return false;
	};
	e.onmouseup=function(ev) { var ev=ev||window.event;
		if (ev.shiftKey) { this.style.width=this.style.height=''; }
		if (ev.ctrlKey)  { this.style.width=this.originalW; this.style.height=this.originalH; }
		this.sizing=false;
		clearMessage();
		return false;
	};
	e.onmouseout=function(ev) { var ev=ev||window.event;
		this.sizing=false;
		clearMessage();
		return false;
	};
}
//}}}
/***
|Name|ImportTiddlersPlugin|
|Source|http://www.TiddlyTools.com/#ImportTiddlersPlugin|
|Documentation|http://www.TiddlyTools.com/#ImportTiddlersPluginInfo|
|Version|4.6.2|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|interactive controls for import/export with filtering.|
Combine tiddlers from any two TiddlyWiki documents.  Interactively select and copy tiddlers from another TiddlyWiki source document.  Includes prompting for skip, rename, merge or replace actions when importing tiddlers that match existing titles.  When done, a list of all imported tiddlers is written into [[ImportedTiddlers]].
!!!!!Documentation
<<<
see [[ImportTiddlersPluginInfo]] for details
<<<
!!!!!interactive control panel
<<<
<<importTiddlers inline>>
{{clear{
^^(see also: [[ImportTiddlers]] shadow tiddler)^^}}}
<<<
!!!!!Revisions
<<<
2011.02.14 4.6.2 fix OSX error: use picker.file.path
2009.10.10 4.6.1 in createImportPanel, Use {{{window.Components}}} instead of {{{config.browser.isGecko}}} to avoid applying FF3 'file browse' fixup in Chrome.
2009.10.06 4.6.0 added createTiddlerFromFile (import text files)
|please see [[ImportTiddlersPluginInfo]] for additional revision details|
2005.07.20 1.0.0 Initial Release
<<<
!!!!!Code
***/
//{{{
version.extensions.ImportTiddlersPlugin= {major: 4, minor: 6, revision: 2, date: new Date(2011,2,14)};

// IE needs explicit global scoping for functions/vars called from browser events
window.onClickImportButton=onClickImportButton;
window.refreshImportList=refreshImportList;

// default cookie/option values
if (!config.options.chkImportReport) config.options.chkImportReport=true;

// default shadow definition
config.shadowTiddlers.ImportTiddlers='<<importTiddlers inline>>';

// use shadow tiddler content in backstage panel
if (config.tasks) config.tasks.importTask.content='<<tiddler ImportTiddlers>>' // TW2.2 or above
//}}}
//{{{
// backward-compatiblity for TW2.0.x and TW1.2.x
if (config.macros.importTiddlers==undefined) config.macros.importTiddlers={};
if (typeof merge=='undefined') {
	function merge(dst,src,preserveExisting) {
		for(var i in src) { if(!preserveExisting || dst[i] === undefined) dst[i] = src[i]; }
		return dst;
	}
}
if (config.browser.isGecko===undefined)
	config.browser.isGecko=(config.userAgent.indexOf('gecko')!=-1);
//}}}
//{{{
merge(config.macros.importTiddlers,{
	$: function(id) { return document.getElementById(id); }, // abbreviation
	label: 'import tiddlers',
	prompt: 'Copy tiddlers from another document',
	openMsg: 'Opening %0',
	openErrMsg: 'Could not open %0 - error=%1',
	readMsg: 'Read %0 bytes from %1',
	foundMsg: 'Found %0 tiddlers in %1',
	filterMsg: "Filtered %0 tiddlers matching '%1'",
	summaryMsg: '%0 tiddler%1 in the list',
	summaryFilteredMsg: '%0 of %1 tiddler%2 in the list',
	plural: 's are',
	single: ' is',
	countMsg: '%0 tiddlers selected for import',
	processedMsg: 'Processed %0 tiddlers',
	importedMsg: 'Imported %0 of %1 tiddlers from %2',
	loadText: 'please load a document...',
	closeText: 'close',
	doneText: 'done',
	startText: 'import',
	stopText: 'stop',
	local: true,		// default to import from local file
	src: '',		// path/filename or URL of document to import (retrieved from SiteUrl)
	proxy: '',		// URL for remote proxy script (retrieved from SiteProxy)
	useProxy: false,	// use specific proxy script in front of remote URL
	inbound: null,		// hash-indexed array of tiddlers from other document
	newTags: '',		// text of tags added to imported tiddlers
	addTags: true,		// add new tags to imported tiddlers
	listsize: 10,		// # of lines to show in imported tiddler list
	importTags: true,	// include tags from remote source document when importing a tiddler
	keepTags: true,		// retain existing tags when replacing a tiddler
	sync: false,		// add 'server' fields to imported tiddlers (for sync function)
	lastFilter: '',		// most recent filter (URL hash) applied
	lastAction: null,	// most recent collision button performed
	index: 0,		// current processing index in import list
	sort: ''		// sort order for imported tiddler listbox
});
//}}}
//{{{
// hijack core macro handler
if (config.macros.importTiddlers.coreHandler==undefined)
	config.macros.importTiddlers.coreHandler=config.macros.importTiddlers.handler;

config.macros.importTiddlers.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	if (!params[0] || params[0].toLowerCase()=='core') { // default to built in
		if (config.macros.importTiddlers.coreHandler)
			config.macros.importTiddlers.coreHandler.apply(this,arguments);
		else 
			createTiddlyButton(place,this.label,this.prompt,onClickImportMenu);
	} else if (params[0]=='link') { // show link to floating panel
		createTiddlyButton(place,params[1]||this.label,params[2]||this.prompt,onClickImportMenu);
	} else if (params[0]=='inline') {// show panel as INLINE tiddler content
		createImportPanel(place);
		this.$('importPanel').style.position='static';
		this.$('importPanel').style.display='block';
	} else if (config.macros.loadTiddlers)
		config.macros.loadTiddlers.handler(place,macroName,params); // any other params: loadtiddlers
}
//}}}
//{{{
// Handle link click to create/show/hide control panel
function onClickImportMenu(e) { var e=e||window.event;
	var parent=resolveTarget(e).parentNode;
	var panel=document.getElementById('importPanel');
	if (panel==undefined || panel.parentNode!=parent) panel=createImportPanel(parent);
	var isOpen=panel.style.display=='block';
	if(config.options.chkAnimate)
		anim.startAnimating(new Slider(panel,!isOpen,false,'none'));
	else
		panel.style.display=isOpen?'none':'block';
	e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); return(false);
}
//}}}
//{{{
// Create control panel: HTML, CSS
function createImportPanel(place) {
	var cmi=config.macros.importTiddlers; // abbrev
	var panel=cmi.$('importPanel');
	if (panel) { panel.parentNode.removeChild(panel); }
	setStylesheet(store.getTiddlerText('ImportTiddlersPlugin##css'),'importTiddlers');
	panel=createTiddlyElement(place,'span','importPanel',null,null)
	panel.innerHTML=store.getTiddlerText('ImportTiddlersPlugin##html');
	refreshImportList();
	if (!cmi.src.length) cmi.src=store.getTiddlerText('SiteUrl')||'';
	cmi.$('importSourceURL').value=cmi.src;
	if (!cmi.proxy.length) cmi.proxy=store.getTiddlerText('SiteProxy')||'SiteProxy';
	cmi.$('importSiteProxy').value=cmi.proxy;
	if (window.Components) { // FF3 FIXUP
		cmi.$('fileImportSource').style.display='none';
		cmi.$('importLocalPanelFix').style.display='block';
	}
	cmi.$('chkSync').checked=cmi.sync;
	cmi.$('chkImportTags').checked=cmi.importTags;
	cmi.$('chkKeepTags').checked=cmi.keepTags;
	cmi.$('chkAddTags').checked=cmi.addTags;
	cmi.$('txtNewTags').value=cmi.newTags;
	cmi.$('txtNewTags').style.display=cmi.addTags?'block':'none';
	cmi.$('chkSync').checked=cmi.sync;
	cmi.$('chkImportReport').checked=config.options.chkImportReport;
	return panel;
}
//}}}
//{{{
// process control interactions
function onClickImportButton(which,event) {
	var cmi=config.macros.importTiddlers; // abbreviation
	var list=cmi.$('importList'); if (!list) return false;
	var thePanel=cmi.$('importPanel');
	var theCollisionPanel=cmi.$('importCollisionPanel');
	var theNewTitle=cmi.$('importNewTitle');
	var count=0;
	switch (which.id)
		{
		case 'importFromFile':	// show local panel
		case 'importFromWeb':	// show HTTP panel
			cmi.local=(which.id=='importFromFile');
			cmi.showPanel('importLocalPanel',cmi.local);
			cmi.showPanel('importHTTPPanel',!cmi.local);
			break;
		case 'importOptions':	// show/hide options panel
			cmi.showPanel('importOptionsPanel',cmi.$('importOptionsPanel').style.display=='none');
			break;
		case 'fileImportSource':
		case 'importLoad':		// load import source into hidden frame
			importReport();		// if an import was in progress, generate a report
			cmi.inbound=null;	// clear the imported tiddler buffer
			refreshImportList();	// reset/resize the listbox
			if (cmi.src=='') break;
			// Load document, read it's DOM and fill the list
			cmi.loadRemoteFile(cmi.src,cmi.filterTiddlerList);
			break;
		case 'importSelectFeed':	// select a pre-defined systemServer feed URL
			var p=Popup.create(which); if (!p) return false;
			var tids=store.getTaggedTiddlers('systemServer');
			if (!tids.length)
				createTiddlyText(createTiddlyElement(p,'li'),'no pre-defined server feeds');
			for (var t=0; t<tids.length; t++) {
				var u=store.getTiddlerSlice(tids[t].title,'URL');
				var d=store.getTiddlerSlice(tids[t].title,'Description');
				if (!d||!d.length) d=store.getTiddlerSlice(tids[t].title,'description');
				if (!d||!d.length) d=u;
				createTiddlyButton(createTiddlyElement(p,'li'),tids[t].title,d,
					function(){
						var u=this.getAttribute('url');
						document.getElementById('importSourceURL').value=u;
						config.macros.importTiddlers.src=u;
						document.getElementById('importLoad').onclick();
					},
					null,null,null,{url:u});
			}
			Popup.show();
			event.cancelBubble = true;
			if (event.stopPropagation) event.stopPropagation();
			return false;
			// create popup with feed list
			// onselect, insert feed URL into input field.
			break;
		case 'importSelectAll':		// select all tiddler list items (i.e., not headings)
			importReport();		// if an import was in progress, generate a report
			for (var t=0,count=0; t < list.options.length; t++) {
				if (list.options[t].value=='') continue;
				list.options[t].selected=true;
				count++;
			}
			clearMessage(); displayMessage(cmi.countMsg.format([count]));
			cmi.$('importStart').disabled=!count;
			break;
		case 'importSelectNew':		// select tiddlers not in current document
			importReport();		// if an import was in progress, generate a report
			for (var t=0,count=0; t < list.options.length; t++) {
				list.options[t].selected=false;
				if (list.options[t].value=='') continue;
				list.options[t].selected=!store.tiddlerExists(list.options[t].value);
				count+=list.options[t].selected?1:0;
			}
			clearMessage(); displayMessage(cmi.countMsg.format([count]));
			cmi.$('importStart').disabled=!count;
			break;
		case 'importSelectChanges':		// select tiddlers that are updated from existing tiddlers
			importReport();		// if an import was in progress, generate a report
			for (var t=0,count=0; t < list.options.length; t++) {
				list.options[t].selected=false;
				if (list.options[t].value==''||!store.tiddlerExists(list.options[t].value)) continue;
				for (var i=0; i<cmi.inbound.length; i++) // find matching inbound tiddler
					{ var inbound=cmi.inbound[i]; if (inbound.title==list.options[t].value) break; }
				list.options[t].selected=(inbound.modified-store.getTiddler(list.options[t].value).modified>0); // updated tiddler
				count+=list.options[t].selected?1:0;
			}
			clearMessage(); displayMessage(cmi.countMsg.format([count]));
			cmi.$('importStart').disabled=!count;
			break;
		case 'importSelectDifferences':		// select tiddlers that are new or different from existing tiddlers
			importReport();		// if an import was in progress, generate a report
			for (var t=0,count=0; t < list.options.length; t++) {
				list.options[t].selected=false;
				if (list.options[t].value=='') continue;
				if (!store.tiddlerExists(list.options[t].value)) { list.options[t].selected=true; count++; continue; }
				for (var i=0; i<cmi.inbound.length; i++) // find matching inbound tiddler
					{ var inbound=cmi.inbound[i]; if (inbound.title==list.options[t].value) break; }
				list.options[t].selected=(inbound.modified-store.getTiddler(list.options[t].value).modified!=0); // changed tiddler
				count+=list.options[t].selected?1:0;
			}
			clearMessage(); displayMessage(cmi.countMsg.format([count]));
			cmi.$('importStart').disabled=!count;
			break;
		case 'importApplyFilter':	// filter list to include only matching tiddlers
			importReport();		// if an import was in progress, generate a report
			clearMessage();
			if (!cmi.all) // no tiddlers loaded = '0 selected'
				{ displayMessage(cmi.countMsg.format([0])); return false; }
			var hash=cmi.$('importLastFilter').value;
			cmi.inbound=cmi.filterByHash('#'+hash,cmi.all);
			refreshImportList();	// reset/resize the listbox
			break;
		case 'importStart':		// initiate the import processing
			importReport();		// if an import was in progress, generate a report
			cmi.$('importApplyToAll').checked=false;
			cmi.$('importStart').value=cmi.stopText;
			if (cmi.index>0) cmi.index=-1; // stop processing
			else cmi.index=importTiddlers(0); // or begin processing
			importStopped();
			break;
		case 'importClose':		// unload imported tiddlers or hide the import control panel
			// if imported tiddlers not loaded, close the import control panel
			if (!cmi.inbound) { thePanel.style.display='none'; break; }
			importReport();		// if an import was in progress, generate a report
			cmi.inbound=null;	// clear the imported tiddler buffer
			refreshImportList();	// reset/resize the listbox
			break;
		case 'importSkip':	// don't import the tiddler
			cmi.lastAction=which;
			var theItem	= list.options[cmi.index];
			for (var j=0;j<cmi.inbound.length;j++)
			if (cmi.inbound[j].title==theItem.value) break;
			var theImported = cmi.inbound[j];
			theImported.status='skipped after asking';			// mark item as skipped
			theCollisionPanel.style.display='none';
			cmi.index=importTiddlers(cmi.index+1);	// resume with NEXT item
			importStopped();
			break;
		case 'importRename':		// change name of imported tiddler
			cmi.lastAction=which;
			var theItem		= list.options[cmi.index];
			for (var j=0;j<cmi.inbound.length;j++)
			if (cmi.inbound[j].title==theItem.value) break;
			var theImported		= cmi.inbound[j];
			theImported.status	= 'renamed from '+theImported.title;	// mark item as renamed
			theImported.set(theNewTitle.value,null,null,null,null);		// change the tiddler title
			theItem.value		= theNewTitle.value;			// change the listbox item text
			theItem.text		= theNewTitle.value;			// change the listbox item text
			theCollisionPanel.style.display='none';
			cmi.index=importTiddlers(cmi.index);	// resume with THIS item
			importStopped();
			break;
		case 'importMerge':	// join existing and imported tiddler content
			cmi.lastAction=which;
			var theItem	= list.options[cmi.index];
			for (var j=0;j<cmi.inbound.length;j++)
			if (cmi.inbound[j].title==theItem.value) break;
			var theImported	= cmi.inbound[j];
			var theExisting	= store.getTiddler(theItem.value);
			var theText	= theExisting.text+'\n----\n^^merged from: ';
			theText		+='[['+cmi.src+'#'+theItem.value+'|'+cmi.src+'#'+theItem.value+']]^^\n';
			theText		+='^^'+theImported.modified.toLocaleString()+' by '+theImported.modifier+'^^\n'+theImported.text;
			var theDate	= new Date();
			var theTags	= theExisting.getTags()+' '+theImported.getTags();
			theImported.set(null,theText,null,theDate,theTags);
			theImported.status   = 'merged with '+theExisting.title;	// mark item as merged
			theImported.status  += ' - '+theExisting.modified.formatString('MM/DD/YYYY 0hh:0mm:0ss');
			theImported.status  += ' by '+theExisting.modifier;
			theCollisionPanel.style.display='none';
			cmi.index=importTiddlers(cmi.index);	// resume with this item
			importStopped();
			break;
		case 'importReplace':		// substitute imported tiddler for existing tiddler
			cmi.lastAction=which;
			var theItem		  = list.options[cmi.index];
			for (var j=0;j<cmi.inbound.length;j++)
			if (cmi.inbound[j].title==theItem.value) break;
			var theImported     = cmi.inbound[j];
			var theExisting	  = store.getTiddler(theItem.value);
			theImported.status  = 'replaces '+theExisting.title;		// mark item for replace
			theImported.status += ' - '+theExisting.modified.formatString('MM/DD/YYYY 0hh:0mm:0ss');
			theImported.status += ' by '+theExisting.modifier;
			theCollisionPanel.style.display='none';
			cmi.index=importTiddlers(cmi.index);	// resume with THIS item
			importStopped();
			break;
		case 'importListSmaller':		// decrease current listbox size, minimum=5
			if (list.options.length==1) break;
			list.size-=(list.size>5)?1:0;
			cmi.listsize=list.size;
			break;
		case 'importListLarger':		// increase current listbox size, maximum=number of items in list
			if (list.options.length==1) break;
			list.size+=(list.size<list.options.length)?1:0;
			cmi.listsize=list.size;
			break;
		case 'importListMaximize':	// toggle listbox size between current and maximum
			if (list.options.length==1) break;
			list.size=(list.size==list.options.length)?cmi.listsize:list.options.length;
			break;
		}
}
//}}}
//{{{
config.macros.importTiddlers.showPanel=function(place,show,skipAnim) {
	if (typeof place=='string') var place=document.getElementById(place);
	if (!place||!place.style) return;
	if(!skipAnim && anim && config.options.chkAnimate) anim.startAnimating(new Slider(place,show,false,'none'));
	else place.style.display=show?'block':'none';
}
//}}}
//{{{
function refreshImportList(selectedIndex) {
	var cmi=config.macros.importTiddlers; // abbrev
	var list=cmi.$('importList'); if (!list) return;
	// if nothing to show, reset list content and size
	if (!cmi.inbound) {
		while (list.length > 0) { list.options[0] = null; }
		list.options[0]=new Option(cmi.loadText,'',false,false);
		list.size=cmi.listsize;
		cmi.$('importLoad').disabled=false;
		cmi.$('importLoad').style.display='inline';
		cmi.$('importStart').disabled=true;
		cmi.$('importOptions').disabled=true;
		cmi.$('importOptions').style.display='none';
		cmi.$('fileImportSource').disabled=false;
		cmi.$('importFromFile').disabled=false;
		cmi.$('importFromWeb').disabled=false;
		cmi.$('importStart').value=cmi.startText;
		cmi.$('importClose').value=cmi.doneText;
		cmi.$('importSelectPanel').style.display='none';
		cmi.$('importOptionsPanel').style.display='none';
		return;
	}
	// there are inbound tiddlers loaded...
	cmi.$('importLoad').disabled=true;
	cmi.$('importLoad').style.display='none';
	cmi.$('importOptions').style.display='inline';
	cmi.$('importOptions').disabled=false;
	cmi.$('fileImportSource').disabled=true;
	cmi.$('importFromFile').disabled=true;
	cmi.$('importFromWeb').disabled=true;
	cmi.$('importClose').value=cmi.closeText;
	if (cmi.$('importSelectPanel').style.display=='none')
		cmi.showPanel('importSelectPanel',true);

	// get the sort order
	if (!selectedIndex)   selectedIndex=0;
	if (selectedIndex==0) cmi.sort='title';		// heading
	if (selectedIndex==1) cmi.sort='title';
	if (selectedIndex==2) cmi.sort='modified';
	if (selectedIndex==3) cmi.sort='tags';
	if (selectedIndex>3) {
		// display selected tiddler count
		for (var t=0,count=0; t < list.options.length; t++) {
			if (!list.options[t].selected) continue;
			if (list.options[t].value!='')
				count+=1;
			else { // if heading is selected, deselect it, and then select and count all in section
				list.options[t].selected=false;
				for ( t++; t<list.options.length && list.options[t].value!=''; t++) {
					list.options[t].selected=true;
					count++;
				}
			}
		}
		clearMessage(); displayMessage(cmi.countMsg.format([count]));
	}
	cmi.$('importStart').disabled=!count;
	if (selectedIndex>3) return; // no refresh needed

	// get the alphasorted list of tiddlers
	var tiddlers=cmi.inbound;
	tiddlers.sort(function (a,b) {if(a['title'] == b['title']) return(0); else return (a['title'] < b['title']) ? -1 : +1; });
	// clear current list contents
	while (list.length > 0) { list.options[0] = null; }
	// add heading and control items to list
	var i=0;
	var indent=String.fromCharCode(160)+String.fromCharCode(160);
	if (cmi.all.length==tiddlers.length)
		var summary=cmi.summaryMsg.format([tiddlers.length,(tiddlers.length!=1)?cmi.plural:cmi.single]);
	else
		var summary=cmi.summaryFilteredMsg.format([tiddlers.length,cmi.all.length,(cmi.all.length!=1)?cmi.plural:cmi.single]);
	list.options[i++]=new Option(summary,'',false,false);
	list.options[i++]=new Option(((cmi.sort=='title'   )?'>':indent)+' [by title]','',false,false);
	list.options[i++]=new Option(((cmi.sort=='modified')?'>':indent)+' [by date]','',false,false);
	list.options[i++]=new Option(((cmi.sort=='tags')?'>':indent)+' [by tags]','',false,false);
	// output the tiddler list
	switch(cmi.sort) {
		case 'title':
			for(var t = 0; t < tiddlers.length; t++)
				list.options[i++] = new Option(tiddlers[t].title,tiddlers[t].title,false,false);
			break;
		case 'modified':
			// sort descending for newest date first
			tiddlers.sort(function (a,b) {if(a['modified'] == b['modified']) return(0); else return (a['modified'] > b['modified']) ? -1 : +1; });
			var lastSection = '';
			for(var t = 0; t < tiddlers.length; t++) {
				var tiddler = tiddlers[t];
				var theSection = tiddler.modified.toLocaleDateString();
				if (theSection != lastSection) {
					list.options[i++] = new Option(theSection,'',false,false);
					lastSection = theSection;
				}
				list.options[i++] = new Option(indent+indent+tiddler.title,tiddler.title,false,false);
			}
			break;
		case 'tags':
			var theTitles = {}; // all tiddler titles, hash indexed by tag value
			var theTags = new Array();
			for(var t=0; t<tiddlers.length; t++) {
				var title=tiddlers[t].title;
				var tags=tiddlers[t].tags;
				if (!tags || !tags.length) {
					if (theTitles['untagged']==undefined) { theTags.push('untagged'); theTitles['untagged']=new Array(); }
					theTitles['untagged'].push(title);
				}
				else for(var s=0; s<tags.length; s++) {
					if (theTitles[tags[s]]==undefined) { theTags.push(tags[s]); theTitles[tags[s]]=new Array(); }
					theTitles[tags[s]].push(title);
				}
			}
			theTags.sort();
			for(var tagindex=0; tagindex<theTags.length; tagindex++) {
				var theTag=theTags[tagindex];
				list.options[i++]=new Option(theTag,'',false,false);
				for(var t=0; t<theTitles[theTag].length; t++)
					list.options[i++]=new Option(indent+indent+theTitles[theTag][t],theTitles[theTag][t],false,false);
			}
			break;
		}
	list.selectedIndex=selectedIndex;		  // select current control item
	if (list.size<cmi.listsize) list.size=cmi.listsize;
	if (list.size>list.options.length) list.size=list.options.length;
}
//}}}
//{{{
// re-entrant processing for handling import with interactive collision prompting
function importTiddlers(startIndex) {
	var cmi=config.macros.importTiddlers; // abbrev
	if (!cmi.inbound) return -1;
	var list=cmi.$('importList'); if (!list) return;
	var t;
	// if starting new import, reset import status flags
	if (startIndex==0)
		for (var t=0;t<cmi.inbound.length;t++)
			cmi.inbound[t].status='';
	for (var i=startIndex; i<list.options.length; i++) {
		// if list item is not selected or is a heading (i.e., has no value), skip it
		if ((!list.options[i].selected) || ((t=list.options[i].value)==''))
			continue;
		for (var j=0;j<cmi.inbound.length;j++)
			if (cmi.inbound[j].title==t) break;
		var inbound = cmi.inbound[j];
		var theExisting = store.getTiddler(inbound.title);
		// avoid redundant import for tiddlers that are listed multiple times (when 'by tags')
		if (inbound.status=='added')
			continue;
		// don't import the 'ImportedTiddlers' history from the other document...
		if (inbound.title=='ImportedTiddlers')
			continue;
		// if tiddler exists and import not marked for replace or merge, stop importing
		if (theExisting && (inbound.status.substr(0,7)!='replace') && (inbound.status.substr(0,5)!='merge'))
			return i;
		// assemble tags (remote + existing + added)
		var newTags = '';
		if (cmi.importTags)
			newTags+=inbound.getTags()	// import remote tags
		if (cmi.keepTags && theExisting)
			newTags+=' '+theExisting.getTags(); // keep existing tags
		if (cmi.addTags && cmi.newTags.trim().length)
			newTags+=' '+cmi.newTags; // add new tags
		inbound.set(null,null,null,null,newTags.trim());
		// set the status to 'added' (if not already set by the 'ask the user' UI)
		inbound.status=(inbound.status=='')?'added':inbound.status;
		// set sync fields
		if (cmi.sync) {
			if (!inbound.fields) inbound.fields={}; // for TW2.1.x backward-compatibility
			inbound.fields['server.page.revision']=inbound.modified.convertToYYYYMMDDHHMM();
			inbound.fields['server.type']='file';
			inbound.fields['server.host']=(cmi.local&&!cmi.src.startsWith('file:')?'file:///':'')+cmi.src;
		}
		// do the import!
		store.suspendNotifications();
		store.saveTiddler(inbound.title, inbound.title, inbound.text, inbound.modifier, inbound.modified, inbound.tags, inbound.fields, true, inbound.created);
                store.fetchTiddler(inbound.title).created = inbound.created; // force creation date to imported value (needed for TW2.1.x and earlier)
		store.resumeNotifications();
		}
	return(-1);	// signals that we really finished the entire list
}
function importStopped() {
	var cmi=config.macros.importTiddlers; // abbrev
	var list=cmi.$('importList'); if (!list) return;
	var theNewTitle=cmi.$('importNewTitle');
	if (cmi.index==-1){ 
		cmi.$('importStart').value=cmi.startText;
		importReport();	// import finished... generate the report
	} else {
		// import collision...
		// show the collision panel and set the title edit field
		cmi.$('importStart').value=cmi.stopText;
		cmi.showPanel('importCollisionPanel',true);
		theNewTitle.value=list.options[cmi.index].value;
		if (cmi.$('importApplyToAll').checked && cmi.lastAction && cmi.lastAction.id!='importRename')
			onClickImportButton(cmi.lastAction);
	}
}
//}}}
//{{{
function importReport() {
	var cmi=config.macros.importTiddlers; // abbrev
	if (!cmi.inbound) return;
	// if import was not completed, the collision panel will still be open... close it now.
	var panel=cmi.$('importCollisionPanel'); if (panel) panel.style.display='none';
	// get the alphasorted list of tiddlers
	var tiddlers = cmi.inbound;
	// gather the statistics
	var count=0; var total=0;
	for (var t=0; t<tiddlers.length; t++) {
		if (!tiddlers[t].status || !tiddlers[t].status.trim().length) continue;
		if (tiddlers[t].status.substr(0,7)!='skipped') count++;
		total++;
	}
	// generate a report
	if (total) displayMessage(cmi.processedMsg.format([total]));
	if (count && config.options.chkImportReport) {
		// get/create the report tiddler
		var theReport = store.getTiddler('ImportedTiddlers');
		if (!theReport) { theReport=new Tiddler(); theReport.title='ImportedTiddlers'; theReport.text=''; }
		// format the report content
		var now = new Date();
		var newText = 'On '+now.toLocaleString()+', '+config.options.txtUserName
		newText +=' imported '+count+' tiddler'+(count==1?'':'s')+' from\n[['+cmi.src+'|'+cmi.src+']]:\n';
		if (cmi.addTags && cmi.newTags.trim().length)
			newText += 'imported tiddlers were tagged with: "'+cmi.newTags+'"\n';
		newText += '<<<\n';
		for (var t=0; t<tiddlers.length; t++) if (tiddlers[t].status)
			newText += '#[['+tiddlers[t].title+']] - '+tiddlers[t].status+'\n';
		newText += '<<<\n';
		// update the ImportedTiddlers content and show the tiddler
		theReport.text	 = newText+((theReport.text!='')?'\n----\n':'')+theReport.text;
		theReport.modifier = config.options.txtUserName;
		theReport.modified = new Date();
                store.saveTiddler(theReport.title, theReport.title, theReport.text, theReport.modifier, theReport.modified, theReport.tags, theReport.fields);
		story.displayTiddler(null,theReport.title,1,null,null,false);
		story.refreshTiddler(theReport.title,1,true);
	}
	// reset status flags
	for (var t=0; t<cmi.inbound.length; t++) cmi.inbound[t].status='';
	// mark document as dirty and let display update as needed
	if (count) { store.setDirty(true); store.notifyAll(); }
	// always show final message when tiddlers were actually loaded
	if (count) displayMessage(cmi.importedMsg.format([count,tiddlers.length,cmi.src.replace(/%20/g,' ')]));
}
//}}}
//{{{
// // File and XMLHttpRequest I/O
config.macros.importTiddlers.askForFilename=function(here) {
	var msg=here.title; // use tooltip as dialog box message
	var path=getLocalPath(document.location.href);
	var slashpos=path.lastIndexOf('/'); if (slashpos==-1) slashpos=path.lastIndexOf('\\'); 
	if (slashpos!=-1) path = path.substr(0,slashpos+1); // remove filename from path, leave the trailing slash
	var file='';
	var result='';
	if(window.Components) { // moz
		try {
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

			var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
			var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
			picker.init(window, msg, nsIFilePicker.modeOpen);
			var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
			thispath.initWithPath(path);
			picker.displayDirectory=thispath;
			picker.defaultExtension='html';
			picker.defaultString=file;
			picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
			if (picker.show()!=nsIFilePicker.returnCancel) var result=picker.file.path;
		}
		catch(e) { alert('error during local file access: '+e.toString()) }
	}
	else { // IE
		try { // XPSP2 IE only
			var s = new ActiveXObject('UserAccounts.CommonDialog');
			s.Filter='All files|*.*|Text files|*.txt|HTML files|*.htm;*.html|';
			s.FilterIndex=3; // default to HTML files;
			s.InitialDir=path;
			s.FileName=file;
			if (s.showOpen()) var result=s.FileName;
		}
		catch(e) {  // fallback
			var result=prompt(msg,path+file);
		}
	}
	return result;
}

config.macros.importTiddlers.loadRemoteFile = function(src,callback) {
	if (src==undefined || !src.length) return null; // filename is required
	var original=src; // URL as specified
	var hashpos=src.indexOf('#'); if (hashpos!=-1) src=src.substr(0,hashpos); // URL with #... suffix removed (needed for IE)
	clearMessage();
	displayMessage(this.openMsg.format([src.replace(/%20/g,' ')]));
	if (src.substr(0,5)!='http:' && src.substr(0,5)!='file:') { // if not a URL, read from local filesystem
		var txt=loadFile(src);
		if (!txt) { // file didn't load, might be relative path.. try fixup
			var pathPrefix=document.location.href;  // get current document path and trim off filename
			var slashpos=pathPrefix.lastIndexOf('/'); if (slashpos==-1) slashpos=pathPrefix.lastIndexOf('\\'); 
			if (slashpos!=-1 && slashpos!=pathPrefix.length-1) pathPrefix=pathPrefix.substr(0,slashpos+1);
			src=pathPrefix+src;
			if (pathPrefix.substr(0,5)!='http:') src=getLocalPath(src);
			var txt=loadFile(src);
		}
		if (!txt) { // file still didn't load, report error
			displayMessage(config.macros.importTiddlers.openErrMsg.format([src.replace(/%20/g,' '),'(filesystem error)']));
		} else {
			displayMessage(config.macros.importTiddlers.readMsg.format([txt.length,src.replace(/%20/g,' ')]));
			if (version.major+version.minor*.1+version.revision*.01!=2.52) txt=convertUTF8ToUnicode(txt);
			if (callback) callback(true,original,txt,src,null);
		}
	} else {
		doHttp('GET',src,null,null,config.options.txtRemoteUsername,config.options.txtRemotePassword,callback,original,null);
	}
}

config.macros.importTiddlers.readTiddlersFromHTML=function(html){
	var remoteStore=new TiddlyWiki();
	remoteStore.importTiddlyWiki(html);
	return remoteStore.getTiddlers('title');	
}

config.macros.importTiddlers.readTiddlersFromCSV=function(CSV){
	var remoteStore=new TiddlyWiki();
	// GET NAMES
	var lines=CSV.replace(/\r/g,'').split('\n');
	var names=lines.shift().replace(/"/g,'').split(',');
	CSV=lines.join('\n');
	// ENCODE commas and newlines within quoted values
	var comma='!~comma~!'; var commaRE=new RegExp(comma,'g');
	var newline='!~newline~!'; var newlineRE=new RegExp(newline,'g');
	CSV=CSV.replace(/"([^"]*?)"/g,
		function(x){ return x.replace(/\,/g,comma).replace(/\n/g,newline); });
	// PARSE lines
	var lines=CSV.split('\n');
	for (var i=0; i<lines.length; i++) { if (!lines[i].length) continue;
		var values=lines[i].split(',');
		// DECODE commas, newlines, and doubled-quotes, and remove enclosing quotes (if any)
		for (var v=0; v<values.length; v++)
			values[v]=values[v].replace(commaRE,',').replace(newlineRE,'\n')
				.replace(/^"|"$/g,'').replace(/""/g,'"');
		// EXTRACT tiddler values
		var title=''; var text=''; var tags=[]; var fields={};
		var created=null; var when=new Date(); var who=config.options.txtUserName;
		for (var v=0; v<values.length; v++) { var val=values[v];
			if (names[v]) switch(names[v].toLowerCase()) {
				case 'title':	title=val.replace(/\[\]\|/g,'_'); break;
				case 'created': created=new Date(val); break;
				case 'modified':when=new Date(val); break;
				case 'modifier':who=val; break;
				case 'text':	text=val; break;
				case 'tags':	tags=val.readBracketedList(); break;
				default:	fields[names[v].toLowerCase()]=val; break;
			}
		}
		// CREATE tiddler in temporary store
		if (title.length)
			remoteStore.saveTiddler(title,title,text,who,when,tags,fields,true,created||when);
	}
	return remoteStore.getTiddlers('title');
}

config.macros.importTiddlers.createTiddlerFromFile=function(src,txt) {
	var t=new Tiddler();
	var pos=src.lastIndexOf("/"); if (pos==-1) pos=src.lastIndexOf("\\");
	t.title=pos==-1?src:src.substr(pos+1);
	t.text=txt; 
	t.created=t.modified=new Date();
	t.modifier=config.options.txtUserName;
	if (src.substr(src.length-3,3)=='.js') t.tags=['systemConfig'];
	return [t];
}

config.macros.importTiddlers.filterTiddlerList=function(success,params,txt,src,xhr){
	var cmi=config.macros.importTiddlers; // abbreviation
	var src=src.replace(/%20/g,' ');
	if (!success) { displayMessage(cmi.openErrMsg.format([src,xhr.status])); return; }
	cmi.all=cmi.readTiddlersFromHTML(txt);
	if (!cmi.all||!cmi.all.length) cmi.all=cmi.readTiddlersFromCSV(txt)
	if (!cmi.all||!cmi.all.length) cmi.all=cmi.createTiddlerFromFile(src,txt)
	var count=cmi.all?cmi.all.length:0;
	var querypos=src.lastIndexOf('?'); if (querypos!=-1) src=src.substr(0,querypos);
	displayMessage(cmi.foundMsg.format([count,src]));
	cmi.inbound=cmi.filterByHash(params,cmi.all); // use full URL including hash (if any)
	cmi.$('importLastFilter').value=cmi.lastFilter;
	window.refreshImportList(0);
}

config.macros.importTiddlers.filterByHash=function(src,tiddlers){
	var hashpos=src.lastIndexOf('#'); if (hashpos==-1) return tiddlers;
	var hash=src.substr(hashpos+1); if (!hash.length) return tiddlers;
	var tids=[];
	var params=hash.parseParams('anon',null,true,false,false);
	for (var p=1; p<params.length; p++) {
		switch (params[p].name) {
			case 'anon':
			case 'open':
				tids.pushUnique(params[p].value);
				break;
			case 'tag':
				if (store.getMatchingTiddlers) { // for boolean expressions - see MatchTagsPlugin
					var r=store.getMatchingTiddlers(params[p].value,null,tiddlers);
					for (var t=0; t<r.length; t++) tids.pushUnique(r[t].title);
				} else for (var t=0; t<tiddlers.length; t++)
					if (tiddlers[t].isTagged(params[p].value))
						tids.pushUnique(tiddlers[t].title);
				break;
			case 'story':
				for (var t=0; t<tiddlers.length; t++)
					if (tiddlers[t].title==params[p].value) {
						tiddlers[t].changed();
						for (var s=0; s<tiddlers[t].links.length; s++)
							tids.pushUnique(tiddlers[t].links[s]);
						break;
					}
				break;
			case 'search':
				for (var t=0; t<tiddlers.length; t++)
					if (tiddlers[t].text.indexOf(params[p].value)!=-1)
						tids.pushUnique(tiddlers[t].title);
				break;
		}
	}
	var matches=[];
	for (var t=0; t<tiddlers.length; t++)
		if (tids.contains(tiddlers[t].title))
			matches.push(tiddlers[t]);
	displayMessage(config.macros.importTiddlers.filterMsg.format([matches.length,hash]));
	config.macros.importTiddlers.lastFilter=hash;
	return matches;
}
//}}}
/***
!!!Control panel CSS
//{{{
!css
#importPanel {
	display: none; position:absolute; z-index:11; width:35em; right:105%; top:3em;
	background-color: #eee; color:#000; font-size: 8pt; line-height:110%;
	border:1px solid black; border-bottom-width: 3px; border-right-width: 3px;
	padding: 0.5em; margin:0em; -moz-border-radius:1em;-webkit-border-radius:1em;
}
#importPanel a, #importPanel td a { color:#009; display:inline; margin:0px; padding:1px; }
#importPanel table { width:100%; border:0px; padding:0px; margin:0px; font-size:8pt; line-height:110%; background:transparent; }
#importPanel tr { border:0px;padding:0px;margin:0px; background:transparent; }
#importPanel td { color:#000; border:0px;padding:0px;margin:0px; background:transparent; }
#importPanel select { width:100%;margin:0px;font-size:8pt;line-height:110%;}
#importPanel input  { width:98%;padding:0px;margin:0px;font-size:8pt;line-height:110%}
#importPanel .box { border:1px solid #000; background-color:#eee; padding:3px 5px; margin-bottom:5px; -moz-border-radius:5px;-webkit-border-radius:5px;}
#importPanel .topline { border-top:1px solid #999; padding-top:2px; margin-top:2px; }
#importPanel .rad { width:auto; }
#importPanel .chk { width:auto; margin:1px;border:0; }
#importPanel .btn { width:auto; }
#importPanel .btn1 { width:98%; }
#importPanel .btn2 { width:48%; }
#importPanel .btn3 { width:32%; }
#importPanel .btn4 { width:23%; }
#importPanel .btn5 { width:19%; }
#importPanel .importButton { padding: 0em; margin: 0px; font-size:8pt; }
#importPanel .importListButton { padding:0em 0.25em 0em 0.25em; color: #000000; display:inline }
#backstagePanel #importPanel { left:10%; right:auto; }
!end
//}}}
!!!Control panel HTML
//{{{
!html
<!-- source and report -->
<table><tr><td align=left>
	import from
	<input type="radio" class="rad" name="importFrom" id="importFromFile" value="file" CHECKED
		onclick="onClickImportButton(this,event)" title="show file controls"> local file
	<input type="radio" class="rad" name="importFrom" id="importFromWeb"  value="http"
		onclick="onClickImportButton(this,event)" title="show web controls"> web server
</td><td align=right>
	<input type=checkbox class="chk" id="chkImportReport"
		onClick="config.options['chkImportReport']=this.checked;"> create report
</td></tr></table>

<div class="box" id="importSourcePanel" style="margin:.5em">
<div id="importLocalPanel" style="display:block;margin-bottom:2px;"><!-- import from local file  -->
enter or browse for source path/filename<br>
<input type="file" id="fileImportSource" size=57 style="width:100%"
	onKeyUp="config.macros.importTiddlers.src=this.value"
	onChange="config.macros.importTiddlers.src=this.value;document.getElementById('importLoad').onclick()">
<div id="importLocalPanelFix" style="display:none"><!-- FF3 FIXUP -->
	<input type="text" id="fileImportSourceFix" style="width:90%"
		title="Enter a path/file to import"
		onKeyUp="config.macros.importTiddlers.src=this.value"
		onChange="config.macros.importTiddlers.src=this.value;document.getElementById('importLoad').onclick()">
	<input type="button" id="fileImportSourceFixButton" style="width:7%" value="..."
		title="Select a path/file to import"
		onClick="var r=config.macros.importTiddlers.askForFilename(this); if (!r||!r.length) return;
			document.getElementById('fileImportSourceFix').value=r;
			config.macros.importTiddlers.src=r;
			document.getElementById('importLoad').onclick()">
</div><!--end FF3 FIXUP-->
</div><!--end local-->
<div id="importHTTPPanel" style="display:none;margin-bottom:2px;"><!-- import from http server -->
<table><tr><td align=left>
	enter a URL or <a href="javascript:;" id="importSelectFeed"
		onclick="return onClickImportButton(this,event)" title="select a pre-defined 'systemServer' URL">
		select a server</a><br>
</td><td align=right>
	<input type="checkbox" class="chk" id="importUsePassword"
		onClick="config.macros.importTiddlers.usePassword=this.checked;
			config.macros.importTiddlers.showPanel('importIDPWPanel',this.checked,true);">password
	<input type="checkbox" class="chk" id="importUseProxy"
		onClick="config.macros.importTiddlers.useProxy=this.checked;
			config.macros.importTiddlers.showPanel('importSiteProxy',this.checked,true);">proxy
</td></tr></table>
<input type="text" id="importSiteProxy" style="display:none;margin-bottom:1px" onfocus="this.select()" value="SiteProxy"
	onKeyUp="config.macros.importTiddlers.proxy=this.value"
	onChange="config.macros.importTiddlers.proxy=this.value;">
<input type="text" id="importSourceURL" onfocus="this.select()" value="SiteUrl"
	onKeyUp="config.macros.importTiddlers.src=this.value"
	onChange="config.macros.importTiddlers.src=this.value;">
<div id="importIDPWPanel" style="text-align:center;margin-top:2px;display:none";>
username: <input type=text id="txtImportID" style="width:25%" 
	onChange="config.options.txtRemoteUsername=this.value;">
 password: <input type=password id="txtImportPW" style="width:25%" 
	onChange="config.options.txtRemotePassword=this.value;">
</div><!--end idpw-->
</div><!--end http-->
</div><!--end source-->

<div class="box" id="importSelectPanel" style="display:none;margin:.5em;">
<table><tr><td align=left>
select:
<a href="javascript:;" id="importSelectAll"
	onclick="return onClickImportButton(this)" title="SELECT all tiddlers">
	all</a>
&nbsp;<a href="javascript:;" id="importSelectNew"
	onclick="return onClickImportButton(this)" title="SELECT tiddlers not already in destination document">
	added</a>
&nbsp;<a href="javascript:;" id="importSelectChanges"
	onclick="return onClickImportButton(this)" title="SELECT tiddlers that have been updated in source document">
	changes</a>
&nbsp;<a href="javascript:;" id="importSelectDifferences"
	onclick="return onClickImportButton(this)" title="SELECT tiddlers that have been added or are different from existing tiddlers">
	differences</a>
</td><td align=right>
<a href="javascript:;" id="importListSmaller"
	onclick="return onClickImportButton(this)" title="SHRINK list size">
	&nbsp;&#150;&nbsp;</a>
<a href="javascript:;" id="importListLarger"
	onclick="return onClickImportButton(this)" title="GROW list size">
	&nbsp;+&nbsp;</a>
<a href="javascript:;" id="importListMaximize"
	onclick="return onClickImportButton(this)" title="MAXIMIZE/RESTORE list size">
	&nbsp;=&nbsp;</a>
</td></tr></table>
<select id="importList" size=8 multiple
	onchange="setTimeout('refreshImportList('+this.selectedIndex+')',1)">
	<!-- NOTE: delay refresh so list is updated AFTER onchange event is handled -->
</select>
<div style="text-align:center">
	<a href="javascript:;"
		title="click for help using filters..."
		onclick="alert('A filter consists of one or more space-separated combinations of: tiddlertitle, tag:[[tagvalue]], tag:[[tag expression]] (requires MatchTagsPlugin), story:[[TiddlerName]], and/or search:[[searchtext]]. Use a blank filter to restore the list of all tiddlers.'); return false;"
	>filter</a>
	<input type="text" id="importLastFilter" style="margin-bottom:1px; width:65%"
		title="Enter a combination of one or more filters. Use a blank filter for all tiddlers."
		onfocus="this.select()" value=""
		onKeyUp="config.macros.importTiddlers.lastFilter=this.value"
		onChange="config.macros.importTiddlers.lastFilter=this.value;">
	<input type="button" id="importApplyFilter" style="width:20%" value="apply"
		title="filter list of tiddlers to include only those that match certain criteria"
		onclick="return onClickImportButton(this)">
	</div>
</div><!--end select-->

<div class="box" id="importOptionsPanel" style="text-align:center;margin:.5em;display:none;">
	apply tags: <input type=checkbox class="chk" id="chkImportTags" checked
		onClick="config.macros.importTiddlers.importTags=this.checked;">from source&nbsp;
	<input type=checkbox class="chk" id="chkKeepTags" checked
		onClick="config.macros.importTiddlers.keepTags=this.checked;">keep existing&nbsp;
	<input type=checkbox class="chk" id="chkAddTags" 
		onClick="config.macros.importTiddlers.addTags=this.checked;
			config.macros.importTiddlers.showPanel('txtNewTags',this.checked,false);
			if (this.checked) document.getElementById('txtNewTags').focus();">add tags<br>
	<input type=text id="txtNewTags" style="margin-top:4px;display:none;" size=15 onfocus="this.select()" 
		title="enter tags to be added to imported tiddlers" 
		onKeyUp="config.macros.importTiddlers.newTags=this.value;
		document.getElementById('chkAddTags').checked=this.value.length>0;" autocomplete=off>
	<nobr><input type=checkbox class="chk" id="chkSync" 
		onClick="config.macros.importTiddlers.sync=this.checked;">
		link tiddlers to source document (for sync later)</nobr>
</div><!--end options-->

<div id="importButtonPanel" style="text-align:center">
	<input type=button id="importLoad"	class="importButton btn3" value="open"
		title="load listbox with tiddlers from source document"
		onclick="onClickImportButton(this)">
	<input type=button id="importOptions"	class="importButton btn3" value="options..."
		title="set options for tags, sync, etc."
		onclick="onClickImportButton(this)">
	<input type=button id="importStart"	class="importButton btn3" value="import"
		title="start/stop import of selected source tiddlers into current document"
		onclick="onClickImportButton(this)">
	<input type=button id="importClose"	class="importButton btn3" value="done"
		title="clear listbox or hide control panel"
		onclick="onClickImportButton(this)">
</div>

<div class="none" id="importCollisionPanel" style="display:none;margin:.5em 0 .5em .5em;">
	<table><tr><td style="width:65%" align="left">
		<table><tr><td align=left>
			tiddler already exists:
		</td><td align=right>
			<input type=checkbox class="chk" id="importApplyToAll" 
			onclick="document.getElementById('importRename').disabled=this.checked;"
			checked>apply to all
		</td></tr></table>
		<input type=text id="importNewTitle" size=15 autocomplete=off">
	</td><td style="width:34%" align="center">
		<input type=button id="importMerge"
			class="importButton" style="width:47%" value="merge"
			title="append the incoming tiddler to the existing tiddler"
			onclick="onClickImportButton(this)"><!--
		--><input type=button id="importSkip"
			class="importButton" style="width:47%" value="skip"
			title="do not import this tiddler"
			onclick="onClickImportButton(this)"><!--
		--><br><input type=button id="importRename"
			class="importButton" style="width:47%" value="rename"
			title="rename the incoming tiddler"
			onclick="onClickImportButton(this)"><!--
		--><input type=button id="importReplace"
			class="importButton" style="width:47%" value="replace"
			title="discard the existing tiddler"
			onclick="onClickImportButton(this)">
	</td></tr></table>
</div><!--end collision-->
!end
//}}}
***/
/***
|Name|ImportTiddlersPluginInfo|
|Source|http://www.TiddlyTools.com/#ImportTiddlersPlugin|
|Documentation|http://www.TiddlyTools.com/#ImportTiddlersPluginInfo|
|Version|4.6.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|documentation|
|Description|documentation for ImportTiddlersPlugin|
Combine tiddlers from any two TiddlyWiki documents.  An interactive control panel lets you pick a source document and import selected tiddlers, with prompting for skip, rename, merge or replace actions when importing tiddlers that match existing titles.  Generates a detailed report of import 'history' in ImportedTiddlers.
!!!!!Usage
<<<
{{{<<importTiddlers>>}}} or {{{<<importTiddlers core>>}}}
invokes the built-in importTiddlers macro (TW2.1.x+).  If installed in documents using TW2.0.x or earlier, fallback is to use 'link' display (see below)

{{{<<importTiddlers link label tooltip>>}}}
The ''link'' keyword creates an "import tiddlers" link that when clicked to show/hide import control panel.  ''label'' and ''tooltip'' are optional text parameters (enclosed in quotes or {{{[[...]]}}}, and allow you to override the default display text for the link and the mouseover help text, respectively.

{{{<<importTiddlers inline>>}}}
creates import control panel directly in tiddler content

<<importTiddlers inline>>

Enter a document URL or press "..." to select a TiddlyWiki file to import, and then press ''[open]''.  //Note: There may be a delay before the list of tiddlers appears.//  Use the ''[-]'', ''[+]'', or ''[=]'' links to adjust the listbox size so you can view more (or less) tiddler titles at one time.

Select one or more titles from the listbox.  Use CTRL-click or SHIFT-click to select/deselect individual titles.  Click on ''all'', ''new'', ''changes'', or ''differences'' to automatically select a subset of tiddlers from the list, based on a comparison of the two documents:
*''all'' selects ALL tiddlers from the import source document, even if they have not been changed.
*''new'' selects only tiddlers that are found in the import source document, but do not yet exist in the destination document
*''changes'' selects only tiddlers that exist in both documents but that are newer in the source document
*''differences'' selects all new and existing tiddlers that are different from the destination document (even if destination tiddler is newer)

Press ''[import]'' to begin copying tiddlers to the current document.  If an 'inbound' tiddler matches one that already exists in the document, the import process pauses and the tiddler title is displayed in an input field, along with four push buttons: ''skip'', ''rename'', ''merge'' and ''replace''.
* to bypass importing the tiddler, press ''skip''
* to give the inbound tiddler a different name, so that both the old and new tiddlers will exist when the import is done, enter a new title in the input field and press ''rename'' 
* to combine the content from both tiddlers into a single tiddler so you can then edit it later to eliminate unwanted content, press ''merge''
* to overwrite the existing tiddler with the imported one (discarding the previous content), press ''[replace]''

''Import Report History''

Whenever tiddlers are imported, a report is generated into a tiddler named [[ImportedTiddlers]], recording when the latest import was performed, the number of tiddlers successfully imported, from what location, and by whom, as well as a list of the tiddlers that were processed.  When more tiddlers are imported at a later time, a new report is //added// to the existing [[ImportedTiddlers]], above the previous report (i.e., at the top of the tiddler), so that a history of imports is maintained.  If this record is not desired, you can delete [[ImportedTiddlers]] at any time.

Note: You can prevent a report from being generated for any given import activity by clearing the "create a report" checkbox before pressing the ''import'' button
<<<
!!!!!Installation Notes
<<<
* As of 6/27/2007, support for TW2.1.x and earlier have been moved to [[ImportTiddlersPluginPatch]].  ''//Only install the patch plugin when using TW2.1.x or earlier.//''
<<<
!!!!!Revisions
<<<
2009.10.06 4.6.0 added createTiddlerFromFile (import text files)
2009.09.27 4.5.5 in readTiddlersFromCSV(), strip \r from input and fixed handling for quoted values
2009.09.12 4.5.4 fixed 'return false' to prevent IE page transition. Also, moved html/css definitions to separate sections
2009.08.23 4.5.3 in importTiddlers(), add 'file:///' to local server.host sync field only if not already present in URL
2009.08.20 4.5.2 only use SiteURL/SiteProxy values if control panel value has not yet been set
2009.07.03 4.5.1 fixups for TW252: doHttp() doesn't return XHR and convertUTF8ToUnicode() not needed for local I/O
2009.05.04 4.5.0 import from CSV-formatted files
2009.03.04 4.4.2 in createImportPanel(), init option checkboxes so display matches internal state variables
2009.02.26 4.4.1 use macro-specific definition of $() function abbreviation (avoids conflict with JQuery)
2008.09.30 4.4.0 added fallback definition of merge() for use with TW2.0.x and TW1.2.x
2008.08.12 4.3.3 rewrite backstage and shadow tiddler definitions for easier customization
2008.08.05 4.3.2 rewrote loadRemoteFile() to eliminate use of platform-specific fileExists() function
2008.06.29 4.3.1 More layout/animation work for simpler sequential interaction.  Code reduction/cleanup
2008.06.28 4.3.0 HTML and CSS cleanup and tweaks to layout.  Added animation to panels
2008.06.22 4.2.0 For FireFox, use HTML with separate text+button control instead of type='file' control
2008.06.05 4.1.0 in filterByHash(), added support for boolean tag expressions using getMatchingTiddlers() (defined by MatchTagsPlugin)
2008.05.12 4.0.2 automatically tweak the backstage "import" task to add the ImportTiddlers control panel
2008.04.30 4.0.1 trim #... suffix for loading files/URLs in IE
2008.04.30 4.0.0 added source filtering (using URL paramifiers).  Also, abbreviations for code-size reduction.
2008.04.13 3.9.0 added 'apply to all' checkbox for collision processing
2008.03.26 3.8.0 added support for selecting pre-defined systemServer URLs
2008.03.25 3.7.0 added support for setting 'server' fields on imported tiddlers (for later synchronizing of changes)
2008.01.03 3.6.0 in loadRemoteFile(), use lower-level doHttp() instead of loadRemoteFile() in order to support username/password access to remote server
2007.10.30 3.5.6 update [[ImportTiddlers]] shadow tiddler definition to include "inline" link
2007.06.27 3.5.5 added missing 'fields' params to saveTiddler() calls.  Fixes problem where importing tiddlers would lose the custom fields.  Also, moved functions for TW2.1.x to [[ImportTiddlersPluginPatch2.1.x]].
2007.06.25 3.5.4 added calls to store.suspendNotifications() and store.resumeNotifications().  Eliminates redisplay processing overhead DURING import activities
2007.04.29 3.5.3 in refreshImportList() when inbound tiddlers are loaded, change "close" button to "done", and disable certain controls to creates a modal condition, so that actions that reload tiddlers cannot be performed unless "done" is first pressed to end the mode..
2007.04.28 3.5.2 in handler(), added param support for custom link label/prompt
2007.04.19 3.5.1 in readTiddlersFromHTML(), for TW2.2 and above, use importTiddlyWiki() (new core functionality) to get tiddlers from remote file content.  Also, copied updated TW21Loader.prototype.internalizeTiddler() definition from TW2.2b5 so plugin can read tiddlers from TW2.2+ even when running under TW2.1.x
2007.03.22 3.5.0 in refreshImportList(), add handling for 'select section' when a heading is selected.  Makes it really easy to import by tag or date!
2007.03.21 3.4.0 split loadTiddlers functionality into separate plugin (see [[LoadTiddlersPlugin]])
2007.03.20 3.3.1 tweak to previous change to allow relative file references via http: (bypasses getLocalPath() so remote URL will be used)
2007.03.20 3.3.0 added support for local, relative file references: in loadRemoteFile(), check for fileExists().  If not found, prepend relative path and retry.
2007.02.24 3.2.1 re-labeled control panel "open" button to "load"
2007.02.09 3.2.0 loadTiddlers: added support for "noReload" tag (prevents overwriting existing tiddler, even if inbound tiddler is newer)
2007.02.08 3.1.3 loadTiddlers: added missing code and documentation for "newTags" handling (a feature change from long, long ago that somehow got lost!)
2006.11.14 3.1.2 fix macro handler parameter declaration (double-pasted param list corrupts IE)
2006.11.13 3.1.1 use apply() method to invoke hijacked core handler
2006.11.13 3.1.0 hijack built-in importTiddlers.handler() to co-exist with plugin interface.  If no params or 'core' keyword, display core interface.  "link" param embeds "import tiddlers" link that shows floating panel when clicked.
2006.10.12 3.0.8 in readTiddlersFromHTML(), fallback to find end of store area by matching "/body" when POST-BODY-START is not present (backward compatibility for older documents)
2006.09.10 3.0.7 in readTiddlersFromHTML(), find end of store area by matching "POST-BODY-START" instead of "/body" 
2006.08.16 3.0.6 Use higher-level store.saveTiddler() instead of store.addTiddler() to avoid conflicts with adaptations that hijack low-level tiddler handling.  in CreateImportPanel(), removed "refresh listbox after every tiddler change".
2006.07.29 3.0.5 added noChangeMsg to loadTiddlers processing.  if not 'quiet' mode, reports skipped tiddlers.
2006.04.18 3.0.4 in loadTiddlers.handler, fixed parsing of "prompt:" param. Also, corrected parameters mismatch in loadTiddlers() callback function definition (order of params was wrong, resulting in filters NOT being applied)
2006.04.12 3.0.3 moved many display messages to macro properties for easier L10N translations via 'lingo' definitions.
2006.04.12 3.0.2 more work on 'core candidate' code.  Proposed API now defines "loadRemoteFile()" for XMLHttpRequest processing with built in fallback for handling local filesystem access, and readTiddlersFromHTML() to process the resulting source HTML content.
2006.04.04 3.0.1 in refreshImportList(), when using [by tags], tiddlers without tags are now included in a new "untagged" psuedo-tag list section
2006.04.04 3.0.0 Separate non-interactive {{{<<importTiddlers...>>}}} macro functionality for incorporation into TW2.1 core and renamed as {{{<<loadTiddlers>>}}} macro.  New parameters for loadTiddlers: ''label:text'' and ''prompt:text'' for link creation,  ''ask'' for filename/URL, ''tag:text'' for filtering, "confirm" for accept/reject of individual inbound tiddlers.  Removed support for "importReplace/importPublic" tags and "force" param (unused feature). 
2006.03.30 2.9.1 when extracting store area from remote URL, look for "</body>" instead of "</body>\n</html>" so it will match even if the "\n" is absent from the source.
2006.03.30 2.9.0 added optional 'force' macro param.  When present, autoImportTiddlers() bypasses the checks for importPublic and importReplace.  Based on a request from Tom Otvos.
2006.03.28 2.8.1 in loadImportFile(), added checks to see if 'netscape' and 'x.overrideMimeType()' are defined (not in IE). Also, when extracting store area, look for "</body>\n</html>" and omit extra content that may have been added to the end of the file.
2006.02.21 2.8.0 added support for "tiddler:TiddlerName" filtering parameter in auto-import processing
2006.02.21 2.7.1 Clean up layout problems with IE.  (Use tables for alignment instead of SPANs styled with float:left and float:right)
2006.02.21 2.7.0 Added "local file" and "web server" radio buttons.  Default remote URL uses value from [[SiteURL]].  Also, added 'proxy' option, using value from [[SiteProxy]] as prefix to permit cross-domain document access via server-side scripting.
2006.02.17 2.6.0 Removed "differences only" listbox display mode, replaced with selection filter 'presets': all/new/changes/differences.  fixed init of "add new tags" checkbox
2006.02.16 2.5.4 added checkbox options to control "import remote tags" and "keep existing tags" behavior, in addition to existing "add new tags" functionality.
2006.02.14 2.5.3 FF1501 corrected unintended global 't' (loop index) in importReport() and autoImportTiddlers()
2006.02.10 2.5.2 corrected unintended global variable in importReport().
2006.02.05 2.5.1 moved globals from window.* to config.macros.importTiddlers.* to avoid FireFox 1.5.0.1 crash bug when referencing globals
2006.01.18 2.5.0 added checkbox for "create a report".  Default is to create/update the ImportedTiddlers report.
2006.01.15 2.4.1 added "importPublic" tag and inverted default so that auto sharing is NOT done unless tagged with importPublic
2006.01.15 2.4.0 Added support for tagging tiddlers with importSkip, importReplace, and/or importPrivate to enable/disable overwriting or sharing with others when using auto-import macro syntax.  Defaults: don't overwrite existing tiddlers, and allow your tiddlers to be auto-imported by others.
2006.01.15 2.3.2 Added "ask" parameter to confirm each tiddler before importing (for use with auto-importing)
2006.01.15 2.3.1 Strip TW core scripts from import source content and load just the storeArea into the hidden IFRAME to prevent imported document's core code from being invoked.  Also, when importing local documents, use convertUTF8ToUnicode() to support international characters sets.
2006.01.12 2.3.0 Reorganized code to use callback function for loading import files to support event-driven I/O via an ASYNCHRONOUS XMLHttpRequest instead of waiting for remote hosts to respond to URL requests.  Added non-interactive 'batch' mode, using macro parameters to specify source path/file or URL, and select tiddlers to import.  Improved messages and added optional 'quiet' switch for batch mode to eliminate //most// feedback.
2006.01.11 2.2.0 Added "[by tags]" to list of tiddlers, based on code submitted by BradleyMeck
2006.01.08 2.1.0 IMPORT FROM ANYWHERE!!! re-write getImportedTiddlers() logic to either read a local file (using local I/O), OR... read a remote file, using a combination of XML and an iframe to permit cross-domain reading of DOM elements.  Adapted from example code and techniques courtesy of Jonny LeRoy.
2006.01.06 2.0.2 When refreshing list contents, fixed check for tiddlerExists() when "show differences only" is selected, so that imported tiddlers that don't exist in the current file will be recognized as differences and included in the list.
2006.01.04 2.0.1 When "show differences only" is NOT checked, import all tiddlers that have been selected even when they have a matching title and date.
2005.12.27 2.0.0 Update for TW2.0
Defer initial panel creation and only register a notification function when panel first is created
2005.12.22 1.3.1 tweak formatting in importReport() and add 'discard report' link to output
2005.12.03 1.3.0 Dynamically create/remove importPanel as needed to ensure only one instance of interface elements exists, even if there are multiple instances of macro embedding.  Also, dynamically create/recreate importFrame each time an external TW document is loaded for importation (reduces DOM overhead and ensures a 'fresh' frame for each document)
2005.11.29 1.2.1 fixed formatting of 'detail info' in importReport()
2005.11.11 1.2.0 added 'inline' param to embed controls in a tiddler
2005.11.09 1.1.0 only load HTML and CSS the first time the macro handler is called.  Allows for redundant placement of the macro without creating multiple instances of controls with the same ID's.
2005.10.25 1.0.5 fixed typo in importReport() that prevented reports from being generated
2005.10.09 1.0.4 combined documentation with plugin code instead of using separate tiddlers
2005.08.05 1.0.3 moved CSS and HTML definitions into plugin code instead of using separate tiddlers
2005.07.27 1.0.2 core update 1.2.29: custom overlayStyleSheet() replaced with new core setStylesheet()
2005.07.23 1.0.1 added parameter checks and corrected addNotification() usage
2005.07.20 1.0.0 Initial Release
<<<
/***
|Name|ImportTiddlersPluginPatch|
|Source|http://www.TiddlyTools.com/#ImportTiddlersPluginPatch|
|Version|3.6.0|
|Author|[[EricShulman]] - 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|ImportTiddlersPlugin|
|Overrides|config.macros.importTiddlers.handler|
|Description|backward-compatible function patches for use with ImportTiddlersPlugin and TW2.1.x or earlier|

!!!!!Usage
<<<
The current version ImportTiddlersPlugin is compatible with the TW2.2.x core functions.  This "patch" plugin provides additional functions needed to enable the current version of ImportTiddlersPlugin to operate correctly under TW2.1.x or earlier.

{{medium{You do not need to install this plugin if you are using TW2.2.0 or above}}}
(though it won't hurt anything if you do… it will just take up more space).
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''ImportTiddlersPlugin'' //(main plugin body)//
''ImportTiddlersPluginPatch2.1.x'' //(patches for TW2.1.x or earlier)//
(both tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
''2008.01.03 [3.6.0]'' added support for passing txtRemoteUsername and txtRemotePassword for accessing password-protected remote servers
''2007.06.27 [3.5.5]'' compatibility functions split from ImportTiddlersPlugin
|please see [[ImportTiddlersPlugin]] for additional revision details|
''2005.07.20 [1.0.0]'' Initial Release
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]
<<<
!!!!!Code
***/
//{{{
// these functions are only defined when installed in TW2.1.x and earlier… 
if (version.major+version.minor/10 <= 2.1) {

// Version
version.extensions.importTiddlersPatch21x = {major: 3, minor: 6, revision: 0, date: new Date(2008,1,3)};

// fixups for TW2.0.x and earlier
if (window.merge==undefined) window.merge=function(dst,src,preserveExisting)
	{ for (p in src) if (!preserveExisting||dst[p]===undefined) dst[p]=src[p]; return dst; }
if (config.macros.importTiddlers==undefined) config.macros.importTiddlers={ };

config.macros.importTiddlers.loadRemoteFile = function(src,callback,quiet) {
	if (src==undefined || !src.length) return null; // filename is required
	if (!quiet) clearMessage();
	if (!quiet) displayMessage(this.openMsg.format([src]));
	if (src.substr(0,5)!="http:" && src.substr(0,5)!="file:") { // if src is relative (i.e., not a URL)
		if (!this.fileExists(src)) { // if file cannot be found, might be relative path.. try fixup
			var pathPrefix=document.location.href;  // get current document path and trim off filename
			var slashpos=pathPrefix.lastIndexOf("/"); if (slashpos==-1) slashpos=pathPrefix.lastIndexOf("\\"); 
			if (slashpos!=-1 && slashpos!=pathPrefix.length-1) pathPrefix=pathPrefix.substr(0,slashpos+1);
			src=pathPrefix+src;
			if (pathPrefix.substr(0,5)!="http:") src=getLocalPath(src);
		}
	}
	if (src.substr(0,4)!="http" && src.substr(0,4)!="file") { // if not a URL, read from local filesystem
		var txt=loadFile(src);
		if ((txt==null)||(txt==false)) // file didn't load
			{ if (!quiet) displayMessage(config.macros.importTiddlers.openErrMsg.format([src,"(unknown)"])); }
		else {
			if (!quiet) displayMessage(config.macros.importTiddlers.readMsg.format([txt.length,src]));
			if (callback) callback(true,quiet,convertUTF8ToUnicode(txt),src,null);
		}
	}
	else {
		var x; // get an request object
		try {x = new XMLHttpRequest()} // moz
		catch(e) {
			try {x = new ActiveXObject("Msxml2.XMLHTTP")} // IE 6
			catch (e) {
				try {x = new ActiveXObject("Microsoft.XMLHTTP")} // IE 5
				catch (e) { return }
			}
		}
		// setup callback function to handle server response(s)
		x.onreadystatechange = function() {
			if (x.readyState == 4) {
				if (x.status==0 || x.status == 200) {
					if (!quiet) displayMessage(config.macros.importTiddlers.readMsg.format([x.responseText.length,src]));
					if (callback) callback(true,quiet,x.responseText,src,x);
				}
				else {
					if (!quiet) displayMessage(config.macros.importTiddlers.openErrMsg.format([src,x.status]));
				}
			}
		}
		// get privileges to read another document's DOM via http:// or file:// (moz-only)
		if (typeof(netscape)!="undefined") {
			try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); }
			catch (e) { if (!quiet) displayMessage(e.description?e.description:e.toString()); }
		}
		// send the HTTP request
		try {
			var url=src+(src.indexOf('?')<0?'?':'&')+'nocache='+Math.random();
			x.open("GET",src,true,config.options.txtRemoteUsername,config.options.txtRemotePassword);
			if (x.overrideMimeType) x.overrideMimeType('text/html');
			x.send(null);
		}
		catch (e) {
			if (!quiet) {
				displayMessage(config.macros.importTiddlers.openErrMsg.format([src,"(unknown)"]));
				displayMessage(e.description?e.description:e.toString());
			}
		}
	}
}

config.macros.importTiddlers.readTiddlersFromHTML=function(html) {
	// for TW2.1 and earlier
	// extract store area from html 
	var start=html.indexOf('<div id="storeArea">');
	var end=html.indexOf("<!--POST-BODY-START--"+">",start);
	if (end==-1) var end=html.indexOf("</body"+">",start); // backward-compatibility for older documents
	var sa="<html><body>"+html.substring(start,end)+"</body></html>";

	// load html into iframe document
	var f=document.getElementById("loaderFrame"); if (f) document.body.removeChild(f);
	f=document.createElement("iframe"); f.id="loaderFrame";
	f.style.width="0px"; f.style.height="0px"; f.style.border="0px";
	document.body.appendChild(f);
	var d=f.document;
	if (f.contentDocument) d=f.contentDocument; // For NS6
	else if (f.contentWindow) d=f.contentWindow.document; // For IE5.5 and IE6
	d.open(); d.writeln(sa); d.close();

	// read tiddler DIVs from storeArea DOM element	
	var sa = d.getElementById("storeArea");
	if (!sa) return null;
	sa.normalize();
	var nodes = sa.childNodes;
	if (!nodes || !nodes.length) return null;
	var tiddlers = [];
	for(var t = 0; t < nodes.length; t++) {
		var title = null;
		if(nodes[t].getAttribute)
			title = nodes[t].getAttribute("title"); // TW 2.2+
		if(!title && nodes[t].getAttribute)
			title = nodes[t].getAttribute("tiddler"); // TW 2.1.x
		if(!title && nodes[t].id && (nodes[t].id.substr(0,5) == "store"))
			title = nodes[t].id.substr(5); // TW 1.2.x
		if(title && title != "")
			tiddlers.push((new Tiddler()).loadFromDiv(nodes[t],title));
	}
	return tiddlers;
}

// // COPIED FROM TW2.2beta5
// // enables reading tiddler definitions using TW2.2 storeArea format, even when plugin is running under TW2.1.x
// // storeArea format changes include:
// // <pre> nodes
// // attribute(tiddler) renamed to attribute(title)
// // attribute(modified) is omitted if created==modified
TW21Loader.prototype.internalizeTiddler = function(store,tiddler,title,node)
{
	var e = node.firstChild;
	var text = null;
	if(node.getAttribute("tiddler")) {
		text = getNodeText(e).unescapeLineBreaks();
	} else {
		while(e.nodeName!="PRE" && e.nodeName!="pre") {
			e = e.nextSibling;
		}
		text = e.innerHTML.replace(/\r/mg,"").htmlDecode();
	}
	var modifier = node.getAttribute("modifier");
	var c = node.getAttribute("created");
	var m = node.getAttribute("modified");
	var created = c ? Date.convertFromYYYYMMDDHHMM(c) : version.date;
	var modified = m ? Date.convertFromYYYYMMDDHHMM(m) : created;
	var tags = node.getAttribute("tags");
	var fields = {};
	var attrs = node.attributes;
	for(var i = attrs.length-1; i >= 0; i--) {
		var name = attrs[i].name;
		if (attrs[i].specified && !TiddlyWiki.isStandardField(name)) {
			fields[name] = attrs[i].value.unescapeLineBreaks();
		}
	}
	tiddler.assign(title,text,modifier,modified,tags,created,fields);
	return tiddler;
};

} // END OF TW2.1.x backward-compatibility functions
//}}}
On Montag, 21. Mai 2012 04:07:06, MichaelTarnowski imported 211 tiddlers from
[[P:\mtWiki\mtWiki.html|P:\mtWiki\mtWiki.html]]:
<<<
#[[ ConfigTweak]] - added
#[[ FieldEditorPlugin]] - added
#[[ActivityDataPlugin]] - added
#[[AdvancedOptionsPlugin]] - added
#[[AliasPlugin]] - added
#[[AllTagsExceptPlugin]] - added
#[[AnnotationsPlugin]] - added
#[[ArchivedTimeline]] - added
#[[AttachFilePlugin]] - added
#[[AttachFilePluginFormatters]] - added
#[[AutoOpenTiddlersPlugin]] - added
#[[AutoTaggerPlugin]] - added
#[[AutoWeavePlugin]] - added
#[[BackstageTweaks]] - added
#[[BreadcrumbsPlugin]] - skipped after asking
#[[CalendarPlugin]] - added
#[[CheckboxPlugin]] - added
#[[CollapseTiddlersPlugin]] - added
#[[CommentPlugin]] - added
#[[CompareTiddlersPlugin]] - added
#[[ConfirmExitPlugin]] - added
#[[ConfirmSavePlugin]] - added
#[[CookieJar]] - added
#[[CookieManagerPlugin]] - added
#[[CookieManagerPluginConfig]] - added
#[[CookieSaverPlugin]] - added
#[[CookieSaverPluginConfig]] - added
#[[CopyTiddlerPlugin]] - added
#[[CoreTweaks]] - added
#[[DC3.LightBoxPlugin]] - added
#[[DOMTweaksPlugin]] - added
#[[DOMViewerPlugin]] - added
#[[DataDbPlugin]] - added
#[[DataTiddlerPlugin]] - added
#[[DatePlugin]] - added
#[[DatePluginConfig]] - added
#[[DcTableOfContentsPlugin]] - added
#[[DeleteAllTaggedPlugin]] - added
#[[DeprecatedFunctionsPlugin]] - added
#[[DiscussionPlugin]] - added
#[[DragScrollPlugin]] - added
#[[EditFieldPlugin]] - added
#[[EditSectionPlugin]] - added
#[[EditTiddlerPlugin]] - added
#[[ExcludeTimelinePlugin]] - added
#[[ExportTiddlersPlugin]] - added
#[[ExternalLinkPreviewPlugin]] - added
#[[ExternalTiddlersPlugin]] - added
#[[FAQListPlugin]] - added
#[[FancyBoxPlugin]] - added
#[[FancyBoxPluginAddOns]] - added
#[[FieldEditorPlugin]] - added
#[[FieldsEditorPlugin]] - added
#[[FileAdaptor]] - added
#[[FileDropPlugin]] - added
#[[FirefoxPrivilegesPlugin]] - added
#[[FoldHeadingsPlugin]] - added
#[[FontSizePlugin]] - added
#[[FootnotesPlugin]] - added
#[[ForEachTiddlerPlugin]] - added
#[[FramedLinksPlugin]] - added
#[[FullScreenPlugin]] - added
#[[FullSectionPlugin]] - added
#[[GetVersion&Date]] - added
#[[GotoListMaxSize]] - added
#[[GotoPlugin]] - added
#[[GridPlugin]] - added
#[[HaloscanPlugin]] - added
#[[HideWhenPlugin]] - added
#[[HoverMenuPlugin]] - added
#[[HtmlFormattingPlugin]] - added
#[[HypergraphPlugin]] - added
#[[IconMacroPlugin]] - added
#[[ImageMapPlugin]] - added
#[[ImageSizePlugin]] - added
#[[ImportTiddlersPlugin]] - skipped after asking
#[[ImportTiddlersPluginPatch]] - added
#[[IncludePlugin]] - added
#[[InlineJavascriptPlugin]] - added
#[[InlineTabsPlugin]] - added
#[[InsertSmileyPlugin]] - added
#[[JavascriptShellPlugin]] - added
#[[JitFdJsonPlugin]] - added
#[[JitFdUiPlugin]] - added
#[[JitForceDirectedLibrary]] - added
#[[LaunchApplicationPlugin]] - added
#[[LimitOpenTiddlersPlugin]] - added
#[[LinkifyPlugin]] - added
#[[ListAuthorPlugin]] - added
#[[ListboxPlugin]] - added
#[[LoadTiddlersPlugin]] - added
#[[LoadTiddlersPluginPatch]] - added
#[[LooseLinksPlugin]] - added
#[[ManageTiddlersPlugin]] - added
#[[MatchTagsPlugin]] - added
#[[MenuEditPlugin]] - added
#[[MiniBrowserPlugin]] - added
#[[MoveablePanelPlugin]] - added
#[[NavigationMacro]] - added
#[[NestedSlidersPlugin]] - added
#[[NewDocumentPlugin]] - added
#[[NoClosePlugin]] - added
#[[OpenTaggedTiddlersMacro]] - added
#[[OpenTiddlersMacro]] - added
#[[PaletteViewMacro]] - added
#[[PartTiddlerPlugin]] - added
#[[PlayerPlugin]] - added
#[[PluginTemplate]] - added
#[[PluginUpdatesManager]] - added
#[[PluralAliasPlugin]] - added
#[[PopupMacro]] - added
#[[PopupPreviewPlugin]] - added
#[[PreviewPlugin]] - added
#[[QuickEditPlugin]] - added
#[[QuickOpenTagPlugin]] - added
#[[QuickSavePlugin]] - added
#[[QuoteOfTheDayPlugin]] - added
#[[RearrangeTiddlersPlugin]] - added
#[[RecentChangesPlugin]] - added
#[[RedirectPlugin]] - added
#[[RefreshCommand]] - added
#[[RelatedTagsPlugin]] - added
#[[RelatedTiddlersPlugin]] - added
#[[ReminderPlugin]] - added
#[[RenameTagsPlugin]] - added
#[[RolloverPlugin]] - added
#[[RunTiddlerPlugin]] - added
#[[SaveAsPlugin]] - added
#[[SaveCloseTiddlerPlugin]] - added
#[[SaveCollapseTiddlerPlugin]] - added
#[[SaveFromWebConfig]] - added
#[[SaveFromWebPlugin]] - added
#[[SaveTiddlerToFilePlugin]] - added
#[[SearchOptionsPlugin]] - added
#[[SectionLinksPlugin]] - added
#[[SelectThemePlugin]] - added
#[[SetIconPlugin]] - added
#[[SetUserNamePlugin]] - added
#[[SettingsPlugin]] - added
#[[ShowReferences]] - added
#[[ShowUpdatesPlugin]] - added
#[[SimpleSearchPlugin]] - added
#[[SinglePageModePlugin]] - added
#[[SiteMapMacro]] - added
#[[SliceGridPlugin]] - added
#[[SlideShowPlugin]] - added
#[[SnapshotPlugin]] - added
#[[SparklinePlugin]] - added
#[[StickyPopupPlugin]] - added
#[[StorySaverPlugin]] - added
#[[StoryViewerPlugin]] - added
#[[SyncFromSourcePlugin]] - added
#[[SyncPatch]] - added
#[[SystemInfoPlugin]] - added
#[[TWUpdatePlugin]] - added
#[[TabEditPlugin]] - added
#[[TableOfContentsPlugin]] - added
#[[TableSortingPlugin]] - added
#[[TableTagsPlugin]] - added
#[[TagCloudPlugin]] - added
#[[TagDataBase]] - added
#[[TagGridPlugin]] - added
#[[TagSearchPlugin]] - added
#[[TagTablePlugin]] - added
#[[TaggedTemplateTweak]] - added
#[[TaggerPlugin]] - added
#[[TagglyTaggingPlugin]] - added
#[[TagsTreePlugin]] - added
#[[TagsplorerMacro]] - added
#[[TaskTimerPlugin]] - added
#[[TaskTimerPluginConfig]] - added
#[[TextAreaPlugin]] - added
#[[TidIDEPlugin]] - added
#[[TiddlerIconsPlugin]] - added
#[[TiddlerIconsPluginConfig]] - added
#[[TiddlerListMacro]] - added
#[[TiddlerNotesPlugin]] - added
#[[TiddlerPasswordPlugin]] - added
#[[TiddlerPreviewsPlugin]] - added
#[[TiddlerStats]] - added
#[[TiddlerTemplatesMacro]] - added
#[[TiddlerTweakerPlugin]] - added
#[[TiddlersBarPlugin]] - added
#[[TiddlyChartsPlugin]] - added
#[[TiddlyLockPlugin]] - added
#[[TiddlyPodPlugin]] - added
#[[TiddlyTagMindMap2]] - added
#[[TiddlyTagMindMapPlugin]] - added
#[[TiddlyWikiDebugger]] - added
#[[ToggleTagPlugin]] - added
#[[ToolbarIconsPlugin]] - added
#[[TrashPlugin]] - added
#[[TspotSetupPlugin]] - added
#[[UnformattedTextPlugin]] - added
#[[UnsavedChangesPlugin]] - added
#[[UntaggedListHandler]] - added
#[[UpdateRelationshipsPlugin]] - added
#[[UploadPluginTweak]] - added
#[[VismoLibrary]] - added
#[[W3counterPlugin]] - added
#[[WikifyPlugin]] - added
#[[WordCountMacro]] - added
#[[YourSearchPlugin]] - added
#[[ZoomTextPlugin]] - added
#[[g.bar]] - added
#[[g.dot]] - added
#[[g.line]] - added
#[[g.pie]] - added
#[[g.raphael]] - added
#[[jit-yc]] - added
#[[raphaeljs]] - added
#[[twYouTubePlayer]] - added
#[[zzConfigOptions]] - added
<<<

----
On Montag, 21. Mai 2012 04:05:02, MichaelTarnowski imported 1 tiddler from
[[P:\mtWiki\mtWiki.html|P:\mtWiki\mtWiki.html]]:
<<<
#[[systemConfig]] - added
<<<
On Montag, 21. Mai 2012 04:11:16, MichaelTarnowski imported 431 tiddlers from
[[P:\mtWiki\mtWiki.html|P:\mtWiki\mtWiki.html]]:
<<<
#[[20/20 Vision]] - added
#[[5 Finger Vote]] - added
#[[5 Whys]] - added
#[[5S Game - A Lean Simulation]] - added
#[[60 Paces]] - added
#[[99 Test Balloons]] - added
#[[ABC Nightline - IDEO Shopping Cart]] - added
#[[ABC-Hampelmann]] - added
#[[Abschied mit Kieselsteinen]] - added
#[[Agile Game 3]] - added
#[[Agile Games Videos]] - added
#[[Agile Simulations & Games]] - added
#[[Alaskan Road Trip]] - added
#[[Alphabet Game]] - added
#[[An Agile Mind Game]] - added
#[[An der Nase führen]] - added
#[[Analyse der Gruppenstrukturen]] - added
#[[Animals at Play]] - added
#[[Annahmen widerlegen]] - added
#[[Antizipierende Fehlererkennung]] - added
#[[Appreciate Resources]] - added
#[[Arbeit mit Metaphern]] - added
#[[Arbeitssituationserfassung]] - added
#[[Audienz beim Papst]] - added
#[[Auf mehreren Stühlen]] - added
#[[Aufstellung mit Bodenankern]] - added
#[[Aufstellung mit Karten]] - added
#[[Ball Point Game]] - added
#[[Ball Point Game - Learning Agile]] - added
#[[Bang For The Buck Prioritization]] - added
#[[Bauklötze stapeln]] - added
#[[Beethovens Siebte]] - added
#[[Beratermarktübung]] - added
#[[Bildbetrachtung]] - added
#[[Bilder malen]] - added
#[[Bingo]] - added
#[[Blind vorstellen]] - added
#[[Blinde Baumeister]] - added
#[[Blitzlicht]] - added
#[[Bogenschießübung]] - added
#[[Bottleneck Game]] - added
#[[Boule einmal anders]] - added
#[[Brillenwechsel]] - added
#[[Brilliante Momente]] - added
#[[Business Value Game]] - added
#[[Bär-Verleihung]] - added
#[[Change Drivers and Change Levels]] - added
#[[Change Resistance Experiment]] - added
#[[Check-In]] - added
#[[Checkliste zur Problemidentifikation]] - added
#[[Circle of Questions]] - added
#[[Cobit Games Trailer]] - added
#[[Coin Sorting]] - added
#[[Collaborative Origami]] - added
#[[Collage-Übung]] - added
#[[Consider All Facts]] - added
#[[Constellations]] - added
#[[Dalmuti]] - added
#[[Das Bein muss ab!]] - added
#[[Das Schlimmste, was passieren kann]] - added
#[[Dastehen und ansehen]] - added
#[[Definition von Erfolg]] - added
#[[Der Film geht ab]] - added
#[[Der große Preis]] - added
#[[Diagnosekarussell]] - added
#[[Dinge wieder ins Rollen bringen]] - added
#[[Doggy Planning]] - added
#[[Dot Voting]] - added
#[[Double Doodle]] - added
#[[Drawing Game]] - added
#[[Drei Arten zuzuhören]] - added
#[[Drei Frageniveaus]] - added
#[[Drei Mann in einem Boot]] - added
#[[Drei Stühle des Walt Disney]] - added
#[[Drei Türen]] - added
#[[Drei, Zwei, Eins]] - added
#[[Druck und Gegendruck]] - added
#[[Dynamic-Facilitation]] - added
#[[Ehepartner an den Tisch]] - added
#[[Eier kochen]] - added
#[[Eierlegende Wollmilchsau]] - added
#[[Elefantastisch.de]] - added
#[[Elektrozaun]] - added
#[[Eltern-Ich-Botschaften]] - added
#[[Emotion Curve]] - added
#[[Ent-Lastung mit Symbol]] - added
#[[Entscheidungsmatrix]] - added
#[[Entzauberung von Latenzen]] - added
#[[Erfolge]] - added
#[[Erwartungsplakate]] - added
#[[Erwecken Sie Ihre Intuition zum Leben]] - added
#[[Example Please!]] - added
#[[Explorer, Shopper, Vacationer, Prisoner]] - added
#[[Fabrik im Seminarraum]] - added
#[[Facilitation Pattern]] - added
#[[Faktum oder Fantasie]] - added
#[[False Expectations Appear Realistic]] - added
#[[Farbportraits der Organisation]] - added
#[[Feedback]] - added
#[[Feedback 3. und 4. Ordnung]] - added
#[[Feedback erleben]] - added
#[[Feedback unter 4 Augen]] - added
#[[Finger fangen]] - added
#[[First Impressions]] - added
#[[Flintstone-Autobau]] - added
#[[Flusslauf]] - added
#[[Fluxx - Die Regeln bestimmen Sie!]] - added
#[[Football Scrum]] - added
#[[Force Field Analysis]] - added
#[[Forced-Relationship]] - added
#[[Fragen lernen]] - added
#[[Freeze and Clap]] - added
#[[Frühjahrsfasten]] - added
#[[Fusionsverhandlung]] - added
#[[Futur Perfect]] - added
#[[Führen aktiv und passiv]] - added
#[[Fünf Brillen]] - added
#[[GameTemplate]] - added
#[[Games for Learning - Taking fun seriously]] - added
#[[Gast-Interview]] - added
#[[Gedanken lesen]] - added
#[[Gegen- oder miteinander]] - added
#[[Gegenseitiges Interview]] - added
#[[Gegenwind]] - added
#[[Geheime Spielregeln]] - added
#[[Geheimnisse austauschen]] - added
#[[Gehirnjogging]] - added
#[[Gehirnknöpfe]] - added
#[[Gelüftetes Geheimnis]] - added
#[[Gerade Linie]] - added
#[[Gerichtsverhandlung]] - added
#[[Geschenke annehmen]] - added
#[[Gewinner-Dreieck]] - added
#[[Gewohnheiten ändern]] - added
#[[Gift - Gegengift]] - added
#[[Glad, Sad, Mad]] - added
#[[Go!]] - added
#[[Gordischer Knoten]] - added
#[[Großer Eierfall]] - added
#[[Grundannahmen sichtbar machen]] - added
#[[Gruppenpuzzle]] - added
#[[Haar in der Suppe]] - added
#[[Haltung zum Gegenüber]] - added
#[[Haus der Führung]] - added
#[[Haus-Baum-Hund]] - added
#[[Herrenlose Gegenstände]] - added
#[[Horrorszenarien]] - added
#[[Hotelbau]] - added
#[[Hypnotizing hypnotist]] - added
#[[Hör gut hin!]] - added
#[[Ich für dich]] - added
#[[Improv Games]] - added
#[[Indirektes Feedback]] - added
#[[Indoor-Spinnennetz]] - added
#[[Innere Bewegung sichtbar machen]] - added
#[[Ishikawa-Diagramm]] - added
#[[Ja, aber...-Übung]] - added
#[[Jammerlappen]] - added
#[[Jede Medaille hat zwei Seiten]] - added
#[[KJ-Methode]] - added
#[[KREATIV]] - added
#[[Kantor Four Player Model]] - added
#[[Kennenlern-Netz]] - added
#[[Kennenlernen über Selbst- und Fremdbild]] - added
#[[Kepner-Tregoe Matrix]] - added
#[[Klartext!]] - added
#[[Kleingruppenszenario]] - added
#[[Koffertheater]] - added
#[[Kombitechnik]] - added
#[[Komclips]] - added
#[[Konfliktanalyse]] - added
#[[Konfliktgeschichte]] - added
#[[Konkurrenzkampf der Supermärkte]] - added
#[[Kontextklärung]] - added
#[[Konzept-Steckbrief]] - added
#[[Kosmetikfirma]] - added
#[[Kreativ durch Karten]] - added
#[[Kreative Bildimpulse]] - added
#[[Kreisende Bälle]] - added
#[[Kreuzworträtsel ohne Schreiber]] - added
#[[LEGO Scrum Exercise]] - added
#[[La Paloma um 11 Uhr]] - added
#[[Landkarten-Übung]] - added
#[[Landschaftskunst]] - added
#[[Laufdiktat]] - added
#[[Leadership Game]] - added
#[[Lean Operations Game]] - added
#[[Learning Matrix]] - added
#[[Lego-Bagger]] - added
#[[Lern-Ziel-Skala]] - added
#[[Lerninhalte durchsieben]] - added
#[[Like to Like]] - added
#[[Litfasssäulen-Übung]] - added
#[[Loben, Interesse, Mängel, Offenheit]] - added
#[[Locate Strength]] - added
#[[Location, Location, Location]] - added
#[[Lokalisationsmethode]] - added
#[[Lost in Translation]] - added
#[[Lotsenübung]] - added
#[[Lösungs-Zwiebel]] - added
#[[M.O.S.E.-Brainstorming]] - added
#[[Macht der Sprache]] - added
#[[Making Pamphlets: Kanban Game]] - added
#[[Map Flap]] - added
#[[Market Place]] - added
#[[Marktleistungs-/ Marktsegmente-Matrix]] - added
#[[Marshmallow Challenge]] - added
#[[Me and My Shadow]] - added
#[[Meetchart]] - added
#[[Meeting]] - added
#[[Mehrtafelbefragung]] - added
#[[Mein Schlüssel erzählt meine Geschichte]] - added
#[[Merlin Exercise]] - added
#[[Metaphern malen]] - added
#[[Mipps und Wors]] - added
#[[Montagsrunde]] - added
#[[More Love]] - added
#[[Morphologische Matrix]] - added
#[[Movers and Shapers]] - added
#[[Moving Motivators]] - added
#[[Mr. Happy Face]] - added
#[[Multi-tasking]] - added
#[[Multitasking Is Evil]] - added
#[[My Worst Nightmare]] - added
#[[Möglichkeitszuhören]] - added
#[[NASA-Übung]] - added
#[[Nach Objekten angeln]] - added
#[[Name Game]] - added
#[[No-one Listens to Me]] - added
#[[Nominal Group Technique]] - added
#[[Nonverbales Kartenspiel]] - added
#[[Optische Täuschung Übung]] - added
#[[Orangenplantage]] - added
#[[Organisationsaufstellung]] - added
#[[Osborn-Checkliste]] - added
#[[PLANER-Modell]] - added
#[[PMI-Methode]] - added
#[[Paarvergleichs-Matrix]] - added
#[[Packing Peanuts]] - added
#[[Pair Draw]] - added
#[[Pair Ping-Ponging]] - added
#[[Paired Comparison Analysis]] - added
#[[Papier-Relief]] - added
#[[Papierflieger bauen]] - added
#[[Paradoxe Verschreibung]] - added
#[[Party-Spiele]] - added
#[[Pecha Kucha]] - added
#[[Penny Game]] - added
#[[People Polling]] - added
#[[Perfection Game]] - added
#[[Perlentauchen]] - added
#[[Peter und Hans]] - added
#[[Picture Me]] - added
#[[Pinocchio sagt die Wahrheit]] - added
#[[Planning Poker]] - added
#[[Playing the Ball Point game]] - added
#[[Plus / Delta]] - added
#[[Plus / Delta Team Reflection]] - added
#[[Pocket-sized Principles]] - added
#[[Polar bears and dogs playing]] - added
#[[Positive TEAM-Akronyme finden]] - added
#[[Postkarten-Schnipsel]] - added
#[[Praxis Jugendarbeit]] - added
#[[Pressekonferenz]] - added
#[[Presto Manifesto]] - added
#[[Problemdreieck]] - added
#[[Process Doodle]] - added
#[[Product Box]] - added
#[[Progressive Abstraktion]] - added
#[[Project Pinwheel]] - added
#[[Projekt-Hüte]] - added
#[[Prune the Product Tree]] - added
#[[Punkte für Wissen]] - added
#[[Quadrat-Übung]] - added
#[[Quantensprung im Unternehmen]] - added
#[[Question Game]] - added
#[[Random Input Methode]] - added
#[[Reactive Decision Making]] - added
#[[Real Time Strategic Change Konferenz]] - added
#[[Regelmäßiges Review]] - added
#[[Reiche Ernte]] - added
#[[Reizwortanalyse]] - added
#[[Remember the Future]] - added
#[[Reporter]] - added
#[[Resort Brochure]] - added
#[[Ressourcenbild]] - added
#[[Retrospective Brainstorming]] - added
#[[Retrospective Clustering]] - added
#[[Retrospective Prime Directive]] - added
#[[Retrospective Timeline]] - added
#[[Return On Time Invested]] - added
#[[Rezeptverschreibung]] - added
#[[Rollentausch]] - added
#[[Rückenpost]] - added
#[[SMART Goals]] - added
#[[SWOT Analyse]] - added
#[[Satisfaction Histogram]] - added
#[[Scaling Dance]] - added
#[[Scaling Highlights]] - added
#[[Schlüsselbeziehungen]] - added
#[[Schubladen-Denken]] - added
#[[Schuldige der Woche]] - added
#[[Schuppen]] - added
#[[Schwebender Stab]] - added
#[[Schweigetechnik]] - added
#[[Scrum Lego City]] - added
#[[Scrum Simulation using Lego]] - added
#[[Seilquadrat]] - added
#[[Selbstmotivation]] - added
#[[Semantische Intuition]] - added
#[[Sharing Values]] - added
#[[Show and Tell]] - added
#[[Sinne schärfen]] - added
#[[Slideluck Potshow]] - added
#[[Sockeln]] - added
#[[Solution Circle]] - added
#[[Solution Focus]] - added
#[[Soziodramatisierung]] - added
#[[Speed Boat]] - added
#[[Speed Dating]] - added
#[[Spekulieren zu dritt]] - added
#[[Spider Web]] - added
#[[Spiegel-Übung]] - added
#[[Spiegelbild]] - added
#[[Stages of Play]] - added
#[[Starfish]] - added
#[[Start Your Day]] - added
#[[Start mit Blitzlicht]] - added
#[[Statustreffen]] - added
#[[Stein-Projekt]] - added
#[[Stimmenfangen]] - added
#[[Stimmungsbarometer]] - added
#[[Story of Our Sprints]] - added
#[[Story-Circle]] - added
#[[Stringball]] - added
#[[Stromspiel]] - added
#[[Stuart Brown: Why play is vital — no matter your age]] - added
#[[Superposition]] - added
#[[Sustaining Agility]] - added
#[[Sustaining Agility Game]] - added
#[[Synektik]] - added
#[[Systemische Strukturaufstellung]] - added
#[[Szenenbild]] - added
#[[TOWS Matrix]] - added
#[[Taking it Forward — From Ideas to Action]] - added
#[[Tangled Mess]] - added
#[[Tangram]] - added
#[[Taschen-Trick]] - added
#[[TastyCupCakes.com]] - added
#[[Team Radar]] - added
#[[Team als Organismus]] - added
#[[Teamgalerie]] - added
#[[Teamgeist]] - added
#[[Teams ohne Führer]] - added
#[[Teamschiff]] - added
#[[Teamuhr]] - added
#[[Telephone Game]] - added
#[[Temperature Reading]] - added
#[[Teppich falten]] - added
#[[Texte rezitieren]] - added
#[[The 4L's]] - added
#[[The Apprentice]] - added
#[[The Backlog is in the Eye of the Beholder]] - added
#[[The Importance of Play 1]] - added
#[[The Importance of Play 2]] - added
#[[The Problem with Principles]] - added
#[[The Project Adventure Map]] - added
#[[The Project Management Game]] - added
#[[Themenbaum]] - added
#[[Theory of Constraints Dice Game]] - added
#[[Thumb Wars]] - added
#[[Totenbettübung]] - added
#[[Train Game]] - added
#[[Training - Spiel - Transfer]] - added
#[[Training Games]] - added
#[[Transferwatcher]] - added
#[[Triangel]] - added
#[[Triangle Game]] - added
#[[Triple Nickels]] - added
#[[Turbo-Retrospektive]] - added
#[[Turmbau mit verteilten Rollen]] - added
#[[Turmbauübung]] - added
#[[Umbrella-Technik]] - added
#[[Umnutzen]] - added
#[[Unlösbare Aufgaben]] - added
#[[Unternehmensalltag]] - added
#[[Vernissage]] - added
#[[Video: Speed Boat — Innovation Game]] - added
#[[Vier Ecken hat der Raum]] - added
#[[Vier Kategorien]] - added
#[[Vier Zimmer der Veränderung]] - added
#[[Von der Hierarchie zur Gruppe]] - added
#[[Voodoo-Puppen]] - added
#[[Vor-Stellung]] - added
#[[Vorstellung mit verbundenen Augen]] - added
#[[Vorwurfsmühle]] - added
#[[Wahrnehmung schärfen]] - added
#[[Walt Disney Kreativitätsstrategie]] - added
#[[Warum-Warum-Diagramm]] - added
#[[We're Having a Party]] - added
#[[Wem folgt das Team?]] - added
#[[Wer kommt zum Essen?]] - added
#[[We’re Having a Party]] - added
#[[What Were They Thinking?]] - added
#[[White Elephant Sizing]] - added
#[[Who is who?]] - added
#[[Widersprüchliches Feedback]] - added
#[[Wie gefällt dir dein Platz?]] - added
#[[Wie-Wie-Diagramm]] - added
#[[Wilderdome Games for Teambuilding]] - added
#[[Wissensbaum]] - added
#[[Wissenstausch]] - added
#[[Word at a Time Letter]] - added
#[[Working Agreements]] - added
#[[Workout]] - added
#[[World Café]] - added
#[[Worte finden]] - added
#[[Wortsalat]] - added
#[[Wäscheklammerspiel]] - added
#[[XP Game]] - added
#[[XP Game – Scrum variant]] - added
#[[Yellow Brick Road]] - added
#[[You Are Not in Control]] - added
#[[Zauberstab]] - added
#[[Zaubertrick]] - added
#[[Zielorientierte Aktive Kooperative  Kleingruppenarbeit]] - added
#[[Zufalleinstiegstechnik]] - added
#[[Zuhörer-Rollen verteilen]] - added
#[[Zukunftsfabrik]] - added
#[[Zusammengeschnürt]] - added
#[[Zwei wahr, eins gelogen]] - added
<<<
On Montag, 21. Mai 2012 04:13:38, MichaelTarnowski imported 31 tiddlers from
[[P:\mtWiki\mtWiki.html|P:\mtWiki\mtWiki.html]]:
<<<
#[[Games]] - added
#[[Games for Advanced Training]] - added
#[[Games for Agile]] - added
#[[Games for Coaching]] - added
#[[Games for CobIT]] - added
#[[Games for Communication]] - added
#[[Games for Conflict Resolution]] - added
#[[Games for Creativity]] - added
#[[Games for Flow]] - added
#[[Games for Ideamanagement]] - added
#[[Games for Innovation]] - added
#[[Games for Kaizen]] - added
#[[Games for Kanban]] - added
#[[Games for Knowledge Management]] - added
#[[Games for Leadership]] - added
#[[Games for Lean]] - added
#[[Games for Learning]] - added
#[[Games for Meeting]] - added
#[[Games for Mnemonic]] - added
#[[Games for Moderation]] - added
#[[Games for Motivation]] - added
#[[Games for Negotiation]] - added
#[[Games for Organizational Change Management]] - added
#[[Games for Outdoor]] - added
#[[Games for Presentation]] - added
#[[Games for Problem Solving]] - added
#[[Games for Process Improvement]] - added
#[[Games for Retrospectives]] - added
#[[Games for Selfmanagement]] - added
#[[Games for Teambuilding]] - added
#[[Serious Games]] - added
<<<
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!Improv Games
<script> return "<<tiddler [[Improv Games##Overview]]>>" </script>

!Objectives

!Timing


!Audience
Group

!Materials
*

!Procedure

!Debriefing


/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://accc.posterous.com/improv-for-agile
/***
|''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);})();
//%/
<data>{"abstract":"[[Indirektes Feedback]], es gibt immer wieder Gruppen, die sehr zurückhaltend in Sachen [[Feedback]] sind. Dann hilft es manchmal, den ~Feedback-Nehmer zu verstecken."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://missmobile.files.wordpress.com/2010/03/feedback.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Indirektes Feedback","abstract") </script>

!Indirektes Feedback
<script> return "<<tiddler [[Indirektes Feedback##Overview]]>>" </script>

!Objectives
* alle am Feedback beteiligen

!Timing
60 min

!Audience
Group

!Materials
* Pinnwand

!Procedure
Dazu setzt sich der ~Feedback-Nehmer hinter eine (Pin-)Wand, aber so, dass der Trainer ihn beobachten kann, er aber für die ~Feedback-Geber nicht zu sehen ist. 
Dann wird die Gruppe aufgefordert, über den Protagonisten wertschätzend und konstruktiv zu diskutieren. Der ~Feedback-Nehmer hört sich an, wie die anderen über ihn sprechen. 
Der Trainer achtet auf die Körpersprache des ~Feedback-Nehmers und unterbricht die Übung, wenn er den Eindruck hat, dass es ihm nicht gut zu gehen scheint.

!Debriefing
Wenn alles Wesentliche gesagt ist, kehrt der ~Feedback-Nehmer in die Gruppe zurück und berichtet über seine [[Erfahrungen|Erfahrung]], die er hinter der Wand gemacht hat.

!Quelle
Eva Neumann / Sabine Heß: Anleitung für verschiedene Akte, managerSeminare 12/2006, S.61.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Indirektes+Feedback+%28jt%29.html]]
<data>{"abstract":"Das [[Indoor-Spinnennetz]] ist eine recht bekannte ~Outdoor-Übung, hier die vereinfachte Variante für den Seminarraum.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.muehlstrassenbande.de/media/Web~spinnennetz.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Indoor-Spinnennetz","abstract") </script>

!~Indoor-Spinnennetz
<script> return "<<tiddler [[Indoor-Spinnennetz##Overview]]>>" </script>
Das [[Indoor-Spinnennetz]] ist eine recht bekannte [[Outdoor-Übung|outdoor]], bei der die Teilnehmer sich gegenseitig durch die Maschen eines zwischen zwei Bäumen oder Pfosten gespannten Netzes aus Seilen helfen. Dabei dürfen sie das Seil nicht berühren, sonst geht es wieder zurück.

Diese Variante ist eine "abgespeckte" Version für schlechtes Wetter und müsste eigentlich "Durchs Fenster klettern" heißen.

!Objectives
* Zusammenarbeit
* Teambuilding

!Timing


!Audience
Group


!Materials
* Aus zwei C-förmigen Pappteilen ein Fenster zusammenkleben, das vom Durchmesser gerade so groß sein sollte, dass ein Mensch hindurch kriechen kann, ohne die Ränder zu berühren. 


!Procedure
# Die Teilnehmer teilt man sodann in Gruppen ein und schickt sie in die Pause. 
# Wenn sie zurückkommen, finden sie dieses Fenster in den Türrahmen geklebt vor, und zwar so hoch, dass sie nicht ohne fremde Hilfe hindurchklettern können.
# Neben der Tür hängt ein Schild, auf dem steht: //"Bringen Sie Ihr Team durch das Fenster in den Seminarraum."//


!Debriefing
Während die [[Teams|Team]] versuchen, das [[Problem]] zu lösen, beobachtet sie der Trainer dabei. Nachdem alle durch das Fenster geklettert sind bzw. gehoben wurden, erfolgt die Auswertung darüber, wie man diese Aufgabe gelöst hat, was jeder getan hat und wie man auf die anderen reagiert hat.

!Quelle
wirtschaft + weiterbildung 2/2003, toolbox, Tipps für ~Weiterbildungs-Professionals, S. 29

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Indoor-Spinnennetz+%28jt%29.html]]
!Welcome
Welcome to this games collection. The games can be used to facilitate teambuilding, moderation, problem solving, and agile software development.

''Do //NOT// use the browser's backward / forward buttons for navigation — you will leave this site immediately.''

This site is constructed by using the [[TiddlyWiki methode|http://tiddlywiki.com]]. It is //ONE// large HTML file containing several small chunks of information, so called tiddlers!!<br><br>
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.5|
|Author|[[EricShulman]] - 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
<<<
2009.04.11 [1.9.5] pass current tiddler object into wrapper code so it can be referenced from within 'onclick' scripts
2009.02.26 [1.9.4] in $(), handle leading '#' on ID for compatibility with JQuery syntax
|please see [[InlineJavascriptPluginInfo]] for additional revision details|
2005.11.08 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.InlineJavascriptPlugin= {major: 1, minor: 9, revision: 5, date: new Date(2009,4,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) { // external script library
				var script = document.createElement("script"); script.src = src;
				document.body.appendChild(script); document.body.removeChild(script);
			}
			if (code) { // inline code
				if (show) // display source in tiddler
					wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
				if (label) { // create 'onclick' command link
					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,tiddler){"+fixup+"\n};_out(this,this.tiddler);"
					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 script immediately
					var fixup=code.replace(/document.write\s*\(/gi,'place.innerHTML+=(');
					var c="function _out(place,tiddler){"+fixup+"\n};_out(w.output,w.tiddler);";
					try	 { var out=eval(c); }
					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();
}
//}}}

// // GLOBAL FUNCTION: $(...) -- 'shorthand' convenience syntax for document.getElementById()
//{{{
if (typeof($)=='undefined') { function $(id) { return document.getElementById(id.replace(/^#/,'')); } }
//}}}
/***
|Name|InlineTabsPlugin|
|Source|http://tw.lewcid.org/sandbox/#InlineTabsPlugin|
|Version|0.0.0|
|Author|[[SaqImtiaz]]|
|License|unknown|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|Easy way to realize Tabs.|
***/
//{{{
config.formatters.unshift( {
	name: "inlinetabs",
	match: "\\<tabs",
        lookaheadRegExp: /(?:<tabs (.*)>\n)((?:.|\n)*?)(?:\n<\/tabs>)/mg,
	handler: function(w)
	{
	    this.lookaheadRegExp.lastIndex = w.matchStart;
	    var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
	    if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
			{
             var cookie = lookaheadMatch[1];
  	         var wrapper = createTiddlyElement(null,"div",null,cookie);
	         var tabset = createTiddlyElement(wrapper,"div",null,"tabset");
             tabset.setAttribute("cookie",cookie);
             var validTab = false;
             var firstTab = '';
             var tabregexp = /(?:<tab (.*)>)(?:(?:\n)?)((?:.|\n)*?)(?:<\/tab>)/mg;
             while((m = tabregexp.exec(lookaheadMatch[2])) != null)
                 {
		         if (firstTab == '') firstTab = m[1];
		         var tab = createTiddlyButton(tabset,m[1],m[1],story.onClickInlineTab,"tab tabUnselected");
		         tab.setAttribute("tab",m[1]);
		         tab.setAttribute("content",m[2]);
		         tab.title = m[1];
		         if(config.options[cookie] == m[1])
                     validTab = true;
                 }
             if(!validTab)
                 config.options[cookie] = firstTab;
	         w.output.appendChild(wrapper);
	         story.switchInlineTab(tabset,config.options[cookie]);
             w.nextMatch = this.lookaheadRegExp.lastIndex;
			}
	}
})

Story.prototype.switchInlineTab = function(tabset,tab)
{
    var cookie = tabset.getAttribute("cookie");
    var theTab = null
    var nodes = tabset.childNodes;
    for(var t=0; t<nodes.length; t++)
    if(nodes[t].getAttribute && nodes[t].getAttribute("tab") == tab)
        {
        theTab = nodes[t];
        theTab.className = "tab tabSelected";
        }
    else
        nodes[t].className = "tab tabUnselected"
	if(theTab)
		{
		if(tabset.nextSibling && tabset.nextSibling.className == "tabContents")
			tabset.parentNode.removeChild(tabset.nextSibling);
		var tabContent = createTiddlyElement(null,"div",null,"tabContents");
		tabset.parentNode.insertBefore(tabContent,tabset.nextSibling);
		wikify(theTab.getAttribute("content"),tabContent);
		if(cookie)
			{
			config.options[cookie] = tab;
			saveOptionCookie(cookie);
			}
		}
}
    
Story.prototype.onClickInlineTab = function(e)
{
    story.switchInlineTab(this.parentNode,this.getAttribute("tab"));
    return false;
}
//}}}
<data>{"abstract":"[[Innere Bewegung sichtbar machen]], das Konfliktgespräch im [[Team]] hat zur Lösung des [[Konfliktes|Konflikt]] beigetragen, doch die Stimmung ist immer noch angespannt. Durch eine kleine [[Aufstellung]] kann man die  [[Veränderung|Organizational Change]] sichtbar werden lassen.   "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://abhirama-yoga.de/abhirama-yoga/Bewegung_2_files/Bewegung2-filtered.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Innere Bewegung sichtbar machen","abstract") </script>

!Innere Bewegung sichtbar machen
<script> return "<<tiddler [[Innere Bewegung sichtbar machen##Overview]]>>" </script>
Im Rahmen einer Klärungshilfe gelingt es, dass alle Beteiligten eines zerstrittenen [[Teams]] mehr Verständnis zeigen und sich die Stimmung wieder beruhigt. 
Dennoch wirken die Fronten weiter verhärtet. Der Konfliktberater hat das Gefühl, dass sich eigentlich etwas bewegt hat, doch kommt dies in den Äußerungen noch nicht wirklich zum Ausdruck.

!Objectives
* Konfliktbewältigung

!Timing
60 min

!Audience
Group

!Materials
* 

!Procedure
Spontan entscheidet er sich, die Bewegung im Raum sichtbar zu machen. Dazu bittet er denjenigen, um den sich der [[Konflikt]] drehte (X), in die Mitte des Raumes zu stellen. 
Alle anderen fordert er auf, sich so aufzustellen, wie sie sich zu Herrn X fühlten, bevor das Gespräch begann. 
Dann bittet er sie, darzustellen, was sich durch das Gespräch verändert hat, sprich: Wie weit oder nah sie sich ihm jetzt fühlen. 

!Debriefing
Es kommt Bewegung in die Gruppe, nun entspannt sich die Atmosphäre spürbar, die Beteiligten können ausdrücken, was sich verändert hat.

!Quelle
Christian Prior: Innere Bewegung sichtbar machen, Zeitschrift für Konfliktmanagement 4/2007, S.121

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Innere+Bewegung+sichtbar+machen+(jt).html]]
/***
|Name|InsertSmileyPlugin|
|Version|<<getversion smiley>> (<<getversiondate smiley "DD MMM YYYY">>)|
|Author|[[AlanHecht]]|
|Type|macro, plugin|
|Source|http://www.personal.psu.edu/staff/a/c/ach12/tiddlywiki/extensions.htm#%5B%5BInsertSmiley%20(TW%202.0%20compatible)%5D%5D|
|Description|Inserts a small smiley graphic at the location of the macro and does not require any external graphics.  The method used should work on most current browser platforms.|

''Syntax:'' << {{{smiley ;-)}}}>>
Examples: <<smiley>> <<smiley :-(>> <<smiley ;-)>> <<smiley :-|>> <<smiley :-D>>

''Notes:'' A regular smiley <<smiley>> will be displayed if no smiley string is provided.  Most smileys will work with or without the "nose" -- e.g. {{{;-)}}} is the same as {{{;)}}}

''Revision History:''
 v0.1.0 (20 July 2005): initial release
 v0.1.1 (20 July 2005): << {{{smiley}}}>> with no parameter displays a standard smiley

''Code section:''
***/
//{{{
version.extensions.smiley = {major: 0, minor: 1, revision: 1, date: new Date("Jul 20, 2005")};
//}}}
//{{{
config.macros.smiley = {}
config.macros.smiley.handler = function(place,macroName,params)
{
	var palette = ["transparent","#000000","#1a1507","#352e18","#464646","#666666","#a3141e","#b06b63","#cc9900","#dd9030","#dddddd","#e89d00","#edc32a","#f3cb3c","#fdf201","#fdf526","#ff3149","#ffac00","#ffbf06","#ffc846","#ffcc66","#ffd758","#ffdd01","#ffea7b","#ffed55","#ffffff"];
	var data = params;
	var imageMap = null;
	if(!data[0] || data[0] == ":-)" || data[0] == ":)")
		imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyffyffuujbaadyyyeeyeetttdabppppddyddpmmlbbwoooooooowsrlbbwwpooooowwmrlbbwwboooowwwbllbbwwwboooowbrllbacwwwbbbbbrllcaablswwwwsrrlibaaablsssrrllibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
	else if(data[0] == ":-(" || data[0] == ":(")
		imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyyyyyyuujbaadyyyeeyeetttdabppppddyddpmmlbbwoooooooowsrlbbwwpooooowwmrlbbwwoooooowwrllbbwwwwbbbbbsrllbacwwbwwwwsbllcaablswwwwsrrlibaaablsssrrllibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
	else if(data[0] == ";-)" || data[0] == ";)")
		imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyxxxxxuujbaadyyyxxxeetttdabppphddyddpmmlbbwoooooooowsrlbbwwpooooowwmrlbbwwboooowwwbllbbwwwboooowbrllbacwwwbbbbbrllcaablswwwwsrrlibaaablsssrrllibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
	else if(data[0] == ":-|" || data[0] == ":|")
		imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyffyffuujbaadyyyeeyeetttdabppppddyddpmmlbbwoooooooowsrlbbwwpooooowwmrlbbwwoooooowwrllbbwwwwbbbbbsrllbacwwwwwwwsrllcaablswwwwsrrlibaaablsssrrllibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
	else if(data[0] == ":-D" || data[0] == ":D")
		imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyeeyeeuujbaadyyyeeyeetttdabppppyyyyypmmlbbwbbbbbbbbbbblbbwbkzzzzzzzkbwbbwbfzzzzzzzfbwbbwbkzzzzzzzkbwbacwbkzzzzzkblcaablsbkzzzkblibaaablsbbbbblibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
	else
		createTiddlyElement(place,"span",null,"errorNoSuchMacro","unknown smiley");
	if(imageMap)
		{
		var box = createTiddlyElement(place,"span",null,"smiley",String.fromCharCode(160));
		box.style.position = "relative";
		box.style.width = "15px";
		box.style.height = "15px";
		box.style.marginLeft = "1px";
		box.style.marginRight = "1px";
		box.style.paddingRight = "12px";
		box.style.verticalAlign = "top";

		//now divide into 15x15 grid and create each pixel
		// rows
		for(r=0; r<15; r++)
			{
			// columns
			for(c=0; c<15; c++)
				{
				//create each pixel with the correct background
				var pix = document.createElement("img");
				pix.className = "smileyPixel";
				pix.style.position = "absolute";
				pix.border = 0;
				pix.style.top = r + "px";
				pix.style.left = c + "px";
				pix.style.width = "1px";
				pix.style.height = "1px";
				pix.style.backgroundColor = palette[imageMap.charCodeAt((r*15)+c)-97];
				pix.src = "data:image/gif,GIF89a%01%00%01%00%91%FF%00%FF%FF%FF%00%00%00%C0%C0%C0%00%00%00!%F9%04%01%00%00%02%00%2C%00%00%00%00%01%00%01%00%40%02%02T%01%00%3B";
				box.appendChild(pix);
				}
			}
		}
}
//}}}
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://comas.offeneslernen.de/Media/app/4/Bilder-Lerntechniken/Fishbone.bmp>>
<data>{"abstract":"Das Fishbone- oder [[Ishikawa-Diagramm]] ist eine Methode zur Problemanalyse. Es stellt die Beziehung zwischen Ursachen und Wirkung in Form einer Fischgräte grafisch dar und lässt sehr leicht weitere Differenzierungen der Ursachen zu. Über dieses Diagramm können die wahrscheinlichsten Ursachen für ein [[Problem]] herausgefunden werden."}</data>
//synonym:// ''~Fischgraeten-Diagramm'', ''~Fishbone-Diagramm''
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Ishikawa-Diagramm","abstract") </script>
Find the cause of a problem by checking certain categories of possible [[root causes|Root Cause Analysis]]. Typical categories are [[5M Methode]] and [[7M Methode]] - Machine, Method, Material, Man Power, Money, Milieu -, [[8P Methode]] - Product (=Service), Price, Place, Promotion, People, Process, Physical Evidence, Productivity & Quality -, [[6S Methode]] - Seiri (Sorting), Seiton (systematisation), Seisô (cleaning), Seiketsu (standardisation), Shitsuke (self-discipline), Shûkan (adaption).


!~Ishikawa-Diagramm
Das nach seinem Erfinder, dem Japaner [[Kaoru Ishikawa|http://www.projektmagazin.de/glossar/gl-0518.html]], benannte Diagramm ist die Visualisierung eines Problemloesungsprozesses, bei dem nach den primaeren Ursachen eines Problemes gesucht wird. Es ist vergleichbar mit dem [[Warum-Warum-Diagramm]], [[Ursache-Wirkungs-Diagramm]].
Das ~Fishbone-Diagramm ist gut geeignet für Gruppenarbeiten, dient als gute Diskussionsgrundlage und ermöglicht vielseitige Betrachtungsweisen. Sie fordert und fördert beide Gehirnhälften. Allerdings sind keine vernetzten Ursache-~Wirkungs-Zusammenhänge darstellbar und Wechselwirkungen und zeitliche Abhängigkeiten werden nicht erfasst. 

{{center{<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.kit-seminare.de/library/images/Ishikawa.588x263.jpg>>}}}

Ausgangspunkt ist ein horizontaler Pfeil nach rechts, an dessen Spitze das moeglichst praegnant formulierte [[Problem]] steht (z.B.: "zu lange Durchlaufzeit DLZ"). Auf diesen Pfeil zielen nun von oben und unten schraege Ursachenpfeile, die dem ~Ishikawa-Diagramm auch die weit verbreiteten Bezeichnungen Fishbone-, Fischgraeten- oder ~Tannenbaum-Diagramm eingetragen haben. Diese Hauptpfeile werden meist mit den Grundkategorien //Material, Maschine, Methode und Mensch// bezeichnet. Weitere typische Kategorien sind: //Umfeld, Management, [[Messung]] und Prozesse//.
Auf diese Hauptpfeile zielen nun wiederum horizontale Pfeile, an denen die gefundenen [[Problemursachen|Ursache-Wirkungs-Analyse]] eingetragen werden. Im Wechsel der schraegen und horizontalen Pfeile kann nun nach immer tieferen Ursachen geforscht werden. Als Faustregel gilt hierbei die Technik der [[W-Fragen]] und der [[5 Ms|5M Methode]] bzw. [[7 Ms|7M Methode]], um an die eigentliche Wurzel des Problems zu gelangen.

!Vorgehensweise
In folgenden Schritten wird vorgegangen:
!!Problemdefinition, ~Ist-Analyse: Wie wirkt sich das Problem aus?
Mit Hilfe des ~Fishbone-Diagramms wird ein [[Problem]] zunächst auf die wesentlichen Ursachen zurückgeführt. Es empfiehlt sich ein [[Brainstorming]]. Im Das soll heißen, dass Anschluss beginnt man mit der Ursachenfindung. Die Ursachen werden im Hinblick auf die Auswirkung auf das [[Problem]] in einem Diagramm dargestellt. 
!!~Ursache-Wirkungs-Diagramm zeichnen und die Haupteinflussgrößen eintragen 
Ausgangspunkt ist ein horizontaler Pfeil nach rechts, an dessen Spitze das möglichst prägnant formulierte Problem/Ziel steht - beispielsweise: schlechte Kundenberatung. Darauf stoßen schräg die Pfeile der Haupteinflussgrößen, die zu einer bestimmten Wirkung führen. (Ein Pfeil bedeutet: "... trägt dazu bei, dass ...")
Zur Ermittlung der Haupteinflussgrößen eignen sich die [[5 Ms|5M Methode]]: //Mensch, Methode, Umfeld/Milieu, Material, Maschine/Mittel/Werkzeu,// bzw. ergänzt um //Management, [[Messung]]//, die [[7 Ms|7M Methode]], da diese Größen auf fast alle Probleme einwirken. 
!!Haupt- und Nebenursachen erarbeiten 
Unter Verwendung von [[Kreativitätstechniken]] wie [[Brainstorming]] werden potentielle Ursachen erforscht. Bei sorgfältiger Ausführung können zu allen Wirkungen verschiedene [[Ursachen|Ursache-Wirkungs-Analyse]] aufgezeigt werden. In Form von kleineren Pfeilen werden diese auf der Linie der jeweiligen Haupteinflussgrößen dargestellt. Liegen diesen Ursachen weitere Ursachen zugrunde, so kann weiter verzweigt werden.

Als Faustregel gilt die [[Frageformen]] der "[[5 Warums|W-Fragen]]" ([[Warum-Warum-Diagramm]]). Um an die eigentliche Wurzel des Problems zu gelangen, wird bis zu fünfmal "Warum" gefragt. Für jedes Warum wird eine neue Fischgräte eingezeichnet, die ein weiteres Detail des Problems liefert. So ist es möglich, sehr komplexe Problemstellungen bzw. ganze Prozesse gut überschaubar zu gestalten.
!!Vollständigkeit überprüfen 
Es wird überprüft, ob wirklich alle möglichen Ursachen berücksichtigt wurden. Durch die Visualisierung ist es oft leichter, weitere Ursachen zu finden.
!!Auswahl der wahrscheinlichen Aussagen 
Potentielle Ursachen werden bezüglich ihrer Bedeutung und Einflussnahme auf das [[Problem]] gewichtet. Die Ursache mit der höchsten Wahrscheinlichkeit wird bestimmt.
!!Überprüfung der wahrscheinlichsten Ursache auf Richtigkeit und Lösungssuche 
Die Methode eignet sich zur Erörterung aller Problemstellungen in einem [[Team]]. Sie ist leicht erlernbar und kann sehr rasch und unkompliziert eingesetzt werden. So wird eine schnelle Reaktion auf plötzlich auftretende Probleme ermöglicht. Die Problemlösenden können alle Aspekte des Problems betrachten, um zu einer systematischen und vollständigen Ermittlung von Problemursachen zu kommen.


!Objectives
* Find the [[root cause|Root Cause Analysis]] of a problem. 
* Generate Insights in a [[retrospective|Agile Retrospectives]]

!Timing
30min - 60min

!Materials
* flipchart
* index cards / sticky notes

!Audience
Group

!Procedure
# Choose meaningful categories. Typical categories are [[5M Methode]] and [[7M Methode]] - Machine, Method, Material, Man Power, Money, Milieu -, [[8P Methode]] - Product (=Service), Price, Place, Promotion, People, Process, Physical Evidence, Productivity & Quality -, [[6S Methode]] - Seiri (Sorting), Seiton (systematisation), Seisô (cleaning), Seiketsu (standardisation), Shitsuke (self-discipline), Shûkan (adaption)


for your context

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.sanguma.com/new_website/images/71132691740B29E701877D3C17A0D00D1F049C4C.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.kit-seminare.de/library/images/Ishikawa.588x263.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://comas.offeneslernen.de/Media/app/4/Bilder-LernenLernen1/Fishbone.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.bigboards.com/images/20571_Fishbone_505x379.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://blogs.msdn.com/blogfiles/nickmalik/WindowsLiveWriter/ThePrerequisitesforAvoidingJaBOWS_DE1F/image_thumb.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline|http://mwonline.de/online/themen/3/Ideenfabrik/Ideenfabrik.html]]
<data>{"abstract":"[[Ja, aber...-Übung]], nein, das ist nicht der Tipp, wie man auf Einwände reagiert, sondern wie man seine Schlagfertigkeit schult. Eine von Schauspielern abgeschaute Übung, die zudem Spaß macht."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://p3.focus.de/img/gen/P/H/HBPH2FuW_Pxgen_r_220xA.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Ja, aber...-Übung","abstract") </script>

!Ja, aber...-Übung
<script> return "<<tiddler [[Ja, aber...-Übung##Overview]]>>" </script> 
Spontan und schlagfertig reagieren - wer möchte das nicht können? Erst recht, wenn er in einer Präsentation angesprochen wird. Eine Übung, die mit jeweils zwei Teilnehmern durchgeführt wird, ist die [[Ja, aber...-Übung]]. 

!Objectives
* Rhetorik, Schlagfertigkeit

!Timing
30 min

!Audience
Group / Individual

!Materials
* 

!Procedure
Dabei geht es darum, sofort und ohne Einschaltung einer "zensierenden Instanz" zu reagieren bzw. zu improvisieren. 
Partner A stellt hierbei Fragen, die B mit //"Ja"// beantwortet, dann jedoch sofort ein //"aber..."// anfügt - was auch immer ihm dabei einfällt. 

{{indent{ {{borderless{
|//"Hast Du heute morgen gut gefrühstückt?"// |//"Ja, aber mir ist die Wurst im Hals steckengeblieben, als ich die Zeitung aufschlug!"// |
| &nbsp;&nbsp;  | &nbsp;&nbsp;  |
|//"Du liest doch gar keine Zeitung!"// |//"Ja, aber ich hatten noch eine alte Ausgabe, in die der Salat vom letzten Einkauf eingewickelt war!"// |
|usw. | |
}}} }}}

!Debriefing

!Quelle
Susanne Nerzger: Von Schauspielern lernen, wirtschaft & weiterbildung 8/2001, S.43, nach Keith Johnstone: Improvisation und Theater, Alexander Verlag.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Präsentation]<<tiddlerList tags:"presentation,-newTemplate" header:"Übungen Präsentation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Ja%2C+aber...-%DCbung]]
<data>{"abstract":"[[Jammerlappen]]: Seminarteilnehmer, die jammern? Gibt es, oder? Warum dann nicht mal so richtig gemeinsam jammern? Eine Übung mit Humor."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://hier-ist-dein-schild.com/heuldoch.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Jammerlappen","abstract") </script>

!Jammerlappen
<script> return "<<tiddler [[Jammerlappen##Overview]]>>" </script> 

!Objectives
* Distanz zum [[Problem]] aufbauen 
* Sich vom [[Problem]] lösen.

!Timing

!Audience
Group:  Gruppen von 5-7 Teilnehmern 

!Materials
* 1 normaler Putzlappen

!Procedure
Teilnehmern sitzen in kleinen Stuhlkreisen zusammen. In die Mitte wird ein normaler Putzlappen gelegt, der "Jammerlappen".

Aufgabe ist es nun, der Reihe nach zu jammern. Alles ist erlaubt: jammern, klagen, nörgeln, zetern - so kann man alles, was einem auf der Seele liegt, mal loswerden. 
Dabei kann "frei" gejammert werden, aber je nach Seminarthema auch zu einem bestimmten Schwerpunkt (z.B. über [[Mitarbeiter]], das Unternehmen, den Stress am Arbeitsplatz etc.) 
Jeder hat drei Minuten Zeit, die anderen hören nur zu. Es wird nicht kommentiert und nicht diskutiert.

!Debriefing
Fragen für die Auswertung können sein:
* //Wie ging es mir während der Übung, als ich jammerte?//
* //Wie ging es mir, als die anderen jammerten?//
* //Wie fühle ich mich jetzt?//

Die Übung hat eine befreiende Wirkung, vor allem, wenn man beim Jammern etwas übertreibt. Dies führt dazu, Distanz zum [[Problem]] aufzubauen und sich so vom [[Problem]] zu lösen.

!Quelle
[[Zamyat M. Klein: Das tanzende Kamel. Kreative und bewegte Spiele für Trainings und Seminare, managerSeminare 2008, S. 152-154| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FDas-tanzende-Kamel-Kreative-Trainings%2Fdp%2F3936075719%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214996144%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Fortgeschrittene Seminarbausteine]<<tiddlerList tags:"advanced_training,-newTemplate" header:"Übungen Fortgeschrittene Seminarbausteine">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Jammerlappen+%28jt%29.html]]
/***
|Name|JavascriptShellPlugin|
|Source|http://www.TiddlyTools.com/#JavascriptShellPlugin|
|Version|1.1.0|
|Author|[[EricShulman]] - 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|enter and invoke javascript in a command line|

!!!!!Usage
<<<
{{{<<javascriptShell>>}}}
{{smallform{<<javascriptShell>>}}}
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
JavascriptShellPlugin
<<<
!!!!!Revision History
<<<
''2007.10.21 [1.1.0]'' corrected "shellcommands" function declarations to fix numerous fatal "object error" messages in IE.  Also, use "window.jsshell" instead of just "jsshell" for explicit scoping (ensure cross-browser compatibility for IE).
''2007.10.13 [1.0.0]'' converted from inline script to true plugin
''2006.06.01 [0.0.0]'' inline script
<<<
!!!!!Credits
<<<
This feature was developed by Eric L Shulman based on work by Bob McElrath
Derived from http://www.squarefree.com/shell/
<<<
!!!!!Code
***/
//{{{
version.extensions.JavascriptShell= {major: 1, minor: 1, revision: 0, date: new Date(2007,10,27)};
//}}}
//{{{
config.macros.javascriptShell = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var span=createTiddlyElement(place,"span");
		span.innerHTML=this.html;
		setStylesheet(this.css,"JavascriptShellStyles");
		window.jsshell._out=span.firstChild.firstChild;
		window.jsshell._in=span.firstChild.firstChild.nextSibling;
		window.jsshell.initTarget();
		window.jsshell.recalculateInputHeight();
		window.jsshell.refocus();
	},
	html: "<div class='shell'><div class='jsshell_output'></div><input type=text \
			onkeydown='window.jsshell.inputKeydown(event)' \
			class='input' wrap='off' autocomplete='off' \
			title='TAB=auto-complete property names, Ctrl+Up/Down=history' \
			style='width:100%;height:1.2em;margin-top:.2em;border:1px solid;color:#000;background:#fff;'><!-- \
		--><span style='float:right'><!-- \
		-->height: <!-- \
		--><input type='text' name='height' value='20em' size='2' style='width:3em;padding:0;margin:0;' \
			onchange='document.getElementById(\"output\").style.height=this.value'> <!-- \
		--><input type='button' onclick='window.jsshell.go(\"clear()\")' value='clear'></span><!-- \
		--><div>enter a javascript expression or shell function:<br> \
			ans, load(URL), scope(obj), <!-- \
		--><a accesskey='M' href='javascript:window.jsshell.go(\"scope(Math); mathHelp();\");'>Math</a>, <!-- \
		--><a accesskey='P' href='javascript:window.jsshell.go(\"props(ans)\")'>props(obj)</a>, <!-- \
		--><a accesskey='B' href='javascript:window.jsshell.go(\"blink(ans)\")'>blink(node)</a>, <!-- \
		--><a href='javascript:window.jsshell.go(\"wikify(ans)\")'>wikify(text)</a>, <!-- \
		--><a href='javascript:window.jsshell.go(\"print(ans)\")'>print(text)</a></div></div> \
	",
	css: " \
		.shell .jsshell_output { height:20em;width:100%;white-space:normal;overflow:auto; } \
		.shell .jsshell_output { border:1px solid #999;background:#000 !important; } \
		.shell .jsshell_output .input { color:#fff !important; } \
		.shell .jsshell_output .error { color:#f00 !important; } \
		.shell .jsshell_output .normalOutput { color:#0c0 !important; } \
		.shell .jsshell_output .propList { color:#0c0 !important; } \
		.shell .jsshell_output .print { color:#ccc !important; } \
		.shell .jsshell_output .tabcomplete { color:#ff0 !important; } \
		.shell .jsshell_output .message { color:#0ff !important; } \
	"
}
//}}}
// // SHADOW TIDDLER
//{{{
config.shadowTiddlers.JavascriptShell="<<javascriptShell>>";
//}}}
// // JSSHELL.LIB
//{{{
window.jsshell = {}; // Put our functions in the global namespace.

window.jsshell.refocus = function()
{
  window.jsshell._in.blur(); // Needed for Mozilla to scroll correctly.
  window.jsshell._in.focus();
}

window.jsshell.initTarget = function()
{
  window.print = window.jsshell.shellCommands.print;
}

// Unless the user is selected something, refocus the textbox.
// (requested by caillon, brendan, asa)
window.jsshell.keepFocusInTextbox = function(e) 
{
  var g = e.srcElement ? e.srcElement : e.target; // IE vs. standard
  
  while (!g.tagName)
    g = g.parentNode;
  var t = g.tagName.toUpperCase();
  if (t=="A" || t=="INPUT")
    return;
    
  if (window.getSelection) {
    // Mozilla
    if (String(window.getSelection()))
      return;
  }
  else if (document.getSelection) {
    // Opera? Netscape 4?
    if (document.getSelection())
      return;
  }
  else {
    // IE
    if ( document.selection.createRange().text )
      return;
  }
  
  window.jsshell.refocus();
}

//function inputKeydown(e) {
window.jsshell.inputKeydown = function(e) {
  // Use onkeydown because IE doesn't support onkeypress for arrow keys

  //alert(e.keyCode + " ^ " + e.keycode);

  if (e.shiftKey && e.keyCode == 13) { // shift-enter
    // don't do anything; allow the shift-enter to insert a line break as normal
  } else if (e.keyCode == 13) { // enter
    // execute the input on enter
    try { window.jsshell.go(); } catch(er) { alert(er); };
    setTimeout(function() { window.jsshell._in.value = ""; }, 0); // can't preventDefault on input, so clear it later
  } else if (e.keyCode == 38) { // up
    // go up in history if at top or ctrl-up
    if (e.ctrlKey || window.jsshell.caretInFirstLine(window.jsshell._in))
      window.jsshell.hist(true);
  } else if (e.keyCode == 40) { // down
    // go down in history if at end or ctrl-down
    if (e.ctrlKey || window.jsshell.caretInLastLine(window.jsshell._in))
      window.jsshell.hist(false);
  } else if (e.keyCode == 9) { // tab
    window.jsshell.tabcomplete();
    setTimeout(function() { window.jsshell.refocus(); }, 0); // refocus because tab was hit
  } else { }

  setTimeout(window.jsshell.recalculateInputHeight, 0);
  
  //return true;
};

window.jsshell.caretInFirstLine = function(textbox)
{
  // IE doesn't support selectionStart/selectionEnd
  if (textbox.selectionStart == undefined)
    return true;

  var firstLineBreak = textbox.value.indexOf("\n");

  return ((firstLineBreak == -1) || (textbox.selectionStart <= firstLineBreak));
}

window.jsshell.caretInLastLine = function(textbox)
{
  // IE doesn't support selectionStart/selectionEnd
  if (textbox.selectionEnd == undefined)
    return true;

  var lastLineBreak = textbox.value.lastIndexOf("\n");
  
  return (textbox.selectionEnd > lastLineBreak);
}

window.jsshell.recalculateInputHeight = function()
{
  var rows = window.jsshell._in.value.split(/\n/).length
    + 1 // prevent scrollbar flickering in Mozilla
    + (window.opera ? 1 : 0); // leave room for scrollbar in Opera

  if (window.jsshell._in.rows != rows) // without this check, it is impossible to select text in Opera 7.60 or Opera 8.0.
    window.jsshell._in.rows = rows;
}

window.jsshell.println = function(s, type)
{
  if((s=String(s)))
  {
    var newdiv = document.createElement("div");
    newdiv.appendChild(document.createTextNode(s));
    newdiv.className = type;
    window.jsshell._out.appendChild(newdiv);
    window.jsshell._out.scrollTop=jsshell._out.scrollHeight-jsshell._out.clientHeight; // ELS: scroll output into view
    return newdiv;
  }
}

window.jsshell.printWithRunin = function(h, s, type)
{
  var div = window.jsshell.println(s, type);
  var head = document.createElement("strong");
  head.appendChild(document.createTextNode(h + ": "));
  div.insertBefore(head, div.firstChild);
}


window.jsshell.shellCommands = 
{

load : function(url)
{
  var s = document.createElement("script");
  s.type = "text/javascript";
  s.src = url;
  document.getElementsByTagName("head")[0].appendChild(s);
  window.jsshell.println("Loading " + url + "...", "message");
},

clear : function()
{
    window.jsshell._out.innerHTML = "";
},

wikify : function(text)
{
    window.wikify(text, window.jsshell._out);
},

print : function(s) { window.jsshell.println(s, "print"); },

// the normal function, "print", shouldn't return a value
// (suggested by brendan; later noticed it was a problem when showing others)
pr : function(s) 
{ 
  window.jsshell.shellCommands.print(s); // need to specify shellCommands so it doesn't try window.print()!
  return s;
},

props : function(e, onePerLine)
{
  if (e === null) {
    window.jsshell.println("props called with null argument", "error");
    return;
  }

  if (e === undefined) {
    window.jsshell.println("props called with undefined argument", "error");
    return;
  }

  var ns = ["Methods", "Fields", "Unreachables"];
  var as = [[], [], []]; // array of (empty) arrays of arrays!
  var p, j, i; // loop variables, several used multiple times

  var protoLevels = 0;

  for (p = e; p; p = p.__proto__)
  {
    for (i=0; i<ns.length; ++i)
      as[i][protoLevels] = [];
    ++protoLevels;
  }

  for(var a in e)
  {
    // Shortcoming: doesn't check that VALUES are the same in object and prototype.

    var protoLevel = -1;
    try
    {
      for (p = e; p && (a in p); p = p.__proto__)
        ++protoLevel;
    }
    catch(er) { protoLevel = 0; } // "in" operator throws when param to props() is a string

    var type = 1;
    try
    {
      if ((typeof e[a]) == "function")
        type = 0;
    }
    catch (er) { type = 2; }

    as[type][protoLevel].push(a);
  }

  function times(s, n) { return n ? s + times(s, n-1) : ""; }

  for (j=0; j<protoLevels; ++j)
    for (i=0;i<ns.length;++i)
      if (as[i][j].length) 
        window.jsshell.printWithRunin(
          ns[i] + times(" of prototype", j), 
          (onePerLine ? "\n\n" : "") + as[i][j].sort().join(onePerLine ? "\n" : ", ") + (onePerLine ? "\n\n" : ""), 
          "propList"
        );
},

blink : function(node)
{
  if (!node)                     throw("blink: argument is null or undefined.");
  if (node.nodeType == null)     throw("blink: argument must be a node.");
  if (node.nodeType == 3)        throw("blink: argument must not be a text node");
  if (node.documentElement)      throw("blink: argument must not be the document object");

  function setOutline(o) { 
    return function() {
      if (node.style.outline != node.style.bogusProperty) {
        // browser supports outline (Firefox 1.1 and newer, css3, Opera 8).
        node.style.outline = o;
      }
      else if (node.style.MozOutline != node.style.bogusProperty) {
        // browser supports MozOutline (Firefox 1.0.x and older)
        node.style.MozOutline = o;
      }
      else {
        // browser only supports border (IE). border is a fallback because it moves things around.
        node.style.border = o;
      }
    }
  } 
  
  function focusIt(a) {
    return function() {
      a.focus(); 
    }
  }

  if (node.ownerDocument) {
    var windowToFocusNow = (node.ownerDocument.defaultView || node.ownerDocument.parentWindow); // Moz vs. IE
    if (windowToFocusNow)
      setTimeout(focusIt(windowToFocusNow.top), 0);
  }

  for(var i=1;i<7;++i)
    setTimeout(setOutline((i%2)?'3px solid red':'none'), i*100);

  setTimeout(focusIt(window), 800);
  setTimeout(focusIt(window.jsshell._in), 810);
},

scope : function(sc)
{
  if (!sc) sc = {};
  window.jsshell._scope = sc;
  window.jsshell.println("Scope is now " + sc + ".  If a variable is not found in this scope, window will also be searched.  New variables will still go on window.", "message");
},

mathHelp : function()
{
  window.jsshell.printWithRunin("Math constants", "E, LN2, LN10, LOG2E, LOG10E, PI, SQRT1_2, SQRT2", "propList");
  window.jsshell.printWithRunin("Math methods", "abs, acos, asin, atan, atan2, ceil, cos, exp, floor, log, max, min, pow, random, round, sin, sqrt, tan", "propList");
},

ans : undefined
};

window.jsshell.hist = function(up)
{
  // histList[0] = first command entered, [1] = second, etc.
  // type something, press up --> thing typed is now in "limbo"
  // (last item in histList) and should be reachable by pressing 
  // down again.

  var L = window.jsshell.histList.length;

  if (L == 1)
    return;

  if (up)
  {
    if (window.jsshell.histPos == L-1)
    {
      // Save this entry in case the user hits the down key.
      window.jsshell.histList[jsshell.histPos] = window.jsshell._in.value;
    }

    if (window.jsshell.histPos > 0)
    {
      window.jsshell.histPos--;
      // Use a timeout to prevent up from moving cursor within new text
      // Set to nothing first for the same reason
      setTimeout(
        function() {
          window.jsshell._in.value = ''; 
          window.jsshell._in.value = window.jsshell.histList[jsshell.histPos];
          var caretPos = window.jsshell._in.value.length;
          if (window.jsshell._in.setSelectionRange) 
            window.jsshell._in.setSelectionRange(caretPos, caretPos);
        },
        0
      );
    }
  } 
  else // down
  {
    if (window.jsshell.histPos < L-1)
    {
      window.jsshell.histPos++;
      window.jsshell._in.value = window.jsshell.histList[window.jsshell.histPos];
    }
    else if (window.jsshell.histPos == L-1)
    {
      // Already on the current entry: clear but save
      if (window.jsshell._in.value)
      {
        window.jsshell.histList[window.jsshell.histPos] = window.jsshell._in.value;
        ++window.jsshell.histPos;
        window.jsshell._in.value = "";
      }
    }
  }
}

window.jsshell.tabcomplete = function()
{
  // Working backwards from s[from], find the spot
  // where this expression starts.  It will scan
  // until it hits a mismatched ( or a space,
  // but it skips over quoted strings.
  // If stopAtDot is true, stop at a '.'
  function findbeginning(s, from, stopAtDot)
  {
  // Complicated function.
  // Return true if s[i] == q BUT ONLY IF
  // s[i-1] is not a backslash.
    function equalButNotEscaped(s,i,q)
    {
      if(s.charAt(i) != q) // not equal go no further
        return false;

      if(i==0) // beginning of string
        return true;

      if(s.charAt(i-1) == '\\') // escaped?
        return false;

      return true;
    }

    var nparens = 0;
    var i;
    for(i=from; i>=0; i--)
    {
      if(s.charAt(i) == ' ')
        break;

      if(stopAtDot && s.charAt(i) == '.')
        break;
        
      if(s.charAt(i) == ')')
        nparens++;
      else if(s.charAt(i) == '(')
        nparens--;

      if(nparens < 0)
        break;

      // skip quoted strings
      if(s.charAt(i) == '\'' || s.charAt(i) == '\"')
      {
        //dump("skipping quoted chars: ");
        var quot = s.charAt(i);
        i--;
        while(i >= 0 && !equalButNotEscaped(s,i,quot)) {
          //dump(s.charAt(i));
          i--;
        }
        //dump("\n");
      }
    }
    return i;
  }

  // XXX should be used more consistently (instead of using selectionStart/selectionEnd throughout code)
  // XXX doesn't work in IE, even though it contains IE-specific code
  function getcaretpos(inp)
  {
    if(inp.selectionEnd != null)
      return inp.selectionEnd;
      
    if(inp.createTextRange)
    {
      var docrange = document.selection.createRange();
      var inprange = inp.createTextRange();
      if (inprange.setEndPoint)
      {
        inprange.setEndPoint('EndToStart', docrange);
        return inprange.text.length;
      }
    }

    return inp.value.length; // sucks, punt
  }

  function setselectionto(inp,pos)
  {
    if(inp.selectionStart) {
      inp.selectionStart = inp.selectionEnd = pos;
    }
    else if(inp.createTextRange) {
      var docrange = document.selection.createRange();
      var inprange = inp.createTextRange();
      inprange.move('character',pos);
      inprange.select();
    }
    else { // err…
      // inp.select(); if(document.getSelection()) document.getSelection() = "";
    }
  }
    // get position of cursor within the input box
    var caret = getcaretpos(window.jsshell._in);

    if(caret) {
      //dump("----\n");
      var dotpos, spacepos, complete, obj;
      //dump("caret pos: " + caret + "\n");
      // see if there's a dot before here
      dotpos = findbeginning(window.jsshell._in.value, caret-1, true);
      //dump("dot pos: " + dotpos + "\n");
      if(dotpos == -1 || window.jsshell._in.value.charAt(dotpos) != '.') {
        dotpos = caret;
//dump("changed dot pos: " + dotpos + "\n");
      }

      // look backwards for a non-variable-name character
      spacepos = findbeginning(window.jsshell._in.value, dotpos-1, false);
      //dump("space pos: " + spacepos + "\n");
      // get the object we're trying to complete on
      if(spacepos == dotpos || spacepos+1 == dotpos || dotpos == caret)
      {
        // try completing function args
        if(window.jsshell._in.value.charAt(dotpos) == '(' ||
 (window.jsshell._in.value.charAt(spacepos) == '(' && (spacepos+1) == dotpos))
        {
          var fn,fname;
  var from = (window.jsshell._in.value.charAt(dotpos) == '(') ? dotpos : spacepos;
          spacepos = findbeginning(window.jsshell._in.value, from-1, false);

          fname = window.jsshell._in.value.substr(spacepos+1,from-(spacepos+1));
  //dump("fname: " + fname + "\n");
          try {
            with(window)
              with(window.jsshell._scope)
                with(window.jsshell.shellCommands)
                  fn = eval(fname);
          }
          catch(er) {
            //dump('fn is not a valid object\n');
            return;
          }
          if(fn == undefined) {
             //dump('fn is undefined');
             return;
          }
          if(fn instanceof Function)
          {
            // Print function definition, including argument names, but not function body
            if(!fn.toString().match(/function .+?\(\) +\{\n +\[native code\]\n\}/))
              window.jsshell.println(fn.toString().match(/function .+?\(.*?\)/), "tabcomplete");
          }

          return;
        }
        else
          obj = window;
      }
      else
      {
        var objname = window.jsshell._in.value.substr(spacepos+1,dotpos-(spacepos+1));
        //dump("objname: |" + objname + "|\n");
        try {
          with(window.jsshell._scope)
            with(window)
                obj = eval(objname);
        }
        catch(er) {
          window.jsshell.printError(er); 
          return;
        }
        if(obj == undefined) {
          // sometimes this is tabcomplete's fault, so don't print it :(
          // e.g. completing from "print(document.getElements"
          // window.jsshell.println("Can't complete from null or undefined expression " + objname, "error");
          return;
        }
      }
      //dump("obj: " + obj + "\n");
      // get the thing we're trying to complete
      if(dotpos == caret)
      {
        if(spacepos+1 == dotpos || spacepos == dotpos)
        {
          // nothing to complete
          //dump("nothing to complete\n");
          return;
        }

        complete = window.jsshell._in.value.substr(spacepos+1,dotpos-(spacepos+1));
      }
      else {
        complete = window.jsshell._in.value.substr(dotpos+1,caret-(dotpos+1));
      }
      //dump("complete: " + complete + "\n");
      // ok, now look at all the props/methods of this obj
      // and find ones starting with 'complete'
      var matches = [];
      var bestmatch = null;
      for(var a in obj)
      {
        //a = a.toString();
        //XXX: making it lowercase could help some cases,
        // but screws up my general logic.
        if(a.substr(0,complete.length) == complete) {
          matches.push(a);
          ////dump("match: " + a + "\n");
          // if no best match, this is the best match
          if(bestmatch == null)
          {
            bestmatch = a;
          }
          else {
            // the best match is the longest common string
            function min(a,b){ return ((a<b)?a:b); }
            var i;
            for(i=0; i< min(bestmatch.length, a.length); i++)
            {
              if(bestmatch.charAt(i) != a.charAt(i))
                break;
            }
            bestmatch = bestmatch.substr(0,i);
            ////dump("bestmatch len: " + i + "\n");
          }
          ////dump("bestmatch: " + bestmatch + "\n");
        }
      }
      bestmatch = (bestmatch || "");
      ////dump("matches: " + matches + "\n");
      var objAndComplete = (objname || obj) + "." + bestmatch;
      //dump("matches.length: " + matches.length + ", window.jsshell.tooManyMatches: " + window.jsshell.tooManyMatches + ", objAndComplete: " + objAndComplete + "\n");
      if(matches.length > 1 && (window.jsshell.tooManyMatches == objAndComplete || matches.length <= 10)) {

        window.jsshell.printWithRunin("Matches: ", matches.join(', '), "tabcomplete");
        window.jsshell.tooManyMatches = null;
      }
      else if(matches.length > 10)
      {
        window.jsshell.println(matches.length + " matches.  Press tab again to see them all", "tabcomplete");
        window.jsshell.tooManyMatches = objAndComplete;
      }
      else {
        window.jsshell.tooManyMatches = null;
      }
      if(bestmatch != "")
      {
        var sstart;
        if(dotpos == caret) {
          sstart = spacepos+1;
        }
        else {
          sstart = dotpos+1;
        }
        window.jsshell._in.value = window.jsshell._in.value.substr(0, sstart)
                  + bestmatch
                  + window.jsshell._in.value.substr(caret);
        setselectionto(window.jsshell._in,caret + (bestmatch.length - complete.length));
      }
    }
}

window.jsshell.printQuestion = function(q)
{
  window.jsshell.println(q, "input");
}

window.jsshell.printAnswer = function(a)
{
  if (a !== undefined) {
    window.jsshell.println(a, "normalOutput");
    window.jsshell.shellCommands.ans = a;
  }
}

window.jsshell.printError = function(er)
{ 
  var lineNumberString;

  lastError = er; // for debugging the shell
  if (er.name)
  {
    // lineNumberString should not be "", to avoid a very wacky bug in IE 6.
    lineNumberString = (er.lineNumber != undefined) ? (" on line " + er.lineNumber + ": ") : ": ";
    window.jsshell.println(er.name + lineNumberString + er.message, "error"); // Because IE doesn't have error.toString.
  }
  else
    window.jsshell.println(er, "error"); // Because security errors in Moz /only/ have toString.
}

window.jsshell.go = function(s)
{
  window.jsshell._in.value = window.jsshell.question = s ? s : window.jsshell._in.value;

  if (window.jsshell.question == "")
    return;

  window.jsshell.histList[window.jsshell.histList.length-1] = window.jsshell.question;
  window.jsshell.histList[window.jsshell.histList.length] = "";
  window.jsshell.histPos = window.jsshell.histList.length - 1;
  
  // Unfortunately, this has to happen *before* the JavaScript is run, so that 
  // print() output will go in the right place.
  window.jsshell._in.value='';
  window.jsshell.recalculateInputHeight();
  window.jsshell.printQuestion(window.jsshell.question);

  if (window.closed) {
    window.jsshell.printError("Target window has been closed.");
    return;
  }
  
  try { ("jsshell" in window) }
  catch(er) {
    window.jsshell.printError("The JavaScript Shell cannot access variables in the target window.  The most likely reason is that the target window now has a different page loaded and that page has a different hostname than the original page.");
    return;
  }

  if (!("jsshell" in window))
    initTarget(); // silent

  // Evaluate Shell.question using _win's eval (this is why eval isn't in the |with|, IIRC).
//  window.location.href = "javascript:try{ window.jsshell.printAnswer(eval('with(window.jsshell._scope) with(window.jsshell.shellCommands) {' + window.jsshell.question + String.fromCharCode(10) + '}')); } catch(er) { window.jsshell.printError(er); }; setTimeout(window.jsshell.refocus, 0); void 0";
  try { 
      window.jsshell.printAnswer(eval(
          'with(window.jsshell._scope) with(window.jsshell.shellCommands) {' 
              + window.jsshell.question + String.fromCharCode(10) + 
          '}')); 
  } catch(er) { 
      window.jsshell.printError(er); 
  }; 
  setTimeout(window.jsshell.refocus, 0);
}
window.jsshell.histList = [""]; 
window.jsshell.histPos = 0; 
window.jsshell._scope = {}; 
window.jsshell.question;
window.jsshell._in;
window.jsshell._out;
window.jsshell.tooManyMatches = null;
window.jsshell.lastError = null;
//}}}
<data>{"abstract":"[[Jede Medaille hat zwei Seiten]], dieses Tool eignet sich sehr gut, als negativ empfundene Eigenschaften oder Gefühlszustände in Bezug auf ihren Nutzen und ihre Ressourcen positiv umzuwerten.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.freewebs.com/gude-laune-cup/medaille.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Jede Medaille hat zwei Seiten","abstract") </script>

!Jede Medaille hat zwei Seiten
<script> return "<<tiddler [[Jede Medaille hat zwei Seiten##Overview]]>>" </script>
Oft werden negative Gefühle wie Wut oder Angst als hinderlich im Berufsleben empfunden. Ähnlich werden Befindlichkeiten wie Harmoniestreben oder "~Nicht-Nein-sagen-können" als äußerst hinderlich gerade für neue oder junge Führungskräfte betrachtet. Das belastet die betreffenden Personen oft sehr. 
Dieses Tool eignet sich sehr gut, als negativ empfundene Eigenschaften oder Gefühlszustände in Bezug auf ihren Nutzen und ihre Ressourcen positiv umzuwerten.

!Objectives
* Umwerten negativer Gefühle in positive Ressourcen 

!Timing


!Audience
Individual


!Materials
* 

!Procedure
Mit Notizzetteln wird eine [[Aufstellung]] auf dem Tisch aufgebaut. 
Der Klient legt für sich selbst einen Zettel auf den Tisch. Je nach Ausgangslage kann ein weiterer Zettel mit der Aufschrift "Ziel" gegenübergelegt werden. 
Nun wird für jedes als unangenehm oder problematisch empfundenes Gefühl oder Befindlichkeit ein weiterer Zettel wie eine Mauer zwischen dem Klientenzettel und dem Ziel gelegt.

Ist die "Mauer" fertig (Achtung: die "Bausteine" sollten sauber definiert sein: z.B. Harmoniestreben und Konfliktscheu sind sehr ähnlich), nimmt der Coach jeden einzelnen Baustein der Mauer und überlegt mit dem Klienten: 
* //"Wovor schützt Sie diese Eigenschaft?"//, 
* //"Wann war sie hilfreich?"//, 
* //"Welchen Nutzen hat sie?"//
So fördert man zu jedem Baustein positive Konnotationen zu Tage und kann daraus leicht Ressourcen ableiten, schreibt diese auf die Rückseite und legt den bearbeiteten Zettel jetzt hinter den Klientenzettel, so dass eine Unterstützende Linie "im Rücken" des Klienten entsteht und die Mauer zwischen ihm und dem Ziel abgebaut wird.


!Debriefing
Das Bild, das nun entsteht, vermittelt dem Klienten die Einsicht, dass die von ihm bisher ausschließlich negativ konnotierten Eigenschaften positive, für ihn nutzbare Ressourcen beinhalten.

!Note
Das Tool ist nicht ganz leicht, es bedarf seitens des Coaches einer hohen Fähigkeit und Bereitschaft, in sogenannten Schwächen die Stärken zu entdecken.


!Quelle
[[Varga v. Kibed, Matthias u. Sparrer, Insa: Ganz im Gegenteil| http://www.amazon.de/gp/product/3896706861?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3896706861]].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Jede+Medaille+hat+zwei+Seiten+%28D.Fritzsche%29.html]]
/***
|Name|JitFdJsonPlugin|
|Description|Get a graphical feedback, about the TW internal link and referencing structure. This plugin produces the internal json structure.|
|Author|Mario Pietsch|
|Version|0.2.0|
|Date|2010.09.09|
|Status|@@experimental@@|
|Source|http://jit-fd.tiddlyspace.com/|
|License|http://creativecommons.org/licenses/by-sa/3.0/|
|CoreVersion|2.5.3|
|Requires|JitForceDirectedLibrary|
|Documentation|[[JitFd-Info]]|
|Keywords|visual, tree, force directed, tiddler, reference, backlink|
!!!!Description
<<<
This plugin is needed in conjunction with JitFdUiPlugin. It produces the internal data structure, that is used by JitForceDirectedLibrary. The plugin is splitted, because this plugin should be used also with other UI plugins. (To be done :)
<<<
!!!!Usage
<<<
{{{
<<jitFdJson rootTiddler [tagLevel:5] [devId:infovis] [label:anyLabel] [useBacklinks:false] [blLevel:1]>>
}}}
>parameters in [] brackets are optional
|parameter |description |h
|rootTiddler |is the name of the center/root tiddler. eg: systemConfig. Tiddlers tagged "excludeLists" are not displayed. The first level of elements displayed will be tiddlers tagged systemConfig.|
|tagLevel:5 |Number of iterations, that are done, to produce the tree depth. |
|devId:infovis |Name of the html div id, that should contain the rendered diagram. This parameter needs to be the same as used by jitFdUi macro. ''divId needs to be unique!''|
|label:anyLabel |If label is defined, a button will be rendered. At the moment only needed for testing. |
|useBacklinks |Instead of tags the diagram hirarchy is built, using tiddler name references/backlins. eg: {{{jitFdJson root useBacklinks:true blLevel:1}}} will list all tiddlers that contain [[root]] in there body text. |
|blLevel:1 |Number of iterations, used for building the diagram depth.|

{{{
<<jitFdJson root tagLevel:5>>
<<jitFdUi>>
}}}
>Will produce a default display area, with "root" as a center tiddler. Diagram depth is 5. See StyleSheetForceDirected for color definition. 

{{{
<<jitFdJson "tiddler with spaces" tagLevel:5 divId:em>>
<<jitFdUi divId:em levelDistance:150 height:450 wClass:dp50>>
}}}
>Will produce a second display area with a different id. This is needed, if you want to have more than one diagram open at the time.
>jitFdUi will be described at JitFdUiPlugin.
<<<
!!!!Special Parameter
<<<
{{{
<<jitFdJson root tagLevel:all>>
}}}
>Will produce a json node structure containing all tiddlers, and there tags. Depending on the used browser, and the number of tiddlers, ''rendering'' may be very slow. But it gives a good overview. Use big size for this. because rendering is done inside the visible area only. (Posted a request at library group allready)
<<<
!!!!ToDo
<<<
*parameter useBacklinks should not be needed, if blLevel is defined!
*make "exclude" a parameter
*
<<<
!!!!Known issues
<<<
*
<<<
!!!!History
<<<
*Version: 0.2.0 - 2010.09.09
**initial release
<<<
***/

//{{{

// Version definition
version.extensions.JitFdJsonPlugin = {major: 0, minor: 2, revision: 0, date: new Date(2010,09,09)};

(function ($) {

var me;
config.macros.jitFdJson = me = {
	debug: false,	// enable debug mode.

	// should be done for easy localisation
	locale: {
		lblButton: "Hello World",
		txtButton: "Click me!",
		txtHelloWorld: "Hello World",
	}, // locale

	divId: 'infovis',

	dataP: function ()  {	// data prototype;
		this.name = '';		// data 
		this.root = '';
		this.json = [];
		this.idx  = {};
	},

	exclude: 'excludeLists',		
	tagLevel: 4,	// tag dephth
	blLevel:  0,	// backlink / reference dephth
	useBacklinks: false,	// use backlilnks/references instad of tags for the first run
		
	jit : {},	// array of global structures.

	handler: function(place, macroName, params, wikifier, paramString, tiddler){
		var parsed 	= paramString.parseParams(null,null,true);
		me.locale.lblButton = getParam(parsed,'label', '');							//get the label if there is one. 
		me.tagLevel = getParam(parsed,'tagLevel', '5');							//get the tagLevel (iteration over tags) 
		me.useBacklinks = (getParam(parsed,'useBacklinks', 'false') == 'true');		//use backlinks/references instead of tags 
		me.blLevel      = getParam(parsed,'blLevel', '0');							//get the backlink level (iteration over backlinks) 
		me.divId = getParam(parsed,'divId', 'infovis');						//get the divId
		
		if (me.debug) console.log('params: ', params, 'parsed: ', parsed);

		var btn;
		var data = new me.dataP;
		data.name = me.divId;		// json data can be accessed by divId name
		data.root = params[0] || 'GettingStarted';	// If there is no root use something.	
		
		if (me.locale.lblButton) {
			// createTiddlyButton(parent, text, tooltip, action, className, id, accessKey, attribs)			
			btn = createTiddlyButton(place, me.locale.lblButton, me.locale.txtButton, me.onClick, 'button');

			// data passed with jQuery data object, to the button. 
			$(btn).data('data', data);
		}
		else {
			me.onClick(null, data);
		}
	}, // handler()

	id: function(name) {
		return 'id_' + name.replace(/[^_\dA-Za-z]/img, "_");
	},

	addNode: function(data, name, nodeOpt) {
		if (!data || !name) return null;
		if (!nodeOpt) nodeOpt = {}; 

		nodeOpt.tagDone = false;		// needed to display tag label if false. 
		
		if (data.idx[me.id(name)] === undefined) {
			data.json.push({
//				"done": false,
				"id": me.id(name),
				"name": name,
				"data": nodeOpt,
				"adjacencies": []
			}); // a node		
			data.idx[me.id(name)] = data.json.length-1;  	// node index by tiddler name 
		}
				
		return data.json[data.idx[me.id(name)]];
	},

	addAdjacency: function(data, to, from, nodeOpt) {
		if (!data) return null;
		if (!nodeOpt) nodeOpt = {}; 
		to = to || '';
		from = from || '';

		var node;

		me.addNode(data, to, nodeOpt);			// add node if it doesn't exist.
		node = me.addNode(data, from, nodeOpt); 	// get the right node by name;

		node.adjacencies.push(
			{
			nodeTo: me.id(to),  
			nodeFrom: me.id(from),
			data: {} //put whatever you want here  
			} // a adjacency
		);
	},

	tagRunner: function(data) {	
		var tid;
		for (i=0, iMax = data.json.length; i < iMax; i++) {
			if (data.json[i].data.tagDone == true) continue;

			tid = store.getTiddler(data.json[i].name);	// get the tiddler
			if (tid) {
			// get all possible tiddlers
				for (j=0, jMax = tid.tags.length; j < jMax; j++) {
					me.addAdjacency(data, tid.tags[j], tid.title);	// link to tags from root		
				}; // for
				data.json[i].data.tagDone = true;
		}; // if tid
		};// tids loop 		
	},

	displayTagged: function(data) {
		var root = data.root;
		var tid = store.getTiddler(root);
	//	if (tid) {			
			me.addNode(data, root, {"$type":"star", "$dim":15 });
			
			// get tiddlers tagged with root tiddler name
			var tids = store.getTaggedTiddlers(root, me.exclude);
			for (i=0; i < tids.length; i++) {
				if (tids[i].isTagged(me.exclude)) continue;
				me.addNode(data, tids[i].title);	// tagged with root		
			}; // for

			if (me.debug) console.log('data 1: ', data, {'tids':tids}, me.tagLevel);

			for (x=0; x < me.tagLevel; x++) {		
				me.tagRunner(data);
			}; // for tagLevel
	//	}; // if tid 
	},

	blRunner: function(data) {	
		var tids = [];
		for (i=0, iMax = data.json.length; i < iMax; i++) {
			if (data.json[i].data.tagDone == true) continue;
			
			tids = store.getReferringTiddlers(data.json[i].name);	// get the tiddler
			if (me.debug) console.log('bl tids: ', {"tids": tids},'data.json[i]', data.json[i]);
			if (tids.length > 0) {
			// get all possible tiddlers
				for (j=0, jMax = tids.length; j < jMax; j++) {
					me.addAdjacency(data, tids[j].title, data.json[i].name, {"$type":"triangle" } );	// link to - from		
				}; // for
				data.json[i].data.tagDone = true;
			}; // if tids
		};// tids loop 		
	},

	displayBacklinks: function(data) {
		var root = data.root;
		me.addNode(data, root);
		
		// get tiddlers tagged with root tiddler name
//		var tids = store.getReferringTiddlers(root);
//		for (i=0; i < tids.length; i++) {
//			if (tids[i].isTagged(me.exclude)) continue;
//			me.addNode(data, tids[i].title);	// tagged with root		
//		}; // for

		if (me.debug) console.log('d Backlink: ', data, /*{'tids':tids},*/ 'blLevel: ',me.blLevel);

		for (x=0; x < me.blLevel; x++) {		
			me.blRunner(data);
		}; // for tagLevel		
	},

	displayAll: function(data) {
		var tids = store.getTiddlers(null, 'excludeLists');
		for (i=0, iMax=tids.length; i < iMax; i++) {
				if (tids[i].tags.length == 0) continue;
				if (tids[i].isTagged(me.exclude)) continue;

				me.addNode(data, tids[i].title);	// tagged with root		
		}; // tids
		me.tagRunner(data);
	},

	onClick: function(e, data) {
		data = data || $(this).data("data");	// if there is no function parameter it comes from a button.

		if (me.useBacklinks) {
			me.displayBacklinks(data);
		}
		else if (me.tagLevel == 'all') {
			me.displayAll(data);
		}
		else {
			me.displayTagged(data);
		}
				
		me.jit[data.name] = data.json;
		if (me.debug) console.log('me: ', me);
		return false;
	} // onClick()

}; // end of hello world

}) (jQuery);


//}}}
/***
|Name|JitFdUiPlugin|
|Description|Get a graphical feedback, about the TW internal link and refereencing structure. This plugin produces the user interface.|
|Author|[[MarioPietsch]]|
|Version|0.2.1|
|Date|2010.09.14|
|Status|''beta''|
|Source|http://jit-fd.tiddlyspace.com/|
|License|http://creativecommons.org/licenses/by-sa/3.0/|
|CoreVersion|2.5.3|
|Requires|JitForceDirectedLibrary JitFdJsonPlugin|
|Documentation|[[JitFd-Info]]|
|Keywords|visual, tree, force directed, tiddler, reference, backlink|
!!!!Description
<<<
This plugin is needed in conjunction with JitFdJsonPlugin. It produces the user interface.
<<<
!!!!Usage
<<<
{{{
<<jitFdUi [devId:infovis] [height:300] [iterations:200] [levelDistance:150] [wClass:dp50] [label:anyLabel] >>
}}}
>parameters in [] brackets are optional
|parameter |description |h
|devId:infovis |Name of the html div id, that should contain the rendered diagram. This parameter needs to be the same as used by jitFdJson macro. ''divId needs to be unique!''. "infovis" is default.|
|height:300|300 .. canvas hight in pixel. Use this parameter only, if you have no CSS definition in StyleSheetForceDirected|
|iterations:200|Number of iterations used to calculate the nodes position. The higher the number the slower ...|
|levelDistance:150|Distance between two nodes in pixel|
|wClass:dp50|The outer wrapper can get a class attribute for CSS styling. It can be any valid class name.|
|label:anyLabel |If label is defined, a button will be rendered. The diagram is only drawn if the button is clicked. This may make sense, if you have many tiddlers, and the user should read the text first. |

{{{
<<jitFdJson root tagLevel:5>>
<<jitFdUi>>
}}}
>Will produce a default display area, with "root" as a center tiddler. Diagram depth is 5. See StyleSheetForceDirected for color definition.

{{{
<<jitFdJson "tiddler with spaces" tagLevel:5 divId:em>>
<<jitFdUi divId:em levelDistance:150 height:450 wClass:dp50>>
}}}
>Will produce a second display area with a different id. The distance betwenn two nodes in the drawing should be 150px. The canvas height will be 450px. The css class for the outer wrapper will be dp50. With a FreeStyle theme it means 50% of width.
<<<
!!!!ToDo
<<<
*make other paramters configurable.
*
<<<
!!!!Known issues
<<<
*''FireFox performance in TW is much worse than in the [[original library examples|http://thejit.org/static/v20/Jit/Examples/ForceDirected/example2.html]]. I don't know why. If someone can tell, feedback will be very welcome!!''
<<<
!!!!History
<<<
*Version: 0.2.0 - 2010.09.09
**initial release
<<<
***/
//{{{

// Version definition
version.extensions.JitFdUiPlugin = {major: 0, minor: 2, revision: 1, date: new Date(2010,9,06)};

(function ($) {

config.shadowTiddlers["StyleSheetForceDirected"] = store.getTiddlerText("JitFdUiPluginStyles");
store.addNotification("StyleSheetForceDirected", refreshStyles);

var me;
config.macros.jitFdUi = me = {

	// should be done for easy localisation
	locale: {
		lblButton: "HelloWorld",
		txtButton: "Click me!",
		msgNoBacklinks: "No backlinks found!",
		msgNoMoreTags:  "No additional tags found!"
	}, // locale

	cp: {},					// gets the color palette (init see: handler())
	getColorPalette: function() {
		me.cp = store.getTiddlerSlices('ColorPalette',
			['Background', 'Foreground',
			 'PrimaryPale', 'PrimaryLight', 'PrimaryMid', 'PrimaryDark',
			 'SecondaryPale', 'SecondaryLight', 'SecondaryMid', 'SecondaryDark',
			 'TertiaryPale', 'TertiaryLight', 'TertiaryMid', 'TertiaryDark']);

		// console.log(me.cp);
	},

	handler: function(place, macroName, params, wikifier, paramString, tiddler){
		me.getColorPalette();

		var parsed = paramString.parseParams(null,null,true);
		// console.log('params: ', params, 'parsed: ', parsed);

		var data = {};

		data.iterations    = getParam(parsed,'iterations', 250);
		data.levelDistance = getParam(parsed,'levelDistance', 200);
		data.canvasHeight  = getParam(parsed,'height', false);

		data.divId = getParam(parsed,'divId', 'infovis');	//get the divId

		data.place = place;				// needed to create the button
		data.wClass = getParam(parsed,'wClass', '');

		var btn;
		me.locale.lblButton = getParam(parsed,'label', '');        //it there is a label create a button
		if (me.locale.lblButton) {
			// createTiddlyButton(parent, text, tooltip, action, className, id, accessKey, attribs)
			btn = createTiddlyButton(place, me.locale.lblButton, me.locale.txtButton, me.onClickButton, 'button');
			// createTiddlyElement(place, 'br');

			// data passed with jQuery data object, to the button.
			$(btn).data('data', data);
			me.createPlayground(data);
		}
		else {
			me.createPlayground(data);
			me.onClickButton(null, data);			
		};
	}, // handler

	initPlayground: function(data) {
		$('#'+data.divId).addClass('infovis');
		$('#info'+data.divId).addClass('inner-details');
	},

	createPlayground: function(data) {
		var column = createTiddlyElement(data.place, 'div', null, data.wClass+' column');
		var box = createTiddlyElement(column, 'div', null, 'box');

		createTiddlyElement(box, 'div', data.divId);
		createTiddlyElement(box, 'div', 'info'+data.divId);
	},

	onClickButton: function(e, data) {
		if (!data) {
			data = $(this).data("data");	// if there is no function parameter it comes from a button.
			$(this).remove();
		}
		
		me.initPlayground(data);
		me.initApple(data);
		me.initX(data);
	},

	initApple: function(data) {
		var ua = navigator.userAgent,
			iStuff = ua.match(/iPhone/i) || ua.match(/iPad/i),
			typeOfCanvas = typeof HTMLCanvasElement,
			nativeCanvasSupport = (typeOfCanvas == 'object' || typeOfCanvas == 'function'),
			textSupport = nativeCanvasSupport
			&& (typeof document.createElement('canvas').getContext('2d').fillText == 'function');
		//I'm setting this based on the fact that ExCanvas provides text support for IE
		//and that as of today iPhone/iPad current text support is lame
		var labelType = (!nativeCanvasSupport || (textSupport && !iStuff))? 'Native' : 'HTML';
		var nativeTextSupport = labelType == 'Native';
		var useGradients = nativeCanvasSupport;
		var animate = !(iStuff || !nativeCanvasSupport);
	},

	log : function (text) {
		clearMessage();
		displayMessage(text);
	},

	initX: function(data) {

		// init ForceDirected
		var fd = new $jit.ForceDirected({
			injectInto: data.divId,		//id of the visualization container
			height: data.canvasHeight, 	//normaly set by CSS

		//	Label: {
		//		type: 'HTML',
		//		dim: 10
		//	},

			//Enable zooming and panning
			//with scrolling and DnD
			Navigation: {
				enable: true,
				//Enable panning events only if we're dragging the empty
				//canvas (and not a node).
				panning: 'avoid nodes',
				zooming: 15 //zoom speed. higher is more sensible
			},
			// Change node and edge styles such as
			// color and width.
			// These properties are also set per node
			// with dollar prefixed data-properties in the
			// JSON structure.
			Node: {
				overridable: true,
				dim: 7
			},
			Edge: {
				overridable: true,
				color: me.cp.TertiaryLight,
				lineWidth: 0.6,
				type:'line'
			},
			// Add node events
			Events: {
				enable: true,
				type: 'Native',
				pos: {},
				dragStarted : false,

				//Change cursor style when hovering a node
				onMouseEnter: function() {
					fd.canvas.getElement().style.cursor = 'move';
				},
				onMouseLeave: function() {
					fd.canvas.getElement().style.cursor = '';
				},

				onRightClick: function(node, eventInfo, e) {
					if (node) story.displayTiddler(null,node.name);
				}, // onRightClick

				onDragStart: function(node, eventInfo, e) {
					this.pos = eventInfo.getPos();
					// console.log('sart n: ', node, 'ei: ', eventInfo, 'e: ', e);
				},
				onDragEnd: function(node, eventInfo, e) {
					this.dragStarted = false;
					// console.log('end n: ', node, 'ei: ', eventInfo, 'e: ', e);
				},

				//Update node positions when dragged
				onDragMove: function(node, eventInfo, e) {
					var delta = {};
					var newPos = eventInfo.getPos();
					delta.x = this.pos.x - newPos.x;
					delta.y = this.pos.y - newPos.y;

					this.dragStarted = (this.dragStarted) || (Math.abs(delta.x) > 5) || (Math.abs(delta.y) > 5);

					if (this.dragStarted) {
						this.pos = newPos;
						node.eachSubgraph(function(node){
							node.pos.setc(node.pos.x - delta.x, node.pos.y - delta.y);
						});
						fd.plot();
					}
				},

				//Implement the same handler for touchscreens
				onTouchMove: function(node, eventInfo, e) {
					$jit.util.event.stop(e); //stop default touchmove event
					this.onDragMove(node, eventInfo, e);
				}
			}, // events

			//Number of iterations for the FD algorithm
			iterations: data.iterations,

			//Edge length
			levelDistance: data.levelDistance,

			// This method is only triggered
			// on label creation and only for DOM labels (not native canvas ones).
			onCreateLabel: function(domElement, node){
				cmj = config.macros.jitFdJson;

				// console.log('label node: ', node );
				// Create a 'name' and 'close' buttons and add them
				// to the main node label
				var nameContainer = document.createElement('span'),
					  tagButton = document.createElement('span'),
					  blButton = document.createElement('span'),
					  style = nameContainer.style;
				nameContainer.className = 'name';
				nameContainer.innerHTML = node.name;
				tagButton.className   = 'btnTag';
				tagButton.innerHTML   = '+';
				blButton.className   = 'btnTag';
				blButton.innerHTML   = '#';
				domElement.appendChild(nameContainer);
				if (node.data.tagDone == false) domElement.appendChild(tagButton);
				domElement.appendChild(blButton);

				//Add next tags if available
				//clicking the add tagButton button
				tagButton.onclick = function() {
					// console.log('tagClick node: ', node, '$this: ', $(this));

					var text = node.name + ' tagLevel:1 divId:' + node.id ;	// params

					if(me.debug) console.log('tagText: ', text);
					invokeMacro(place, 'jitFdJson', text);
					if (cmj.jit[node.id][0].adjacencies.length > 0) {
						fd.op.sum(cmj.jit[node.id], {
							type: "fade:con",
							//	hideLabels: false,
							duration: 1000
						});
					}
					else {
						displayMessage(me.locale.msgNoMoreTags);
						$(this).remove();
					}
				}; // tagButton

				//Add backlinks / referringTiddlers if available
				//clicking the add blButton button
				blButton.onclick = function(){
					cmj = config.macros.jitFdJson;
					// console.log('blClick n: ', node);
					if (node) {
						var text = node.name + ' useBacklinks:true blLevel:1 divId:' + node.id; // params
						// console.log('text: ', text);
						invokeMacro(place, 'jitFdJson', text);
						if (cmj.jit[node.id][0].adjacencies.length > 0) {
							fd.op.sum(cmj.jit[node.id], {
								type: "fade:con",
								//	hideLabels: false,
								duration: 1000
							});
						}
						else {
							displayMessage(me.locale.msgNoBacklinks);
							$(this).remove();
						}
					}; // if node
				};

				//Toggle a node selection when clicking
				//its name. This is done by animating some
				//node styles like its dimension and the color
				//and lineWidth of its adjacencies.
				nameContainer.onclick = function() {
					var oldDim;
					//set final styles
					fd.graph.eachNode(function(n) {
						if(n.id != node.id) delete n.selected;
						oldDim = n.getData('oldDim');
						oldDim = (oldDim) ? oldDim : n.getData('dim');
						n.setData('dim', oldDim, 'end');
						n.eachAdjacency(function(adj) {
							adj.setDataset('end', {
								lineWidth: 0.6,
								color: me.cp.TertiaryLight
							});
						});
					});
					if(!node.selected) {
						oldDim = node.getData('dim');
						node.setData('oldDim', oldDim);

						node.selected = true;
						node.setData('dim', oldDim+10, 'end');
						node.eachAdjacency(function(adj) {
							adj.setDataset('end', {
								lineWidth: 3,
								color: me.cp.TertiaryLight
							});
						});
					} else {
						delete node.selected;
					}
					//trigger animation to final styles
					fd.fx.animate({
						modes: ['node-property:dim',
								  'edge-property:lineWidth:color'],
						duration: 500
					});

					// Build info text
					// This is done by traversing the clicked node connections.
					var html = '!!![['+node.name +']]\n[[';
					var list = [];
					node.eachAdjacency(function(adj){
					  if(adj.getData('alpha')) list.push(adj.nodeTo.name);
					});
					//append connections information
					html = html + list.join("]], [[") + "]]\n";
					var element = document.getElementById('info'+fd.canvas.id);
					removeChildren(element);
					wikify(html, element)
				}; // nameConatainerOnClick
			}, // onCreateLabel

			// Change node styles when DOM labels are placed
			// or moved.
			onPlaceLabel: function(domElement, node){
				var style = domElement.style;
				var left = parseInt(style.left);
				var top = parseInt(style.top);
				var w = domElement.offsetWidth;
				style.left = (left - w / 2) + 'px';
				style.top = (top + 10) + 'px';
				style.display = '';
			} // onPlaceLabel
		}); // new jitForceDirected

		// load JSON data.
		fd.loadJSON(config.macros.jitFdJson.jit[data.divId]);

		// compute positions incrementally and animate.
		fd.computeIncremental({
			iter: 20,
			property: 'end',
			onStep: function(perc){
				me.log(perc + '% loaded...');
				if (perc > 30) fd.animate();
			}, // onStep
			onComplete: function(){
				me.log('done');
				fd.animate({
					modes: ['linear'],
					transition: $jit.Trans.Elastic.easeOut,
					duration: 2500
				}); //fd.animate
			} // onComplete
		}); // fd.computeIncremental
	} // init

}; // jifFdUi

}) (jQuery);

//}}}
//{{{
/*
  Copyright (c) 2010, Nicolas Garcia Belmonte
  All rights reserved

  > 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 the organization 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 NICOLAS GARCIA BELMONTE ``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 NICOLAS GARCIA BELMONTE 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.
 */
 
 (function(){window.$jit=function(a){a=a||window;for(var b in $jit)if($jit[b].$extend)a[b]=$jit[b]};$jit.version="2.0.0b";var h=function(a){return document.getElementById(a)};h.empty=function(){};h.extend=function(a,b){for(var d in b||{})a[d]=b[d];return a};h.lambda=function(a){return typeof a=="function"?a:function(){return a}};h.time=Date.now||function(){return+new Date};h.splat=function(a){var b=h.type(a);return b?b!="array"?[a]:a:[]};h.type=function(a){var b=h.type.s.call(a).match(/^\[object\s(.*)\]$/)[1].toLowerCase();
if(b!="object")return b;if(a&&a.$$family)return a.$$family;return a&&a.nodeName&&a.nodeType==1?"element":b};h.type.s=Object.prototype.toString;h.each=function(a,b){if(h.type(a)=="object")for(var d in a)b(a[d],d);else{d=0;for(var c=a.length;d<c;d++)b(a[d],d)}};h.indexOf=function(a,b){if(Array.indexOf)return a.indexOf(b);for(var d=0,c=a.length;d<c;d++)if(a[d]===b)return d;return-1};h.map=function(a,b){var d=[];h.each(a,function(c,e){d.push(b(c,e))});return d};h.reduce=function(a,b,d){var c=a.length;
if(c==0)return d;for(var e=arguments.length==3?d:a[--c];c--;)e=b(e,a[c]);return e};h.merge=function(){for(var a={},b=0,d=arguments.length;b<d;b++){var c=arguments[b];if(h.type(c)=="object")for(var e in c){var f=c[e],g=a[e];a[e]=g&&h.type(f)=="object"&&h.type(g)=="object"?h.merge(g,f):h.unlink(f)}}return a};h.unlink=function(a){var b;switch(h.type(a)){case "object":b={};for(var d in a)b[d]=h.unlink(a[d]);break;case "array":b=[];d=0;for(var c=a.length;d<c;d++)b[d]=h.unlink(a[d]);break;default:return a}return b};
h.zip=function(){if(arguments.length===0)return[];for(var a=0,b=[],d=arguments.length,c=arguments[0].length;a<c;a++){for(var e=0,f=[];e<d;e++)f.push(arguments[e][a]);b.push(f)}return b};h.rgbToHex=function(a,b){if(a.length<3)return null;if(a.length==4&&a[3]==0&&!b)return"transparent";for(var d=[],c=0;c<3;c++){var e=(a[c]-0).toString(16);d.push(e.length==1?"0"+e:e)}return b?d:"#"+d.join("")};h.hexToRgb=function(a){if(a.length!=7){a=a.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);a.shift();if(a.length!=
3)return null;for(var b=[],d=0;d<3;d++){var c=a[d];if(c.length==1)c+=c;b.push(parseInt(c,16))}return b}else{a=parseInt(a.slice(1),16);return[a>>16,a>>8&255,a&255]}};h.destroy=function(a){h.clean(a);a.parentNode&&a.parentNode.removeChild(a);a.clearAttributes&&a.clearAttributes()};h.clean=function(a){a=a.childNodes;for(var b=0,d=a.length;b<d;b++)h.destroy(a[b])};h.addEvent=function(a,b,d){a.addEventListener?a.addEventListener(b,d,false):a.attachEvent("on"+b,d)};h.addEvents=function(a,b){for(var d in b)h.addEvent(a,
d,b[d])};h.hasClass=function(a,b){return(" "+a.className+" ").indexOf(" "+b+" ")>-1};h.addClass=function(a,b){if(!h.hasClass(a,b))a.className=a.className+" "+b};h.removeClass=function(a,b){a.className=a.className.replace(RegExp("(^|\\s)"+b+"(?:\\s|$)"),"$1")};h.getPos=function(a){var b=function(d){for(var c={x:0,y:0};d&&!/^(?:body|html)$/i.test(d.tagName);){c.x+=d.offsetLeft;c.y+=d.offsetTop;d=d.offsetParent}return c}(a);a=function(d){for(var c={x:0,y:0};d&&!/^(?:body|html)$/i.test(d.tagName);){c.x+=
d.scrollLeft;c.y+=d.scrollTop;d=d.parentNode}return c}(a);return{x:b.x-a.x,y:b.y-a.y}};h.event={get:function(a,b){b=b||window;return a||b.event},getWheel:function(a){return a.wheelDelta?a.wheelDelta/120:-(a.detail||0)/3},isRightClick:function(a){return a.which==3||a.button==2},getPos:function(a,b){b=b||window;a=a||b.event;var d=b.document;d=d.documentElement||d.body;if(a.touches&&a.touches.length)a=a.touches[0];return{x:a.pageX||a.clientX+d.scrollLeft,y:a.pageY||a.clientY+d.scrollTop}},stop:function(a){a.stopPropagation&&
a.stopPropagation();a.cancelBubble=true;if(a.preventDefault)a.preventDefault();else a.returnValue=false}};$jit.util=$jit.id=h;var o=function(a){a=a||{};var b=function(){for(var c in this)if(typeof this[c]!="function")this[c]=h.unlink(this[c]);this.constructor=b;if(o.prototyping)return this;c=this.initialize?this.initialize.apply(this,arguments):this;this.$$family="class";return c};for(var d in o.Mutators)if(a[d]){a=o.Mutators[d](a,a[d]);delete a[d]}h.extend(b,this);b.constructor=o;b.prototype=a;return b};
o.Mutators={Implements:function(a,b){h.each(h.splat(b),function(d){o.prototyping=d;d=typeof d=="function"?new d:d;for(var c in d)c in a||(a[c]=d[c]);delete o.prototyping});return a}};h.extend(o,{inherit:function(a,b){for(var d in b){var c=b[d],e=a[d],f=h.type(c);if(e&&f=="function")c!=e&&o.override(a,d,c);else a[d]=f=="object"?h.merge(e,c):c}return a},override:function(a,b,d){var c=o.prototyping;if(c&&a[b]!=c[b])c=null;a[b]=function(){var e=this.parent;this.parent=c?c[b]:a[b];var f=d.apply(this,arguments);
this.parent=e;return f}}});o.prototype.implement=function(){var a=this.prototype;h.each(Array.prototype.slice.call(arguments||[]),function(b){o.inherit(a,b)});return this};$jit.Class=o;$jit.json={prune:function(a,b){this.each(a,function(d,c){if(c==b&&d.children){delete d.children;d.children=[]}})},getParent:function(a,b){if(a.id==b)return false;var d=a.children;if(d&&d.length>0)for(var c=0;c<d.length;c++)if(d[c].id==b)return a;else{var e=this.getParent(d[c],b);if(e)return e}return false},getSubtree:function(a,
b){if(a.id==b)return a;for(var d=0,c=a.children;d<c.length;d++){var e=this.getSubtree(c[d],b);if(e!=null)return e}return null},eachLevel:function(a,b,d,c){if(b<=d){c(a,b);if(a.children){var e=0;for(a=a.children;e<a.length;e++)this.eachLevel(a[e],b+1,d,c)}}},each:function(a,b){this.eachLevel(a,0,Number.MAX_VALUE,b)}};$jit.Trans={$extend:true,linear:function(a){return a}};var A=$jit.Trans;(function(){var a=function(b,d){d=h.splat(d);return h.extend(b,{easeIn:function(c){return b(c,d)},easeOut:function(c){return 1-
b(1-c,d)},easeInOut:function(c){return c<=0.5?b(2*c,d)/2:(2-b(2*(1-c),d))/2}})};h.each({Pow:function(b,d){return Math.pow(b,d[0]||6)},Expo:function(b){return Math.pow(2,8*(b-1))},Circ:function(b){return 1-Math.sin(Math.acos(b))},Sine:function(b){return 1-Math.sin((1-b)*Math.PI/2)},Back:function(b,d){d=d[0]||1.618;return Math.pow(b,2)*((d+1)*b-d)},Bounce:function(b){for(var d,c=0,e=1;;c+=e,e/=2)if(b>=(7-4*c)/11){d=e*e-Math.pow((11-6*c-11*b)/4,2);break}return d},Elastic:function(b,d){return Math.pow(2,
10*--b)*Math.cos(20*b*Math.PI*(d[0]||1)/3)}},function(b,d){A[d]=a(b)});h.each(["Quad","Cubic","Quart","Quint"],function(b,d){A[b]=a(function(c){return Math.pow(c,[d+2])})})})();var E=new o({initialize:function(a){this.setOptions(a)},setOptions:function(a){this.opt=h.merge({duration:2500,fps:40,transition:A.Quart.easeInOut,compute:h.empty,complete:h.empty,link:"ignore"},a||{});return this},step:function(){var a=h.time(),b=this.opt;if(a<this.time+b.duration){a=b.transition((a-this.time)/b.duration);
b.compute(a)}else{this.timer=clearInterval(this.timer);b.compute(1);b.complete()}},start:function(){if(!this.check())return this;this.time=0;this.startTimer();return this},startTimer:function(){var a=this,b=this.opt.fps;if(this.timer)return false;this.time=h.time()-this.time;this.timer=setInterval(function(){a.step()},Math.round(1E3/b));return true},pause:function(){this.stopTimer();return this},resume:function(){this.startTimer();return this},stopTimer:function(){if(!this.timer)return false;this.time=
h.time()-this.time;this.timer=clearInterval(this.timer);return true},check:function(){if(!this.timer)return true;if(this.opt.link=="cancel"){this.stopTimer();return true}return false}}),u=function(){for(var a=arguments,b=0,d=a.length,c={};b<d;b++){var e=u[a[b]];if(e.$extend)h.extend(c,e);else c[a[b]]=e}return c};u.Canvas={$extend:true,injectInto:"id",width:false,height:false,useCanvas:false,withLabels:true,background:false};u.Node={$extend:false,overridable:false,type:"circle",color:"#ccb",alpha:1,
dim:3,height:20,width:90,autoHeight:false,autoWidth:false,lineWidth:1,transform:true,align:"center",angularWidth:1,span:1,CanvasStyles:{}};u.Edge={$extend:false,overridable:false,type:"line",color:"#ccb",lineWidth:1,dim:15,alpha:1,epsilon:7,CanvasStyles:{}};u.Fx={$extend:true,fps:40,duration:2500,transition:$jit.Trans.Quart.easeInOut,clearCanvas:true};u.Label={$extend:false,overridable:false,type:"HTML",style:" ",size:10,family:"sans-serif",textAlign:"center",textBaseline:"alphabetic",color:"#fff"};
u.Tips={$extend:false,enable:false,type:"auto",offsetX:20,offsetY:20,force:false,onShow:h.empty,onHide:h.empty};u.NodeStyles={$extend:false,enable:false,type:"auto",stylesHover:false,stylesClick:false};u.Events={$extend:false,enable:false,enableForEdges:false,type:"auto",onClick:h.empty,onRightClick:h.empty,onMouseMove:h.empty,onMouseEnter:h.empty,onMouseLeave:h.empty,onDragStart:h.empty,onDragMove:h.empty,onDragCancel:h.empty,onDragEnd:h.empty,onTouchStart:h.empty,onTouchMove:h.empty,onTouchEnd:h.empty,
onMouseWheel:h.empty};u.Navigation={$extend:false,enable:false,type:"auto",panning:false,zooming:false};u.Controller={$extend:true,onBeforeCompute:h.empty,onAfterCompute:h.empty,onCreateLabel:h.empty,onPlaceLabel:h.empty,onComplete:h.empty,onBeforePlotLine:h.empty,onAfterPlotLine:h.empty,onBeforePlotNode:h.empty,onAfterPlotNode:h.empty,request:false};var z={initialize:function(a,b){this.viz=b;this.canvas=b.canvas;this.config=b.config[a];this.nodeTypes=b.fx.nodeTypes;var d=this.config.type;this.labelContainer=
(this.dom=d=="auto"?b.config.Label.type!="Native":d!="Native")&&b.labels.getLabelContainer();this.isEnabled()&&this.initializePost()},initializePost:h.empty,setAsProperty:h.lambda(false),isEnabled:function(){return this.config.enable},isLabel:function(a,b){a=h.event.get(a,b);var d=this.labelContainer,c=a.target||a.srcElement;if(c&&c.parentNode==d)return c;return false}},w={onMouseUp:h.empty,onMouseDown:h.empty,onMouseMove:h.empty,onMouseOver:h.empty,onMouseOut:h.empty,onMouseWheel:h.empty,onTouchStart:h.empty,
onTouchMove:h.empty,onTouchEnd:h.empty,onTouchCancel:h.empty},G=new o({initialize:function(a){this.viz=a;this.canvas=a.canvas;this.edge=this.node=false;this.registeredObjects=[];this.attachEvents()},attachEvents:function(){var a=this.canvas.getElement(),b=this;a.oncontextmenu=h.lambda(false);h.addEvents(a,{mouseup:function(c,e){var f=h.event.get(c,e);b.handleEvent("MouseUp",c,e,b.makeEventObject(c,e),h.event.isRightClick(f))},mousedown:function(c,e){var f=h.event.get(c,e);b.handleEvent("MouseDown",
c,e,b.makeEventObject(c,e),h.event.isRightClick(f))},mousemove:function(c,e){b.handleEvent("MouseMove",c,e,b.makeEventObject(c,e))},mouseover:function(c,e){b.handleEvent("MouseOver",c,e,b.makeEventObject(c,e))},mouseout:function(c,e){b.handleEvent("MouseOut",c,e,b.makeEventObject(c,e))},touchstart:function(c,e){b.handleEvent("TouchStart",c,e,b.makeEventObject(c,e))},touchmove:function(c,e){b.handleEvent("TouchMove",c,e,b.makeEventObject(c,e))},touchend:function(c,e){b.handleEvent("TouchEnd",c,e,b.makeEventObject(c,
e))}});var d=function(c,e){var f=h.event.get(c,e);f=h.event.getWheel(f);b.handleEvent("MouseWheel",c,e,f)};!document.getBoxObjectFor&&window.mozInnerScreenX==null?h.addEvent(a,"mousewheel",d):a.addEventListener("DOMMouseScroll",d,false)},register:function(a){this.registeredObjects.push(a)},handleEvent:function(){for(var a=Array.prototype.slice.call(arguments),b=a.shift(),d=0,c=this.registeredObjects,e=c.length;d<e;d++)c[d]["on"+b].apply(c[d],a)},makeEventObject:function(a,b){var d=this,c=this.viz.graph,
e=this.viz.fx,f=e.nodeTypes,g=e.edgeTypes;return{pos:false,node:false,edge:false,contains:false,getNodeCalled:false,getEdgeCalled:false,getPos:function(){var i=d.viz.canvas,j=i.getSize(),k=i.getPos(),l=i.translateOffsetX,m=i.translateOffsetY,n=i.scaleOffsetX;i=i.scaleOffsetY;var p=h.event.getPos(a,b);return this.pos={x:(p.x-k.x-j.width/2-l)*1/n,y:(p.y-k.y-j.height/2-m)*1/i}},getNode:function(){if(this.getNodeCalled)return this.node;this.getNodeCalled=true;for(var i in c.nodes){var j=c.nodes[i],k=
j&&f[j.getData("type")];if(k=k&&k.contains&&k.contains.call(e,j,this.getPos())){this.contains=k;return d.node=this.node=j}}return d.node=this.node=false},getEdge:function(){if(this.getEdgeCalled)return this.edge;this.getEdgeCalled=true;var i={};for(var j in c.edges){var k=c.edges[j];i[j]=true;for(var l in k)if(!(l in i)){var m=k[l],n=m&&g[m.getData("type")];if(n=n&&n.contains&&n.contains.call(e,m,this.getPos())){this.contains=n;return d.edge=this.edge=m}}}return d.edge=this.edge=false},getContains:function(){if(this.getNodeCalled)return this.contains;
this.getNode();return this.contains}}}}),x={initializeExtras:function(){var a=new G(this),b=this;h.each(["NodeStyles","Tips","Navigation","Events"],function(d){var c=new x.Classes[d](d,b);c.isEnabled()&&a.register(c);if(c.setAsProperty())b[d.toLowerCase()]=c})}};x.Classes={};x.Classes.Events=new o({Implements:[z,w],initializePost:function(){this.fx=this.viz.fx;this.ntypes=this.viz.fx.nodeTypes;this.etypes=this.viz.fx.edgeTypes;this.moved=this.touchMoved=this.touched=this.pressed=this.hovered=false},
setAsProperty:h.lambda(true),onMouseUp:function(a,b,d,c){a=h.event.get(a,b);this.moved||(c?this.config.onRightClick(this.hovered,d,a):this.config.onClick(this.pressed,d,a));if(this.pressed){this.moved?this.config.onDragEnd(this.pressed,d,a):this.config.onDragCancel(this.pressed,d,a);this.pressed=this.moved=false}},onMouseOut:function(a,b,d){var c=h.event.get(a,b),e;if(this.dom&&(e=this.isLabel(a,b))){this.config.onMouseLeave(this.viz.graph.getNode(e.id),d,c);this.hovered=false}else{a=c.relatedTarget;
for(b=this.canvas.getElement();a&&a.parentNode;){if(b==a.parentNode)return;a=a.parentNode}if(this.hovered){this.config.onMouseLeave(this.hovered,d,c);this.hovered=false}}},onMouseOver:function(a,b,d){var c=h.event.get(a,b),e;if(this.dom&&(e=this.isLabel(a,b))){this.hovered=this.viz.graph.getNode(e.id);this.config.onMouseEnter(this.hovered,d,c)}},onMouseMove:function(a,b,d){a=h.event.get(a,b);if(this.pressed){this.moved=true;this.config.onDragMove(this.pressed,d,a)}else if(this.dom)this.config.onMouseMove(this.hovered,
d,a);else{if(this.hovered){b=this.hovered;var c=b.nodeFrom?this.etypes[b.getData("type")]:this.ntypes[b.getData("type")];if(c&&c.contains&&c.contains.call(this.fx,b,d.getPos())){this.config.onMouseMove(b,d,a);return}else{this.config.onMouseLeave(b,d,a);this.hovered=false}}(this.hovered=d.getNode()||this.config.enableForEdges&&d.getEdge())?this.config.onMouseEnter(this.hovered,d,a):this.config.onMouseMove(false,d,a)}},onMouseWheel:function(a,b,d){this.config.onMouseWheel(d,h.event.get(a,b))},onMouseDown:function(a,
b,d){a=h.event.get(a,b);this.pressed=d.getNode()||this.config.enableForEdges&&d.getEdge();this.config.onDragStart(this.pressed,d,a)},onTouchStart:function(a,b,d){a=h.event.get(a,b);this.touched=d.getNode()||this.config.enableForEdges&&d.getEdge();this.config.onTouchStart(this.touched,d,a)},onTouchMove:function(a,b,d){a=h.event.get(a,b);if(this.touched){this.touchMoved=true;this.config.onTouchMove(this.touched,d,a)}},onTouchEnd:function(a,b,d){a=h.event.get(a,b);if(this.touched){this.touchMoved?this.config.onTouchEnd(this.touched,
d,a):this.config.onTouchCancel(this.touched,d,a);this.touched=this.touchMoved=false}}});x.Classes.Tips=new o({Implements:[z,w],initializePost:function(){if(document.body){var a=h("_tooltip")||document.createElement("div");a.id="_tooltip";a.className="tip";h.extend(a.style,{position:"absolute",display:"none",zIndex:13E3});document.body.appendChild(a);this.tip=a;this.node=false}},setAsProperty:h.lambda(true),onMouseOut:function(a,b){if(this.dom&&this.isLabel(a,b))this.hide(true);else{for(var d=a.relatedTarget,
c=this.canvas.getElement();d&&d.parentNode;){if(c==d.parentNode)return;d=d.parentNode}this.hide(false)}},onMouseOver:function(a,b){var d;if(this.dom&&(d=this.isLabel(a,b))){this.node=this.viz.graph.getNode(d.id);this.config.onShow(this.tip,this.node,d)}},onMouseMove:function(a,b,d){this.dom&&this.isLabel(a,b)&&this.setTooltipPosition(h.event.getPos(a,b));if(!this.dom){var c=d.getNode();if(c){if(this.config.force||!this.node||this.node.id!=c.id){this.node=c;this.config.onShow(this.tip,c,d.getContains())}this.setTooltipPosition(h.event.getPos(a,
b))}else this.hide(true)}},setTooltipPosition:function(a){var b=this.tip,d=b.style,c=this.config;d.display="";var e={height:document.body.clientHeight,width:document.body.clientWidth};b={width:b.offsetWidth,height:b.offsetHeight};var f=c.offsetX;c=c.offsetY;d.top=(a.y+c+b.height>e.height?a.y-b.height-c:a.y+c)+"px";d.left=(a.x+b.width+f>e.width?a.x-b.width-f:a.x+f)+"px"},hide:function(a){this.tip.style.display="none";a&&this.config.onHide()}});x.Classes.NodeStyles=new o({Implements:[z,w],initializePost:function(){this.fx=
this.viz.fx;this.types=this.viz.fx.nodeTypes;this.nStyles=this.config;this.nodeStylesOnHover=this.nStyles.stylesHover;this.nodeStylesOnClick=this.nStyles.stylesClick;this.hoveredNode=false;this.fx.nodeFxAnimation=new E;this.move=this.down=false},onMouseOut:function(a,b){this.down=this.move=false;if(this.hoveredNode){this.dom&&this.isLabel(a,b)&&this.toggleStylesOnHover(this.hoveredNode,false);for(var d=a.relatedTarget,c=this.canvas.getElement();d&&d.parentNode;){if(c==d.parentNode)return;d=d.parentNode}this.toggleStylesOnHover(this.hoveredNode,
false);this.hoveredNode=false}},onMouseOver:function(a,b){var d;if(this.dom&&(d=this.isLabel(a,b))){d=this.viz.graph.getNode(d.id);if(!d.selected){this.hoveredNode=d;this.toggleStylesOnHover(this.hoveredNode,true)}}},onMouseDown:function(a,b,d,c){if(!c){var e;if(this.dom&&(e=this.isLabel(a,b)))this.down=this.viz.graph.getNode(e.id);else if(!this.dom)this.down=d.getNode();this.move=false}},onMouseUp:function(a,b,d,c){if(!c){this.move||this.onClick(d.getNode());this.down=this.move=false}},getRestoredStyles:function(a,
b){var d={},c=this["nodeStylesOn"+b];for(var e in c)d[e]=a.styles["$"+e];return d},toggleStylesOnHover:function(a,b){this.nodeStylesOnHover&&this.toggleStylesOn("Hover",a,b)},toggleStylesOnClick:function(a,b){this.nodeStylesOnClick&&this.toggleStylesOn("Click",a,b)},toggleStylesOn:function(a,b,d){var c=this.viz;if(d){if(!b.styles)b.styles=h.merge(b.data,{});for(var e in this["nodeStylesOn"+a]){d="$"+e;d in b.styles||(b.styles[d]=b.getData(e))}c.fx.nodeFx(h.extend({elements:{id:b.id,properties:this["nodeStylesOn"+
a]},transition:A.Quart.easeOut,duration:300,fps:40},this.config))}else{a=this.getRestoredStyles(b,a);c.fx.nodeFx(h.extend({elements:{id:b.id,properties:a},transition:A.Quart.easeOut,duration:300,fps:40},this.config))}},onClick:function(a){if(a){var b=this.nodeStylesOnClick;if(b)if(a.selected){this.toggleStylesOnClick(a,false);delete a.selected}else{this.viz.graph.eachNode(function(d){if(d.selected){for(var c in b)d.setData(c,d.styles["$"+c],"end");delete d.selected}});this.toggleStylesOnClick(a,true);
a.selected=true;delete a.hovered;this.hoveredNode=false}}},onMouseMove:function(a,b,d){if(this.down)this.move=true;if(!(this.dom&&this.isLabel(a,b))){var c=this.nodeStylesOnHover;if(c)if(!this.dom){if(this.hoveredNode)if((a=this.types[this.hoveredNode.getData("type")])&&a.contains&&a.contains.call(this.fx,this.hoveredNode,d.getPos()))return;d=d.getNode();if(this.hoveredNode||d)if(!d.hovered)if(d&&!d.selected){this.fx.nodeFxAnimation.stopTimer();this.viz.graph.eachNode(function(e){if(e.hovered&&!e.selected){for(var f in c)e.setData(f,
e.styles["$"+f],"end");delete e.hovered}});d.hovered=true;this.hoveredNode=d;this.toggleStylesOnHover(d,true)}else if(this.hoveredNode&&!this.hoveredNode.selected){this.fx.nodeFxAnimation.stopTimer();this.toggleStylesOnHover(this.hoveredNode,false);delete this.hoveredNode.hovered;this.hoveredNode=false}}}}});x.Classes.Navigation=new o({Implements:[z,w],initializePost:function(){this.pressed=this.pos=false},onMouseWheel:function(a,b,d){if(this.config.zooming){h.event.stop(h.event.get(a,b));a=1+d*(this.config.zooming/
1E3);this.canvas.scale(a,a)}},onMouseDown:function(a,b,d){if(this.config.panning)if(!(this.config.panning=="avoid nodes"&&d.getNode())){this.pressed=true;this.pos=d.getPos();a=this.canvas;b=a.translateOffsetX;d=a.translateOffsetY;var c=a.scaleOffsetY;this.pos.x*=a.scaleOffsetX;this.pos.x+=b;this.pos.y*=c;this.pos.y+=d}},onMouseMove:function(a,b,d){if(this.config.panning)if(this.pressed)if(!(this.config.panning=="avoid nodes"&&d.getNode())){a=this.pos;d=d.getPos();var c=this.canvas,e=c.translateOffsetX,
f=c.translateOffsetY;b=c.scaleOffsetX;c=c.scaleOffsetY;d.x*=b;d.y*=c;d.x+=e;d.y+=f;e=d.x-a.x;a=d.y-a.y;this.pos=d;this.canvas.translate(e*1/b,a*1/c)}},onMouseUp:function(){if(this.config.panning)this.pressed=false}});var v;(function(){function a(c,e){var f=document.createElement(c);for(var g in e)if(typeof e[g]=="object")h.extend(f[g],e[g]);else f[g]=e[g];if(c=="canvas"&&!d&&G_vmlCanvasManager)f=G_vmlCanvasManager.initElement(document.body.appendChild(f));return f}var b=typeof HTMLCanvasElement,d=
b=="object"||b=="function";$jit.Canvas=v=new o({canvases:[],pos:false,element:false,labelContainer:false,translateOffsetX:0,translateOffsetY:0,scaleOffsetX:1,scaleOffsetY:1,initialize:function(c,e){this.viz=c;this.opt=e;var f=h.type(e.injectInto)=="string"?e.injectInto:e.injectInto.id,g=f+"-label",i=h(f),j=e.width||i.offsetWidth,k=e.height||i.offsetHeight;this.id=f;var l={injectInto:f,width:j,height:k};this.element=a("div",{id:f+"-canvaswidget",style:{position:"relative",width:j+"px",height:k+"px"}});
this.labelContainer=this.createLabelContainer(e.Label.type,g,l);this.canvases.push(new v.Base({config:h.extend({idSuffix:"-canvas"},l),plot:function(){c.fx.plot()},resize:function(){c.refresh()}}));if(f=e.background){l=new v.Background[f.type](c,h.extend(f,l));this.canvases.push(new v.Base(l))}for(l=this.canvases.length;l--;){this.element.appendChild(this.canvases[l].canvas);l>0&&this.canvases[l].plot()}this.element.appendChild(this.labelContainer);i.appendChild(this.element);var m=null,n=this;h.addEvent(window,
"scroll",function(){clearTimeout(m);m=setTimeout(function(){n.getPos(true)},500)})},getCtx:function(c){return this.canvases[c||0].getCtx()},getConfig:function(){return this.opt},getElement:function(){return this.element},getSize:function(c){return this.canvases[c||0].getSize()},resize:function(c,e){this.getPos(true);this.translateOffsetX=this.translateOffsetY=0;this.scaleOffsetX=this.scaleOffsetY=1;for(var f=0,g=this.canvases.length;f<g;f++)this.canvases[f].resize(c,e);f=this.element.style;f.width=
c+"px";f.height=e+"px";if(this.labelContainer)this.labelContainer.style.width=c+"px"},translate:function(c,e,f){this.translateOffsetX+=c*this.scaleOffsetX;this.translateOffsetY+=e*this.scaleOffsetY;for(var g=0,i=this.canvases.length;g<i;g++)this.canvases[g].translate(c,e,f)},scale:function(c,e){var f=this.scaleOffsetX*c,g=this.scaleOffsetY*e,i=this.translateOffsetX*(c-1)/f,j=this.translateOffsetY*(e-1)/g;this.scaleOffsetX=f;this.scaleOffsetY=g;f=0;for(g=this.canvases.length;f<g;f++)this.canvases[f].scale(c,
e,true);this.translate(i,j,false)},getPos:function(c){if(c||!this.pos)return this.pos=h.getPos(this.getElement());return this.pos},clear:function(c){this.canvases[c||0].clear()},path:function(c,e){var f=this.canvases[0].getCtx();f.beginPath();e(f);f[c]();f.closePath()},createLabelContainer:function(c,e,f){if(c=="HTML"||c=="Native")return a("div",{id:e,style:{overflow:"visible",position:"absolute",top:0,left:0,width:f.width+"px",height:0}});else if(c=="SVG"){c=document.createElementNS("http://www.w3.org/2000/svg",
"svg:svg");c.setAttribute("width",f.width);c.setAttribute("height",f.height);var g=c.style;g.position="absolute";g.left=g.top="0px";g=document.createElementNS("http://www.w3.org/2000/svg","svg:g");g.setAttribute("width",f.width);g.setAttribute("height",f.height);g.setAttribute("x",0);g.setAttribute("y",0);g.setAttribute("id",e);c.appendChild(g);return c}}});v.Base=new o({translateOffsetX:0,translateOffsetY:0,scaleOffsetX:1,scaleOffsetY:1,initialize:function(c){this.viz=c;this.opt=c.config;this.size=
false;this.createCanvas();this.translateToCenter()},createCanvas:function(){var c=this.opt,e=c.width,f=c.height;this.canvas=a("canvas",{id:c.injectInto+c.idSuffix,width:e,height:f,style:{position:"absolute",top:0,left:0,width:e+"px",height:f+"px"}})},getCtx:function(){if(!this.ctx)return this.ctx=this.canvas.getContext("2d");return this.ctx},getSize:function(){if(this.size)return this.size;var c=this.canvas;return this.size={width:c.width,height:c.height}},translateToCenter:function(c){var e=this.getSize(),
f=c?e.width-c.width-this.translateOffsetX*2:e.width;height=c?e.height-c.height-this.translateOffsetY*2:e.height;e=this.getCtx();c&&e.scale(1/this.scaleOffsetX,1/this.scaleOffsetY);e.translate(f/2,height/2)},resize:function(c,e){var f=this.getSize(),g=this.canvas,i=g.style;this.size=false;g.width=c;g.height=e;i.width=c+"px";i.height=e+"px";d?this.translateToCenter():this.translateToCenter(f);this.translateOffsetX=this.translateOffsetY=0;this.scaleOffsetX=this.scaleOffsetY=1;this.clear();this.viz.resize(c,
e,this)},translate:function(c,e,f){var g=this.scaleOffsetY;this.translateOffsetX+=c*this.scaleOffsetX;this.translateOffsetY+=e*g;this.getCtx().translate(c,e);!f&&this.plot()},scale:function(c,e,f){this.scaleOffsetX*=c;this.scaleOffsetY*=e;this.getCtx().scale(c,e);!f&&this.plot()},clear:function(){var c=this.getSize(),e=this.translateOffsetX,f=this.translateOffsetY,g=this.scaleOffsetX,i=this.scaleOffsetY;this.getCtx().clearRect((-c.width/2-e)*1/g,(-c.height/2-f)*1/i,c.width*1/g,c.height*1/i)},plot:function(){this.clear();
this.viz.plot(this)}});v.Background={};v.Background.Circles=new o({initialize:function(c,e){this.viz=c;this.config=h.merge({idSuffix:"-bkcanvas",levelDistance:100,numberOfCircles:6,CanvasStyles:{},offset:0},e)},resize:function(c,e,f){this.plot(f)},plot:function(c){c=c.getCtx();var e=this.config,f=e.CanvasStyles;for(var g in f)c[g]=f[g];g=e.numberOfCircles;e=e.levelDistance;for(f=1;f<=g;f++){c.beginPath();c.arc(0,0,e*f,0,2*Math.PI,false);c.stroke();c.closePath()}}})})();var t=function(a,b){this.theta=
a;this.rho=b};$jit.Polar=t;t.prototype={getc:function(a){return this.toComplex(a)},getp:function(){return this},set:function(a){a=a.getp();this.theta=a.theta;this.rho=a.rho},setc:function(a,b){this.rho=Math.sqrt(a*a+b*b);this.theta=Math.atan2(b,a);if(this.theta<0)this.theta+=Math.PI*2},setp:function(a,b){this.theta=a;this.rho=b},clone:function(){return new t(this.theta,this.rho)},toComplex:function(a){var b=Math.cos(this.theta)*this.rho,d=Math.sin(this.theta)*this.rho;if(a)return{x:b,y:d};return new s(b,
d)},add:function(a){return new t(this.theta+a.theta,this.rho+a.rho)},scale:function(a){return new t(this.theta,this.rho*a)},equals:function(a){return this.theta==a.theta&&this.rho==a.rho},$add:function(a){this.theta+=a.theta;this.rho+=a.rho;return this},$madd:function(a){this.theta=(this.theta+a.theta)%(Math.PI*2);this.rho+=a.rho;return this},$scale:function(a){this.rho*=a;return this},interpolate:function(a,b){var d=Math.PI,c=d*2,e=function(j){return j<0?j%c+c:j%c},f=this.theta,g=a.theta,i=Math.abs(f-
g);return{theta:i==d?f>g?e(g+(f-c-g)*b):e(g-c+(f-g)*b):i>=d?f>g?e(g+(f-c-g)*b):e(g-c+(f-(g-c))*b):e(g+(f-g)*b),rho:(this.rho-a.rho)*b+a.rho}}};t.KER=new t(0,0);var s=function(a,b){this.x=a;this.y=b};$jit.Complex=s;s.prototype={getc:function(){return this},getp:function(a){return this.toPolar(a)},set:function(a){a=a.getc(true);this.x=a.x;this.y=a.y},setc:function(a,b){this.x=a;this.y=b},setp:function(a,b){this.x=Math.cos(a)*b;this.y=Math.sin(a)*b},clone:function(){return new s(this.x,this.y)},toPolar:function(a){var b=
this.norm(),d=Math.atan2(this.y,this.x);if(d<0)d+=Math.PI*2;if(a)return{theta:d,rho:b};return new t(d,b)},norm:function(){return Math.sqrt(this.squaredNorm())},squaredNorm:function(){return this.x*this.x+this.y*this.y},add:function(a){return new s(this.x+a.x,this.y+a.y)},prod:function(a){return new s(this.x*a.x-this.y*a.y,this.y*a.x+this.x*a.y)},conjugate:function(){return new s(this.x,-this.y)},scale:function(a){return new s(this.x*a,this.y*a)},equals:function(a){return this.x==a.x&&this.y==a.y},
$add:function(a){this.x+=a.x;this.y+=a.y;return this},$prod:function(a){var b=this.x,d=this.y;this.x=b*a.x-d*a.y;this.y=d*a.x+b*a.y;return this},$conjugate:function(){this.y=-this.y;return this},$scale:function(a){this.x*=a;this.y*=a;return this},$div:function(a){var b=this.x,d=this.y,c=a.squaredNorm();this.x=b*a.x+d*a.y;this.y=d*a.x-b*a.y;return this.$scale(1/c)}};var y=function(a,b){return new s(a,b)};s.KER=y(0,0);$jit.Graph=new o({initialize:function(a,b,d,c){this.Node=b;this.Edge=d;this.Label=
c;this.opt=h.merge({complex:false,Node:{}},a||{});this.nodes={};this.edges={};var e=this;this.nodeList={};for(var f in B)e.nodeList[f]=function(g){return function(){var i=Array.prototype.slice.call(arguments);e.eachNode(function(j){j[g].apply(j,i)})}}(f)},getNode:function(a){if(this.hasNode(a))return this.nodes[a];return false},getByName:function(a){for(var b in this.nodes){var d=this.nodes[b];if(d.name==a)return d}return false},getAdjacence:function(a,b){if(a in this.edges)return this.edges[a][b];
return false},addNode:function(a){if(!this.nodes[a.id]){var b=this.edges[a.id]={};this.nodes[a.id]=new q.Node(h.extend({id:a.id,name:a.name,data:h.merge(a.data||{},{}),adjacencies:b},this.opt.Node),this.opt.complex,this.Node,this.Edge,this.Label)}return this.nodes[a.id]},addAdjacence:function(a,b,d){this.hasNode(a.id)||this.addNode(a);this.hasNode(b.id)||this.addNode(b);a=this.nodes[a.id];b=this.nodes[b.id];if(!a.adjacentTo(b)){var c=this.edges[a.id]=this.edges[a.id]||{},e=this.edges[b.id]=this.edges[b.id]||
{};c[b.id]=e[a.id]=new q.Adjacence(a,b,d,this.Edge,this.Label);return c[b.id]}return this.edges[a.id][b.id]},removeNode:function(a){if(this.hasNode(a)){delete this.nodes[a];var b=this.edges[a];for(var d in b)delete this.edges[d][a];delete this.edges[a]}},removeAdjacence:function(a,b){delete this.edges[a][b];delete this.edges[b][a]},hasNode:function(a){return a in this.nodes},empty:function(){this.nodes={};this.edges={}}});var q=$jit.Graph,B;(function(){var a=function(c,e,f,g,i){var j;f=f||"current";
c="$"+(c?c+"-":"");if(f=="current")j=this.data;else if(f=="start")j=this.startData;else if(f=="end")j=this.endData;c=c+e;if(g)return j[c];if(!this.Config.overridable)return i[e]||0;return c in j?j[c]:c in this.data?this.data[c]:i[e]||0},b=function(c,e,f,g){g=g||"current";c="$"+(c?c+"-":"");var i;if(g=="current")i=this.data;else if(g=="start")i=this.startData;else if(g=="end")i=this.endData;i[c+e]=f},d=function(c,e){c="$"+(c?c+"-":"");var f=this;h.each(e,function(g){g=c+g;delete f.data[g];delete f.endData[g];
delete f.startData[g]})};B={getData:function(c,e,f){return a.call(this,"",c,e,f,this.Config)},setData:function(c,e,f){b.call(this,"",c,e,f)},setDataset:function(c,e){c=h.splat(c);for(var f in e)for(var g=0,i=h.splat(e[f]),j=c.length;g<j;g++)this.setData(f,i[g],c[g])},removeData:function(){d.call(this,"",Array.prototype.slice.call(arguments))},getCanvasStyle:function(c,e,f){return a.call(this,"canvas",c,e,f,this.Config.CanvasStyles)},setCanvasStyle:function(c,e,f){b.call(this,"canvas",c,e,f)},setCanvasStyles:function(c,
e){c=h.splat(c);for(var f in e)for(var g=0,i=h.splat(e[f]),j=c.length;g<j;g++)this.setCanvasStyle(f,i[g],c[g])},removeCanvasStyle:function(){d.call(this,"canvas",Array.prototype.slice.call(arguments))},getLabelData:function(c,e,f){return a.call(this,"label",c,e,f,this.Label)},setLabelData:function(c,e,f){b.call(this,"label",c,e,f)},setLabelDataset:function(c,e){c=h.splat(c);for(var f in e)for(var g=0,i=h.splat(e[f]),j=c.length;g<j;g++)this.setLabelData(f,i[g],c[g])},removeLabelData:function(){d.call(this,
"label",Array.prototype.slice.call(arguments))}}})();q.Node=new o({initialize:function(a,b,d,c,e){b={id:"",name:"",data:{},startData:{},endData:{},adjacencies:{},selected:false,drawn:false,exist:false,angleSpan:{begin:0,end:0},pos:b&&y(0,0)||new t(0,0),startPos:b&&y(0,0)||new t(0,0),endPos:b&&y(0,0)||new t(0,0)};h.extend(this,h.extend(b,a));this.Config=this.Node=d;this.Edge=c;this.Label=e},adjacentTo:function(a){return a.id in this.adjacencies},getAdjacency:function(a){return this.adjacencies[a]},
getPos:function(a){a=a||"current";if(a=="current")return this.pos;else if(a=="end")return this.endPos;else if(a=="start")return this.startPos},setPos:function(a,b){b=b||"current";var d;if(b=="current")d=this.pos;else if(b=="end")d=this.endPos;else if(b=="start")d=this.startPos;d.set(a)}});q.Node.implement(B);q.Adjacence=new o({initialize:function(a,b,d,c,e){this.nodeFrom=a;this.nodeTo=b;this.data=d||{};this.startData={};this.endData={};this.Config=this.Edge=c;this.Label=e}});q.Adjacence.implement(B);
q.Util={filter:function(a){if(!a||h.type(a)!="string")return function(){return true};var b=a.split(" ");return function(d){for(var c=0;c<b.length;c++)if(d[b[c]])return false;return true}},getNode:function(a,b){return a.nodes[b]},eachNode:function(a,b,d){d=this.filter(d);for(var c in a.nodes)d(a.nodes[c])&&b(a.nodes[c])},eachAdjacency:function(a,b,d){var c=a.adjacencies;d=this.filter(d);for(var e in c){var f=c[e];if(d(f)){if(f.nodeFrom!=a){var g=f.nodeFrom;f.nodeFrom=f.nodeTo;f.nodeTo=g}b(f,e)}}},
computeLevels:function(a,b,d,c){d=d||0;var e=this.filter(c);this.eachNode(a,function(i){i._flag=false;i._depth=-1},c);a=a.getNode(b);a._depth=d;for(var f=[a];f.length!=0;){var g=f.pop();g._flag=true;this.eachAdjacency(g,function(i){i=i.nodeTo;if(i._flag==false&&e(i)){if(i._depth<0)i._depth=g._depth+1+d;f.unshift(i)}},c)}},eachBFS:function(a,b,d,c){var e=this.filter(c);this.clean(a);for(var f=[a.getNode(b)];f.length!=0;){a=f.pop();a._flag=true;d(a,a._depth);this.eachAdjacency(a,function(g){g=g.nodeTo;
if(g._flag==false&&e(g)){g._flag=true;f.unshift(g)}},c)}},eachLevel:function(a,b,d,c,e){var f=a._depth,g=this.filter(e),i=this;d=d===false?Number.MAX_VALUE-f:d;(function j(k,l,m){var n=k._depth;n>=l&&n<=m&&g(k)&&c(k,n);n<m&&i.eachAdjacency(k,function(p){p=p.nodeTo;p._depth>n&&j(p,l,m)})})(a,b+f,d+f)},eachSubgraph:function(a,b,d){this.eachLevel(a,0,false,b,d)},eachSubnode:function(a,b,d){this.eachLevel(a,1,1,b,d)},anySubnode:function(a,b,d){var c=false;b=b||h.lambda(true);var e=h.type(b)=="string"?
function(f){return f[b]}:b;this.eachSubnode(a,function(f){if(e(f))c=true},d);return c},getSubnodes:function(a,b,d){var c=[];b=b||0;var e;if(h.type(b)=="array"){e=b[0];b=b[1]}else{e=b;b=Number.MAX_VALUE-a._depth}this.eachLevel(a,e,b,function(f){c.push(f)},d);return c},getParents:function(a){var b=[];this.eachAdjacency(a,function(d){d=d.nodeTo;d._depth<a._depth&&b.push(d)});return b},isDescendantOf:function(a,b){if(a.id==b)return true;for(var d=this.getParents(a),c=false,e=0;!c&&e<d.length;e++)c=c||
this.isDescendantOf(d[e],b);return c},clean:function(a){this.eachNode(a,function(b){b._flag=false})},getClosestNodeToOrigin:function(a,b,d){return this.getClosestNodeToPos(a,t.KER,b,d)},getClosestNodeToPos:function(a,b,d,c){var e=null;d=d||"current";b=b&&b.getc(true)||s.KER;var f=function(g,i){var j=g.x-i.x,k=g.y-i.y;return j*j+k*k};this.eachNode(a,function(g){e=e==null||f(g.getPos(d).getc(true),b)<f(e.getPos(d).getc(true),b)?g:e},c);return e}};h.each(["getNode","eachNode","computeLevels","eachBFS",
"clean","getClosestNodeToPos","getClosestNodeToOrigin"],function(a){q.prototype[a]=function(){return q.Util[a].apply(q.Util,[this].concat(Array.prototype.slice.call(arguments)))}});h.each(["eachAdjacency","eachLevel","eachSubgraph","eachSubnode","anySubnode","getSubnodes","getParents","isDescendantOf"],function(a){q.Node.prototype[a]=function(){return q.Util[a].apply(q.Util,[this].concat(Array.prototype.slice.call(arguments)))}});q.Op={options:{type:"nothing",duration:2E3,hideLabels:true,fps:30},
initialize:function(a){this.viz=a},removeNode:function(a,b){var d=this.viz,c=h.merge(this.options,d.controller,b),e=h.splat(a),f,g,i;switch(c.type){case "nothing":for(f=0;f<e.length;f++)d.graph.removeNode(e[f]);break;case "replot":this.removeNode(e,{type:"nothing"});d.labels.clearLabels();d.refresh(true);break;case "fade:seq":case "fade":g=this;for(f=0;f<e.length;f++){i=d.graph.getNode(e[f]);i.setData("alpha",0,"end")}d.fx.animate(h.merge(c,{modes:["node-property:alpha"],onComplete:function(){g.removeNode(e,
{type:"nothing"});d.labels.clearLabels();d.reposition();d.fx.animate(h.merge(c,{modes:["linear"]}))}}));break;case "fade:con":g=this;for(f=0;f<e.length;f++){i=d.graph.getNode(e[f]);i.setData("alpha",0,"end");i.ignore=true}d.reposition();d.fx.animate(h.merge(c,{modes:["node-property:alpha","linear"],onComplete:function(){g.removeNode(e,{type:"nothing"})}}));break;case "iter":g=this;d.fx.sequence({condition:function(){return e.length!=0},step:function(){g.removeNode(e.shift(),{type:"nothing"});d.labels.clearLabels()},
onComplete:function(){c.onComplete()},duration:Math.ceil(c.duration/e.length)});break;default:this.doError()}},removeEdge:function(a,b){var d=this.viz,c=h.merge(this.options,d.controller,b),e=h.type(a[0])=="string"?[a]:a,f,g,i;switch(c.type){case "nothing":for(f=0;f<e.length;f++)d.graph.removeAdjacence(e[f][0],e[f][1]);break;case "replot":this.removeEdge(e,{type:"nothing"});d.refresh(true);break;case "fade:seq":case "fade":g=this;for(f=0;f<e.length;f++)(i=d.graph.getAdjacence(e[f][0],e[f][1]))&&i.setData("alpha",
0,"end");d.fx.animate(h.merge(c,{modes:["edge-property:alpha"],onComplete:function(){g.removeEdge(e,{type:"nothing"});d.reposition();d.fx.animate(h.merge(c,{modes:["linear"]}))}}));break;case "fade:con":g=this;for(f=0;f<e.length;f++)if(i=d.graph.getAdjacence(e[f][0],e[f][1])){i.setData("alpha",0,"end");i.ignore=true}d.reposition();d.fx.animate(h.merge(c,{modes:["edge-property:alpha","linear"],onComplete:function(){g.removeEdge(e,{type:"nothing"})}}));break;case "iter":g=this;d.fx.sequence({condition:function(){return e.length!=
0},step:function(){g.removeEdge(e.shift(),{type:"nothing"});d.labels.clearLabels()},onComplete:function(){c.onComplete()},duration:Math.ceil(c.duration/e.length)});break;default:this.doError()}},sum:function(a,b){var d=this.viz,c=h.merge(this.options,d.controller,b),e=d.root,f;d.root=b.id||d.root;switch(c.type){case "nothing":f=d.construct(a);f.eachNode(function(i){i.eachAdjacency(function(j){d.graph.addAdjacence(j.nodeFrom,j.nodeTo,j.data)})});break;case "replot":d.refresh(true);this.sum(a,{type:"nothing"});
d.refresh(true);break;case "fade:seq":case "fade":case "fade:con":that=this;f=d.construct(a);var g=!this.preprocessSum(f)?["node-property:alpha"]:["node-property:alpha","edge-property:alpha"];d.reposition();if(c.type!="fade:con")d.fx.animate(h.merge(c,{modes:["linear"],onComplete:function(){d.fx.animate(h.merge(c,{modes:g,onComplete:function(){c.onComplete()}}))}}));else{d.graph.eachNode(function(i){if(i.id!=e&&i.pos.getp().equals(t.KER)){i.pos.set(i.endPos);i.startPos.set(i.endPos)}});d.fx.animate(h.merge(c,
{modes:["linear"].concat(g)}))}break;default:this.doError()}},morph:function(a,b,d){var c=this.viz,e=h.merge(this.options,c.controller,b),f=c.root,g;c.root=b.id||c.root;switch(e.type){case "nothing":g=c.construct(a);g.eachNode(function(k){var l=c.graph.hasNode(k.id);k.eachAdjacency(function(n){var p=!!c.graph.getAdjacence(n.nodeFrom.id,n.nodeTo.id);c.graph.addAdjacence(n.nodeFrom,n.nodeTo,n.data);if(p){p=c.graph.getAdjacence(n.nodeFrom.id,n.nodeTo.id);for(var r in n.data||{})p.data[r]=n.data[r]}});
if(l){l=c.graph.getNode(k.id);for(var m in k.data||{})l.data[m]=k.data[m]}});c.graph.eachNode(function(k){k.eachAdjacency(function(l){g.getAdjacence(l.nodeFrom.id,l.nodeTo.id)||c.graph.removeAdjacence(l.nodeFrom.id,l.nodeTo.id)});g.hasNode(k.id)||c.graph.removeNode(k.id)});break;case "replot":c.labels.clearLabels(true);this.morph(a,{type:"nothing"});c.refresh(true);c.refresh(true);break;case "fade:seq":case "fade":case "fade:con":that=this;g=c.construct(a);var i=d&&"node-property"in d&&h.map(h.splat(d["node-property"]),
function(k){return"$"+k});c.graph.eachNode(function(k){var l=g.getNode(k.id);if(l){l=l.data;for(var m in l)if(i&&h.indexOf(i,m)>-1)k.endData[m]=l[m];else k.data[m]=l[m]}else{k.setData("alpha",1);k.setData("alpha",1,"start");k.setData("alpha",0,"end");k.ignore=true}});c.graph.eachNode(function(k){k.ignore||k.eachAdjacency(function(l){if(!(l.nodeFrom.ignore||l.nodeTo.ignore)){var m=g.getNode(l.nodeFrom.id);l=g.getNode(l.nodeTo.id);if(!m.adjacentTo(l)){l=c.graph.getAdjacence(m.id,l.id);j=true;l.setData("alpha",
1);l.setData("alpha",1,"start");l.setData("alpha",0,"end")}}})});var j=this.preprocessSum(g);a=!j?["node-property:alpha"]:["node-property:alpha","edge-property:alpha"];a[0]+=d&&"node-property"in d?":"+h.splat(d["node-property"]).join(":"):"";a[1]=(a[1]||"edge-property:alpha")+(d&&"edge-property"in d?":"+h.splat(d["edge-property"]).join(":"):"");d&&"label-property"in d&&a.push("label-property:"+h.splat(d["label-property"]).join(":"));c.reposition();c.graph.eachNode(function(k){if(k.id!=f&&k.pos.getp().equals(t.KER)){k.pos.set(k.endPos);
k.startPos.set(k.endPos)}});c.fx.animate(h.merge(e,{modes:["polar"].concat(a),onComplete:function(){c.graph.eachNode(function(k){k.ignore&&c.graph.removeNode(k.id)});c.graph.eachNode(function(k){k.eachAdjacency(function(l){l.ignore&&c.graph.removeAdjacence(l.nodeFrom.id,l.nodeTo.id)})});e.onComplete()}}));break;default:}},contract:function(a,b){var d=this.viz;if(!(a.collapsed||!a.anySubnode(h.lambda(true)))){b=h.merge(this.options,d.config,b||{},{modes:["node-property:alpha:span","linear"]});a.collapsed=
true;(function c(e){e.eachSubnode(function(f){f.ignore=true;f.setData("alpha",0,b.type=="animate"?"end":"current");c(f)})})(a);if(b.type=="animate"){d.compute("end");d.rotated&&d.rotate(d.rotated,"none",{property:"end"});(function c(e){e.eachSubnode(function(f){f.setPos(a.getPos("end"),"end");c(f)})})(a);d.fx.animate(b)}else b.type=="replot"&&d.refresh()}},expand:function(a,b){if("collapsed"in a){var d=this.viz;b=h.merge(this.options,d.config,b||{},{modes:["node-property:alpha:span","linear"]});delete a.collapsed;
(function c(e){e.eachSubnode(function(f){delete f.ignore;f.setData("alpha",1,b.type=="animate"?"end":"current");c(f)})})(a);if(b.type=="animate"){d.compute("end");d.rotated&&d.rotate(d.rotated,"none",{property:"end"});d.fx.animate(b)}else b.type=="replot"&&d.refresh()}},preprocessSum:function(a){var b=this.viz;a.eachNode(function(c){if(!b.graph.hasNode(c.id)){b.graph.addNode(c);c=b.graph.getNode(c.id);c.setData("alpha",0);c.setData("alpha",0,"start");c.setData("alpha",1,"end")}});var d=false;a.eachNode(function(c){c.eachAdjacency(function(e){var f=
b.graph.getNode(e.nodeFrom.id),g=b.graph.getNode(e.nodeTo.id);if(!f.adjacentTo(g)){e=b.graph.addAdjacence(f,g,e.data);if(f.startAlpha==f.endAlpha&&g.startAlpha==g.endAlpha){d=true;e.setData("alpha",0);e.setData("alpha",0,"start");e.setData("alpha",1,"end")}}})});return d}};var D={none:{render:h.empty,contains:h.lambda(false)},circle:{render:function(a,b,d,c){c=c.getCtx();c.beginPath();c.arc(b.x,b.y,d,0,Math.PI*2,true);c.closePath();c[a]()},contains:function(a,b,d){var c=a.x-b.x;a=a.y-b.y;return c*
c+a*a<=d*d}},ellipse:{render:function(a,b,d,c,e){e=e.getCtx();c/=2;d/=2;e.save();e.scale(d/c,c/d);e.beginPath();e.arc(b.x*(c/d),b.y*(d/c),c,0,Math.PI*2,true);e.closePath();e[a]();e.restore()},contains:function(a,b,d,c){d/=2;c/=2;d=(d+c)/2;c=a.x-b.x;a=a.y-b.y;return c*c+a*a<=d*d}},square:{render:function(a,b,d,c){c.getCtx()[a+"Rect"](b.x-d,b.y-d,2*d,2*d)},contains:function(a,b,d){return Math.abs(b.x-a.x)<=d&&Math.abs(b.y-a.y)<=d}},rectangle:{render:function(a,b,d,c,e){e.getCtx()[a+"Rect"](b.x-d/2,
b.y-c/2,d,c)},contains:function(a,b,d,c){return Math.abs(b.x-a.x)<=d/2&&Math.abs(b.y-a.y)<=c/2}},triangle:{render:function(a,b,d,c){c=c.getCtx();var e=b.x,f=b.y-d,g=e-d;b=b.y+d;d=e+d;c.beginPath();c.moveTo(e,f);c.lineTo(g,b);c.lineTo(d,b);c.closePath();c[a]()},contains:function(a,b,d){return D.circle.contains(a,b,d)}},star:{render:function(a,b,d,c){c=c.getCtx();var e=Math.PI/5;c.save();c.translate(b.x,b.y);c.beginPath();c.moveTo(d,0);for(b=0;b<9;b++){c.rotate(e);b%2==0?c.lineTo(d/0.525731*0.200811,
0):c.lineTo(d,0)}c.closePath();c[a]();c.restore()},contains:function(a,b,d){return D.circle.contains(a,b,d)}}},F={line:{render:function(a,b,d){d=d.getCtx();d.beginPath();d.moveTo(a.x,a.y);d.lineTo(b.x,b.y);d.stroke()},contains:function(a,b,d,c){var e=Math.min,f=Math.max,g=e(a.x,b.x),i=f(a.x,b.x);e=e(a.y,b.y);f=f(a.y,b.y);if(d.x>=g&&d.x<=i&&d.y>=e&&d.y<=f){if(Math.abs(b.x-a.x)<=c)return true;return Math.abs((b.y-a.y)/(b.x-a.x)*(d.x-a.x)+a.y-d.y)<=c}return false}},arrow:{render:function(a,b,d,c,e){e=
e.getCtx();if(c){c=a;a=b;b=c}c=new s(b.x-a.x,b.y-a.y);c.$scale(d/c.norm());d=new s(b.x-c.x,b.y-c.y);var f=new s(-c.y/2,c.x/2);c=d.add(f);d=d.$add(f.$scale(-1));e.beginPath();e.moveTo(a.x,a.y);e.lineTo(b.x,b.y);e.stroke();e.beginPath();e.moveTo(c.x,c.y);e.lineTo(d.x,d.y);e.lineTo(b.x,b.y);e.closePath();e.fill()},contains:function(a,b,d,c){return F.line.contains(a,b,d,c)}},hyperline:{render:function(a,b,d,c){function e(g,i){return g<i?g+Math.PI>i?false:true:i+Math.PI>g?true:false}c=c.getCtx();var f=
function(g,i){var j=g.x*i.y-g.y*i.x,k=g.squaredNorm(),l=i.squaredNorm();if(j==0)return{x:0,y:0,ratio:-1};var m=(g.y*l-i.y*k+g.y-i.y)/j;j=(i.x*k-g.x*l+i.x-g.x)/j;k=-m/2;l=-j/2;var n=(m*m+j*j)/4-1;if(n<0)return{x:0,y:0,ratio:-1};n=Math.sqrt(n);return{x:k,y:l,ratio:n>1E3?-1:n,a:m,b:j}}(a,b);if(f.a>1E3||f.b>1E3||f.ratio<0){c.beginPath();c.moveTo(a.x*d,a.y*d);c.lineTo(b.x*d,b.y*d)}else{b=Math.atan2(b.y-f.y,b.x-f.x);a=Math.atan2(a.y-f.y,a.x-f.x);e=e(b,a);c.beginPath();c.arc(f.x*d,f.y*d,f.ratio*d,b,a,e)}c.stroke()},
contains:h.lambda(false)}};q.Plot={initialize:function(a,b){this.viz=a;this.config=a.config;this.node=a.config.Node;this.edge=a.config.Edge;this.animation=new E;this.nodeTypes=new b.Plot.NodeTypes;this.edgeTypes=new b.Plot.EdgeTypes;this.labels=a.labels},nodeHelper:D,edgeHelper:F,Interpolator:{map:{border:"color",color:"color",width:"number",height:"number",dim:"number",alpha:"number",lineWidth:"number",angularWidth:"number",span:"number",valueArray:"array-number",dimArray:"array-number"},canvas:{globalAlpha:"number",
fillStyle:"color",strokeStyle:"color",lineWidth:"number",shadowBlur:"number",shadowColor:"color",shadowOffsetX:"number",shadowOffsetY:"number",miterLimit:"number"},label:{size:"number",color:"color"},compute:function(a,b,d){return a+(b-a)*d},moebius:function(a,b,d,c){b=c.scale(-d);if(b.norm()<1){d=b.x;c=b.y;var e=a.startPos.getc().moebiusTransformation(b);a.pos.setc(e.x,e.y);b.x=d;b.y=c}},linear:function(a,b,d){b=a.startPos.getc(true);var c=a.endPos.getc(true);a.pos.setc(this.compute(b.x,c.x,d),this.compute(b.y,
c.y,d))},polar:function(a,b,d){b=a.startPos.getp(true);d=a.endPos.getp().interpolate(b,d);a.pos.setp(d.theta,d.rho)},number:function(a,b,d,c,e){var f=a[c](b,"start");c=a[c](b,"end");a[e](b,this.compute(f,c,d))},color:function(a,b,d,c,e){var f=h.hexToRgb(a[c](b,"start"));c=h.hexToRgb(a[c](b,"end"));var g=this.compute;d=h.rgbToHex([parseInt(g(f[0],c[0],d)),parseInt(g(f[1],c[1],d)),parseInt(g(f[2],c[2],d))]);a[e](b,d)},"array-number":function(a,b,d,c,e){var f=a[c](b,"start");c=a[c](b,"end");for(var g=
[],i=0,j=f.length;i<j;i++){var k=f[i],l=c[i];if(k.length){for(var m=0,n=k.length,p=[];m<n;m++)p.push(this.compute(k[m],l[m],d));g.push(p)}else g.push(this.compute(k,l,d))}a[e](b,g)},node:function(a,b,d,c,e,f){c=this[c];if(b)for(var g=b.length,i=0;i<g;i++){var j=b[i];this[c[j]](a,j,d,e,f)}else for(j in c)this[c[j]](a,j,d,e,f)},edge:function(a,b,d,c,e,f){a=a.adjacencies;for(var g in a)this.node(a[g],b,d,c,e,f)},"node-property":function(a,b,d){this.node(a,b,d,"map","getData","setData")},"edge-property":function(a,
b,d){this.edge(a,b,d,"map","getData","setData")},"label-property":function(a,b,d){this.node(a,b,d,"label","getLabelData","setLabelData")},"node-style":function(a,b,d){this.node(a,b,d,"canvas","getCanvasStyle","setCanvasStyle")},"edge-style":function(a,b,d){this.edge(a,b,d,"canvas","getCanvasStyle","setCanvasStyle")}},sequence:function(a){var b=this;a=h.merge({condition:h.lambda(false),step:h.empty,onComplete:h.empty,duration:200},a||{});var d=setInterval(function(){if(a.condition())a.step();else{clearInterval(d);
a.onComplete()}b.viz.refresh(true)},a.duration)},prepare:function(a){var b=this.viz.graph,d={"node-property":{getter:"getData",setter:"setData"},"edge-property":{getter:"getData",setter:"setData"},"node-style":{getter:"getCanvasStyle",setter:"setCanvasStyle"},"edge-style":{getter:"getCanvasStyle",setter:"setCanvasStyle"}},c={};if(h.type(a)=="array")for(var e=0,f=a.length;e<f;e++){var g=a[e].split(":");c[g.shift()]=g}else for(e in a)if(e=="position")c[a.position]=[];else c[e]=h.splat(a[e]);b.eachNode(function(i){i.startPos.set(i.pos);
h.each(["node-property","node-style"],function(j){if(j in c)for(var k=c[j],l=0,m=k.length;l<m;l++)i[d[j].setter](k[l],i[d[j].getter](k[l]),"start")});h.each(["edge-property","edge-style"],function(j){if(j in c){var k=c[j];i.eachAdjacency(function(l){for(var m=0,n=k.length;m<n;m++)l[d[j].setter](k[m],l[d[j].getter](k[m]),"start")})}})});return c},animate:function(a,b){a=h.merge(this.viz.config,a||{});var d=this,c=this.viz.graph,e=this.Interpolator,f=a.type==="nodefx"?this.nodeFxAnimation:this.animation,
g=this.prepare(a.modes);a.hideLabels&&this.labels.hideLabels(true);f.setOptions(h.merge(a,{$animating:false,compute:function(i){c.eachNode(function(j){for(var k in g)e[k](j,g[k],i,b)});d.plot(a,this.$animating,i);this.$animating=true},complete:function(){a.hideLabels&&d.labels.hideLabels(false);d.plot(a);a.onComplete();a.onAfterCompute()}})).start()},nodeFx:function(a){var b=this.viz,d=b.graph,c=this.nodeFxAnimation,e=h.merge(this.viz.config,{elements:{id:false,properties:{}},reposition:false});a=
h.merge(e,a||{},{onBeforeCompute:h.empty,onAfterCompute:h.empty});c.stopTimer();var f=a.elements.properties;if(a.elements.id){c=h.splat(a.elements.id);h.each(c,function(i){if(i=d.getNode(i))for(var j in f)i.setData(j,f[j],"end")})}else d.eachNode(function(i){for(var j in f)i.setData(j,f[j],"end")});c=[];for(var g in f)c.push(g);g=["node-property:"+c.join(":")];if(a.reposition){g.push("linear");b.compute("end")}this.animate(h.merge(a,{modes:g,type:"nodefx"}))},plot:function(a,b){var d=this.viz,c=d.graph,
e=d.canvas;d=d.root;var f=this,g=e.getCtx(),i=Math.min;a=a||this.viz.controller;a.clearCanvas&&e.clear();if(d=c.getNode(d)){var j=!!d.visited;c.eachNode(function(k){var l=k.getData("alpha");k.eachAdjacency(function(m){var n=m.nodeTo;if(!!n.visited===j&&k.drawn&&n.drawn){!b&&a.onBeforePlotLine(m);g.save();g.globalAlpha=i(l,n.getData("alpha"),m.getData("alpha"));f.plotLine(m,e,b);g.restore();!b&&a.onAfterPlotLine(m)}});g.save();if(k.drawn){!b&&a.onBeforePlotNode(k);f.plotNode(k,e,b);!b&&a.onAfterPlotNode(k)}if(!f.labelsHidden&&
a.withLabels)k.drawn&&l>=0.95?f.labels.plotLabel(e,k,a):f.labels.hideLabel(k,false);g.restore();k.visited=!j})}},plotTree:function(a,b,d){var c=this,e=this.viz.canvas,f=e.getCtx(),g=a.getData("alpha");a.eachSubnode(function(i){if(b.plotSubtree(a,i)&&i.exist&&i.drawn){var j=a.getAdjacency(i.id);!d&&b.onBeforePlotLine(j);f.globalAlpha=Math.min(g,i.getData("alpha"));c.plotLine(j,e,d);!d&&b.onAfterPlotLine(j);c.plotTree(i,b,d)}});if(a.drawn){!d&&b.onBeforePlotNode(a);this.plotNode(a,e,d);!d&&b.onAfterPlotNode(a);
!b.hideLabels&&b.withLabels&&g>=0.95?this.labels.plotLabel(e,a,b):this.labels.hideLabel(a,false)}else this.labels.hideLabel(a,true)},plotNode:function(a,b,d){var c=a.getData("type"),e=this.node.CanvasStyles;if(c!="none"){var f=a.getData("lineWidth"),g=a.getData("color"),i=a.getData("alpha"),j=b.getCtx();j.lineWidth=f;j.fillStyle=j.strokeStyle=g;j.globalAlpha=i;for(var k in e)j[k]=a.getCanvasStyle(k);this.nodeTypes[c].render.call(this,a,b,d)}},plotLine:function(a,b,d){var c=a.getData("type"),e=this.edge.CanvasStyles;
if(c!="none"){var f=a.getData("lineWidth"),g=a.getData("color"),i=b.getCtx();i.lineWidth=f;i.fillStyle=i.strokeStyle=g;for(var j in e)i[j]=a.getCanvasStyle(j);this.edgeTypes[c].render.call(this,a,b,d)}}};q.Label={};q.Label.Native=new o({plotLabel:function(a,b,d){var c=a.getCtx();b.pos.getc(true);c.font=b.getLabelData("style")+" "+b.getLabelData("size")+"px "+b.getLabelData("family");c.textAlign=b.getLabelData("textAlign");c.fillStyle=c.strokeStyle=b.getLabelData("color");c.textBaseline=b.getLabelData("textBaseline");
this.renderLabel(a,b,d)},renderLabel:function(a,b){var d=a.getCtx(),c=b.pos.getc(true);d.fillText(b.name,c.x,c.y+b.getData("height")/2)},hideLabel:h.empty,hideLabels:h.empty});q.Label.DOM=new o({labelsHidden:false,labelContainer:false,labels:{},getLabelContainer:function(){return this.labelContainer?this.labelContainer:this.labelContainer=document.getElementById(this.viz.config.labelContainer)},getLabel:function(a){return a in this.labels&&this.labels[a]!=null?this.labels[a]:this.labels[a]=document.getElementById(a)},
hideLabels:function(a){this.getLabelContainer().style.display=a?"none":"";this.labelsHidden=a},clearLabels:function(a){for(var b in this.labels)if(a||!this.viz.graph.hasNode(b)){this.disposeLabel(b);delete this.labels[b]}},disposeLabel:function(a){(a=this.getLabel(a))&&a.parentNode&&a.parentNode.removeChild(a)},hideLabel:function(a,b){a=h.splat(a);var d=b?"":"none",c=this;h.each(a,function(e){if(e=c.getLabel(e.id))e.style.display=d})},fitsInCanvas:function(a,b){var d=b.getSize();if(a.x>=d.width||
a.x<0||a.y>=d.height||a.y<0)return false;return true}});q.Label.HTML=new o({Implements:q.Label.DOM,plotLabel:function(a,b,d){a=b.id;var c=this.getLabel(a);if(!c&&!(c=document.getElementById(a))){c=document.createElement("div");var e=this.getLabelContainer();c.id=a;c.className="node";c.style.position="absolute";d.onCreateLabel(c,b);e.appendChild(c);this.labels[b.id]=c}this.placeLabel(c,b,d)}});q.Label.SVG=new o({Implements:q.Label.DOM,plotLabel:function(a,b,d){a=b.id;var c=this.getLabel(a);if(!c&&
!(c=document.getElementById(a))){c=document.createElementNS("http://www.w3.org/2000/svg","svg:text");var e=document.createElementNS("http://www.w3.org/2000/svg","svg:tspan");c.appendChild(e);e=this.getLabelContainer();c.setAttribute("id",a);c.setAttribute("class","node");e.appendChild(c);d.onCreateLabel(c,b);this.labels[b.id]=c}this.placeLabel(c,b,d)}});z={construct:function(a){var b=h.type(a)=="array",d=new q(this.graphOptions,this.config.Node,this.config.Edge,this.config.Label);b?function(c,e){for(var f=
function(p){for(var r=0,C=e.length;r<C;r++)if(e[r].id==p)return e[r];return c.addNode({id:p,name:p})},g=0,i=e.length;g<i;g++){c.addNode(e[g]);var j=e[g].adjacencies;if(j)for(var k=0,l=j.length;k<l;k++){var m=j[k],n={};if(typeof j[k]!="string"){n=h.merge(m.data,{});m=m.nodeTo}c.addAdjacence(e[g],f(m),n)}}}(d,a):function(c,e){c.addNode(e);if(e.children)for(var f=0,g=e.children;f<g.length;f++){c.addAdjacence(e,g[f]);arguments.callee(c,g[f])}}(d,a);return d},loadJSON:function(a,b){this.json=a;this.labels&&
this.labels.clearLabels&&this.labels.clearLabels(true);this.graph=this.construct(a);this.root=h.type(a)!="array"?a.id:a[b?b:0].id},toJSON:function(a){a=a||"tree";if(a=="tree"){var b={};b=function c(e){var f={};f.id=e.id;f.name=e.name;f.data=e.data;var g=[];e.eachSubnode(function(i){g.push(c(i))});f.children=g;return f}(this.graph.getNode(this.root))}else{b=[];var d=!!this.graph.getNode(this.root).visited;this.graph.eachNode(function(c){var e={};e.id=c.id;e.name=c.name;e.data=c.data;var f=[];c.eachAdjacency(function(g){var i=
g.nodeTo;if(!!i.visited===d){var j={};j.nodeTo=i.id;j.data=g.data;f.push(j)}});e.adjacencies=f;b.push(e);c.visited=!d})}return b}};w=$jit.Layouts={};var H={label:null,compute:function(a,b,d){this.initializeLabel(d);var c=this.label,e=c.style;a.eachNode(function(f){var g=f.getData("autoWidth"),i=f.getData("autoHeight");if(g||i){delete f.data.$width;delete f.data.$height;delete f.data.$dim;var j=f.getData("width"),k=f.getData("height");e.width=g?"auto":j+"px";e.height=i?"auto":k+"px";c.innerHTML=f.name;
g=c.offsetWidth;i=c.offsetHeight;j=f.getData("type");if(h.indexOf(["circle","square","triangle","star"],j)===-1){f.setData("width",g);f.setData("height",i)}else{g=g>i?g:i;f.setData("width",g);f.setData("height",g);f.setData("dim",g)}}})},initializeLabel:function(a){if(!this.label){this.label=document.createElement("div");document.body.appendChild(this.label)}this.setLabelStyles(a)},setLabelStyles:function(){h.extend(this.label.style,{visibility:"hidden",position:"absolute",width:"auto",height:"auto"});
this.label.className="jit-autoadjust-label"}};w.ForceDirected=new o({getOptions:function(){var a=this.canvas.getSize(),b=a.width;a=a.height;var d=0;this.graph.eachNode(function(){d++});var c=b*a/d,e=Math.sqrt(c),f=this.config.levelDistance;return{width:b,height:a,tstart:b*0.1,nodef:function(g){return c/(g||1)},edgef:function(g){return e*(g-f)}}},compute:function(a,b){var d=h.splat(a||["current","start","end"]),c=this.getOptions();H.compute(this.graph,d,this.config);this.graph.computeLevels(this.root,
0,"ignore");this.graph.eachNode(function(e){h.each(d,function(f){f=e.getPos(f);if(f.equals(s.KER)){f.x=c.width/5*(Math.random()-0.5);f.y=c.height/5*(Math.random()-0.5)}e.disp={};h.each(d,function(g){e.disp[g]=y(0,0)})})});this.computePositions(d,c,b)},computePositions:function(a,b,d){var c=this.config.iterations,e=0,f=this;if(d)(function g(){for(var i=d.iter,j=0;j<i;j++){b.t=b.tstart*(1-e++/(c-1));f.computePositionStep(a,b);if(e>=c){d.onComplete();return}}d.onStep(Math.round(e/(c-1)*100));setTimeout(g,
1)})();else for(;e<c;e++){b.t=b.tstart*(1-e/(c-1));this.computePositionStep(a,b)}},computePositionStep:function(a,b){var d=this.graph,c=Math.min,e=Math.max,f=y(0,0);d.eachNode(function(l){h.each(a,function(m){l.disp[m].x=0;l.disp[m].y=0});d.eachNode(function(m){m.id!=l.id&&h.each(a,function(n){var p=l.getPos(n),r=m.getPos(n);f.x=p.x-r.x;f.y=p.y-r.y;p=f.norm()||1;l.disp[n].$add(f.$scale(b.nodef(p)/p))})})});var g=!!d.getNode(this.root).visited;d.eachNode(function(l){l.eachAdjacency(function(m){var n=
m.nodeTo;!!n.visited===g&&h.each(a,function(p){var r=l.getPos(p),C=n.getPos(p);f.x=r.x-C.x;f.y=r.y-C.y;r=f.norm()||1;l.disp[p].$add(f.$scale(-b.edgef(r)/r));n.disp[p].$add(f.$scale(-1))})});l.visited=!g});var i=b.t,j=b.width/2,k=b.height/2;d.eachNode(function(l){h.each(a,function(m){var n=l.disp[m],p=n.norm()||1;m=l.getPos(m);m.$add(y(n.x*c(Math.abs(n.x),i)/p,n.y*c(Math.abs(n.y),i)/p));m.x=c(j,e(-j,m.x));m.y=c(k,e(-k,m.y))})})}});$jit.ForceDirected=new o({Implements:[z,x,w.ForceDirected],initialize:function(a){var b=
$jit.ForceDirected;a=this.controller=this.config=h.merge(u("Canvas","Node","Edge","Fx","Tips","NodeStyles","Events","Navigation","Controller","Label"),{iterations:50,levelDistance:50},a);if(a.useCanvas){this.canvas=a.useCanvas;this.config.labelContainer=this.canvas.id+"-label"}else{if(a.background)a.background=h.merge({type:"Circles"},a.background);this.canvas=new v(this,a);this.config.labelContainer=(typeof a.injectInto=="string"?a.injectInto:a.injectInto.id)+"-label"}this.graphOptions={complex:true,
Node:{selected:false,exist:true,drawn:true}};this.graph=new q(this.graphOptions,this.config.Node,this.config.Edge);this.labels=new b.Label[a.Label.type](this);this.fx=new b.Plot(this,b);this.op=new b.Op(this);this.json=null;this.busy=false;this.initializeExtras()},refresh:function(){this.compute();this.plot()},reposition:function(){this.compute("end")},computeIncremental:function(a){a=h.merge({iter:20,property:"end",onStep:h.empty,onComplete:h.empty},a||{});this.config.onBeforeCompute(this.graph.getNode(this.root));
this.compute(a.property,a)},plot:function(){this.fx.plot()},animate:function(a){this.fx.animate(h.merge({modes:["linear"]},a||{}))}});$jit.ForceDirected.$extend=true;(function(a){a.Op=new o({Implements:q.Op});a.Plot=new o({Implements:q.Plot});a.Label={};a.Label.Native=new o({Implements:q.Label.Native});a.Label.SVG=new o({Implements:q.Label.SVG,initialize:function(b){this.viz=b},placeLabel:function(b,d,c){var e=d.pos.getc(true),f=this.viz.canvas,g=f.translateOffsetX,i=f.translateOffsetY,j=f.scaleOffsetX,
k=f.scaleOffsetY;f=f.getSize();e={x:Math.round(e.x*j+g+f.width/2),y:Math.round(e.y*k+i+f.height/2)};b.setAttribute("x",e.x);b.setAttribute("y",e.y);c.onPlaceLabel(b,d)}});a.Label.HTML=new o({Implements:q.Label.HTML,initialize:function(b){this.viz=b},placeLabel:function(b,d,c){var e=d.pos.getc(true),f=this.viz.canvas,g=f.translateOffsetX,i=f.translateOffsetY,j=f.scaleOffsetX,k=f.scaleOffsetY,l=f.getSize();e={x:Math.round(e.x*j+g+l.width/2),y:Math.round(e.y*k+i+l.height/2)};g=b.style;g.left=e.x+"px";
g.top=e.y+"px";g.display=this.fitsInCanvas(e,f)?"":"none";c.onPlaceLabel(b,d)}});a.Plot.NodeTypes=new o({none:{render:h.empty,contains:h.lambda(false)},circle:{render:function(b,d){var c=b.pos.getc(true),e=b.getData("dim");this.nodeHelper.circle.render("fill",c,e,d)},contains:function(b,d){var c=b.pos.getc(true),e=b.getData("dim");return this.nodeHelper.circle.contains(c,d,e)}},ellipse:{render:function(b,d){var c=b.pos.getc(true),e=b.getData("width"),f=b.getData("height");this.nodeHelper.ellipse.render("fill",
c,e,f,d)},contains:function(b,d){var c=b.pos.getc(true),e=b.getData("width"),f=b.getData("height");return this.nodeHelper.ellipse.contains(c,d,e,f)}},square:{render:function(b,d){var c=b.pos.getc(true),e=b.getData("dim");this.nodeHelper.square.render("fill",c,e,d)},contains:function(b,d){var c=b.pos.getc(true),e=b.getData("dim");return this.nodeHelper.square.contains(c,d,e)}},rectangle:{render:function(b,d){var c=b.pos.getc(true),e=b.getData("width"),f=b.getData("height");this.nodeHelper.rectangle.render("fill",
c,e,f,d)},contains:function(b,d){var c=b.pos.getc(true),e=b.getData("width"),f=b.getData("height");return this.nodeHelper.rectangle.contains(c,d,e,f)}},triangle:{render:function(b,d){var c=b.pos.getc(true),e=b.getData("dim");this.nodeHelper.triangle.render("fill",c,e,d)},contains:function(b,d){var c=b.pos.getc(true),e=b.getData("dim");return this.nodeHelper.triangle.contains(c,d,e)}},star:{render:function(b,d){var c=b.pos.getc(true),e=b.getData("dim");this.nodeHelper.star.render("fill",c,e,d)},contains:function(b,
d){var c=b.pos.getc(true),e=b.getData("dim");return this.nodeHelper.star.contains(c,d,e)}}});a.Plot.EdgeTypes=new o({none:h.empty,line:{render:function(b,d){var c=b.nodeFrom.pos.getc(true),e=b.nodeTo.pos.getc(true);this.edgeHelper.line.render(c,e,d)},contains:function(b,d){var c=b.nodeFrom.pos.getc(true),e=b.nodeTo.pos.getc(true);return this.edgeHelper.line.contains(c,e,d,this.edge.epsilon)}},arrow:{render:function(b,d){var c=b.nodeFrom.pos.getc(true),e=b.nodeTo.pos.getc(true),f=b.getData("dim"),
g=b.data.$direction;this.edgeHelper.arrow.render(c,e,f,g&&g.length>1&&g[0]!=b.nodeFrom.id,d)},contains:function(b,d){var c=b.nodeFrom.pos.getc(true),e=b.nodeTo.pos.getc(true);return this.edgeHelper.arrow.contains(c,e,d,this.edge.epsilon)}}})})($jit.ForceDirected)})();
//}}}
//Synonym://  [[Affinity Diagram]]
<data>{"abstract":"Die [[KJ-Methode]] ist eine Kreativitätstechnik, bei der spontan eine möglichst große Menge von Informationen auf Kärtchen gesammelt wird."}</data>
<part text>
<<wikify [>img(%0,%1)[%2|%3]] 60% auto title http://www.mycoted.com/mwiki/images/b/ba/Cardstory.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("KJ-Methode","abstract") </script>

!~KJ-Methode
<<tiddler [[KJ-Methode##Overview]]>>

Die [[KJ-Methode]] ist eine nach dem japanischen Anthropologen [[Jiro Kawakita| http://wiwiki.wi-inf.uni-essen.de/comments/Jiro+Kawakita]] benannte [[Kreativitätstechnik|Kreativitätstechniken]], bei der spontan eine möglichst große Menge von [[Informationen|Information]] auf Kärtchen gesammelt wird. 

Mit 50-200 Karten lässt sich bereits sehr gut arbeiten. Die Informations"teile" werden dann zu Clustern verdichtet. Daraufhin wird untersucht, in welchen Beziehungen die einzelnen [[Cluster|Clustering]] zueinander stehen und letztendlich bis auf die Einzelkarte wieder zurückgegriffen, um Beziehungen zu vertiefen und konkretisieren.
# Sie nehmen kleine Kärtchen und notieren sich auf der Vorderseite wie beim [[Brainstorming]] Stichworte zu jeder Information, die von Nutzen sein könnte. <br> Auf die Rückseite schreiben Sie die Quelle und wo sie zu finden ist. Am Ende haben Sie einen mehr oder weniger umfangreichen ~Karteikarten-Stapel vor sich liegen.
# Sie breiten die Karten auf dem Tisch oder Fußboden aus und bilden Cluster. Hierzu stapeln Sie alle Kärtchen, die einen ähnlichen Inhalt haben oder eng miteinander zusammen hängen. Zum Schluss erhalten alle Stapel andersfarbige Deckkarten mit einem Oberbegriff. Dabei können schon bis zu 40 Stapel entstehen.
# Nun fassen Sie ähnliche Stapel wieder zusammen und verbinden Sie mit einem Oberbegriff. Am Ende sollten 7 bis 10 Stapel übrig bleiben.
# Jetzt können Sie die Stapel- hin und herschieben und Verbindungen zwischen ihnen durch weitere farbige Karten oder Pfeile darstellen.
# Erst jetzt gehen Sie in die Details und suchen sich Einzelinformationen aus den Stapeln heraus, die Sie weiter verwenden möchten.

!Quelle
Sibylle Kallwitz: Konzeptmanagement Teil 1, Praxishandbuch leiten - führen - motivieren, Oktober 2004, S. 56-57

KJ can be used effectively in [[Six Sigma]] projects. 


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing


+++*[Internet Imgages]
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.hirnsport.de/pncms/html/images/artikel/kj_methode.gif>>
----
<<miniBrowser noplayer http://www.mindtools.com/pages/article/newTMC_86.htm>>
---- }}} 
===


!Contrasting KJ and Affinity Diagram
A number of web sites describe KJ as another name for an affinity diagram. This is an unfortunate generalization. Table 1 outlines some key distinctions between the two. Central is the fact that KJ focuses on facts, putting some rules around the traceability and clarity of every piece of language data introduced. This reduces variation in the meaning to be distilled – recognizing that no amount of language processing can overcome vague and ill-founded facts (garbage in/garbage out). Affinity diagrams, on the other hand, often encourage brainstorming, letting all ideas into the mix. Even before each tool kicks in, this difference in the incoming data is a major distinction.
http://software.isixsigma.com/library/content/c050622b.asp]



!See also
* [[Progressive Abstraktion]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Übungen Problemlösungen]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemlösungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Effective Use of Special Purpose KJ Language Processing| http://software.isixsigma.com/library/content/c050622b.asp]]
* [[MWonline| http://www.mwonline.de/online/themen/3/Ideenfabrik/KJ-Methode+%28jt%29.html]]
* [[WHAT IS KJ METHOD?| http://www.uncrd.or.jp/hs/01i_ttc2/doc/01i_m5_23noji_ppt.pdf]]
* [[http://www.hirnsport.de| http://www.hirnsport.de/pncms/html/modules.php?op=modload&name=News&file=article&sid=41&POSTNUKESID=8f9b5c694bbdd673e68ae14e8bc889fa]]
* http://www.mycoted.com/KJ-Method
</part>
<data>{"abstract":"[[KREATIV]], eine kleine Übung zum Veranschaulichen von Kreativität durch Stimulanz, sehr gut auch mit einer großen Gruppe durchführbar."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.koje.at/cms/files/userpics/normal_kreativ.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("KREATIV","abstract") </script>

!KREATIV
<script> return "<<tiddler [[KREATIV##Overview]]>>" </script> 

!Objectives
* Kreative Problemlösung

!Timing
20min

!Audience
Group / Individual


!Materials
* Flipchart


!Procedure
# Bilden Sie andere Worte, welche nur die Buchstaben enthalten, die auch im Wort KREATIV enthalten sind – also auch kürzere Worte. Kein Buchstabe wird doppelt verwendet. 
# Lassen Sie zunächst jeden Teilnehmer schätzen, wie viele Worte es gibt – //spontan//. Die Zahl hält jeder auf einem Zettel fest.
# Dann werden 2–er oder 3-er Gruppen gebildet. Die Gruppen haben zwei Minuten Zeit. 
# Anschließend fragt der Trainer die gefundenen Worte ab und schreibt sie ans Flipchart. Dazu stellen sich alle Gruppen hin und werden reihum befragt. Abwechselnd werden Worte genannt, bis eine Gruppe kein Wort mehr hat. Sie muss sich setzen. Es wird weiter abgefragt, bis eine Siegergruppe feststeht.

!Debriefing
Es gibt deutlich über 30 Kombinationen, wenn man auch bekannte englische Begriffe zulässt – diese kommen nämlich wahrscheinlich auch.

{{indent{
akt akte aktie aktiv art at ei erika eta eva ira irak ire irk it itaker kai karte kater kate ki kita rat rate re ta ti tier tv vae vater vati via vikar vita vr - usw.
}}}


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://www.mwonline.de/db/topics/themenentry.php4?to_parebene=KREATIV+%28K%F6rwers%29&db=3]]
//synonym://
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!Kantor Four Player Model
<<tiddler [[Kantor Four Player Model##Overview]]>>


!Objectives

!Timing

!Materials
*

!Audience
Group / Individual

!Procedure

!Debriefing

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Agile Team Dynamics: Kantor Four Player Model| http://etechsuccess2.blogspot.com/2010/03/agile-team-dynamics.html]] (''!!'')
<data>{"abstract":"[[Kennenlern-Netz]], eine ~Kennenlern-Übung, die einen direkten Bezug zum Seminarinhalt ermöglicht und die Teilnehmer untereinander etwas näher bringt."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.singleboersevergleich.com/wp-content/themes/arras-theme_m/library/timthumb.php?src=http://www.singleboersevergleich.com/wp-content/uploads/2010/06/titel-singleboersen-vorteil-suche.jpg&w=630&h=250&zc=1>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Kennenlern-Netz","abstract") </script>
Mit dieser Übung erfahren die Teilnehmer etwas übereinander, gleichzeitig aber werden sie auch als Gruppe gestärkt - unabhängig vom Thema.
Die Übung kann auch verwendet werden, um persönliche [[Ziele|Ziel]] abzufragen.

!~Kennenlern-Netz
<script> return "<<tiddler [[Kennenlern-Netz##Overview]]>>" </script>

!Objectives
* Kennenlernen im Seminar, 
* Abfragen persönlicher Ziele
* Stärken des Gruppengefühls

!Timing
20 min

!Audience
Group


!Materials
* Garnknäuel
* Flipchart

!Procedure
Die Teilnehmer sitzen in einem Stuhlkreis. Der Trainer schreibt am Flipchart Stichworte an, zu denen die Teilnehmer etwas über sich sagen sollen: Name, Abteilung, Hobbys, eigentlicher Wunschberuf etc.). 
Dann nimmt der Trainer ein Knäuel mit reißfestem Garn und wirft dieses einem der Teilnehmer zu, wobei er den Anfang des Fadens in der Hand festhält. 
Der Teilnehmer, der das Knäuel gefangen hat, erzählt etwas über sich zu den notierten Stichworten, dann wirft er das Knäuel dem nächsten Teilnehmer zu und hält dabei den Faden fest.
Wenn sich alle vorgestellt haben, ist ein Netz zwischen ihnen sichtbar. 

Der Trainer bittet darum, dieses Netz in Bauchhöhe gut zu straffen. Anschließend fordert er einen Teilnehmer auf, das Netz allein mit einer Aufwärtsbewegung nach oben zu bringen.


!Debriefing
Dabei werden alle feststellen, dass dies nur dann gelingt, wenn alle "mitspielen" - ganz so, wie dies bei Teamaufgaben im Unternehmen der Fall ist.

!Quelle
Antje Pelzer, aus: [[Rachow, Axel: Spielbar II, managerSeminare, 2002, S. 53| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FSpielbar-pr%25C3%25A4sentieren-Top-Spiele-Seminarpraxis-Seminarpraxis%2Fdp%2F3931488632%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1211920003%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://www.mwonline.de/db/topics/themenentry.php4?to_parebene=Kennenlern-Netz+%28jt%29&db=3]]
<data>{"abstract":"[[Kennenlernen über Selbst- und Fremdbild]]: eine Kennenlernübung für Team- und Kommunikationstrainings, bei denen sich die Teilnehmer selbst beschreiben und die anderen herausfinden müssen, wer gemeint sein könnte."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://i184.photobucket.com/albums/x304/tpc0470/confidence.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Kennenlernen über Selbst- und Fremdbild","abstract") </script>

!Kennenlernen über Selbst- und Fremdbild
<script> return "<<tiddler [[Kennenlernen über Selbst- und Fremdbild##Overview]]>>" </script> 

!Objectives
* Kennenlernen

!Timing
30 min

!Audience
Group

!Materials
* 

!Procedure
Jeder Teilnehmer schreibt auf einen Zettel seinen Namen und 3-5 Adjektive, die ihn als Person kennzeichnen. Anschließend werden die Eigenschaften ohne Namensnennung vom Trainer einzeln verlesen und die Gruppe muss raten, welcher Teilnehmer sich selbst so beschrieben hat.

In diesem Ratespiel wird sichtbar, wie sehr [[Wahrnehmung]] ([[Eigen- und Fremdwahrnehmung|Fremdbild / Eigenbild]]) und deren [[Kommunikation]] unterschiedlich sein können.

!Debriefing
Am Schluss des Seminares kann noch einmal an die Eigenschaften der Teilnehmer erinnert werden und jede/r kann überlegen, inwieweit nur die Einschätzung der Teilnehmer mit der eigenen [[Wahrnehmung]] dieser Person übereinstimmt.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Kennenlernen+%FCber+Selbst-+und+Fremdbild+%28mc%29]]
//synonym:// ''~KT-Matrix''
<data>{"abstract":"The Kepner Tregoe Matrix is a one of the most unique, documented analysis and [[decision-making|Decision Making]] methods."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.cognitive-edge.com/blogs/dave/know%20don%27t%20know%20matrix.png>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Kepner-Tregoe Matrix","abstract") </script>

!~Kepner-Tregoe Matrix
It is sometimes called a [[root cause analysis|Root Cause Analysis]] and decision-making method. It is a step-by-step approach for systematically [[solving problems|problem_solving]], making decisions, and analyzing potential [[risks|Risiko]]. It helps the decision maker to maximize critical thinking skills, systematically organize and prioritize information, set objectives, evaluate alternatives, and analyze impact.

!Four Steps
Kepner Tregoe Decision Making can be summarized at it's simplest terms to four steps
# Situation Appraisal
# [[Problem]] Analysis
# Decision Analysis
# Potential [[Problem]] Analysis

The ~Kepner-Tregoe analysis model may provide you with an [[unbiased|http://www.decide-guide.com/decision-bias.html]] decision-making process. It is a structured technique to identifying and rank all factors critical to the decision. It may help you to utilize critical thinking skills, organize and prioritize information, set objectives, evaluate alternatives, and analyze impact.

As a tool, it is popular because it limits conscious and unconscious biases that tend to steer a decision away from its primary objectives. This methodology can be applied to many types of decisions, but because of it's complex appearance and training often required, it tends to be used in management decisions or business decisions. The user of will evaluate alternative courses of action to optimize the selected result based on explicit objectives.

!Decision Making Steps
Kepner Tregoe describes the following steps to approach decision analysis: 
# Prepare a decision statement having both an action and a result component
# Establish strategic requirements (Musts), operational objectives (Wants), and restraints (Limits)
# Rank objectives and assign relative weights
# List alternatives
# Assign a relative score for each alternative on an objective-by-objective basis
# Calculate weighted score for each alternative and identify the top two or three
# List adverse consequences for each top alternative and evaluate probability (high, medium, low) and severity (high, medium, low)
# Make a final, single choice between top alternatives

A further defined process, for use in conjunction Kepner Tregoe evaluation tools, is as follows:
# Define the Musts and evaluate each potential solution as a GO or NO GO
# Define the Wants
** assign each want a 1-10 rating of importance
** give each alternative a 1-10 rating of how well it satisfies each want
** Multiply the importance x Satisfy ratings and sum
# Define the ADVERSE CONSEQUENCES associated with each alternative.
** rate each on the Probability of occurring and its seriousness
** then multiply Probability x Seriousness and SUM

!Kepner-~Tregoe-Analysis 
The Kepner Tregoe (also KT-analysis called) is a method for problem definition.
She applies, where a [[product|Produkt]] is to fulfill different criteria well and a prioritization of the criteria is desired.
In the KT-analysis for the criteria a {{{n * n }}} matrix is set up, and compared in sequence each criterion with all other criteria.
If the criterion is more important in the line m than in the appropriate column k, then a 1 is registered into the matrix, otherwise 0. The main diagonal of the matrix is filled up with ones. To the sum of all array elements s always applies

{{{
      s = n ( {n-1}/{2} + 1 )
}}}

In the described variant there is not the possibility that two criteria are equivalent important. Finally line by line the points are added and divided by s. The result results in the proportional importance of the appropriate criterion.

!Example of a matrix
{{{
Criterion                     1. 2. 3. 4. 5.  Points  rank percentage 
----------------------------+-----------------+------+----+----------
1. Content                  | 1  1  0  1  0   |  3   | 3  | 20.0% 
2. Products                 | 0  1  0  0  0   |  1   | 5  | 6.7% 
3. Location                 | 1  1  1  1  0   |  4   | 2  | 26.7% 
4. Social security benefits | 0  1  0  1  0   |  2   | 4  | 13.3% 
5. Working climate          | 1  1  1  1  1   |  5   | 1  | 33.3% 
----------------------------+-----------------+------+----+----------
                                                 15         100.0% 
}}}

If the criteria are priorisiert, thereby the [[evaluation|Evaluation]] of different solution variants can be made on the basis the degree of completion of the criteria.
Often the ~KT-analysis is called in connection with [[Six Sigma]]. The appropriate problem solution process [[DMAIC|Define, Measure, Analyze, Improve, Control]] consists of 5 elements:
* '' D'' efine  (define)
* '' M'' easure (fair)
* '' A'' nalyze (analyze)
* '' I'' mprove (improve)
* '' C'' ontrol (steer)



!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title https://www3750.ssldomain.com/kepner-tregoe/images/CaseStudyApproach400px.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.kepner-tregoe.com/images/expertise/sprcfb.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.webberry.ch/pm_mindmap/Ishikawa.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.kepner-tregoe.pl/UserFiles/Image/kt_schemat.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.osaka-gu.ac.jp/php/nakagawa/TRIZ/eTRIZ/eforum/e2008Forum/eTRIZSymp2008Rep/eFigOkada1-Comparison.GIF>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.cognitive-edge.com/blogs/dave/know%20don%27t%20know%20matrix.png>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
* [[Ishikawa-Diagramm]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!~KT-Templates (Excel)
* http://www.me.udel.edu/meeg101/03/class-materials/design-lab/kt-templates.xls
* http://www.projectmgt.com/Files/Example-KTA.xls
* http://www.hfi-inc.com/referenceforms/HF%20CA.01.02%20(5P).xls
* [[SixSigmaToolsforDefine| http://www2.gsu.edu/~wwwbat/data/SixSigmaToolsforDefine.xls]]

!Weblinks
* [[Official Website to the topic| http://www.kepner-tregoe.com/]]
* [[How to use the Kepner Tregoe decision making model| http://www.decision-making-confidence.com/kepner-tregoe-decision-making.html]]
* [[Managing Human Performance - the Kepner Tregoe way| http://blogs.sun.com/peteh/entry/managing_human_performance_the_kepner]]
* http://www.12manage.com/methods_kepner-tregoe_matrix.html
* http://www.decide-guide.com/kepner-tregoe.html
* http://www.economy-point.org/k/kepner-tregoe.html
* http://www.valuebasedmanagement.net/methods_kepner-tregoe_matrix.html
* http://www.economy-point.org/k/kepner-tregoe.html
<data>{"abstract":"Komplexe Reorganisationen können nur gelingen, wenn auch die emotionalen Aspekte der Veränderung artikuliert und bearbeitet werden. [[Klartext!]] zeigt, wie die //geheimen// Themen einer [[Organisation]] mittels [[Klartext!]] kreativ zur Sprache gebracht werden können..."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.klaus-dieter-reichardt.de/picstext/0181-0122-button_klartext_120x120.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Klartext!","abstract") </script>

!Klartext!
<script> return "<<tiddler [[Klartext!##Overview]]>>" </script>
[[Klartext!]] ist eine intensive, kreative Methode, die es ermöglicht, in der Konzeptionsphase eines [[Veränderungsprozesses|Organizational Change Model]] aus der [[Perspektive|Perspektivwechsel]] einer „idealen Zukunft“ alle relevanten Veränderungsthemen zu identifizieren. [[Klartext!]] arbeitet mit Elementen der indirekten [[Intervention]]. Neben den sachlichen Themen werden mit diesem Tool vor allem die oft im Verborgenen liegenden emotionalen Themen sichtbar. 
Ergebnis: Ein vollständiges Themenportfolio und klare Zielbilder für den [[Change-Prozess|Organizational Change]].

!Anwendungsbereiche
Das Tool kommt am Ende der Phase „Orientierung“ zur Anwendung, wenn die Sachthemen weitgehend erarbeitet sind und das Themenportfolio scheinbar schon vollständig ist. 

[[Klartext!]] wird eingesetzt, wenn es darauf ankommt sicherzustellen, dass auch die psychologischen Themen eines Veränderungsprozesses identifiziert und angemessen bearbeitet werden. Dies ist zum Beispiel bei vielen Reorganisationen notwendig, wenn Leidensdruck, Zukunftsängste und Misstrauen die Veränderungsenergie blockieren.

[[Veränderungsprojekte|Organizational Change Project]] [[scheitern|Archäologie des Scheiterns]] in der Praxis häufig an den „geheimen Tagesordnungspunkten“ einer [[Organisation]]. Was sich auf der Handlungsebene als Trägheit, Schubladen-Denken oder [[Widerstand|Change Resistance]] äußert, ist oft Ausdruck massiver Verunsicherung der beteiligten Menschen. Sie nehmen eben nicht nur die Chancen einer Veränderung wahr, sondern fürchten auch Rückschläge, [[Risiken|Risiko]], Verschlechterungen und Niederlagen. [[Erfahrungen|Erfahrung]] aus früheren [[Veränderungsprozessen|Organizational Change Model]] rechtfertigen und verstärken meist diesen pessimistischen Blickwinkel.

Es sind oft die unsichtbaren Themen, die darüber entscheiden, wie Menschen zu einem Projekt stehen und wie sie sich verhalten, wenn es „enger“ wird: ob sie loyal mitgehen oder skeptisch zurückbleiben. Werden diese Themen offen angesprochen und bearbeitet, so ist es für die Beteiligten nicht nötig, ihre Motive und Bedürfnisse in Sachaussagen zu verstecken und Neuerungen inhaltlich zu blockieren. Ans Licht kommen mit [[Klartext!]] z.B. die Sorgen eines Teamleiters um die Zukunft seiner [[Mitarbeiter]] nach einer Umstrukturierung oder die Sprachlosigkeit von [[Führungskräften|Führung]], die Konflikte mit ihrem Chef nicht ansprechen, weil sie Sanktionen fürchten und nicht mehr daran glauben, dass sich etwas ändern wird. Mit [[Klartext!]] können die im Untergrund schwelenden Sichtweisen früh identifiziert werden, damit sie nicht auf der [[Sachebene]] ihre destruktive Kraft entfalten müssen.

!Objectives
* Erstellen eines vollständigen Themenportfolios und klare Zielbilder für den [[Veränderungsprozess|Organizational Change]].
* Identifizieren psychologischer Themen eines Veränderungsprozesses 

!Timing
2–3 Stunden

!Audience
Group / Individual


!Materials
* Moderationsmaterial
* Vier Pinwände (bespannt mit Packpapier)
* Wenn möglich, Diktaphon oder ein gutes Handy
* Räumliche Voraussetzung
* mehrere Räume od. ein großer Raum, in dem in Abhängigkeit von der Teilnehmerzahl drei bis vier Gruppen parallel ungestört arbeiten können.

!Procedure
Am Beispiel eines „Workshops Bereichsentwicklung“ soll im Folgenden der mögliche Ablauf verdeutlicht werden:

[[Klartext!]] vorangegangen sind ein Zielgespräch mit der Geschäftsführung und Bereichsleitung im fishbowl und diverse Gruppenarbeiten zur Analyse der aktuell wahrgenommen Ausgangs- bzw. Problemlage, in der sich der Bereich befindet. Die relevanten Sachthemen wurden identifiziert und im Plenum gemeinsam zu einer „Themenlandschaft“ verdichtet.

!!1: Entwicklung einer „idealen“ Zukunft (Einzelarbeit)
Die Teilnehmer beantworten in Einzelarbeit die Frage: „Wie wird unser Bereich in sechs Jahren aussehen, wenn alle unsere Idealvorstellungen zu unserer Marktposition, unserem Image im Unternehmen, der Führungs- und Konfliktkultur, etc. in Erfüllung gegangen sind?“
Es ist notwendig, bei der Beschreibung der Aufgabe besonders darauf hinzuweisen, dass ein Idealbild beschrieben wird – ein fiktives, nahezu perfektes Bild der Zukunft.

!!2: Verdichtung der [[Ideen|Ideenmanagement]] zu einer Erfolgsgeschichte (Kleingruppen)
In kleinen Gruppen werden die Ergebnisse aus den Einzelarbeiten erklärt, diskutiert, verdichtet und für die Präsentation vor den anderen Gruppen aufbereitet. Die Instruktion des Beraters könnte lauten: „Begeben Sie sich zur Erarbeitung Ihrer Präsentation auf eine Zeitreise in die Zukunft und beschreiben Sie den dann erreichten idealen Zustand als Ergebnis einer packenden Erfolgsgeschichte: sechs Jahre später, als heute - als würdigender Abschluss eines gelungenen Veränderungsprozesses. Die inhaltliche und formale Gestaltung Ihrer Präsentation ist völlig Ihnen überlassen. Sie können Ihre inhaltlichen Ergebnisse gerne auch bildhaft oder dramatisch präsentieren.“
    Die Chefs der anwesenden Teilnehmer bearbeiten die Frage in einer eigenen Gruppe. So erhalten die [[Mitarbeiter]] auch ein klares Zukunftsbild ihrer Vorgesetzten.
    Es ist wichtig für diesen Schritt ausreichend Zeit einzuräumen (ca. eine Stunde), damit die Teilnehmer sich in eine „Zukunftstrance“ reden können.

!!3: Präsentation der Gruppenarbeiten im Plenum, Befragung der [[Teams|Team]] durch den Berater
Die Gruppen präsentieren nun nacheinander Ihre Erfolgsgeschichten - die Gruppe der Führungskräfte zum Schluss. Bei der ersten Präsentation ist es manchmal erforderlich, die Teilnehmer erneut an das Setting „Blick zurück aus der Zukunft“ zu erinnern.

Nach jeder Präsentation werden die Gruppen in den abklingenden Applaus hinein vom Kollegen der Öffentlichkeitsarbeit befragt, der in der Mitarbeiterzeitung einen Artikel zum Thema „Klartext Bereichsentwicklung – die Erfolgsfaktoren“ veröffentlichen wird. Ausgerüstet mit einem Diktaphon schlüpft der Berater in diese Rolle und interviewt nun die „stolzen“ [[Mitarbeiter]]. Entscheidend ist dabei der Fokus der Befragung. Nicht die inhaltliche Qualität der Zukunftsbilder oder die Struktur des Prozesses stehen im Vordergrund. Gefragt wird vielmehr nach der Art und Weise, wie Führungskräfte und [[Mitarbeiter]] mit Konflikten, Sorgen, Loyalitäten, Rechten umgegangen sind. So werden indirekt, verallgemeinernd die Themen gesetzt, die für konstruktive Arbeitsbeziehungen maßgeblich sein können. Die Fragen des Beraters im Interview leiten sich aus seinen Hypothesen ab: Was alles werden vermutlich in dieser spezifischen Veränderungssituation, in diesem Kontext die Themen auf der emotionalen Ebene sein?

Eine Auswahl: „Sicher gab es trotz des Erfolges auch bei Ihnen Durststrecken! Wie haben Sie es geschafft, dass das Projekt nicht versandet ist? Wie konnten Sie Skeptiker einfangen?
Bei diesem Thema wäre es überraschend, wenn die Menschen nicht auch von Sorgen begleitet wären! Welche Befürchtungen könnten eine Rolle gespielt haben? Wie sind Sie damit umgegangen?
Kaum ein Veränderungsprozess ist so erfolgreich wie Ihrer, ohne dass es auch mal Konflikte zwischen Geschäftsführung und [[Mitarbeitern|Mitarbeiter]] gab! Wie sind sie mit Konflikten umgegangen? Was können Sie anderen, die sich in einer ähnlichen Situation befinden, empfehlen?
Oft gibt es in Veränderungsprozessen Gewinner und Verlierer! Wie haben Sie diese Situationen gemeistert? Welche Erfahrungen haben Sie gemacht?
Manchmal werden durch das Neue die bisherigen Leistungen abgewertet! Hatten die Erfahrungen der langjährigen [[Mitarbeiter]] einen besonderen Stellenwert? Wurden sie genutzt und gewürdigt?“

In diesem Verfahren werden alle Gruppen befragt. Der Berater achtet darauf, dass er jeder Gruppe andere Fragen stellt und auf diese Weise möglichst verschiedene Aspekte erfolgreichen Wandels focussiert. Besonders spannend wird es zum Schluss, wenn die Chefs ihre Erfolgsstory präsentieren und sich den neugierigen Fragen des „Kollegen für Öffentlichkeitsarbeit“ stellen.

Der Berater achtet bei allen Präsentationen darauf, dass lediglich Verständnisfragen zum Inhalt gestellt werden dürfen, dass kein „Zerreden“ stattfindet und es nicht zu ausführlichen Stellungnahmen anderer Gruppen kommt.

!!4: Reflexion der Eindrücke im Plenum
Der Berater moderiert nun eine abschließende Runde im Plenum. Die Teilnehmer fassen ihre Eindrücke in kurzen persönlichen Statements zusammen und bringen auf den Punkt, welche Themen aus ihrer Sicht von besonderer Bedeutung für die Bereichsentwicklung sind. Sie erkennen, dass die zu Beginn des Workshops erarbeiteten Sachthemen nur erfolgreich bearbeitet werden können, wenn auch die emotionalen und kulturellen Themen angemessen berücksichtigt werden.

!!5: „Klartext Bereichsentwicklung“: Verfassen der Erfolgsstory
(Vertreter der Kleingruppen)
Jede Gruppe entsendet einen begabten Journalisten in ein Redaktionsteam. Dieses [[Team]] bekommt den Auftrag bis zum nächsten Morgen mit Hilfe der Aufzeichnungen einen Artikel anzufertigen, der unter der Überschrift „Klartext Bereichsentwicklung - die Erfolgsfaktoren“ die relevanten Themen auf den Punkt bringt. Ergänzt wird der Bericht durch ein kurzes  [[Interview|Interviewing Technique]]  mit den Vorgesetzten. Zu Beginn des zweiten Workshoptages wird der Artikel verlesen und verteilt.

!!6: Weitere Bearbeitung einleiten bzw. klären
Dort, wo brisante Themen auf der Beziehungs- oder Prozessebene benannt werden, sorgt der Berater für eine zeitnahe Bearbeitung im Plenum. Ziel ist es, zu tragfähigen Vereinbarungen bzw. transparenten Klärungen zu kommen, damit auf der [[Inhaltsebene]] effizient weiter gearbeitet werden kann. Themen, die erst im weiteren Prozess wichtig werden, können zur Ausarbeitung in Arbeitsgruppen delegiert werden. Meist ist es sinnvoll, das Themenportfolio nochmals auf Vollständigkeit zu überprüfen und gegebenenfalls um die „~Klartext-Themen“ zu ergänzen.

!!Voraussetzungen/Kenntnisse
Die Durchführung von [[Klartext!]] erfordert eine gewisse Routine in der Anleitung von Gruppenprozessen. Erfahrungen mit der Hypothesenbildung und den sich daraus ableitenden indirekten Interventionen sind ebenso erforderlich, wie Kenntnisse in der lösungsorientierten Interviewtechnik.

!Kommentar/Erfahrungen
[[Klartext!]] lebt davon, den Nerv der Gruppe indirekt anzusprechen. Das auszudrücken, was sowieso jeder denkt, bzw. weiß, aber bisher keiner thematisiert hat. Am Besten mit einem zwinkernden Auge und der Einladung zum Humor - immer mit dem Blick zum Chef. Denn die indirekte Platzierung der Themen ist ein Grenzgang und setzt voraus, dass der Auftraggeber im Boot ist. Missbilligt er oder sie den Blick ins Verborgene oder fehlt die Bereitschaft an diesen Themen tatsächlich zu arbeiten, versandet der Versuch – zumindest vordergründig im Workshop. Deshalb sollte der Chef bereits bei der Auftragsklärung im Vorfeld des Workshops für diese Vorgehensweise gewonnen werden.


!Debriefing

!Quelle
Hubert Hölzl, in: [[Arnim Rohm: Change-Tools. Erfahrene Prozessberater präsentieren wirksame Workshop-Interventionen. managerSeminare GmbH, 2006.| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FChange-Tools-Erfahrene-Prozessberater-pr%25C3%25A4sentieren-Workshop-Interventionen%2Fdp%2F3936075395%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214936596%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

[[Klartext!]] ist eine Adaption der Methode „Rückblick aus der Zukunft“, die von Roswitha Königswieser und Alexander Exner entwickelt wurde.
* [[Roswitha Königswieser / Alexander Exner (1998). Systemische Intervention: Architekturen und Designs für Berater und Veränderungsmanager. Stuttgart: Klett-Cotta.| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FSystemische-Intervention-Architekturen-Designs-Ver%25C3%25A4nderungsmanager%2Fdp%2F3608919384%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214935397%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]
* [[Arnim Rohm: Change-Tools. Erfahrene Prozessberater präsentieren wirksame Workshop-Interventionen. managerSeminare GmbH, 2006.| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FChange-Tools-Erfahrene-Prozessberater-pr%25C3%25A4sentieren-Workshop-Interventionen%2Fdp%2F3936075395%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214936596%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]].

!See also

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

<<tiddler ShowTiddlerReferences>>
!Weblinks
* 
<data>{"abstract":"[[Kleingruppenszenario]], ein einfaches Raster, mit dem in einer [[Moderation]] [[Ideen gesammelt|Ideenmanagement]], sortiert und bewertet werden können.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 20% auto title http://www.uni-muenster.de/Medienpaedagogik/Moderation/Visualisieren.JPG>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Kleingruppenszenario","abstract") </script>

!Kleingruppenszenario
<script> return "<<tiddler [[Kleingruppenszenario##Overview]]>>" </script> 

!Objectives
* Identify change resistance
* Identify actual and target states
* Develop problem solutions

!Timing
45min

!Audience
Group: bis zu 8 Personen. 

!Materials
* Moderationskarten

!Procedure
Diese Technik eignet sich für kleine Gruppe von bis zu 8 Personen. 
# Zu jedem Feld werden nacheinander Karten geschrieben (15 min.), die ohne Diskussion an die Pinwand geheftet werden. 
# Ist der Ist-Zustand mit den Karten beschrieben, so geht mensch schnell weiter zum Soll-Zustand. Danach werden die zu erwarteten [[Widerstände|Change Resistance]] beschrieben und schließlich Lösungsansätze entwickelt. 

!Debriefing
Die Lösungsansätze beziehen sich auf die bestehenden [[Widerstände]], die ja dafür verantworlich sind, daß der Soll-Zustand nicht existiert.

{{center{
| Ist-Zustand| Soll-Zustand|
| [[Widerstände]]| [[Lösungsansätze|Problemlösung]] |
}}}

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://lehrerfortbildung-bw.de/kompetenzen/projektkompetenz/methoden_a_z/metaplan/visualisuerung1_800.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.fh-friedberg.de/users/goetz/moderat/Moderat8.gif>>
---- }}} 
===


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Moderation]<<tiddlerList tags:"moderation,-newTemplate" header:"Übungen Moderation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Kleingruppenzenario+%28jm%29]]
<data>{"abstract":"[[Koffertheater]], als Auflockerung, aber auch als Training der eigenen [[Kreativität|Kreativitätstechniken]] oder sogar zur [[Entwicklung neuer Ideen|Ideenmanagement]]: Diese Übung ist vielseitig einsetzbar."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://gat.mechernich.de/edits/fachgruppen/kunst/koffer_fuer_die_letzte_reise_1.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Koffertheater","abstract") </script>

!Koffertheater
<script> return "<<tiddler [[Koffertheater##Overview]]>>" </script> 
Eine Übung für den Einsatz im Training, keine direkte [[Kreativitätstechnik|Kreativitätstechniken]], aber ohne Probleme in eine solche zu verwandeln. 
Den Umgang mit  [[Veränderungen|Organizational Change]] ins Training einbauen, kreatives Denken anregen und einen Bezug zu den Themen des Trainings rasch herstellen - das sind die Zielsetzungen des [[Koffertheaters|Koffertheaters]]. 
Dazu benötigt man einen Koffer, gefüllt mit einer wilden Mischung von originellen bis skurrilen Alltagsgegenständen aus Küche, Kinderzimmer und Hobbykeller.

!Objectives
* Lockerung
* Energize
* Kreatives Denken

!Timing
60 min

!Audience
Group

!Materials
* Koffer mit verschiedenen Gegenständen / Requisiten

!Procedure
Die Teilnehmer, aufgeteilt in Kleingruppen zu drei Teilnehmern, greifen aus dem Koffer wahllos einen Gegenstand heraus und leiten daraus eine (abgeschlossene) Geschichte ab, wobei der Gegenstand vorkommen muss, aber nicht in seiner ursprünglichen Funktion. (Beispiel: Eine Schere darf keine Schere sein und auch nicht schneiden, kann aber als Faltbrille Verwendung finden.)

Die Übung kann einfach zur Auflockerung dienen, aber auch rasch den Bezug zum Thema herstellen. Dann soll eine Geschichte entwickelt werden, bei der z.B. Kundenorientierung oder Qualitätsmanagement eine Rolle spielt. 
Im weiteren Verlauf können die Gegenstände auch als Metaphern dienen, die immer wieder aufgegriffen und weiterentwickelt werden.

!Debriefing

!Quelle
Rachow, A.: Kreativität anregen: Das Koffertheater, Wirtschaft und Weiterbildung 6 /1998, S.28-29.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Das+Koffertheater+%28jt%29]]
<data>{"abstract":"Sie sind auf der Suche nach einem neuen Namen für eine Dienstleistung oder ein Produkt. Oder nach einem neuen Slogan. Die [[Kombitechnik]] hilft, auf neue Gedanken zu kommen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.stoffwerke.ch/gallery/Funkeln.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Kombitechnik","abstract") </script>

!Kombitechnik
<script> return "<<tiddler [[Kombitechnik##Overview]]>>" </script> 

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Auch das kommt immer mal wieder vor: Sie sind auf der Suche nach einem neuen Namen für eine Dienstleistung oder ein Produkt. Oder nach einem neuen Slogan. 
Dazu begeben Sie sich zunächst auf die Suche nach geeigneten Synonymen für Ihr Produkt bzw. das Angebot, dass Sie benennen oder bewerben möchten. Anschließend suchen Sie Synonyme für das Werturteil über das Besondere an ihrem Angebot (billig, außergewöhnlich, extravagant, schnell, [[Service]] etc.)

Sodann wird fleißíg kombiniert. Wenn Sie für beides jeweils fünf Begriffe gefunden haben, ergibt dies schon 50 mögliche Kombinationen (wenn einmal der eine, einmal der andere Begriff vorne steht.)

!Variation
Eine interessante Variante ist, wenn Sie die Methode zum Erfinden neuer Dienstleistungen bzw. Produkte anwenden. 
Dazu können Sie beliebige Begriffe miteinander kombinieren (~Auto-Löffel, ~Löffel-Schuh, ~Schuh-Auto...). Wenn Sie eine Reihe von Namen zusammen haben, überlegen Sie, welche Produkte dahinter stecken könnten. Fällt Ihnen zum Namen "~Auto-Schuh" etwas ein? Vielleicht ein Schuhbelag, der ein Abrutschen vom Gaspedal verhindert?

!Debriefing

!Quelle
Günter Beyer: Die Kombitechnik, managerSeminare 6/2003, S. 36

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Kombitechnik+%28jt%29.html]]
<data>{"abstract":"[[Komclips]], gewöhnungsbedürftig, aber sehr //sprechend//: Kleine Aufkleber, die symbolisieren, wie man den anderen in einer Situation erlebt. Eine Art stellvertretendes [[Feedback]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.baselland.ch/fileadmin/baselland/files/docs/jpd/ds/sis/car06.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Komclips","abstract") </script>

!Komclips
<script> return "<<tiddler [[Komclips##Overview]]>>" </script> 
Jemandem offen zu sagen, was man von seinem Kommunikationsverhalten hält, ist nicht leicht. Vielfach versuchen wir es über [[Gestik und Mimik|Body language]], probieren es mit Andeutungen oder geben es irgendwann ganz auf.

!Objectives
* ~Feedback-Übung

!Timing

!Audience
Group

!Materials
* 

!Procedure
Eine interessante Alternative stellt der Versuch dar, sich gegenseitig über einfache Bilder mitzuteilen, wie man den anderen in einer Situation erlebt (als Ankläger, Schweiger, Klagender, Bedroher, Vermittler, Ideengeber...). 
Vorausgesetzt, alle Beteiligten - das können auch nur zwei Kollegen oder Partner sein - sind ernsthaft an der Verbesserung ihres Kontaktes interessiert, vereinbart man einen Zeitraum von einer Woche oder einem Monat, in dem man sich durch aufklebbare Symbole einfache, aber sehr wirkungsvolle Rückmeldungen über das Verhalten gibt. 

!Debriefing
Die Anwendung dieser Aufkleber kann auch nur für eine Sitzung oder für den Verlauf eines Seminares vereinbart werden.


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Komclips%A9+%28jt%29&db=3]]
<data>{"abstract":"[[Konfliktanalyse]], in jedem [[Konflikt]] wird es soviele Meinungen über die Ursachen wie Beteiligte geben, aber kaum einer wird sich die Mühe machen, diese zu verstehen. Dieses Vorgehen ist eine Möglichkeit hierzu…"}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.kurt-schumacher-akademie.de/_data/konflikt.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Konfliktanalyse","abstract") </script>

!Konfliktanalyse
<script> return "<<tiddler [[Konfliktanalyse##Overview]]>>" </script> 

!Objectives
* Konfliktbewältigung

!Timing
60 min

!Audience
Group

!Materials
* Flipchart
* Zettel, Stifte

!Procedure
Man bittet alle Beteiligten bei einem konkreten [[Konfliktfall|Konflikt]], einen Zettel zu nehmen und eine Antwort aufzuschreiben. 
Vorgabe: //"Der [[Konflikt]] besteht darin, dass..."// 

Nun schreibt jeder möglichst in einem Satz den Kern des Konfliktes auf. 
Anschließend bittet man alle Anwesenden der Reihe nach, ihre Antworten vorzulesen. 
Der Moderator schreibt diese Meinungen auf die Tafel. 

!Debriefing
Meist gibt es eine Vielzahl verschiedener Meinungen. Auf welcher sollte man nun die Lösung gründen? Hier beginnen meist alle einzusehen, dass man mehr [[Informationen|Information]] braucht und vor der Lösung erst den [[Konflikt]] analysieren muss.

!Quelle
Schwarz, G. Konflikt Management, Gabler 3./1997, S.36.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Konfliktanalyse+%28jt%29]]
<data>{"abstract":"Die [[Konfliktgeschichte]] als Plakat, gezeichnet von den Beteiligten, kann interessante Aufschlüsse und Ansätze für ein weiteres Vorgehen bieten."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://migrationsblog.swr.de/wp-content/uploads/stacheldraht_300.jpg>>
/%http://www.d-pixx.de/wettbewerb/04_2006/3_Wallenwein_Stacheldraht.jpg]]
http://www.inlinefeat.ch/Pictures/Fotographien/20070621.stacheldraht.JPG]]
http://www.univie.ac.at/ruralhistory/stacheldraht.jpg]]%/
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Konfliktgeschichte","abstract") </script>

!Konfliktgeschichte
<script> return "<<tiddler [[Konfliktgeschichte##Overview]]>>" </script> 

!Objectives
* Konfliktbewältigung

!Timing
60 min

!Audience
Group

!Materials
* 

!Procedure
Lassen Sie bei [[Konflikten|Konflikt]] in kleinen Gruppen zur Analyse die Teilnehmer die wichtigsten Szenen der [[Konfliktgeschichte]] auf ein Plakat zeichnen. 
Wenn dies am Abend eines Workshops geschieht, kann man am nächsten Morgen als Einstieg zunächst die Gruppe bitten, ihre Plakate zu präsentieren. 

!Debriefing
Interessante Aspekte können zu Tage treten, wenn Sie vor der Erläuterung der Zeichungen andere zu einer Interpretation auffordern, ehe die Urheber ihre Erklärung geben.

!Quelle
Schwarz, G. Konflikt Management, Gabler 3./1997, S.71.

!See also
* [[Erwartungsplakate]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Konfliktgeschichte+%28jt%29]]
<data>{"abstract":"Ein taktisches Spiel für vier Gruppen, sowohl zur Auflockerung als auch zur Förderung des [[Teamgeistes|Teamentwicklung / Teambuilding]] geeignet. Achtung: Es kann recht wild werden!"}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.abendblatt.de/multimedia/archive/00017/140145v1_jpg_17723c.jpg>> /%
http://www.die-geobine.de/gif/sumo.jpg>> %/
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Konkurrenzkampf der Supermärkte","abstract") </script>

!Konkurrenzkampf der Supermärkte
Ein Spiel, bei dem es auf die richtige Taktik der einzelnen [[Teams|Team]] ankommt - und bei auch langsamere Gruppen durch gezieltes Vorgehen die schnellen Kontrahenten in Schach halten können.

!Objectives
* Aufwärmen
* Teambuilding

!Timing
30 min

!Audience
Group: geignet für Gruppen von 12 bis 30 Personen.

!Materials
* 1 Reifen
* 28 Bälle

!Procedure
In der Mitte liegt ein Reifen mit vier mal sieben Bällen, das Warenlager. 
Rundherum liegen in gleichem Abstand weitere vier Reifen, jede Gruppe vertritt einen Supermarkt. 
Jede Farbe eines Balles stellt eine Obstsorte dar, und jeder Supermarkt ist auf eine Obstsorte spezialisiert. 
Nun geht es darum, den eigenen Supermarkt mit der eigenen Sorte Obst zu füllen. 
Wer zuerst alle sieben Früchte gesammelt hat, ist der Sieger.

Die Regeln lauten:
* Es darf immer nur ein Einkäufer je Gruppe unterwegs sein.
* Jeder Einkäufer darf nur eine Frucht auf einmal tragen.
* Man darf eigene, aber auch fremde Obstsorten einkaufen.
* Früchte können sowohl im Warenlager als auch in anderen Supermärkten "erworben" werden.
* Andere Einkäufer dürfen nicht behindert werden. 

Man kann sich vorstellen, dass es dabei recht hektisch zugehen kann, es aber auch viel Spaß bereitet.
Empfehlung: Nach der ersten Runde eine Auswertung vornehmen und dann eine weitere Runde spielen.

!Debriefing

!Quelle
Andreas Schwarzenhölzer: Konkurrenzkampf der Supermärkte, aus: [[Axel Rachow (Hg): Spielbar II, managerSeminare 2002, S. 123-124| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FSpielbar-pr%25C3%25A4sentieren-Top-Spiele-Seminarpraxis-Seminarpraxis%2Fdp%2F3931488632%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1211920003%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Konkurrenzkampf+der+Superm%E4rkte+%28jt%29]]
<data>{"abstract":"[[Kontextklärung]], was tun, wenn man trotz aller guten Vorsätze den Auftrag doch nicht sauber geklärt hat und nun plötzlich vor seinen Seminarteilnehmern steht? Mit Hilfe dieser Methode kann zumindest ein Teil nachgeholt werden.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.christiane-thiesen.de/logbuch/images/strandhauser_reihe.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Kontextklärung","abstract") </script>

!Kontextklärung
<script> return "<<tiddler [[Kontextklärung##Overview]]>>" </script> 
Die Bedeutung einer sauberen Auftragsklärung ist den (meisten) Trainern bewusst. Aber nicht immer ist es möglich, eine solche durchzuführen, und nicht immer kann es sich ein Trainer erlauben, deshalb einen Auftrag abzulehnen. Dann bleibt ihm nur die Möglichkeit, diese im Seminar nachzuholen, und zwar gemeinsam mit den Teilnehmern.

!Objectives
* [[Widerstände]] identifizieren

!Timing
60 min

!Audience
Group / Individual


!Materials
* Moderationskarten

!Procedure
Dazu legt der Trainer eine Karte mit der Bezeichnung des Seminars in die Mitte des Raumes. Rund um die Karte werden weitere mit den verschiedenen Variablen des beruflichen Umfeldes gelegt, als da wären: Kollegen, Vorgesetzter, Firma, Arbeitsplatz, eigene Rolle, Privates etc. 
Ein Teilnehmer stellt sich zu der jeweiligen Position und spürt nach, von welchen er nach dem Seminar eher eine Unterstützung und von welcher er eher Hindernisse zu erwarten hat. 

!Debriefing
Danach werden für die wichtigsten Positionen die Faktoren konkret herausgearbeitet und auf Karten festgehalten. 
Die Hindernisse werden aufgeteilt nach veränderbaren und nicht veränderbaren Punkten. Anschließend werden von der Gruppe Lösungsmöglichkeiten zu den veränderbaren Faktoren erarbeitet, aber auch Verhaltensweisen zu den nicht veränderbaren. Wichtig ist, nicht alle Themen zu behandeln, sondern die wesentlichen Faktoren zu erfassen.

Diese Übung lässt sich auch bezüglich eines konkreten Vorhabens eines Teilnehmers einsetzen, dann steht auf der Ausgangskarte eben jenes persönliche Vorhaben.

!Quelle
Ralf Besser: Machen Sie den Weg frei! managerSeminare 5/2001, S.78

!See also
* [[Kleingruppenszenario]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Kontextkl%E4rung+%28jt%29]]
<data>{"abstract":"[[Kreative Ideen|Kreativitätstechniken]] finden, ist eine Sache, daraus ein umsetzbares Konzept zu erstellen eine andere. Hier kommt eine kleine Checkliste, die in Zweierteams bearbeitet wird und die weiteren Schritte hervorbringt."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.stintfangwomble.de/images/steckbrief.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Konzept-Steckbrief","abstract") </script>

!~Konzept-Steckbrief
<script> return "<<tiddler [[Konzept-Steckbrief##Overview]]>>" </script> 
Sie haben mit einer der hier beschriebenen [[Kreativitätstechnik|Kreativitätstechniken]] im [[Team]] eine Menge [[Ideen|Ideenmanagement]] zusammengetragen. Doch was helfen die schönsten Ideen, wenn anschließend keine weiteren Schritte folgen. Es geht also darum, aus einer [[innovativen Idee|Innovation]] ein Konzept zu entwickeln. 

!Objectives


!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Hierzu kann man die Teilnehmer bitten, sich in ~Zweier-Gruppen die ausgewählten [[Ideen|Ideenmanagement]] mit Hilfe des [[Konzept-Steckbriefes|Konzept-Steckbrief]] weiter zu bearbeiten. 

Mögliche Rubriken sind:
* Ideenbeschreibung (konkreter fassen, visualisieren)
* Nutzen der Idee (Vorteile)
* Magie der Idee (das Besondere)
* Wettbewerbsvorteile (Vorteile gegenüber der derzeitigen Situation/dem Wettbewerber)
* Betriebswirtschaftlicher Nutzen (Umsatz, Kosteneinsparung etc.)
* Qualitativer Nutzen (was wird besser?)
* Ideenpromotoren (wer treibt die Idee voran?)
* Timing (zeitlicher Rahmen

Anschließend stellen die Zweierteams ihre Steckbriefe vor, danach erfolgt die Festlegung des weiteren Vorgehens.

!Debriefing

!Quelle
Schmidt / Kaan / Schlicksupp / Dirlewanger / Beyer: So springt der Funke über, managerSeminare 4/2001 S. 34.


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Konzept-Steckbrief+%28jt%29]]
<data>{"abstract":"[[Kosmetikfirma]]: Diagnose von Kooperationsverhalten bei [[dissonanten|Dissoziationstechnik]] [[Wahrnehmungsinhalten|Wahrnehmung]]; Schulung klaren Ausdrucks bei Beschreibungen. Für Trainings und Schulungen, in denen [[Teamarbeit]] thematisiert werden soll; eher zu Beginn einer Veranstaltung"}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.eisenhand.at/presse/downloads/Eisenhand_Parfumerie_Kosmetikstudio_1000x667.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Kosmetikfirma","abstract") </script>

!Kosmetikfirma
<script> return "<<tiddler [[Kosmetikfirma##Overview]]>>" </script> 

!Objectives
* Diagnose von Kooperationsverhalten bei [[dissonanten|Dissoziationstechnik]] [[Wahrnehmungsinhalten|Wahrnehmung]]; 
* Schulung klaren Ausdrucks bei Beschreibungen. 
* Für Trainings und Schulungen, in denen [[Teamarbeit]] thematisiert werden soll;
* eher zu Beginn einer Veranstaltung

!Timing
30 min

!Audience
Group

!Materials
* Pro Teilnehmer 1 Exemplar des [[Kippbildes Alte Frau/junge Frau|http://www.rochus-schule-steinheim.de/images/Optische%20Taeuschungen/ot_alte_junge_frau.jpg]] evtl. Tonband als Kontrolle

!Procedure
# Instruktion: <br> „Stellen Sie sich vor, Sie sind das Leitungsteam einer internationalen Kosmetikfirma
(Zweigstelle München). Sie brauchen dringend eine Filialleiterin. Die Zentrale Ihrer Gesellschaft in New York übersendet Ihnen das Funkbild einer in Frage kommenden Persönlichkeit. Aufgrund einer Schlamperei stehen Ihnen die persönlichen Daten (Lebenslauf etc.) erst einen Tag später zur Verfügung. - Sie müssen sich aber heute entscheiden: Entscheiden und begründen Sie gemeinsam, ob Sie die Dame einstellen und warum oder warum nicht.“
# Jeder Teilnehmer bekommt 1 Exemplar der Alten Frau/jungen Frau' vor sich auf den Tisch gelegt.
# Instruktion: <br>"Das Bild, das vor Ihnen liegt, darf nicht berührt werden; es darf nur verbal
miteinander kommuniziert werden, ohne mit den Händen zu zeigen oder zu deuten."
# Entscheidungsprozeß mit oder ohne Zeitlimitierung.

!Debriefing
* Wie wird mit dissonanter Wahrnehmungsinformation umgegangen?
* Wie lange dauert es, bis dieses Problem deutlich wird?
* Wie wird eine Einigung erzielt?
* Wie werden diejenigen behandelt, die etwas anderes wahrnehmen?
* Folgerungen für Teamarbeit?


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.on-the-move.ch/bilder/Kippbild01_Alte%20Frau.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://members.ktvhopfgarten.at/alfons/hexe2.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>> %/
---- }}} 
===


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Diverse Teamspiele - PDF| http://www.region-online.de/bildung/semi/projekte/spiele.pdf]]
<data>{"abstract":"Richtig gute und umsetzbare Ideen entwickeln – mit einem neuen Kartenspiel soll dies gelingen. Training aktuell hat getestet, ob der versprochene 'Ideenkick' wirklich für ungeahnte Geistesblitze sorgt – und wie Trainer davon profitieren können."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.piksieben.de/Neue_Dateien/spielkarten-botschaft.png>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Kreativ durch Karten","abstract") </script>

!Kreativ durch Karten
<script> return "<<tiddler [[Kreativ durch Karten##Overview]]>>" </script> 

Der Inhalt des kleinen Kartons ist schnell gesichtet: Eine Broschüre und 36 Karten mit bunten Zeichnungen. Dazu das vollmundige Versprechen des schmalen Pakets: Die Kartenspieler sollen Ideen finden, die nicht nur großartig, sondern auch umsetzbar sind. Gemeint sind damit in erster Linie Geschäftsideen. So ist das Set, das Einzelpersonen ebenso nutzen können wie Gruppen, vor allem für die Entwicklung von Strategien, Geschäftsmodellen oder Produkten gedacht. Doch auch in Innovationsworkshops oder bei der Begleitung von Changeprozessen können die Karten dem Entwickler Reinhard Ematinger zufolge eingesetzt werden.

Wie auch immer der Kontext aussieht: Entscheidend für den erfolgreichen Einsatz des Kartensets ist die Leitfrage, die durch das Spiel führt. Sie muss das Anliegen der Spieler möglichst konkret formulieren. Nur dann, das macht die Broschüre schnell klar, können nützliche Antworten auf den Tisch kommen. Also nicht: Wie verkaufen wir mehr? Sondern: Wie können wir unseren Umsatz um 30 Prozent steigern? Auf meine Nachfrage gibt Spiel&shy;entwickler Ematinger weitere Beispiele: //'Ein freier Trainer könnte sich fragen: Was unterscheidet mich von meinen Mitbewerbern?, ein Change&shy;begleiter könnte in Workshops die Frage aufwerfen: Was soll nach der Veränderung besser sein als vorher?'//

Die Testgruppe des ~TA-Teams wählt die lebensnahe Herausforderung: 'Wie können wir die Zahl unserer Abonnenten verdreifachen?' Dazu entscheiden wir uns für die einfachste Variante des Spiels: Phönix aus der unsortierten Asche. Die sechs Mitspieler ziehen dabei reihum eine Karte vom gut gemischten Stapel und sammeln jeweils gemeinsam Ideen.
Erwartungsvoll legen wir los. Doch die Einstiegskarte wirkt wie ein Rausschmeißer: //'Welche negativen Kommentare erwartest du?'// Puh. Naja, wahrscheinlich sind Printmedien ohnehin auf dem absteigenden Ast, und die Mühe lohnt sich sowieso nicht. Doch schnell wird es besser: Die Karte //'Wo ist das Vergnügen?'// führt zu unerwarteten inhaltlichen Impulsen von den Vertriebskollegen (Witze! Cartoons! Eine Partnerschaftsbörse!). Die ~Joker-Karte //'Du badest in Geld'// bringt die Gesichter zum Leuchten, die Ideen zum Sprudeln.

Im Test:
* Produkt: Expresspaket Ideenkick
* Autoren: Reinhard Ematinger und Sandra Schulze-Peters
* Anbieter: Heragon Verlag GmbH, Freiburg
* Preis: 14,80 Euro
* Weitere Informationen: www.heragon.de


!Objectives
* Find innovtive and creative ideas

!Timing
* 1h

!Materials
* Kartenset Expresspaket Ideenkick

!Audience
Group

!Procedure
Play the game

!Debriefing

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[Expresspaket Ideenkick: Der einfache Weg zu unkonventionellen Lösungen — (Amazon)| http://www.amazon.de/gp/product/3941574825/ref=as_li_ss_tl?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3941574825]]
* [[Review ManagerSeminare| http://www.managerseminare.de/ta_Artikel/Praxistest-Ideenkick-Kreativ-durch-Karten,208290?mecL=UmFuZG9tSVYR35vNtSnvbJq27Vpb50M8]]
<data>{"abstract":"[[Kreative Bildimpulse]]: Sie sitzen an einer kniffligen Fragestellung und kommen nicht so recht weiter? Bilder und Fotos können Sie auf neue Gedanken bringen… "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.wunderwelten.net/uploads/tx_commerce/rte/RTEmagicC_a5b5e735d4.jpg.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Kreative Bildimpulse","abstract") </script>

!Kreative Bildimpulse
<script> return "<<tiddler [[Kreative Bildimpulse##Overview]]>>" </script> 
Sie sitzen an einer kniffligen Fragestellung und kommen nicht so recht weiter? Da könnte Ihnen eine Technik helfen, die auf der Bildung von [[Assoziationen|Assoziationstechniken]] beruht. 

!Objectives
* Kreative Problemlösung

!Timing
10min

!Audience
Group / Individual


!Materials
* Bilder oder Postkarten, Gegenstände im Raum u.a. Vorlagen 

!Procedure
# Zunächst formulieren Sie Ihr [[Problem]] bzw. die Ausgangsfrage klar. 
# Anschließend ziehen Sie aus einem Stapel Bilder ein x-beliebiges Bild hervor und vertrauen darauf, dass es Ihnen den entscheidenden Anstoß bieten wird.

!Debriefing
Die Fragen, die Sie sich anschließend beantworten, lauten:
* //Wie ist Ihr erster Eindruck?//
* //Was ist Ihr erster Gedanke? Ihre erste Assoziation?//
* //Was zieht Ihren Blick an?//
* //Wohin führen Sie die Farben des Bildes?//
* //Was strahlt das Bild für Sie aus?//

All diese Eindrücke notieren Sie zunächst. Anschließend erst beziehen Sie die Eindrücke auf die Fragestellung. Hieraus ergeben sich erste Hinweise auf eine Lösung. Auch diese Hinweise und Erkenntnisse werden notiert. Ausprobieren!

Anstelle der Bilder können Sie Postkarten, Gegenstände im Raum u.a. Vorlagen nehmen. Wichtig ist nur, dass Sie diese auf sich wirken lassen und auftretende Assoziationen zulassen.

!Quelle
~Lara-Gabriele Winkler: Kreative Bildimpulse. managerSeminare 6/2003, S. 38-39.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Kreative+Bildimpulse+%28jt%29.html]]
<data>{"abstract":"[[Kreisende Bälle]]: ob [[Zusammenarbeit|Collaboration]] funktioniert, zeigt sich schnell, wenn es im Alltag knifflig wird. Im Seminar lässt sich eine solche Belastungsprobe mit vielen Bällen und einer anspruchvollen Aufgabe simulieren: Nur in enger Abstimmung können die Teilnehmer die Herausforderung meistern. Eine ~Team-Übung, die Aktivierung und ~Aha-Erlebnisse verspricht."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://us.123rf.com/400wm/400/400/elenathewise/elenathewise0902/elenathewise090200192/4377737-business-mann-in-anzug-jonglieren-b-lle-planeten-erde.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Kreisende Bälle","abstract") </script>

!Kreisende Bälle
<script> return "<<tiddler [[Kreisende Bälle##Overview]]>>" </script> 

Auf spielerische Weise vermitteln, wie [[Zusammenarbeit|Collaboration]] funktioniert – das ist das Ziel der Übung [[Kreisende Bälle]]. Indem die Teilnehmer eines Team- oder Projektmanagementtrainings gemeinsam eine knifflige Aufgabe bewältigen, erfahren sie, wie wichtig [[Kommunikation]] und [[Teamorientierung|Teamentwicklung / Teambuilding]] für den Erfolg sind. 

In der anschließenden [[Reflexion|Team-Faktoren-Reflexion]] bzw. [[Retrospektive|Agile Retrospective]] kann der Trainer mit den Teammitgliedern zudem vertiefen, welche typischen Verhaltensweisen es in Gruppen gibt und wer welche [[Rolle]] im Spiel übernommen hat.

Die Zeit, die die Gruppe zum Lösen der Aufgabe braucht, kann stark variieren. Grundsätzlich sollte der Trainer für Instruktion, Durchführung und Auswertung gut 20 Minuten einplanen. Je größer die Gruppe ist, desto länger wird die Aufgabe in der Regel dauern.


!Objectives
* Auf spielerische Weise vermitteln, wie [[Zusammenarbeit|Collaboration]] funktioniert

!Timing
mind. 20min

!Materials
* Bälle

!Audience
Group

!Procedure
Benötigt werden für die Übung ein geräumiger Seminarraum, in dem sich die gesamte Gruppe im Kreis aufstellen kann, und ausreichend Bälle: Jeder Teilnehmer sowie der Trainer brauchen einen kleinen Ball, etwa einen Tennis- oder Jonglierball. Einer der Bälle muss sich farblich unterscheiden oder vorab markiert werden, zum Beispiel mit einem Klebepunkt.

!Debriefing
In der anschließenden [[Reflexion|Team-Faktoren-Reflexion]] bzw. [[Retrospektive|Agile Retrospective]] kann der Trainer mit den Teammitgliedern zudem vertiefen, welche typischen Verhaltensweisen es in Gruppen gibt und wer welche [[Rolle]] im Spiel übernommen hat.

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[ManagerSeminare| http://www.managerseminare.de/ta_Artikel/Serie-Seminarbausteine-Kreisende-Baelle-fuer-Teamtrainings,208286?mecL=UmFuZG9tSVYR35vNtSnvbJq27Vpb50M8]]
<data>{"abstract":"[[Kreuzworträtsel ohne Schreiber]], diese Methode kann man leicht so zwischendurch einsetzen: Kreuzworträtsel lösen, ohne einen Schreiber zu benutzen.  "}</data>
/%<<wikify [>img(%0,%1)[%2|%3]] 60% auto title http://hoer-spiele.bildung-rp.de/00-raetsel/kreuzwortraetsel.gif>>%/
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.schulbilder.org/vogel-mit-kreuzwortr-tsel-t5491.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Kreuzworträtsel ohne Schreiber","abstract") </script>

!Kreuzworträtsel ohne Schreiber
<script> return "<<tiddler [[Kreuzworträtsel ohne Schreiber##Overview]]>>" </script> 

!Objectives
* Gedächtnistraining 

!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Eine unterhaltsame Möglichkeit zum Gedächtnistraining bieten Kreuzworträtsel: Versuchen Sie einmal, Kreuzworträtsel zu lösen, ohne einen Schreiber zu benutzen. 
Der Schwierigkeitsgrad lässt sich von Blättern wie Glückspost, Das Neue Blatt, über Bild bis hin zur NZZ und Weltwoche steigern…

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Gedaechnistraining]<<tiddlerList tags:"mnemonic,-newTemplate" header:"Übungen Gedaechnistraining">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Kreuzwortr%E4tsel+ohne+Schreiber+%28ns%29]]
/%
|Name|LEGO Scrum Exercise|
|URL|http://www.youtube.com/v/H2NXlDoutcY|
|Description|Agile Processes have matured in the software industry. We follow an innovative approach to teach [[Scrum]]: students develop a lonesome island for tourism using Lego. In doing so, they get a practical introduction into the different roles and practices of this agile software development process.|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/H2NXlDoutcY"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/H2NXlDoutcY" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
<data>{"abstract":"[[La Paloma um 11 Uhr]], testen Sie den //~MERKwürdigkeits-Quotient// Ihres Unternehmens. Gehen Sie morgens um 11.00 Uhr durch eine gutbesetzte Abteilung und stimmen Sie aus heiterem Himmel das Lied //la Paloma// an."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://phil.info/media/uploads/images/2006/blog/lapaloma.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("La Paloma um 11 Uhr","abstract") </script>

!La Paloma um 11 Uhr
<script> return "<<tiddler [[La Paloma um 11 Uhr##Overview]]>>" </script> 

!Objectives

!Timing

!Audience
Individual

!Materials
* 

!Procedure
Bei Reaktion…
# [[Mitarbeiter]] schauen verlegen weg, tun so,als wären sie gar nicht da oder tippen sich an die Stirn (... gibt´s 0 Punkte)
# [[Mitarbeiter]] stehen auf, stimmen in Ihren Gesang mit ein und alle haben 2 1/2 min einen Heidenspaß (gibt´s + 100 Punkte).

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://www.visionintoaction.de/THINKTANK/THINK-TANK-34.htm
<data>{"abstract":"[[Landkarten-Übung]], Sie haben eine größere Gruppe Teilnehmer und möchten, dass diese sich am Anfang rasch miteinander bekannt machen. Ein geografischer Ansatz…  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://bp1.blogger.com/_oYCy5HXaKpo/Rk6-0UWg7GI/AAAAAAAAAhQ/d9jH-GYvdsw/s400/Landkarte~Bundesliga.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Landkarten-Übung","abstract") </script>

!~Landkarten-Übung
<<tiddler [[Landkarten-Übung##Overview]]>>

!Objectives
* Kennenlernen

!Timing

!Audience
Group

!Materials
* 

!Procedure
# Sie bitten die Teilnehmer, sich den Seminarraum als Landkarte vorzustellen. 
# Auf dieser Landkarte sollen sich alle positionieren - je nachdem, woher sie kommen.
# Anschließend stellen sie sich ein zweites Mal auf, diesmal nach ihrem Geburtsort. Dabei können sich diejenigen, die nebeneinander stehen, austauschen. <br>Oder Sie lassen die Teilnehmer kurz etwas zu ihrem Geburtsort erzählen, wobei man das noch ergänzen kann durch Fragen nach dem beruflichen Werdegang (//"Wie sind Sie von x dann schließlich nach y gekommen?"//)

!Debriefing

!Quelle
Klaus Wagenhals: Die Projektpraxis im Rollenspiel aufarbeiten, wirtschaft&weiterbildung 2/2004 S. 11

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.schwarzespiegelscherben.de/dissident1.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Landkarte+%28jt%29.html]]
<data>{"abstract":"[[Landschaftskunst]], eine [[Teamübung|Teamentwicklung / Teambuilding]] mit Anforderungen an Kreativität, Phantasie und Zusammenarbeit, die outdoor durchgeführt wird: Landschaftskunst mit vergänglichen Werken…  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.naturschauspiel.ch/galerie/spiralenmeer.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Landschaftskunst","abstract") </script>

!Landschaftskunst
<script> return "<<tiddler [[Landschaftskunst##Overview]]>>" </script>
Eine schöne Übung im Rahmen von [[Teamentwicklungsprozessen|Teamentwicklung / Teambuilding]].


!Objectives


!Timing


!Audience
Group

!Materials
* 

!Procedure
Die Instruktion lautet wie folgt:

Schaffen Sie ein Objekt "Landschaftskunst" wie z.B. bei http://www.naturschauspiel.ch zu sehen. (Am besten lädt man sich dort einige wenige Bilder und druckt sie zur Demonstration von Landschaftskunst aus). 
Ihr Objekt soll die Verbundenheit Ihres [[Unternehmens|Unternehmenskultur]] mit der Natur charakterisieren. Bilden Sie dazu [[Teams|Team]] von 3-5 Mitgliedern. Jedes [[Team]] kreiert sein eignes Objekt. Das nach den Kriterien "Bezug zum Thema", "künstlerischer Wert" und "Technisches Geschick bei der Ausführung" beste Objekt wird am Ende prämiert. 
Jedes [[Team]] stellt ein Mitglied für die Jury, welche die Bewertungsprozedur exakt definiert und die im Konsens entscheidet.


!Variation
!!Reflexion in Kleingruppen zum Abschluss eines Seminars. 
Hier lautet die Anleitung:
* Was war aus Ihrer Sicht die wichtigste Erkenntnis unseres Teamworkshops? 
* Finden Sie gemeinsam ein prägnantes Motto und erschaffen Sie hierzu ein Kunstobjekt. 
* Das Objekt soll ausschließlich aus natürlichen Materialien bestehen, die Sie in der Umgebung der Tagungsstätte finden.
* Präsentieren Sie anschließend Ihr Motto und Ihr Kunstobjekt.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Outdoor]<<tiddlerList tags:"outdoor,-newTemplate" header:"Übungen Outdoor">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Landschaftskunst+%28Etzel%29.html]]
<data>{"abstract":"~Vokabel-Lernen ist an sich schon keine einfache Geschichte. Wenn dann noch die Schreibweise Probleme bereitet, hilft das [[Laufdiktat]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://images.pixelio.de/data/media/142/Laufen.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Laufdiktat","abstract") </script>

!Laufdiktat
<script> return "<<tiddler [[Laufdiktat##Overview]]>>" </script> 

!Objectives
* Lernhilfe

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Dazu legen Sie das Lehrbuch an einen Platz, der weit genug von Ihrem Schreibtisch entfernt ist, dass Sie von diesem aus den Text nicht erkennen können. Sie gehen also zu diesem Platz, prägen sich den Satz oder Satzteil mit seiner Schreibweise ein und gehen wieder zurück zu Ihrem Schreibtisch. Dort versuchen Sie dann, die Wörter zu Papier zu bringen.

Das klingt umständlich, aber da der Mensch bequem ist, wird es Ihnen helfen, sich die Wörter rasch zu merken - sonst müssen Sie ja viel laufen ;-)

!Debriefing

!Quelle
Reinhold Vogt: 17 ~LernTipps S.16. Mehr dazu unter http://www.memoPower.de

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Gedaechnistraining]<<tiddlerList tags:"mnemonic,-newTemplate" header:"Übungen Gedaechnistraining">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://www.memoPower.de
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Laufdiktat+%28jt%29]]
/***
|Name|Launch Application Plugin|
|Version|1.1.0|
|Source|http://bradleymeck.tiddlyspot.com/#LaunchApplicationPlugin|
|Author|[[LyallPearce]], modified by [[BradleyMeck]]|
|Type|Plugin|
|~CoreVersion|1.8|
|License''|http://creativecommons.org/licenses/by-sa/2.5/]]|
|Description|Launch an application from within TiddlyWiki using a button.|
|Usage|{{{<<LaunchApplication "buttonLabel" "tooltip" "application" "argument1" "argument2"...>>}}}|

!Example
@@PLEASE DO NOT USE THIS IF YOU ARE WORRIED ABOUT SECURITY,
TIDDLYSPOT, LYALL PEARCE AND MYSELF ARE NOT RESPONSIBLE FOR ANY MIS-USE OF THIS PLUGIN@@
{{{
<<LaunchApplication "Open Notepad" "Text Editing"
"file:///c:/Windows/notepad.exe">>
}}}
<<LaunchApplication "Open Notepad" "Text Editing"
"file:///c:/Windows/notepad.exe">>

{{{
<<LaunchApplication "C Drive" "Folder" "file:///c:/">>
}}}
<<LaunchApplication "C Drive" "Folder" "file:///c:/">>

!To Do
*Support true XPaths
**relative paths
***{{{..}}} : parent-directory
***{{{/}}} : root-directory
**wild-cards
***{{{*}}} : unknown-name

!Revisions
*11/07/2006 : [[Problem]] with application parameters was fixed in IE.
*11/06/2006 : [[Problem]] with application parameters appeared again. Fixed in Firefox for now. Thanks to HarryC for bringing up the bug.
*11/04/2006 : [[Problem]] with application parameters was fixed so that they work now.
*10/29/2006 : Removed Alert of the address being launched and added support for non-application files in Firefox. Fixed a problem from the current directory being recieved by the W.Shell object by using decodeURI. Added absolute paths if the URL has "file:///" as its beginning. Clicking did not return false and was firing beforeUnLoad(), fixed that.
*10/28/2006 : Added Support for Firefox in Windows (changes how nsILocalFile is recieved) and changes the functions to use decodeURI for more compatibility.

***/
//{{{
version.extensions.LaunchApplication = {major: 1, minor: 1, revision: 0, date: new Date(2006,11,07)};
config.macros.LaunchApplication = {};

function LaunchApplication(appToLaunch,appParams) {
 if(! appToLaunch)
 return;
 if(config.browser.isIE) {
 // want where the tiddly is actually located, excluding tiddly html file
 var tiddlyBaseDir = self.location.pathname.substring(0,self.location.pathname.lastIndexOf("\\")+1);
 if(!tiddlyBaseDir || tiddlyBaseDir == "") {
 tiddlyBaseDir = self.location.pathname.substring(0,self.location.pathname.lastIndexOf("/")+1);
 }
 // if Returns with a leading slash, we don't want that.
 if(tiddlyBaseDir.substring(0,1) == "/") {
 tiddlyBaseDir = tiddlyBaseDir.substring(1);
 }
 var theShell = new ActiveXObject("WScript.Shell");
 if(theShell) {
 // the app name may have a directory component, need that too
 // as we want to start with current working dir as the location
 // of the app.
 if(appToLaunch.indexOf("file:///") == 0)
 {
 tiddlyBaseDir = "";
 appToLaunch = appToLaunch.substring(8);
 }
 var appDir = appToLaunch.substring(0, appToLaunch.lastIndexOf("\\"));
 if(! appDir || appDir == "") {
 appDir = appToLaunch.substring(0, appToLaunch.lastIndexOf("/"));
 }
 appParams = appParams.length>0?" \""+appParams.join("\" \"")+"\"":"";
 theShell.CurrentDirectory = decodeURI(tiddlyBaseDir + appDir);
 var commandString = ('"' +decodeURI(tiddlyBaseDir+appToLaunch) + '" ' + appParams);
 pluginInfo.log.push(commandString);
 theShell.run(commandString);
 } else {
 pluginInfo.log.push("WScript.Shell object not created");
 }
 } else {
 // want where the tiddly is actually located, excluding tiddly html file
 var tiddlyBaseDir = self.location.href.substring(0,self.location.href.lastIndexOf("\\")+1);
 if(!tiddlyBaseDir || tiddlyBaseDir == "") {
 tiddlyBaseDir = self.location.href.substring(0,self.location.href.lastIndexOf("/")+1);
 }
 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
 var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
 if(appToLaunch.indexOf("file:///") == 0)
 {
 tiddlyBaseDir = "";
 appToLaunch = appToLaunch.substring(8);
 }
 file.initWithPath(decodeURI(tiddlyBaseDir+appToLaunch).replace(/\//g,"\\"))
 if (file.isFile() && file.isExecutable()) {
 var process = Components.classes['@mozilla.org/process/util;1'].createInstance(Components.interfaces.nsIProcess);
 process.init(file);
 process.run(false, appParams, appParams.length);
 }
 else
 {
 file.launch();
 }
 }
};

config.macros.LaunchApplication.handler = function (place,macroName,params,wikifier,paramString,tiddler) {
 // 0=ButtonText, 1=toolTop, 2=AppToLaunch, 3…AppParameters
 if (params[0] && params[1] && params[2]) {
 var theButton = createTiddlyButton(place, params[0], params[1], onClickLaunchApplication);
 theButton.setAttribute("appToLaunch", params[2]);
 var appParams = [];
 for (var i = 3; i <params.length; i++) {
 appParams.push(params[i]);
 }
 theButton.appParameters = appParams;
 return;
 }
}

function onClickLaunchApplication(e) {
 var theAppToLaunch = this.getAttribute("appToLaunch");

 var theAppParams = this.appParameters ;
 LaunchApplication(theAppToLaunch,theAppParams);
 return false;
 }

//}}}
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!Leadership Game
<script> return "<<tiddler [[Leadership Game##Overview]]>>" </script>

!Objectives

!Timing


!Audience
Group

!Materials
*

!Procedure

!Debriefing


/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Yves Hanoulle: Leadership Game| http://www.hanoulle.be/2010/06/leadership-game-v-4-01/]]
//synonym:// 
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.enna.com/images/lean_games_uk.jpg>>
<<showtoc>>
!Overview
The [[Lean Operations Game]] is a realistic simulation of a manufacturing environment and demonstrates the fundamentals of [[Lean|lean]] in a learning and interactive way. The objective of the game is to demonstrate Lean techniques and show that their application leads to improved performance. 

!Lean Operations Game
<<tiddler [[Lean Operations Game##Overview]]>>
A typical game will involve four to five rounds of game simulation, where each round demonstrates a typical constraint in a production environment and evaluates the effect of making a significant step to reducing that constraint. 
The first round uses a traditional batch, push system of manufacturing.  At the end of the first round the performances on delivery, inventory, lead-time, quality and productivity are evaluated and documented. During each subsequent round a particular aspect of lean is analysed, 1 or 2 improvements are made, the impact of which are evaluated in the next set of results.

On completion of the last round, the participants will have experienced a typical environment before, during and after lean principles were introduced, demonstrating the initial tensions and stresses exhibited and showing the impact of key changes made throughout the Lean transition. They will have experienced how thinking about the whole [[value stream|Value Stream Mapping]] and applying lean principles can dramatically enhance performance of key [[metrics|Metrik]].


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing


/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.leanbusiness.ie/about_lean/lean_principles/lean_toolkit.html#leanoperationsgame
<<wikify [>img(%0,%1)[%2|%3]] 60% auto title http://3.bp.blogspot.com/_ko9SUuiNAxM/R8kiMUPOtrI/AAAAAAAABt4/t_lOyayDj4Y/s320/P2290264.JPG>>
<<showtoc>>
!Overview
[[Learning Matrix]] – This is basically a 2×2 matrix drewn on the whiteboard specifying what was good, what could be changed, new ideas, and accolades for specific actions. 

!Learning Matrix
<<tiddler [[Learning Matrix##Overview]]>>

!Objectives
* Gather Data, Generate Insights in a [[retrospective|Agile Retrospectives]]

!Timing
30 min

!Audience
Group

!Materials
* index cards / sticky notes
* flipchart with learning matrix:
{{indent{
| <br>''Went well''<br> | <br>''Didn't go well''<br> |
| <br>''Ideas''<br> | <br>''Appreciations''<br> |
}}}

!Procedure
# Let the participants write cards for the things that went well, let them stick the cards to the flipchart and explain the cards.
# Same with the things that didn't go well
# Same with ideas that came up during last [[sprint|Sprint]] / project intervall.
# Same with appreciations
Variants:
* collect cards for quadrants without any order .
* use //"what we learned?"// instead of "Ideas"; and //"What still puzzles us?"// instead of "Appreciations".

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.learninggeneralist.com/2008/03/using-learning-matrix.html
<data>{"abstract":"[[Lego-Bagger]], eine Übung, die sowohl die [[Kommunikation]] innerhalb der Gruppe als auch zwischen Gruppen verbessert — und zugleich viel Spaß macht."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.toyshop.ch/lego/leg8455.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Lego-Bagger","abstract") </script>

!~Lego-Bagger
<<tiddler [[Lego-Bagger##Overview]]>>

!Objectives
* [[Kommunikation]] innerhalb der Gruppe als auch zwischen Gruppen
* Teambuilding

!Timing
45min-60min

!Audience
Group

!Materials
* Pro Gruppe 1 Bausatz Legobagger ([[verschiedene LEGO Bagger Modelle|http://www.amazon.de/s/url=search-alias%3Dtoys&field-keywords=lego+bagger]], [[Lego Hubschrauber|http://www.amazon.de/dp/B002KCNUJO/ref=pe_34591_22853551_pe_epc_d7]]) 
* getrennte Räume od. Trennwände

!Procedure
Drei Gruppen haben die Aufgabe, getrennt von einander in drei Räumen jeweils einen Bagger aus Legosteinen nach einer Bauanleitung zusammenzusetzen. 

Keine allzu schwierige Aufgabe, wenn es da nicht einige wenige Einschränkungen gäbe. Es gibt nur eine Bauanleitung, und die befindet sich in einem separaten Raum. 

Die Gruppen haben lediglich den Karton mit einem Bild des Baggers vorliegen, aber darauf ist leider nicht zu erkennen, wie sich das Innenleben und damit die Mechanik der Baggervorrichtung zusammensetzt.

Wenn nun eine Gruppe nicht mehr weiterkommt, darf sie im Vorraum Einsicht in den Bauplan nehmen. Dabei gilt, daß jeweils nur ein Gruppenmitglied sich dort aufhalten darf, es dürfen weiterhin keine Teile mit herausgenommen werden, und gezeichnet werden darf auch nicht. 


!Debriefing
Wenn eine Gruppe es nicht schafft, die Zusammenarbeit und vor allem die [[Kommunikation]] bzw. [[Information]] zu organsieren - d.h. klare Spielregeln für die [[Kommunikation]] zu entwickeln -, hat sie arge Probleme, innerhalb der vorgegebenen Zeit die Aufgabe zu lösen.

!Quelle
"Workshop", dem Magazin der ZUGBRÜCKE Grenzau, in einem Seminarbericht der DHL Aviation ~GmbH Frankfurt.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Übungen Führung]<<tiddlerList tags:"leadership,-newTemplate" header:"Übungen Führung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Der+Legobagger+%28jt%29]]
* [[Lego-Bagger| http://www.amazon.de/gp/product/B0000CFUA7?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=B0000CFUA7]]
* [[LEGO Digital Designer — Winload.de| http://www.winload.de/download/lego-digital-designer-111695]]
<data>{"abstract":"Für den Seminarerfolg sehr dienlich kann es sein, wenn die Teilnehmer sich am Anfang über ihre [[Ziele|Ziel]] klarwerden und während des Seminares ihren Lernfortschritt dokumentieren - auf der persönlichen [[Lern-Ziel-Skala]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.antik-radio.de/radio/tipps/bilder/ve-skala3.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Lern-Ziel-Skala","abstract") </script>

!Lern-~Ziel-Skala
<script> return "<<tiddler [[Lern-Ziel-Skala##Overview]]>>" </script> 
Haben Sie einmal Ihre Seminarteilnehmer gefragt, welche konkreten [[Ziele|Ziel]] sie mit dem Besuch Ihres Seminares erreichen wollen? Sie werden vermutlich feststellen, dass viele von ihnen diese [[Ziele|Ziel]] gar nicht genau definieren können.

!Objectives
* (Lern)Zieldefinition (für ein Seminar)

!Timing
30 min

!Audience
Group / Individual

!Materials
* DIN ~A3-Bogen 

!Procedure
Bitten Sie die Teilnehmer, zwei bis drei persönliche Lernziele auf einem DIN ~A3-Bogen festzuhalten. Hinter jeder Ziel wird sodann eine Skala von 0 bis 100 aufgezeichnet. Während des Seminares werden die Teilnehmer gebeten, mit einem Kreuz auf der Skala einen Lernschritt zu vermerken, wenn sie meinen, einem Ziel nähergekommen zu sein.

Zur Unterstützung der Teilnehmer bietet es sich an, dies als Partnerübung durchzuführen. Dabei tauschen sich die jeweiligen Partner zuerst über ihre Erwartungen aus und fertigen dann ihr ~Lernziel-Plakat an.

!Debriefing

!Quelle
A. Rachow, gefunden bei Svenja Gloger: Marathon der Methoden, managerSeminare 1/2002, S. 50.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Lern-Ziel-Skala+%28jt%29]]
<data>{"abstract":"[[Lerninhalte durchsieben]], wer kennt das nicht? Wir möchten etwas vermitteln, haben aber als Fachleute eigentlich viel zu viel Wissen. Tipps zur Reduzierung der Fülle (Komplexitätsreduktion)… "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.sia-abrasives.com/img/sind_verfahren_streuung_sieb.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Lerninhalte durchsieben","abstract") </script>

!Lerninhalte durchsieben
<script> return "<<tiddler [[Lerninhalte durchsieben##Overview]]>>" </script> 
Das bedeutet, dass wir gezwungen sind zu sieben. Aber wie? Was bleibt, auf was wird verzichtet? Das folgende Vorgehen hilft weiter.

!Objectives
* Tipps zur Reduzierung der Fülle (Komplexitätsreduktion)

!Timing
30 min

!Audience
Group / Individual

!Materials
* 

!Procedure
Dazu nehmen Sie sich vielleicht zum Üben erst einmal ein Standardthema. Als nächstes definieren Sie die "Maschen" Ihres Siebes. 

Also: Was würden Sie in 15 Minuten, in drei Stunden, in zwei Tagen vermitteln. Wenn Sie die Zeiträume festgelegt haben, beginnen Sie mit dem längsten Zeitraum, also dem durchlässigsten Sieb. Welche Inhalte vermitteln Sie in zwei Tagen?
Danach reduzieren Sie auf das nächste Sieb: Was übermitteln Sie Ihren Teilnehmern in drei Stunden? Und schließlich: Was bringen Sie in 15 Minuten über?

Der letzte Schritt ist der Realitätstest: Ist die Menge, die Sie für den jeweiligen Zeitraum ausgewählt haben, in der festgelegten Zeit auch wirklich zu vermitteln?

!Debriefing

!Quelle
Martin Lehner: Die Kunst des Kürzens, managerSeminare 3/2007, S. 72

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Übungen Fortgeschrittene Seminarbausteine]<<tiddlerList tags:"advanced_training,-newTemplate" header:"Übungen Fortgeschrittene Seminarbausteine">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Lerninhalte+durchsieben+%28jt%29&db=3]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://29.media.tumblr.com/tumblr_l968pqDJs81qarogmo1_500.jpg>> /%
http://www.nature.com/nature/journal/v451/n7177/images/451376a-i2.0.jpg
http://t1.gstatic.com/images?q=tbn:kikFSENrHmLLaM:http://www.yatzer.com/assets/Image/12.december/too_late/too_late_yatzer4.jpg>> %/
<<showtoc>>
!Overview
[[Like to Like]], each participant points out those events that were particularly well in his/her opinion. Team members take turns in judging which events of the period best fits with their quality cards. As the cards are evaluated participant learn about each other perspectives on the same events. 

!Like to Like
<<tiddler [[Like to Like##Overview]]>>

!Objectives
* Remember what had happened during time period in question.
* Balance sprints, projects, releases that haven't gone well.
* Learn about each other perspectives on the same events. 

!Timing
30min

!Audience
Group

!Materials
* Quality cards: cards with words "like", "Fun", "~On-Time", "Cool", "Awesome", etc.  

!Procedure
# Each participant makes a list with 3 issues that are necessary to stop doing anymore; 3 issues that the team do and must continue doing and 3 issues that the team should start doing. 
# Then, share the ideas with the rest of the team one at a time; the rest of the people rate every idea by using game cards (say numbered cards or coloured cards). 

To make things faster, the last quality card that has been uncovered is automatically removed. Take a couple of minutes to think about the idea before start every round.

!Debriefing
It is very important to analyze everybody's opinion.

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* 
/***
|Name|LimitOpenTiddlersPlugin|
|Source|http://tw.lewcid.org/sandbox/#TiddlerPreviewsPlugin|
|Version||
|Author|[[SaqImtiaz]], modified by [[MichaelTarnowski]]|
|License||
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description|(1) new tiddlers open at the top; (2) max n tiddlers allowed open at any time. Right now n is set to 3; (3) when the n+1 tiddler is opened, the oldest (bottom) open tiddler is closed; (4) optional history command in the toolbar that show z number of last closed tiddlers; (5) z and n are userconfigurable; (6) changed by MichaelTarnowski to put z and n into config.options|
***/
//{{{
//----------------------------------------------------------------------------
// Configuration Stuff, MichaelTarnowski 
//----------------------------------------------------------------------------
var opts = {chkLimitOpenTiddlers:false,
	    txtMaxOpenTiddler:5,
	    txtMaxTiddlerHistoryList:10
           };
for (var n in opts) 
	if (config.options[n] == undefined) config.options[n] = opts[n];

config.shadowTiddlers.LimitOpenTiddlers = "With this option you specify that max n tiddlers are allowed to open at any time.";
config.shadowTiddlers.MaximumOpenTiddler = "With this option you specify the maximal number of tiddlers allowed open at any time.";
config.shadowTiddlers.MaximumTiddlerHistoryList = "With this option you specify the maximal number of entries in the history list (list of closed tiddlers).";

//----------------------------------------------------------------------------
Story.prototype.tiddlerHistory = [];
Story.prototype.maxTiddlers = (config.options.txtMaxAutoRecentOpenTiddlers == undefined) ?
                                  parseInt(config.options.txtMaxOpenTiddler) :
                                  Math.min(parseInt(config.options.txtMaxAutoRecentOpenTiddlers),
                                           parseInt(config.options.txtMaxOpenTiddler));
Story.prototype.closedHistory = [];
Story.prototype.closedHistoryMax = parseInt(config.options.txtMaxTiddlerHistoryList);

Array.prototype.moveToEnd = function(item)
{
    this.remove(item);
    this.push(item);
}

Story.prototype.old_history_displayTiddler = Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,title,template,animate,slowly)
{
    this.tiddlerHistory.moveToEnd(title);
    this.closedHistory.remove(title);
    var closeCount = config.options.chkLimitOpenTiddlers ? this.tiddlerHistory.length - this.maxTiddlers : 0;
    if (closeCount>0)
    {
       var count = this.tiddlerHistory.splice (0,closeCount--);
       for (var i=0; i<count.length;i++)
       {
          story.closeTiddler(count[i],false);
       }
    }
    story.old_history_displayTiddler(null,title,template,animate,slowly);
}

Story.prototype.old_history_closeTiddler = Story.prototype.closeTiddler;
Story.prototype.closeTiddler = function(title,animate,slowly)
{
    this.tiddlerHistory.remove(title);
    this.closedHistory.remove(title);
    this.closedHistory.unshift(title);
    story.old_history_closeTiddler.apply(this,arguments);
}

Story.prototype.displayTiddlers = function(srcElement,titles,template,animate,slowly)
{
    for(var t = titles.length-1;t>=0;t--)
    {
       this.tiddlerHistory.moveToEnd(titles[t]);
       this.closedHistory.remove(titles[t]);
       this.old_history_displayTiddler(srcElement,titles[t],template,animate,slowly);
    }
}

config.commands.history={
    text: "history",
    tooltip: "re-open a closed tiddler"};

config.commands.history.handler = function(event,src,title)
{
    var popup = Popup.create(src);
    if(popup)
    {
       if (!story.closedHistory.length)
           createTiddlyText(popup,"No history");
       else
       {
          var closeTiddlers = 
                 Math.max(parseInt(config.options.txtMaxTiddlerHistoryList),story.closedHistoryMax);
          var c = Math.min(story.closedHistory.length,closeTiddlers)+1;
	  for (i=0; i<c;i++ )
          {
	    createTiddlyLink(createTiddlyElement(popup,"li"),story.closedHistory[i],true);
	  }
       }
     }
     Popup.show(popup,false);
     event.cancelBubble = true;
     if (event.stopPropagation) event.stopPropagation();
     return false;
}
//}}}
/***
|Macro|LinkifyPlugin|
|Author|Tobias Beer|
|Version|0.9.6 beta|
|Requires||
|Core|2.5.0|
|Description|Automatically linkifies strings, optionally using aliases<br>The plugin is based on Clint Checketts and Paul Petterson's [[RedirectMacro|http://checkettsweb.com/styles/themes.htm#RedirectMacro]]|
|Source|http://linkify.tiddlyspot.com/#LinkifyPlugin|
|Documentation|http://linkify.tiddlyspot.com|
|Usage|define redirects in LinkifyConfig|
!Code
***/
//{{{
(function($){
config.shadowTiddlers.LinkifyConfig="!Exclude\n-excludeLists systemConfig noLinkify\n!Linkify\nLinkifyPlugin|^linkif\n^Tiddler";

//the handler for a linkification formatter
linkifyHandler = function(w){
	//find surrounding tid
	var unLink,
	tid = story.findContainingTiddler(w.output),pos;
	tid = tid ? tid.getAttribute('tiddler') : '';
	
	//get the actual tiddler -> not sections or slices
	pos = tid.indexOf('##');
	if (pos<0)pos=tid.indexOf('::');
	if (pos>0)tid = tid.substr(0,pos);

	unLink = w.source.substr(w.matchStart,1) == config.textPrimitives.unWikiLink;

	//tid excluded?
	if(unLink || tid && window.linkifyExcluded.contains(tid)){
		//wikify as is
		w.outputText(w.output, w.matchStart + (unLink ? 1 : 0) , w.nextMatch );
	//otherwise render linkified
	}else{
		w.outputText(
			createTiddlyLink(
				createTiddlyElement(w.output,'span',null,'linkified'),
				this.target,
				false
			),
			w.matchStart,
			w.nextMatch
		);
	}
}

linkifyAddFormatter = function(term, tiddler, dontInsert, target, remove){
/*	term				<string>	the term to be matched, including modifiers
		tiddler			<string>	the target tiddler
		dontInsert	<bool>		when true does not insert the formatter
		target			<bool>		whether the term represents the target tiddler
		remove			<string>	any old tiddler name to be removed				   		*/

	var asIs,exists,f=0,fmt,fmtName,fmtRemove,match,pre,prepend,reg,suff,
		cf=config.formatters,
		mod=term.substr(0,1);

	//check for suffix modifiers
	if(term.substr(term.length-1,1)=='*'){
		suff=true;
		term=term.substr(0,term.length-1);
	};

modifiers:
	//check for prefix modifiers
	while(!asIs && ['\"','~','^','*','('].contains(mod)){
		//check modifier
		switch (mod) {
			case '~':
				if (target) return false;
			case '^':
				prepend = true;
				break;
			case '\"':
				asIs = term.substr(term.length-1,1) == '\"';
				if (asIs) term = term.substr(0,term.length-1);
				else break modifiers;
				break;
			case '(':
				reg = term.substr(term.length-1,1) == ')';
				if (reg) {
					term = term.substr(0,term.length-1);
				}else{
					break modifiers;	
				}
				break;
			case '*':  pre=true;
		}
		//remove from term and get next
		term = term.substr(1,term.length-1);
		mod = term.substr(0,1);
	}
	
	//reaplce all escape chars
	if(!reg)term=term.replace(/\\/mg,'');

	//formatter name (turn non-word to charCode)
	fmtName = "linkify_" + term.replace(
		/([\W])/mg,
		function($1) {return $1.charCodeAt(0)}
	)

	//formatter for tiddler to be removed
	if (remove) {
		fmtRemove = "linkify_" + remove.replace(
			/([\W])/mg,
			function($1) {return $1.charCodeAt(0)}
		)
	}

	//loop all formatters
	while ( f < cf.length ) {
		//formatter for new term exists?
		exists = exists || cf[f].name == fmtName;
		//remove when old one found
		if ( remove && cf[f].name == fmtRemove ) {
			cf.splice(f,1);
		}
		else f++;
	};

	//skip existing, excluded or blank term
	if (exists || dontInsert || !term) return false;

	//set up the the regex to be matched -> insert the term
	match = config.textPrimitives.unWikiLink + '?' +
		( reg ? "(?:%2)" : '(?:\\b%0%2%1\\b)').format([
			pre ? '[\\w]*' : '',
			suff ? '[\\w]*' : '',
			reg ? term :
			term.escapeRegExp().replace(
				/([a-z]|[A-Z])/img,
				function($1) {
					return ("[" + 
						( asIs ? $1 :
						( (/[\W]/mg).exec($1) ? "'" + $1 : $1.toUpperCase() + $1.toLowerCase()
						) ) + "]");
				}
			).replace(/[\s]/mg,'[\\s]')
		]);

	//define formatter
	fmt={
		'name':fmtName,
		'match':match,
		'target':tiddler,
		'handler':linkifyHandler
	}
	
	//pre- or append formatter
	if (prepend) cf.unshift(fmt); else cf.push(fmt);

	//it's added now
	return true;
}
	
linkifyIndexConfig = function(){
	var d,d0,m,makelast,r,rd,rx,td,t,tid,tids,tmp,
		cf=config.formatters,

	//helper to remove all known prefixes from a term
	sanitize = function(el){
		//remove suffixes and prefixes -> then return
		el = el.replace(/^(\'|\*|\^|\~|\()+/mg,'');
		return el.replace(/(\*|\))+?/mg,'')
	};

	//done with vars -> initialize the global array for all linkified tiddlers
	window.linkifyLinkified=[];

	//get config -> user defined or default shadow tiddler
	rx=store.getTiddlerText('LinkifyConfig')||store.getShadowTiddlerText('LinkifyConfig');

	//split into lines
	rx=rx?rx.split('\n'):[];

	//clean formatters of any linkifiers
	for(var f=0;f<cf.length;f++){
		if(cf[f].name.indexOf('linkify_')==0){
			cf.splice(f,1);
			f--;
		}
	}

	//loop all config lines
	for(r=0; r<rx.length; r++){

		//skip comments
		if(!rx[r]||[' ','!'].contains(rx[r][0]))continue;
		//split line by pipe
		rd = rx[r].split('|');
		//get tid 
		tid = sanitize(rd[0]);
		//init tid pos as first
		d0 = 0;

		//globally remember all linkified tiddlers
		window.linkifyLinkified.pushUnique(tid);

		//shift tid if required
		for(d=1; d < rd.length; d++){
			//get term
			td=sanitize(rd[d]);
			//if term included in tid
			if(td.toLowerCase().indexOf(tid.toLowerCase())==0){
				//swap term and tid
				tmp = rd[d];
				rd[d] = rd[d0];
				rd[d0] = tmp;
				//remember new tid pos
				d0 = d;
			}
		}

		//add formatters for each term in this line
		for ( d=0; d < rd.length; d++ ) linkifyAddFormatter(rd[d], tid, false, d == d0);
	}
	//all tiddlers to be linkified?
	if(window.linkifyAllTiddlers){
		//get all tids
		tids = store.getTiddlers();
		//loop 'em
		for (t = 0; t < tids.length; t++){
			//get tid
			tid = tids[t].title;
			//add formatter if not excluded or not existing yet
			linkifyAddFormatter(tid,tid,window.linkifyExcluded.contains(tid)||window.linkifyLinkified.contains(tid));
		}
	}
};
//init formatters
linkifyIndexConfig();

//index all excludes
linkifyIndexExcludes = function(){
	var e,ex='',r,rx,
		rx = store.getTiddlerText('LinkifyConfig')||store.getShadowTiddlerText('LinkifyConfig');

	//reset global array
	window.linkifyExcluded = [];
	//split all lines
	rx = rx ? rx.split('\n') : [];
	//loop 'em
	for ( r=0; r<rx.length; r++ )
		//add excludes
		if( rx[r].indexOf('-') == 0 ) ex += rx[r].substr(1,rx[r].length-1) + ' ';
		
	//turn into array
	ex = ex.readBracketedList();
	//add tids
	ex.map(function(e){window.linkifyExcluded.pushUnique(e)});
	//add tagging tids
	for(e=0;e<ex.length;e++)
		store.getTaggedTiddlers(ex[e]).map(function(t){window.linkifyExcluded.pushUnique(t.title)});
};
//init excludes
linkifyIndexExcludes();

linkifyTiddlers = function(yes){
	window.linkifyAllTiddlers = yes;
	if(yes){
		linkifyIndexConfig();
		linkifyIndexExcludes();
		formatter = new Formatter(config.formatters);
	}
}

//hijack saveTiddler
store.saveTiddler_Linkify = store.saveTiddler;
store.saveTiddler = function(title,newTitle){
	//invoke core
 	var r = store.saveTiddler_Linkify.apply(this,arguments),
		tid = newTitle;

	//add formatter if not excluded or not existing yet
	linkifyAddFormatter(
		tid,
		tid,
		window.linkifyExcluded.contains(tid)||window.linkifyLinkified.contains(tid),
		true,
		tid!=title?title:null
	);
	//if LinkifyConfig
	if(title=='LinkifyConfig'||newTitle=='LinkifyConfig'){
		//reindex
		linkifyIndexConfig();
	}
	//reindex excludes
	linkifyIndexExcludes();
	//update formatters
	formatter = new Formatter(config.formatters);
	//refresh tiddlers to update changes
	story.refreshAllTiddlers(true);
	//return
	return r;
};

//hijack removeTiddler
store.removeTiddler_Linkify = store.removeTiddler;
store.removeTiddler = function(title){
	//invoke core
 	var r = store.removeTiddler_Linkify.apply(this,arguments);
	//remove old formatter
	linkifyAddFormatter('*',null,null,null,title);	
	//update formatters
	formatter = new Formatter(config.formatters);
	//refresh tiddlers to update changes
	story.refreshAllTiddlers(true);
	//return
	return r;
}

//shadow tiddler for styles
config.shadowTiddlers.StyleSheetLinkify ='/*{{{*/\n'+
	'.linkified .tiddlyLink{color:[[ColorPalette::PrimaryLight]];font-weight:normal;}\n'+
	'.linkified .tiddlyLink:hover{color:[[ColorPalette::PrimaryMid]];background:transparent;}\n'+
	'.headerShadow .linkified .tiddlyLink {color:transparent !important;}\n'+
	'.siteSubtitle .linkified .tiddlyLink{color:[[ColorPalette::PrimaryPale]];background:transparent;}\n'+
	'.siteSubtitle .linkified .tiddlyLink:hover{color:[[ColorPalette::Background]];background:transparent;}\n'+
	'dt .linkified .tiddlyLink{font-weight:bold;}\n'+
	'/*}}}*/';
store.addNotification("StyleSheetLinkify", refreshStyles);

})(jQuery)
//}}}
/***
|Name:|ListAuthorPlugin|
|Version:|1.0.1|
|Licence:|This plugin is released under the [[Creative Commons Attribution 2.5 License|http://creativecommons.org/licenses/by/2.5/]]|
|Source|http://gwsyzygy.googlepages.com/creator.html#ListAuthorPlugin|
|Author:|[[GregWalker]] |
|Type:|plugin|
|Requires|~TW2.x|
|Description|It's a macro for listing by creator or modifier.|

!Description
<<<
It's a macro for listing by creator or modifier.
<<<

!Examples
|!Source|!Output|h
|{{{<<listByAuthor>>}}}|//lists all tiddlers grouped by creator//|
|{{{<<listByAuthor modifier>>}}}|//lists all tiddlers grouped by modifier//|
|{{{<<listByAuthor creator SomeUser>>}}}|//lists all tiddlers created by ''SomeUser''//|
|{{{<<listByAuthor creator currentUser>>}}}|//lists all tiddlers created by the current user//|

!History
* 13-Jun-06, version 1.0.1, Added support for DisplayTiddlerGlyphsPlugin
* 21-Mar-06, version 1.0.0, initial version

!Code
***/
/*{{{*/
version.extensions.ListAuthorPlugin = { major: 1, minor: 0, revision: 1, 
 date: new Date(2006,6,13),
 source: "http://gwsyzygy.googlepages.com/creator.html#ListAuthorPlugin"
};

config.macros.listByAuthor = {};
config.macros.listByAuthor.handler = function(place,macroName,params)
{
 var field = params[0] ? params[0] : "creator";
 var filter = params[1]=="currentUser" ? config.options.txtUserName : params[1];

 // sort by title first, then by author to end up with author then title.
 var tiddlers = store.reverseLookup("tags","excludeLists",false,"title");
 tiddlers.sort(function (a,b) {if(a[field] == b[field]) return(0); else return (a[field] < b[field]) ? -1 : +1; });

 var lastAuthor = "";
 for(var t=0; t<tiddlers.length; t++)
 {
 var tiddler = tiddlers[t];
 var theAuthor = tiddler[field];
 if(filter==null || theAuthor==filter)
 {
 if(theAuthor != lastAuthor)
 {
 var theAuthorList = document.createElement("ul");
 place.appendChild(theAuthorList);
 if(filter==null)
 createTiddlyElement(theAuthorList,"li",null,"listTitle",tiddler[field]);
 lastAuthor = theAuthor;
 }
 var theAuthorListItem = createTiddlyElement(theAuthorList,"li",null,"listLink",null);
 if (config.macros.displayTiddlerGlyphs)
 {
 config.macros.displayTiddlerGlyphs.createGlyphsElement(theAuthorListItem,tiddler,1);
 }
 theAuthorListItem.appendChild(createTiddlyLink(place,tiddler.title,true));
 }
 }
}

/*}}}*/
/***
|Name|ListboxPlugin|
|Source|http://www.TiddlyTools.com/#ListboxPlugin|
|Documentation|http://www.TiddlyTools.com/#ListboxPluginInfo|
|Version|1.4.1|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|set custom field or tiddler tags by selecting from listbox/droplist|
The {{{<<select>>}}} macro allows you to set tiddler field values by selecting pre-configured values from a listbox/droplist control.  
!!!!!Documentation
>see [[ListboxPluginInfo]]
!!!!!Revisions
<<<
2010.03.14 1.4.1 use filterTiddlers() instead of getTaggedTiddlers() - use MatchTagsPlugin for tag expressions
|please see [[ListboxPluginInfo]] for additional revision details|
2007.05.12 0.5.0 started
<<<
!!!!!Code
***/
//{{{
version.extensions.ListboxPlugin= {major: 1, minor: 4, revision: 1, date: new Date(2010,3,14)};

config.macros.select = {
	tooltip: "select a value for %0@%1",
	blankTooltip: "set %0@%1=[no value]",
	valueTooltip: "set %0@%1=%2",
	otherLabel: "other",
	otherTooltip: "set %0@%1=[enter a value...]",
	otherPrompt: "enter a value for '%0'",
	editLabel: "edit list...",
	editTooltip: "edit '%0' list definition (%1)",
	changeMsg: "setting %0@%1=%2",
	verbose: false,
	hereKeyword: "here",
	defaultTarget: "SiteFields",
	handler:
	function(place,macroName,params,wikifier,paramString,tiddler) {

		// default to containing tiddler or "SiteFields" catch-all
		var here=story.findContainingTiddler(place);
		var targetID=here?here.getAttribute("tiddler"):this.defaultTarget;

		// get field name and non-default target (if any)
		var field=params.shift();
		var pos=field.indexOf("@"); // if non-default target ("field@tiddler" syntax)
		if(pos!=-1) { // split field into field and tiddlername.
			if (field.substr(pos+1)!=this.hereKeyword) // "here" == use default target
				targetID=field.substr(pos+1); // use different target tiddler
			field=field.substr(0,pos);
		}
		if(!field || !field.length) return; // no field name… do nothing
		if (field.substr(0,1)=="=") targetID="(system)"; // internal option value

		var items=[]; var listsrc='';
		var autosave=false; var allowBlank=false; var allowOther=false; var allowEdit=false;
		var allowMultiple=false; var wikifyData=false; var rows=0; var width='';
		var p=params.shift();
		while (p) {
			if (p.toLowerCase()=='autosave')	// autosave on change
				autosave=true;
			else if (p.toLowerCase()=='allowblank')	// add empty item
				var allowBlank=true;
			else if (p.toLowerCase()=='allowother')	// add "other: ____" item
				var allowOther=true;
			else if (p.toLowerCase()=='allowedit')	// add "edit list..." item
				var allowEdit=true;
			else if (p.toLowerCase()=='allowmultiple') // multi-select
				var allowMultiple=true;
			else if (p.startsWith('rows:')) // 0=autosize listbox, 1=droplist, n=listbox
				var rows=p.substr(5);
			else if (p.startsWith('width:')) // CSS width of list
				var width=p.substr(6);
			else if (p.startsWith('prompt:')) // prompt text (1st item in list)
				var ptext=p.substr(7);
			else if (p.substr(0,1)=="+"||p.substr(0,1)=="*") { // read HR-separated tiddler
				var listsrc=p.substr(1);
				var listtxt=store.getTiddlerText(listsrc,'');
				var wikifyData=p.substr(0,1)=="*";
				if (listtxt.length && wikifyData) // wikify source to handle macros/scripts
					listtxt=this.getWikifiedData(listtxt);
				if (listtxt.length)
					items=items.concat(listtxt.split(listtxt.indexOf('\n----\n')!=-1?'\n----\n':'\n'));
			}
			else if (p.startsWith("=")) { // get items from tagged tiddlers
				var filter=p.substr(1);
				if (!filter.startsWith('[')) filter='[tag['+filter+']]';
				var tids=store.filterTiddlers(filter);
				for (var t=0; t<tids.length; t++) items.push(tids[t].title);
			}
			else { // param is item value or 'label=value'
				var parts=p.split("=");
				var label=parts[0]; var v=parts[1]?parts[1]:parts[0];
				items.push(label+"="+v);
			}
			p=params.shift();
		}
		if (rows==1) allowMultiple=false; // droplist cannot do multi-select
		if (tiddler && !story.isDirty(tiddler.title)) autosave=true; // tiddler is in VIEW mode, force autosave

		this.render(createTiddlyElement(place,"span"), null,
			targetID, field, ptext, items, listsrc, wikifyData,
			rows, width, autosave, allowBlank, allowOther, allowEdit, allowMultiple);

		store.addNotification(null,this.refresh); // syncs lists when tiddlers are changed
	},
	getWikifiedData: // wikify tiddler content, then extract text WITH newlines and HRs included
	function(txt) {
		var e=createTiddlyElement(document.body,"div"); wikify(txt,e);
		var breaks=e.getElementsByTagName("br");
		for (var b=0; b<breaks.length; b++) breaks[b].parentNode.insertBefore(document.createTextNode("\n"),breaks[b]);
		var lines=e.getElementsByTagName("hr");
		for (var l=0; l<lines.length; l++) lines[l].parentNode.insertBefore(document.createTextNode("----\n"),lines[l]);
		var items=e.getElementsByTagName("li");
		for (var i=0; i<items.length; i++) items[i].parentNode.insertBefore(document.createTextNode("\n"),items[i]);
		var txt=getPlainText(e); removeNode(e); return txt;
	},
	refresh:
	function (title) { // re-render dependent lists
		var lists=document.getElementsByTagName('select');
		for (var i=0; i<lists.length; i++) { var list=lists[i];
			if (list.getAttribute('listsrc')!=title) continue; // no sync needed
			var listtxt=store.getTiddlerText(list.getAttribute('listsrc')||'','');
			if (listtxt.length && list.getAttribute("wikifyData")=="true")
				listtxt=this.getWikifiedData(listtxt);
			if (listtxt.length)
				var items=listtxt.split(listtxt.indexOf('\n----\n')!=-1?'\n----\n':'\n');
			config.macros.select.render(list.parentNode, list,
				list.getAttribute('tiddler'),
				list.getAttribute('edit'),
				list.getAttribute('ptext'),
				items||[],
				list.getAttribute('listsrc'),
				list.getAttribute("wikifyData")=="true",
				list.getAttribute("rows"),
				list.getAttribute("width"),
				list.getAttribute("autosave")=="true",
				list.getAttribute("allowBlank")=="true",
				list.getAttribute("allowOther")=="true",
				list.getAttribute("allowEdit")=="true",
				list.getAttribute("allowMultiple")=="true");
		}
	},
	render:
	function (place, here, targetID, field, ptext, items, listsrc, wikifyData,
		rows, width, autosave, allowBlank, allowOther, allowEdit, allowMultiple) {

		var values=[]; var opts=[];

		// use current selection(s) (if any) (except for "edit list..." item)
		if (here) for (var i=0; i<here.options.length; i++) {
			var opt=here.options[i];
			if (opt.selected && opt.text!=config.macros.select.editLabel) values.push(opt.value);
		}
		// no listbox or no selections… get value(s) from field (if any)
		if (!values.length) {
			var v=(field.substr(0,1)=='=')?config.options[field.substr(1)]:store.getValue(targetID,field);
			if (v) values=(field=='tags'||allowMultiple)?v.readBracketedList():[v];
		}
		// add prompt item
		if (ptext&&ptext.length)
			opts.push('<option value="_ptext" title="">'+ptext+'</option>');
		// add 'no value' item
		if ((!allowMultiple && !values.length) || allowBlank)
			opts.push('<option value="" title="'+this.blankTooltip.format([field,targetID])+'"></option>');
		// add enumerated items
		var isOther=values.length; // assume no matching value
		for (var opt=0; opt<items.length; opt++) {
			var lines=items[opt].split("\n"); var parts=lines[0].split("=");
			var label=parts[0];
			var v=parts[1]?parts[1]:parts[0];
			var title=lines[1]?lines[1]:this.valueTooltip.format([field,targetID,v]);
			var sel=values.contains(v); if (sel) isOther=false; // found matching value
			opts.push('<option value="'+v+'" '+(sel?'selected':'')+' title="'+title+'">'+label+'</option>');
		}
		// add 'other...'
		if (field=='tags') isOther=false;
		if (isOther||allowOther) {
			var label="other"+(isOther?(": "+values[0]):"...");
			var v=isOther?values[0]:'';
			var t=this.otherTooltip.format([field,targetID]);
			opts.push('<option value="'+v+'" '+(isOther?'selected':'')+' title="'+t+'">'+label+'</option>');
		}
		// add 'edit list...'
		if (listsrc && (!store.getTiddlerText(listsrc) || allowEdit)) {
			var title=this.editTooltip.format([field,listsrc]);
			opts.push('<option value="'+listsrc+'" title="'+title+'">'+this.editLabel+'</option>');
		}
		// render listbox
		var html='<select '+(values[0]?'value="'+values[0]+'" ':' ')
			+' title="'+this.tooltip.format([field,targetID])+'"'
			+' rows="'+rows+'"'+' size="'+(rows!=0?rows:opts.length)+'"'+' style="width:'+width+'"'
			+' tiddler="'+targetID+'"'+' edit="'+field+'"'+' ptext="'+ptext+'"'
			+' listsrc="'+listsrc+'"'+' wikifyData="'+wikifyData+'"'
			+' autosave="'+autosave+'"'+' allowBlank="'+allowBlank+'"'+' allowOther="'+allowOther+'"'
			+' allowEdit="'+allowEdit+'"'+' allowMultiple="'+allowMultiple+'"'+(allowMultiple?' multiple':'')
			+' onclick="return config.macros.select.onClick(this,event)"'
			+' onchange="return config.macros.select.onChange(this,event)"'
			+' ondblclick="return false">'+opts.join('')+'</select>';
		place.innerHTML=html;
	},
	onClick:
	function(here,event) {
		var sel=here.selectedIndex;
		if (sel!=-1 && here.options[sel].text.startsWith(config.macros.select.otherLabel))
			here.onchange.apply(here,arguments);
	},
	onChange:
	function(here,event) {
		var cms=config.macros.select; // abbrev
		var sel=here.selectedIndex;
		if (sel!=-1) {
			if (here.options[sel].text==cms.editLabel) {
				story.displayTiddler(story.findContainingTiddler(here),here.value,DEFAULT_EDIT_TEMPLATE);
				return false;
			}
			if (here.options[sel].text.startsWith(cms.otherLabel)) {
				var newval=prompt(cms.otherPrompt.format([here.getAttribute("edit")]),here.value);
				if (!newval) {// user cancelled
					var v=store.getValue(here.getAttribute("tiddler"),here.getAttribute("edit"));
					{ here.value=v; if (v==undefined) here.selectedIndex=0; return false; }
				};
				here.options[sel].value=newval;
				here.options[sel].text=cms.otherLabel+": "+newval;
				here.value=newval;
			}
			if (here.options[sel].value=='_ptext')
				for (var i=0; i<here.options.length; i++)
					here.options[i].selected=false;
		}
		if (here.getAttribute("autosave")=="true") config.macros.select.setFieldValue(here);
		return false;
	},
	setFieldValue: function(here) {
		var tid=here.getAttribute("tiddler"); if (!tid || !tid.length) return; // no target, do nothing
		var field=here.getAttribute("edit");
		if (field.substr(0,1)=='=') { // option cookie instead of tiddler field
			config.macros.option.propagateOption(field.substr(1),"value",here.value,"input");
			return;
		}
		// ensure tiddler exists
		if (!store.tiddlerExists(tid)) store.saveTiddler(tid,tid,"",config.options.txtUserName,new Date(),[]);
		if (field=='tags') {
			store.suspendNotifications();
			for (var i=0; i<here.options.length; i++) {
				var opt=here.options[i];
				if (opt.text==config.macros.select.editLabel) continue;
				store.setTiddlerTag(tid,opt.selected,opt.value);
			}
			store.resumeNotifications();
		} else {
			// get multi-select items
			var values=[];
			for (var i=0; i<here.options.length; i++) {
				var opt=here.options[i];
				if (opt.text==config.macros.select.editLabel) continue;
				if (opt.selected) values.pushUnique(String.encodeTiddlyLink(opt.value));
			}
			if (values.length==1) values=[here.value]; // remove unneeded brackets around single value
			store.setValue(tid,field,values.length?values.join(' '):null); // if no selections, delete field
		}
		// 'touch' tiddler and report to user
		var t=store.getTiddler(tid);
		var who=config.options.chkForceMinorUpdate?t.modifier:config.options.txtUserName;
		var when=config.options.chkForceMinorUpdate?t.modified:new Date();
		store.saveTiddler(tid,tid,t.body,who,when,t.tags,t.fields);
		if (config.macros.select.verbose)
			{ clearMessage(); displayMessage(config.macros.select.changeMsg.format([field,tid,here.value])); }
	}
}
//}}}
<data>{"abstract":"[[Litfasssäulen-Übung]]: Sie beschäftigen sich mit der Einführung von [[Wissensmanagement]] und versammeln Know how-Träger in einem Workshop. Mit dieser Übung steigen Sie geschickt in das Thema ein."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.faz.net/m/%7BF46114F4-B3CB-4F4F-A707-EEA98128AFBC%7DPicture.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Litfasssäulen-Übung","abstract") </script>

!~Litfasssäulen-Übung
<script> return "<<tiddler [[Litfasssäulen-Übung##Overview]]>>" </script> 
Eine Übung, die dem raschen Know how-Austausch unter Beratern dienen soll, aber sicher auch in jedem [[Team]], das sich mit dem Thema [[Wissensmanagement]] auseinandersetzt, angewendet werden kann. Jeder Teilnehmer an dem Workshop fungiert als lebende [[Litfasssäule|Litfasssäulen-Übung]]. 

!Objectives
* Know how-Austausch unter Beratern 
* [[Wissensmanagement]]

!Timing
60 min

!Audience
Group

!Materials
* ~Flipchart-Papier 
* Moderationskarten

!Procedure
Er befestigt ein ~Flipchart-Papier mit seinem Know how auf dem Bauch. Jeder formuliert auf Kärtchen Fragen und Wünsche, die er an die "Know how-Träger" hat und befestigt diese beim allgemeinen Herumwandern auf dem Rücken der "Litfasssäulen". 

!Debriefing
Nach etwa einer Stunde werden die Wunschkarten analysiert, die erfüllbaren Wünsche werden in den persönlichen Aktionsplan des "Wissensträgers" aufgenommen. 
Die nicht erfüllbaren Wünsche werden in einer "Restpostenauktion" ans ganze [[Team]] zurückgegeben. 
Daraus kann dann ein Aktionsplan für das [[Team]] entstehen, um die erkannten Wissensdefizite zu beseitigen.

!Quelle
F.Deser / F.Deitering / H.Gilbert: Weltweit erfolgreich durch Knowledge Management, Personalwirtschaft 7/1999, S.26

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Wissensmanagement]<<tiddlerList tags:"knowledge_management,-newTemplate" header:"Übungen Wissensmanagement">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Litfasss%E4ulen-%DCbung+%28jt%29]]
/***
|Name|LoadTiddlersPlugin|
|Source|http://www.TiddlyTools.com/#LoadTiddlersPlugin|
|Documentation|http://www.TiddlyTools.com/#LoadTiddlersPluginInfo|
|Version|3.9.0|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|macro for automated updates or one-click installations of tiddlers from remote sources|
!!!!!Documentation
>see [[LoadTiddlersPluginInfo]]
!!!!!Configuration
<<<
<<option chkLoadTiddlersShowReport>>after loading tiddlers, automatically display [[ImportedTiddlers]] (if created)
__password-protected server settings //(optional, if needed)//:__
>username: <<option txtRemoteUsername>> password: <<option txtRemotePassword>>
>{{{usage: <<option txtRemoteUsername>> <<option txtRemotePassword>>}}}
>''note: these settings are also used by [[ExternalTiddlersPlugin]] and [[ImportTiddlersPlugin]]''
<<<
!!!!!Revisions
<<<
2010.08.11 3.9.0 added 'autosave' optional param
|please see [[LoadTiddlersPluginInfo]] for additional revision details|
2005.07.20 1.0.0 Initial Release
<<<
!!!!!Code
***/
//{{{
version.extensions.LoadTiddlersPlugin= {major: 3, minor: 9, revision: 0, date: new Date(2010,8,11)};

if (config.options.chkLoadTiddlersShowReport===undefined)
	config.options.chkLoadTiddlersShowReport=true;

config.macros.loadTiddlers = {
	label: '',
	tip: "add/update tiddlers from '%0'",
	lockedTag: 'noReload',	// if existing tiddler has this tag value, don't overwrite it, even if inbound tiddler is newer
	askMsg: 'Please enter a local path/filename or a remote URL',
	openMsg: 'Opening %0',
	openErrMsg: 'Could not open %0 - error=%1',
	readMsg: 'Read %0 bytes from %1',
	foundMsg: 'Found %0 tiddlers in %1',
	nochangeMsg: "'%0' is up-to-date… skipped.",
	lockedMsg: "'%0' is tagged '%1'... skipped.",
	skippedMsg: 'skipped (cancelled by user)',
	loadedMsg: 'Loaded %0 of %1 tiddlers from %2',
	reportTitle: 'ImportedTiddlers',
	warning: "Warning!!  Processing '%0' as a systemConfig (plugin) tiddler may produce unexpected results! Press OK to proceed.",
	autosaveMsg: 'Save current document?  Press OK to proceed.',
	handler: function(place,macroName,params) {
		var label=(params[0] && params[0].substr(0,6)=='label:')?params.shift().substr(6):this.label;
		var tip=(params[0] && params[0].substr(0,7)=='prompt:')?params.shift().substr(7):this.tip;
		var filter='updates';
		if (params[0] && (params[0]=='all' || params[0]=='new' || params[0]=='changes' || params[0]=='updates'
			|| params[0].substr(0,8)=='tiddler:' || params[0].substr(0,4)=='tag:'))
			filter=params.shift();
		var src=params.shift(); if (!src || !src.length) return; // filename is required
		var quiet=(params[0]=='quiet'); if (quiet) params.shift();
		var ask=(params[0]=='confirm'); if (ask) params.shift();
		var force=(params[0]=='force'); if (force) params.shift();
		var init=(params[0]=='init'); if (init) params.shift();
		var nodirty=(params[0]=='nodirty'); if (nodirty) params.shift();
		var norefresh=(params[0]=='norefresh'); if (norefresh) params.shift();
		var noreport=(params[0]=='noreport'); if (noreport) params.shift();
		var autosave=(params[0]=='autosave'); if (autosave) params.shift();
		this.newTags=[]; if (params[0]) this.newTags=params; // any remaining params are used as 'autotags'
		var flags={quiet:quiet, ask:ask, filter:filter, force:force, init:init,
			nodirty:nodirty, norefresh:norefresh, noreport:noreport, autosave:autosave};
		if (label.trim().length) { // CLICKABLE LINK
			createTiddlyButton(place,
				label.format([src.replace(/%20/g,' ')]),
				tip.format([src.replace(/%20/g,' ')]),
				function() {
					var cml=config.macros.loadTiddlers;
					cml.loadFile(src,cml.doImport,flags);
					return false;
				})
		}
		else // IMMEDIATE IMPORT
			this.loadFile(src,this.doImport,flags);
	},
	loadFile: function(src,callback,params) {
		var quiet=params.quiet;
		if (src=='ask') src=prompt(this.askMsg);
		if (src==undefined || !src.length) return null; // filename is required
		if (!quiet) clearMessage();
		if (!quiet) displayMessage(this.openMsg.format([src.replace(/%20/g,' ')]));
		// if working locally and src is not a URL, read from local filesystem
		if (document.location.protocol=='file:' && src.substr(0,5)!='http:' && src.substr(0,5)!='file:') {
			var txt=loadFile(src);
			if (!txt) { // file didn't load, might be relative path.. try fixup
				var pathPrefix=document.location.href;  // get current document path and trim off filename
				var slashpos=pathPrefix.lastIndexOf('/'); if (slashpos==-1) slashpos=pathPrefix.lastIndexOf('\\'); 
				if (slashpos!=-1 && slashpos!=pathPrefix.length-1) pathPrefix=pathPrefix.substr(0,slashpos+1);
				src=pathPrefix+src;
				if (pathPrefix.substr(0,5)!='http:') src=getLocalPath(src);
				var txt=loadFile(src);
			}
			if (!txt) { // file still didn't load, report error
				if (!quiet) displayMessage(this.openErrMsg.format([src.replace(/%20/g,' '),'(unknown)']));
			} else {
				if (!quiet) displayMessage(this.readMsg.format([txt.length,src.replace(/%20/g,' ')]));
				if (version.major+version.minor*.1+version.revision*.01!=2.52)
					txt=convertUTF8ToUnicode(txt);
				if (callback) callback(true,params,txt,src,null);
			}
		} else { // use XMLHttpRequest
			doHttp('GET',src,null,null,config.options.txtRemoteUsername,config.options.txtRemotePassword,callback,params,null);
		}
	},
	readTiddlersFromHTML: function(html) {
		// for TW2.2+
		if (TiddlyWiki.prototype.importTiddlyWiki!=undefined) {
			var remoteStore=new TiddlyWiki();
			remoteStore.importTiddlyWiki(html);
			return remoteStore.getTiddlers('title');	
		}
	},
	readTiddlersFromCSV: function(CSV) {
		var remoteStore=new TiddlyWiki();
		// GET NAMES
		var lines=CSV.replace(/\r/g,'').split('\n');
		var names=lines.shift().replace(/"/g,'').split(',');
		CSV=lines.join('\n');
		// ENCODE commas and newlines within quoted values
		var comma='!~comma~!'; var commaRE=new RegExp(comma,'g');
		var newline='!~newline~!'; var newlineRE=new RegExp(newline,'g');
		CSV=CSV.replace(/"([^"]*?)"/g,
			function(x){ return x.replace(/\,/g,comma).replace(/\n/g,newline); });
		// PARSE lines
		var lines=CSV.split('\n');
		for (var i=0; i<lines.length; i++) { if (!lines[i].length) continue;
			var values=lines[i].split(',');
			// DECODE commas, newlines, and doubled-quotes, and remove enclosing quotes (if any)
			for (var v=0; v<values.length; v++)
				values[v]=values[v].replace(commaRE,',').replace(newlineRE,'\n')
					.replace(/^"|"$/g,'').replace(/""/g,'"');
			// EXTRACT tiddler values
			var title=''; var text=''; var tags=[]; var fields={};
			var created=null; var when=new Date(); var who=config.options.txtUserName;
			for (var v=0; v<values.length; v++) { var val=values[v];
				if (names[v]) switch(names[v].toLowerCase()) {
					case 'title':	title=val.replace(/\[\]\|/g,'_'); break;
					case 'created': created=new Date(val); break;
					case 'modified':when=new Date(val); break;
					case 'modifier':who=val; break;
					case 'text':	text=val; break;
					case 'tags':	tags=val.readBracketedList(); break;
					default:	fields[names[v].toLowerCase()]=val; break;
				}
			}
			// CREATE tiddler in temporary store
			if (title.length)
				remoteStore.saveTiddler(title,title,text,who,when,tags,fields,true,created||when);
		}
		return remoteStore.getTiddlers('title');	
	},
	createTiddlerFromFile: function(src,txt) {
		var t=new Tiddler();
		var pos=src.lastIndexOf("/"); if (pos==-1) pos=src.lastIndexOf("\\");
		t.title=pos==-1?src:src.substr(pos+1);
		t.text=txt; 
		t.created=t.modified=new Date();
		t.modifier=config.options.txtUserName;
		if (src.substr(src.length-3,3)=='.js') t.tags=['systemConfig'];
		return [t];
	},
	doImport: function(status,params,html,src,xhr) {
		var cml=config.macros.loadTiddlers; // abbrev
		src=src.split('?')[0]; // strip off "?nocache=..."
		if (!status) {
			displayMessage(cml.openErrMsg.format([src.replace(/%20/g,' '),xhr.status]));
			return false;
		}
		var quiet=params.quiet;
		var ask=params.ask;
		var filter=params.filter;
		var force=params.force;
		var init=params.init;
		var nodirty=params.nodirty;
		var norefresh=params.norefresh;
		var noreport=params.noreport;
		var autosave=params.autosave;
		var tiddlers = cml.readTiddlersFromHTML(html);
		if (!tiddlers||!tiddlers.length) tiddlers=cml.readTiddlersFromCSV(html);
		if (!tiddlers||!tiddlers.length) tiddlers=cml.createTiddlerFromFile(src,html);
		var count=tiddlers?tiddlers.length:0;
		if (!quiet) displayMessage(cml.foundMsg.format([count,src.replace(/%20/g,' ')]));
		var wasDirty=store.isDirty();
		store.suspendNotifications();
		var count=0;
		if (tiddlers) for (var t=0;t<tiddlers.length;t++) {
			var inbound = tiddlers[t];
			var theExisting = store.getTiddler(inbound.title);
			if (inbound.title==cml.reportTitle)
				continue; // skip 'ImportedTiddlers' history from the other document…
			if (theExisting && theExisting.tags.contains(cml.lockedTag)) {
				if (!quiet) displayMessage(cml.lockedMsg.format([theExisting.title,cml.lockedTag]));
				continue; // skip existing tiddler if tagged with 'noReload'
			}
			// apply the all/new/changes/updates filter (if any)
			if (filter && filter!='all') {
				if ((filter=='new') && theExisting) // skip existing tiddlers
					continue;
				if ((filter=='changes') && !theExisting) // skip new tiddlers
					continue;
				if ((filter.substr(0,4)=='tag:') && inbound.tags.indexOf(filter.substr(4))==-1) // must match specific tag value
					continue;
				if ((filter.substr(0,8)=='tiddler:') && inbound.title!=filter.substr(8)) // must match specific tiddler name
					continue;
				if (!force && store.tiddlerExists(inbound.title) && ((theExisting.modified.getTime()-inbound.modified.getTime())>=0)) {
					var msg=cml.nochangeMsg;
					if (!quiet&&msg.length) displayMessage(msg.format([inbound.title]));
					continue;
				}
			}
			// get confirmation if required
			var msg=(theExisting?'Update':'Add')+" tiddler '"+inbound.title+"'\n"
				+'from '+src.replace(/%20/g,' ')+'\n\nOK to proceed?';
			if (ask && !confirm(msg))
				{ tiddlers[t].status=cml.skippedMsg; continue; }
			// DO IT!
			var tags=new Array().concat(inbound.tags,cml.newTags);
	                store.saveTiddler(inbound.title, inbound.title, inbound.text, inbound.modifier,
				inbound.modified, tags, inbound.fields, true, inbound.created);
			// force creation date to imported value - needed for TW2.1.3 or earlier
	                store.fetchTiddler(inbound.title).created = inbound.created;
			tiddlers[t].status=theExisting?'updated':'added'
			if (init && tags.contains('systemConfig') && !tags.contains('systemConfigDisable')) {
				var ok=true;
				if (ask||!quiet) ok=confirm(cml.warning.format([inbound.title]))
				if (ok) { // run the plugin
					try { window.eval(inbound.text); tiddlers[t].status+=' (plugin initialized)'; }
					catch(ex) { displayMessage(config.messages.pluginError.format([exceptionText(ex)])); }
				}
			}
			count++;
		}
		store.resumeNotifications();
		if (count) {
			// set/clear 'unsaved changes' flag, refresh page display, and generate a report
			store.setDirty(wasDirty||!nodirty);
			if (!norefresh) {
				story.forEachTiddler(function(t,e){
					if(!story.isDirty(t))story.refreshTiddler(t,null,true)
				});
				store.notifyAll();
			}
			if (!noreport) cml.report(src,tiddlers,count,quiet);
		}
		if (!quiet||count) // force msg if tiddlers were loaded
			displayMessage(cml.loadedMsg.format([count,tiddlers.length,src.replace(/%20/g,' ')]));
		if (count && autosave && (!ask||confirm(cml.autosaveMsg))) saveChanges();
	},
	showReport: true,
	report: function(src,tiddlers,count,quiet) {
		var cml=config.macros.loadTiddlers; // abbrev
		// format the new report content
		var newText = 'On '+(new Date()).toLocaleString()+', ';
		newText += config.options.txtUserName+' loaded '+count+' tiddlers ';
		newText += 'from\n[['+src+'|'+src+']]:\n';
		newText += '<<<\n';
		for (var t=0; t<tiddlers.length; t++)
			if (tiddlers[t].status)
				newText += '#[['+tiddlers[t].title+']] - '+tiddlers[t].status+'\n';
		newText += '<<<\n';
		var title=cml.reportTitle;
		var currText='';
		var t=store.getTiddler(title);
		if (t) currText=(t.text.length?'\n----\n':'')+t.text;
		store.saveTiddler(title, title, newText+currText,
			config.options.txtUserName, new Date(),	t?t.tags:null, t?t.fields:null);
		if (!quiet) {
			if (config.options.chkLoadTiddlersShowReport)
				story.displayTiddler(null,title);
			story.refreshTiddler(title,null,true);
		}
	}
}
//}}}
/***
|Name|LoadTiddlersPluginPatch|
|Source|http://www.TiddlyTools.com/#LoadTiddlersPluginPatch|
|Version|3.5.0|
|Author|[[EricShulman]] - 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|LoadTiddlersPlugin|
|Overrides||
|Description|backward-compatible function patches for use with LoadTiddlersPlugin and TW2.1.x or earlier|

!!!!!Usage
<<<
The current version LoadTiddlersPlugin is compatible with the TW2.2.x core functions.
This "patch" plugin provides additional functions needed to enable the current version of LoadTiddlersPlugin to operate correctly under TW2.1.x or earlier.

{{medium{You do not need to install this plugin if you are using TW2.2.0 or above}}}
(though it won't hurt anything if you do… it will just take up more space).
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''LoadTiddlersPlugin'' //(main plugin body)//
''LoadTiddlersPluginPatch2.1.x'' //(patches for TW2.1.x or earlier)//
(both tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
''2008.01.03 [3.5.0]'' added support for passing txtRemoteUsername and txtRemotePassword for accessing password-protected remote servers
''2007.06.27 [3.4.8]'' compatibility functions split from LoadTiddlersPlugin
|please see [[LoadTiddlersPlugin]] for additional revision details|
''2005.07.20 [1.0.0]'' Initial Release
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]
<<<
!!!!!Code
***/
//{{{
// these functions are only defined when installed in TW2.1.x and earlier… 
if (version.major+version.minor/10 <= 2.1) {

// Version
version.extensions.LoadTiddlersPatch21x = {major: 3, minor: 5, revision: 0, date: new Date(2008,1,3)};

config.macros.loadTiddlers.loadFile = function(src,callback,params) {
	var quiet=params.quiet;
	if (src==undefined || !src.length) return null; // filename is required
	if (!quiet) clearMessage();
	if (!quiet) displayMessage(this.openMsg.format([src]));
	if (src.substr(0,5)!="http:" && src.substr(0,5)!="file:") { // if src is relative (i.e., not a URL)
		if (!this.fileExists(src)) { // if file cannot be found, might be relative path.. try fixup
			var pathPrefix=document.location.href;  // get current document path and trim off filename
			var slashpos=pathPrefix.lastIndexOf("/"); if (slashpos==-1) slashpos=pathPrefix.lastIndexOf("\\"); 
			if (slashpos!=-1 && slashpos!=pathPrefix.length-1) pathPrefix=pathPrefix.substr(0,slashpos+1);
			src=pathPrefix+src;
			if (pathPrefix.substr(0,5)!="http:") src=getLocalPath(src);
		}
	}
	if (src.substr(0,4)!="http" && src.substr(0,4)!="file") { // if not a URL, read from local filesystem
		var txt=loadFile(src);
		if ((txt==null)||(txt==false)) // file didn't load
			{ if (!quiet) displayMessage(this.openErrMsg.format([src,"(unknown)"])); }
		else {
			if (!quiet) displayMessage(this.readMsg.format([txt.length,src]));
			if (callback) callback(true,params,convertUTF8ToUnicode(txt),src,null);
		}
	}
	else {
		var x; // get an request object
		try {x = new XMLHttpRequest()} // moz
		catch(e) {
			try {x = new ActiveXObject("Msxml2.XMLHTTP")} // IE 6
			catch (e) {
				try {x = new ActiveXObject("Microsoft.XMLHTTP")} // IE 5
				catch (e) { return }
			}
		}
		// setup callback function to handle server response(s)
		x.onreadystatechange = function() {
			if (x.readyState == 4) {
				if (x.status==0 || x.status == 200) {
					if (!quiet) displayMessage(config.macros.loadTiddlers.readMsg.format([x.responseText.length,src]));
					if (callback) callback(true,params,x.responseText,src,x);
				}
				else {
					if (!quiet) displayMessage(config.macros.loadTiddlers.openErrMsg.format([src,x.status]));
				}
			}
		}
		// get privileges to read another document's DOM via http:// or file:// (moz-only)
		if (typeof(netscape)!="undefined") {
			try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); }
			catch (e) { if (!quiet) displayMessage(e.description?e.description:e.toString()); }
		}
		// send the HTTP request
		try {
			var url=src+(src.indexOf('?')<0?'?':'&')+'nocache='+Math.random();
			x.open("GET",src,true,config.options.txtRemoteUsername,config.options.txtRemotePassword);
			if (x.overrideMimeType) x.overrideMimeType('text/html');
			x.send(null);
		}
		catch (e) {
			if (!quiet) {
				displayMessage(this.openErrMsg.format([src,"(unknown)"]));
				displayMessage(e.description?e.description:e.toString());
			}
		}
	}
}

config.macros.loadTiddlers.readTiddlersFromHTML=function(html) {
	// for TW2.1 and earlier
	// extract store area from html 
	var start=html.indexOf('<div id="storeArea">');
	var end=html.indexOf("<!--POST-BODY-START--"+">",start);
	if (end==-1) var end=html.indexOf("</body"+">",start); // backward-compatibility for older documents
	var sa="<html><body>"+html.substring(start,end)+"</body></html>";

	// load html into iframe document
	var f=document.getElementById("loaderFrame"); if (f) document.body.removeChild(f);
	f=document.createElement("iframe"); f.id="loaderFrame";
	f.style.width="0px"; f.style.height="0px"; f.style.border="0px";
	document.body.appendChild(f);
	var d=f.document;
	if (f.contentDocument) d=f.contentDocument; // For NS6
	else if (f.contentWindow) d=f.contentWindow.document; // For IE5.5 and IE6
	d.open(); d.writeln(sa); d.close();

	// read tiddler DIVs from storeArea DOM element	
	var sa = d.getElementById("storeArea");
	if (!sa) return null;
	sa.normalize();
	var nodes = sa.childNodes;
	if (!nodes || !nodes.length) return null;
	var tiddlers = [];
	for(var t = 0; t < nodes.length; t++) {
		var title = null;
		if(nodes[t].getAttribute)
			title = nodes[t].getAttribute("tiddler");
		if(!title && nodes[t].id && (nodes[t].id.substr(0,5) == "store"))
			title = nodes[t].id.substr(5);
		if(title && title != "")
			tiddlers.push((new Tiddler()).loadFromDiv(nodes[t],title));
	}
	return tiddlers;
}

// // COPIED FROM TW2.2beta5
// // enables reading tiddler definitions using TW2.2 storeArea format, even when plugin is running under TW2.1.x
// // storeArea format changes include:
// // <pre> nodes
// // attribute(tiddler) renamed to attribute(title)
// // attribute(modified) is omitted if created==modified
TW21Loader.prototype.internalizeTiddler = function(store,tiddler,title,node)
{
	var e = node.firstChild;
	var text = null;
	if(node.getAttribute("tiddler")) {
		text = getNodeText(e).unescapeLineBreaks();
	} else {
		while(e.nodeName!="PRE" && e.nodeName!="pre") {
			e = e.nextSibling;
		}
		text = e.innerHTML.replace(/\r/mg,"").htmlDecode();
	}
	var modifier = node.getAttribute("modifier");
	var c = node.getAttribute("created");
	var m = node.getAttribute("modified");
	var created = c ? Date.convertFromYYYYMMDDHHMM(c) : version.date;
	var modified = m ? Date.convertFromYYYYMMDDHHMM(m) : created;
	var tags = node.getAttribute("tags");
	var fields = {};
	var attrs = node.attributes;
	for(var i = attrs.length-1; i >= 0; i--) {
		var name = attrs[i].name;
		if (attrs[i].specified && !TiddlyWiki.isStandardField(name)) {
			fields[name] = attrs[i].value.unescapeLineBreaks();
		}
	}
	tiddler.assign(title,text,modifier,modified,tags,created,fields);
	return tiddler;
};

} // END OF TW2.1.x backward-compatibility functions
//}}}
//synonym:// ''LIMO''
<data>{"abstract":"Wenn man in einer verbalen Auseinandersetzung die Regeln asiatischer Kampfkunst beherrscht, kann das nicht schaden. Mit [[LIMO|Loben, Interesse, Mängel, Offenheit]] nimmt man den Schwung des Angriffs auf und setzt ihn in eigene Energie um."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.packagingeurope.com/images/news/050907_115449_voeslaueredittralalatest.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Loben, Interesse, Mängel, Offenheit","abstract") </script>

!Loben, Interesse, Mängel, Offenheit
<script> return "<<tiddler [[Loben, Interesse, Mängel, Offenheit##Overview]]>>" </script> 
Wenn man in einer verbalen Auseinandersetzung hart angegangen wird, kann es mitunter helfen, sich an den asiatischen Kampfsportarten zu orientieren. 
Die [[LIMO-Technik|Loben, Interesse, Mängel, Offenheit]] soll genau dies nachempfinden: Den Schwung des Angriffs aufnehmen und in eigene Energie umwandeln

!Objectives
* Rhetorik
* Schlagfertigkeit

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Die [[LIMO-Technik|Loben, Interesse, Mängel, Offenheit]] nimmt den Schwung des Angriffs auf und wandedlt ihn in eigene Energie um.
{{indent{/%
%/
{{big{''L''}}}  ''&nbsp;&nbsp; oben'': [[Loben|Lob und Anerkennung]] Sie den ~Verbal-Angreifer formal, d.h. Sie geben ihm nicht inhaltlich recht, erkennen aber seine Äußerung an: //"Gut, dass Sie mich darauf ansprechen."// oder //" Ich schätze Ihre Direktheit."//

{{big{''I''}}}  ''&nbsp;&nbsp; nteresse'' am Thema zeigen: Dadurch, dass man Interesse signalisiert, anstatt sofort zu kontern, führt man das Gespräch zum Thema zurück: //"Das ist ein interessanter Ansatz." - "Darüber sollte man noch mehr wissen."//

{{big{''M''}}}  ''&nbsp;&nbsp; ängel'' offen zugeben: Damit nimmt man in der Regel die Schärfe aus der Diskussion. //"Das ist sicher noch nicht ideal." oder "Sie haben da einen heiklen Punkt angesprochen."//

{{big{''O''}}}  ''&nbsp;&nbsp; ffenheit'': Indem Sie Gesprächsbereitschaft signaliseren, lenken Sie die drohende Konfrontation in Richtung sachlicher Auseinandersetzung: //"Darüber sollten wir mal ausführlicher diskutieren." - "Dazu hätte nicht noch einige Fragen."// }}}

!Debriefing

!Quelle
[[Norbert Kasper: Kreativ umdenken, Fit for Business, 2002, S. 77/78| http://www.amazon.de/gp/product/3802946073?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3802946073]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=LIMO+%28jt%29&db=3]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.gearlog.com/images/WiFiDowsingRod.jpg>>
<<showtoc>>
!Overview
[[Locate strengths|Locate Strength]] to balance sprints, projects, releases that haven't gone well. Participants interview each other to find the highlights of the period of time in question.

!Locate Strength
<<tiddler [[Locate Strength##Overview]]>>

!Objectives
* Gather Data in a [[retrospective|Agile Retrospectives]]
* Locate strengths to balance sprints, projects, releases that haven't gone well.

!Timing
20 min

!Audience
Group

!Materials
* index cards / sticky notes

!Procedure
# Form pairs for the interviews. In case of an odd participants number form one trio or the [[facilitator|Facilitator]] comes in place. For pairing use [[Gruppenpuzzle]] or [[Hör gut hin!]].
# Handout the interview questions
# Define a [[time box|TimeBoxing]] for the interviewing
# "Ring a bell" after half the time box is done: "Switch roles in interview now"
# Use the interview results for the next steps.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* 
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.animalclipart.net/_small/0511-0811-0712-5314.jpg>>
<<showtoc>>
!Overview
[[Location, Location, Location]] is an interactive game illustrating the importance of collaboration and co-location.

!Location, Location, Location
<<tiddler [[Location, Location, Location##Overview]]>>

!Objectives
* Co-location promotes better communication and collaboration creating better products and more cohesive solutions.

!Timing
20 min

!Materials
* Index cards, about ten per team
* Pens

!Audience
Group

!Procedure
Create teams of story writers of 4 or more. Half the teams sit together, the other half must sit at different tables.
The goal is to write a coherent story with six paragraphs that begin with….
* //It was a bright and sunny day in ? ….//
* //Finally, John was able to subdue the ? ….//
* //The crash left them disoriented and their apples were strewn across the ? ….//
* //Somehow the bunny was now on top of the ? ….//
* //Alice had been frightened by the barking but found the path back to ? ….//
* //The clowns returned and everyone was relieved to see Harry waiting with the bucket of chicken. …//
The team has 8 minutes to write their story and then present to the room.

!Debriefing
Co-location promotes better communication and collaboration creating better products and more cohesive solutions.

!Credits
Michael ~McCullough
/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/location-location-location/
//synonym// ~Loci-Methode (Technik der Orte)
<data>{"abstract":"[[Lokalisationsmethode]], diese Methode gründet darauf, dass im Gedächtnis Orte und die Reihenfolge von Orten (z.B. der Weg zur Schule, die Wege im eigenen Haus) besonders gut verankert sind. Wichtige zu lernende Begriffe werden mit den Orten bzw. mit dem Weg verknüpft."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://eco.psy.ruhr-uni-bochum.de/download/Guski-Lehrbuch/Abbildungen/Stevens%2BNewman_Lokalisation.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Lokalisationsmethode","abstract") </script>

!Lokalisationsmethode
<script> return "<<tiddler [[Lokalisationsmethode##Overview]]>>" </script> 

!Objectives
* Gedächnisübung

!Timing

!Audience
Group / Individual


!Materials
* 

!Procedure
Es werden bildhafte Verbindungen zwischen Orten und den zu lernenden Begriffen hergestellt. Geht man gedanklich den Weg entlang, dienen die Orte als Erinnerungshilfe für die damit verbundenen Lerninhalte.
# Zuerst wird ein bekannter Weg ausgesucht. Routenpunkte werden festgelegt und visualisiert.
# Die Begriffe werden dem Ort zugeordnet.
# In der festgelegten Reihenfolge können die Orte wieder abgegangen werden, um die abgestellten Begriffe wieder aufzunehmen.

Mit der ~Loci-Methode können auch Zahlen gemerkt werden. Die Orte stehen dann für Zahlen. Dies kann jeder selbst festlegen, sollte aber zukünftig für alle Zahlenreihen gelten.
Z.B.: O=Diele. 1=Bad, 2=Schlafzimmer, 3=Küche, 4=Wohnzimmer, usw.
In eine Geschichte verpackt könnte die ~Pin-Nr.1043 dann lauten: Ich gehe ins Bad.  Dann durchquere ich die Diele, um ins Wohnzimmer und dann in die Küche zu gelangen.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Gedaechnistraining]<<tiddlerList tags:"mnemonic,-newTemplate" header:"Übungen Gedaechnistraining">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://comas.offeneslernen.de/lerno/MPX_content.php?PHPSESSID=&content_id=1115
* http://de.wikipedia.org/wiki/Mnemotechnik#Loci-Methode
* http://www.allesgelingt.de/lernen/merktechniken/locimethode/locimethode.php
/***
|Name|LooseLinksPlugin|
|Source|http://www.TiddlyTools.com/#LooseLinksPlugin|
|Documentation|http://www.TiddlyTools.com/#LooseLinksPlugin|
|Version|1.1.2|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|createTiddlyLink|
|Description|case-folded/space-folded wiki words|
!!!!!Documentation
<<<
This plugin extends the TiddlyWiki core handling for tiddler links to permit use of non-WikiWord variations of mixed-case and/or added/omitted spaces within double-bracketed text with titles of //existing// tiddlers, using a 'loose' (case-folded/space-folded) comparison.  This allows text that occurs in normal prose to be more easily linked to tiddler titles by using double-brackets without the full 'pretty link' syntax.  For example:
{{{
[[CoreTweaks]], [[coreTweaks]], [[core tweaks]],
[[CORE TWEAKS]], [[CoRe TwEaKs]], [[coreTWEAKS]]
}}}
>[[CoreTweaks]], [[coreTweaks]], [[core tweaks]],
>[[CORE TWEAKS]], [[CoRe TwEaKs]], [[coreTWEAKS]]
<<<
!!!!!Configuration
<<<
<<option chkLooseLinks>> Allow case-folded and/or space-folded text to link to existing tiddler titles
"""<<option chkLooseLinks>>"""
<<<
!!!!!Revisions
<<<
2009.08.14 [1.1.2] corrected call to addNotification()
2009.08.14 [1.1.1] code cleanup
2009.08.02 [1.1.0] big performance rewrite: use cached LooseLinksMap[] instead of scanning each time
2009.01.06 [1.0.0] converted to stand-alone plugin
2008.10.14 [0.0.0] initial release (as [[CoreTweaks]] #664 - http://trac.tiddlywiki.org/ticket/664)
<<<
!!!!!Code
***/
//{{{
version.extensions.LooseLinksPlugin={major:1, minor:1, revision:2, date: new Date(2009,8,15)};

if (!config.options.chkLooseLinks)
	config.options.chkLooseLinks=false; // default to standard

if (window.caseFold_createTiddlyLink===undefined) { // only once
	window.caseFold_createTiddlyLink = window.createTiddlyLink;
	window.createTiddlyLink = function(place,title,includeText,className) {
		var btn=window.caseFold_createTiddlyLink.apply(this,arguments); // create core link
		if (!config.options.chkLooseLinks) return btn;
		if (store.getTiddlerText(title)) return btn; // matching tiddler (or shadow) exists
		var tid=window.getLooseLinksMap()[title.toLowerCase().replace(/\s/g,'')];
		if (tid) {
			var i=getTiddlyLinkInfo(tid,className);
			btn.setAttribute('tiddlyLink',tid);
			btn.title=i.subTitle;
			btn.className=i.classes;
		}
		return btn;
	}
}
window.getLooseLinksMap=function(title) {
	if (!config.options.chkLooseLinks) return {}; // disable
	if (!config.looseLinksMap) { // init/cache on demand
		config.looseLinksMap={};
		store.forEachTiddler(function(title,tiddler){
			config.looseLinksMap[title.toLowerCase().replace(/\s/g,'')]=title;
		});
	}
	if (title) config.looseLinksMap[title.toLowerCase().replace(/\s/g,'')]=title; // update
	return config.looseLinksMap;
}
store.addNotification(null,window.getLooseLinksMap); // notify
//}}}
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://thebestpictureproject.files.wordpress.com/2011/01/lostintranslation4.jpg>>
<<showtoc>>
!Overview
One person is the [[facilitator|Facilitator]]. The facilitator keeps time, makes sure the rules are being followed, and facilitates the retrospectives.
The rest of the people are broken up into teams of three; a [[product owner|Product Owner]], an analyst, and a developer. The product owner is provided a picture chosen at random from a collection.
The product owner is not allowed to show the picture to anyone else.
The team needs to create a hand-drawn depiction of the picture.

!Lost in Translation
<<tiddler [[Lost in Translation##Overview]]>>

!Objectives
* Working face to face is easier and more rewarding
* Working together in real time produces a better product
* Documentation is less valuable than communication
* Roles are not so important when it comes to getting the work done

!Timing
One hour, but this can be extended or contracted as needed.

!Materials
* Pencils, 
* paper, 
* timer, 
* collection of pictures (royalty free).

!Audience
Group

!Procedure
<<tiddler [[Lost in Translation##Overview]]>>

!!Round One
!!!Requirements (10 minutes)
* The developer leaves the room.
* The product owner describes the picture to the analyst.
* The analyst captures the requirements.
* The analyst may ask as many questions as needed in the time allowed.

!!!Delivery (10 minutes)
* The developer returns and the product owner leaves.
* The product owner needs to remain nearby for questions, but not in the room
* The analyst provides the written specification to the developer.
* The analyst may provide answers to any of the developer's questions.
* The analyst may ask the product owner as many questions as necessary, but must leave the room to do so.
* The developer draws the picture.

!!!Retrospective
(10min)
* What went well? What did not go well? What would have made it better?

!!Round Two
The product owner is provided another random picture.

!!!Retrospective
(15 minutes)
* Everyone stays in the room.
* The analyst and developer work together to create the picture.
* The analyst and developer may ask the product owner as many questions as necessary.

!Debriefing
(15 minutes)
* How does round one compare with round two?

!Credits
Michael Norton?

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Lost in Translation| http://agile.dzone.com/news/lost-translation-agile-game]]
<data>{"abstract":"[[Lotsenübung]], eine Übung, die besondere [[Kommunikations-|Kommunikation]] und [[Teamfähigkeit|Teamentwicklung / Teambuilding]] erfordert - und auch einigen Aufwand und Zeit."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.neitzel.de/werner/lotse.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Lotsenübung","abstract") </script>

!Lotsenübung
<script> return "<<tiddler [[Lotsenübung##Overview]]>>" </script> 
Eine Übung für das [[Outdoor-Training|Übungen zum Thema Outdoor]]. 

!Objectives
* Teambuilding

!Timing

!Audience
Group / Individual


!Materials
* 

!Procedure
Zwei Teams, z.B. Außen- und Innendienstler, werden an verschiedenen Orten ausgesetzt und müssen versuchen, einen vorgeschriebenen Weg zu finden. Beide [[Teams|Team]] sind mit Funktelefonen ausgerüstet, über die sie miteinander kommunizieren können. 

Der Clou dabei: Die Pläne mit der Wegbeschreibung werden vertauscht, so dass sich die Gruppen gegenseitig lotsen müssen. Da dürfte manche Verhaltensweise gefragt sein, die auch in der Zusammenarbeit zwischen [[Teams|Team]] im Unternehmen von Bedeutung ist.

!Debriefing

!Quelle
Bernhard Kuntz: Lernfeld Natur, managerSeminare, 6/1999, S.91

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Outdoor]<<tiddlerList tags:"outdoor,-newTemplate" header:"Übungen Outdoor">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Lotsen%FCbung+%28jt%29]]
<data>{"abstract":"[[Lösungs-Zwiebel]], mit dieser Übung bringen Sie die Teilnehmer eines Workshops miteinander ins Gespräch und schaffen eine heitere Atmosphäre."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.haushaltstipps.net/tipps/wp-content/uploads/2009/01/auge-zwiebel.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Lösungs-Zwiebel","abstract") </script>

!~Lösungs-Zwiebel
<script> return "<<tiddler [[xxxx##Overview]]>>" </script>

!Setting
* Wie viele Teilnehmende Sie mit dieser Übung erreichen, hängt davon ab, wie Sie sich Gehör verschaffen können. Verfügen Sie über ein Mikrofon, können Sie ohne Weiteres Hunderte Menschen gleichzeitig ins Gespräch bringen.
* Je nach Größe der Gruppe benötigen Sie zehn bis 20 Minuten für diese Aufwärmübung.
* Es reicht ein freier Raum, in dem die Teilnehmenden in einem großen Kreis stehen können. Bei sehr großen Gruppen brauchen Sie eine ~Mikrofon-Anlage.

!Kontext und Zielsetzung
Geeignet ist die Übung überall da, wo Menschen ankommen und sich kennenlernen sollen. In neuen Gruppen können die Teilnehmer nicht unbegrenzt viele neue Menschen kennenlernen. Es gelingt ihnen aber gut, mit einer Handvoll Menschen in kleine Gespräche zu kommen. Das schafft das bewährte und klassische ~Zwiebel-Modell. 

!Objectives
* Gespräche zw. Seminarteilnehmern fördern
* Aufwärmen
* Kennenlernen

!Timing
20 min.

!Audience
Group


!Materials
* ggfs. ~Mikrofon-Anlage.

!Procedure
In einem Außen- und einem Innenkreis stehen sich je zwei Teilnehmer gegenüber. 
Auf ein Startzeichen hin tauschen sich die gegenüberstehenden Personen für einige Minuten über ein Thema aus. Danach rückt der Außenkreis eine Person weiter…


!Debriefing


!Quelle
[[Peter Röhrig: Solution Tools. Die 60 besten sofort einsetzbaren Workshop-Interventionen mit dem Solution-Focus, Managerseminare Verlag, 2008| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FSolution-Tools-einsetzbaren-Workshop-Interventionen-Solution-Focus%2Fdp%2F3936075735%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1219099547%26sr%3D8-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* http://www.managerseminare.de/dod?uD=164023&mecL=UmFuZG9tSVYCDVSnCQfnlMjFEnZxkmpm
<data>{"abstract":"[[M.O.S.E.-Brainstorming]]: Sie suchen Einfälle und [[Ideen|Ideenmanagement]] zu einem bestimmten Thema. Diese kleine Strukturierungshilfe sorgt für eine rasch erstellte Sammlung."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://firstumcmarengo.org/images/uploads/Moses-Parts-the-Red-Sea2.jpg>> /% 
http://images.jupiterimages.com/common/detail/08/28/23462808.jpg>> %/
<<showtoc>>
!Overview
<script> return DataTiddler.getData("M.O.S.E.-Brainstorming","abstract") </script>

!M.O.S.E.-Brainstorming
<script> return "<<tiddler [[M.O.S.E.-Brainstorming##Overview]]>>" </script> 
Eine etwas methodischere Vorgehensweise des [[Brainstormings]].
Sie suchen Einfälle und [[Ideen|Ideenmanagement]] zu einem bestimmten Thema. 

!Objectives
* Kreative Lösungsfindung

!Timing
10min

!Audience
Group / Individual

!Materials
* Moderationskarten

!Procedure
Dazu fertigen Sie eine kleine Tabelle an mit den Spalten 

|{{big{''M''}}} &nbsp; ensch &nbsp;&nbsp; |{{big{''O''}}}  &nbsp; rt &nbsp;&nbsp; |{{big{''S''}}} &nbsp; ache &nbsp;&nbsp; |{{big{''E''}}} &nbsp; reignis &nbsp;&nbsp; |
| … | … | … | … |
| … | … | … | … |
| … | … | … | … |

Nun nehmen Sie sich für jede Spalte eine Minute Zeit und notieren sich jeweils alle Einfälle, die Ihnen unter den genannten Schlagworten zu Ihrem Thema einfallen.

//Auswahl:// Anschließend wählen Sie in jeder Spalte jeweils drei gute Einfälle aus und notieren diese auf Moderationskarten.

//Weiterspinnen:// Nun können Sie diese Karten entweder nutzen, um daraus freie Fäden zu spinnen. Sie können sie aber auch clustern und mit Überschriften versehen. Oder Sie wählen ein vorgegebenes Ordnungsschema. Dies könnte sich aus dem Thema und seinen Aspekten ableiten oder an Chronologien und Abläufen orientieren (z.B. Gestern - Heute - Morgen).

!Debriefing

!Quelle
[[Funcke /Rachow: Rezeptbuch für lebendiges Lernen, managerSeminare, S.51/52| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FRezeptbuch-f%25C3%25BCr-lebendiges-Training-inszenieren%2Fdp%2F3936075646%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214450334%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=M.O.S.E.-Brainstorming+%28jt%29]]
<data>{"abstract":"Welchen [[Einfluss unsere Formulierungen|Macht der Sprache]] auf die Wirkung des Gesagten haben, macht ein kleines Experiment deutlich, das in Seminaren zum Thema [[Rhetorik]] oder [[Verhandeln|Negotiation]] zum Einsatz kommen kann."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.fm5.at/images/upload/show/654.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Macht der Sprache","abstract") </script>

!Macht der Sprache
<script> return "<<tiddler [[Macht der Sprache##Overview]]>>" </script>

!Objectives
* Einfluss von Formulierungen

!Timing
20min

!Audience
Group


!Materials
* 2 vorbereitet Texte

!Procedure
# Dazu werden zwei Gruppen gebildet. For pairing use [[Gruppenpuzzle]] or [[Hör gut hin!]].
# Diese erhalten jeweils eine Anleitung, die sie getrennt bearbeiten. 
# Gruppe A erhält einen Text, in dem sie als Inhaber eines ~Import-Export-Unternehmens erfahren haben, dass eines ihrer Schiffe gesunken ist. Die Ladung, nämlich drei Container, deren Inhalt jeweils eine Million Dollar Wert ist, kann möglicher Weise gerettet werden. <br>Allerdings gibt es nur zwei Möglichkeiten: Mit Plan A wird auf jeden Fall ein Container gerettet, bei Plan B besteht die Möglichkeit, alle drei zu retten, aber die Wahrscheinlichkeit, alle zu verlieren ist ziemlich hoch (66%).
# Bei Gruppe B lautet die Anleitung identisch, allerdings unterscheidet sich die Formulierung bei den Plänen. Plan A bedeutet, zwei Container müssen verloren gegeben werden, Plan B bedeutet, dass eine geringe Wahrscheinlichkeit besteht, alle zu retten (33%).

!Debriefing
Die Gruppen diskutieren nun, für welchen Plan sie sich entscheiden. In der Regel entscheidet sich die erste Gruppe für Plan A, weil hier die Situation aus der Perspektive "sicherer Gewinn" betrachtet wird. Die zweite Gruppe dagegen geht von der Perspektive "drohender Verlust" aus und entscheidet häufig für Plan B.

!Quelle
[[Thomas Wilhelm / Andreas Edmüller: Überzeugen. Die besten Strategien, Haufe, 2003, S.151-153| http://www.amazon.de/gp/product/3448052183?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3448052183].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Macht+der+Sprache+%28jt%29&db=3]]
+++[Games...|show Games by application category] /%
%/ <<forEachTiddler      where 'tiddler.tags.contains("games")'         write  ' "\n[["+tiddler.title.substr(10,tiddler.title.length)+"|"+tiddler.title+"]]" '  >> 
===
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.timesharevacationpackages.com/images/Liki-Tiki.jpg>>
<<showtoc>>
!Overview
This is a game to understand some of the mechanics of [[Kanban]] such as balancing the work-in-progress, resource allocation, and waste management. Each team has to create its own [[Kanban board|Kanban Board]] as they see fit and improve it as the game develops.

!Making Pamphlets: Kanban Game
<<tiddler [[Making Pamphlets: Kanban Game##Overview]]>>


!Objectives
* understand some of the mechanics of [[Kanban]]: balancing the work-in-progress, resource allocation, and waste management

!Timing
1 hr

!Materials
* Teams: 1 or more of 5 to 6 people
* Color paper: 4 different colors (20 pages or each color per team)
* Glue sticks: 2 per team
* Scissors: 2 pairs per team
* Envelopes: 2 different sizes or colors (20 of each per team)
* Color pencils: 1 set per team
* Masking tape: 1 per team
* Post-its: 3 different colors per team
* Misc stickers (optional)

!Audience
Group

!Procedure
The objective is to create paper pamphlets to promote a vacation resort. Each pamphlet will have some drawn and some pasted artwork in addition to written information. 
Note: each paper and envelope has to pass through the entire production line and each person can do only one thing at a time (e.g. a person cannot be writing on a pamphlet and passing envelopes at the same time). One [[story|User Story]] per pamphlet, meaning it has to be broken into smaller tasks (think [[epic|Epics and Themes]] = pamphlet).

!!Preparation
Each team will have:
* Paper: 3 different colors (you keep the 4th color paper for later)
* 1 glue-stick (you keep the other one for later)
* 1 pair of scissors (you keep the other one for later)
* 1 kind of envelope (you keep the other one for later)
* Color pencils
* Stickers (optional)
* Duct tape

!!Roles and Responsibilities
Explain the roles and responsibilities
# Header: writes company name and campaign name
# Cutter: cuts the artwork (sun, palm tree, flying bird, boat)
# Artist: draws the ocean line, the beach, and pastes the papercuts
# QA guy: verifies all is correct (all pamphlets must be similar)
# Folder/sender: folds pamphlet, puts it in envelope, writes customer name/address and puts on a stack for sending.
# Manager: manages the kanban board
!!Before starting
* Make sure all teams have their material available and roles assigned.
!!Explain the game
* They must create pamphlets, one at a time
* Pamphlet, envelope, and paper cuts must be of different colors
* All pamphlets must look the same
* All envelopes and paper must start at the beginning of the production line
* Nobody can do more than 1 thing at a time. (e.g. either I pass a sheet of paper to the next person or draw the beach but cannot be drawing and passing papers at the same time)
* They must have periodic stand up meetings to improve the process.
!!The game
# Give them 5 minutes to define and create their Kanban board on a wall
# Give them 2 minutes to get set
# Start!
# Each 6 minutes stop them so that each team has its own 2-minute stand-up meeting
# For iteration 3 ask the managers to expedite the creation of 2 pamphlets of different color with different artwork (palm tree, 2 boats and one diamond-shaped kite)
# For iteration 4 change ask managers to use the other kind/color of envelope.
# For iteration 6 change team sizes (merging 2 into one or breaking one team to integrate into other 2. This is even better if the teams end up being of different sizes)
# Let them play for 2 more iterations
!!Post-game discussion


!Debriefing
* Collaboration is key to success
* Some aspects that require changes on WIP are very obvious while others are subtle
* Roles and responsibilities continuously change (titles lose importance)
* Response to variability is highly effective
* Lack of iterations make the work smooth and efficient
* Regular discussions to improve process are key
* It scales because daily stand up duration does not depend on the # of people in the team

!Credits
Masa K Maeda

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2010/04/making-pamphlets-kanban-game/
/*{{{*/
/*
	Malo - CSS Library
	Author:Vladimir Carrer
*/

/* CSS Reset */

/* not needed for TiddlyWiki 
html, body, div, p{
  margin: 0;
  padding: 0;
  border: 0;
  }
*/ 

/* CSS Grid */

/*
For center layout 
Define your default width in %, px or em

.main {  margin:0 auto; width:85%;}

*/

.dp20,
.dp25,
.dp33,
.dp50,
.dp100{float:left; display: inline; *margin-left:-0.04em; } /* IE margin hack */

/* dp = div percet */

.dp20{width:20%;}
.dp25{width:25%;}
.dp33{width:33.33%;}
.dp50{width:50%;}
.dp100{width:100%;}
.clear{ clear:both;}
/*}}}*/
/***
|Name|ManageTiddlersPlugin|
|Description|List tiddlers with specific tag and let you manage the multiple selected tiddlers.|
|Version|1.0.0|
|Date|Nov 23, 2006|
|Source|http://ptw.sourceforge.net/ptwe.html#ManageTiddlers|
|Author|[[BramChen]] (bram.chen (at) gmail (dot) com)|
|License|[[Creative Commons Attribution-ShareAlike 2.5 License]]|
|~CoreVersion|2.1.0|
|Browser|Firefox 1.5+; InternetExplorer 6.0|
!Usage:
{{{
<<manageTiddlers
	[tags:TagName]
	[listOnly:yes|no]
	[sortField:TiddlerField]
	[sortReverse: yes|no]
>>
}}}
!Revision History:
|Version''|Date''|Note''|
|1.0.0|Nov 23, 2006|Initial release|
!Code section:
***/
//{{{
version.extensions.manageTiddlers = {major: 1, minor: 0, revision: 0,
 date: new Date("Nov 23, 2006"),
 name: "manageTiddlers",
 type: "Plugin",
 author: "BramChen",
 source: "http://sourceforge.net/project/showfiles.php?group_id=150646"
};
config.options.txtManageTiddlersTag = "";
config.macros.manageTiddlers = {
	confirmDeleteText: "確�是��刪除此文章:\n\n%0",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Title', field: 'title', tiddlerLink: 'title', title: "標題", type: 'TiddlerLink'},
			{name: 'Author', field: 'modifier', title: '作者', type: 'String'},
//			{name: 'Created', field: 'created', title: '建立日期', type: 'Date', dateFormat: 'YYYY年0MM月0DD日,0hh:0mm'},
			{name: 'Snippet', field: 'text', title: '文章摘�', type: 'Snippet'},
			{name: 'Modified', field: 'modified', title: '修改日期', type: 'Date', dateFormat: 'YYYY年0MM月0DD日,0hh:0mm'},
			{name: 'Tags', field: 'tags', title: "標籤", type: 'Tags'}
			],
		rowClasses: [
			],
		actions: [
			{caption: "執行��項....", name: ''},
			{caption: "檢視文章", name: 'view'},
			{caption: "編輯文章", name: 'edit'},
			{caption: "刪除文章", name: 'delete'},
			{caption: "QuickEdit", name: 'QuickEdit'}
			]}
}
	
config.macros.manageTiddlers.handler = function(place,macroName,params,wikifier,paramString,tiddler){
	var e = createTiddlyElement(place,"div");
	e.setAttribute("refresh","macro");
	e.setAttribute("macroName","manageTiddlers");
	e.setAttribute("params",paramString);
	this.refresh(e,paramString);
}

config.macros.manageTiddlers.refresh = function(place,params){
	removeChildren(place);
	params = params.parseParams("anon",null,true,false,true);
	var tagged = (typeof params[0] == "undefined")?" ":params[0]["tags"];
	var sortField = params[0]["sortField"];
	var sortReverse = params[0]["sortReverse"];
	var tiddlers = (tagged == " ")?store.getNoTaggedTiddlers():store.getTaggedTiddlers(tagged,sortField);
	if (sortReverse == "yes") {
			tiddlers.sort(function(a,b) {return a[sortField] > b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);});
	}
	ListView.create(place,tiddlers,config.macros.manageTiddlers.listViewTemplate,config.macros.manageTiddlers.onSelectCommand);
	if ((params[0]["listOnly"]=="yes"))
		place.getElementsByTagName("select")[0].style.display='none';
}

config.macros.manageTiddlers.onSelectCommand = function(listView,command,rowNames){
	var lists = findRelated(listView,"manageTiddlers","className","parentNode");
	switch(command)
		{
		case "view":
			story.displayTiddlers(null,rowNames);
			break;
		case "edit":
			story.displayTiddlers(null,rowNames,DEFAULT_EDIT_TEMPLATE);
			break;
		case "delete":
			if(rowNames.length > 0 && confirm(config.macros.manageTiddlers.confirmDeleteText.format([rowNames.join(", ")])))
				{
				for(t=0; t<rowNames.length; t++)
					{
					store.removeTiddler(rowNames[t]);
					story.closeTiddler(rowNames[t],true,false);
					}
				}
			break;
		case "quickEdit":
			//Waiting …
			break;
		}
}

// Add columnTypes, "Snipper", of ListView 
ListView.columnTypes.Snippet = {
	createHeader: function(place,columnTemplate,col)
		{
			createTiddlyText(place,columnTemplate.title);
		},
	createItem: function(place,listObject,field,columnTemplate,col,row)
		{
			var v = listObject[field];
			if(v != undefined)
				createTiddlyText(place,v.substr(0,40));
		}
};
// Add a method getNoTaggedTiddlers to "TiddlyWiki"
TiddlyWiki.prototype.getNoTaggedTiddlers = function()
{
	var results = [];
	this.forEachTiddler(function (title,tiddler) {
		if(tiddler.tags.length==0)
			results.push(tiddler);
		});
	results.sort();
	return results;
}
//}}}
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.ehhs.cmich.edu/~dnewby/map5.jpg>>
<<showtoc>>
!Overview
[[Map Flap]] is an excellent exercise to begin a [[Lean|Lean Development]] [[Value Stream mapping|Value Stream Mapping]] initiative. It highlights the need for understanding the [[value stream|Value Stream]] and the often disparate perspectives people bring to this mapping exercise. 

!Map Flap
<<tiddler [[Map Flap##Overview]]>>

!Objectives
* get understanding of [[Value Stream]], [[Value Stream Mapping]], [[Flow]] [[Mura]], [[Muda]]
 
!Timing
40-60min

!Materials
* Pens & paper for all
* Business team, with shared domain responsibility. For example, the HR department or  Sales team. You can have a mixture so long as there is overlap.

!Audience
Group

!Procedure
# Explain some basic workflow/process mapping mechanics and identify the [[Value Stream]].
# Have each person (or groups of two or three depending on size of the audience) map the Value Stream identified above. Give 15-20 minutes to this activity and encourage discussion.
# Once completed, post each [[Value Stream Map|Value Stream Mapping]] on the wall and have all participants compare and contrast their results. There will almost certainly be differences.
# Then discuss the challenges with optimizing the business process to eliminate Waste ([[Muda]]) and improve [[Flow]] ([[Mura]]) when there is not a clear and consistent picture of the business process itself. 
# Look for examples in the different maps provided that would lead to inefficient or potentially harmful improvements that might be attempted.

!Debriefing
* It is not unusual for the people in an operational business unit to have very divergent perspectives of how the operation actually runs. It is particularly pronounced between management and frontline workers.
* A valid and real perspective of the [[Process Map]] is absolutely critical before beginning any discussion about how to improve it.

!Credits
Michael ~McCullough

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
* [[Lean Deployment]]
* [[Lean Managment]]
* [[Lean Production]]
* [[Lean Software Development]]
* [[Lean Software Engineering]]
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/10/map-flap/
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.vermontinternationalfestival.com/homepageslideshow/marketplace.jpg>>
<<showtoc>>
!Overview
In [[market place|Market Place]] we pretend we are a vendor in an open-air market place and decide what wares we have to sell. What are our special skills and talents that pertain to this project? We even get to create a banner to attract people. 

!Market Place
<<tiddler [[Market Place##Overview]]>>
Under the table are things that are true for us, but may not directly relate to the project. The debrief is the same as timeline. Usually a coach will use one or the other (in the training session half of us did marketplace and half did timeline).

!Objectives
* Team Formation 
* Energizing

!Timing
60+ min

!Audience
Group

!Materials
* 

!Procedure


!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.agilitrix.com/wp-content/uploads/2010/05/Marketplace-523x630.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.agilitrix.com/2010/05/constellation-timeline-and-marketplace-for-tuning-teams/
<data>{"abstract":"Die [[Marktleistungs-/ Marktsegmente-Matrix]] dient der Identifikation von Hauptgeschäftsfeldern. Es können aber auch Segmentierungslücken aufgedeckt werden, also Marktsegmente, die mit den gegenwärtigen Produkten nicht oder nur in geringem Umfang bedient werden. Daraus können sich dann Hinweise für Handlungsoptionen ergeben."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.nk.com/media/35263/euromaiskolben72dpi_333x280.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Marktleistungs-/ Marktsegmente-Matrix","abstract") </script>

!Marktleistungs-/ ~Marktsegmente-Matrix
<script> return "<<tiddler [[Marktleistungs-/ Marktsegmente-Matrix##Overview]]>>" </script> 
Die [[Marktleistungs-/ Marktsegmente-Matrix]] dient der Identifikation von Hauptgeschäftsfeldern. Es können aber auch Segmentierungslücken aufgedeckt werden, also Marktsegmente, die mit den gegenwärtigen Produkten nicht oder nur in geringem Umfang bedient werden. Daraus können sich dann Hinweise für Handlungsoptionen ergeben.
Sie wird beim [[Abernathy-Utterback Innovation Model]] eingesetzt.


!Objectives
* Identifikation von Hauptgeschäftsfeldern
* Entwicklung von Handlungsoptionen

!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Zunächst ist es erforderlich, die vom Unternehmen angebotenen Marktleistungen zu strukturieren und relevante Marktsegmente zu identifizieren. 
Die Marktleistungen und Marktsegmente werden in einer Matrix gegenübergestellt. Ein belegtes Feld in der Matrix wird als Geschäftsfeld bezeichnet, charakterisiert u.a. durch Umsatz, Gewinn, Marktanteil etc.
Hauptgeschäftsfelder ergeben sich dann als verwandte Gruppen von Geschäftsfeldern, für deren Bildung die Kriterien
* eigenständige Marktaufgaben
* maßgeblichen Anteil am Unternehmensergebnis
* relative Unabhängigkeit der strategischen Entscheidungen
herangezogen werden. Folgende Arbeitsschritte müssen zur Durchführung der Methode durchlaufen werden:
* bediente Märkte identifizieren und clustern
** Gruppierungsschlüssel auswählen
** Kunden dem Gruppierungskriterium zuordnen
* Produktprogramm (Marktleistung) segmentieren
** Gruppierungsschlüssel auswählen
** Produkte dem Gruppierungskriterium zuordnen
* ~Marktleistung-Marktsegmente-Matrix erstellen
* Geschäftsfeld beschreibende Größen definieren
* ~Marktleistung-Marktsegmente-Matrix analysieren und interpretieren
* Maßnahmen ableiten


!Debriefing

!Vorteile
* Datenvielfalt wird übersichtlich dargestellt
* Ergebnisse sind für weitere Analysen verwertbar
* Kombination von operativen und strategischem Wissen

!Nachteile
* Je komplexer das Produktprogramm ist, desto (zeit-)aufwendiger wird die Methodendurchführung.


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.business-wissen.de/script/dimg/img/img7228.jpg>>
~Marktleistungs-Marktsegmente Matrix
---- }}} 
===


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Marktleistungs-Marktsegmente Matrix, Kalkualtionstabelle (Excel), 59 kB| http://www.business-wissen.de/script/tool/forg/doc7229/ML-MS-Matrix_Vorlage.xls?backURL=%2Fde%2Fbaustein%2Fkapitel2776.html]]
* http://www.business-wissen.de/de/baustein/kapitel2776.html
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://1.bp.blogspot.com/_OvkXlKyAmo0/TAf7eyrATCI/AAAAAAAABYw/YhXSyWaQz08/s1600/IMG_4067.JPG>>
<<showtoc>>
!Overview
[[Marshmallow Challenge]] helps players understand the benefits of evolutionary design. It is a remarkably fun and instructive design exercise that encourages teams to experience simple but profound lessons in collaboration, innovation and creativity. [[Marshmallow Challenge]] is a variant of [[Turmbauübung]].

!Marshmallow Challenge
<script> return "<<tiddler [[Marshmallow Challenge##Overview]]>>" </script>

!Objectives
* collaboration, innovation and creativity
* teambuilding
* Emergent Design
* Understand the benefits of evolutionary design

!Timing
* 45 min = 18min (challenge) + 30min plenum

!Materials
For each team/group:
* 1 Marshmallow
* 20 sticks of spaghetti
* 1m string
* 1m tape

!Procedure
The task is simple: in eighteen minutes, teams must build the tallest free-standing structure out of 20 sticks of spaghetti, one yard of tape, one yard of string, and one marshmallow. The marshmallow needs to be on top.

!!Instructions
* Build the Tallest Freestanding Structure: The winning team is the one that has the tallest structure measured from the table top surface to the top of the marshmallow. 
* The Entire Marshmallow Must be on Top: The entire marshmallow needs to be on the top of the structure. 
* Use as Much or as Little of the Kit: he team can use as many or as few of the 20 spaghetti sticks, as much or as little of the string or tape. 
* Break up the Spaghetti, String or Tape: Teams are free to break the spaghetti, cut up the tape and string to create new structures.
* The Challenge Lasts 18 minutes: Teams cannot hold on to the structure when the time runs out. Those touching or supporting the structure at the end of the exercise will be disqualified. 

!Debriefing
Initiatoren um Tom Wujec, einem eifrigen Anwender der Marshmallow Challenge, gemessen. Ergebnis:
* Der Durchschnitt kommt auf eine Bauwerkshöhe von 50 Zentimetern.
* Business-~School-Absolventen erreichen im Schnitt nur 25 Zentimeter.
* Anwälte schaffen immerhin schon eine Höhe von rund 40 Zentimetern.
* ~CEOs konstruieren im Schnitt 60 ~Zentimeter-Bauwerke.
* Kindergartenkinder bauen bis zu 75 Zentimeter hoch.
* Teams mit nur einem CEO werden sogar noch besser: rund 80 Zentimeter.
* Am höchsten aber bauen Ingenieure und Architekten – bis zu einem Meter hoch (wenn sie vorher nich scheitern).

The Marshmallow is a Metaphor for the Hidden Assumptions of a Project: The assumption in the Marshmallow Challenge is that marshmallows are light and fluffy and easily supported by the spaghetti sticks. When you actually try to build the structure, the marshmallows don’t seem so light. The lesson in the marshmallow challenge is that we need to identify the assumptions in our project - the real customer needs, the cost of the product, the duration of the service - and test them early and often. That’s the mechanism that leads to effective innovation.

http://marshmallowchallenge.com/TED_Talk.html


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.agilitrix.com/wp-content/uploads/2010/10/The-Marshmallow-Challenge-472x630.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>> %/
---- }}} 
===

!See also
* [[Turmbauübung]]
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2010/11/marshmallow-challenge/
* http://karrierebibel.de/marshmallow-challenge-so-finden-sie-heraus-wie-gut-ihr-team-ist/
* http://www.marshmallowchallenge.com/Welcome.html
/***
|Name|MatchTagsPlugin|
|Source|http://www.TiddlyTools.com/#MatchTagsPlugin|
|Documentation|http://www.TiddlyTools.com/#MatchTagsPluginInfo|
|Version|2.0.4|
|Author|[[EricShulman]]|
|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
<<<
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: 4, date: new Date(2010,8,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() for enhanced boolean matching in [tag[...]] syntax:
// use getMatchingTiddlers instead getTaggedTiddlers
var fn=TiddlyWiki.prototype.filterTiddlers;
fn=fn.toString().replace(/getTaggedTiddlers/g,"getMatchingTiddlers");
eval("TiddlyWiki.prototype.filterTiddlers="+fn);
//}}}
//{{{
// 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);
	}
};
//}}}
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://timsgallery.com/me-and-my-shadow.jpg>>/%
http://harvardbusiness.org/products/4389-PDF-ENG/thumbnail/thumbnail.gif%/
<<showtoc>>
!Overview
[[Me and My Shadow]], a kind of [[Innovation Game]]: Discover hidden needs by carefully observing what customers actually do with your products.

!Me and My Shadow
<<tiddler [[Me and My Shadow##Overview]]>>

!Objectives
* Discover hidden needs; 
* Get insights how a product is used; 
* Improve the product.

!Timing
Depends on system/feature complexity: 90min - 1day workshop

!Audience
Group

!Materials
* whiteboard
* sticky note cards

!Procedure
# Observers carefully record a participant using a product or service. Observers sit next to the participant to watch for and listen to actions, expressions, comments, and suggestions. 
# Observers ask questions of the participant, such as //“Why are you doing that,”// or //“what are you thinking at this moment”.//

!Debriefing

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.intraqq.com/assets/images/innovation.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Innovation games: Who says work can't be fun?| http://go.techtarget.com/r/12320138/4201481]]
* http://en.wikipedia.org/wiki/Innovation_game
* http://www.innovationsgames.com

!Further Reading
<<tiddler [[Innovation Game##Further Reading]]>>
<data>{"abstract":"[[Meetchart]], Einstiegsübungen in ein Training kann man gar nicht genug kennen. Diese hier fordert die Kreativität der Teilnehmer."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.management-seminare.de/home4.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Meetchart","abstract") </script>

!Meetchart
<script> return "<<tiddler [[Meetchart##Overview]]>>" </script>
Geeignet für 10-15 Teilnehmer und gut geeignet zum [[Warm-up]] am Anfang eines Trainings mit einer neuen Gruppe.

!Objectives
* Aufwärmen
* Die Teilnehmer lernen sich besser und kreativer kennen.
* Die Teilnehmer überwinden die Anfangsspannung.

!Timing
15 min

!Audience
Group: 10-15 Teilnehmer

!Materials
* Flipchartpapier, Stift.

!Procedure
Die Teilnehmer bekommen vorgegebene Themen, Überschriften oder unvollständige Sätze wie z.B.

{{indent{
//Name
Abteilung
Hobbies
etc//}}}

oder

{{indent{
//Mein Name ist......
Ich bin in der Abteilung.......
Meine Hobbies sind.....
Meine [[Ziele|Ziel]] sind......
Von diesem Training erwarte ich......//}}}

Danach erhält jeder Teilnehmer ein Flipchartpapier und ein entsprechenden Stift.

Anweisung:
* //"Beantwortet alle Fragen, ohne Buchstaben oder Zahlen zu verwenden."//

Danach werden die Meetcharts an die Wand gepinnt. Jetzt geht die Gruppe zu jedem Meetchart und versucht bei dem Erraten mitzuwirken. 
Nach etwa einer Minute wird das Meetchart vom Künstler vorgestellt. (Dafür hat der Teilnehmer zwei Minuten Zeit).

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Meetchart+%28Hillbrecht%29.html]]
<data>{"abstract":"[[Meeting]]: eine ~Kleingruppen-Übung, die gut geeignet ist, um in das Thema [[Kommunikation]] einzusteigen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://farm1.static.flickr.com/26/64591754_30b5fb1849.jpg?v=0>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Meeting","abstract") </script>

!Meeting
<<tiddler [[Meeting##Overview]]>>

!Objectives
* Bedeutung von Kommunikation
* Führung
!Timing
15min

!Audience
Group

!Materials
* 

!Procedure
# Die Gesamtgruppe wird in Kleingruppen zu je drei Mitgliedern aufgeteilt. For pairing use [[Gruppenpuzzle]] or [[Hör gut hin!]].
# Es geht darum, dass eine Person ("[[Führungskraft|Führung]]") eine zweite Person ("Sachverhalt") an eine dritte Person ("Mitarbeiter") weitergibt. 
# Der Mitarbeiter ist blind, d.h. er schließt die Augen. Ihm gegenüber sitzt der Sachverhalt in einer selbstgewählten, möglicherweise ziemlich komplizierten Haltung. 
# Die Führungskraft muss nun dem blinden Mitarbeiter möglichst präzise Anweisungen geben, so dass dieser sich genauso hinsetzt wie der Sachverhalt. Fragen sind nicht erlaubt. 
# Wenn dies gelungen ist, wechseln die Rollen.

Variante
* Eine interessante Variante stellt die Übung mit zwei [[Mitarbeitern|Mitarbeiter]] dar, dann kann eindrucksvoll gezeigt werden, wie unterschiedlich die gleichen Nachrichten bei verschiedenen Personen ankommen (Sprenger: "Verstehen ist unwahrscheinlich")

!Debriefing
Die Auswertung beschäftigt sich mit Fragen zum typischen Kommunikationsverhalten. Als Einstieg in das Thema [[Kommunikation]] und [[Besprechung]] gut geeignete Übung. 

!Quelle
Rachow, A.: Kommunikation spielerisch gestalten, Wirtschaft und Weiterbildung 4/1998, S.22-23

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Meeting+%28jt%29&db=3]]
* [[Meeting Capture - An Emerging Best Practice: Improve team communications, and capture the context of a meeting| http://www.quindi.com/download/meeting_capture.pdf]]
<data>{"abstract":"[[Mehrtafelbefragung]], angenommen, Sie möchten in einer [[Moderation]] mehrere Themen gleichzeitig bearbeiten lassen, aber möglichst alle Teilnehmer einbeziehen. So geht es…  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.dealjaeger.de/blog/wp-content/uploads/2007/03/tafeln.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Mehrtafelbefragung","abstract") </script>

!Mehrtafelbefragung
<script> return "<<tiddler [[Mehrtafelbefragung##Overview]]>>" </script> 
Sie möchten mit einer Gruppe mehrere Fragestellungen gleichzeitig bearbeiten. Eine Möglichkeit hierzu, die auch noch die Teilnehmer in Bewegung bringt, ist die [[Mehrtafelbefragung]]. 

!Objectives
* Mehrere Fragen gleichzeitig bearbeiten

!Timing
30min

!Audience
Group


!Materials
* 4-5 Flipcharts

!Procedure
In Form eines Rundlaufes kann jede Teilgruppe an vier bis fünf Tafel (Flipcharts) ebenso viele Themen diskutieren und sich gleichzeitig einen Überblick verschaffen, wo man selbst steht, was man genauso sieht wie die anderen und wo man eine andere Meinung vertritt.

!Debriefing

!Quelle
[[Doris Breuer-Stern: Gesund sein und bleiben - aber wie?, expert verlag 1995, S.40| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FGesund-bleiben-Praxishilfen-betriebliche-Gesundheitsf%25C3%25B6rderung%2Fdp%2F3816910548%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214522224%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Moderation]<<tiddlerList tags:"moderation,-newTemplate" header:"Übungen Moderation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Mehrtafelbefragung+%28jt%29]]
<data>{"abstract":"[[Mein Schlüssel erzählt meine Geschichte]], manche Übungen sind so einfach, dass man sich wundert, nicht selbst drauf gekommen zu sein. So z.B. diese hier, die sich auch gut als Vorstellungsrunde eignet."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.lueneburg.de/textonly/Portaldata/1/Resources/stlg_dateien/stlg_bilder/fundbuero/hohe_Aufloesung/schluessel800x600_ha.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Mein Schlüssel erzählt meine Geschichte","abstract") </script>

!Mein Schlüssel erzählt meine Geschichte
<script> return "<<tiddler [[Mein Schlüssel erzählt meine Geschichte##Overview]]>>" </script> 

!Objectives
* Kennenlernen
* Vorstellungsrunde 

!Timing

!Audience
Group

!Materials
* 1 Schlüssel / Schlüsselbund

!Procedure
Der Trainer bittet die Teilnehmer, einen Schlüssel oder ihr Schlüsselbund in die Hand zu nehmen und spontan dazu eine kurze Geschichte zu erzählen.
Die Übung lässt sich auch prima im Präsentations- bzw. Rhetoriktraining einsetzen.

!Debriefing

!Quelle
[[Simanowitz, Jenny: 100 außergewöhnliche Stimmungsmacher, S. 17.| http://www.amazon.de/gp/product/3867020655?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3867020655]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Mein+Schl%FCssel+erz%E4hlt+meine+Geschichte+%28jt%29.html]]
* [[Unesco, freie Lernressourcen| www.opentrainingplatform.org]]
/***

|Name|MenuEditPlugin|
|Author|[[SaqImtiaz]]|
|Source|http://tw.lewcid.org/#MenuEditPlugin|
|Version|0.2|
|Type|plugin|
|Requires|~TW2.x|
|~CoreVersion|2.x|
|Description|Adds doubleclick to edit source to the MainMenu, SideBarOptions, and SideBarTabs|

!Description:
Adds 'doubleclick to edit source' to the MainMenu, SideBarOptions, and SideBarTabs

!History
*20-07-06: version 0.2: hijacked restart, no need to put a macro in the mainMenu anymore.
*28-04-06: version 0.1: working.

!Code
***/
//{{{

window.restart_lewcid_menuedit = restart;
window.restart = function () {
         window.restart_lewcid_menuedit();
var menus = new Array("topMenu","sidebarOptions","sidebarTabs","contentFooter","mainMenu");
for(var t=0; t<menus.length; t++){
         if (document.getElementById(menus[t]))
              {var menu = document.getElementById(menus[t]);
               menu.ondblclick = window.onMenuDblClick;}}
}



window.onMenuDblClick = function(e){
if (!e) var e = window.event;
story.displayTiddler(null,this.getAttribute("tiddler"),2,false,null)
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
return false;
}
//}}}
<data>{"abstract":"Why [[Reverse Planning]] is so effective. Project managers can benefit from engaging the [[team|Team]] in [[backward planning|Reverse Planning]] from the desired end-goal through the required deliverables to where they are today. [[Merlin Exercise]] is the name given to a group-based, reverse planning [[activity|Aktivitaet]] that does just this."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.wizardwonderland.com/images/merlin2.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Merlin Exercise","abstract") </script>

!Merlin Exercise
<script> return "<<tiddler [[Merlin Exercise##Overview]]>>" </script>
On [[agile projects|Agile Projektmanagement]], the exact end-point may not be known as some [[requirements|Requirements]] will likely evolve as new details emerge. However, the Merlin Exercise is great for [[iteration|Iteration]] planning and [[release planning|Release Planning]] where the end-goal can be described.

!Objectives
* Agile estimating

!Timing
40 min

!Audience
Group

!Materials
* sticky pads

!Procedure
To use this process, start by describing the final solution with all the components and success criteria completed. 
Next, get the [[team|Team]] to list all the technical attributes that must be in place to support this. 
Then, moving backward, [[brainstorm|Brainstorming]] each successful step that occurred to produce the desired outcome. 
Ask the [[team|Team]] what the likely roadblocks for each of these steps might be and then ask how they would best be overcome.
 
Give people sticky pads and ask them to write one item per sticky. Once the 20 minutes is up, people should transfer their stickies to a wall and, as a team, group them into associated clusters and remove duplicates. This process can also take another 20 minutes as people clarify the meaning of notes and create headings that correctly identify that group.

!Debriefing
The real power of the [[Merlin Exercise]] comes from imprinting an image of success, seeing solutions to potential roadblocks that may occur and starting with a picture of victory in advance. As the project progresses and the inevitable roadblocks are encountered, having already discussed how they may be overcome speeds the remediation process.

!See also

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.gantthead.com/content/articles/248427.cfm
* http://www.gantthead.com/articles/articlesPrint.cfm?ID=248427
<data>{"abstract":"[[Metaphern malen]]: in einer [[Mediation]] kann der Mediator die Beteiligten einladen, ihre Sicht der Situation."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.minas-mainz.de/images/original/20061001A.JPG>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Metaphern malen","abstract") </script>

!Metaphern malen
<<tiddler [[Metaphern malen##Overview]]>>
Das allein kann schon Lösungsansätze hervorbringen.

!Objectives
* Lösungsansätze entwickeln

!Timing
45min

!Audience
Group / Individual

!Materials
* 

!Procedure
In einer [[Mediation]] kann der Mediator die Beteiligten einladen, ihre Sicht der Situation [[Metapher zu malen|Metaphern malen]]. 
Dies kann in Form eines Märchenbildes, einer Oper, einer Schiffsreise etc. sein. 

!Debriefing
Anhand dieses Bildes stellen die Beteiligten dann vielleicht fest, dass ein Ruderer in die falsche Richtung rudert, der böse Wolf gar nicht böse ist oder die Zauberflöte doch nicht so schön klingt. 
So kommt man manchmal spielerisch darauf, was einem wirklich wichtig ist. Und das Unbewusste liefert sogar [[Ideen|Ideenmanagement]] mit, wie neue Lösungsansätze aussehen könnten.


!Quelle
Martin Pichler: Tragfähige Problemlösungen gemeinsam finden, wirtschaft + weiterbildung 3/2006, S. 26-27.


!See also
* [[Arbeit mit Metaphern]] 
* [[Metaphern-Arbeit]]

<<tiddler ShowTiddlerReferences>>

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline|http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Metaphern+malen+%28jt%29]]
/***
|Name|MiniBrowserPlugin|
|Source|http://www.TiddlyTools.com/#MiniBrowserPlugin|
|Documentation|http://www.TiddlyTools.com/#MiniBrowserPluginInfo|
|Version|1.5.3|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.2|
|Type|plugin|
|Requires|PlayerPlugin (optional, recommended)|
|Description|embedded browser-in-browser with favorites lists and media support|
!!!!!Documentation
>see [[MiniBrowserPluginInfo]]
!!!!!Configuration
>Default mini browser size:
>width: <<option txtMiniBrowserWidth>> height: <<option txtMiniBrowserHeight>>
!!!!!Revisions
<<<
2011.02.08 1.5.3 added 'nocontrols' macro keyword parameter
2009.08.29 1.5.2 in load(), fixed 'noplayer' IFRAME output
2009.07.03 1.5.1 added onclick handling to 'n of m' button.  also, if noedit mode, add line numbers to bookmarks droplist items
2009.06.08 1.5.0 added optional 'noedit' mode: replaces add/del/edit buttons with next/previous navigation.
|see [[MiniBrowserPluginInfo]] for additional revision details|
2007.10.15 1.0.0 combined MiniBrowser and MediaCenter inline scripts and converted to true plugin
2006.03.01 0.0.0 inline script
<<<
!!!!!Code
***/
//{{{
version.extensions.MiniBrowserPlugin={major: 1, minor: 5, revision: 3, date: new Date(2011,2,8)};

config.shadowTiddlers.MiniBrowser='<<miniBrowser>>';
config.options.txtMiniBrowserWidth=config.options.txtMiniBrowserWidth||'100%';
config.options.txtMiniBrowserHeight=config.options.txtMiniBrowserHeight||'480';
config.macros.miniBrowser= {
	favoritesList: 'MiniBrowserList',
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var noPlayer=params[0]&&params[0].toLowerCase()=='noplayer'; if (noPlayer) params.shift();
		var noEdit  =params[0]&&params[0].toLowerCase()=='noedit';   if (noEdit)   params.shift();
		var expand  =params[0]&&params[0].toLowerCase()=='expand';   if (expand)   params.shift();
		var hideControls=params[0]&&params[0].toLowerCase()=='hidecontrols'; if (hideControls) params.shift();
		var noControls  =params[0]&&params[0].toLowerCase()=='nocontrols';   if (noControls)   params.shift();
		hideControls	=noControls||hideControls;	// no controls implies hide controls
		var url		=(params[0]&&!store.tiddlerExists(params[0]))?params.shift():'';
		if (!url.length) noControls=hideControls=false; // if no initial URL, force controls to show
		if (!config.macros.player) noPlayer=true; // PlayerPlugin not installed
		var w=config.options.txtMiniBrowserWidth;
		var h=config.options.txtMiniBrowserHeight;

		// create form
		var guid=new Date().getTime()+Math.random().toString(); // globally unique ID
		var html=store.getTiddlerText('MiniBrowserPlugin##html');
		html=html.replace(/%id%/g,guid)
			.replace(/%noplayer%/g,noPlayer?'true':'')
			.replace(/%noedit%/g,noEdit||readOnly?'none':'inline')
			.replace(/%shownav%/g,noEdit||readOnly?'inline':'none')
			.replace(/%hidecontrols%/g,hideControls?'none':'block')
			.replace(/%bookmarksize%/g,(expand?70:20)+'%')
			.replace(/%urlsize%/g,(expand?69.5:20)+'%')
			.replace(/%linebreak%/g,expand?'<br>':'')
			.replace(/%favorites%/g,params[0]||config.macros.miniBrowser.favoritesList);
		createTiddlyElement(place,'span').innerHTML=html;

		// init form
		function $(i){return document.getElementById(i)}; // abbrev
		$('minibrowser_controls_'+guid).style.display=hideControls?'none':'block';
		$('minibrowser_resize_'+guid).style.display=hideControls?'none':'block';
		$('minibrowser_nocontrols_'+guid).style.display=noControls?'none':'inline';
		$('minibrowser_togglecontrols_'+guid).checked=!hideControls;
		$('minibrowser_form_'+guid).url.value=url;
		$('minibrowser_form_'+guid).w.value=w;
		$('minibrowser_form_'+guid).h.value=h;
		if (noPlayer) { // hide type list no PlayerPlugin
			$('minibrowser_type_'+guid).style.display='none';
			$('minibrowser_url_'+guid).style.width=(expand?81.5:32)+'%';
		}

		// load bookmarks droplist from HR-separated tiddler contents
		var b=$('minibrowser_bookmarks_'+guid);
		while (b.options[1]) b.options[1]=null; // clear list but leave 'prompt' item
		var p; while (p=params.shift()) this.getFavorites(b,p,noEdit); // load custom bookmarks
		if (b.length<2) this.getFavorites(b,config.macros.miniBrowser.favoritesList,noEdit); // default list
		$('minibrowser_nav_'+guid).value='1 out of '+b.length;

		// load initial URL (if any)
		var place=$('minibrowser_player_'+guid);
		this.load(place,guid,'','',w,h,true,noPlayer);
		this.go($('minibrowser_form_'+guid));
	},
	getFavorites: function(list,tid,noEdit) {
		var txt=store.getTiddlerText(tid); if (!txt||!txt.trim().length) return;
		txt=this.getWikifiedData(txt);
		var parts=txt.split('\n----\n');
		for (var p=0; p<parts.length; p++) {
			var lines=parts[p].split('\n');
			var label=lines.shift()||''; // 1st line=display text
			var value=lines.shift()||''; // 2nd line=item value
			var indent=value&&value.length?'\xa0\xa0':'';
			var prefix=value.length&&noEdit?list.length+1+': ':'';
			list.options[list.length]=new Option(prefix+indent+label,value,false,false);
		}
	},
	getWikifiedData: // wikify content, then extract text WITH newlines and HRs included
	function(txt) {
		var e=createTiddlyElement(document.body,'div'); wikify(txt,e);
		var breaks=e.getElementsByTagName('br');
		for (var b=0; b<breaks.length; b++)
			breaks[b].parentNode.insertBefore(document.createTextNode('\n'),breaks[b]);
		var lines=e.getElementsByTagName('hr');
		for (var l=0; l<lines.length; l++)
			lines[l].parentNode.insertBefore(document.createTextNode('----\n'),lines[l]);
		var items=e.getElementsByTagName('li');
		for (var i=0; i<items.length; i++)
			items[i].parentNode.insertBefore(document.createTextNode('\n'),items[i]);
		var txt=getPlainText(e);
		removeNode(e);
		return txt.replace(/\r*/g,'').replace(/\n\n/g,'\n');
	},
	load: function(place,id,type,url,w,h,showcontrols,noPlayer) {
		if (!noPlayer)
			config.macros.player.loadURL(place,id,type,url,w,h,showcontrols);
		else { // force IFRAME-only display
			if (!place) place=document.getElementById(id).parentNode;
			var fmt="<iframe name='%0' id='%0' src='%1' width='%2' height='%3' \
				style='background:#fff;border:1px solid'></iframe>";
			place.innerHTML=fmt.format([id,url,w,h]);
		}
	},
	go: function(f) {
		var url=f.url.value.trim();
		if (!url.length) url=f.url.value=f.bookmarks.value.trim();
		if (!url.length) { this.done(f); return false; }
		var id=f.playerID.value;
		document.getElementById('minibrowser_player_'+id).style.display='block';
		document.getElementById('minibrowser_controls2_'+id).style.display='block';
		this.load(null,id,f.type.value,f.url.value,f.w.value,f.h.value,f.ctrls.checked,f.noPlayer.value=='true');
		var matched=false; for (var i=0; i<f.bookmarks.options.length; i++) // select matching bookmark
			if (f.bookmarks.options[i].value==url) { f.bookmarks.selectedIndex=i; matched=true; break; }
		if (!matched) f.bookmarks.selectedIndex=0;
		f.done.disabled=false;
		return false;
	},
	done: function(f) {
		var id=f.playerID.value;
		this.load(null,id,null,null,f.w.value,0,f.ctrls.checked,f.noPlayer.value=='true');
		document.getElementById('minibrowser_player_'+id).style.display='none';
		document.getElementById('minibrowser_controls2_'+id).style.display='none';
		f.done.disabled=true; 
		return false;
	},
	fit: function(place) {
		// fudge factor to account for the other controls + padding + borders.  ADJUST THIS VALUE TO FIT LAYOUT
		var trim=89;
		var t=story.findContainingTiddler(place);
		if (!t) { t=place; while (t && t.className!='floatingPanel') t=t.parentNode; } if (!t) return;
		var w='100%'; // horizontal stretching via CSS works, but vertical stretching doesn't... so:
		var h=t.offsetHeight-trim; // workaround: get containing panel/tiddler height and subtract trim height
		var f=place.form;
		this.load(null,f.playerID.value,f.type.value,f.url.value,w,h,f.ctrls.checked,f.noPlayer.value=='true');
		place.form.w.value=w; place.form.h.value=h; // update width/height input fields
	},
	add: function(place,title) {
		var v=place.value; if (!v.length) return;
		var d=prompt('Please enter a description for\n'+place.value); if (!d || !d.length) return;
		var who=config.options.txtUserName;
		var when=new Date();
		var tid=store.getTiddler(title);
		var txt='%0\n%1\n----\n%2'.format([d,v,tid?tid.text:'']);
		store.saveTiddler(title,title,txt,who,when,tid?tid.tags:[],tid?tid.fields:{});
		if (!tid) story.displayTiddler(story.findContainingTiddler(place),title);
		else story.refreshTiddler(title,1,true);
		var here=story.findContainingTiddler(place);
		if (here) story.refreshTiddler(here.getAttribute('tiddler'),1,true);
	},
	del: function(place,title) {
		var v=place.value; if (!v.length) return;
		var d=place.options[place.selectedIndex].text; if (!d.length) return;
		if (!confirm('Are you sure you want to remove this favorite?\n\n'+d+'\n'+v)) return;
		var tid=store.getTiddler(title); if (!tid) return;
		var who=config.options.txtUserName;
		var when=new Date();
		var pat='%0\n%1\n----\n'.format([d.replace(/\xa0/g,''),v]); var re=new RegExp(pat,'i');
		var txt=tid.text.replace(re,'');
		store.saveTiddler(title,title,txt,who,when,tid?tid.tags:[],tid?tid.fields:{});
		story.refreshTiddler(title,1,true);
		var here=story.findContainingTiddler(place);
		if (here) story.refreshTiddler(here.getAttribute('tiddler'),1,true);
	}
}
//}}}
/***
//{{{
!html
<form id='minibrowser_form_%id%' style='display:block;margin:0;padding:0' onsubmit='return config.macros.miniBrowser.go(this);'><!--
--><nobr><input type='hidden' name='playerID' value='%id%'><input type='hidden' name='noPlayer' value='%noplayer%'><!--
--><div id='minibrowser_controls_%id%' style='display:%hidecontrols%'><!--
--><input type='button' value='<' title='back' style='width:3%'
	onclick='try{window.frames["player_%id%"].history.go(-1)}catch(e){window.history.go(-1)}' ><!--
--><input type='button' value='>' title='forward' style='width:3%'
	onclick='try{window.frames["player_%id%"].history.go(+1)}catch(e){window.history.go(+1)}'><!--
--><input type='button' value='+' title='refresh'style='width:3%'
	onclick='try{window.frames["player_%id%"].location.reload()}catch(e){;}'><!--
--><input type='button' value='x' title='stop'style='width:3%'
	onclick='window.stop()'><!--
--><select name='bookmarks' id='minibrowser_bookmarks_%id%' size='1' style='width:%bookmarksize%'
	onchange='this.form.url.value=this.value;
		this.form.nav.value="%0 out of %1".format([this.selectedIndex+1,this.length]);
		this.form.nav.title="reload %0".format([this.options[this.selectedIndex].text]);
		return config.macros.miniBrowser.go(this.form);'><!--
--><option value=''>bookmarks...</option><!--
--></select><!--
--><span style='display:%noedit%'><!--
--><input type='button' value='add' title='add URL to the bookmarks' style='width:6%'
	favorites="%favorites%"
	onclick='config.macros.miniBrowser.add(this.form.url,this.getAttribute("favorites"));'><!--
--><input type='button' value='del' title='remove URL from the bookmarks' style='width:6%'
	favorites="%favorites%"
	onclick='config.macros.miniBrowser.del(this.form.bookmarks,this.getAttribute("favorites"));'><!--
--><input type='button' value='edit' title='edit the bookmarks list' style='width:6%'
	favorites="%favorites%"
	onclick='story.displayTiddler(null,this.getAttribute("favorites"),2)'><!--
--></span><!--
--><span style='display:%shownav%'><!--
--><input name=prev type='button' value='&#x25C4;' title='view previous bookmark' style='width:3%'
	onclick='var b=document.getElementById("minibrowser_bookmarks_%id%");
		b.selectedIndex=Math.max(b.selectedIndex-1,0); b.onchange();'><!--
--><input name='nav' id='minibrowser_nav_%id%'
	type='button' value='N out of MM' title='enter a bookmark number' style='width:12%'
	onclick='return this.form.next.click();
		var b=this.form.bookmarks;
		var i=prompt("Enter a bookmark number (1-"+b.length+")",b.selectedIndex+1);
		if (i && i<b.length) { b.selectedIndex=i-1; b.onchange(); }'><!--
--><input name=next type='button' value='&#x25BA;' title='view next bookmark' style='width:3%'
	onclick='var b=document.getElementById("minibrowser_bookmarks_%id%");
		b.selectedIndex=Math.min(b.selectedIndex+1,b.length); b.onchange();'><!--
--></span><!--
-->%linebreak%<!--
--><select name='type' id='minibrowser_type_%id%' size='1' style='width:12%'
	onchange='var opt=this.options; for (var i=0; i<opt.length; i++)
		if (i==this.selectedIndex) opt[i].text=opt[i].text.replace(/\xa0\xa0/,"&radic;");
		else opt[i].text=opt[i].text.replace(/&radic;/,"\xa0\xa0");
		if (this.selectedIndex==0) opt[1].text=opt[1].text.replace(/\xa0\xa0/,"&radic;");'><!--
--><option value=''>type...</option><!--
--><option value=''>&radic; auto-detect</option><!--
--><option value='iframe'>&nbsp;&nbsp; web page</option><!--
--><option value='windows'>&nbsp;&nbsp; windows media</option><!--
--><option value='realone'>&nbsp;&nbsp; real one</option><!--
--><option value='quicktime'>&nbsp;&nbsp; quicktime</option><!--
--><option value='flash'>&nbsp;&nbsp; flash</option><!--
--><option value='image'>&nbsp;&nbsp; jpg/gif/png</option><!--
--></select><!--
--><input type='text' name='url' id='minibrowser_url_%id%' size='60' value='' style='width:%urlsize%'
	onfocus='this.select()'><!--
--><input type='submit' value='go' title='view URL' style='width:6%'><!--
--><input type='button' value='open' title='open a separate tab/window' style='width:6%'
	onclick='if (this.form.url.value.length) window.open(this.form.url.value)'><!--
--><input type='button' value='done' name='done' disabled title='disconnect from URL' style='width:6%'
	onclick='return config.macros.miniBrowser.done(this.form);'><!--
--></div><!--
--><div id='minibrowser_player_%id%' style='display:none;text-align:center'></div><!--
--><span id='minibrowser_controls2_%id%' style='margin-top:2px;display:none;'><!--
--><div id='minibrowser_resize_%id%' style='display:%hidecontrols%;float:right'><!--
--> size: <input type='text' name='w' size='3' value='' style=''
	onfocus='this.select()'><!--
-->x<input type='text' name='h' size='3' value='' style=''
	onfocus='this.select()'><!--
--> <input type='submit' value='set' style='width:5em'
	onclick='var f=this.form;
		if(!f.w.value.trim().length) f.w.value=config.options.txtMiniBrowserWidth;
		if(!f.h.value.trim().length) f.h.value=config.options.txtMiniBrowserHeight;
		config.options.txtMiniBrowserWidth=f.w.value; config.options.txtMiniBrowserHeight=f.h.value;
		saveOptionCookie("txtMiniBrowserWidth"); saveOptionCookie("txtMiniBrowserHeight");'><!--
--><input type='submit' value='reset' style='width:5em'
	onclick='var f=this.form; f.ctrls.checked=true; f.w.value="100%"; f.h.value="480";
		config.options.txtMiniBrowserWidth=f.w.value; config.options.txtMiniBrowserHeight=f.h.value;
		saveOptionCookie("txtMiniBrowserWidth"); saveOptionCookie("txtMiniBrowserHeight");'><!--
--><input type='button' value='fit' title='resize player to fit containing window' style='width:5em'
	onclick='config.macros.miniBrowser.fit(this)'><!--
--></div><!--
 style='display:%hidecontrols%'
--><span id='minibrowser_nocontrols_%id%'><!--
--> <input type='checkbox' name='ctrls' id='minibrowser_togglecontrols_%id%' title='toggle minibrowser controls' CHECKED 
	onclick='document.getElementById("minibrowser_controls_%id%").style.display=this.checked?"block":"none";
		document.getElementById("minibrowser_resize_%id%").style.display=this.checked?"block":"none";'
><a href='' title='toggle minibrowser controls'
	onclick='this.previousSibling.click();return false;'>show controls</a><!--
--></span><!--
--></span><!--
--></nobr></form>
!end
//}}}
***/
 
<data>{"abstract":"[[Mipps und Wors]], wie verhält sich eine Gruppe ohne offizielle [[Führung]] bei der Lösung eines Problems, wenn jedes Gruppenmitglied nur Teilinformationen für die Lösung besitzt, die untereinander ausgetauscht werden müssen?"}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.cartoonfactory.ch/autofahrt_270px.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Mipps und Wors","abstract") </script>

!Mipps und Wors
<script> return "<<tiddler [[Mipps und Wors##Overview]]>>" </script> 
Wir haben die Aufgabe sogar noch etwas erschwert: Einige Informationen sind für die Lösung des Problems wichtig, andere dagegen völlig nebensächlich!

!Objectives
* Verhalten eines Teams ohne [[Führung]]
* Problemlösungsverhalten, wenn jedes Gruppenmitglied nur Teilinformationen für die Lösung besitzt, die untereinander ausgetauscht werden müssen? 

!Timing
20min

!Audience
Group; Gruppen zwischen fünf und zehn Personen
Am besten bilden sich mehrere Gruppen, die miteinander konkurrieren. Gewonnen hat die Gruppe, welche zuerst fertig ist.

!Materials
* 26 Fragekarten
!!Fragen und Antworten

{{invisibleTable{
|''Frage'' |''Antwort'' |h
|Wie weit ist es von A nach B? |Es ist 4 Lutts von A nach B. |
|Wie weit ist es von B nach C? |Es ist 8 Lutts von B nach C |
|Wie weit ist es von C nach D? |Es ist 10 Lutts von C nach D |
|Wie groß ist ein Lutt? |Ein Lutt hat 10 Mipps. |
|Was ist ein Mipp? |Ein Mipp ist ein Längenmaß. |
|Wieviele Mipps hat ein Kilometer? |Ein Kilometer hat 2 Mipps. |
|Was ist ein Dar? |Ein Dar sind 10 Wors. |
|Was ist ein Wor? |Ein Wor hat 5 Mirs. |
|Was ist ein Mir? |Ein Mir ist eine Zeiteinheit. |
|Wieviele Mirs hat eine Stunde? |Eine Stunde hat 2 Mirs. |
|Wie schnell fährt der Mann von A nach B? |Der Mann fährt von A nach B mit einer Geschwindigkeit von 24  Lutts per Wor. |
|Wie schnell fährt der Mann von B nach C? |Der Mann fährt von B nach C mit einer Geschwindigkeit von 30 Lutts per Wor. |
|Wie schnell fährt der Mann von C nach D? |Der Mann fährt von C nach D mit einer Geschwindigkeit von 30 Lutts per Wor. |
}}}

!Procedure
Nehmen Sie an, daß Lutts und Mipps neue Längenmaße sind, und daß Dars, Wors und Mirs neue Einheiten für die Zeitmessung darstellen, die heute allgemein verwendet werden!
Ein Mann fährt von der Stadt A durch die Stadt B und Stadt C nach Stadt D. Die Aufgabe der Gruppe ist es zu bestimmen, wieviel Wors der Mann für die Fahrt von A nach D benötigt. Die Gruppe, welche die Lösung findet, hat gewonnen. Wenn es nur eine Gruppe gibt, darf sie nicht länger als 20 Minuten zur Lösung brauchen!

* Die Gruppenmitglieder setzen sich im Kreis zusammen. 
* Die Karten mit den Fragen und Antworten werden gemischt und reihum an die Grupppenmitglieder verteilt. 
* Sie dürfen die Informationen auf den Karten mündlich untereinander austauschen, aber jedes Gruppenmitglied darf seine Karten die ganze Zeit über nicht aus der Hand geben! 
* Sie dürfen auch keinen offiziellen Gruppenführer wählen! 
* Fangen Sie an, wenn allen die Spielregeln klar sind und alle Karten verteilt sind.

!Lösung
Der Wagen fährt 6/5 Wors = 3 Stunden von A nach D.
!!Längenmasse
1 Km = 2 Mipps = 0,2 Lutts
1 Mipp = 0,5 Km = 0,1 Lutts
1 Lutt = 5 Km = 10 Mipps
!!Zeiteinheiten
1 Std. = 0,04 Dar = 0,4 Wors = 2 Mirs
1 Dar = 25 Std. = 10 Wors = 50 Mirs
1 Wor = 2,5 Std. = 0,4 Dars = 5 Mirs
1 Mir = 0,5 Std. = 0,02 Dars = 0,2 Wors


!Debriefing
* Wer hat zur Problemlösung beigetragen?
* Was war hilfreich
* Was war schwierig?
* Konnten alle der Diskussion folgen?
* Was das nächste Mal anders machen?
* Wie gestaltete sich die Kommunikation in der Gruppe?
* Was bedeutet das für die Praxis?


/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Diverse Teamspiele - PDF| http://www.region-online.de/bildung/semi/projekte/spiele.pdf]]
* http://web21.apt-002.de/upload/SynapseFinal/07_Uebungen/Kooperation/Mips_Wors.pdf
* http://www.isoit.de/projekte/Gruppend.ppt
* http://www.nww-web.at/quellen/Luts.pdf
<data>{"abstract":"[[Montagsrunde]], einmal wöchentlich mit dem ganzen [[Team]] zusammen sitzen - für Teams, die ständig mit neuen [[Anforderungen|Anforderung]] konfrontiert sind, sicher ein guter Hinweis.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://clusterc.sevenload.net/dataB003/data85/slcom/vs/qj/piipngd/cpynqsolgfie.jpg~/Der-Montag.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Montagsrunde","abstract") </script>

!Montagsrunde
<script> return "<<tiddler [[Montagsrunde##Overview]]>>" </script> 

!Objectives

!Timing

!Audience
Group

!Materials
* 

!Procedure
Aber solche fixen Termine können auch rasch zu Qual werden. Da macht es Sinn, einen festen Ablauf einzuführen, z.B. so:
# TOP: Was sind die zentralen Ziele/Aufgaben in der kommenden Woche?`
# TOP: Fragen der Teilnehmer: Was ist unklar? Was fehlt mir, um die [[Ziele|Ziel]] zu erreichen?
# TOP: Diskussion: Welche Empfehlungen haben die Kollegen zur besseren Erledigung der Aufgaben? Wer kann wobei unterstützen?
# TOP: Abschluss: Gibt es sonst noch etwas? Was kann der Vorgesetzte noch für das [[Team]] klären?
Dabei sollte darauf geachtet werden, dass wirklich jeder zu Wort kommt, auch bei den Themen 2 und 3. Eine sinnvolle Übung, um mit unterschiedlichen Lösungsvorschlägen das [[Team]] zu unterstützen.

Übrigens: Wenn es keine Themen gibt, sollte man keine Themen mit "Gewalt" produzieren. Dann geht man nach der Abfrage eben wieder auseinander.

!Debriefing

!Quelle
Praxishandbuch leiten - führen - motivieren: Besprechungen, B15/007

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Besprechungen]<<tiddlerList tags:"meeting,-newTemplate" header:"Übungen Besprechung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Montagsrunde+%28jt%29]]
<data>{"abstract":"Eine [[Teamübung|Teamentwicklung / Teambuilding]] mit vielen Erkenntnissen zum Thema [[Kommunikation]], indoor wie [[outdoor]] durchführbar."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.grafhp.ch/bilder/Illustration/No_Jobs/LOVE.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("More Love","abstract") </script>

!More Love
<script> return "<<tiddler [[More Love##Overview]]>>" </script> 
Manche Übungen eignen sich [[Outdoor|outdoor]] wie Indoor, so die folgende, bei der gruppendynamische Prozesse deutlich gemacht werden und die Gruppe erkennt, wo sie gerade steht. 

!Objectives
* Verdeutlichen gruppendynamischer Prozesse
* Erkenntnissen zum Thema [[Kommunikation]]

!Timing
* Durchführung: ca. 50 Minuten 
* Auswertung: 45 Minuten.

!Audience
Group

!Materials
* Augenbinden
* 5 Bergsteigerseile je 10m lang

!Procedure
Alle Teilnehmer bekommen die Augen verbunden, dann erhält die Gruppe fünf Seile (keine Wäscheleine, sondern am besten Bergsteigerseile von mindestens je zehn Metern Länge). 
Nun soll das Wort "MORE" geschrieben werden, dabei gilt: Alle Buchstaben sollen gleich groß sein, die Seile müssen vollständig verwendet und nicht durch Falten oder Zerschneiden verkürzt werden, die Zeitvorgabe ist 30 Minuten, und bei der  [[Bewertung]]  wird auch auf besonders kreative Lösungen geachtet. 
Wenn das Werk beendet ist, dürfen die Teilnehmer es betrachten.

Dann kommt ein zweiter Auftrag: Nun soll das Wort "LOVE" geschrieben werden, diesmal zwar sehend, aber stumm. Dafür stehen nur drei Minuten zur Verfügung. Für die Auswertung wird empfohlen, den Ablauf auf Video aufzuzeichnen.

!Variation
Der Trainer gibt zwischendurch an einzelne Teilnehmer Zwischenzeiten bekannt und beobachtet, wie mit dieser Information umgegangen wird. 
Bei größeren Gruppen kann das Spiel parallel von mehreren [[Teams|Team]] parallel durchgeführt werden.

!Debriefing
Auswertungsmöglichkeiten gibt es viele: 
* Welche Rollen gab es? 
* Wie wurden Entscheidungen getroffen? 
* Wie war die Zusammenarbeit? 
* Wie wurden die Ressourcen (Seile) eingesetzt? 
* Wie war die [[Kommunikation]] zwischen den Gruppenmitgliedern? 
* Gab es eine Strategie? 
* Sind klassische Projektschritte beachtet worden (Orientierung, Auftragsklärung, Planung, Umsetzung, Controlling)? 
* Welche Parallelen zum Arbeitsalltag waren sichtbar? 

!Quelle
Axel Rachow: Spielbares, managerSeminare 5/2000, S.52-54, Spiel von Thomas Böhm

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Outdoor]<<tiddlerList tags:"outdoor,-newTemplate" header:"Übungen Outdoor">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=More+Love+%28jt%29]]
<data>{"abstract":"Ein schon etwas älterer Ansatz zur Entwicklung von [[Problemlösungen|Problemlösung]], gut geeignet für den mehr strukturiert vorgehenden [[Problemlöser|Problemlösung]]. Die [[morphologische Matrix|Morphologische Matrix]] führt zu eine Vielzahl von Lösungsansätzen und Ideen."}</data>
<<wikify [>img(%0,%1)[%2|%3][%3]] auto auto title http://studienseminare-bbs.bildung-rp.de/uploads/RTEmagicC_morphologische_Matrix.jpg.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Morphologische Matrix","abstract") </script>

!Morphologische Matrix
<script> return "<<tiddler [[Morphologische Matrix##Overview]]>>" </script> 

Dieses methodische Vorgehen zur Lösung eines Problems soll auf den Schweizer Astrophysiker [[Fritz Zwicky| http://de.wikipedia.org/wiki/Fritz_Zwicky]] zurückgehen. Die morphologische Matrix oder auch morphologischer Kasten hilft, eine Aufgabe im vollen Umfang zu überschauen, weil damit alle logisch denkbaren Möglichkeiten systematisch aufgelistet und durchgespielt werden können.

Wichtig ist hier wie bei allen Methoden zunächst eine konkrete Zielformulierung. Anschließend wird das [[Problem]] in von einander unabhängige Parameter zerlegt. Am Beispiel einer Broschüre wären dies z.B. Material, Form, Einband, Stanzung, Format, Bilder, Farbe, Inhalt etc. Daneben werden dann alle nur denkbaren Ausprägungen je Parameter notiert. Beim Material der Broschüre könnten dies sein: Papier, Glas, Stoff, Holz, Pappe, Plastik, Leder etc.

Der kreative Teil beginnt anschließend, wenn die verschiedenen Ausprägungen der Parameter nun unterschiedlich kombiniert werden.
Wichtig dabei ist, dass es nicht dabei bleibt, die Parameter miteinander zu kombinieren, sondern sich hiervon anregen zu lassen, neue [[Ideen|Ideenmanagement]] zu entwickeln.

!Darstellung
Die Morphologische Matrix wird auf folgende Weise erstellt:
# ''Definition und Analyse des Problems:'' Das Problemfeld zu bestimmen, zu zerlegen und abzugrenzen. <br> Beispiel: ein neuer Tisch soll gefunden werden.<br><br>
# ''Bestimmen der Merkmale:'' Für die Fragestellung werden die bestimmenden Merkmale festgelegt und untereinander geschrieben. Es ist darauf zu achten, dass die Merkmale unabhängig voneinander, d.h. vollständig voneinander abgrenzbar, und problemrelevant sind und dass sie im Hinblick auf die Aufgabenstellung auch umsetzbar (=operationalisierbar) sind. Merkmale sind: Material, Höhe, Funktion, Ausmaße, Anzahl der Beine, Farbe<br><br>
# ''Bestimmen der möglichen Ausprägungen:'' Dann werden alle möglichen Ausprägungen des jeweiligen Merkmals rechts daneben geschrieben. So entsteht eine Matrix, in der jede Kombination von Ausprägungen aller Merkmale eine theoretisch mögliche Lösung ist. Da dies der wichtige Schritt für die Vollständigkeit der Matrix ist, bietet es sich an, hierzu andere [[Kreativitätstechniken]] wie [[Brainstorming]] oder [[Mind Mapping]] zu nutzen. Oder es wird dazu eine andere Gruppe eingesetzt, welche die ursprüngliche Aufgabenstellung noch nicht kennt. Dies kann Denkbarrieren vermeiden und originelle Lösungen hervorbringen. Ausprägungen zum Merkmal Material sind: Holz, Glas, Metall, Keramik, Pappe<br><br>
# ''Festlegen der Kombinationen:'' Jetzt wird zu jedem Merkmal eine Ausprägung gewählt, wodurch eine Kombination von Ausprägungen entsteht. Dies kann so erfolgen, dass bei Betrachten der Matrix intuitiv aus jeder Zeile eine Ausprägung ausgewählt wird und durch Linien miteinander verbunden. Mit den so entstehenden Kombinationen von Ausprägungen werden [[Ideen|Ideenmanagement]] entwickelt.<br><br>
# ''Bewerten der Alternativen und Auswählen der Lösung:'' Jede Kombination aus Schritt 4 stellt eine Lösungsvariante dar. Erst im letzten Schritt werden die vielversprechendsten Varianten einer  [[Bewertung]]  unterzogen und auf ihre Tauglichkeit  und Machbarkeit hin überprüft. Mögliche Kombination: Glastisch mit einer Höhe von 1 m für Küchentätigkeiten, rechteckig mit vier Beinen auf Rollen, … .

Um die Zahl an Lösungskombinationen nicht zu hoch werden zu lassen, erscheint es sinnvoll, nur 5 - 10 Merkmale und Ausprägungen für die Matrix zu wählen. Auch bei einer Begrenzung auf je 5 Begriffe ergeben sich schon 3125 Lösungsmöglichkeiten. Gegebenenfalls muss die Anzahl der Merkmale durch Erhöhen ihres Komplexitätsgrades vermindert (z.B. durch übergeordnete Begriffe) werden.


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://comas.offeneslernen.de/Media/app/4/Bilder-lernenLernen/morph_matrix_gr.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.swemorph.com/graphics/z_box0.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.swemorph.com/graphics/z_box0.jpg>>
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* http://comas.offeneslernen.de/lerno/MPX_content.php?PHPSESSID=&content_id=1151
* http://www.artm-friends.at/am/km/WM-Methoden/WM-Methoden-285.htm
* http://beat.doebe.li/bibliothek/w00444.html
* http://de.wikipedia.org/wiki/Morphologische_Analyse_%28Kreativit%C3%A4tstechnik%29
* http://www.innovationsmanagement.de/kreativitaetstechnik/tableau.html
* [[General Morphological Analysis. A general method for non-quantified modeling| http://www.swemorph.com/ma.html]]
/***
|Name|[[MoveablePanelPlugin]]|
|Source|http://www.TiddlyTools.com/#MoveablePanelPlugin|
|Documentation|http://www.TiddlyTools.com/#MoveablePanelPluginInfo|
|Version|3.0.3|
|Author|[[EricShulman]] - 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|move/size any tiddler or page element|
Use the mouse to move/resize any specific tiddler content, page element, or [[floating slider panel|NestedSlidersPlugin]].
!!!!!Documentation
>see [[MoveablePanelPluginInfo]]
!!!!!Configuration
<<<
<<option chkMoveablePanelShowStatus>> show position/size while moving/resizing a panel
<<option chkMoveablePanelShowManager>> automatically add Panel Manager button to undocked panels (see [[PanelManagerPlugin]])
<<<
!!!!!Revisions
<<<
2008.12.24 [3.0.3] added ESC key handling to cancel panel move/size (restores previous panel state)
|please see [[MoveablePanelPluginInfo]] for additional revision details|
2006.03.04 [1.0.0] Initial public release
<<<
!!!!!Code
***/
//{{{
version.extensions.MoveablePanelPlugin= {major: 3, minor: 0, revision: 3, date: new Date(2008,12,24)};
if (config.macros.moveablePanel===undefined) config.macros.moveablePanel={};
//}}}
// // translate
//{{{
// TRANSLATORS: copy this section to MoveablePanelPluginLingoXX (where 'XX' is a language/country code)
if (config.macros.moveablePanel===undefined) config.macros.moveablePanel={};
merge(config.macros.moveablePanel,{

	foldLabel:	'\u2212', // minus
	foldTip:	'FOLD=reduce panel size',
	unfoldLabel:	'+',
	unfoldTip:	'UNFOLD=restore panel size',
	hoverLabel:	'^',
	hoverTip:	'HOVER=keep panel in view when scrolling',
	scrollLabel:	'\u2248', // asymp
	scrollTip:	'SCROLL=allow panel to move with page',
	closeLabel:	'X',
	closeTip:	'CLOSE=hide this panel',
	dockLabel:	'\u221A', // radic
	dockTip:	'DOCK=reset size/position',

	noPid:		'unnamed panel',

	statusMsg:	'%0: pos=(%1,%2)%3 size=(%4,%5) z=%6',
	hoveredMsg:	'[hovering]',
	dockedTip:	'%0: docked',
	scrollMsg:	'%0: pos=(%1,%2)',
	msgDuration:	3000,

	moveTip:	'%0DRAG EDGE=move',
	sizeTip:	'(SHIFT=resize)',
	sizeWidthTip:	'(SHIFT=resize width)',
	sizeHeightTip:	'(SHIFT=resize height)',
	clickTip:	  'CLICK=bring to front, SHIFT-CLICK=send to back',
	dblclickdockTip:  'DOUBLE-CLICK=dock',
	dblclickunfoldTip:'DOUBLE-CLICK=unfold',

	foldParam:	'fold',
	hoverParam:	'hover',
	nocloseParam:	'noclose',
	nodockParam:	'nodock',
	undockedParam:	'undocked',

	jumpParam:	'jump',
	dockParam:	'dock',
	moveParam:	'move',
	labelParam:	'label',
	promptParam:	'prompt',

	allParam:	'all',
	nameParam:	'name',
	topParam:	'top',
	leftParam:	'left',
	widthParam:	'width',
	heightParam:	'height',

	managerParam:	'manager'
});
//}}}
// // global functions (general utilities)
//{{{
// if removeCookie() function is not defined by TW core, define it here (for <TW2.5)
if (window.removeCookie===undefined) {
	window.removeCookie=function(name) {
		document.cookie = name+'=; expires=Thu, 01-Jan-1970 00:00:01 UTC; path=/;'; 
	}
}
if (window.copyObject===undefined) {
	window.copyObject=function(src)	{
		for (var i in src) this[i]=typeof src[i]!='object'?src[i]:new copyObject(src[i]);
	}
}
if (window.compareObjects===undefined) {
	window.compareObjects=function(a,b) {
		if (a===b) return true;
		if (a==undefined||b==undefined) return false;
		for (var i in a) if (typeof a[i]!='object'?a[i]!==b[i]:!compareObjects(a[i],b[i])) return false;
		return true;
	}
}
if (window.isEmptyObject===undefined) {
	window.isEmptyObject=function(src) { for (var i in src) return false; return true; }
}

// cross-browser metrics
window.findMouseX=function(ev)
	{ if (!ev) return 0; return !config.browser.isIE?ev.pageX:(ev.clientX+findScrollX()); }
window.findMouseY=function(ev)
	{ if (!ev) return 0; return !config.browser.isIE?ev.pageY:(ev.clientY+findScrollY()); }
//}}}
// // macro
//{{{
merge(config.macros.moveablePanel,{
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {

		// ALTERNATIVE OUTPUT: Panel Manager macro extensions…
		if (this.manager && this.manager.handler(place,macroName,params,wikifier,paramString,tiddler))
			return; // processed by PanelManager

		// UNPACK KEYWORD PARAMS
		var showfold	 =params.contains(this.foldParam);
		var showhover	 =params.contains(this.hoverParam);
		var showclose	 =!params.contains(this.nocloseParam);
		var showdock	 =!params.contains(this.nodockParam);
		var showmanager  =params.contains(this.managerParam);
		var startundocked=params.contains(this.undockedParam);
		var jump	 =params.contains(this.jumpParam);
		var dock	 =params.contains(this.dockParam);
		var move	 =params.contains(this.moveParam);
		var all		 =params.contains(this.allParam);

		// UNPACK VALUE PARAMS
		params=paramString.parseParams('anon',null,true,false,false);
		var label =getParam(params,this.labelParam,null);
		var prompt=getParam(params,this.promptParam,null);
		var name  =getParam(params,this.nameParam,null);
		var top   =getParam(params,this.topParam,null);
		var left  =getParam(params,this.leftParam,null);
		var width =getParam(params,this.widthParam,null);
		var height=getParam(params,this.heightParam,null);

		// COMMANDS: JUMP, MOVE, DOCK
		if (jump||move||dock) {
			if (!label||!label.length) {
				var p=this.findPanel(name);
				if (jump) { if (p) this.scrollToPanel(p,true); else window.scrollTo(left,top); }
				if (move) { this.movePanel(p,left,top,true,true); }
				if (dock) { if (all) this.forAllPanels(this.dockPanel); else if (p) this.dockPanel(p); }
				return;
			}
			var tip=(jump?this.jumpParam:move?this.moveParam:dock?this.dockParam:'')+': '+name;
			var b=createTiddlyButton(place,label,prompt||tip, function(ev) {
				var cmm=config.macros.moveablePanel; var p=cmm.findPanel(this.name);
				if (this.jump) { if (p) cmm.scrollToPanel(p,true); else window.scrollTo(this.left,this.top); }
				if (this.move) { if (p) cmm.movePanel(p,this.left,this.top,true,true); }
				if (this.dock) { if (p) cmm.dockPanel(p); else if (this.all) cmm.forAllPanels(cmm.dockPanel); }
				return cmm.processed(ev)
			},'button');
			b.jump=jump; b.move=move; b.dock=dock;
			b.name=name; b.all=all;   b.left=left; b.top=top;
			return;
		}

		// PANEL SETUP
		var p=this.getPanel(place);
		this.cachePanel(p);
		addClass(p,'moveablePanel');
		p.pid=name;
		p.showmanager=showmanager;
		p.fixedheight=height||undefined;
		p.fixedwidth=width||undefined;
		this.addPanelButtons(p,showfold,showhover,showclose,showdock,showmanager);
		this.addMouseHandlers(p);
		if (startundocked) {
			this.undockPanel(p);
			if (!startingUp) { this.bringPanelToFront(p); this.scrollToPanel(p); }
		}
		if (this.manager) { this.manager.applyMap(p); this.manager.trackMap(p); }
		this.notify(p);
	},
//}}}
// // notifications
//{{{
	quiet: 0, // flag to suspend/resume notifications
	notify: function(p) { // notify others of panel changes
		if (this.quiet) return;
		if (this.manager) this.manager.notify(p); // pass notices to manager (updates viewers)
	},
//}}}
// // general panel utilities
//{{{
	getPanel: function(place) { // find containing panel or floating slider (use current element as fallback)
		var p=place;
		while (p && !(hasClass(p,'moveablePanel')||hasClass(p,'floatingPanel'))) p=p.parentNode;
		return p||place;
	},
	getAllPanels: function(zSort) { // find 'moveablePanel' elements (optionally sort by zIndex)
		var panels=[];
		var sortByZindex=function(a,b){
			var v1=parseInt(a.style.zIndex); if (isNaN(v1)) v1=0;
			var v2=parseInt(b.style.zIndex); if (isNaN(v2)) v2=0;
			return(v1==v2)?0:(v1>v2?1:-1);
		}
		// if native browser fn is defined, use it (*much* more efficient!)
		if (document.getElementsByClassName) { 
			var elems=document.getElementsByClassName('moveablePanel');
			for (var i=0; i<elems.length; i++) panels.push(elems[i]);
			return zSort?panels.sort(sortByZindex):panels;
		}
		// otherwise, find all DIVs and SPANs with the right class
		// NOTE: IE requires use of Enumerator() to iterate over elements, or it FREEZES UP COMPLETELY!!
		var isIE=config.browser.isIE;
		var elems=document.getElementsByTagName('DIV');
		for (var i=isIE?new Enumerator(elems):0; isIE?!i.atEnd():(i<elems.length); isIE?i.moveNext():i++) {
			var panel=isIE?i.item():elems[i];
			if (hasClass(panel,'moveablePanel')) panels.push(panel);
		}
		var elems=document.getElementsByTagName('SPAN');
		for (var i=isIE?new Enumerator(elems):0; isIE?!i.atEnd():(i<elems.length); isIE?i.moveNext():i++) {
			var panel=isIE?i.item():elems[i];
			if (hasClass(panel,'moveablePanel')) panels.push(panel);
		}
		return zSort?panels.sort(sortByZindex):panels;
	},
	findPanel: function(pid) { // find a named panel
		var p=this.getAllPanels();
		for (var i=0; i<p.length; i++) { if (pid && p[i].pid==pid) return p[i]; }
		return undefined;
	},
	forAllPanels: function(callback) { // invoke a function on each panel
		var panels=this.getAllPanels();
		this.quiet++;
		for (var i=0; i<panels.length; i++) callback.apply(this,[panels[i]]);
		this.quiet--;
		this.notify('all');
	},
	cachePanel: function(p) { // save original styles and handlers
		if (!p.saved) p.saved={ 
			x:p.style.left||'', y:p.style.top||'', w:p.style.width||'', h:p.style.height||'',
			z:p.style.zIndex||'', pos:p.style.position||'', title: p.title,
			mouseover:p.onmouseover, mouseout:p.onmouseout,
			mousedown:p.onmousedown, mousemove:p.onmousemove, dblclick:p.ondblclick
		};
	},
	restorePanel: function(p) { // restore original styles
		if (!p.saved) return;
		p.style.left=p.saved.x; p.style.top=p.saved.y; p.style.width=p.saved.w; p.style.height=p.saved.h;
		p.style.zIndex=p.saved.z; p.style.position=p.saved.pos; p.title=p.saved.title;
		removeClass(p,'folded'); removeClass(p,'hover'); removeClass(p,'undocked');
	},
//}}}
// // panel metrics
//{{{
	getPanelOffset: function(p) { // adjustment for child elements inside relative/floatingPanel containers
		var r=new Object(); r.x=0; r.y=0; if (!p) return r;
		var pp=p.parentNode; while (pp && !(pp.style&&pp.style.position=='relative')) pp=pp.parentNode;
		if (pp) { r.x+=findPosX(pp); r.y+=findPosY(pp); }
		var pp=p.parentNode; while (pp && !hasClass(pp,'floatingPanel')) pp=pp.parentNode;
		if (pp) { r.x+=findPosX(pp); r.y+=findPosY(pp); }
		return r;
	},
	// PROBLEM: the offsetWidth/offsetHeight do not seem to account for padding or borders
	// WORKAROUND: subtract padding and border (in px) from width and height
	// ISSUE: I still don't understand why this is needed…
	// TBD: get padding/border values from p.style and convert to px
	// NOTE: 10.6667 seems to be about 1em…
	getPanelEdgeWidth:
	  	function(p) { return 10.6667; },
	getPanelEdgeHeight:
		function(p) { return 10.6667; },
	getPanelHeight:
		function(p) { var pad=10.6667; var border=1; return p.offsetHeight-(pad*2+border*2); },
	getPanelWidth:
		function(p) { var pad=10.6667; var border=1; return p.offsetWidth -(pad*2+border*2); },
//}}}
// // panel stacking (zIndex)
//{{{
	isStackable: function(p) { // zIndex is only effective with absolute or fixed elements
		return (['absolute','fixed'].contains(p.style.position)&&!hasClass(p,'popup'));
	},
	normalizeStack: function(panels) { // set zIndex to correspond to stack order
		for (var i=0; i<panels.length; i++) {var z=panels[i].style.zIndex;
			if (z==0||z=='auto') continue; // if not stacking (e.g., 'auto', '', or null)
			if (z<10000 || z>10000) continue; // use large values for "always in front/back"
			if (z!=i+2) panels[i].style.zIndex=i+2;
			if (this.manager) this.manager.trackMap(panels[i]);
		}
		return panels;
	},
	bringPanelToFront: function(p) { if (!p) return;
		if (!this.isStackable(p)) return; // can't be stacked
		var panels=this.getAllPanels(true);
// WFFL - normalizing every time works, but takes too long
//		if (p.style.zIndex>panels.length+2) return; // stay in front
//		this.normalizeStack(panels);
//		p.style.zIndex=panels.length+2;
// WFFL - for now, just bump up the max (ignore z>10000) and normalize much less often
		if (p.style.zIndex>1000) this.normalizeStack(panels);
		var zMax=0; if (panels.length) {
			var i=panels.length-1; zMax=parseInt(panels[i].style.zIndex);
			while (zMax>10000 && i>=0) zMax=parseInt(panels[--i].style.zIndex);
			if (p==panels[i]) return; // already in front
			if (isNaN(zMax)) zMax=0;
		}
		p.style.zIndex=zMax+1;
		this.notify(p);
	},
	sendPanelToBack: function(p) { if (!p) return;
		if (!this.isStackable(p)) return; // can't be stacked
		var panels=this.getAllPanels(true);
// WFFL - normalizing every time works, but takes too long
//		if (p.style.zIndex<2) return; // stay in back
//		this.normalizeStack(panels);
//		p.style.zIndex=1;
// WFFL - for now, just bump down the min (ignore z<10000) and normalize much less often
		if (p.style.zIndex<1000) this.normalizeStack(panels);
		var zMin=0; if (panels.length) {
			var i=0; zMin=parseInt(panels[i].style.zIndex);
			while (zMin<10000 && i<panels.length-1) zMin=parseInt(panels[++i].style.zIndex);
			if (p==panels[i]) return; // already in back
			if (isNaN(zMin)) zMin=0;
		}
		p.style.zIndex=zMin-1;
		this.notify(p);
	},
	returnPanelToStack: function(p) { if (!p) return;
		p.style.zIndex=p.saved?p.saved.zIndex:'';
		this.notify(p);
	},
//}}}
// // panel scrolling 
//{{{
	noScrollX: 0, // flags to disable TW built-in scrolling behavior
	noScrollY: 0, // set by hijacks, cleared by ensurePanelVisible(), below
	// scroll view to show panel along nearest edge of window or centered (optional)
	scrollToPanel: function(p,center) { if (!p) return;
		if (hasClass(p,'popup')) return; // popup=let core scrolling handle it
		if (hasClass(p,'hover')) return; // hover=always in view=don't scroll
		var scrollSize=findWindowWidth()-document.body.offsetWidth; // width of scrollbar
		var sx=findScrollX();	var ww=findWindowWidth()-scrollSize;
		var sy=findScrollY();	var wh=findWindowHeight()-scrollSize;
		var px=findPosX(p);	var pw=p.offsetWidth;
		var py=findPosY(p);	var ph=p.offsetHeight;
		var nx=sx; var ny=sy; // assume no scrolling is needed
		// if BR is not in view, scroll to show BR
		if (px+pw>sx+ww) nx=px+pw-ww;
		if (py+ph>sy+wh) ny=py+ph-wh;
		// if TL not in view or too big… scroll to show TL
		if (px<nx || px>nx+ww || px+pw>nx+ww) nx=px;
		if (py<ny || py>ny+wh || py+ph>ny+wh) ny=py;
		// optionally, center in view (if panel fits)
		if (center && pw<ww) nx-=(ww-pw)/2;
		if (center && ph<wh) ny-=(wh-ph)/2;
		if (nx!=sx||ny!=sy) { // if we need to scroll…
			window.scrollTo(nx,ny);
			if (config.options.chkMoveablePanelShowStatus && !startingUp) {
				var id=hasClass(p,'tiddler')?p.getAttribute('tiddler'):p.pid;
				this.timedMessage(this.scrollMsg.format([id||this.noPid,px,py]),this.msgDuration);
			}
			this.notify(p);
		}
	},
	// bring to front and scroll into view (with optional ASYNC)
	ensurePanelVisible: function(p,delay) { if (!p) return;
		if (delay && !startingUp) { // wait for core animation to complete…
			if (hasClass(p,'tiddler'))
				p=config.macros.moveablePanel.findPanel(p.getAttribute('tiddler'))||p;
			if (!p.id) p.id=new Date().getTime()+Math.random(); // unique ID
			var code='config.macros.moveablePanel.ensurePanelVisible(document.getElementById("%0"));';
			setTimeout(code.format([p.id]),delay);
			return;
		}
		// unblock scrolling and bring the panel into view
		if (this.noScrollX) this.noScrollX--; if (this.noScrollY) this.noScrollY--;
		if (hasClass(p,'popup')) return; // leave popups alone!
		this.bringPanelToFront(p);
		if (this.noScrollX+this.noScrollY==0 && !startingUp) // no scroll during document startup
			this.scrollToPanel(p);
	},
//}}}
// // panel status
//{{{
	formatPanelStatus: function(p) {
		var s=p.style; var msg=this.statusMsg.format([p.pid||this.noPid,
			s.left,s.top,hasClass(p,'hover')?this.hoveredMsg:'',s.width,s.height,s.zIndex]);
		return msg.replace(/(\.[0-9]+)|px/g,''); // remove decimals and 'px'
	},
	showPanelStatus: function(p,show) { // display panel info in titlebar while moving/sizing
		if (!config.options.chkMoveablePanelShowStatus) return;
		if (show) document.title=this.formatPanelStatus(p)
		else refreshPageTitle();
	},
	timedMessage: function(msg,duration) {
		document.title=msg; setTimeout('refreshPageTitle()',duration);
	},
	getPanelTooltip: function(p) {
		return hasClass(p,'undocked')?this.formatPanelStatus(p):this.dockedTip.format([p.pid||this.noPid]);
	},
//}}}
// // panel actions
//{{{
	undockPanel: function(p,front) { // undocked with default pos/size
		if (hasClass(p,'undocked')) return; // already undocked
		// get size BEFORE undocking
		p.style.width=p.fixedwidth  ||(this.getPanelWidth(p)+'px');
		p.style.height=p.fixedheight||(this.getPanelHeight(p)+'px');
		addClass(p,'undocked');	if (!this.isStackable(p)) p.style.position='absolute'; // UNDOCK it
		// set position AFTER undocking
		var offset=this.getPanelOffset(p);
		p.style.left=findPosX(p)-offset.x+'px'; p.style.top=findPosY(p)-offset.y+'px';
		if (front) this.bringPanelToFront(p);
		this.notify(p);
	},
	dockPanel: function(p) { // reset to docked pos/size
		if (!hasClass(p,'undocked')) return; // already docked
		this.restorePanel(p); // reset panel
		// FOR FLOATING SLIDERS: trigger slider adjustment handler (if any)
		if (hasClass(p,'floatingPanel') && window.adjustSliderPos)
			window.adjustSliderPos(p.parentNode,p.button,p);
		this.quiet++; if (this.manager) this.manager.trackMap(p); this.quiet--;
		this.notify(p)
	},
	closePanel: function(p) { // dock panel, then close (for tiddlers and floating sliders)
		var t=story.findContainingTiddler(p);
		var isTiddler=t&&this.findPanel(t.getAttribute('tiddler'));
		var isFloating=hasClass(p,'floatingPanel');
		if (!isTiddler) // when closing TIDDLERS, leave them undocked (keeps size/pos)
			this.dockPanel(p);
		// FOR FLOATING SLIDERS: set focus and do a fake click on slider button
		if (isFloating) { p.button.focus(); onClickNestedSlider({target:p.button}); }
		// FOR TIDDLERS: call story.closeTiddler()
		if (isTiddler) { story.closeTiddler(t.getAttribute('tiddler')); }
	},
	movePanel: function(p,x,y,show,centered) { if (!p) return;
		this.quiet++;
		this.undockPanel(p);
		// adjust for child elements inside relative/floatingPanel containers
		var offset=this.getPanelOffset(p);
		p.style.left=x-offset.x+'px'; p.style.top=y-offset.y+'px';
		if (show) { this.bringPanelToFront(p); this.scrollToPanel(p,centered); }
		this.quiet--;
		this.showPanelStatus(p,true);
		if (this.manager) this.manager.trackMap(p);
	},
	foldPanel: function(p) { // toggle panel height
		if (hasClass(p,'folded')) removeClass(p,'folded'); else addClass(p,'folded');
		if (this.manager) this.manager.trackMap(p);
		this.notify(p);
	},
	hoverPanel: function(p) { // toggle fixed position
		if (hasClass(p,'hover')) {
			removeClass(p,'hover');
			var offset=this.getPanelOffset(p);
			p.style.left=p.offsetLeft+findScrollX()-offset.x+'px';
			p.style.top=p.offsetTop+findScrollY()-offset.y+'px';
		} else {
			var offset=this.getPanelOffset(p);
			var ww=findWindowWidth(); var wh=findWindowHeight();
			p.style.left=(p.offsetLeft-findScrollX()+offset.x)%ww+'px';
			p.style.top =(p.offsetTop -findScrollY()+offset.y)%wh+'px';
			addClass(p,'hover'); 
		}
		if (this.manager) this.manager.trackMap(p);
		this.notify(p);
	},
	resetPanel: function(p) { // reset to session starting pos/size
		if (this.manager) this.manager.resetPanel(p); else this.dockPanel(p);
	},
//}}}
// // menu buttons
//{{{
	processed: function(ev) { var ev=ev||window.event; // use to end event handling for menus and mouse actions
		if (ev) { ev.cancelBubble=true; if (ev.stopPropagation) ev.stopPropagation(); } return false;
	},
	addPanelButtons: function(p,showfold,showhover,showclose,showdock,showmanager) {
		if (p.menu) return; // only once per panel
		function cmd(menu,label,tip,callback,show,arg) {
			var fn=function(ev){return this.callback.apply(config.macros.moveablePanel,[this,ev,this.arg]);}
			var b=createTiddlyButton(menu,label,tip,fn,'moveablePanelButton');
			b.style.display=show?'inline':'none'; b.callback=callback; b.arg=arg;
			return b;
		}
		var m=createTiddlyElement(p,'div',null,'moveablePanelMenu');
		p.showfold=showfold;
		p.foldbutton= cmd(m,this.foldLabel,this.foldTip,this.foldHandler,showfold);
		p.unfoldbutton= cmd(m,this.unfoldLabel,this.unfoldTip,this.foldHandler,false);
		p.showhover=showhover;
		p.hoverbutton=cmd(m,this.hoverLabel,this.hoverTip,this.hoverHandler,showhover);
		p.scrollbutton=cmd(m,this.scrollLabel,this.scrollTip,this.hoverHandler,false);
		p.showdock=showdock;
		p.dockbutton= cmd(m,this.dockLabel,this.dockTip,this.dockHandler,showdock);
		p.showclose=showclose;
		p.closebutton=cmd(m,this.closeLabel,this.closeTip,this.closeHandler,showclose);
		p.showmanager=showmanager;
		if (this.manager) p.managerbutton=cmd(m,this.manager.buttonLabel,this.manager.buttonTip,
			this.manager.popup,showmanager,p.pid);
		p.menu=m;
	},
	togglePanelButtons: function(p,show) { if (!p||!p.menu) return;
		var undocked=hasClass(p,'undocked');
		var floating=hasClass(p,'floatingPanel');
		var hover=hasClass(p,'hover');
		var folded=hasClass(p,'folded');
		var t=story.findContainingTiddler(p);
		var tiddler=t&&this.findPanel(t.getAttribute('tiddler'));
		var show=show&&(undocked||floating);
		p.menu.style.display=show?'inline':'none';
		if (p.showfold)  p.foldbutton.style.display  =!folded?'inline':'none';
		if (p.showfold)  p.unfoldbutton.style.display= folded?'inline':'none';
		if (p.showhover) p.hoverbutton.style.display =!hover?'inline':'none';
		if (p.showhover) p.scrollbutton.style.display= hover?'inline':'none';
		if (p.showdock)  p.dockbutton.style.display =undocked?'inline':'none';
		if (p.showclose) p.closebutton.style.display=floating||(tiddler&&undocked)?'inline':'none';
		if (p.managerbutton) { // see [[PanelManagerPlugin]]
			var show=p.showmanager||config.options.chkMoveablePanelShowManager;
			p.managerbutton.style.display=show?'inline':'none';
		}
	},
	foldHandler: function(place,ev){ var p=this.getPanel(place);
		this.foldPanel(p); this.togglePanelButtons(p,true); return this.processed(ev); },
	hoverHandler: function(place,ev){ var p=this.getPanel(place);
		this.hoverPanel(p); this.togglePanelButtons(p,true); return this.processed(ev); },
	dockHandler: function(place,ev){ var p=this.getPanel(place);
		this.dockPanel(p); this.togglePanelButtons(p,true); return this.processed(ev); },
	closeHandler: function(place,ev){ var p=this.getPanel(place);
		this.closePanel(p); this.togglePanelButtons(p,true); return this.processed(ev); },
//}}}
// // mouse handlers
//{{{
	addMouseHandlers: function(p) {
		if (p.handlers) return true; // only add handlers ONCE
		p.onmouseover=function(ev) { var ev=ev||window.event;
			var r=config.macros.moveablePanel.mouseover(this,ev);
			return r&&this.saved.mouseover?this.saved.mouseover.apply(this,arguments):true;
		};
		p.onmouseout=function(ev) { var ev=ev||window.event;
			var r=config.macros.moveablePanel.mouseout(this,ev);
			return r&&this.saved.mouseout?this.saved.mouseout.apply(this,arguments):true;
		};
		p.onmousemove=function(ev) { var ev=ev||window.event;
			var r=config.macros.moveablePanel.mousemove(this,ev);
			return r&&this.saved.mousemove?this.saved.mousemove.apply(this,arguments):true;
		};
		p.ondblclick=function(ev) { var ev=ev||window.event;
			var r=config.macros.moveablePanel.dblclick(this,ev);
			return r&&this.saved.dblclick?this.saved.dblclick.apply(this,arguments):r;
		};
		p.onmousedown=function(ev) { var ev=ev||window.event;
			var r=config.macros.moveablePanel.mousedown(this,ev);
			return r&&this.saved.mousedown?this.saved.mousedown.apply(this,arguments):r;
		};
		p.handlers=true;
	},
	isEdge: function(p,ev) { // near 'edge' of panel (or child element)?
		var ev=ev||window.event; var target=resolveTarget(ev);
		if (!p) return false;
		// ignore form input fields
		if (['input','select','option','textarea'].contains(target.nodeName.toLowerCase())) return false;
		var left=findPosX(p); var top=findPosY(p);
		var width=p.offsetWidth; var height=p.offsetHeight;
		var x=findMouseX(ev); var y=findMouseY(ev);
		if (hasClass(p,'hover')) { x-=findScrollX(); y-=findScrollY(); } // window-relative panel
		if (x<left||y<top||x>=left+width||y>=top+height) { // outside of panel
			if (p==target || p!=this.getPanel(target)) return false;
			return this.isEdge(target,ev); // check target child element
		}
		var edgeW=this.getPanelEdgeWidth(p); var edgeH=this.getPanelEdgeHeight(p);
		var isT=(y-top<edgeH); var isL=(x-left<edgeW);
		var isB=(top+height-y<edgeH); var isR=(left+width-x<edgeW);
		return isT||isL||isB||isR;
	},
	// temporary element during move/size keeps document from shrinking 
	addGhost: function(p) {
		var g=document.getElementById('moveablePanelGhost');
		if (!g) g=createTiddlyElement(document.body,'div','moveablePanelGhost','moveablePanelGhost');
		var border=1; // note: must match css for 'moveablePanelGhost' WFFL-HACK
		g.style.left=findPosX(p)+'px';
		g.style.top=findPosY(p)+'px';
		g.style.width=((p.offsetWidth-border*2)||0)+'px';
		g.style.height=((p.offsetHeight-border*2)||0)+'px';
	},
	clearGhost: function() {
		var e=document.getElementById('moveablePanelGhost');
		if (e) e.parentNode.removeChild(e);
	},
	// MOUSEOVER=SHOW MENU
	mouseover: function(place,ev) { var ev=ev||window.event;
		var p=this.getPanel(place);
		addClass(p,'selected'); // shows toolbar-classed items
		this.togglePanelButtons(p,true);
		return true;
	},
	// MOUSEOUT=HIDE MENU
	mouseout: function(place,ev) { var ev=ev||window.event;
		var p=this.getPanel(place);
		removeClass(p,'selected'); // hides toolbar-classed items
		this.togglePanelButtons(p,false);
		return true;
	},
	// MOUSEMOVE=SHOW MENU AND SET CURSOR/TIP
	mousemove: function(place,ev) { var ev=ev||window.event;
		var p=this.getPanel(place);
		p.style.cursor='auto'; p.title=p.saved?p.saved.title:'';
		if (!this.isEdge(p,ev)) return true;
		var fw=p.fixedwidth;  if (fw==null) fw=undefined;
		var fh=p.fixedheight; if (fh==null) fh=undefined;

		p.title=this.moveTip.format([p.pid?p.pid+': ':'']);
		if (fw===undefined&&fh===undefined) p.title+=' '+this.sizeTip;
		else if  (fw===undefined) p.title+=' '+this.sizeWidthTip;
		else if  (fh===undefined) p.title+=' '+this.sizeHeightTip;
		if (hasClass(p,'undocked')) {
			p.title+=', '+this.clickTip+', ';
			p.title+=hasClass(p,'folded')?this.dblclickunfoldTip:this.dblclickdockTip;
		}
		p.style.cursor='move';
		if (ev.shiftKey&&!(fw&&fh)) { // set resizing cursor (if not fixed width/height)
			var left=findPosX(p); var top=findPosY(p);
			var width=p.offsetWidth; var height=p.offsetHeight;
			var x=findMouseX(ev); var y=findMouseY(ev);
			if (hasClass(p,'hover')) { x-=findScrollX(); y-=findScrollY(); } // window-relative panel
			var edgeW=this.getPanelEdgeWidth(p); var edgeH=this.getPanelEdgeHeight(p);
			var isT=(y-top<edgeH); var isL=(x-left<edgeW);
			var isB=(top+height-y<edgeH); var isR=(left+width-x<edgeW);
			p.style.cursor=(fh===undefined?(isT?'n':(isB?'s':'')):'')
				+(fw===undefined?(isL?'w':(isR?'e':'')):'')+'-resize';
		}
		return true;
	},
	// DOUBLE-CLICK=DOCK OR UNFOLD
	dblclick: function(place,ev) { var ev=ev||window.event;
		var p=this.getPanel(place);
		if (!this.isEdge(p,ev)) return true;
		// if folded… unfold, otherwise… undock
		if (hasClass(p,'folded')) this.foldPanel(p); else this.dockPanel(p);
		this.togglePanelButtons(p,false);
		return this.processed(ev);
	},
	// MOUSEDOWN=START MOVE/SIZE, CLICK=BRING TO FRONT, SHIFT-CLICK=SEND TO BACK
	mousedown: function(place,ev) { var ev=ev||window.event;
		var p=this.getPanel(place);

		// CLICK ALWAYS BRINGS TO FRONT
		this.quiet++;
		this.bringPanelToFront(p);
		if (this.manager) this.manager.trackMap(p);
		this.quiet--;
		if (!this.isEdge(p,ev)) return true;

		// start capturing mouse events and set mouse/key handlers
		var target=p; // if 'capture' not supported, track in panel only
		if (document.body.setCapture) // IE
			{ document.body.setCapture(); var target=document.body; }
		if (window.captureEvents) // moz
			{ window.captureEvents(Event.MouseMove|Event.MouseUp,true); var target=window; }
 		if (target.onmousemove!=undefined) target.saved_mousemove=target.onmousemove;
		target.onmousemove=this.dragmove;
		if (target.onmouseup!=undefined) target.saved_mouseup=target.onmouseup;
		target.onmouseup=this.dragstop;
 		if (target.onkeydown!=undefined) target.saved_keydown=target.onkeydown;
		target.onkeydown=this.dragkey;

		// calculate and save drag data in target element
		var x=findMouseX(ev); var left=findPosX(p); var width =p.offsetWidth;
		var y=findMouseY(ev); var top =findPosY(p); var height=p.offsetHeight;
		var sizing=ev.shiftKey;
		var edgeW=this.getPanelEdgeWidth(p); var edgeH=this.getPanelEdgeHeight(p);
		var isT=(y-top<edgeH); var isL=(x-left<edgeW);
		var isB=(top+height-y<edgeH); var isR=(left+width-x<edgeW);
		var d=new Object();
		d.panel=p; d.left=left; d.top=top;
		d.width=this.getPanelWidth(p); d.height=this.getPanelHeight(p);
		d.sizing=sizing; d.edgeW=edgeW; d.edgeH=edgeH;
		d.isT=isT; d.isL=isL; d.isB=isB; d.isR=isR; d.offset=this.getPanelOffset(p);
		d.saved={ x:p.style.left, y:p.style.top, w:p.style.width, h:p.style.height,
			z:p.style.zIndex, pos:p.style.position, classname:p.className };
		target.data=d;
		this.addGhost(p); // keep document from shrinking during move/size
		return this.processed(ev);
	},
	// MOUSEMOVE (during drag)=move/size panel
	dragmove: function(ev){ var ev=ev||window.event; var cmm=config.macros.moveablePanel;
		var d=this.data; var p=d.panel;
		if (!p) { this.onmousemove=this.saved_mousemove?this.saved_mousemove:null; return; }

		cmm.quiet++; // save all notifications until the end…

		// ensure panel is undocked and scrolled into view, THEN get starting mouse and scroll positions
		if (!hasClass(p,'undocked'))
			{ cmm.undockPanel(p,true); if (this.manager) this.manager.trackMap(p); }
		if (d.x===undefined) // first move event only
			{ cmm.scrollToPanel(p); d.x=findMouseX(ev); d.y=findMouseY(ev); }

		// get current mouse pos
		var newX=findMouseX(ev); var newY=findMouseY(ev);

		// calculate new TLWH (start with current panel pos/size)
		var startX=d.x; var startY=d.y; var offsetX=d.offset.x; var offsetY=d.offset.y;
		var L=d.left; var T=d.top; var W=d.width; var H=d.height;
		var newL=L; var newT=T; var newW=p.fixedwidth||W; var newH=p.fixedheight||H;
		if (d.sizing) { // resize panel
			var minW=d.edgeW*2; var minH=d.edgeH*2; // stay bigger than edge areas
			if (hasClass(p,'folded')) this.fold(p.foldButton,ev); // un-fold first!
			if (d.isT) newH=H-newY+startY+1;
			if (d.isB) newH=H+newY-startY+1;
			if (d.isL) newW=W-newX+startX+1;
			if (d.isR) newW=W+newX-startX+1;
			if (d.isT) newT=T-offsetY+newY-startY+1; else newT=T-offsetY; 
			if (d.isL) newL=L-offsetX+newX-startX+1; else newL=L-offsetX; 
			if ((d.isL||d.isR)&&!p.fixedwidth)  newW=(newW>minW?newW:minW);
			if ((d.isT||d.isB)&&!p.fixedheight) newH=(newH>minH?newH:minH);
		} else { // move panel
			newL=L-offsetX+newX-startX+1;
			newT=T-offsetY+newY-startY+1;
		}
		if (hasClass(p,'hover')) { // hover=stay on first screen
			var ww=findWindowWidth(); var wh=findWindowHeight();
			newL+=offsetX; newT+=offsetY; // hover=no relative offset (window-relative)
			// WFFL lower right is off… a bit too far (perhaps scrollwidth?)
			if (newL+newW>ww) newL=ww-newW; if (newT+newH>wh) newT=wh-newH; // limit lower right
			if (newL<0) newL=0; if (newT<0) newT=0; // limit upper left
		} else { // normal floating panel=limit upper left (stay on page)
			if (newL+offsetX<0) newL=0-offsetX; if (newT+offsetY<0) newT=0-offsetY;
		}

		// move the panel and scroll into view as needed
		p.style.left=newL.toString()+'px';
		p.style.top=newT.toString()+'px';
		if (d.sizing) p.style.width=newW.toString()+'px';
		if (d.sizing) p.style.height=newH.toString()+'px';
		cmm.scrollToPanel(p);

		// report new position and notify panel manager… done!
		cmm.quiet--; cmm.showPanelStatus(p,true); cmm.notify(p);
		return cmm.processed(ev);
	},
	dragkey: function(ev){ var ev=ev||window.event;
		var d=this.data; var p=d.panel;
		if (ev.keyCode==27) { // ESC=CANCEL… restore panel to previous pos/size
			p.style.left =d.saved.x; p.style.top   =d.saved.y;
			p.style.width=d.saved.w; p.style.height=d.saved.h;
			p.style.zIndex=d.saved.z;
			p.style.position=d.saved.pos;
			p.className=d.saved.classname;
			return this.onmouseup(ev);
		}
		if (this.saved_keydown) return this.saved_keydown(ev);
	},
	// MOUSEUP: END MOVE/SIZE, SHIFT-CLICK=SEND TO BACK
	dragstop: function(ev){ var ev=ev||window.event; var cmm=config.macros.moveablePanel;
		var newX=findMouseX(ev); var newY=findMouseY(ev);
		if (this.releaseCapture) this.releaseCapture(); // IE
		if (this.releaseEvents) this.releaseEvents(Event.MouseMove|Event.MouseUp); // moz
		this.onmousemove=this.saved_mousemove?this.saved_mousemove:null;
		this.onmouseup=this.saved_mouseup?this.saved_mouseup:null;
		this.onkeydown=this.saved_keydown?this.saved_keydown:null;
		var d=this.data; var p=d.panel;
		if (ev.shiftKey && d.x==newX && d.y==newY && cmm.isEdge(p,ev))
			cmm.sendPanelToBack(p); // SHIFT-CLICK *EDGE*
		cmm.togglePanelButtons(p,true);
		cmm.quiet++; if (cmm.manager) cmm.manager.trackMap(p); cmm.quiet--;
		cmm.clearGhost(); // allow document to adjust extents (if needed)
		cmm.showPanelStatus(p,false); cmm.timedMessage(cmm.formatPanelStatus(p),cmm.msgDuration);
		return cmm.processed(ev);
	},
//}}}
// // css definitions
//{{{
	css: '/*{{{*/\n'
		+'.moveablePanelMenu\n'
			+'\t{ display:none; position:absolute; right:.5em; top:-1em; }\n'
		+'.undocked .selected.moveablePanelMenu\n'
			+'\t{ display:inline; }\n'
		+'.floatingPanel .selected .moveablePanelMenu\n'
			+'\t{ display:inline; }\n'
		+'.hover\n'
			+'\t{ position:fixed !important; }\n'
		+'.folded\n'
			+'\t{ height:1.5em !important; overflow:hidden !important; }\n'
		+'.tiddler .folded\n'
			+'\t{ height:2em !important; }\n'
		+'.folded  .moveablePanelMenu\n'
			+'\t{ top:.5em; }	/* buttons fit in folded panel */\n'
		+'.tiddler .moveablePanelMenu\n'
			+'\t{ top:.2em; }	/* buttons fit in tiddler title */\n'
		+'.undocked .toolbar\n'
			+'\t{ padding-right:7.5em; }	/* make room for buttons next to toolbar */\n'
		+'.floatingPanel .moveablePanelMenu\n'
			+'\t{ right:1em;top:1em; } /* buttons fit in floating panel */\n'
		+'.moveablePanelButton\n {'
			+'\tbackground:#ccc !important; color:#000 !important;\n'
			+'\tborder:1px solid #666; padding:0 .25em; margin:0px 1px;\n'
			+'}\n'
		+'.moveablePanelButton:hover\n'
			+'\t{ background:#fff !important; color:#000 !important; }\n'
		+'.popup\n'
			+'\t{ z-index:9999999 !important; } /* popups MUST always be on top!  */\n'
		+'.moveablePanelGhost\n'
			+'\t{ position:absolute; border:1px dotted #999; }\n'
		+'/*}}}*/'
});
//}}}
// // load time initialization
//{{{
// defaults for options
if (config.options.txtMoveablePanelMapName===undefined)
	config.options.txtMoveablePanelMapName='DefaultMap';
if (config.options.chkMoveablePanelShowStatus===undefined)
	config.options.chkMoveablePanelShowStatus=true;
if (config.options.chkMoveablePanelShowManager===undefined)
	config.options.chkMoveablePanelShowManager=true;

// set up shadow stylesheet, then load styles (might be customized)
config.shadowTiddlers.MoveablePanelStyles=config.macros.moveablePanel.css;
var css=store.getRecursiveTiddlerText('MoveablePanelStyles',config.macros.moveablePanel.css,10);
setStylesheet(css,'moveablePanelStyles');
//}}}
// // hijacks
//{{{
// adjust popup placement to account for the current horizontal scrollbar
// offset (if any), so that popups will appear in the correct location, even
// when their 'root' element is scrolled far from the page origin.
var fn=Popup.place; fn=fn.toString(); if (fn.indexOf('findScrollX')==-1) { // only once
	fn=fn.replace(/winWidth\s*-\s*scrollWidth\s*-\s*1/,
		'findScrollX() + winWidth - scrollWidth - 1');
	fn=fn.replace(/winWidth\s*-\s*popupWidth\s*-\s*scrollWidth\s*-\s*1/,
		'findScrollX() + winWidth - popupWidth - scrollWidth - 1');
	eval('Popup.place='+fn);
}
//}}}
//{{{
// window.scrollTo() is used throughout the core (and plugins) to scroll to a *vertical*
// position as computed by ensureVisible(), in order to bring a tiddler into view.
// Unfortunately, the *horizontal* scroll position is almost always hard-coded to 0
// (i.e. a return to the left edge of the page).  Normally, this is not a problem,
// since a page is rarely scrolled horizontally.  However, when there are moveable
// panels, they can appear far from the left edge, so always scrolling to the left
// edge is very disruptive.  In addition, unwanted scrolling can occur as a side
// effect when displaying or refreshing a tiddler (e.g., switching between
// view/edit templates).  These hijacks adds control flags ('noScrollX' and 'noscrollY')
// that can be used to temporarily disable scrolling within the document.
if (window.scrollTo_moveablePanel==undefined) { // only once
window.scrollTo_moveablePanel=window.scrollTo;
	window.scrollTo=function(x,y) {
		var cmm=config.macros.moveablePanel;
		if (cmm.noScrollX&&cmm.noScrollY) return;
		x=cmm.noScrollX?findScrollX():x;
		y=cmm.noScrollY?findScrollY():y;
		window.scrollTo_moveablePanel(x,y);
	}
}
// ensureVisible() is used to calculate the y-offset of a tiddler, just before scrolling
// This tweak sets up an ASYNC timer to invoke the 'bring to front/scroll into view'
// function for 'tiddler' and 'popup' classes.  This allows the function
// to be triggered *after* core scrolling occurs, so the fixups are not
// stomped on by the core's normal scroll handling
if (window.ensureVisible_moveablePanel==undefined) { // only once
	window.ensureVisible_moveablePanel=window.ensureVisible;
	window.ensureVisible=function(e) {
		var ny=ensureVisible_moveablePanel.apply(this,arguments); // get core value

		// fixup height to account for horizontal scrollbar (if present)
		var atBottom=findPosY(e)+e.offsetHeight>=findScrollY()+findWindowHeight();
		var hasHScroll=document.documentElement.scrollWidth>findWindowWidth();
		var hScrollSize=findWindowWidth()-document.body.offsetWidth;
		if (atBottom && hasHScroll) ny+=hScrollSize;

		// defer scrolling for tiddlers and popups (except during startup)
		if (!startingUp && (hasClass(e,'tiddler')||hasClass(e,'popup'))) {
			var cmm=config.macros.moveablePanel;
			cmm.noScrollX++; if (hasClass(e,'tiddler')) cmm.noScrollY++;
			var delay=config.options.chkAnimate?config.animDuration+50:50;
			cmm.ensurePanelVisible(e,delay); // ASYNC SCROLL
		}
		return ny;
	}
}

// story.refreshTiddler()
if (Story.prototype.refreshTiddler_moveablePanel==undefined) { // only once
	Story.prototype.refreshTiddler_moveablePanel=Story.prototype.refreshTiddler;
	Story.prototype.refreshTiddler=function() {
		var cmm=config.macros.moveablePanel;
		cmm.noScrollX++; cmm.noScrollY++; // DON'T SCROLL AT ALL
		var r=this.refreshTiddler_moveablePanel.apply(this,arguments);
		cmm.noScrollX--; cmm.noScrollY--;
		return r;

	}
}
// story.displayTiddler()
if (Story.prototype.displayTiddler_moveablePanel==undefined) { // only once
	Story.prototype.displayTiddler_moveablePanel=Story.prototype.displayTiddler;
	Story.prototype.displayTiddler=function(srcElement,tiddler) {
		var cmm=config.macros.moveablePanel;
//WFFL		cmm.noScrollX++; cmm.noScrollY++;
		var r=this.displayTiddler_moveablePanel.apply(this,arguments);
		var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
		var panel=cmm.findPanel(title); // if moveable… unfold panel (but not during startup)
		if (panel&&hasClass(panel,'folded')&&!startingUp) cmm.foldPanel(panel);
		var delay=config.options.chkAnimate?config.animDuration+50:50;
		cmm.ensurePanelVisible(this.getTiddler(title),delay); // ASYNC SCROLL
		return r;

	}
}
//}}}
//{{{
// Zoomer() displays an animated bounding box when showing a tiddler.  But this box 'zooms' to the tiddler's 'anchor point', not the current panel position, which can cause a 'scroll blink'.  This hijack redirects the zoomer's target directly to the undocked panel (if any)
if (window.Zoomer_moveablePanel==undefined) { // only once
	window.Zoomer_moveablePanel=window.Zoomer;
	window.Zoomer=function(text,startElement,targetElement,unused) {
		if (hasClass(targetElement,'tiddler')) {
			var tid=targetElement.getAttribute('tiddler');
			arguments[2]=config.macros.moveablePanel.findPanel(tid)||targetElement;			
		}
		return window.Zoomer_moveablePanel.apply(this,arguments);
	}
}
//}}}
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!Movers and Shapers
<script> return "<<tiddler [[Movers and Shapers##Overview]]>>" </script>

!Objectives

!Timing

!Audience
Group

!Materials
*

!Procedure

!Debriefing


/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://agileanarchy.wordpress.com/2009/10/21/the-agile-playground-2/
//synonym://
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!Moving Motivators
<<tiddler [[Moving Motivators##Overview]]>>


!Objectives

!Timing

!Materials
* [[Game cards — PDF |http://www.management30.com/storage/exercises/04%20Moving%20Motivators%20-%20Pieces%20v1.01.pdf]]

!Audience
Group

!Procedure

!Debriefing

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Moving Motivators — Game| http://www.management30.com/moving-motivators/]]
* [[Moving Motivators (Free Exercise)| http://www.noop.nl/2011/09/moving-motivators-free-exercise.html]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://blog.tastycupcakes.com/wp-content/uploads/2009/06/mrhappyface-225x300.jpg>>
<<showtoc>>
!Overview
The game [[Mr. Happy Face]] is an interactive game illustrating the efficiencies of [[pull|Pull System]] vs. push, [[Kanban]] and single piece [[flow|Flow]].

!Mr. Happy Face
<<tiddler [[Mr. Happy Face##Overview]]>>

!Objectives
* The efficiency of Lean Pull processes
* The economic problem with presuming to predict the market and not planning short releases.
* Kanban — to introduce this, have the teams draw out the shapes that go into their queues. These are your Kanban signs.
* The importance of cash flow and receiving a return on investment

!Timing
60 mins

!Materials
Per team of 4-6
* Two big stacks of blue and yellow paper (8.5’ X 11’)
* Two glue sticks per team
* Two to Three pairs of scissors per team
* Roll of tape

!Audience
Group

!Procedure
We are in the business of making paper faces. The face is composed of;
* a blue oval face (cut from 1/4 of the page)
* yellow eyes either two triangles or two rectangles
* a yellow mouth, either a triangle or rectangle
We have four models;
* The Mike — triangle eyes triangle mouth
* The Don — rectangle eyes,rectangle mouth
* The Aleem — triangle eyes, rectangle mouth
* The Jessica — rectangle eyes, triangle mouth

!First Run — Push Process
Decide up front what the market will buy of the above models, write these down but do no share with participants. The team will make a best guess of what the market will buy and they set up an assembly line:
# a face is cut from the blue paper
# draw a face representing one of the models above (this is the requirement)
# The appropriate eyes are affixed
# The appropriate mouth is affixed
# The face is taped to the wall (delivered to market)

Have each team build at least one face to ensure they understand what they are doing before starting the clock. Let them run for 4-5 minutes. After the time is up, unveil the actual orders from the market and have the teams calculate their Net based on the following:
* Every face they sold = $400
* Every unsold completed face = <$200>
* Every unsold eye = <$25>
* Every unsold mouth = <$50>
* Every uncompleted face = <$100>
Some will make a little money, most will be deep in the red and some will have broken even. Discuss the business model and what happens to a business that produces product and inventory that its on a shelf.

!Second Run — Pull Process
This time the team will work within a system that only builds product when orders come in from the market Have each team set up the following assembly line with the Queues described below.
# RFQ — Readied Face Queue: Two uncompleted face with eyes attached only. One with rectangle eyes, the other with triangle eyes
# MQ — Mouth Queue: Two mouths, one rectangular, the other triangular
# FQ — Face Queue: One blank face
# EQ — Eye Queue (I love puns too!): Two sets of eyes, one rectangular, the other triangular

This time each team will wait until you call out a model to build. So for instance if you call for a mike, the person in front of the RFQ, pulls a triangular mouth from the MQ and deliver the product to the customer. This sends signals to replenish the RFQ and MQ. The result of replenishing these queues sends signals to FQ and EQ to be replenished. Have each team build one model and replenish Queues before beginning.

For about 4-5 minutes again, call out orders for models that customer have ordered. Mike, Aleem, Don, Mike, Jessica…. Don’t call them out too fast since the inventory they are maintaining will not support multiple orders at once. Just watch the teams to get a sense of the pace they can handle. We sometimes ramp up the pace near the end to illustrate the point of keeping you inventory levels as low as possible but high enough to meet market demand as these need to be balanced.

At the end of 2 minutes all teams are typically ahead of the best result from the previous round and we will point this out when that milestone has passed. At the end of 4-5 minutes do the same accounting exercise as last time. Every team will have made money

!Debriefing
* The efficiency of Lean Pull processes
* The economic problem with presuming to predict the market and not planning short releases.
* Kanban — to introduce this, have the teams draw out the shapes that go into their queues. These are your Kanban signs.
* The importance of cash flow and receiving a return on investment

!Credits
Michael ~McCullough

!Internet Images
To see some photos of this game being players, check out these from the Edmonton Agile Users Group: http://flickr.com/photos/agileedmonton/sets/72157608361951089/  /%
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/mr-happy-face/
<<wikify [>img(%0,%1)[%2|%3]] 40% 40% title http://www.buzzaboutcomputers.com/wp-content/uploads/2010/06/multitasking.jpg>>
<<showtoc>>
!Overview
"Multitasking" is often seen as a desirable skill. One of the most obvious (but, by no means the worst) causes of delay is the time lost when switching between tasks. 

!Multi-tasking
<script> return "<<tiddler [[Multi-tasking##Overview]]>>" </script>
You are going to execute 3 projects, first using multitasking, then not.

!Objectives
* Observe how you save time by not multitasking.  
* Concurrent Projects delay delivery
* Multi-tasking reduces effectiveness

!Timing
2min

!Audience
Group

!Materials
* blank pieces of paper
* pencil

!Procedure
* Take a blank piece of paper and draw 3 columns. 
* The three 3 projects are:
## write the letters ~A-J in the first column 
## write the numbers ~1-10 in the next column 
## write the Roman Numerals ~I-X in the third column.

The end result is three columns filled like this:

{{center{
| &nbsp;&nbsp; A &nbsp;&nbsp; | &nbsp;&nbsp; 1 &nbsp;&nbsp; | &nbsp;&nbsp; i &nbsp;&nbsp; |
| B | 2 | ii |
| … | … | … |
|>|>| etc. |
}}}

Start with the multitasking scenario - write in three columns,  working row-by-row, across the page, starting with A then 1 then I, i the the first row, working down the page until all three projects are complete.

Now start the non-Multitasking scenario - write down the page ~A-J in the first column,  then ~1-10 in the next, and finally, ~I-X in the third column.

!Debriefing
Try it and you see - it only takes 1 or 2 minutes - and observe how you save time by not multitasking.  You won't need to time the scenarios - you'll just feel the difference.

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.clarkeching.com/2007/09/multi-tasking-e.html
* [[APM M2 Agile Methoden| http://www.slideshare.net/lutzehrlich/apm-m2-agile-methoden]]
* [[Multitasking - Bewege in dem Online Game Multitasking mit den Pfeiltasten und mit "A,D" die blauen Quadrate in verschiedenen Aufgaben.| http://www.flashgames.de/index.php?onlinespiele=7517]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://t3.gstatic.com/images?q=tbn:ANd9GcTUZrP1TWpSZ5CSka0usPul_ExPCuZgRGWIi1ZDCJl-XQ0nCz8d>>
<<showtoc>>
!Overview
[[Multitasking|Multitasking Is Evil]] is often seen as a desirable skill — you can buy books or pay to attend courses that will teach you how to do it — but it is a surprisingly debilitating idea. It can send businesses to bankruptcy.

!Multitasking Is Evil
<<tiddler [[Multitasking Is Evil##Overview]]>>


!Objectives

!Timing

!Materials
*

!Audience
Group / Individual

!Procedure
You are going to execute three projects, first using multitasking, then not. Your friend will time you for each.

The three projects are as follows:

Project 1 — Write the letters A to J in the first column.

Project 2 — Write the numbers 1 to 10 in the middle column.

Project 3 — Write the Roman Numerals I to X in the third column.

The end result is three columns filled like this:

{{{
A | 1 | I

B | 2 | II

Etc.
}}}

Start with the multitasking scenario, which involves completing one row at a time. You need to complete the three columns, working row-by-row across the page, starting with A then 1 then I in the first row, working down the page until all three projects are complete.

Note your time.

Now start the non-multitasking scenario, which is where you start one project, complete it, then start the next project. In other words, you should start with column 1 and write down the page A to J, then move to the second column and write 1 to 10, then move to the next column writing I to X. Don't forget to time yourself.

!Debriefing

!Credits
Clarke Ching 

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[The Agile Experience: Multitasking Is Evil| http://techwell.com/articles/original/agile-experience-multitasking-evil]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.usageorge.com/Wallpapers/Miscellaneous/wallpaper/nightmare.jpg>>/%
http://harvardbusiness.org/products/4389-PDF-ENG/thumbnail/thumbnail.gif%/
<<showtoc>>
!Overview
[[My Worst Nightmare]], a kind of [[Innovation Game]]: Teams were given large flipchart papers, markers and other art supplies, and asked to create a visual representation of their "worst nightmare" when it came to a [[Scrum Master]], [[Product Owner]], or developer on a Scrum team. 

!My Worst Nightmare
<script> return "<<tiddler [[My Worst Nightmare##Overview]]>>" </script>

!Objectives
* Teambuilding
* incorporate features that would help discourage poor behaviors or encourage positive behaviors
* Opening up for discussion challenges teams are facing and how those challenges might be addressed

!Timing
60min

!Audience
Group

!Materials
* large flipchart papers, 
* markers and other art supplies

!Procedure
One team first worked on a depiction of the worst nightmare Product Owner. He was holding a magnifying glass, depicting someone who was a micro-manager, and holding a copy of "Technology Today," indicating his insistence on using the technology du-jour, regardless of appropriateness. His raised eyebrows and wrinkled brows signaled distrust; his whip showed his constant demands for speed.

The team also drew their version of the worst nightmare Scrum Master, a laid-back fellow who sat back with popcorn while his team slaved. Other teams drew their worst nightmares as well. The worst nightmare developers were often represented as a guy who sat in the corner with headphones on, refusing to communicate.

!Debriefing
Besides allowing a little psychological venting, how is this game useful? Hohmann asked the group to listen to the descriptions from the perspective of a tool provider. In understanding the "worst nightmare" of the people on the team, vendors may be able to incorporate features that would help discourage poor behaviors or encourage positive behaviors. And, of course, the game may prove useful in simply opening up for discussion challenges teams are facing and how those challenges might be addressed. 

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.intraqq.com/assets/images/innovation.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Innovation games: Who says work can't be fun?| http://go.techtarget.com/r/12320138/4201481]]
* http://en.wikipedia.org/wiki/Innovation_game
* http://www.innovationsgames.com

!Further Reading
<<tiddler [[Innovation Game##Further Reading]]>>
<data>{"abstract":"Das [[Möglichkeitszuhören]] ist eine witzige Übung. Sie erlaubt unzensiertes Fabulieren und eröffnet [[neue Perspektiven|Perspektivwechsel]] und Lösungen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.gw-trends.de/fm/3295/Motivation_maenner_YODA.481760.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Möglichkeitszuhören","abstract") </script>

!Möglichkeitszuhören
<script> return "<<tiddler [[Möglichkeitszuhören##Overview]]>>" </script>

!Objectives


!Timing


!Audience
Group


!Materials
* 

!Procedure
Ein Teilnehmer (bei einem Workshop, einem Seminar, einer [[Kreativitätssitzung|Kreativitätstechniken]]) formuliert das Problem, zwei andere hören zu. 

Wenn er mit seiner Schilderung fertig ist, beginnt einer beiden anderen, ohne lange nachzudenken, ganz spontan, ohne Vorgaben, Struktur oder Anleitung zu sprechen. Er formuliert alles, was ihm in den Sinn kommt, eine Minute lang. Die beiden anderen hören nur zu - und lassen die "Möglichkeiten" wirken. 

Nach einer Minute gibt der Moderator/Trainer das Signal zum Wechsel, nun legt der dritte Teilnehmer los. Auch er darf sich keine Pause gönnen, er redet und redet, jeder Einfall, jede Assoziation ist erlaubt und nützlich. Der Trainer treibt den Sprechenden immer wieder an, keine Pause einzulegen, nicht lange nachzudenken.

Den Wechsel kann man mehrmals machen. Am Ende wird derjenige, der das Ausgangsproblem geschildert hat, gebeten, sein Fazit zu ziehen:
* Was hat ihn sofort angesprochen?
* Welche Idee könnte er weiter verfolgen?
* Gibt es schon erste Lösungsansätze?


!Debriefing
Höchst interessant, was unser Gehirn und Mundwerk produziert, wenn wir beides möglichst unzensiert agieren lassen.

!Quelle
Callahan, Clint: Erweitern Sie Ihren Spielraum, managerSeminare 2/2005, S. 33.

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.collectivewisdominitiative.org/papers/Circleof7/three_conditions_450.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWONline|http://www.mwonline.de/online/themen/3/Ideenfabrik/M%F6glichkeitszuh%F6ren+%28jt%29.html]]
<data>{"abstract":"[[NASA-Übung]], ein Klassiker, eigentlich schon zu bekannt, um noch in Teamtrainings zum Einsatz zu kommen. Für [[Teamentwicklung|Teamentwicklung / Teambuilding]] und [[Führung]]"}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.stefan-arold.de/pics-sixties/mondlandung.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("NASA-Übung","abstract") </script>

!~NASA-Übung
<script> return "<<tiddler [[NASA-Übung##Overview]]>>" </script> 
Ein Klassiker, der seit über 50 Jahren in Seminaren und Teamtrainings zum Einsatz kommt und vielleicht weil er so alt ist, heute dann doch nicht schon jedem Teilnehmer bekannt ist. Für [[Teamentwicklung|Teamentwicklung / Teambuilding]] und [[Führung]].

Die Übung basiert auf der Idee, dass zunächst jeder einzelne einer Gruppe eine Aufgabe lösen muss. Anschließend diskutieren die Teammitglieder über die richtige Lösungen und entscheiden sich für ein gemeinsames Ergebnis. Genau um diesen Prozess geht es dann in der anschließenden Auswertung:
* Wer hat sich wie verhalten?
* Wer hat welche Rolle in der Diskussion gespielt?
* Hat jemand eine Führungsrolle übernommen?
* Wie wurde mit "stillen" Teilnehmern umgegangen, wie mit dominanten?
* Wie wurde in kontroversen Punkten entschieden?
* Wie wurde der Prozess gestaltet?
* Bei bestehenden Teams: Was findet sich so auch im Alltag des [[Teams|Team]] wieder? Mit welchen Konsequenzen? 

!Objectives
* Erleben der Abhängigkeit von Anderen beim [[Problemlösen|Problemlösung]]
* verschiedene Möglichkeiten, Entscheidungen zu treffen und zusammenzuarbeiten, an einem Modell durchzuspielen. 
* Erfahren, wie sich Entscheidungen sinnvoll treffen lassen, und was für Hindernisse im Wege stehen können.

!Timing

!Audience
Group / Individual

!Materials
* Pro Team 1 Liste mit 15 Gegenstände, die nach ihrer Wichtigkeit für den 300 km Marsch geordnet werden sollen: <br> 1 Schachtel Streichhölzer, 1 Dose Lebensmittelkonzentrat, 15m Nylonseil, 30m² Fallschirmseide, 1 tragbarer Kocher, 2 Pistolen, Kaliber 45mm, 1 Dose Trockenmilch, 2 Sauerstofftanks je 50l, 1 Sternkarte (Mondkonstellation), 1 aufblasbares Schlauchboot mit C0²-Flaschen, 1 Magnetkompass, 20l Wasser, 2 Signalleuchtkugeln, 1 Erste ~Hilfe-Koffer mit Spritze, 1 Fernmeldeempfänger und Fernmeldesender, der mit Sonnenenergie betrieben wird. 

!Procedure
Es werden zwei bis drei Untergruppen gebildet. Jeder Spieler erhält ein Blatt mit einer Liste der 15 Gegenstände.
Zum Verlauf des Spieles wird den Teilnehmern folgendes erklärt:

{{indent{//"Sie sind ein Mitglied einer Raumfahrtmannschaft, die ursprünglich geplant hatte, auf der erhellten Oberfläche des Mondes mit einem Mutterschiff zusammenzutreffen. 
Infolge technischer Schwierigkeiten musste Ihr Raumschiff jedoch an einer stelle landen, die etwa 300 km vom Treffpunkt entfernt liegt. Während der Landung ist ein großer Teil der Ausrüstung an Bord beschädigt worden. 
Da die Aussicht zu überleben davon abhängt, ob Sie nun das Mutterschiff erreichen, müssen die wichtigsten der vorhandenen Dinge für den 300 km langen Weg gewählt werden. 
Unten finden Sie eine Liste von 15 Gegenständen, die nach der Landung unbeschädigt geblieben sind. 
Ihre Aufgabe ist es, diese Gegenstände in eine Rangordnung zu bringen, je nachdem wie notwendig sie Ihnen zum Erreichen des Treffpunktes erscheinen, setzen Sie die Ziffer 1 neben den wichtigsten Gegenstand, die Ziffer 2 neben den zweitwichtigsten usf."//
}}}

!!1. Durchgang: Einzelentscheidung
Ordne für dich allein die Gegenstände nach Wichtigkeit. Das Wichtigste steht oben auf der Liste. 

{{indent{
„Sie versuchen, jeder für sich allein, die gestellte Aufgabe zu lösen.“
}}}

!!2. Durchgang: Gruppenentscheidung
Legt als Gruppe eine Rangfolge fest. 

{{indent{
„Das Ziel ist es, einen Beschluss der Gruppe, mit dem jeder von Ihnen einverstanden sein kann, zu erreichen. Das bedeutet, dass der Rang jedes der 15 Gegenstände, die für das Überleben notwendig sind, die Zustimmung eines jeden von Ihnen haben muss, um ein Teil des Gruppenbeschlusses zu werden.“
}}}

Dabei gelten folgende Regeln: 
* Argumentiere logisch! 
* Versuche nicht, anderen deine Meinung aufzuzwingen! 
* Antworte auf die Argumente der anderen! 
* Höre zu, auch wenn du anderer Meinung bist! 
* Vermeide Abstimmungen und „Kuhhandel“! 
* Stimme einer Plazierung nur zu, wenn du wirklich davon überzeugt bist. Trefft die Entscheidungen in der Gruppe einstimmig, aber nicht um jeden Preis.

!!3. Durchgang: Plenum
„Jede Gruppe wählt aus ihrer Mitte zwei Vertreter, die nach Meinung der Gruppe am besten mit der Materie umgehen können. Die Vertreter aller Gruppen setzen sich in der Mitte zusammen und entscheiden noch einmal. Alle Teilnehmer können dabei zuhören.“
Nach Abschluss des Spiels werden die verschiedenen Ergebnisse untereinander ausgetauscht und mit einem Sachverständigenergebnis verglichen.

!!Empfohlene Rangordnung
Nasafachleute haben folgende Rangordnung aufgestellt:
„Sauerstofftanks – Wasser – Sternkarte – Nahrungskonzentrat – Funkgerät mit Sonnenbatterien – Nylonseil – Erstehilfekoffer – Fallschirmseide – Schlauchboot – Signalpatronen – Signalpistole – Trockenmilch – Heizgerät – Magnetkompass – Streichhölzer.“

!Debriefing
Am Ende kann man neben diesen eigentlichen Fragen noch eine interessante Auswertung fahren: Der Trainer teilt der Gruppe die richtige Lösung mit, anschließend kann man jedes Einzelergebnis mit dieser vergleichen, das statistische Teamergebnis (der Durchschnitt aus allen Einzelergebnissen) sowie das erarbeitete Teamergebnis.
In der Regel kommt das statistische Teamergebnis der richtigen Lösung am nächsten, während das erarbeitete Teamergebnis stark davon abhängt, ob sich die "Experten" auch durchsetzen konnten.
Dies kann dann noch einmal reflektiert werden mit Hinblich auf die Frage: Kommen in dem [[Team]] wirklich diejenigen zu Wort, die von einem Thema am meisten verstehen?

Fragen dabei können etwa sein: 
* //„Wie ist es mir persönlich gegangen? Welche Rolle habe ich gespielt?“// 
* //„Welche Entscheidungsstrategien haben wir als Gruppe entwickelt?“// 
* //„Was hat mich geärgert?“// 
* //„Was hat sich besonders bewährt?“// 


!See also
* [[Let's build a filter - Video]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Das NASA-Spiel - Die Notlandung auf dem Mond| http://arbeitsblaetter.stangl-taller.at/KOMMUNIKATION/NASASpiel.shtml]]
* [[Diverse Teamspiele - PDF| http://www.region-online.de/bildung/semi/projekte/spiele.pdf]]
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=NASA-%DCbung+%28jt%29]]
* [[NASA-Weltraumspiel – Wikipedia| http://de.wikipedia.org/wiki/NASA-Weltraumspiel]]
* [[NASA-Übung 1 - PDF| http://web21.apt-002.de/upload/SynapseFinal/07_Uebungen/Kooperation/Weltall_Uebung.pdf]]
* [[NASA-Übung 2 - PDF| http://www.floriangeier.at/outdoor/index.php?sid=197704&lang=de&action=artikel&cat=2&id=13&artlang=de]]
* http://www.elefantastisch.de/kooperation.htm#nasa
<data>{"abstract":"[[Nach Objekten angeln]], bei dieser Übung müssen die Teammitglieder optimal kooperieren und die Fähigkeiten jedes einzelnen zur Bewältigung der Aufgabe richtig zum Einsatz bringen. Eine klassische Teamübung.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://www.planet-gif.com/gifs/Angeln/angeln01.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Nach Objekten angeln","abstract") </script>

!Nach Objekten angeln
<script> return "<<tiddler [[Nach Objekten angeln##Overview]]>>" </script> 
Bei dieser Übung müssen die Teammitglieder optimal kooperieren und die Fähigkeiten jedes einzelnen zur Bewältigung der Aufgabe richtig zum Einsatz bringen. Eine klassische Teamübung.

!Objectives
* Kooperation

!Timing
90 min
 
!Audience
Group: 8-14 Personen

!Materials
* 30-40 verschiedene Objekte: volle Wasserflasche, mit Wasser gefülltes Glas, Gummiball, Paketband, Bandschlingen, Gabeln, Plastikrohre, Schaufeln, etc
* Flipchart, Stifte

!Procedure
Es geht darum, aus einer Aktionsfläche von ca. 15 mal 10m drei Objekte "herauszufischen", und zwar ohne dass weder Mensch noch Hilfsmittel noch die Objekte bei der Bergung den Boden der Fläche berühren dürfen. 
Die Objekte können unterschiedlich sein, z.B. eine volle Wasserflasche, ein mit Wasser gefülltes Glas sowie ein Gummiball - dabei werden verschiedene Bergungstechniken zum Einsatz kommen müssen.

Spannend kann es auch sein, wenn die Fläche ca. 1m von einem Baum entfernt beginnt, so dass dieser mit eingesetzt werden kann (Achtung: Sicherheit nicht aus den Augen verlieren!)

Erschwert wird die Übung, wenn man zunächst nur einem Teilnehmer die Besichtigung des "Tatortes" gestattet. Er muss dann die anderen informieren. Dabei sind die Objekte noch nicht platziert. 
Für die [[Information]] und die Planung stehen dann Flipchart und Stifte zur Verfügung.

!Debriefing

!Quelle
Niko Schad: Bergung: Nach Objekten angeln, in Anstoß zur Teambildung, managerSeminare 10/2004, S. 59

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Outdoor]<<tiddlerList tags:"outdoor,-newTemplate" header:"Übungen Outdoor">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Nach+Objekten+angeln+%28jt%29]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!Name Game
<script> return "<<tiddler [[Name Game##Overview]]>>" </script>

!Objectives
* Concurrent Projects delay delivery

!Timing


!Audience
Group

!Materials
*

!Procedure

!Debriefing


/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://jonjagger.blogspot.com/2010/02/name-game_26.html
/***
|Name|NavigationMacro|
|Author|[[SaqImtiaz]]|
|Source|http://tw.lewcid.org/#NavigationMacro|
|Version|0.3 |
|Type|plugin|
|~CoreVersion|2.x|
|Requires|~TW2.08+|
|Description|Creates Next and Prev buttons on tiddlers, to cycle through tiddlers in order.|
!Description:
*Creates Next and Prev buttons on tiddlers, to cycle through tiddlers in order.
**you can create next and previous buttons to navigate through your journals, or the tiddlers of a tutorial.
*You can exclude certain tiddlers, or navigate through tiddlers with a specific tag only.
*The tiddlers can be sorted by modified or created.
*Custom ordering will be available after the release of TW 2.1
*Needs to be added to the ViewTemplate
*Buttons are updated dynamically and are hidden if there is no next or previous tiddler.

!Usage
{{{<<navigation>>}}}
or for more options:
{{{<<navigation sort exclude tag labelPrevious labelNext >>}}}
where sort is ''created'' (default) or ''modified''
exlcude is the tag to exclude.
tag is the tag to navigate through.
labelPrevious is the label for the previous button.
labelNext is the label for the next button. 

I recommend adding it to the ViewTemplate in the viewer div:
{{{<div class='viewer'>
<span macro='view text wikified'></span>
<span macro='navigation "" "" plugin'></span></div>}}}



!Example:
The next and previous buttons at the bottom of this tiddler will cycle through all of my extensions for TW.
!History
* 25-06-06 : version 0.3, first release

!Code
***/
//{{{
window.refreshNavLink = function (e) {
             var title = e.getAttribute("here");
             var sort = e.getAttribute("sort");
             var exclude =  e.getAttribute("exclude");
             if (e.getAttribute("tag")!=undefined) var tag = e.getAttribute("tag");
             var navtype = e.getAttribute("navtype");
              if (tag) {var tiddlers = store.getTaggedTiddlers(tag,sort);}
              else {var tiddlers = store.getTiddlers(sort,exclude);}
              for (var g=0; g<tiddlers.length; g++)
                  {if (title==tiddlers[g].title)
                       {if(navtype=="next" && !tiddlers[g+1])                             
                             e.className += " navNonExisting"
                        else if (navtype=="prev" && !tiddlers[g-1])
                             e.className += " navNonExisting"
                        else e.className = "button";}
                  }
}


config.refreshers.navLink = function(e,changeList){         
             refreshNavLink(e);
} 



config.macros.navigation={};
config.macros.navigation.handler = function(place,macroName,params,wikifier,paramString,tiddler){

          var sort = (params[0] && params[0]!=".")? params[0]: "created";
          var exclude =(params[1] && params[1]!=".")? params[1]: undefined;
          if (params[2])
                {var tag= params[2];
                 if(tiddler.tags.contains(tag)==false)
                 return false;
                }
          var labelPrev = params[3] ? params[3] : "Previous";
          var labelNext = params[4] ? params[4] : "Next";

          var next = function(e){
              if (!e) var e=window.event;
              var theTarget = resolveTarget(e);
              var navtype = theTarget.getAttribute("navtype");
              if (tag) {var tiddlers = store.getTaggedTiddlers(tag,sort);}
              else {var tiddlers = store.getTiddlers(sort,exclude);}
              for (var g=0; g<tiddlers.length; g++)
                  {if (tiddler.title==tiddlers[g].title)
                        {if (navtype == "next")
                            story.displayTiddler(theTarget,tiddlers[g+1].title)
                        else if (navtype == "prev")
                            story.displayTiddler(theTarget,tiddlers[g-1].title)}
                  }
              }

     var createNavBtn = function(text,theId,mode){
         var nextBtn = createTiddlyButton(place,text,text,next,null,theId);
         nextBtn.setAttribute("refresh","navLink");
         nextBtn.setAttribute("here",tiddler.title);
         nextBtn.setAttribute("sort",sort);
         nextBtn.setAttribute("exclude",exclude);
         nextBtn.setAttribute("navtype",mode);
         if (tag) nextBtn.setAttribute("tag",tag);
         refreshNavLink(nextBtn);
         }
    createNavBtn(labelNext+" ►","NavNext","next");
    createNavBtn("◄ "+labelPrev,"NavPrevious","prev");

}

setStylesheet(
"#NavNext {float:right;}\n"+
"#NavPrevious {float:left;}\n"+
".navNonExisting {display:none;}\n"+
 "",
"NavMacroStyles");
//}}}
/***
|Name|NestedSlidersPlugin|
|Source|http://www.TiddlyTools.com/#NestedSlidersPlugin|
|Documentation|http://www.TiddlyTools.com/#NestedSlidersPluginInfo|
|Version|2.4.9|
|Author|[[EricShulman]] - 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||
|Options|##Configuration|
|Description|show content in nest-able sliding/floating panels, without creating separate tiddlers for each panel's content|
!!!!!Documentation
>see [[NestedSlidersPluginInfo]]
!!!!!Configuration
<<<
<<option chkFloatingSlidersAnimate>> allow floating sliders to animate when opening/closing
>Note: This setting can cause 'clipping' problems in some versions of InternetExplorer.
>In addition, for floating slider animation to occur you must also allow animation in general (see [[AdvancedOptions]]).
<<<
!!!!!Revisions
<<<
2008.11.15 - 2.4.9 in adjustNestedSlider(), don't make adjustments if panel is marked as 'undocked' (css class).  In onClickNestedSlider(), SHIFT-CLICK docks panel (see [[MoveablePanelPlugin]])
|please see [[NestedSlidersPluginInfo]] for additional revision details|
2005.11.03 - 1.0.0 initial public release.  Thanks to RodneyGomes, GeoffSlocock, and PaulPetterson for suggestions and experiments.
<<<
!!!!!Code
***/
//{{{
version.extensions.NestedSlidersPlugin= {major: 2, minor: 4, revision: 9, date: new Date(2008,11,15)};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// TW2.2+
// hijack Morpher stop handler so sliderPanel/floatingPanel overflow is visible after animation has completed
if (version.major+.1*version.minor+.01*version.revision>=2.2) {
	Morpher.prototype.coreStop = Morpher.prototype.stop;
	Morpher.prototype.stop = function() {
		this.coreStop.apply(this,arguments);
		var e=this.element;
		if (hasClass(e,"sliderPanel")||hasClass(e,"floatingPanel")) {
			// adjust panel overflow and position after animation
			e.style.overflow = "visible";
			if (window.adjustSliderPos) window.adjustSliderPos(e.parentNode,e.button,e);
		}
	};
}
//}}}
/***
|Name|NewDocumentPlugin|
|Source|http://www.TiddlyTools.com/#NewDocumentPlugin|
|Documentation|http://www.TiddlyTools.com/#NewDocumentPluginInfo|
|Version|1.7.0|
|Author|[[EricShulman]] - 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|create new TiddlyWiki documents and/or HTML snapshots from your existing document, with just one click|
Use the {{{<<newDocument>>}}} macro to place a "new document" link into your sidebar/mainmenu/any tiddler (wherever you like).  Select this command to automatically create a "new.html" document containing a specific set of tagged tiddlers.  Optional parameters let you specify an alternate path/filename for the new file, or different tags to match.  You can also indicate "ask" for either parameter, which will  trigger a prompt for input when the command is selected.
!!!!!Documentation
>see [[NewDocumentPluginInfo]]
!!!!!Revision History
<<<
2008.01.08 [*.*.*] plugin size reduction: documentation moved to …Info and …History tiddlers
2007.12.04 [*.*.*] update for TW2.3.0: replaced deprecated core functions, regexps, and macros
2007.03.30 [1.7.0] added support for "print" param as alternative for "snap".  When "print" is used, the filename is ignored and ouput is directed to another browser tab/window, where the print dialog is then automatically triggered.
|please see [[NewDocumentPluginHistory]] for additional revision details|
2006.02.03 [1.0.0] Created.
<<<
!!!!!Code
***/
//{{{
version.extensions.newDocument = {major: 1, minor: 7, revision: 0, date: new Date(2007,3,30)};

config.macros.newDocument = {
	newlabel: "new document",
	newprompt: "Create a new TiddlyWiki 'starter' document",
	newdefault: "new.html",
	allparam: "all",
	saveaslabel: "save as...",
	saveasprompt: "Save current TiddlyWiki to a different file",
	printparam: "print",
	snapparam: "snap",
	snaplabel: "create a snapshot",
	snapprompt: "Create a 'snapshot' of the current TiddlyWiki display",
	snapdefault: "snapshot.html",
	snapID: "contentWrapper",
	snapIDprompt: "Please enter a DOM element ID for the desired content",
	snapIDerrmsg: "Unrecognized document element ID: '%0'",
	askparam: "ask",
	hereparam: "here",
	labelparam: "label:",
	promptparam: "prompt:",
	fileprompt: "Please enter a filename",
	filter: "includeNew",
	filterprompt: "Match one or more tags:\n(space-separated, use [[...]] around tags containing spaces)",
	filtererrmsg: "Error in tag filter '%0'",
	snapmsg: "Document snapshot written to %1",
	okmsg: "%0 tiddlers written to %1",
	failmsg: "An error occurred while creating %0"
};

config.macros.newDocument.handler = function(place,macroName,params) {

	var path=getLocalPath(document.location.href);
	var slashpos=path.lastIndexOf("/"); if (slashpos==-1) slashpos=path.lastIndexOf("\\"); 
	if (slashpos!=-1) path = path.substr(0,slashpos+1); // remove filename from path, leave the trailing slash

	if (params[0] && params[0].substr(0,config.macros.newDocument.labelparam.length)==config.macros.newDocument.labelparam)
		var label=params.shift().substr(config.macros.newDocument.labelparam.length)
	if (params[0] && params[0].substr(0,config.macros.newDocument.promptparam.length)==config.macros.newDocument.promptparam)
		var prompt=params.shift().substr(config.macros.newDocument.promptparam.length)
	var filename=params.shift(); if (!filename) filename=config.macros.newDocument.newdefault;
	if (params[0]==config.macros.newDocument.snapparam || params[0]==config.macros.newDocument.printparam) {
		var printmode=(params[0]==config.macros.newDocument.printparam);
		params.shift();
		if (!label) var label=config.macros.newDocument.snaplabel;
		if (!prompt) var prompt=config.macros.newDocument.snapprompt;
		var defaultfile=config.macros.newDocument.snapdefault;
		var snapID=config.macros.newDocument.snapID;// default to "contentWrapper"
		if (params[0]) var snapID=params.shift(); // alternate DOM element for snapshot
	}
	if (params[0]==config.macros.newDocument.allparam) {
		if (!label) var label=config.macros.newDocument.saveaslabel;
		if (!prompt) var prompt=config.macros.newDocument.saveasprompt;
		var defaultfile=getLocalPath(document.location.href);
		var slashpos=defaultfile.lastIndexOf("/"); if (slashpos==-1) slashpos=defaultfile.lastIndexOf("\\");
		if (slashpos!=-1) defaultfile=defaultfile.substr(slashpos+1); // get filename only
	}
	if (!prompt) var prompt=config.macros.newDocument.newprompt;
	if (!label) var label=config.macros.newDocument.newlabel;
	if (!defaultfile) var defaultfile=config.macros.newDocument.newdefault;

	var btn=createTiddlyButton(place,label,prompt,onClickNewDocument);
	btn.path=path;
	btn.file=filename;
	btn.defaultfile=defaultfile;
	btn.snapID=snapID; // NULL unless snapshot is being taken
	btn.printmode=printmode;
	btn.filter=params.length?params:[config.macros.newDocument.filter]; 
}

// IE needs explicit global scoping for functions called by browser events
window.onClickNewDocument=function(e)
{
	if (!e) var e = window.event; var btn=resolveTarget(e);

	// assemble document content, write file, report result
	var okmsg=config.macros.newDocument.okmsg;
	var failmsg=config.macros.newDocument.failmsg;
	var count=0;
	var out="";
	if (btn.snapID) { // HTML+css snapshot
		var snapID=btn.snapID;
		if (btn.snapID==config.macros.newDocument.askparam)
			snapID=prompt(config.macros.newDocument.snapIDprompt,config.macros.newDocument.snapID);
		if (btn.snapID==config.macros.newDocument.hereparam)
			{ var here=story.findContainingTiddler(btn); if (here) snapID=here.id; }
		if (!document.getElementById(snapID)) { // if specified element does not exist
			if (snapID) // ID=null if prompt was cancelled by user
				displayMessage(config.macros.newDocument.snapIDerrmsg.format([snapID]));
			e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); return(false);
		}
		var styles=document.getElementsByTagName("style");
		out+="<html>\n<head>\n<style>\n";
		for(var i=0; i < styles.length; i++)
			out +="/* stylesheet from tiddler:"+styles[i].getAttribute("id")+" */\n"+styles[i].innerHTML+"\n\n";
		out+="</style>\n</head>\n<body>\n\n"+document.getElementById(snapID).innerHTML+"\n\n</body>\n</html>";
		okmsg=config.macros.newDocument.snapmsg;
	} else { // TW starter document
		// get the TiddlyWiki core code source
		var sourcefile=getLocalPath(document.location.href);
		var source=loadFile(sourcefile);
		if(source==null) { alert(config.messages.cantSaveError); return null; }
		// reset existing HTML source markup
		source=updateMarkupBlock(source,"PRE-HEAD");
		source=updateMarkupBlock(source,"POST-HEAD");
		source=updateMarkupBlock(source,"PRE-BODY");
		source=updateMarkupBlock(source,"POST-BODY");
		// find store area
		var posOpeningDiv=source.indexOf(startSaveArea);
		var posClosingDiv=source.lastIndexOf(endSaveArea);
		if((posOpeningDiv==-1)||(posClosingDiv==-1)) { alert(config.messages.invalidFileError.format([sourcefile])); return; }
		// get the matching tiddler divs
		var match=btn.filter;
		if (match[0]==config.macros.newDocument.askparam) { // ask user for tags
			var newfilt=prompt(config.macros.newDocument.filterprompt,config.macros.newDocument.filter);
			if (!newfilt) return;  // cancelled by user
			match=newfilt.readMacroParams();
		}
		var storeAreaDivs=[];
		var tiddlers=store.getTiddlers('title');
		for (var i=0; i<tiddlers.length; i++)
			if (match[0]==config.macros.newDocument.allparam || (tiddlers[i].tags && tiddlers[i].tags.containsAny(match)) )
				storeAreaDivs.push(store.getSaver().externalizeTiddler(store,tiddlers[i]));
		out+=source.substr(0,posOpeningDiv+startSaveArea.length);
		out+=convertUnicodeToUTF8(storeAreaDivs.join("\n"))+"\n\t\t";
		out+=source.substr(posClosingDiv);
		count=storeAreaDivs.length;
	}
	if (btn.printmode) {
		var win=window.open("","_blank","");
		win.document.open();
		win.document.writeln(out);
		win.document.close();
		win.focus(); // bring to front
		win.print(); // trigger print dialog
	} else {
		// get output path/filename
		var filename=btn.file;
		if (filename==config.macros.newDocument.askparam)
			filename=promptForFilename(config.macros.newDocument.fileprompt,btn.path,btn.defaultfile);
		if (!filename) return; // cancelled by user
		// if specified file does not include a path, assemble fully qualified path and filename
		var slashpos=filename.lastIndexOf("/"); if (slashpos==-1) slashpos=filename.lastIndexOf("\\");
		if (slashpos==-1) filename=btn.path+filename;
		var ok=saveFile(filename,out);
		var msg=ok?okmsg.format([count,filename]):failmsg.format([filename]);
		var link=ok?"file:///"+filename.replace(/\\/g,'/'):""; // change local path to link text
		clearMessage(); displayMessage(msg,link);
	}
	e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); return(false);
}
//}}}

//{{{
function promptForFilename(msg,path,file)
{
	if(window.Components) { // moz
		try {
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
			var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
			var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
			picker.init(window, msg, nsIFilePicker.modeSave);
			var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
			thispath.initWithPath(path);
			picker.displayDirectory=thispath;
			picker.defaultExtension='html';
			picker.defaultString=file;
			picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
			if (picker.show()!=nsIFilePicker.returnCancel) var result=picker.file.persistentDescriptor;
		}
		catch(e) { alert('error during local file access: '+e.toString()) }
	}
	else { // IE
		try { // XP only
			var s = new ActiveXObject('UserAccounts.CommonDialog');
			s.Filter='All files|*.*|Text files|*.txt|HTML files|*.htm;*.html|';
			s.FilterIndex=3; // default to HTML files;
			s.InitialDir=path;
			s.FileName=file;
			if (s.showOpen()) var result=s.FileName;
		}
		catch(e) { var result=prompt(msg,path+file); } // fallback for non-XP IE
	}
	return result;
}
//}}}
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://nlpdaily.com/wp-content/uploads/not-listening3.jpg>>
<<showtoc>>
!Overview
[[No-one Listens to Me]] is an exercise that illustrates the importance of listening and awareness of our own internal monologue in conversations.

!No-one Listens to Me
<<tiddler [[No-one Listens to Me##Overview]]>>

!Objectives
* illustrates the importance of listening 
* awareness of our own internal monologue in conversations.

!Timing
15 min

!Materials
* Stop Watch

!Audience
Group

!Procedure
In groups of two taking turns:

# One person speaks, the other listens. 
# The speaker picks a topic of personal interest, perhaps a problem they have been working on. The speaker talks for five to seven minutes while the listener says nothing. They may nod or smile or perform other gestures.
# Have a discussion. 

!Debriefing
Most conflict and miscommunication is due to a lack of listening. It is difficult for many of us to turn our internal monologue and listen to other speak. If we do, the rewards are great.
* //How did it feel to just listen?//
* //How often were we thinking of what we wanted to speak about?//

!Credits
* Michael ~McCullough
* Ross Martin & Lynn Harrison, Black Tusk Leadership

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/no-one-listens-to-me/
/***
|Name|NoClosePlugin|
|Source|http://www.TiddlyTools.com/#NoClosePlugin|
|Documentation|http://www.TiddlyTools.com/#NoClosePlugin|
|Version|1.0.0|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|hide/show tiddlers instead of closing/re-opening them|
|Status|ALPHA EXPERIMENTAL - use with caution|
!!!!!Documentation
<<<
This plugin hijacks the core's displayTiddler() and closeTiddler() functions so that closing a tiddler //hides// it rather than removing it from the story column.  When the tiddler is re-opened, it is made visible again without needing to be re-rendered, which can significantly reduce the processing required by tiddlers that generate their content through use of complex macros or scripts.

Notes:
*hidden tiddlers are still re-rendered as needed when underlying information is changed or other page-wide refresh events occur, so that they will still be up-to-date if re-displayed.  This can, in some cases, trigger side-effect actions associated with those tiddlers that would normally not occur had they actually been closed, rather than merely hidden from view
*Using <<closeAll>> (or invoking the core {{{restart()}}} function) will always //close// the tiddlers rather than hiding them, regardless of the current plugin settings or tiddler tags
<<<
!!!!!Configuration
<<<
hide tiddlers instead of closing them:
<<option chkNoClose>>tiddlers tagged with <<option txtNoCloseTag>>
<<option chkNoCloseAll>>all tiddlers, regardless of tags
<<<
!!!!!Revisions
<<<
2009.10.04 [1.0.0] initial release.  Much thanks to Shviller for original concept.
<<<
!!!!!Code
***/
//{{{
version.extensions.NoClosePlugin= {major: 1, minor: 0, revision: 0, date: new Date(2009,10,4)};

var co=config.options; //abbrev
if (co.chkNoClose===undefined)	  co.chkNoClose=true;
if (co.txtNoCloseTag===undefined) co.txtNoCloseTag='noClose';

if (Story.prototype.displayTiddler_save===undefined)
	Story.prototype.displayTiddler_save=Story.prototype.displayTiddler;
Story.prototype.displayTiddler=function(place,title) {
	var here=story.getTiddler(title);
	if (here) here.style.display='block';
	this.displayTiddler_save.apply(this,arguments);
}

if (Story.prototype.closeTiddler_save===undefined)
	Story.prototype.closeTiddler_save=Story.prototype.closeTiddler;
Story.prototype.closeTiddler=function(title) {
	var co=config.options; //abbrev
	var t=store.getTiddler(title);
	if (co.chkNoCloseAll || co.chkNoClose&&t&&t.isTagged(co.txtNoCloseTag)) {
		var here=story.getTiddler(title);
		if (here) here.style.display='none';
		forceReflow();
	} else this.closeTiddler_save.apply(this,arguments);
}

if (Story.prototype.closeAllTiddlers_save===undefined)
	Story.prototype.closeAllTiddlers_save=Story.prototype.closeAllTiddlers;
Story.prototype.closeAllTiddlers=function(title) {
	var co=config.options; //abbrev
	var t=co.chkNoClose;
	co.chkNoClose=false;
	this.closeAllTiddlers_save.apply(this,arguments);
	co.chkNoClose=t;
}
//}}}
//synonym:// ''NGT''
<data>{"abstract":"The [[Nominal Group Technique]] (NTG) is a [[decision making|Decision Making]] method for use among groups of many sizes, who want to make their decision quickly, as by a vote, but want everyone's opinions taken into account (as opposed to traditional voting, where only the largest group is considered)."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://sunsite.utk.edu/FINS/Technique_Democracy/ideas.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Nominal Group Technique","abstract") </script>
The method of tallying is the difference. 

!Nominal Group Technique
<<tiddler [[Nominal Group Technique##Overview]]>>

NGT was originally developed by Delbecq and VandeVen and has been applied to adult education program planning by Vedros. This technique is a structured variation of small group discussion methods. The process prevents the domination of discussion by a single person, encourages the more passive group members to participate, and results in a set of prioritized solutions or recommendations. 

NGT is a group decision-making technique that strives to obtain input from all group members. Before having everyone share their ideas, it can be helpful to have them first write their ideas on pieces of paper. While people are taking turns sharing their ideas, it may inspire group members to have even more ideas to share. After all ideas are shared, similar ones may be combined and discussed. The [[facilitator|Facilitator]] assures that everyone is heard, and that the discussion is kept non-judgmental and focused. Lastly, group members rank each unique idea and the votes are tallied.

NGT is listed as part of Group Creativity Techniques for the fourth edition [[PMBOK®’s|Project Management Body of Knowledge]] Collect Requirements process, as an Additional Quality Planning Tool for the Plan Quality process, and as an Information Gathering Technique for the Identify Risks process.

!Standard procedure
First, every member of the group gives their view of the solution, with a short explanation. Then, duplicate solutions are eliminated from the list of all solutions, and the members proceed to rank the solutions, 1st, 2nd, 3rd, 4th, and so on. The numbers each solution receives are totaled, and the solution with the lowest (i.e. most favored) total ranking is selected as the final decision. There are variations on how this technique is used. For example, it can identify strengths versus areas in need of development, rather than be used as a decision-making voting alternative. Also, options do not always have to be ranked, but may be evaluated more subjectively.

The steps to follow in NGT are:
# Divide the people present into small groups of 5 or 6 members, preferably seated around a table.
# State an open-ended question ("What are some ways we could encourage participants to car pool?").
# Have each Person spend several minutes in silence individually [[brainstorming|Brainstorming]] all the possible ideas and jot these ideas down.
# Have the groups, collect the ideas by sharing them roundrobin fashion (one response per person each time), while all are recorded in key term, on a flipchart. No criticism is allowed, but clarification in response to questions is encouraged.
# Have each person evaluate the ideas and individually and anonymously vote for the best ones (for example, the, best idea gets Points, next best 4 Points, etc).
# Share votes within the group and tabulate. A group report is prepared, showing the ideas receiving the most points.
# Allow time for brief group presentations on their solutions.

!NGT Procedure
Materials needed: paper and pen or pencil for each individual, flipchart, marking pens, tape.
# State the subject of the [[brainstorming|Brainstorming]]. Clarify the statement as needed until everyone understands it.
# Each [[team|Team]] member silently thinks of and writes down as many ideas as possible in a set period of time (5 to 10 minutes).
# Each member in turn states aloud one idea. Facilitator records it on the flipchart.
** No discussion is allowed, not even questions for clarification.
** Ideas given do not need to be from the [[team|Team]] member's written list. Indeed, as time goes on, many ideas will not be.
** A member may “pass” his or her turn, and may then add an idea on a subsequent turn. <br> Continue around the group until all members pass or for an agreed-upon length of time.
# Discuss each idea in turn. Wording may be changed only when the idea's originator agrees. Ideas may be stricken from the list only by unanimous agreement. Discussion may clarify meaning, explain logic or analysis, raise and answer questions, or state agreement or disagreement.
# Prioritize the ideas using multivoting or list reduction.

!Stages
Routinely, the NGT involves five stages:
# ''Introduction and explanation:'' The facilitator welcomes the participants and explain to them the purpose and procedure of the meeting.
# ''Silent generation of ideas:'' The Facilitator provides each participant with a sheet of paper with the question to be addressed and ask them to write down all ideas that come to mind when considering the question. During this period, the facilitator asks participants not to consult or discuss their ideas with others. This stage lasts approximately 10 minutes.
# ''Sharing ideas:'' The Facilitator invites participants to share the ideas they have generated. He records each idea on a flip chart using the words spoken by the participant. The round robin process continues until all ideas have been presented. There is no debate about items at this stage and participants are encouraged to write down any new ideas that may arise from what others share. This process ensures all participants get an opportunity to make an equal contribution and provides a written record of all ideas generated by the group. This stage may take 15-30 minutes.
# ''Group discussion:'' Participants are invited to seek verbal explanation or further details about any of the ideas that colleagues have produced that may not be clear to them. The facilitator's [[task|Task]] is to ensure that each person is allowed to contribute and that discussion of all ideas is thorough without spending too long on a single idea. It is important to ensure that the process is as neutral as possible, avoiding judgment and criticism. The group may suggest new items for discussion and combine items into categories, but no ideas should be eliminated. This stage lasts 30-45 minutes.
# ''Voting and ranking:'' This involves prioritizing the recorded ideas in relation to the original question. Following the voting and ranking process, immediate results in response to the question is available to participants so the meeting concludes having reached a specific outcome.

The number of nominal group meetings to be held will depend on the nature of the question and accessibility to the key [[stakeholders|Stakeholder]] best suited to help address the problem.


!When to Use Nominal Group Technique
* When some group members are much more vocal than others.
* When some group members think better in silence.
* When there is concern about some members not participating.
* When the group does not easily generate quantities of ideas.
* When all or some group members are new to the team.
* When the issue is controversial or there is heated conflict.


!NGT Advantages and Disadvantages
As with any technique, there are advantages and disadvantages. Some of the obvious advantages are that voting is anonymous, there are opportunities for equal participation of group members and distractions (communication "noise") inherent in other group methods are minimized. As to disadvantages, opinions may not converge in the voting process, cross-fertilization, of ideas may be constrained, and the process may appear to be too mechanical.
NGT can be one more tool to use in helping staff, volunteers, clients, and consumers improve their ability to make sound decisions.

!NGT Considerations
* Discussion should be equally balanced among all ideas. The facilitator should not allow discussion to turn into argument. The primary purpose of the discussion is clarification. It is not to resolve differences of opinion.
* Keep all ideas visible. When ideas overflow to additional flipchart pages, post previous pages around the room so all ideas are still visible to everyone.
* See [[brainstorming|Brainstorming]] for other suggestions to use with this tool.



!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.qualitytrainingportal.com/resources/problem_solving/images/ngt.gif>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
* [[Delphi-Technik]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[Nominal Group Technique (NGT)| http://www.asq.org/learn-about-quality/idea-creation-tools/overview/nominal-group.html]]
* [[Nominal Group Technique: An Alternative to Brainstorming| http://www.joe.org/joe/1984march/iw2.ph]]
* [[Nominal Group Technique| http://pages.conversaciones-locales.org/nominalgrouptechnique]]
* [[Quality Tools - Nominal Group Technique| http://syque.com/quality_tools/toolbook/NGT/ngt.htm]]
* [[Quality Training Portal.com - Nominal Group Technique| http://www.qualitytrainingportal.com/resources/problem_solving/problem-solving_tools-ngt.htm]]
* [[Nominal Group Technique| http://blog.tapuniversity.com/2009/08/17/nominal-group-technique/]]
* http://en.wikipedia.org/wiki/Nominal_group_technique
* http://www.asq.org/learn-about-quality/idea-creation-tools/overview/nominal-group.html
* http://www.joe.org/joe/1984march/iw2.php
* http://www.mycoted.com/Nominal_Group_Technique
<data>{"abstract":"[[Nonverbales Kartenspiel]], was zunächst wie ein einfaches Kartenspiel aussieht, entpuppt sich als recht vertrackte Aufgabe, bei der es um das Aushandeln von Spielregeln geht."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.landesbridgeverband-rlps.de/Oeffen3.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Nonverbales Kartenspiel","abstract") </script>

!Nonverbales Kartenspiel
<script> return "<<tiddler [[Nonverbales Kartenspiel##Overview]]>>" </script> 

!Objectives
* Aushandeln von Spielregeln
* interkulturelle Trainings

!Timing
60 min

!Audience
Group

!Materials
* 

!Procedure
Die Gruppe wird in mehrere kleine Gruppen aufgeteilt. Die einzelnen Gruppen erhalten schriftliche Spielregeln, die sie zunächst lesen müssen. Es darf NICHT gesprochen werden. 

Das Problem: Die Spielregeln sind z.T. vage formuliert, so dass sich unterschiedliche Regeln aushandeln lassen.

Der zweite Knackpunkt: Ein Teil der Kleingruppen erhält Anweisung A, der andere Teil Anweisung B.

* ''Anweisung A'': Jeder Spieler hat sieben Karten. Einer legt eine Karte auf den Tisch, der nächste muss die gleiche Farbe legen oder Trumpf, wobei Herz Trumpf ist. Damit kann eine neue Farbe gewählt werden. Kann ein Spieler gar nicht legen, kann er dreimal eine Karte vom Stapel nehmen. Wer zuerst keine Karten mehr hat, hat gewonnen.

* ''Anweisung B'': Jeder Spieler hat sieben Karten. Einer legt eine Karte auf den Tisch, der nächste muss die gleiche Zahl oder eine höhere darauf legen. Kreuz ist Trumpf und kann auf jede andere Karte gelegt werden. Kann ein Spieler gar nicht legen, muss er eine Karte vom Stapel nehmen. Wer zuerst keine Karten mehr hat, hat gewonnen.

Nun wird eine Runde gespielt. 

Danach werden die Teilnehmer gemischt und es wird eine zweite Runde gespielt. Das [[Problem]] ist nun, dass Spieler mit unterschiedlichen Regelwerken aufeinander treffen - was sie nicht wissen. 
Es muss also neu verhandelt werden - nonverbal. 

!Debriefing
Diese "Aushandlungsprozesse" bieten höchst interessante Aufschlüsse über das Aushandeln von Regeln zwischen Leuten unterschiedlicher "Herkunft".
Gut geeignet für interkulturelle Trainings.

!Quelle
[[Kumbruck, Christel / Derboven, Wibke: Interkulturelles Training, Springer,  2., erw. u. überarb. Aufl. (21. April 2009)| http://www.amazon.de/gp/product/3540883797?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3540883797]]

!See also
* [[Fluxx - Die Regeln bestimmen Sie!]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Nonverbales+Kartenspiel+%28jt%29&db=3]]
/***
|Name|OpenTaggedTiddlersMacro|
|Source|[[FND's DevPad|http://devpad.tiddlyspot.com/#OpenTaggedTiddlersMacro]]|
|Version|0.1.2|
|Author|[[one_each|http://groups.google.com/group/TiddlyWiki/browse_thread/t/77d70c4e01e7c6fa]]|
|Contributor|FND|
|License|public domain|
|~CoreVersion|1.2|
|Type|macro|
|Requires|N/A|
|Overrides|N/A|
|Description|open all tiddlers with a given tag|
!Usage
{{{
<<openAll [[tag]] ["title:..."] [closeAllFirst]>>
}}}
!Options
Although the tag is required as the first parameter, the options listed below are optional and may appear in any order.
|!Option|!Description|
|closeAllFirst|close all other tiddlers first|
|<nowiki>title:Title</nowiki>|button caption (enclose in quotation marks if the text contains spaces)|
!Examples
|!Code|!Output|
|{{{<<openAll systemConfig>>}}}|<<openAll systemConfig>>|
|{{{<<openAll systemConfig closeAllFirst>>}}}|<<openAll systemConfig closeAllFirst>>|
|{{{<<openAll systemConfig "title:Open system tiddlers">>}}}|<<openAll systemConfig "title:Open system tiddlers">>|
!Revision History
!!v0.1.1 (2005-09-01)
* initial release [[by one_each|http://groups.google.com/group/TiddlyWiki/browse_thread/t/77d70c4e01e7c6fa]] (named "openAll macro")
!!v0.1.2 (2005-06-30)
* minor code cleanup by FND
* removed {{{reverseOrder}}} parameter due to incompatibility with TiddlyWiki 2.2
* renamed to OpenTaggedTiddlersMacro
!Issues / To Do
* code cleanup / refactoring
!Code
***/
//{{{
version.extensions.openAll = {major: 0, minor: 1, revision: 1, date: new Date("Jun 30, 2007")};
config.macros.openAll = {}
config.macros.openAll.handler = function(place,macroName,params) {
	var title = "Open all " + params[0];
	var closeAllFirst = "false";
	for(var i = 1; i < params.length; i++) { // skip the first parameter
		if(params[i] == "closeAllFirst")
			closeAllFirst = "true";
		if(params[i].substring(0,6) == "title:")
			title = params[i].substring(6);
	}
	var btn = createTiddlyButton(place,title,null,onClickOpenAllMacro);
	btn.setAttribute("tag",params[0]);
	btn.setAttribute("closeAllFirst",closeAllFirst);
}

// Event handler for 'openAll' macro
function onClickOpenAllMacro(e)
{
	if (!e) var e = window.event;
	var tag = this.getAttribute("tag");
	var tagged = store.getTaggedTiddlers(tag);
	if(this.getAttribute("closeAllFirst") == "true")
		story.closeAllTiddlers();
	for(var t=tagged.length-1; t>=0; t--)
		displayTiddler(this,tagged[t].title,0,null,null,false,e.shiftKey || e.altKey);
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	return(false);
}
//}}}
/***
|Name|OpenTiddlersMacro|
|Description|Create links that open multiple tiddlers. Optionally close all other tiddlers first.|
|Author|[[SaqImtiaz]] ( lewcid@gmail.com )|
|Source|http://tw.lewcid.org/#OpenTiddlersMacro|
|Code Repository|http://tw.lewcid.org/svn/plugins|
|Version|2.0|
|Date||
|License|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|~CoreVersion|2.2.3|
!!Usage:
* {{{<<openTiddlers text:"click" tiddlers:[[TiddlerOne TiddlerTwo "Tiddler Three"]]>>}}}
** text: text for the link.
** tiddlers: titles of tiddlers to open, as a bracketed list.
* Additional optional parameters:
** {{{<<openTiddlers text:"click" tiddlers:[[TiddlerOne TiddlerTwo "Tiddler Three"]] closeAll:true keepMe:false>>}}}
*** closeAll: close all other tiddlers first
*** keepMe : close all other tiddlers, except the one containing the macro
!!Tip:
* You can use evaluated parameters to get a list of tiddlers to open from a tiddler.
** For example to open the DefaultTiddlers for a  "Home" button: <br> {{{<<openTiddlers text:"Home" tiddlers:{{store.getTiddlerText("DefaultTiddlers")}} closeAll:true>>}}} <br>  <<openTiddlers text:"Home" tiddlers:{{store.getTiddlerText("DefaultTiddlers")}} closeAll:true>>

***/
// /%
//!BEGIN-PLUGIN-CODE
config.macros.openTiddlers = 
{
	handler : function(place,macroName,params,wikifier,paramString,tiddler)
	{
		var np = paramString.parseParams("anon",null,true,false,false);
		var text = getParam(np,"text","");
		var tiddlers = getParam(np,"tiddlers","");
		if (tiddlers == ''){
			return false;
		}
		if (typeof tiddlers == 'string' ){
			tiddlers = tiddlers.readBracketedList();
		}
		var closeAll = getParam(np,"closeAll","false");
		var keepMe = getParam(np,"keepMe","false");
		var btn= createTiddlyButton(place,text,null,this.onClick,"tiddlyLinkExisting");
		btn.tiddlers = tiddlers;
		btn.tiddler = tiddler? tiddler.title: undefined;
		btn.closeAll = closeAll;
		btn.keepMe = keepMe;
	},
	onClick: function(e)
	{
		var exclude = (this.keepMe == "true")? this.tiddler : undefined;
		var tiddlers = this.tiddlers;
		if(this.closeAll == 'true'){
			story.closeAllTiddlers(exclude);
			tiddlers = (this.keepMe == "true")? tiddlers: tiddlers.reverse();
		}
		story.displayTiddlers(this,this.tiddlers);
		return(false);
	}
};
//!END-PLUGIN-CODE
// %/
<data>{"abstract":"[[Optische Täuschung Übung]]: Demonstration der physiologisch und psychologisch bedingten Einschränkungen der (optimalen) [[Wahrnehmungsfähigkeit|Wahrnehmung]]; Verdeutlichung der Notwendigkeit von Sensitivity. Nur bei relativ strukturierten Sens.-Trainings; relativ zu Beginn; auch für Kurz- und Lehrveranstaltungen"}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.unterricht.kunstbrowser.de/images/kraterhuegelrp_460.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Optische Täuschung Übung","abstract") </script>

!Optische Täuschungen
<script> return "<<tiddler [[Optische Täuschung Übung##Overview]]>>" </script> 

!Objectives
* Demonstration der physiologisch und psychologisch bedingten Einschränkungen der (optimalen) [[Wahrnehmungsfähigkeit|Wahrnehmung]]; 
* Verdeutlichung der Notwendigkeit von Sensitivity
* Nur bei relativ strukturierten Sens.-Trainings; 
* relativ zu Beginn; auch für Kurz- und Lehrveranstaltungen

!Timing
beliebig; möglichst kurz

!Audience
Group / Individual

!Materials
* Dias oder Tafeln diverser geometrisch-optischer Täuschungen (s. Internet Images)

!Procedure
# Demonstration von maximal 8-10 Tafeln mit entsprechenden Aufforderungen
# Herausarbeitung von Gestaltgesetzen und weiteren Wahrnehmungsfaktoren

!Debriefing
* Abhängigkeit der Wahrnehmung von physiologischen, psychologischen und sozialen Faktoren.
* Welche Gestaltgesetze werden spontan gefunden?

!Internet Images
+++*[Internet Images]>  {{center{
----
Müller-~Lyer-Täuschung
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://p4.focus.de/img/gen/m/X/HBmXOtUW_Pxgen_r_450x300.jpg>>
----
Müller-~Lyer-Täuschung
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.robaweb.de/gdm/inhalt/VisuelleWahrnehmung/Gestaltwahrnehmung/04-VisuelleTaeuschungen_p/MuellerLyer3_k.gif>>
----
Müller-~Lyer-Täuschung
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.langeneggers.ch/Taeuschung/Taeusch/muller-lyer.gif>>
----
Sander'sche Parallelogramm
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.gefilde.de/ashome/miscellanea/werkstatt/e0022002-math_konstruktivismus/Images/sanderfigur.gif>>
----
Ponzo Täuschung
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.dmg.tuwien.ac.at/asperl/projekt/stein3.jpg>>
----
Heringsche Täuschung
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.dmg.tuwien.ac.at/asperl/projekt/stein6.jpg>>
----
Heringsche Täuschung
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.dmg.tuwien.ac.at/asperl/projekt/stein6.jpg>>
----
Ebbinghaus Kreistäuschung
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://home.arcor.de/saemmer/dis/abb5-3.gif>>
----
Necker Würfel
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://static.gulli.com/media/2009/tenenbaum/necker_wuerfel.png>>
----
Rubin'sches Pokalbild
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.psychophilo.at/images/psycho/wahrnehmung/rubingross.png>>
----
Hase oder Ente?
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.unterricht.kunstbrowser.de/images/kippfiguer02_460.gif>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[Diverse Teamspiele - PDF| http://www.region-online.de/bildung/semi/projekte/spiele.pdf]]
* http://www.dmg.tuwien.ac.at/asperl/projekt/stein5.htm
<data>{"abstract":"Wie führt man eine Verhandlung zu einer win-win-Lösung? Ein [[Rollenspiel|Improvisationstheater]] für den Einsatz im Verhandlungstraining. Die [[Orangenplantage]] ist eine solche Übung."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.amplifier.cd/Natur/Rote-Orange-Blumen/images/Orangenbaum.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Orangenplantage","abstract") </script>

!Orangenplantage
<script> return "<<tiddler [[Orangenplantage##Overview]]>>" </script> 
Jeder Trainer, der Verhandlungstrainings oder Kommunikationstrainings durchführt, ist in der Regel auf der Suche nach geeigneten Spielsituationen, in denen man Verhandlungssituationen üben kann. Die [[Orangenplantage]] ist eine solche Übung, die aus vier Rollen besteht.
Gespielt werden kann schon ab drei Teilnehmern, da die vierte Rolle eine Art Joker ist.

!Objectives
* Verhandlungsführung

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Rolle A ist der Besitzer der Plantage, der 100 Tonnen Orangen geerntet hat. Er muss mindestens 100.000 Dollar einnehmen, würde aber gerne 20.000 $ mehr herausholen, um eine neue Bewässerungsanlage zu bauen.

Rolle B ist ein Einkäufer, der 80-100 Tonnen Orangen für die Herstellung von Orangensaft kaufen will, er kann maximal 50.000 $ ausgeben.

Rolle C ist ebenfalls Einkäufer, möchte auch nur 50.000 $ investieren für den Kauf von 80-100 Tonnen Orangen, um aus der Schale englische Orangenmarmelade herzustellen.

Rolle D (die mehrfach vergeben werden kann) will 20 Tonnen Orangen erwerben für den Verkauf in Bioläden, er will maximal 20.000 $ ausgeben.

Alle vier haben in ihrer Anleitung stehen, dass sie versuchen sollen, das beste Geschäft zu machen. Durch maixmale [[Kooperation]] ist es hier möglich, dass alle annähernd ihr Ziel erreichen. 
Die Übung dauert zwischen 15 und 20 Minuten zuzüglich Auswertung.

!Debriefing

!Quelle
Petra Schächtele: Die Orangenplantage, aus: [[Axel Rachow (Hg): Spielbar II, managerSeminare 2002, S. 145-146| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FSpielbar-pr%25C3%25A4sentieren-Top-Spiele-Seminarpraxis-Seminarpraxis%2Fdp%2F3931488632%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1211920003%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Verhandlung]<<tiddlerList tags:"negotiaton,-newTemplate" header:"Übungen Verhandlung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?db=3&to_parebene=Orangenplantage+%28jt%29]]
<data>{"abstract":"Die [[Organisationsaufstellung]] ist eine Methode, die inneren Strukturen bzw. das Beziehungsgefüge von [[Teams|Team]] oder [[Organisation]] auf verblüffend einfache Weise vor Augen zu führen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.frank-heuser.de/files/organisationsaufstellung.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Organisationsaufstellung","abstract") </script>

!Organisationsaufstellung
<script> return "<<tiddler [[Organisationsaufstellung##Overview]]>>" </script> 

!Objectives
* Beziehungsgefüge von [[Teams|Team]] oder [[Organisation]] aufzeigen

!Timing
60 min

!Audience
Group / Individual

!Materials
* 

!Procedure
In räumlicher Darstellung werden die bewussten und unbewussten Verflechtungen wie „Nähe und Distanz“, „Abwendung und Zuwendung“, „Seite an Seite oder ganz aus den Augen“, „Solist oder Teamplayer“ ausgedrückt. Verborgene Ressourcen, Blockaden oder [[Konfliktherde|Konflikt]] werden deutlich. 

Ziel der Methode ist es neue Lösungsmöglichkeiten und Ansätze zur Veränderung zu erkennen. Die [[Organisationsaufstellung]] ist eine [[Aufstellungsmethode|Aufstellung]] und basiert auf der [[systemischen Strukturaufstellung|Systemische Strukturaufstellung]] nach [[Dr. Matthias Varga von Kibéd|http://de.wikipedia.org/wiki/Matthias_Varga_von_Kib%C3%A9d]] und [[Dr. Gunthard Weber|http://www.gunthard-weber.de/]] und grenzt sich von der Familienaufstellung nach [[Bert Hellinger|http://de.wikipedia.org/wiki/Bert_Hellinger]] ab. 

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[Playmobil-Aufstellungsfiguren| http://www.aufstellungsfiguren.de/playmobil.php]]
* http://www.die-akademie.de/glossarbegriff.html?name=Organisationsaufstellung
* http://de.wikipedia.org/wiki/Organisationsaufstellung
* http://www.managerseminare.de/thema/Organisationsaufstellung,22476

!Literatur
* [[Fritz B. Simon, Einführung in die systemische Organisationstheorie, Carl-Auer-Systeme, 2007| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FEinf%25C3%25BChrung-systemische-Organisationstheorie-Fritz-Simon%2Fdp%2F3896706020%2F&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]
<data>{"abstract":"Noch ein Weg für Menschen, die bei der Ideensuche lieber etwas strukuriert und systematisch vorgehen möchten. Die Checkliste des Amerikaners Osborn ist für viele Fragestellungen geeignet. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.allesgelingt.de/images/brainwriting_160.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Osborn-Checkliste","abstract") </script>

!~Osborn-Checkliste
<script> return "<<tiddler [[Osborn-Checkliste##Overview]]>>" </script>
Der Amerikaner [[Alex Osborn| http://de.wikipedia.org/wiki/Alex_Osborn]] (gilt als Erfinder des [[Brainstorming]]) entwickelte Anfang der 50er Jahre diese Checkliste zur Verbesserung und Entwicklung von Produkten. Sein Vorgehen dabei: Er untersuchte die Lösung von Problemen und fragte sich dann, welche Fragestellung geeignet gewesen wäre, genau diese Lösung hervorzubringen.
Herauskam eine Checkliste, die sich sicherlich auch für andere Fragestellungen gut eignet. Ausgehend von einer klaren Zielformulierung lassen sich alle möglichen Fragestellungen hiermit bearbeiten.

Die wichtigsten Punkte der Checkliste sind:
* Wie kann man die Größe oder Proportion verändern? (größer, länger, breiter, dicker, höher, kürzer, niedriger....)
* Wie lässt sich die Form oder Funktion verändern? (komplexer, vielseitiger, einheitlicher, formbar, dreidimensional...)
* Was lässt sich an der Oberfläche verändern? (glatter, härter, weicher, rauer, elastischer, feiner...)
* Welcher Aufbau oder welche Struktur ist möglich? (mehr Varianten, kombinierbar, einfacher, vielseitiger...)
* Lässt sich der Wirkungsgrad verbessern? (ökonomischer, rationeller, beweglich, mit weniger Energie oder Material...)
* Wie kann die "Performance" verbessert werden? (stärker, schneller, langsamer, schwächer, wirksamer...)
* Wie kann die Handhabung verändert werden? (automatisch, zum Zerlegen, handbedient...)
* Welcher Materialien sind möglich? (stärkere, solidere, dauerhaftere, zerbrechliche, kurzlebiger...)
* Wie können Farben eingesetz werden? (mehrfarbig, schwarz-weiß, gemustert, transparent...)

(nach [[Mario Pricken und Christine Klell von Schmidt: Kribbeln im Kopf: Kreativitätstechniken & Denkstrategien für Werbung, Marketing & Medien, Verlag Hermann Schmidt, 2007, S. 214/215| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FKribbeln-Kopf-Kreativit%25C3%25A4tstechniken-Denkstrategien-Marketing%2Fdp%2F3874397114%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214709859%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]])

Wie viele andere [[Kreativitätstechniken|Kreativitätstechnik]] ist die Anwendung der Osborn Checkliste in [[Teams|Team]] mit einem anfänglichen Lern- und Abstimmungsaufwand verbunden. Ihr Schwerpunkt liegt bei der Entwicklung neuer [[Ideen|Ideenmanagement]] aus bestehenden. Eine Abwandlung ist [[SCAMPER|http://de.wikipedia.org/wiki/SCAMPER]]


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* http://de.wikipedia.org/wiki/Osborn-Checkliste
<data>{"abstract":"Ein [[Problem systematisch anzugehen|Problemlösung]] kann manchmal der beste Weg sein. Das PLANER-Modell beschreibt einen Schritt nach dem anderen und bietet zudem eine Orientierung über den jeweiligen Zeitbedarf.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 25% auto title http://www.teachsam.de/images/idee_1.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("PLANER-Modell","abstract") </script>

!~PLANER-Modell
Um ein [[Problem]] systematisch mit einer Gruppe anzugehen, eignet sich als Struktur das [[PLANER-Modell]]:

{{indent{/%
%/{{big{''P''}}}  &nbsp;&nbsp;  ''roblem'' benennen, beschrieben, eine konstruktive Lösungsfrage formuliert. Ziel: Die Gruppe soll mit Fragen und Problemaspekten vertraut gemacht werden. Das Ziel soll positiv und als “[[Wie-Frage|W-Fragen]]"? formuliert werden! (Wie können wir für Transparenz in unserer Arbeit sorgen?) Zeit: 30% der Gesamtzeit. Ablauf: Moderator begrüßt die Gruppe, erläutert den Grund der Zusammenkunft, stellt eventuell Experten vor, Experte präsentiert das Problem, Moderator sammelt weitere Problemaspekte, erarbeitet mit der Gruppe das Ziel bzw. die Zielfrage!<br><br>
{{big{''L''}}}  &nbsp;&nbsp;  ''ösungen'' werden im [[Brainstorming]]-Verfahren zusammengetragen. Ziel: Möglichst viele unterschiedliche Lösungsansätze finden bzw. entwickeln. Zeit: 20% der Gesamtzeit. Weg: Alle [[Ideen|Ideenmanagement]] visualisieren. Ablauf: Keine Kritik, Quantität geht vor Qualität, auch absurde Ideen, abschließend durchnummerieren, Technik: [[Brainstorming]] zur ~Wie-Frage, Analogien finden, in anderen Kontexten nach [[Ideen|Ideenmanagement]] suchen<br><br>
{{big{''A''}}}  &nbsp;&nbsp;  ''uswahl'' der Ideen. Ziel: Verdichten der Lösungsansätze, Prioritäten feststellen, Gemeinsamkeiten aufzeigen. Zeit: 20% der Gesamtzeit, jedes Teammitglied wählt die Idee(n) aus, die es für wichtig hält. Ablauf: Klebepunkte verteilen – gleiche Anzahl pro Teilnehmer (Wie festgelegte Prioritätenzahl), erst wenn alle die Auswahl beendet haben, kleben alle ihre Punkte an die jeweilige Idee! (pro Idee max. einen Punkt)<br><br>
{{big{''N''}}}  &nbsp;&nbsp;  ''etzwerk'' entwickeln. Ziel: Konzepte entwickeln als Leitlinie für die Umsetzung, für alle wahrnehmbar machen, Zeit: 30% der Gesamtzeit, Ablauf: Wichtig! erst alle punkten, dann zusammenfassen! Die [[Ideen|Ideenmanagement]] mit den meisten Punkten umrahmen, dazugehörige [[Ideen|Ideenmanagement]] in den Rahmen schreiben, evtl. Namen für Rahmen/Konzept finden, Minderheitenvotum für einzelne [[Ideen|Ideenmanagement]] berücksichtigen (Minderheiten ernst nehmen, aber nicht übertreiben) – gemeinsamer Nenner? Konzeptansätze ggf. konkret ausarbeiten<br><br>
{{big{''E''}}}  &nbsp;&nbsp;  ''insatzplan'' erstellen. Ziel: Maßnahmenkonzepte in konkrete Aktionen umsetzen, Zeit: 10% der Gesamtzeit, Weg: Detaillierte Aufstellung der Aktionen, wer es macht und wann, Ablauf: Liste der Maßnahmen und Aktionen erstellen: Was soll geändert werden? Wo soll etwas geändert werden? Wie soll etwas geändert werden? Wer soll ändern? Wann soll geändert werden? Vereinbarungen nur mit Anwesenden treffen, Wer unterstützt bei..? Überprüfungspunkte, -zeiten und -kriterien festlegen!<br><br>
{{big{''R''}}}  ''eflexion'': Ziel: Überprüfen,ob das Ziel erreicht worden ist! Nach definierter Zeit Treffen einberufen. Ablauf: Was war unser Ziel? Welche Mittel und Maßnahmen haben wir eingesetzt? Was ist das Ergebnis unserer Bemühungen? Ggf. Schwachpunkte erkennen und neuen PLANER beginnen./%
%/}}}



!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Moderation]<<tiddlerList tags:"moderation,-newTemplate" header:"Übungen Moderation">>===

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

<<tiddlerList tags:"motto">>

!Weblinks
* 
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://upload.wikimedia.org/wikipedia/commons/c/cb/Plus-,minus-,and_equality-sign.png>>
<<showtoc>>
!Overview
Beim [[PMI|PMI-Methode]] überlegen Sie sich alle positiven und alle negativen Folgen einer Entscheidung, um so die möglichen Alternativen besser einschätzen zu können. Die Methode stammt von [[Edward de Bono|http:de.wikipedia.org/wiki/Edward_de_Bono]].

!~PMI-Methode
Minus- und Pluspunkte zu einer Fragestellung oder einer Entscheidung erarbeiten
Beim [[PMI|PMI-Methode]]  richten Sie Ihre Aufmerksamkeit nacheinander gezielt für jeweils zwei bis drei Minuten erst auf die positiven und dann auf die negativen Aspekte einer anstehenden Entscheidung und schreiben das Ergebnis Ihrer Gedanken auf.

Es lohnt sich, vorher ein [[CAF|Consider All Facts]] durchzuführen, damit Sie möglichst viele Einflussfaktoren der jeweiligen Entscheidung kennen und für das PMI berücksichtigen können.

!Plus und Minus - schon wird's  Interessant
Diese gelenkte Form der  Assoziation  eignet sich vor allem  bei einem umstrittenen Problem, also wenn  kontroverse Standpunkte erörtert werden sollen.  Im Grunde ist die Methode ganz einfach: 
* In einem ersten Schritt werden alle denkbaren Pluspunkte für einen Standpunkt zusammengetragen.
* In einem zweiten Schritt werden die Minuspunkte aufgelistet.
* In einem dritten Schritt werden aus der ~Plus-Minus-Liste alle jene Punkte herausgefiltert, die besonders interessant sind und über die weiter nachgedacht werden muss. Dies kann natürlich wieder auf ganz unterschiedliche Art und Weise geschehen.

!Beispiel
Vor - und Nachteile von [[Teamarbeit]]

|''Pluspunkte'' |''Minuspunkte'' |''Interessant'' |h
|<<tiddler [[PMI-Methode##plus]]>> |<<tiddler [[PMI-Methode##minus]]>> |<<tiddler [[PMI-Methode##interessant]]>> |
| ''+15'' | ''-11'' | ''i2'' |



!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.teachsam.de/deutsch/d_schreibf/schr_schule/eroert/mmf/images/stoffsammlung.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.zeitzuleben.de/shared/media/artikel-illu/g_pmi.gif>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.teachsam.de/deutsch/d_schreibf/schr_schule/eroert/ero_arbs_2_5.htm
* http://www.zeitzuleben.de/artikel/beruf/entscheidungsfindung-3.html
* http://www.mindtools.com/pages/article/newTED_05.htm


/%
!plus
* Sicherheit durch ein "~Wir-Gefühl"
* Effektivität durch Arbeitsaufteilung
* Informationsaustausch
* Schwache Mitglieder werden durch die Gruppe aufgefangen
* Toleranz kann geübt werden
* Innovation und Kreativität
* verbessert die [[Arbeitsmotivation|Motivation]]
* Lerneffekt in der Gruppe, der eine lernt vom anderen
* Höhere Sicherheit, dass die Arbeit fortgesetzt wird, wenn ein Mitarbeiter ausfällt
* Weniger Fehler bei den Ergebnissen
* Bei gut funktionierenden Teams mehr Spaß bei der Arbeit
* Horizonterweiterung
* Größeres Wissenspotential durch unterschiedliche Fähigkeiten der Gruppenmitglieder
* Arbeitserleichterung
* macht viel Spaß
* …
!minus
* Minderheiten, die zeitweise die besseren [[Ideen|Ideenmanagement]] haben, kommen nicht zum Zuge
* Zeitaufwand für [[Besprechungen|Besprechung]] zum Terminabgleich und Informationsaustausch ist groß
* Gruppenzwang fördert Lösungen, die allen gefallen und dadurch nicht immer optimal sind
* Wer am "lautesten" ist, setzt sich durch.
* einige Teammitglieder wollen sich vor den anderen profilieren
* mitunter schwierig, Entscheidungen zu fällen
* keiner übernimmt [[Verantwortung]], ganz nach dem Motto "die anderen werden es schon richten"
* Konkurrenzdenken
* "Trittbrettfahrer" werden mit "durchgezogen"
* Entscheidungsprozesse dauern länger
* muss lange eingeübt werden
* …
!interessant
* Worin z.B. besteht das größere Wissenspotential das Teams besitzen?
* Wieso muss Teamarbeit lange eingeübt werden?
!
%/
<data>{"abstract":"[[Paarvergleichs-Matrix]], Sie haben eine umfangreiche Ideensammlung erstellt, Sie haben es auch geschafft, noch nicht zu bewerten, sondern wirklich nur zu sammeln. Nun geht es darum, die [[Ideen|Ideenmanagement]] in eine Rangfolge zu bringen. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 20% auto title http://www.johannes-koch.com/seiten/grafik%20skulpturen/Paar800.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Paarvergleichs-Matrix","abstract") </script>

!~Paarvergleichs-Matrix
<script> return "<<tiddler [[Paarvergleichs-Matrix##Overview]]>>" </script> 

...und zwar in Hinsicht auf eine bestimmte Fragestellung, als da wäre:
* Welche Idee hat bezüglich der Umsetzung Vorrang?
* Welche Idee stiftet den größten Nutzen?
* Welche Idee verschafft unserem Vorhaben die größte Aufmerksamkeit etc.

Bevor Sie sich nun die Köpfe heiß diskutieren, könnte die Paarvergleichs-Matrix helfen, sich einen Überblick zu verschaffen und eine Rangfolge festzulegen.

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Angenommen, Sie haben 10 [[Ideen|Ideenmanagement]] gesammelt, die Sie weiter verfolgen möchten. Nun tragen Sie in die erste Spalte von oben nach unten die Ziffern 10 bis 1 ein, die erste Zeile bekommt die Ziffern 2 bis 10.
Unter der Matrix führen Sie die [[Ideen|Ideenmanagement]] 1 bis 9 mit ihren Kurzbeschreibungen auf.

Nun geht es an den Paarvergleich. Im ersten Kästchen oben links vergleichen Sie Idee 1 mit der Idee 10, im zweiten Kästchen die Idee 2 mit der Idee 10 usw. 
Ebenso verfahren Sie von oben nach unten. In die einzelnen Kästchen der Matrix tragen Sie die Nummer der Idee ein, die bezüglich der Eingangsfrage eher geeignet erscheint. 
Am Ende zählen Sie einfach ab, welche Idee am häufigsten "gewonnen" hat, diese erhält die Priorität 1.

!Debriefing

!Quelle
Techniken für die Ideenbewertung, Der persönliche Organisationsberater, ~Mai-Juni 2002 S. 126.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Paarvergleichs-Matrix+%28jt%29.html]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.southjerseyboxes.com/pics/peanuts.gif>>
<<showtoc>>
!Overview
The Agile game [[Packing Peanuts]] gives people a great understanding of what [[Technical Debt]] is and why it is so costly to projects.

!Packing Peanuts
<<tiddler [[Packing Peanuts##Overview]]>>

!Objectives
* understanding of Technical Debt and why it is so costly to projects.

!Timing

!Materials
* 4 cardboard boxes. Size: around the standard size of a moving box (13”x18”x12”)
* Enough packing peanuts to fill two of the boxes
* 2 people (these folks are the key ingredient ;-p).

!Audience
2 people or more 
You can do this exercise with more people (adding 2 at a time, up to 6 people without the need to have more boxes or packing peanuts). For even more people you’ll need to add more boxes and packing peanuts

!Procedure

The goal is to move packing peanuts from one box to another one across the room.
The objective is to demonstrate how technical debt is created and why it is so costly.

!!Setup
* Set 2 lanes across the room
* For each lane place one cardboard box (opened for easy access) at each end of the lane. Thus you have two boxes per lane
* Fill the boxes at the same end of the lanes with packing peanuts: one of them at 70% capacity, and the other one at 90% capacity
* Each participant will stand next to a box with packing peanuts

!!Execute
# Explain the participants their goal: To transfer all the peanuts from the box next to them to the box at the other end of their respective lanes. Observing:
** The person with the 70%-full box is to transfer all of them in three trips and can use hands and arms (and support them on his/her belly if so desired), but nothing else
** The person with the 90%-full box can take as many trips as desired and can use both hands only
** The boxes are not to be lifted, tilted, shifted or other. Their sole purpose is to contain the peanuts
** Peanuts that fall on the floor are left there
** There is no time limit
** Do not run and watch your step
# Start the game
# Let them play for about 2 minutes or until one of them accomplishes the task

!!Results
# Unless something really unexpected happens, the person with the 90%-full box will finish first or will have transferred more peanuts once the time is up
# The person with the 70%-full box typically drops way more peanuts to the floor
# The person with the 70%-full box exerts and stresses more

!Debriefing
* The peanuts on the floor are technical debt: they represent features or aspects of features, and those on the floor represent unfinished work, bugs, etc. All of them very costly to the project
* One trip represents a release cycle: more peanuts per trip represent a bigger release
* Big monolithic projects generate more technical debt
* Big monolithic projects take more energy out of people, and stress them more
* Trying to bring all features from start to end at once is way more difficult
* Bringing features to completion in small chunks is easier, and generates less technical debt (less peanuts on the floor)
* Bringing features to completion in small chunks allows people to work at a better pace and under less stress
* Bringing features to completion in small chunks results in more features done in less time

!Credits
Masa K Maeda

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2010/05/packing-peanuts/
<!--{{{-->
<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' force='true' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='CSideBarTabs'></div>
</div>
<div id='displayArea'>
            <div id='messageArea'></div>
            <div id='storyMenu' class='storyMenu' refresh='content' force='false' tiddler='StoryMenu'></div>
            <div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<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' force='true' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='CSideBarTabs'></div>
</div>
<div id='displayArea'>
            <div id='messageArea'></div>
            <div id='storyMenu' class='storyMenu' refresh='content' force='false' tiddler='StoryMenu'></div>
            <div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://industriallogic.com/games/PairDraw/pairBarb.gif>>
<<showtoc>>
!Overview
[[Pair programming|Pair Programming]] is a practice used in [[eXtreme Programming|Extreme Programming]] in which two programmers work together at one computer. [[Pair Draw]] is a simulation of pair programming, designed to give programmers and managers (and whoever else is curious) a feel for what pair programming is like, before they actually try it. 

!Pair Draw
<script> return "<<tiddler [[Pair Draw##Overview]]>>" </script>
It's easy to conduct this simulation. Someone must play the [[role|Rolle]] of [[facilitator|Facilitator]] (preferrably someone who has pair programming experience). Schedule 20-30 minutes with a group of participants and make sure you have an even number of participants for pairing. Professional simulation designers suggest spending one-third of your time doing a simulation and two-thirds debriefing it.

You will need a ream of blank white paper and one color magic marker for every participant. It is best to use a good selection of colored markers, so each participant can have a unique color. Before beginning, let each participant choose a magic marker and give each participant 2 pieces of blank white paper.

!Objectives
* Foster [[collaboration|Collaboration]]

!Timing
20min-30min

!Audience
Group

!Materials
* a pad of blank white paper 
* one color magic marker (=Filzstift) for every participant. 

!Procedure
# Now, tell the participants they have 2 minutes to draw two faces: //"1 face on one white sheet and another face on another white sheet. Everyone will draw these faces by themselves using their magic marker."//
# As soon as everyone has completed this task (or when 2 minutes is up), ask everyone to form pairs. It helps if participants pair with people they aren't best friends with, but you can let participants decide with whom to pair.
# Once the pairs have formed, have each pair find a comfortable place where they will be able to draw together. 
# Each pair should have 2 different color magic markers: So if Jon and Jane pair, they can't both have blue markers. Pairs should use colors that are different in hue (not green and light green) so that it will easy to see which participant contributed what to each drawing.
# Give each pair 2 sheets of blank white paper (or you can have them all work on a white board) and ask them to [[Pair Draw]] a human face (one face per sheet of paper).
# When every pair has completed drawing 2 human faces, the entire group can assemble for the debrief.

!Variations
Here are a few variations of [[Pair Draw]]:
* ''~XP-Style''<br>      On an [[eXtreme Programming|Extreme Programming]] project, programmers change pairs all of the time. You can simulate this in [[Pair Draw]] by letting one pair draw one face, then form new pairs to draw a new face, and so on. Add initials to each drawing to keep straight on who drew what.
* ''Houses''<br>      Instead of, or in addition to human faces, pairs can also try their hand at drawing houses. 

!Debriefing
Simulation designers often say the simulation is the excuse for the debfrief. Before starting your debrief of [[Pair Draw]], have everyone place their solo drawings in front of them and their pair drawings in the center of the table. Here are some examples of solo and pair drawings made by participants in The eXtreme Programming Workshop (solo drawings on the left, pair drawings on the right): 

Before you begin the debrief, it's good to have everyone see all of the faces that have been drawn. You can simply assemble them on the floor or on a table.

The facilitator now starts the debrief. Below are few ways I've learned to conduct this debrief:
* One Question<br>      The facilitator asks all participants one single question: What was that like for you? The facilitator then records what people say (usually on a white board or flip chart). This is a simple and effective way to debrief this exercise.
* Many Questions<br>      This style of debrief is more of a dialogue and is also effective. The facilitator asks lots of questions (see below) to understand how people felt about various things during the simulation. Good questions to ask include:
** How did you feel when you were drawing solo vs. drawing in a pair?
** What do you notice is the same or different about the solo and pair drawings?
** Which of the drawing are more artistic or more orginal - the solo or pair drawings?
** Did you find yourself concentrating more or less during pairing?
** Was it more fun to draw alone or in a pair?
** What did you like and what didn't you like about drawing alone or in a pair?
** What was it like not knowing what your pair would draw next?
** Did you find yourself mirroring your pair? (For example, your pair draws an ear and than you draw an ear).
** Do you think that people get better at pairing over time?
** How do you think the simulation differs from real-world pair programming?
** Who is that wierd looking guy with the horns? 

After the debrief, the facilitator can invite people to take home their drawings and encourage participants to lead others through the [[Pair Draw]] simulation. Ofcourse, after doing [[Pair Draw]], it is nice to try some real pair programming. For research, diagrams, experience reports, and tips and tricks about pair programming, check out some of the links on the right side of this page.


/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://industriallogic.com/games/pairdraw.html
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://www.jimlangley.net/aboutjim/Cat-ping-pong.jpg>>
<<showtoc>>
!Overview
[[Pair Ping-Ponging]] is an interactive and productive work techniques to facilitate and explain the approach of [[TDD|Test Driven Development]] and [[Pair Programming]].

!Pair ~Ping-Ponging
<<tiddler [[Pair Ping-Ponging##Overview]]>>

!Objectives
* highlights the essence of Test-Driven Development

!Timing
1+ hrs

!Materials
* IDE + Unit Testing tool
* Timer

!Audience
Group

!Procedure
# Programmer 1 writes a test and challenges Programmer 2 to make it pass. 
# Programmer 2 attempts to make it pass in as short of time as possible and then writes another test to try to stump Programmer 1. This test could be to fill any gaps that were exploited in the previous test, or to test another part of the system. 
# This continues until all features have been implemented. 
# A winner can be chosen based on total time taken to make tests pass. 
# After each test passes, both programmers collaborate to refactor the solution. 
# This time does not count towards the final score.

!Debriefing
* This game highlights the essence of Test-Driven Development, by only writing code for failing tests.
* Programmers end up producing the simplest solution that works. They then must have the discipline to refactor the solution when code-smells emerge.

!Credits
Michael ~McCullough

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/pair-programming-game/
<data>{"abstract":"The [[Paired Compariston tool|Paired Comparison Analysis]] is useful for ranking a list of options. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://khymos.org/flavor-pairing.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Paired Comparison Analysis","abstract") </script>

!Paired Comparison Analysis
<script> return "<<tiddler [[Paired Comparison Analysis##Overview]]>>" </script>
In paired comparison analysis, also known as paired choice analysis, a range of options are compared and the results are tallied to find an overall winner. A range of plausible options is listed. Each option is compared against each of the other options, determining the preferred option in each case. The results are tallied and the option with the highest score is the preferred option. This technique may be conducted individually or in groups. It may include criteria to guide the comparisons or be based on intuition following an open discussion of the group. A paired choice matrix or paired comparison matrix can be constructed to help with this type of analysis.

!Instructions
Directions: 
* List each option across the columns and down the rows.  
* Give each option a single letter designation.  
* Grey out all cells below the diagonal (they will represent duplicate information).  
* For each cell, compare the two options and select the one that is more important.  
* Rank its greater importance from 1 to 3, 3 being the highest.
* Total the points for each option, A through E.  
* Add up all points and give each option a percentage by dividing by the total. 


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3]] auto auto title http://colour-emotion.co.uk/images_quanti/paired.png>>
----
<<wikify [img(%0,%1)[%2|%3]] auto auto title http://corporateplanningforum.com/images/paired.gif>>/%
----
<<wikify [img(%0,%1)[%2|%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3]] auto auto title URL>>%/
---- }}} 
===


!See also
<<tiddler ShowTiddlerReferences>>
<<tiddlerList tags:"decision_theory">>

!Weblinks
* [[A Paired Comparison Approach for the Analysis of Sets of Likert Scale Responses| http://epub.wu-wien.ac.at/dyn/virlib/wp/mediate/epub-wu-01_8b9.pdf?ID=epub-wu-01_8b9]]
* http://en.wikipedia.org/wiki/Paired_comparison_analysis
* http://www.competitivefocus.com/paired_comparison_analysis.htm
* http://www.mindtools.com/pages/article/newTED_02.htm
/***
|Name''|PaletteViewMacro|
|Version''|0.2|
|Author''|FND|
|Source''|[[FND's DevPad|http://devpad.tiddlyspot.com/#PaletteViewMacro]]|
|License''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|~CoreVersion''|2.1|
|Type''|macro|
|Requires''|N/A|
|Overrides''|N/A|
|Description''|Displays color palettes.|
!Notes
There is also [[ViewPalettePlugin|http://simon.tiddlyspot.com/#ViewPalettePlugin]], which currently does not work with TiddlyWiki v2.2 though.
!Usage
{{{
<<paletteView [tiddler name]>>
}}}
!!Example
<<paletteView [[ColorPalette]]>>
!Revision History
!!v0.1 (2007-11-18)
* initial release
!!v0.2 (2007-11-20)
* limited processing to slices containing [[actual color values|http://www.w3.org/TR/css21/syndata.html#color-units]]
* changed fallback value to the tiddler the macro is called from (instead of using [[ColorPalette]])
!To Do
* selection list for all available palettes (tag-based)
* parameter for custom table class
* customizable column order
* documentation (e.g. using from within [[ViewTemplate]])
!Code
***/
//{{{
config.macros.paletteView = {};

config.macros.paletteView.handler = function(place, macroName, params, wikifier, paramString, tiddler) {
	var title = params[0] || tiddler.title;
	//var palettes = store.getTaggedTiddlers(params[0]); // DEBUG: yet to be implemented
	var colors = store.calcAllSlices(title);
	var labels = [];
	for(var c in colors) {
		if(this.isColor(colors[c])) {
			labels.push(c);
		}
	}
	if(labels.length > 0) {
		var output = "|!Sample|!Value|!Name|h\n";
		for(var i = 0; i < labels.length; i++) {
			output += "|padding:0 4em;background-color:" + colors[labels[i]] + ";&nbsp;|"
				+ "{{{" + colors[labels[i]] + "}}}|"
				+ "[[" + labels[i] + "|" + title + "]]|\n";
		}
		wikify(output, place);
	}
};

config.macros.paletteView.isColor = function(s) {
	var colors = ["Black", "Green", "Silver", "Lime", "Gray", "Olive", "White", "Yellow",
		"Maroon", "Navy", "Red", "Blue", "Purple", "Teal", "Fuchsia", "Aqua", "Orange"];
	var match = s.match(/^#[0-9A-F]{3}$|^#[0-9A-F]{6}$|^RGB\([\d,\s]{5,}\)$/i);
	if(match) return true;
	if(colors.contains(s)) return true;
	return false;
};
//}}}
<data>{"abstract":"Das Papier-Relief ist ein kreatives Tool zur Visualisierung der [[inneren Landkarten|Innere Landkarte]] des Klienten. Je nach Fokussierung und Fragestellung wird ein bestimmter Bereich der inneren Landkarte beleuchtet und der  [[Veränderung|Organizational Change]]  zugänglich gemacht."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://img.gkblogger.com/blog/imgdb/000/000/376/366_2.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Papier-Relief","abstract") </script>

!~Papier-Relief
<script> return "<<tiddler [[Papier-Relief##Overview]]>>" </script>

!Anwendungsbereiche 
Das Papier-Relief ist vielseitig einsetzbar und eignet sich besonders für Anfangssituationen im [[Coaching-Prozess|Coaching]], nachdem die [[Ziele|Ziel]] geklärt sind. Für das Kennenlernen der Entwicklung und aktuellen Situation, in der sich der Klient derzeit in seinem Unternehmen sieht, ist das Tool außerordentlich nützlich. 


!Zielsetzung/Effekte 
Das Tool ermöglicht dem Coach, seinen Klienten besser kennenzulernen. Mit einfachem Material (ein weißes Blatt Papier) wird in analoger Form die [[inneren Landkarte|Innere Landkarte]] des Klienten mit ihren Höhen und Tiefen sichtbar. Der Klient kann aus der Distanz heraus, aus einer ~Meta-Position seine Situation betrachten, bewerten, ordnen und eventuell neu beschreiben. Der Perspektivenwechsel wird angeregt, und neue Sichtweisen auf erlebte Situationen und Entwicklungen werden möglich. Coach und Klient sind Beobachter auf gleicher Ebene (~Meta-Ebene). 
Bilder, Symbole und [[Metaphern|Metaphorik]] bleiben stärker im Gedächtnis haften als das gesprochene Wort. Häufig erinnern sich die Klienten auch später noch an das Relief und stellen Verbindungen zu anderen Situationen, [[Erfahrungen|Erfahrung]] und Lernprozessen her. Insofern berücksichtigt das Papier-Relief die Grundprinzipien der [[Mnemotechniken|Mnemotechnik]] und hinterlässt häufig einen bleibenden Eindruck.
Das Tool fördert den Aufbau einer vertrauensvollen Arbeitsbasis.

!Objectives
* Visualisierung der [[inneren Landkarten|Innere Landkarte]] des Klienten
* Aufbau einer vertrauensvollen Arbeitsbasis
* Kennenlernen des Klienten

!Timing

!Audience
Individual

!Materials
* ~DIN-A4-Blatt, Stift

!Procedure
Der Coach begleitet den Klienten durch das Tool und beginnt mit einer Einladung zur Erstellung einer Art [[Landkarten-Übung]], die dem Coach das Kennenlernen des Klienten ermöglichen soll. Er erklärt, dass ihn vor allem die Zeit des Klienten im Unternehmen, seine Entwicklungen sowie die aktuelle Situation interessieren. 
Anschließend bittet der Coach den Klienten, ein weißes ~DIN-A4-Blatt zusammenzuknüllen, um es danach vorsichtig zu entfalten, aber nicht zu glätten. Das ist wichtig, um die entstandenen Linen, Vertiefungen und Aufwerfungen im nächsten Schritt nutzen zu können. 
Auf dieser Landkarte markiert der Klient nun mit zwei Punkten sowohl seinen Eintritt ins Unternehmen als auch den aktuellen Zeitpunkt. Der Klient malt anschließend unter Nutzung des entstandenen Reliefs den Weg zwischen diesen beiden Punkten und kennzeichnet dabei besonders wichtige Stationen oder Wegstrecken. 
Es ist nützlich, wenn der Klient während des Malens erzählt, berichtet, sein Tun kommentiert bzw. laut denkt. 
Der Coach hört aufmerksam zu und unterstützt die Konstruktion des Klienten durch sorgfältiges Fragen. Entscheidend ist, dass der Coach keine Fragen stellt, die den Denkprozess des Klienten stören oder in andere Bahnen lenken. 

!Debriefing
Die fertige Landkarte dient nun als Reflexionsgrundlage. Coach und Klient beobachten gemeinsam aus der Distanz heraus, wie der Klient beobachtet und seinen Weg konstruiert hat. Dabei bietet es sich an, sprachlich in der Metapher Landkarte zu bleiben, es sei denn, der Klient bevorzugt eine andere Metapher. 

Mögliche Fragen zur Weiterarbeit: 
* Welche wichtigen Punkte sieht der Klient? 
* Gab es Wendepunkte und wie wurden sie herbeigeführt/bewältigt? 
* Welche Hindernisse wurden überwunden, welche Talsohlen durch-schritten?
* Wie hat der Klienten das geschafft? 
* Wie hat er sich selbst unterstützt auf seinem Weg? 
* Wer hat ihn wie unterstützt? 
* Wer im Unternehmen sieht den Weg des Klienten genau so oder ähnlich? 
* Wer würde den Weg anders beschreiben und wie? 
* Worauf blickt er gerne/stolz zurück? 
* Wo hat er welche neue Aussichten gewonnen? 

Aus der ~Meta-Perspektive betrachten Klient und Coach gemeinsam, wie der bisherige Weg des Klienten im Unternehmen verlief, welche Erkenntnisse für den weiteren Weg sich daraus ergeben, welche Ressour-cen vorhanden sind und wie sie genutzt werden können. Hindernisse, die der Klient selbst aufgebaut hat oder die andere aufgestellt haben, werden deutlich. Häufig werden Verhaltensmuster des Klienten im Kontext dieses Unternehmens erkennbar. 
Die Reflexionsarbeit dieses Tools lässt sich hervorragend auf die Zielsetzung für das [[Coaching]] beziehen. Fragen wie: //„Was bedeutet das für Ihre Zielerreichung, für das Coaching insgesamt etc.?“// stellen diesen Bezug her und überprüfen die [[Ziele|Ziel]] auf ihre Realisierbarkeit. 

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[Download| http://www.managerseminare.de/SCD/UmFuZG9tSVZTS8j4MKcuzWCYfRzaMFvMpLSLPhbfMu5s4mpLSLPfhRpVRvQNVSD1fK1RyJfpLSLPhCBZCnnDsZ7DfO3Ds6IZUp5NpLuPyMOPx0nXRWLpLSLPO7HkVMPS4lLsrc5P7Z6M9mIFS3pLSLP7DhJuRjzKyY=/KPtb-6803.pdf]]
<data>{"abstract":"[[Papierflieger bauen]] - ''Variante 1:'' Damit Prozesse im Unternehmen, ganz gleich ob Dienstleistungs- oder Industriebranche, reibungslos funktionieren, müssen die Prozesse optimal organisiert werden. Diese Übung simuliert es… <br> ''Variante 2:'' Keine neue Übung, aber mit einer interessanten Variante: Zwei Gruppen bauen einen Papierflieger, aber die Bauanleitung ist lückenhaft."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.adwebcat.com/wp-content/uploads/2009/04/papierflieger.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Papierflieger bauen","abstract") </script>

!Papierflieger bauen
<script> return "<<tiddler [[Papierflieger bauen##Overview]]>>" </script>

!Objectives
* Simulation "optimaler" Prozesse
* Notwendigkeit von Kommunikation in der Gruppe

!Timing


!Audience
Group


!Materials
* Papier
* [[Bauanleitung|http://www.papierfliegerei.de/]]

!Procedure
!!Variante 1
Das Ziel der Gruppe lautet, vier Papierflieger von höchster [[Qualität|Qualitaet]] zu basteln. Der Kunde ist sehr anspruchsvoll. 
Der Produktionsprozess verläuft in mehreren Phasen: Entwicklung/Design, Schneiden, Falten und Testen. Für jede Phase wird eine eigene Gruppe benannt, die jeweils einen Manager aus ihren Reihen bestimmt. Die jeweiligen Ergebnisse werden von Gruppe zu Gruppe weitergereicht, und zwar ein Bauteil nach dem nächsten (also nie der komplette Bausatz).

Während des Produktionsprozesses kommt es immer wieder zu Störungen, weil der Trainer den Manager aus der Gruppe holt, Zusatzaufgaben verteilt, [[Informationen|Information]] verlangt, die extra erstellt werden müssen, erklärt, wie man [[Profitabilität]] berechnet usw. Besondere Herausforderungen entstehen, wenn die Gruppen räumlich getrennt voneinander sitzen.
In der Auswertungsphase wird analysiert, wo der [[Prozess]] ins Stocken geriet, wer warten musste, wie mit [[Fehlern|Fehler]] umgegangen wurde und wie es besser laufen könnte.

Anschließend wird der optimierte Prozess in zwei weiteren Runden durchgespielt. In der Regel steigt die Produktivität deutlich an. Dann gibt es eine letzte Runde, bei der der komplette Prozess neu gestaltet wird. Hier steigt die Produktivität in der Regeln noch einmal dramatisch. Das gibt eine Menge Ansatzpunkte für die Optimierung des täglichen Arbeitsablaufes.

!!Variante 2
Im Grunde ist es wie im richtigen Leben: Wir sitzen an einem Problem, haben auch einen Teil der Lösung in der Hand, aber kommen einfach nicht weiter. Ein anderer hat vielleicht das fehlende ~Puzzle-Stück, aber wir versuchen es weiter auf eigene Faust.

Diese einfache Übung simuliert den Ablauf. Zwei Gruppen sollen einen Papierflieger bauen, doch während die eine die Anleitung mit einer Zeichnung erhält, die unvollständig ist, arbeitet die andere Gruppe mit einer schriftlichen Anweisung, die aber auch nicht alle notwendigen Informationen enthält. Niemand verbietet, sich auszutauschen, es kommt aber oft auch niemand auf die Idee, mal nachzufragen. Und selbst wenn man herausfindet, dass die Anleitung der anderen nicht die gleiche ist, findet der Austausch der notwendigen Informationen oft nicht statt.
Wie hier die Auswertung geschieht, kann man sich leicht ausmalen.


!Debriefing


!Quelle
Stefanie Bergel: Den Qualitätsvirus in die Köpfe setzen, managerSeminare 2/2005, S.55-56
Cynthia Karen Swank: The Lean Service Machine, Harvard Business Review 10/2003, S.128

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://www.papierflieger.net.ms/
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Papierflieger+bauen+%28jt%29.html]]
<data>{"abstract":"Anstelle der erwünschten Lösung verordnet die [[Paradoxe Verschreibung]] das genaue Gegenteil, nämlich die bewusste Herstellung des beklagten, unerwünschten Zustands…"}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.mailberatung.de/index-Dateien/image001.gif>>
<<showtoc>>

!Overview
<script> return DataTiddler.getData("Paradoxe Verschreibung","abstract") </script>

!Paradoxe Verschreibung
<script> return "<<tiddler [[Paradoxe Verschreibung##Overview]]>>" </script> 
    Die [[Paradoxe Verschreibung]] ist eine „humorvoll-verrückte“ [[Intervention]], die anstelle der erwünschten Lösung, das Gegenteil, nämlich die bewusste Herstellung des unerwünschten Status Quo verordnet (s.a. [[Status-quo-Fehler]]). Auf diese Weise wird die Wirkungsweise unbewussten Verhaltens für [[Veränderungsprozesse|Organizational Change Model]] auf spielerische Weise nutzbar gemacht - nach dem Motto: //„Verhaltet euch genau so, dass alles so bleibt, wie es ist!“//
    Als Steigerung bietet sich darüber hinaus die „paradoxe Verschlimmerung“ an - nach dem Motto: //„Wie können wir es schaffen, dass sich unser [[Problem]] noch verschlimmert? Wer genau müsste was genau dafür tun oder lassen?“//

Das Tool wird bevorzugt als Abschlussintervention bei [[Teamentwicklungen|teambuilding]], bei [[Konfliktklärungen|conflict_resolution]] und in [[Change-Workshops|Organizational Change Management]] eingesetzt. Besonders wirksam sind „paradoxe Verschreibungen“ bei angestrebten  [[Veränderungen|Organizational Change]] tradierter Verhaltensmuster.

Die „paradoxe Verschreibung“ nützt in vielerlei Hinsicht:
*    Störungen können thematisiert werden, ohne einzelne Personen zu verletzen.
*    Das [[Problem]] wird in einem lockeren, spielerischen Kontext erfahrbar, regt zum Experimentieren an und unterstützt den gemeinsamen Lernprozess.
*    Die Akteure werden sich ihrer eigenen Rolle bewusst. Sie erkennen, in welcher Weise sie selbst zur Aufrechterhaltung der „Störung“ beitragen. (//„Was muss ich tun, um zu stören? Oder angenommen, ich wollte, das Teilnehmer X wütend auf mich wird, was müsste ich dann tun?“//) Vermeintliche Opfer werden zu Tätern!
*    Die Teilnehmer trainieren ihre Fähigkeit, eigenes und fremdes Verhalten differenziert wahrzunehmen und wohlwollend zu reflektieren. Sie erweitern ihr Verständnis für gruppendynamische Prozesse.

Die [[Intervention]] führt allen vor Augen:
* Nachhaltige Veränderung menschlicher [[Systeme|System]] findet oftmals paradox statt.
* Je verzweifelter die Anstrengungen, desto unwahrscheinlicher ist die Veränderung.
* Die Beteiligten haben (leider) einen ganz konkreten Vorteil, wenn sie sich nicht ändern (z.B. darf sich jeder als Opfer fühlen und diesen [[Zustand]] lautstark beklagen, ohne in irgendeiner Weise verantwortlich zu sein. Das beschert Bestätigung und Zuwendung gleichermaßen – und zwar dauerhaft garantiert, denn die Zukunft bleibt berechenbar!).
* Dennoch kann Veränderung gelingen: wenn etwas gezielt verschlimmert werden kann, bedeutet das, dass eine Steuerung möglich ist. Warum also nicht gezielt verbessern?

    Fazit: die „paradoxe Verschreibung“ steigert die Eigenverantwortlichkeit der Akteure, fördert die Veränderungsenergie und öffnet den Blick für neue Handlungsoptionen.

    Auch der Berater profitiert von der Intervention: sie bietet ihm eine elegante Möglichkeit, beim Klienten „liebenswürdig“ und doch überaus wirksam den „Finger in die Wunde“ zu legen.

!Objectives
* Steigerung d. Eigenverantwortlichkeit
* Je verzweifelter die Anstrengungen, desto unwahrscheinlicher Veränderung.
* Nachhaltige Veränderung findet oft paradox statt.
* wenn etwas gezielt verschlimmert werden kann...warum nicht gezielt verbessern?

!Timing
60min-90min

!Materials
* Drei bis vier FlipCharts oder Pinwände
* Tische für Inszenierung d. Meetings 
* Stuhlkreis f. Workshop

!Audience
Group

!Procedure
    Die Inszenierung der „paradoxen Verschreibung“ soll nachfolgend am Beispiel eines [[Team-Workshops|teambuilding]] veranschaulicht werden.

    Ein Chef und sein Managementteam haben sich eine Auszeit genommen, um mit Unterstützung eines externen Beraters Missverständnisse, Irritationen und Konflikte innerhalb des [[Teams|Team]] und zwischen den einzelnen Zuständigkeitsbereichen zu klären. Im Workshop wird Klartext geredet. Themen sind divergierende Rollenverständnisse, das direktive [[Führungsverhalten|Führung]] des Chefs und die schlechte [[Besprechungskultur|Besprechung]]. Am Ende des Workshops scheint alles Notwendige gesagt zu sein. Es wurde ein Maßnahmenplan erarbeitet, der Verbindlichkeit schaffen soll, was jetzt vom wem bis wann zu tun ist, damit sich das Klima wie gewünscht entwickeln kann. Der Chef lobt „die offene Atmosphäre, den konstruktiven Prozess und das professionelle Ergebnis“. Er bekennt sich klar zu seiner [[Verantwortung]] und hat sich für die Zukunft viel vorgenommen. Auch die anderen Teilnehmer sind sehr zufrieden mit dem Ergebnis und legen sich gedanklich schon mal den Text für ihr Abschlussfeedback zurecht.

    An diesem Punkt wird es für den Berater nochmals anspruchsvoll. Während eines solchen Workshops sind die definierten Themen auf der Inhalts- und [[Sachebene]] meist rasch analysiert und in Maßnahmen „übersetzt“. Dennoch erleben die Beteiligten später im Alltag häufig den kollektiven Rückfall in die tradierten Verhaltensformen. Um die Chancen auf eine tatsächliche Umsetzung der geplanten Veränderungen zu erhöhen, entscheidet sich der Berater für eine mutige Abschlussintervention.

!!Schritt 1: Briefing des Chefs
    Spätestens in der offiziellen Pause nach der Bearbeitungsphase hält der Berater unter vier Augen Rücksprache mit dem Chef und holt sich dessen Erlaubnis ein, im Sinne erfolgreicher Umsetzung ab jetzt paradox agieren zu dürfen. Besteht zwischen beiden ein gutes Vertrauensverhältnis, reicht es meist aus, dem Chef eine „fulminante“ Abschlussübung anzukündigen, die richtig Spaß macht, aber schon ein bisschen Mut – speziell vom Chef – erfordert.
    Falls seitens des Chefs Zweifel bestehen, ist es wichtig den Ablauf und die Zielsetzung der [[Intervention]] kurz zu erklären und insbesondere deutlich zu machen, dass der Berater konsequent für den Schutz aller Beteiligten sorgen wird. Die Zustimmung des Chefs ist zwingende Voraussetzung für das Gelingen der Intervention.

!!Schritt 2: Einleitung der Intervention
    Der Berater erfragt beim [[Team]], wann die nächste gemeinsame Besprechung anstehe und was die wichtigsten Themen sein werden. Er visualisiert einige der Tagesordnungspunkte auf einem ~FlipChart. Dann sucht er zwei „Freiwillige“, die gerne im Rahmen einer gemeinsamen Übung als Beobachter fungieren möchten. Diese weist er abseits des Geschehens in ihre Aufgabe ein. Sie sollen den folgenden Prozess – die Simulation eines Meetings genau beobachten und auf einem zweiten ~FlipChart notieren, wer den Prozess durch welche Verhaltensweisen aktiv oder passiv stört. Die Notizen sollen unsichtbar für die anderen Teilnehmer erfolgen und später im Plenum präsentiert werden.

Jetzt erteilt der Berater dem [[Team]] den paradoxen Auftrag:

{{indent{/%
%/
//„Sie haben jetzt 30 Minuten Zeit, um genau diese bevorstehende Sitzung mit genau diesen Tagungsordnungspunkten gemeinsam durchzuführen – und zwar in genau den Rollen, die Sie auch sonst einnehmen und genau in der Art und Weise, wie Sie das immer tun! Integrieren Sie ganz bewusst und aktiv sämtliche störenden Verhaltensweisen – jeder auf seine Art. Bitte führen Sie unter gar keinen Umständen eine Verbesserung der Situation herbei.“// /%
%/}}}
    Diese Instruktion sorgt erst für Verwirrung, danach für Erleichterung und erzeugt – ganz wesentlich – eine Ebene von Humor entgegen der „intellektuellen Verbissenheit“, jetzt unbedingt verändern zu müssen.

!!Schritt 3: Die Inszenierung
    Wenn es die Ausstattung und die räumlichen Gegebenheiten der Tagungsstätte zulassen, ist es sinnvoll, den Raum so umzugestalten, dass eine möglichst realistische Umgebung entsteht. Wenn zuvor im Stuhlkreis gearbeitet wurde, sollten die Teilnehmer jetzt möglichst an Tischen sitzen und zwar in der Sitzordnung, die sie aus dem entsprechenden Meeting gewohnt sind.

    Die Simulation des Meetings beginnt. Manchmal dauert es eine Weile bis die Teilnehmer sich auf diesen unvorhergesehenen Prozess einlassen. Spätestens aber, wenn das erste „typische“ störende Verhalten von einem Akteur gezeigt wurde, nehmen auch die anderen die Herausforderung an und finden schnell in ihre Rolle, die ihnen ja durchaus vertraut ist. Jetzt geschieht all das, was im Alltag stört und lähmt:
*    Die Diskussion kommt ständig vom Thema ab.
*    Die Akteure hören einander nicht zu und fallen sich gegenseitig ins Wort.
*    Statt der im Workshop geübten „[[Ich-Botschaften|Ich-Botschaft]]“ werden konsequent „[[Du-Botschaften|Du-Botschaft]]“ formuliert.
*    Statt nach Lösungen wird nach Schuldigen gesucht.
*    Der Chef gibt sich demokratisch und fragt sein Führungsteam um Rat, um kurz darauf eine direktive Entscheidung zu treffen.
    usw. …

    Jeder verhält sich wie immer, nur jetzt wie nach unsichtbarem Drehbuch. Die Teilnehmer erkennen die Störungen der anderen ebenso, wie die eigenen „Beiträge“. Sie nehmen Veränderungen in der Beziehungs- und Gruppendynamik deutlich wahr – doch nun können sie über die bekannten Phänomene lachen. Entspannung, Humor und Distanz zu sich selbst stellen sich ein – entscheidende Erfolgsfaktoren für das Gelingen von Veränderung.

    Vorzugsweise wird nach 20 Minuten kurz gestoppt, damit die Beobachter dem [[Team]] ein erstes [[Feedback]] geben können. Wer stört bislang durch welche Verhaltensweisen den Teamprozess? Das Feedback soll kurz und pointiert ausfallen. „Gegenreden“ oder gar reflektierende Diskussion unterbindet der Berater sofort. Stattdessen „tratscht“ er vielleicht ein wenig mit den Beobachtern, wer denn ihrer Meinung nach noch heftiger stören könnte, um diese Sitzung garantiert „an die Wand zu fahren“.

    Nach dem Zwischenfeedback geht es nochmals zehn Minuten weiter – und spätestens jetzt wird aus der „paradoxen Verschreibung“ eine „paradoxe Verschlimmerung“.

''Anmerkung:''
    Falls die Inszenierung zu Beginn nicht in die Gänge kommt, kann der Berater nachfragen, ob denn die Sitzungen im Alltag auch immer so pünktlich beginnen wie in diesem Workshop. Wenn die Antwort nein lautet (was sehr wahrscheinlich ist), kann er die notorischen „Zuspätkommer“ ermitteln und vor die Tür schicken. Sie bekommen dann den Auftrag zehn Minuten lang durch die geöffnete Tür zu beobachten, was ihre Kollegen üblicher Weise in der Zeit tun, bis die Sitzung endlich beginnen kann.

!!Schritt 4: kurze Reflexion
    Im Anschluss an das simulierte Meeting äußern sich die Teilnehmer zu den gewonnenen Erkenntnissen. Der Berater moderiert den Prozess durch strukturierte und [[offene Fragen|Offene Frage]], die er auf ~FlipChart visualisiert hat. Er fragt beispielsweise:
*    Wie hat sich die Atmosphäre während des Meetings entwickelt?
*    Was waren wiederkehrende Muster?
*    Was habe ich über meine eigenen Anteile am [[Problem]] erfahren?
*    Gab es gar „verbotene“ Lösungsversuche?
*    …

    Diese Sequenz sollte zügig ablaufen. Der Berater ermuntert die Teilnehmer zu kurzen persönlichen Statements und achtet darauf, dass es nicht zu „kopflastigen“ Analysen kommt - schließlich befindet sich der Workshop in der Abschlussphase.

!!Schritt 5: Expertenrunde
    Nach dem Zufallsprinzip werden Kleingruppen von maximal fünf Personen gebildet. Der Berater erteilt den Auftrag: 

{{indent{/%
%/
//„Nehmen wir an, Sie hätten als Experten für exzellente [[Kommunikation]] dem vorausgegangenen Meeting beigewohnt. Welche drei konkreten, beobachtbaren Verhaltensweisen würden Sie diesem [[Team]] strikt verbieten, um sicherzustellen, dass sich die Besprechungskultur nicht etwa versehentlich verbessert. Formulieren Sie bitte außerdem eine Verhaltensempfehlung, was das [[Team]] tun kann, damit sich garantiert nichts ändert. Visualisieren Sie Ihre Vorschläge auf ~FlipCharts.“// /%
%/ }}}

    Für diese Übung gibt der Berater maximal zehn Minuten Zeit. Auch hier gilt: die Teilnehmer sollen aus ihrer „heiter-verstörten“ emotionalen Stimmung heraus Ergebnisse produzieren und nicht zu sehr in die analytische Reflexion eintauchen.

!!Schritt 6: Präsentation, Beraterintervention, Ende
    Die Gruppen präsentieren anschließend ihre Ergebnisse im Plenum, beginnend mit den „verbotenen“ Verhaltensweisen. Es findet keine Diskussion statt. Die Teilnehmer werden die Empfehlungen aber später im Fotoprotokoll wieder finden.
    Dann erfragt der Berater die Empfehlungen für die Aufrechterhaltung des Problems („Rückfallschleifen“). Eventuell wird die originellste Idee prämiert.

    Eventuell „verschreibt“ der Berater dem [[Team]] abschließend die originellste „Rückfallschleife“, indem er die Akteure auffordert, genau dieses Verhalten künftig einmal monatlich in einem Meeting aktiv zu zeigen.

    Danach endet der Workshop. Die Teilnehmer nehmen im Stehkreis mit einem Satz oder Wort voneinander Abschied. Eine Auswertungsrunde unterbleibt bewusst. Speziell die Frage, wie denn dieser „seltsame“ Abschluss zu verstehen sei, bleibt unbeantwortet.

!Debriefing


!Voraussetzungen/Kenntnisse
    Diese Arbeit setzt eine routinierte, prozessorientierte Art der Beratung voraus. [[Erfahrungen|Erfahrung]] mit „systemisch-lösungsorientierter“ Moderation sind dabei förderlich. Der Berater benötigt vor allem gute intuitive Fähigkeiten, um im jeweiligen Kontext entscheiden zu können, ob die „paradoxe Verschreibung“ als Abschlussintervention tatsächlich passt.

!Kommentar/Erfahrungen
    Das Tool ist eine spannende Abschlussintervention, die Leichtigkeit mit wirkungsvoller Ernsthaftigkeit verbindet. Eine Besonderheit der „paradoxen Verschreibung“ besteht darin, dass sich ihre Anwendung meist nicht bereits im Vorfeld des Workshops planen und mit den Auftraggebern abstimmen lässt. In der Regel muss der Berater situativ im Prozess entscheiden, ob er das Tool einsetzen will. Dies bedeutet, dass er bereit sein muss, sein ursprüngliches Konzept spontan zu verlassen. Es gibt kein Patentrezept für diese Entscheidung. Grundsätzlich können aber folgende Beobachtungen bzw. Überlegungen die Entscheidung erleichtern:
    Je verbissener die Leistungsorientierung der Beteiligten, desto höher die Indikation für eine „paradoxe Verschreibung“.
    Wenn im Verlauf des Workshops (oft in den Pausengesprächen unter vorgehaltener Hand) immer wieder leicht „genervt“ über eine Störung gesprochen wird, die „eigentlich“ schon längst von allen erkannt wurde und auch die Lösung doch „eigentlich“ schon mehrfach (!) erarbeitet und in Maßnahmenplänen dokumentiert wurde und „man eigentlich“ das Ganze nur endlich mal umsetzen müsste – dann stehen die Chancen für eine erfolgreiche „paradoxe Verschreibung“ besonders günstig.
    Im Rahmen von Workshops lassen sich vor allem [[Interaktionsstörungen|Interaktion]] (z.B. schlechte [[Feedbackkultur|Feedback]]) leicht inszenieren.
    Die [[Intervention]] ist nur dann sinnvoll, wenn alle Beteiligten in irgendeiner Weise von der „Störung“ betroffen sind und tatsächlich etwas zu ihrer Aufrechterhaltung oder Beseitigung beitragen können.

!Quellen/Weiterführende Literatur
!!Quelle
* [[Arnim Rohm: Change-Tools. Erfahrene Prozessberater präsentieren wirksame Workshop-Interventionen. managerSeminare GmbH, 2006.| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FChange-Tools-Erfahrene-Prozessberater-pr%25C3%25A4sentieren-Workshop-Interventionen%2Fdp%2F3936075395%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214936596%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!!Weitere Literatur
*    [[P. Watzlawick / J. H. Weakland / R. Fisch. Lösungen – Zur Theorie des menschlichen Wandels. Bern: Huber Verlag.| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FL%25C3%25B6sungen-Theorie-Praxis-menschlichen-Wandels%2Fdp%2F3456821832%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214928892%26sr%3D8-2&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]
*    [[M. Selvini Palazzoli / L. Boscolo / G. Cecchin / G. Prata. Paradoxon und Gegenparadoxon. Ein neues Therapiemodell für die Familie mit schizophrener Störung. Stuttgart: Klett-Cotta.| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FParadoxon-Gegenparadoxon-Therapiemodell-Familie-schizophrener%2Fdp%2F3608953752%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214929126%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://www.fuehrungstrainer.net/2007/changetools/changetools01.html
/***
|<html><a name="Top"/></html>''Name:''|PartTiddlerPlugin|
|''Version:''|1.0.9 (2007-07-14)|
|''Source:''|http://tiddlywiki.abego-software.de/#PartTiddlerPlugin|
|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|
|''Licence:''|[[BSD open source license]]|
|''CoreVersion:''|2.1.3|
|''Browser:''|Firefox 1.0.4+; InternetExplorer 6.0|
!Table of Content<html><a name="TOC"/></html>
* <html><a href="javascript:;" onclick="window.scrollAnchorVisible('Description',null, event)">Description, Syntax</a></html>
* <html><a href="javascript:;" onclick="window.scrollAnchorVisible('Applications',null, event)">Applications</a></html>
** <html><a href="javascript:;" onclick="window.scrollAnchorVisible('LongTiddler',null, event)">Refering to Paragraphs of a Longer Tiddler</a></html>
** <html><a href="javascript:;" onclick="window.scrollAnchorVisible('Citation',null, event)">Citation Index</a></html>
** <html><a href="javascript:;" onclick="window.scrollAnchorVisible('TableCells',null, event)">Creating "multi-line" Table Cells</a></html>
** <html><a href="javascript:;" onclick="window.scrollAnchorVisible('Tabs',null, event)">Creating Tabs</a></html>
** <html><a href="javascript:;" onclick="window.scrollAnchorVisible('Sliders',null, event)">Using Sliders</a></html>
* <html><a href="javascript:;" onclick="window.scrollAnchorVisible('Revisions',null, event)">Revision History</a></html>
* <html><a href="javascript:;" onclick="window.scrollAnchorVisible('Code',null, event)">Code</a></html>
!Description<html><a name="Description"/></html>
With the {{{<part aPartName> … </part>}}} feature you can structure your tiddler text into separate (named) parts. 
Each part can be referenced as a "normal" tiddler, using the "//tiddlerName//''/''//partName//" syntax (e.g. "About/Features").  E.g. you may create links to the parts (e.g. {{{[[Quotes/BAX95]]}}} or {{{[[Hobbies|AboutMe/Hobbies]]}}}), use it in {{{<<tiddler...>>}}} or {{{<<tabs...>>}}} macros etc.


''Syntax:'' 
|>|''<part'' //partName// [''hidden''] ''>'' //any tiddler content// ''</part>''|
|//partName//|The name of the part. You may reference a part tiddler with the combined tiddler name "//nameOfContainerTidder//''/''//partName//. <<br>>If you use a partName containing spaces you need to quote it (e.g. {{{"Major Overview"}}} or {{{[[Shortcut List]]}}}).|
|''hidden''|When defined the content of the part is not displayed in the container tiddler. But when the part is explicitly referenced (e.g. in a {{{<<tiddler...>>}}} macro or in a link) the part's content is displayed.|
|<html><i>any&nbsp;tiddler&nbsp;content</i></html>|<html>The content of the part.<br>A part can have any content that a "normal" tiddler may have, e.g. you may use all the formattings and macros defined.</html>|
|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|
<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>

!Applications<html><a name="Applications"/></html>
!!Refering to Paragraphs of a Longer Tiddler<html><a name="LongTiddler"/></html>
Assume you have written a long description in a tiddler and now you want to refer to the content of a certain paragraph in that tiddler (e.g. some definition.) Just wrap the text with a ''part'' block, give it a nice name, create a "pretty link" (like {{{[[Discussion Groups|Introduction/DiscussionGroups]]}}}) and you are done.

Notice this complements the approach to first writing a lot of small tiddlers and combine these tiddlers to one larger tiddler in a second step (e.g. using the {{{<<tiddler...>>}}} macro). Using the ''part'' feature you can first write a "classic" (longer) text that can be read "from top to bottom" and later "reuse" parts of this text for some more "non-linear" reading.

<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>

!!Citation Index<html><a name="Citation"/></html>
Create a tiddler "Citations" that contains your "citations". 
Wrap every citation with a part and a proper name. 

''Example''
{{{
<part BAX98>Baxter, Ira D. et al: //Clone Detection Using Abstract Syntax Trees.// 
in //Proc. ICSM//, 1998.</part>

<part BEL02>Bellon, Stefan: //Vergleich von Techniken zur Erkennung duplizierten Quellcodes.// 
Thesis, Uni Stuttgart, 2002.</part>

<part DUC99>Ducasse, Stéfane et al: //A Language Independent Approach for Detecting Duplicated Code.// 
in //Proc. ICSM//, 1999.</part>
}}}

You may now "cite" them just by using a pretty link like {{{[[Citations/BAX98]]}}} or even more pretty, like this {{{[[BAX98|Citations/BAX98]]}}}.

<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>

!!Creating "multi-line" Table Cells<html><a name="TableCells"/></html>
You may have noticed that it is hard to create table cells with "multi-line" content. E.g. if you want to create a bullet list inside a table cell you cannot just write the bullet list
{{{
* Item 1
* Item 2
* Item 3
}}}
into a table cell (i.e. between the | … | bars) because every bullet item must start in a new line but all cells of a table row must be in one line.

Using the ''part'' feature this problem can be solved. Just create a hidden part that contains the cells content and use a {{{<<tiddler >>}}} macro to include its content in the table's cell.

''Example''
{{{
|!Subject|!Items|
|subject1|<<tiddler ./Cell1>>|
|subject2|<<tiddler ./Cell2>>|

<part Cell1 hidden>
* Item 1
* Item 2
* Item 3
</part>
…
}}}

Notice that inside the {{{<<tiddler ...>>}}} macro you may refer to the "current tiddler" using the ".".

BTW: The same approach can be used to create bullet lists with items that contain more than one line.

<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>

!!Creating Tabs<html><a name="Tabs"/></html>
The build-in {{{<<tabs ...>>}}} macro requires that you defined an additional tiddler for every tab it displays. When you want to have "nested" tabs you need to define a tiddler for the "main tab" and one for every tab it contains. I.e. the definition of a set of tabs that is visually displayed at one place is distributed across multiple tiddlers.

With the ''part'' feature you can put the complete definition in one tiddler, making it easier to keep an overview and maintain the tab sets.

''Example''
The standard tabs at the sidebar are defined by the following eight tiddlers:
* SideBarTabs
* TabAll
* TabMore
* TabMoreMissing
* TabMoreOrphans
* TabMoreShadowed
* TabTags
* TabTimeline

Instead of these eight tiddlers one could define the following SideBarTabs tiddler that uses the ''part'' feature:
{{{
<<tabs txtMainTab 
    Timeline Timeline SideBarTabs/Timeline 
    All 'All tiddlers' SideBarTabs/All 
    Tags 'All tags' SideBarTabs/Tags 
    More 'More lists' SideBarTabs/More>>
<part Timeline hidden><<timeline>></part>
<part All hidden><<list all>></part>
<part Tags hidden><<allTags>></part>
<part More hidden><<tabs txtMoreTab 
    Missing 'Missing tiddlers' SideBarTabs/Missing 
    Orphans 'Orphaned tiddlers' SideBarTabs/Orphans 
    Shadowed 'Shadowed tiddlers' SideBarTabs/Shadowed>></part>
<part Missing hidden><<list missing>></part>
<part Orphans hidden><<list orphans>></part>
<part Shadowed hidden><<list shadowed>></part>
}}}

Notice that you can easily "overwrite" individual parts in separate tiddlers that have the full name of the part.

E.g. if you don't like the classic timeline tab but only want to see the 100 most recent tiddlers you could create a tiddler "~SideBarTabs/Timeline" with the following content:
{{{
<<forEachTiddler 
		sortBy 'tiddler.modified' descending 
		write '(index < 100) ? "* [["+tiddler.title+"]]\n":""'>>
}}}
<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>

!!Using Sliders<html><a name="Sliders"/></html>
Very similar to the build-in {{{<<tabs ...>>}}} macro (see above) the {{{<<slider ...>>}}} macro requires that you defined an additional tiddler that holds the content "to be slid". You can avoid creating this extra tiddler by using the ''part'' feature

''Example''
In a tiddler "About" we may use the slider to show some details that are documented in the tiddler's "Details" part.
{{{
…
<<slider chkAboutDetails About/Details details "Click here to see more details">>
<part Details hidden>
To give you a better overview …
</part>
…
}}}

Notice that putting the content of the slider into the slider's tiddler also has an extra benefit: When you decide you need to edit the content of the slider you can just doubleclick the content, the tiddler opens for editing and you can directly start editing the content (in the part section). In the "old" approach you would doubleclick the tiddler, see that the slider is using tiddler X, have to look for the tiddler X and can finally open it for editing. So using the ''part'' approach results in a much short workflow.

<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>

!Revision history<html><a name="Revisions"/></html>
* v1.0.9 (2007-07-14)
** Bugfix: Error when using the SideBarTabs example and switching between "More" and "Shadow". Thanks to cmari for reporting the issue.
* v1.0.8 (2007-06-16)
** Speeding up display of tiddlers containing multiple pard definitions. Thanks to Paco Rivière for reporting the issue.
** Support "./partName" syntax inside <<tabs ...>> macro
* v1.0.7 (2007-03-07)
** Bugfix: <<tiddler "./partName">> does not always render correctly after a refresh (e.g. like it happens when using the "Include" plugin). Thanks to Morris Gray for reporting the bug.
* v1.0.6 (2006-11-07)
** Bugfix: cannot edit tiddler when UploadPlugin by Bidix is installed. Thanks to José Luis González Castro for reporting the bug.
* v1.0.5 (2006-03-02)
** Bugfix: Example with multi-line table cells does not work in IE6. Thanks to Paulo Soares for reporting the bug.
* v1.0.4 (2006-02-28)
** Bugfix: Shadow tiddlers cannot be edited (in TW 2.0.6). Thanks to Torsten Vanek for reporting the bug.
* v1.0.3 (2006-02-26)
** Adapt code to newly introduced Tiddler.prototype.isReadOnly() function (in TW 2.0.6). Thanks to Paulo Soares for reporting the problem.
* v1.0.2 (2006-02-05)
** Also allow other macros than the "tiddler" macro use the "." in the part reference (to refer to "this" tiddler)
* v1.0.1 (2006-01-27)
** Added Table of Content for plugin documentation. Thanks to RichCarrillo for suggesting.
** Bugfix: newReminder plugin does not work when PartTiddler is installed. Thanks to PauloSoares for reporting.
* v1.0.0 (2006-01-25)
** initial version
<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>

!Code<html><a name="Code"/></html>
<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>
***/
//{{{
//============================================================================
//                           PartTiddlerPlugin

// Ensure that the PartTiddler Plugin is only installed once.
//
if (!version.extensions.PartTiddlerPlugin) {



version.extensions.PartTiddlerPlugin = {
    major: 1, minor: 0, revision: 9,
    date: new Date(2007, 6, 14), 
    type: 'plugin',
    source: "http://tiddlywiki.abego-software.de/#PartTiddlerPlugin"
};

if (!window.abego) window.abego = {};
if (version.major < 2) alertAndThrow("PartTiddlerPlugin requires TiddlyWiki 2.0 or newer.");

//============================================================================
// Common Helpers

// Looks for the next newline, starting at the index-th char of text. 
//
// If there are only whitespaces between index and the newline 
// the index behind the newline is returned, 
// otherwise (or when no newline is found) index is returned.
//
var skipEmptyEndOfLine = function(text, index) {
	var re = /(\n|[^\s])/g;
	re.lastIndex = index;
	var result = re.exec(text);
	return (result && text.charAt(result.index) == '\n') 
			? result.index+1
			: index;
}


//============================================================================
// Constants

var partEndOrStartTagRE = /(<\/part>)|(<part(?:\s+)((?:[^>])+)>)/mg;
var partEndTagREString = "<\\/part>";
var partEndTagString = "</part>";

//============================================================================
// Plugin Specific Helpers

// Parse the parameters inside a <part ...> tag and return the result.
//
// @return [may be null] {partName: ..., isHidden: ...}
//
var parseStartTagParams = function(paramText) {
	var params = paramText.readMacroParams();
	if (params.length == 0 || params[0].length == 0) return null;
	
	var name = params[0];
	var paramsIndex = 1;
	var hidden = false;
	if (paramsIndex < params.length) {
		hidden = params[paramsIndex] == "hidden";
		paramsIndex++;
	}
	
	return {
		partName: name, 
		isHidden: hidden
	};
}

// Returns the match to the next (end or start) part tag in the text, 
// starting the search at startIndex.
// 
// When no such tag is found null is returned, otherwise a "Match" is returned:
// [0]: full match
// [1]: matched "end" tag (or null when no end tag match)
// [2]: matched "start" tag (or null when no start tag match)
// [3]: content of start tag (or null if no start tag match)
//
var findNextPartEndOrStartTagMatch = function(text, startIndex) {
	var re = new RegExp(partEndOrStartTagRE);
	re.lastIndex = startIndex;
	var match = re.exec(text);
	return match;
}

//============================================================================
// Formatter

// Process the <part ...> … </part> starting at (w.source, w.matchStart) for formatting.
//
// @return true if a complete part section (including the end tag) could be processed, false otherwise.
//
var handlePartSection = function(w) {
	var tagMatch = findNextPartEndOrStartTagMatch(w.source, w.matchStart);
	if (!tagMatch) return false;
	if (tagMatch.index != w.matchStart || !tagMatch[2]) return false;

	// Parse the start tag parameters
	var arguments = parseStartTagParams(tagMatch[3]);
	if (!arguments) return false;
	
	// Continue processing
	var startTagEndIndex = skipEmptyEndOfLine(w.source, tagMatch.index + tagMatch[0].length);
	var endMatch = findNextPartEndOrStartTagMatch(w.source, startTagEndIndex);
	if (endMatch && endMatch[1]) {
		if (!arguments.isHidden) {
			w.nextMatch = startTagEndIndex;
			w.subWikify(w.output,partEndTagREString);
		}
		w.nextMatch = skipEmptyEndOfLine(w.source, endMatch.index + endMatch[0].length);
		
		return true;
	}
	return false;
}

config.formatters.push( {
    name: "part",
    match: "<part\\s+[^>]+>",
	
	handler: function(w) {
		if (!handlePartSection(w)) {
			w.outputText(w.output,w.matchStart,w.matchStart+w.matchLength);
		}
	}
} )

//============================================================================
// Extend "fetchTiddler" functionality to also recognize "part"s of tiddlers 
// as tiddlers.

var currentParent = null; // used for the "." parent (e.g. in the "tiddler" macro)

// Return the match to the first <part ...> tag of the text that has the
// requrest partName.
//
// @return [may be null]
//
var findPartStartTagByName = function(text, partName) {
	var i = 0;
	
	while (true) {
		var tagMatch = findNextPartEndOrStartTagMatch(text, i);
		if (!tagMatch) return null;

		if (tagMatch[2]) {
			// Is start tag
	
			// Check the name
			var arguments = parseStartTagParams(tagMatch[3]);
			if (arguments && arguments.partName == partName) {
				return tagMatch;
			}
		}
		i = tagMatch.index+tagMatch[0].length;
	}
}

// Return the part "partName" of the given parentTiddler as a "readOnly" Tiddler 
// object, using fullName as the Tiddler's title. 
//
// All remaining properties of the new Tiddler (tags etc.) are inherited from 
// the parentTiddler.
// 
// @return [may be null]
//
var getPart = function(parentTiddler, partName, fullName) {
	var text = parentTiddler.text;
	var startTag = findPartStartTagByName(text, partName);
	if (!startTag) return null;
	
	var endIndexOfStartTag = skipEmptyEndOfLine(text, startTag.index+startTag[0].length);
	var indexOfEndTag = text.indexOf(partEndTagString, endIndexOfStartTag);

	if (indexOfEndTag >= 0) {
		var partTiddlerText = text.substring(endIndexOfStartTag,indexOfEndTag);
		var partTiddler = new Tiddler();
		partTiddler.set(
						fullName,
						partTiddlerText,
						parentTiddler.modifier,
						parentTiddler.modified,
						parentTiddler.tags,
						parentTiddler.created);
		partTiddler.abegoIsPartTiddler = true;
		return partTiddler;
	}
	
	return null;
}

// Hijack the store.fetchTiddler to recognize the "part" addresses.
//
var hijackFetchTiddler = function() {
	var oldFetchTiddler = store.fetchTiddler ;
	store.fetchTiddler = function(title) {
		var result = oldFetchTiddler.apply(this, arguments);
		if (!result && title) {
			var i = title.lastIndexOf('/');
			if (i > 0) {
				var parentName = title.substring(0, i);
				var partName = title.substring(i+1);
				var parent = (parentName == ".") 
						? store.resolveTiddler(currentParent)
						: oldFetchTiddler.apply(this, [parentName]);
				if (parent) {
					return getPart(parent, partName, parent.title+"/"+partName);
				}
			}
		}
		return result;	
	};
};

// for debugging the plugin is not loaded through the systemConfig mechanism but via a script tag. 
// At that point in the "store" is not yet defined. In that case hijackFetchTiddler through the restart function.
// Otherwise hijack now.
if (!store) {
	var oldRestartFunc = restart;
	window.restart = function() {
		hijackFetchTiddler();
		oldRestartFunc.apply(this,arguments);
	};
} else
	hijackFetchTiddler();




// The user must not edit a readOnly/partTiddler
//

config.commands.editTiddler.oldIsReadOnlyFunction = Tiddler.prototype.isReadOnly;

Tiddler.prototype.isReadOnly = function() {
	// Tiddler.isReadOnly was introduced with TW 2.0.6.
	// For older version we explicitly check the global readOnly flag
	if (config.commands.editTiddler.oldIsReadOnlyFunction) {
		if (config.commands.editTiddler.oldIsReadOnlyFunction.apply(this, arguments)) return true;
	} else {
		if (readOnly) return true;
	}

	return this.abegoIsPartTiddler;
}

config.commands.editTiddler.handler = function(event,src,title)
{
	var t = store.getTiddler(title);
	// Edit the tiddler if it either is not a tiddler (but a shadowTiddler)
	// or the tiddler is not readOnly
	if(!t || !t.abegoIsPartTiddler)
		{
		clearMessage();
		story.displayTiddler(null,title,DEFAULT_EDIT_TEMPLATE);
		story.focusTiddler(title,"text");
		return false;
		}
}

// To allow the "./partName" syntax in macros we need to hijack 
// the invokeMacro to define the "currentParent" while it is running.
// 
var oldInvokeMacro = window.invokeMacro;
function myInvokeMacro(place,macro,params,wikifier,tiddler) {
	var oldCurrentParent = currentParent;
	if (tiddler) currentParent = tiddler;
	try {
		oldInvokeMacro.apply(this, arguments);
	} finally {
		currentParent = oldCurrentParent;
	}
}
window.invokeMacro = myInvokeMacro;

// To correctly support the "./partName" syntax while refreshing we need to hijack 
// the config.refreshers.tiddlers to define the "currentParent" while it is running.
// 
(function() {
	var oldTiddlerRefresher= config.refreshers.tiddler;
	config.refreshers.tiddler = function(e,changeList) {
		var oldCurrentParent = currentParent;
		try {
			currentParent = e.getAttribute("tiddler");
			return oldTiddlerRefresher.apply(this,arguments);
		} finally {
			currentParent = oldCurrentParent;
		}
	};
})();

// Support "./partName" syntax inside <<tabs ...>> macro
(function() {
	var extendRelativeNames = function(e, title) {
		var nodes = e.getElementsByTagName("a");
		for(var i=0; i<nodes.length; i++) {
			var node = nodes[i];
			var s = node.getAttribute("content");
			if (s && s.indexOf("./") == 0)
				node.setAttribute("content",title+s.substr(1));
		}
	};
	var oldHandler = config.macros.tabs.handler;
	config.macros.tabs.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
		var result = oldHandler.apply(this,arguments);
		if (tiddler)
			extendRelativeNames(place, tiddler.title);
		return result;
	};
})();

// Scroll the anchor anchorName in the viewer of the given tiddler visible.
// When no tiddler is defined use the tiddler of the target given event is used.
window.scrollAnchorVisible = function(anchorName, tiddler, evt) {
	var tiddlerElem = null;
	if (tiddler) {
		tiddlerElem = document.getElementById(story.idPrefix + tiddler);
	}
	if (!tiddlerElem && evt) {
		var target = resolveTarget(evt);
		tiddlerElem = story.findContainingTiddler(target);
	}
	if (!tiddlerElem) return;

	var children = tiddlerElem.getElementsByTagName("a");
	for (var i = 0; i < children.length; i++) {
		var child = children[i];
		var name = child.getAttribute("name");
		if (name == anchorName) {
			var y = findPosY(child);
			window.scrollTo(0,y);
			return;
		}
	}
}

} // of "install only once"
//}}}

/***
<html><sub><a href="javascript:;" onclick="scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>

!Licence and Copyright
Copyright (c) abego Software ~GmbH, 2006 ([[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|Produkt]] 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.

<html><sub><a href="javascript:;" onclick="scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>
***/
<data>{"abstract":"Gedankenspiele, Schreibspiele, Kartenspiele."}</data>
/%
|URL:|http://www.partyspiele.de/|
|Description:|web resource for party games (german)|

!Overview
<script> return DataTiddler.getData("Party-Spiele","abstract") </script>

!Party-Spiele
<script> return "<<tiddler [[Party-Spiele##Overview]]>>" </script> 

!Objectives
* Gedankenspiele, Schreibspiele, Kartenspiele

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

%/
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
	coreVersion: '2.2.0 (Beta 5)'
};

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

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

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

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

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

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

merge(config.optionsDesc,{
		pasPassword: "Test password"
	});
*/
//}}}
<data>{"abstract":"[[Pecha Kucha]] (sprich: petscha-kutscha, jap. ペチャクチャ „wirres Geplauder, Stimmengewirr”) or Pecha Kucha Night is a presentation format in which content can be easily, efficiently and informally shown, usually at a public event designed for that purpose."}</data> 
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://blog.duarte.com/wp-content/uploads/2010/06/pecha_kucha.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Pecha Kucha","abstract") </script>

!Pecha Kucha
<script> return "<<tiddler [[Pecha Kucha##Overview]]>>" </script> 
[[Pecha Kucha]] (usually pronounced in three syllables like "peh-chak-cha") derives from a Japanese term for the sound of conversation ("chit-chat"). 
It was devised by Astrid Klein and Mark Dytham of ~Klein-Dytham Architecture (~KDa) in Tokyo in 2003 as a place for young designers to meet, network, and show their work in public. The format has spread virally to many cities across the world.

!Objectives


!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
The [[Pecha Kucha]] format allows each presenter to narrate a slideshow that is limited to 20 images, each of which is shown for 20 seconds, for a total presentation time of 6 minutes 40 seconds.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Präsentation]<<tiddlerList tags:"presentation,-newTemplate" header:"Übungen Präsentation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://www.pechakuchanight.de
* http://www.pecha-kucha.org/
* [[Tips for Pecha Kucha presenters| http://www.aqworks.com/2007/07/03/pecha-kucha-nights-guide-to-better-presentations-skills/]]
* [[Die bisher beste Pecha Kucha Präsentation, die ich gesehen habe| https://www.xing.com/net/prib8feb6x/praesentationen/bucher-blogs-und-andere-ressourcen-zum-thema-prasentation-501221/die-bisher-beste-pecha-kucha-prasentation-die-ich-gesehen-habe-35977172/39230006/#39230006]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!Penny Game
<script> return "<<tiddler [[Penny Game##Overview]]>>" </script>

!Objectives
* Value of working in small batches

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing


/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.scrum-breakfast.com/2010/03/scrum-value-simulation.html
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://img.allvoices.com/thumbs/event/598/486/65985384-people-wait.jpg>>
<<showtoc>>
!Overview
The Agile game [[People Polling]] demonstrates the [[wisdom of crowds|http://en.wikipedia.org/wiki/Wisdom_of_crowds]] and other [[agile estimating practices|Agile Estimation]] with this powerful experiment.

!People Polling
<<tiddler [[People Polling##Overview]]>>

!Objectives
* Demonstrate the [[wisdom of crowds|http://en.wikipedia.org/wiki/Wisdom_of_crowds]] and other agile estimating practices
* illustrating Agile estimation techniques.
* getting participants familiar with using [[planning poker cards|Planning Poker]].

!Timing
10 mins

!Materials
* A good-sized audience – 10 or more (the bigger the better)
* Pens & paper for all

!Audience
Group

!Procedure
It is best to sneak this exercise in when it is least expected.

# Start by selecting something in the room that is not easily counted or estimated. 
# Take the time to write the exact number down and hide it from the audience.
# Then, have each individual quickly and privately write down their own estimate.
# Gather all of the estimates and calculate the average.
# Cross your fingers and unveil the number that you wrote down earlier. It should be relatively close to the group average.

!Helpful Hints
I have done similar exercises about a dozen or so times and the results are usually spot on. However, there is always a chance that the results could be off, so always make sure to start by announcing that you want to perform an experiment together. Participants will understand if the results are not perfect.

Some things you can use to estimate:
* Your weight – although people tend to be generous and the estimates are usually low. :)
* Number of books available on Amazon.com
* Number of words on a page – I’ve had the most success with this one. In a class environment, I’ll use the lab write-up and have the students write their estimate on the back.
* Number of steps it takes to walk from one side of the room to the other – this one is fun, but you could get accused of rigging the outcome.
* Balloons in the room – only works if you played the 99 Test Balloons game earlier. ;)
* Please leave a comment to share some of your ideas and experiences.

Other helpful hints:
* To keep things quick, open a spread sheet to type in everybody’s estimate as they show them to you. This also makes it easy to calculate the average in front of everybody.
* Analyze the data with the class. You will likely get a very wide variance. I often find that no one individual estimate is as close as the average. This speaks to the true wisdom of the crowd and of the importance of diversity.
* To make it even more interesting, give a prize to whomever had the most accurate estimate.

!Debriefing
* The accuracy of the group estimate is usually stronger than any one individual’s.
* The larger and more diverse the crowd is, the better the estimate.
* Agile embraces this principle by involving the whole team in estimating and planning and by encouraging the creation of cross-functional teams.

!Credits
Don ~McGreal

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/07/people-polling/
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.2020visionsegroup.com/2020_LOGO_2010.jpg>>/%
http://harvardbusiness.org/products/4389-PDF-ENG/thumbnail/thumbnail.gif%/
<<showtoc>>
!Overview


!Perfection Game
<<tiddler [[Perfection Game##Overview]]>>

!Objectives

!Timing


!Audience
Group

!Materials
* 

!Procedure


!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Perfection Game| www.liveingreatness.com/the-core-protocols/perfection-game.html]]
* http://liveingreatness.com/files/core-protocols-3.03.html#perfection-game
<data>{"abstract":"[[Perlentauchen]], eine praktische Übung, um die auf einem Seminar gewonnenen Erkenntnisse zu sammeln, zu visualisieren und zu bewerten - und gleichzeitig dem Trainer ein [[Feedback]] zu geben."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://view.stern.de/de/picture/1596680/Perlenkette-Muschelschale-Perlentaucher-Braun-Makro-510x510.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Perlentauchen","abstract") </script>

!Perlentauchen
<script> return "<<tiddler [[Perlentauchen##Overview]]>>" </script> 
Nicht nur am Ende eines jeden Seminars stellt sich die Frage nach dem Transfer. Eine Möglichkeit, die Teilnehmer für diesen Transfer noch einmal zum Abschluss zu sensibilisieren, ist das "Perlentauchen".

!Objectives
* [[Praxistransfer]]

!Timing

!Audience
Group

!Materials
* Moderationskarten
* Pinnwand

!Procedure
!!1. Schritt: Abfrage
Die Teilnehmer des Seminars werden gebeten, diejenigen Inhalte auf Karten zu notieren, die ihnen im Seminar besonders aufgefallen sind.

!!2. Schritt:  [[Bewertung]] 
Im nächsten Schritt werden die TN gebeten, die genannten Seminarinhalte hinsichtlich ihres Nutzens für die eigene Arbeit und ihrer Umsetzbarkeit im Untenehmen zu bewerten. Diese  [[Bewertung]]  wird durch Anpinnen der Karten an eine Plakatwand visualisiert:

{{center{
|Hoch | ''Harte Brocken'' | ''Perlen'' |
|Niedrig | ''"OOPS"'' | ''Spielwiese'' |
|Nutzen Umsetzbarkeit |Gering |Hoch |
}}}

!!3. Schritt: Diskussion
Im nächsten Schritt werden die Nennungen diskutiert. Sind die Meinungen einheitlich? Gibt es Widersprüche aufgrund unterschiedlicher Bewertungen oder Nennungen?

In der Regel wird die Diskussion darum ranken, was den Nutzen der Instrumente ausmacht und wodurch die Umsetzbarkeit beeinflusst wird. An dieser Stelle kann es leicht passieren, dass Uneinigkeit über Nutzen und Umsetzbarkeit besteht. Hier gilt es die Ursachen zu identifizieren. Liegt es an unterschiedlichem Verständnis, den Gegebenheiten in einzelnen Abteilungen oder anderen Ursachen?

Nachdem einheitliches Verständnis der  [[Bewertung]]  erreicht ist und dies auch an der Wand dokumentiert wurde, folgt der nächste Schritt: Können Nutzen und Umsetzbarkeit erhöht werden? Wie lassen sich „harte Brocken“ in „Perlen“ umwandeln? Müssen die vorgestellten Instrumentarien angepasst werden? Wie? Sind organisatorische oder andere Maßnahmen im Umfeld notwendig? Welche? …

Bei der Diskussion der „Spielwiesen“ ist zu fragen, ob sich die Umsetzung bei geringem Nutzen überhaupt sinnvoll? Stecken hier Übungsprojekte, z.B. für den [[Führungsnachwuchs||Führung]]? Kann der Nutzen erhöht werden? …

„Ooops“ sollte der Trainer als [[Feedback]] für seine Arbeit verstehen. Sind die Zielvereinbarungen und die Auftragsklärung mit dem Auftraggeber ursächlich? Ist die spezifische Situation des Unternehmens nicht beachtet worden usw. sind Fragen, die sich der Trainer selbst und durchaus den Teilnehmern stellen sollte.

!!4. Schritt: Ableitung von Maßnahmen
Für die nützlichen und umsetzbaren Inhalte sind (priorisierte) Maßnahmen abzuleiten und in eindeutige Umsetzungsmaßnahmen zu überführen. Wer, was, bis wann, in welcher Form...? Wie wird die Umsetzung sicher gestellt? Wie kontrolliert? …

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Unesco, freie Lernressourcen| www.opentrainingplatform.org]]
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Perlentauchen+%28fe%29.html]]
<data>{"abstract":"[[Peter und Hans]], es soll erkannt werden, daß aufgelisteten Begriffen durch ihre Reihenfolge eine Wertigkeit zugeordnet wird. Es kann [[erfahren|Wahrnehmung]] werden, wie die Art einer Charakterisierung eines Menschen durch hervorheben einer Eigenschaft zu entsprechenden sozialen Wertungen führt."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title https://www.mev.de/imagedb/LAYOUT_WZ/MSP/VOL_23/BS2359.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Peter und Hans","abstract") </script>

!Peter und Hans
<script> return "<<tiddler [[Peter und Hans##Overview]]>>" </script> 

!Objectives
* Es soll erkannt werden, daß aufgelisteten Begriffen durch ihre Reihenfolge eine Wertigkeit zugeordnet wird. 
* Es kann erfahren werden, wie die Art einer Charakterisierung eines Menschen durch hervorheben einer Eigenschaft zu entsprechenden sozialen Wertungen führt.

!Timing
45min

!Audience
Group

!Materials
* Fragebögen
!!Fragebogen: Peter
"Ein Jugendlicher, nennen wir ihn Peter, ist neidsich - hartnäckig - kritisch - impulsiv - fleißig - intelligent"
|1. |Würdest Du ihn gern zum Freund haben? |
|2. |Würdest Du ihn gern zum Arbeitskollegen haben? |
|3. |Würdest Du ihn gern in der Jugendgruppe haben? |
|4. |Handelt es sich um einen ‘angenehmen’ oder ‘unangenehmen’ Zeitgenossen? |
|5. |Stufe ihn auf Deiner Beliebtheitsskala ein: <br> 1 = sehr beliebt, 2 = ziemlich beliebt, 3 = weder beliebt noch unbeliebt, 4 = ziemlich unbeliebt, 5 = sehr unbeliebt |
!!Fragebogen: Hans
"Ein Jugendlicher, nennen wir ihn Hans, ist intelligent - fleißig - impulsiv - kritisch - hartnäckig - neidisch"
|1. |Würdest Du ihn gern zum Freund haben? |
|2. |Würdest Du ihn gern zum Arbeitskollegen haben? |
|3. |Würdest Du ihn gern in der Jugendgruppe haben? |
|4. |Handelt es sich um einen ‘angenehmen’ oder ‘unangenehmen’ Zeitgenossen? |
|5. |Stufe ihn auf Deiner Beliebtheitsskala ein: <br> 1 = sehr beliebt, 2 = ziemlich beliebt, 3 = weder beliebt noch unbeliebt, 4 = ziemlich unbeliebt, 5 = sehr unbeliebt |


!Procedure
# Die Gesamtgruppe wird in zwei gleich große Untergruppen geteilt.
# Jeder Teilnehmer erhält je nach Gruppenzugehörigkeit den Fragebogen "Peter" bzw. "Hans"
# Die Teilnehmer erhalten folgende Mitteilung:
** Auf einem Bogen steht die Charakterisierung des Jugendlichen Hans bzw. des Jugendlichen Peter. Außerdem enthalten die Bögen Fragen zur Einschätzung dieses Jugendlichen.
** Die Teilnehmer werden gebeten die Fragen alleine zu beantworten.
# Die Teilnehmer werden nicht darüber informiert, daß die beiden Jugendlichen durch die gleichen Eigenschaften charakterisiert werden, die jedoch in verschiedener Reihenfolge angeordnet sind.
# Nachdem die Teilnehmer die Fragen beantwortet haben, erfolgt die Auswertung mit Hilfe der Tafel.

!Debriefing
* Bei Frage 1 - 4 werden die Ja u. Nein Stimmen ausgezählt. Bei Frage 5 wird für jede Kategorie die Zahl der Meldungen notiert.
* Erwartetes Ergebnis: Peter erhält eine schlechtere Bewertung als Hans, obwohl beide die gleichen Eigenschaften besitzen.
* Die Teilnehmer diskutieren über das Ergebnis und ihre Empfindungen bei der Beurteilung des Jugendlichen.

| |>| ''Peter'' |>| ''Hans'' |h
|''Frage'' | ''ja'' | ''nein'' | ''ja'' | ''nein'' |h
|''1'' | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; |
|''2'' | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; |
|''3'' | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; |
|''4'' | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; |
|''5'':1 | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; |
| 2 | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; |
| 3 | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; |
| 4 | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; |
| 5 | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; | &nbsp;&nbsp; |

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Diverse Teamspiele - PDF| http://www.region-online.de/bildung/semi/projekte/spiele.pdf]]
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://images1.fanpop.com/images/image_uploads/Clue-DVD-cards-board-games-1099342_638_657.jpg>>
<<showtoc>>
!Overview
[[Picture Me]] is a classroom technique for reinforcing learning points.

!Picture Me
<<tiddler [[Picture Me##Overview]]>>

!Objectives
* way to review materials.

!Timing
30 min

!Materials
* 2 opposite facing white boards or flip charts
* Markers
* 10-20 clue cards

!Audience
Group

!Procedure
# Divide participants in to two teams. 
# One by one, each team member faces off against a member of the opposing team. 
# Both are simultaneously shown the card and immediately start drawing pictures which suggest the word or phrase on a card (see learning points for examples of categories to draw). 
# The pictures cannot contain any numbers or letters. 
# The team members try to guess what the drawing is intended to represent. 
# The team that first guesses correctly, wins a point. 
# This continues until all team members have had a turn or until all the cards have been used.

!Debriefing
* This is a fun and competitive way to review materials.
* Examples of categories to draw: UML models, agile values and principles, roles on a project, design patterns, etc.

!Credits
Michael ~McCullough

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/picture-me/
<data>{"abstract":"[[Pinocchio sagt die Wahrheit]], diese umfassendere Übung dient zum Einsatz in einer frühen Phase von [[Veränderungsprozessen|Organizational Change Model]] und macht die Vorbehalte und Erwartungen der verschiedenen Gruppierungen transparent."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://img2.timeinc.net/ew/dynamic/imgs/021230/182732__pinocchio_l.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Pinocchio sagt die Wahrheit","abstract") </script>

!Pinocchio sagt die Wahrheit
<script> return "<<tiddler [[Pinocchio sagt die Wahrheit##Overview]]>>" </script> 
Wenn  [[Veränderungen|Organizational Change]] in der [[Organisation]] anstehen, trauen sich nicht alle Mitarbeiter, offen über ihre Erwartungen zu sprechen. 
Hier kann das Tool [[Pinocchio sagt die Wahrheit]] helfen: Es macht die Wünsche und Befürchtungen der betroffenen Menschen sichtbar. Möglich wird das, weil die ~Workshop-Teilnehmer die Erwartungen der anderen Akteure erraten sollen.
Diese umfassende Übung dient zum Einsatz in einer frühen Phase von [[Veränderungsprozessen|Organizational Change Model]] und macht die Vorbehalte und Erwartungen der verschiedenen Gruppierungen transparent.

!Objectives
* Vorbehalte und Erwartungen verschiedener Gruppierungen aufdecken

!Timing


!Audience
Group


!Materials
* 

!Procedure


!Debriefing


!See also

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Pinocchio sagt die Wahrheit| http://www.sabine-heins.de/user_files/datei_1235417379_851.pdf]]
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.mountaingoatsoftware.com/system/asset/file/54/pokercards.jpg>>
<<showtoc>>
!Overview
[[Planning Poker]] is a consensus-based estimation technique for [[estimating|Aufwandschaetzung]], mostly used to estimate effort or relative size of [[tasks|Task]] in [[Software Development]]. It is a variation of the Wideband [[Delphi method|Delphi-Technik]]. It is most commonly used in [[agile software development|Agile Softwareentwicklung]], in particular the [[Extreme Programming methodology|Extreme Programming]].
The method was first described by [[James Grenning in 2002|http://renaissancesoftware.net/papers/14-papers/44-planing-poker.html]] and later popularized by [[Mike Cohn in the book Agile Estimating and Planning|http://www.mountaingoatsoftware.com/book/1]]

!Planning Poker
<<tiddler [[Planning Poker##Overview]]>>
[[Planning Poker]] is based on a list of features to be delivered and a deck of cards. The feature list describes some software that needs to be developed. The deck contains the following cards: 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100.
At the estimation meeting, each estimator is given one set of the cards.
The meeting proceeds as follows:
* A Moderator, who will not play, chairs the meeting, supported and advised by the [[Project Manager]].
* The most knowledgeable developer for a given feature provides a short overview. The team is given an opportunity to ask questions and discuss to clarify assumptions and [[risks|Risiko]]. A summary of the discussion is recorded by the [[Project Manager]].
* Each individual lays a card face down representing their estimate. Units used vary - they can be days duration, ideal days or story points. During discussion, numbers must not be mentioned at all in relation to feature size to avoid anchoring.
* Everyone calls their cards simultaneously by turning them over.
* People with high estimates and low estimates are given a soap box to offer their justification for their estimate and then discussion continues.
* Repeat the estimation process until a consensus is reached. The developer who was likely to own the deliverable has a large portion of the "consensus vote", although the Moderator can negotiate the consensus.
* An egg timer is used to ensure that discussion is structured; the Moderator or the [[Project Manager]] may at any point turn over the egg timer and when it runs out all discussion must cease and round of poker is played. The structure in the conversation is re-introduced by the soap boxes.
The cards are numbered as they are to account for the fact that the longer an estimate is, the more uncertainty it contains. Thus, if a developer wants to play a 6 he is forced to reconsider and either work through that some of the perceived uncertainty does not exist and play a 5, or accept a conservative estimate accounting for the uncertainty and play an 8.

!!Planning Poker benefits
[[Planning Poker]] is a tool for [[estimating|Aufwandschaetzung]] [[Software Development]] projects. It is a technique that minimizes anchoring by asking each team member to play their estimate card such that it cannot be seen by the other players. After each player has selected a card, all cards are exposed at once.

A study by K. ~Molokken-Ostvold and N.C. Haugen found that estimates obtained through the Planning Poker process were less optimistic and more accurate than estimates obtained through mechanical combination of individual estimates for the same [[tasks|Task]].

!!Avoid anchoring
Anchoring occurs when a [[team|Team]] openly discuss their estimates. A [[team|Team]] normally has a mix of conservative and impulsive estimators and there may be people who have agendas; developers are likely to want as much time as they can have to do the job and the product owner or customer is likely to want it as quickly as possible.

The estimate becomes anchored when the [[Product Owner]] says something like, "I think this is an easy job, I can't see it taking longer than a couple of weeks", or when the developer says something like, "I think we need to be very careful, clearing up the issues we've had in the back end could take months". 
Whoever starts the estimating conversation with, "I think it's 50 days" immediately has an impact on the thinking of the other [[team members|Team]]; their estimates have been anchored, i.e. they are all now likely to make at least a subconscious reference to the number 50 in their own estimates. Those who were thinking 100 days are likely to reduce and those who thought 10 are likely to raise. This becomes a particular problem if the 50 is spoken by an influential member of the [[team|Team]] when the rest of the [[team|Team]] are predominantly thinking higher or lower. 
Because the remainder of the team have been anchored they may consciously or otherwise fail to express their original unity; in fact they may fail to even discover that they were thinking the same thing. This can be dangerous, resulting in estimates that are influenced by agendas or individual opinions that are not focussed on getting the job done right.

[[Planning Poker]] exposes the potentially influential [[team member|Team]] as being isolated in his or her opinion among the group. It then demands that she or he argue the case against the prevailing opinion. If a group is able to express its unity in this manner they are more likely to have faith in their original estimates. If the influential person has a good case to argue everyone will see sense and follow, but at least the rest of the team won't have been anchored; instead they will have listened to reason.

!!Estimating without planning poker
Here's a typical problem with [[team|Team]] estimates. Let's say we are in a sprint planning meeting and the Product Owner says:
{{center{<<wikify [img(%0,%1)[%2|%3]] auto auto title http://www.crisp.se/planningpoker/1.gif>>}}}
So the [[team|Team]] starts thinking about how long the story will take (in ideal man-days in this case)....
{{center{<<wikify [img(%0,%1)[%2|%3]] auto auto title http://www.crisp.se/planningpoker/2.gif>>}}}
Mr A believes that he knows exactly what needs to be done, so he thinks this will take 3 days. Mrs B and C are more pessimistic. Mr D and E are slacking off. So Mr A says "3 days".
{{center{<<wikify [img(%0,%1)[%2|%3]] auto auto title http://www.crisp.se/planningpoker/3.gif>>}}}
This makes B and C confused. They start doubting their own estimates. Mr E wakes up and doesn't really know what is being estimated. D is still dozing.

The [[product|Produkt]] owner asks for the rest of the team's estimates. 
{{center{<<wikify [img(%0,%1)[%2|%3]] auto auto title http://www.crisp.se/planningpoker/4.gif>>}}}

As you can see, the rest of the [[team|Team]] has been heavily influenced by A, just because A spoke up first. This is very risky! Both B and C thought it would take significantly longer than 3 days, their doubts should be aired!

!!Estimating with planning poker
Now imagine that each [[team|Team]] member is holding a deck of cards, containing the following cards:
{{center{<<wikify [img(%0,%1)[%2|%3]] auto auto title http://www.crisp.se/planningpoker/deck.gif>>}}}
Let's redo the estimation. The [[product|Produkt]] owner says:
{{center{<<wikify [img(%0,%1)[%2|%3]] auto auto title http://www.crisp.se/planningpoker/1.gif>>}}}
Once again, the [[team|Team]] starts thinking about how long the story will take.
{{center{<<wikify [img(%0,%1)[%2|%3]] auto auto title http://www.crisp.se/planningpoker/5.gif>>}}}
This time nobody blurts anything out. Instead they all have to present a card, face down, containing their estimate. Everybody has to present a card, so Mr D and E wake up. Mr D admits that he was sleeping and asks what the story is about. It's harder to slack off when doing estimates this way :o)

When they are done, all cards are turned over simultaneously, revealing everyone's estimates.
{{center{<<wikify [img(%0,%1)[%2|%3]] auto auto title http://www.crisp.se/planningpoker/6.gif>>}}}
Whoops! Big divergence here. The team, in particular Mr A and Mrs C, need to discuss this story and why their estimates are so wildly different. After some discussion, Mr A realizes that he has forgotten some important [[tasks|Task]] that need to be included in the story. Mrs C realizes that, with the design that Mr A presented, the story might be smaller than 20.

After the discussion (3 minutes in total) they do another estimation round for that same story. 
{{center{<<wikify [img(%0,%1)[%2|%3]] auto auto title http://www.crisp.se/planningpoker/7.gif>>}}} 

Convergence! OK, not complete convergence. But they agree that an estimate of 5 should be close enough. Next story.

!!Why the strange number series?
{{center{<<wikify [img(%0,%1)[%2|%3]] auto auto title http://www.crisp.se/planningpoker/deck.gif>>}}}
The higher numbers have less granularity. Why? Why is there no 21 for example?

Several reasons:
* Speed up the estimation process by limiting the number of choices (i.e. number of cards).
* Avoid a false sense of accuracy for high estimates.
* Encourage the [[team|Team]] to split large stories into smaller ones.

A high estimate (> 20 for example) usually means that the story is not well understood in detail. It would be a waste of time to discuss whether the story is 19, 20, or 22.5. It is simply a big story, and a 20 will reflect that. If you want to get into detail, break the story down into several smaller stories. Smaller stories can be estimated in greater detail.

!!Special cards
|<<wikify [img(%0,%1)[%2|%3]] auto auto title http://www.crisp.se/planningpoker/zero-card.gif>> |The zero card means “this story is already done” or “this story is pretty much nothing, just a few minutes of work”. |
|<<wikify [img(%0,%1)[%2|%3]] auto auto title http://www.crisp.se/planningpoker/question-card.gif>> |The question mark card means “I have absolutely no idea at all. None.” Should be rare. If this card is used too often, the [[team|Team]] needs to discuss the stories more and try to achieve better knowledge spread within the team. |
|<<wikify [img(%0,%1)[%2|%3]] auto auto title http://www.crisp.se/planningpoker/coffee-card.gif>> |The coffee cup card means "I'm too tired to think. Let's take a short break." |

!Objectives
* The [[wisdom of crowds|http://en.wikipedia.org/wiki/Wisdom_of_crowds]] is more accurate than individual estimates.
* illustrating Agile estimation techniques.
* getting participants familiar with using [[planning poker cards|Planning Poker]].

!Timing
5 min

!Materials
* 1 set of planning poker cards per participant. (see Weblinks)

!Audience
Group

!Procedure
# Participants in an estimation meeting are each given a set of cards. 
# Each card contains an estimate. Units used vary, they can be days, ideal days, story points, etc. 
The cards are numbered to account for the fact that the longer an estimate is, the more uncertainty it contains (e.g 1, 2, 3, 5, 8, 13, 20, 40). When an item (feature, task, etc.) is presented, without mentioning numbers, a discussion takes place to clarify assumptions and risks.
# Each participant then lays a card face down representing their estimate. Simultaneously, the cards are turned over. 
** If all estimates are relatively close, then there is no more discussion needed, the estimate is recorded and the group moves on to the next item. 
** If some participants had high or low estimates, then they are given a chance to justify their estimate as they may have been thinking of something others were not aware of. 
# Repeat the estimation process until a consensus is reached.

!Debriefing
* The [[wisdom of crowds|http://en.wikipedia.org/wiki/Wisdom_of_crowds]] is more accurate than individual estimates.
* Using the cards avoids the influence of others while estimating.
* It encourages all team members to participate
* Discourages the talkative members from dominating (too soon anyway).

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://old.crisp.se/planningpoker/4.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://manifestonaweb.files.wordpress.com/2008/06/imagem1.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/GrabbagofScrumtools_13C7B/Planning_poker_deck%5B6%5D.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://files.myopera.com/alex_boly/blog/planning-poker.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.codinghorror.com/blog/images/CrispPlanningPokerDeck.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://farm1.static.flickr.com/203/488795952_9007f93c71.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://old.crisp.se/planningpoker/crispdeck.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] 60% auto title http://www.massey.ac.nz/~ehorvath/swa/Tutorials/PlanningPokerCards.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] 40% auto title http://farm4.static.flickr.com/3441/3291799261_ee07ee5930_o.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.it-zynergy.dk/images/Scrum/PlanningPoker617x410.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.tekool.net/blogfiles/printable-agile-planning-poker/agile_planning_poker_front.png>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
!!Allgemein
* [[Introduction to Planning Poker| http://damonpoole.blogspot.com/2009/09/introduction-to-planning-poker.html]]
* [[Poker Planning - A new concept in planning and estimating tasks (Agile/Scrum)| http://projetosetal.wordpress.com/2008/09/11/poker-planning-um-novo-conceito-em-planejamento-e-estimativa-de-tarefas-scrum/]]
* http://en.wikipedia.org/wiki/Planning_poker
* http://blog.tastycupcakes.com/2009/06/planning-poker/
* [[Planning poker relative estimation |http://www.slideshare.net/srayhan/planning-poker-relative-estimation#]]
!!Planning Poker Cards
!!!Physical Planning Poker cards
* http://www.agilehardware.com
* http://www.crisp.se/planningpoker/
!!!Planning Poker Cards FREE — ready to print
* [[Get your own Planning Poker deck of cards| http://projetosetal.wordpress.com/2008/09/15/get-your-own-planning-poker-deck-of-cards/]]
* [[Planning Poker Cards For Everyone| http://luuduong.com/blog/archive/2008/10/14/planning-poker-cards-for-everyone.aspx]]
* [[Planning Poker — PDF|http://leanpizza.net/wp-content/uploads/2010/05/Planning-Poker-Pdf.pdf]] (''- logo impronted'')
* [[Planning Poker Cards - WORD| http://leadinganswers.typepad.com/leading_answers/files/Estimating_Cards_S2.doc]]
* Planning Poker Cards Templates
** [[Page 1 — PDF|http://luuduong.com/blog/images/luuduong_com/blog/docs/Planning%20Poker%20Playing%20Cards%20pg01_front.pdf]]
** [[Page 2 — PDF|http://luuduong.com/blog/images/luuduong_com/blog/docs/Planning%20Poker%20Playing%20Cards%20pg02_front.pdf]]
!!!Planning Poker online
* [[Agile Utilities| http://www.agileutilities.com/products/AgileAuction]]
* [[PM Toolbox| http://www.pmtoolbox.com/project-management-news/print-your-own-planning-poker-cards.html]]
* [[Planning Poker Card Decks from agile42.com| http://www.agile42.com/cms/pages/poker/]]
* [[Planning Poker Decks for four players from wibas.com| http://www.wibas.com/planning_poker/]]
* [[Planning Poker cards from Mountain Goat Software (Mike Cohn)| http://store.mountaingoatsoftware.com/products/planning-poker-cards]]
* [[Poker Planning cards (PPT)| http://projetosetal.files.wordpress.com/2008/09/poker-planning-cards.ppt]]
* [[SprintPlanning| http://www.sprintplanning.com/PlanningPoker.aspx]]
* [[Swiss.Org Planning Poker Cards| http://www.agile-swiss.org/wiki/index.php/PlanningPokerCards]]
* [[Using Fist of Five, Planning Poker to reach Agile team consensus| http://go.techtarget.com/r/10896376/4201481]]
* [[Planning Poker online| http://www.planningpoker.com/]] (''!!!'')
* http://www.tekool.net/blogfiles/printable-agile-planning-poker/agile_planning_poker_front.png
!!!~Splielkarten-Druckereien
* http://www.meinkartenspiel.de/Planning-Poker-Karten-drucken-und-bestellen.171.0.html
* http://www.meinespielkarten.de/eigenes-spieldesign.html
/***
|Name|PlayerPlugin|
|Source|http://www.TiddlyTools.com/#PlayerPlugin|
|Version|1.1.4|
|Author|[[EricShulman]] - 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||
|Options|##Configuration|
|Description|Embed a media player in a tiddler|
!!!!!Usage
<<<
{{{<<player [id=xxx] [type] [URL] [width] [height] [autoplay|true|false] [showcontrols|true|false] [extras]>>}}}

''id=xxx'' is optional, and specifies a unique identifier for each embedded player.  note: this is required if you intend to display more than one player at the same time.

''type'' is optional, and is one of the following: ''windows'', ''realone'', ''quicktime'', ''flash'', ''image'' or ''iframe''.  If the media type is not specified, the plugin automatically detects Windows, Real, QuickTime, Flash video or JPG/GIF images by matching known file extensions and/or specialized streaming-media transfer protocols (such as RTSP:).  For unrecognized media types, the plugin displays an error message.

''URL'' is the location of the media content

''width'' and ''height'' are the dimensions of the video display area (in pixels)

''autoplay'' or ''true'' or ''false'' is optional, and specifies whether the media content should begin playing as soon as it is loaded, or wait for the user to press the "play" button.  Default is //not// to autoplay.

''showcontrols'' or ''true'' or ''false'' is optional, and specifies whether the embedded media player should display its built-in control panel (e.g., play, pause, stop, rewind, etc), if any.  Default is to display the player controls.

''extras'' are optional //pairs// of parameters that can be passed to the embedded player, using the {{{<param name=xxx value=yyy>}}} HTML syntax.

''If you use [[AttachFilePlugin]] to encode and store a media file within your document, you can play embedded media content by using the title of the //attachment tiddler//'' as a parameter in place of the usual reference to an external URL.  When playing an attached media content, you should always explicitly specify the media type parameter, because the name used for the attachment tiddler may not contain a known file extension from which a default media type can be readily determined.
<<<
!!!!!Configuration
<<<
Default player size:
width: <<option txtPlayerDefaultWidth>> height: <<option txtPlayerDefaultHeight>>
<<<
!!!!!Examples
<<<
+++[Windows Media]...
Times Square Live Webcam
{{{<<player id=1 http://www.earthcam.com/usa/newyork/timessquare/asx/tsq_stream.asx>>}}}
<<player id=1 http://www.earthcam.com/usa/newyork/timessquare/asx/tsq_stream.asx>>
===
+++[RealOne]...
BBC London: Live and Recorded news
{{{<<player id=2 http://www.bbc.co.uk/london/realmedia/news/tvnews.ram>>}}}
<<player id=2 http://www.bbc.co.uk/london/realmedia/news/tvnews.ram>>
===
+++[Quicktime]...
America Free TV: Classic Comedy
{{{<<player id=3 http://www.americafree.tv/unicast_mov/AmericaFreeTVComedy.mov>>}}}
<<player id=3 http://www.americafree.tv/unicast_mov/AmericaFreeTVComedy.mov>>
===
+++[Flash]...
Asteroids arcade game
{{{<<player id=4 http://www.80smusiclyrics.com/games/asteroids/asteroids.swf 400 300>>}}}
<<player id=4 http://www.80smusiclyrics.com/games/asteroids/asteroids.swf 400 300>>
Google Video
{{{<<player id=5 flash http://video.google.com/googleplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DoQAAAIVnUNP6GYRY8YnIRNPe4Uk5-j1q1MVpJIW4uyEFpq5Si0hcSDuig_JZcB9nNpAhbScm9W_8y_vDJQBw1DRdCVbXl-wwm5dyUiiStl_rXt0ATlstVzrUNC4fkgK_j7nmse7kxojRj1M3eo3jXKm2V8pQjWk97GcksMFFwg7BRAXmRSERexR210Amar5LYzlo9_k2AGUWPLyRhMJS4v5KtDSvNK0neL83ZjlHlSECYXyk%26sigh%3Dmpt2EOr86OAUNnPQ3b9Tr0wnDms%26begin%3D0%26len%3D429700%26docid%3D-914679554478687740&thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer%3Fcontentid%3De7e77162deb04c42%26second%3D5%26itag%3Dw320%26urlcreated%3D1144620753%26sigh%3DC3fqXPPS1tFiUqLzmkX3pdgYc2Y&playerId=-91467955447868774               400 326>>}}}
<<player id=5 flash http://video.google.com/googleplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DoQAAAIVnUNP6GYRY8YnIRNPe4Uk5-j1q1MVpJIW4uyEFpq5Si0hcSDuig_JZcB9nNpAhbScm9W_8y_vDJQBw1DRdCVbXl-wwm5dyUiiStl_rXt0ATlstVzrUNC4fkgK_j7nmse7kxojRj1M3eo3jXKm2V8pQjWk97GcksMFFwg7BRAXmRSERexR210Amar5LYzlo9_k2AGUWPLyRhMJS4v5KtDSvNK0neL83ZjlHlSECYXyk%26sigh%3Dmpt2EOr86OAUNnPQ3b9Tr0wnDms%26begin%3D0%26len%3D429700%26docid%3D-914679554478687740&thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer%3Fcontentid%3De7e77162deb04c42%26second%3D5%26itag%3Dw320%26urlcreated%3D1144620753%26sigh%3DC3fqXPPS1tFiUqLzmkX3pdgYc2Y&playerId=-91467955447868774               400 326>>
YouTube Video
{{{<<player id=6 flash http://www.youtube.com/v/OdT9z-JjtJk 400 300>>}}}
<<player id=6 flash http://www.youtube.com/v/OdT9z-JjtJk 400 300>>
===
+++[Still Images]...
GIF (best for illustrations, animations, diagrams, etc.)
{{{<<player id=7 image images/meow.gif auto auto>>}}}
<<player id=7 image images/meow.gif auto auto>>
JPG (best for photographs, scanned images, etc.)
{{{<<player id=8 image images/meow2.jpg 200 150>>}}}
<<player id=8 image images/meow2.jpg 200 150>>
===
<<<
!!!!!Revisions
<<<
2008.05.10 [1.1.4] in handlers(), immediately return if no params (prevents error in macro).  Also, refactored auto-detect code to make type mapping configurable.
2007.10.15 [1.1.3] in loadURL(), add recognition for .PNG (still image), fallback to iframe for unrecognized media types
2007.08.31 [1.1.2] added 'click-through' link for JPG/GIF images
2007.06.21 [1.1.1] changed "hidecontrols" param to "showcontrols" and recognize true/false values in addition to 'showcontrols', added "autoplay" param (also recognize true/false values), allow "auto" as value for type param
2007.05.22 [1.1.0] added support for type=="iframe" (displays src URL in an IFRAME)
2006.12.06 [1.0.1] in handler(), corrected check for config.macros.attach (instead of config.macros.attach.getAttachment) so that player plugin will work when AttachFilePlugin is NOT installed.  (Thanks to Phillip Ehses for bug report)
2006.11.30 [1.0.0] support embedded media content using getAttachment() API defined by AttachFilePlugin or AttachFilePluginFormatters.  Also added support for 'image' type to render JPG/GIF still images
2006.02.26 [0.7.0] major re-write.  handles default params better.  create/recreate player objects via loadURL() API for use with interactive forms and scripts.
2006.01.27 [0.6.0] added support for 'extra' macro params to pass through to object parameters
2006.01.19 [0.5.0] Initial ALPHA release
2005.12.23 [0.0.0] Started
<<<
!!!!!Code
***/
//{{{
version.extensions.player = {major: 1, minor: 1, revision: 4, date: new Date(2008,5,10)};

config.macros.player = {};
config.macros.player.html = {};
config.macros.player.handler= function(place,macroName,params) {
	if (!params.length) return; // missing parameters - do nothing
	var id=null;
	if (params[0].substr(0,3)=="id=") id=params.shift().substr(3);
	var type="";
	if (!params.length) return; // missing parameters - do nothing
	var p=params[0].toLowerCase();
	if (p=="auto" || p=="windows" || p=="realone" || p=="quicktime" || p=="flash" || p=="image" || p=="iframe")
		type=params.shift().toLowerCase();
	var url=params.shift(); if (!url || !url.trim().length) url="";
	if (url.length && config.macros.attach!=undefined) // if AttachFilePlugin is installed
		if ((tid=store.getTiddler(url))!=null && tid.isTagged("attachment")) // if URL is attachment
			url=config.macros.attach.getAttachment(url); // replace TiddlerTitle with URL
	var width=params.shift();
	var height=params.shift();
	var autoplay=false;
	if (params[0]=='autoplay'||params[0]=='true'||params[0]=='false')
		autoplay=(params.shift()!='false');
	var show=true;
	if (params[0]=='showcontrols'||params[0]=='true'||params[0]=='false')
		show=(params.shift()!='false');
	var extras="";
	while (params[0]!=undefined)
		extras+="<param name='"+params.shift()+"' value='"+params.shift()+"'> ";
	this.loadURL(place,id,type,url,width,height,autoplay,show,extras);
}

if (config.options.txtPlayerDefaultWidth==undefined) config.options.txtPlayerDefaultWidth="100%";
if (config.options.txtPlayerDefaultHeight==undefined) config.options.txtPlayerDefaultHeight="480"; // can't use "100%"... player height doesn't stretch right :-(

config.macros.player.typeMap={
	windows: ['mms', '.asx', '.wvx', '.wmv', '.mp3'],
	realone: ['rtsp', '.ram', '.rpm', '.rm', '.ra'],
	quicktime: ['.mov', '.qt'],
	flash: ['.swf', '.flv'],
	image: ['.jpg', '.gif', '.png'],
	iframe: ['.htm', '.html', '.shtml', '.php']
};

config.macros.player.loadURL=function(place,id,type,url,width,height,autoplay,show,extras) {

	if (id==undefined) id="tiddlyPlayer";
	if (!width) var width=config.options.txtPlayerDefaultWidth;
	if (!height) var height=config.options.txtPlayerDefaultHeight;
	if (url && (!type || !type.length || type=="auto")) { // determine type from URL
		u=url.toLowerCase();
		var map=config.macros.player.typeMap;
		for (var t in map) for (var i=0; i<map[t].length; i++)
			if (u.indexOf(map[t][i])!=-1) var type=t;
	}
	if (!type || !config.macros.player.html[type]) var type="none";
	if (!url) var url="";
	if (show===undefined) var show=true;
	if (!extras) var extras="";
	if (type=="none" && url.trim().length) type="iframe"; // fallback to iframe for unrecognized media types

	// adjust parameter values for player-specific embedded HTML
	switch (type) {
		case "windows":
			autoplay=autoplay?"1":"0"; // player-specific param value
			show=show?"1":"0"; // player-specific param value
			break;
		case "realone":
			autoplay=autoplay?"true":"false";
			show=show?"block":"none";
			height-=show?60:0; // leave room for controls
			break;
		case "quicktime":
			autoplay=autoplay?"true":"false";
			show=show?"true":"false";
			break;
		case "image":
			show=show?"block":"none";
			break;
		case "iframe":
			show=show?"block":"none";
			break;
	}

	// create containing div for player HTML
	// and add or replace player in TW DOM structure
	var newplayer = document.createElement("div");
	newplayer.playerType=type;
	newplayer.setAttribute("id",id+"_div");
	var existing = document.getElementById(id+"_div");
	if (existing && !place) place=existing.parentNode;
	if (!existing)
		place.appendChild(newplayer);
	else {
		if (place==existing.parentNode) place.replaceChild(newplayer,existing)
		else { existing.parentNode.removeChild(existing); place.appendChild(newplayer); }
	}

	var html=config.macros.player.html[type];
	html=html.replace(/%i%/mg,id);
	html=html.replace(/%w%/mg,width);
	html=html.replace(/%h%/mg,height);
	html=html.replace(/%u%/mg,url);
	html=html.replace(/%a%/mg,autoplay);
	html=html.replace(/%s%/mg,show);
	html=html.replace(/%x%/mg,extras);
	newplayer.innerHTML=html;
}
//}}}

// // Player-specific API functions: isReady(id), isPlaying(id), toggleControls(id), showControls(id,flag)

//{{{
// status values:
// Windows: 0=Undefined, 1=Stopped, 2=Paused, 3=Playing, 4=ScanForward, 5=ScanReverse
//          6=Buffering, 7=Waiting, 8=MediaEnded, 9=Transitioning, 10=Ready, 11=Reconnecting
// RealOne: 0=Stopped, 1=Contacting, 2=Buffering, 3=Playing, 4=Paused, 5=Seeking
// QuickTime: 'Waiting', 'Loading', 'Playable', 'Complete', 'Error:###'
// Flash: 0=Loading, 1=Uninitialized, 2=Loaded, 3=Interactive, 4=Complete
config.macros.player.isReady=function(id)
{
	var d=document.getElementById(id+"_div"); if (!d) return false;
	var p=document.getElementById(id); if (!p) return false;
	if (d.playerType=='windows') return !((p.playState==0)||(p.playState==7)||(p.playState==9)||(p.playState==11));
	if (d.playerType=='realone') return (p.GetPlayState()>1);
	if (d.playerType=='quicktime') return !((p.getPluginStatus()=='Waiting')||(p.getPluginStatus()=='Loading'));
	if (d.playerType=='flash') return (p.ReadyState>2);
	return true;
}
config.macros.player.isPlaying=function(id)
{
	var d=document.getElementById(id+"_div"); if (!d) return false;
	var p=document.getElementById(id); if (!p) return false;
	if (d.playerType=='windows') return (p.playState==3);
	if (d.playerType=='realone') return (p.GetPlayState()==3);
	if (d.playerType=='quicktime') return (p.getPluginStatus()=='Complete');
	if (d.playerType=='flash') return (p.ReadyState<4);
	return false;
}
config.macros.player.showControls=function(id,flag) {
	var d=document.getElementById(id+"_div"); if (!d) return false;
	var p=document.getElementById(id); if (!p) return false;
	if (d.playerType=='windows') { p.ShowControls=flag; p.ShowStatusBar=flag; }
	if (d.playerType=='realone') { alert('show/hide controls not available'); }
	if (d.playerType=='quicktime')      // if player not ready, retry in one second
		{ if (this.isReady(id)) p.setControllerVisible(flag); else setTimeout('config.macros.player.showControls("'+id+'",'+flag+')',1000); }
	if (d.playerType=='flash') { alert('show/hide controls not available'); }
}
config.macros.player.toggleControls=function(id) {
	var d=document.getElementById(id+"_div"); if (!d) return false;
	var p=document.getElementById(id); if (!p) return false;
	if (d.playerType=='windows') var flag=!p.ShowControls;
	if (d.playerType=='realone') var flag=true; // TBD
	if (d.playerType=='quicktime') var flag=!p.getControllerVisible();
	if (d.playerType=='flash') var flag=true; // TBD
	this.showControls(id,flag);
}
config.macros.player.fullScreen=function(id) {
	var d=document.getElementById(id+"_div"); if (!d) return false;
	var p=document.getElementById(id); if (!p) return false;
	if (d.playerType=='windows') p.DisplaySize=3;
	if (d.playerType=='realone') p.SetFullScreen();
	if (d.playerType=='quicktime') { alert('full screen not available'); }
	if (d.playerType=='flash') { alert('full screen not available'); }
}
//}}}

// // Player HTML

//{{{
// placeholder (no player)
config.macros.player.html.none=' \
	<table id="%i%" width="%w%" height="%h%" style="background-color:#111;border:0;margin:0;padding:0;"> \
	<tr style="background-color:#111;border:0;margin:0;padding:0;"> \
	<td width="%w%" height="%h%" style="background-color:#111;color:#ccc;border:0;margin:0;padding:0;text-align:center;"> \
	&nbsp; \
	%u% \
	&nbsp; \
	</td></tr></table>';
//}}}

//{{{
// JPG/GIF/PNG still images
config.macros.player.html.image='\
	<a href="%u%" target="_blank"><img width="%w%" height="%h%" style="display:%s%;" src="%u%"></a>';
//}}}

//{{{
// IFRAME web page viewer
config.macros.player.html.iframe='\
	<iframe id="%i%" width="%w%" height="%h%" style="display:%s%;background:#fff;" src="%u%"></iframe>';
//}}}

//{{{
// Windows Media Player
// v7.1 ID: classid=CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6
// v9	ID: classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95
config.macros.player.html.windows=' \
	<object id="%i%" width="%w%" height="%h%" style="margin:0;padding:0;width:%w%;height:%h%px;" \
		classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" \
		codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" \
		align="baseline" border="0" \
		standby="Loading Microsoft Windows Media Player components..." \
		type="application/x-oleobject"> \
		<param name="FileName" value="%u%"> <param name="ShowControls" value="%s%"> \
		<param name="ShowPositionControls" value="1"> <param name="ShowAudioControls" value="1"> \
		<param name="ShowTracker" value="1"> <param name="ShowDisplay" value="0"> \
		<param name="ShowStatusBar" value="1"> <param name="AutoSize" value="1"> \
		<param name="ShowGotoBar" value="0"> <param name="ShowCaptioning" value="0"> \
		<param name="AutoStart" value="%a%"> <param name="AnimationAtStart" value="1"> \
		<param name="TransparentAtStart" value="0"> <param name="AllowScan" value="1"> \
		<param name="EnableContextMenu" value="1"> <param name="ClickToPlay" value="1"> \
		<param name="InvokeURLs" value="1"> <param name="DefaultFrame" value="datawindow"> \
		%x% \
		<embed src="%u%" style="margin:0;padding:0;width:%w%;height:%h%px;" \
			align="baseline" border="0" width="%w%" height="%h%" \
			type="application/x-mplayer2" \
			pluginspage="http://www.microsoft.com/windows/windowsmedia/download/default.asp" \
			name="%i%" showcontrols="%s%" showpositioncontrols="1" \
			showaudiocontrols="1" showtracker="1" showdisplay="0" \
			showstatusbar="%s%" autosize="1" showgotobar="0" showcaptioning="0" \
			autostart="%a%" autorewind="0" animationatstart="1" transparentatstart="0" \
			allowscan="1" enablecontextmenu="1" clicktoplay="0" invokeurls="1" \
			defaultframe="datawindow"> \
		</embed> \
	</object>';
//}}}

//{{{
// RealNetworks' RealOne Player
config.macros.player.html.realone=' \
	<table width="%w%" style="border:0;margin:0;padding:0;"><tr style="border:0;margin:0;padding:0;"><td style="border:0;margin:0;padding:0;"> \
	<object id="%i%" width="%w%" height="%h%" style="margin:0;padding:0;" \
		CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"> \
		<PARAM NAME="CONSOLE" VALUE="player"> \
		<PARAM NAME="CONTROLS" VALUE="ImageWindow"> \
		<PARAM NAME="AUTOSTART" Value="%a%"> \
		<PARAM NAME="MAINTAINASPECT" Value="true"> \
		<PARAM NAME="NOLOGO" Value="true"> \
		<PARAM name="BACKGROUNDCOLOR" VALUE="#333333"> \
		<PARAM NAME="SRC" VALUE="%u%"> \
		%x% \
		<EMBED width="%w%" height="%h%" controls="ImageWindow" type="audio/x-pn-realaudio-plugin" style="margin:0;padding:0;" \
			name="%i%" \
			src="%u%" \
			console=player \
			maintainaspect=true \
			nologo=true \
			backgroundcolor=#333333 \
			autostart=%a%> \
		</OBJECT> \
	</td></tr><tr style="border:0;margin:0;padding:0;"><td style="border:0;margin:0;padding:0;"> \
	<object id="%i%_controls" width="%w%" height="60" style="margin:0;padding:0;display:%s%" \
		CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"> \
		<PARAM NAME="CONSOLE" VALUE="player"> \
		<PARAM NAME="CONTROLS" VALUE="All"> \
		<PARAM NAME="NOJAVA" Value="true"> \
		<PARAM NAME="MAINTAINASPECT" Value="true"> \
		<PARAM NAME="NOLOGO" Value="true"> \
		<PARAM name="BACKGROUNDCOLOR" VALUE="#333333"> \
		<PARAM NAME="SRC" VALUE="%u%"> \
		%x% \
		<EMBED WIDTH="%w%" HEIGHT="60" NOJAVA="true" type="audio/x-pn-realaudio-plugin" style="margin:0;padding:0;display:%s%" \
			controls="All" \
			name="%i%_controls" \
			src="%u%" \
			console=player \
			maintainaspect=true \
			nologo=true \
			backgroundcolor=#333333> \
		</OBJECT> \
	</td></tr></table>';
//}}}

//{{{
// QuickTime Player
config.macros.player.html.quicktime=' \
	<OBJECT ID="%i%" WIDTH="%w%" HEIGHT="%h%" style="margin:0;padding:0;" \
		CLASSID="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" \
		CODEBASE="http://www.apple.com/qtactivex/qtplugin.cab"> \
		<PARAM name="SRC" VALUE="%u%"> \
		<PARAM name="AUTOPLAY" VALUE="%a%"> \
		<PARAM name="CONTROLLER" VALUE="%s%"> \
		<PARAM name="BGCOLOR" VALUE="#333333"> \
		<PARAM name="SCALE" VALUE="aspect"> \
		<PARAM name="SAVEEMBEDTAGS" VALUE="true"> \
		%x% \
		<EMBED name="%i%" WIDTH="%w%" HEIGHT="%h%" style="margin:0;padding:0;" \
			SRC="%u%" \
			AUTOPLAY="%a%" \
			SCALE="aspect" \
			CONTROLLER="%s%" \
			BGCOLOR="#333333" \
			EnableJavaSript="true" \
			PLUGINSPAGE="http://www.apple.com/quicktime/download/"> \
		</EMBED> \
	</OBJECT>';
//}}}

//{{{
// Flash Player
config.macros.player.html.flash='\
	<object id="%i%" width="%w%" height="%h%" style="margin:0;padding:0;" \
		classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" \
		codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"> \
		<param name="movie" value="%u%"> \
		<param name="quality" value="high"> \
		<param name="SCALE" value="exactfit"> \
		<param name="bgcolor" value="333333"> \
		%x% \
		<embed name="%i%" src="%u%" style="margin:0;padding:0;" \
			height="%h%" width="%w%" quality="high" \
			pluginspage="http://www.macromedia.com/go/getflashplayer" \
			type="application/x-shockwave-flash" scale="exactfit"> \
		</embed> \
	</object>';
//}}}
/%
|Name|Playing the Ball Point game|
|URL|http://www.youtube.com/v/6wJzAFx6J7o|
|Description|http://Scrumology.com <br>Playing the Ball Point game at the Shanghai Scrum Gathering, 2010. You can find out more about the [[Ball Point game|Ball Point Game]] [[here|http://kanemar.com/2008/04/07/scrum-t…|http://www.youtube.com/redirect?q=http%3A%2F%2Fkanemar.com%2F2008%2F04%2F07%2Fscrum-trainers-gathering-24-the-ball-point-game%2F&session_token=jLEe6qsBQT9H3-PWr2S3mCFTFdl8MTI5ODYwNjk1MA%3D%3D]] |
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/6wJzAFx6J7o"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/6wJzAFx6J7o" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
/***
|Name||
|Source||
|Version||
|Author||
|License||
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description|Template for TiddlyWiki plugins|
***/
/***
|''Name:''|PluginUpdatesManager|
|''Description:''|Centralized and automated updating for TiddlyWiki plugins|
|''Author:''|[[SaqImtiaz]] ( lewcid@gmail.com )|
|''Code Repository:''|http://tw.lewcid.org/svn/plugins|
|''Version:''|0.1|
|''Date:''|02/04/08|
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''~CoreVersion:''|2.3.0|

***/
// /%
//!BEGIN-PLUGIN-CODE
if (!config.macros.pluginUpdatesManager){
    
currPluginUpdate = null;

config.macros.pluginUpdatesManager = {
    
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'selected', rowName: 'title', type: 'Selector'},
			{name: 'Plugin', field: 'tiddler', title: "Plugin", type: 'Tiddler'},
			{name: 'Version', field: 'Version', title:'Version', type: 'String'},
			{name: 'Status', field: 'statusText', title: "Update Status", type: 'String'},
			{name: 'Server URL', field: 'Source', title: "Server URL", text: "View", type: 'Link'}
			],
		rowClasses: [
			],
		buttons: [
			{caption: "Update these plugins", name: 'update'}
			]
    },
        
	wizardTitle: "Update plugins",
	step1Title: "Check for updates of currently installed plugins",
	step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
	syncLabel: "update",
	syncPrompt: "Update these plugins",
	updatedText: "This plugin has been updated since startup. Please reload",
	noPluginText: "There are no plugins installed that support automatic updating",
    doneLabel: "done",
	donePrompt: "Close this wizard",
    
	syncStatusList: {
		none: {text: "...", color: "transparent"},
		updateFound: {text: "Plugin update available", color: '#80ff80'},
		updateIncompatible: {text: "Plugin update needs newer TiddlyWiki", color: '#ff8080'},
		noUpdate: {text: "Plugin not found on server", color: '#ffff80'},
		gotFromServer: {text: "Plugin updated, please reload the file.", color: '#80ffff'}
	},
    
    updatesStatusList: {
        statusChecking:{text: 'Searching for plugin updates...'},
        statusFound:{text: '%0 plugin update(s) found:' },
        statusNotFound:{text: 'No plugin updates found.'},
        statusUpdated:{text: '%0 plugin(s) updated. Please reload the file.'},
        statusIncompatible: {text: '%0 plugin(s) found but some need a newer version of TiddlyWiki.'}
    },
    
    getPlugins : function(){
        currPluginUpdate = {};
        unsupportedPlugins = [];
        var c = currPluginUpdate.plugins = [];
        var tiddlers = store.getTaggedTiddlers('systemConfig');
        for (var i=0; i<tiddlers.length; i++){
            var p = getPluginInfo(tiddlers[i]);
            if (p.Version && p.Source){
                p.Server = p.Source.split('#')[0];
                p.title = p.Source.split('#')[1];
                p.updated = tiddlers[i].fields['temp.plugin.updated'];
                c.push(p);
            }
            else
                unsupportedPlugins.push(p);
        }
    },
    
    getUpdateBuckets : function(){
        var buckets = currPluginUpdate.updateBuckets = [];
        var p = currPluginUpdate.plugins;
        for (var i=0; i<p.length; i++){
            if(p[i].updated)
                continue;
            var f = buckets.findByField('Server',p[i].Server);
            var key = p[i].title;
            var pluginInfo = p[i];
            if (f == null){
                buckets.push({Server:p[i].Server, items:{}});
                buckets[buckets.length-1].items[key] = pluginInfo;
            }
            else
                buckets[f].items[key] = pluginInfo;
        }
    },
    
    getUpdates : function(){
        var buckets = currPluginUpdate.updateBuckets;
        currPluginUpdate.updates = [];
        currPluginUpdate.count = 0;
        currPluginUpdate.bucketsProcessed = 0;
        if(buckets.length == 0){
            this.updateStatusDisplay('statusNotFound');
            return;
        }
        for (var i=0; i<buckets.length; i++){
            (function(){
            var bucket = buckets[i];
            bucket.syncMachine = new SyncMachine('file',{
                start: function() {
                    return this.openHost(buckets[i].Server,"getTiddlerList");
                },
                getTiddlerList: function() {
                    return this.getTiddlerList("onGetTiddlerList");
                },
                onGetTiddlerList: function(context) {
                    var tiddlers = context.tiddlers;
                    for(var n in bucket.items){
                        var f = tiddlers.findByField("title",n);
                        var status = null;
                        if (f !== null){
                            var remote = tiddlers[f];
                            var remoteVersion = context.adaptor.store.getTiddlerSlice(remote.title,'Version').match(/(?:(\d|\.))*/)[0];
                            var coreNeeded = context.adaptor.store.getTiddlerSlice(remote.title,'CoreVersion');
                            
                            status = (remoteVersion > bucket.items[n].Version) ? "updateFound" : "noUpdate";
                            if (status == "updateFound"){
                                status = (coreNeeded && coreNeeded > [version.major,version.minor,version.revision].join(".")) ? "updateIncompatible" : "updateFound";
                                if (status == "updateIncompatible")
                                    currPluginUpdate.incompatible = true;
                                bucket.items[n]["status"] = config.macros.pluginUpdatesManager.syncStatusList[status];
                                bucket.items[n]["statusText"] = bucket.items[n]["status"].text;
                                
                                bucket.items[n].updateData = remote;
                                currPluginUpdate.updates.push(bucket.items[n]);
                                currPluginUpdate.count++;
                            }
                        }
                        //else
                        //    status = "notFound";
                    }
                    currPluginUpdate.bucketsProcessed ++;
                    config.macros.pluginUpdatesManager.showUpdates();
                }
            });
            bucket.syncMachine.go();}());  
        }   
    },
    
    handler : function(place,macroName,params){
        if(currPluginUpdate)
            currPluginUpdate = null;
        this.getPlugins();
        this.getUpdateBuckets();
        
        
        var wizard = currPluginUpdate.wizard = new Wizard();
        wizard.createWizard(place,this.wizardTitle);
        wizard.addStep(this.step1Title,this.step1Html);        
        var markList = wizard.getElement("markList");
        
        var container = document.createElement("div");
        currPluginUpdate.updatesDiv = createTiddlyElement(container,"div",null,"pluginUpdatesStatus");
        var listWrapper = currPluginUpdate.listWrapper = createTiddlyElement(container,"div",null,"pluginUpdatesManager");
        var up = createTiddlyElement(container,"div",null,"unsupportedplugins");
        wikify("<<unsupportedplugins>>",up);
        
        this.updateStatusDisplay('statusChecking');
        this.getUpdates();
        
        markList.parentNode.insertBefore(container,markList);
    },
    
    updateStatusDisplay : function(status){
        var updatesDiv = currPluginUpdate.updatesDiv;
        removeChildren(updatesDiv);
        createTiddlyText(updatesDiv,this.updatesStatusList[status].text.format([currPluginUpdate.count]));
        updatesDiv.className = status + " pluginUpdatesStatus";
    },

    showUpdates : function(){
        if(currPluginUpdate.bucketsProcessed < currPluginUpdate.updateBuckets.length)
            return;
        this.updateStatusDisplay(currPluginUpdate.updates.length == 0 ? 'statusNotFound': currPluginUpdate.incompatible? 'statusIncompatible':'statusFound');
        var wizard = currPluginUpdate.wizard;
        var listWrapper = currPluginUpdate.listWrapper;
        var updatesDiv = currPluginUpdate.updatesDiv;
        if(currPluginUpdate.updates.length == 0) {
            wizard.setButtons([]);
        }
        else
            currPluginUpdate.listView = ListView.create(listWrapper,currPluginUpdate.updates,this.listViewTemplate);
        this.updateRowColors('updates');
        wizard.setButtons([
                {caption: this.syncLabel, tooltip: this.syncPrompt, onClick: this.installUpdates}
            ]);        
    },
    
    installUpdates : function(){
        var rowNames = ListView.getSelectedRows(currPluginUpdate.listView);
        if (rowNames.length == 0)
            return false;
        currPluginUpdate.updated = [];
        for(var t=0; t<currPluginUpdate.updates.length; t++) {
        	var si = currPluginUpdate.updates[t];
            if(rowNames.indexOf(si.title) != -1) {
            	config.macros.pluginUpdatesManager.installUpdate(si);
            }
        }
        currPluginUpdate.count = currPluginUpdate.updated.length;
        config.macros.pluginUpdatesManager.updateStatusDisplay('statusUpdated');
        config.macros.pluginUpdatesManager.refreshListView();
        return false;        
    },
    
    refreshListView : function(){
        var listWrapper = currPluginUpdate.listWrapper;
        removeChildren(listWrapper);
        ListView.create(listWrapper,currPluginUpdate.updated,this.listViewTemplate);
        this.updateRowColors('updated');
        currPluginUpdate.wizard.setButtons([{caption: this.doneLabel, tooltip: this.donePrompt, onClick: this.onClose}]);
    },
    
    installUpdate: function(updateItem){
        var orig = updateItem.tiddler;
        var update = updateItem.updateData;
		
        store.saveTiddler(orig.title, orig.title, update.text, update.modifier, update.modified, orig.tags, merge(orig.fields,{'temp.plugin.updated':true}), true, update.created);
		var plugin = installedPlugins[installedPlugins.findByField("title",orig.title)];
		plugin.log.splice(0,0,config.macros.pluginUpdatesManager.updatedText);
        updateItem.Version = store.getTiddlerSlice(orig.title,'Version');
        updateItem.status = this.syncStatusList.gotFromServer;
        updateItem.statusText = this.syncStatusList.gotFromServer.text;
        currPluginUpdate.updated.push(updateItem);
    },
    
    updateRowColors : function(n){
        for(var t=0; t<currPluginUpdate[n].length; t++) {
            si = currPluginUpdate[n][t];
            si.rowElement.style.backgroundColor = si.status.color;
        }
    },
    
    onClose : function(){
        backstage.hidePanel();
        return false;
    }
};

config.shadowTiddlers.PluginConfigurationManager = "<<plugins>>";
config.shadowTiddlers.PluginUpdatesManager = "<<pluginUpdatesManager>>";
config.shadowTiddlers.PluginManager = "<<tabs txtPluginManager 'Config' 'Plugin configuration' PluginConfigurationManager 'Update' 'Update plugins' PluginUpdatesManager>>";

config.tasks.plugins= {text: "plugins", tooltip: "Manage installed plugins", content: '<<tiddler PluginManager>>'};

setStylesheet("div.pluginUpdatesStatus {\n"+
 "    padding: 0.6em;\n"+
 "    font-weight: bold;\n"+
 "    font-size: 140%;\n"+
 "    margin-bottom:0.5em;\n"+
 "}\n"+
 "\n"+
 "div.pluginUpdatesManager {\n"+
 "    font-size:120%;\n"+
 "}\n"+
 "\n"+
 "div.pluginUpdatesManager table.listView td, div.pluginUpdatesManager table.listView th {\n"+
 "    padding:0.3em;\n"+
 "}\n"+
 "\n"+
 "div.pluginUpdatesStatus.statusChecking {\n"+
 "    background:#fe8;\n"+
 "}\n"+
 "\n"+
 "div.pluginUpdatesStatus.statusIncompatible {\n"+
 "    background:#ff8080;\n"+
 "}\n"+
 "\n"+
 "div.pluginUpdatesStatus.statusFound {\n"+
 "    background:#80ff80;\n"+
 "}\n"+
 "\n"+
 "div.pluginUpdatesStatus.statusNotFound {\n"+
 "    background:#ff8080;\n"+
 "}\n"+
 "\n"+
 "div.unsupportedplugins {\n"+
 "   margin-top:0.6em; padding:0.5em; background:#eee; border:1px solid #ccc; \n"+
 "}\n"+
 "div.pluginUpdatesStatus.statusUpdated {\n"+
 "    background:#80ffff;\n"+
 "}","PluginUpdatesManagerStyles");

config.macros.unsupportedplugins = {
    handler : function(place,macroName,params){
        if (unsupportedPlugins && unsupportedPlugins.length){
            var out = ["In order to support updating plugins must have the following slices: Source, ~CoreVersion and Version."];
            for (var i=0;i<unsupportedPlugins.length;i++)
                out.push("* [["+unsupportedPlugins[i].title+"]]");
            config.shadowTiddlers['Plugins that do not support updating']= out.join("\n");
            wikify("[[You have "+ unsupportedPlugins.length + " installed plugins that do not support updating.|Plugins that do not support updating]]",place);
        }
    }
};

FileAdaptor.getTiddlerComplete = function(context,userParams)
{
	var t = context.adaptor.store.fetchTiddler(context.title);
	t.fields['server.type'] = FileAdaptor.serverType;
	t.fields['server.host'] = FileAdaptor.minHostName(context.host);
	t.fields['server.page.revision'] = t.modified.convertToYYYYMMDDHHMM();
	context.tiddler = t;
	context.status = true;
	if(context.allowSynchronous) {
		context.isSynchronous = true;
		context.callback(context,userParams);
	} else {
		window.setTimeout(function() {context.callback(context,userParams);},10);
	}
	return true;
};

}

if (!startingUp  && store){
    config.options.txtPluginManager = "Update";
    backstage.switchTab('plugins');
}
//exclude systemConfig from regular sync
// what do do when online?
//dynamically load the entire thing when needed?
//compress
//!END-PLUGIN-CODE
// %/
/***
|Name|PluralAliasPlugin|
|Version|2.1|
|Author|[[JackParke]]|
|Type|Plugin|
|Source|http://jackparke.googlepages.com/jtw.html|
|~CoreVersion|1.8|
|Description|This plugin ensures links to [[Tiddler]] in plural or singular form without the need to create duplicate tiddlers or resort to pretty linking.|

!Description
This plugin ensures links to [[Tiddler]] in plural or singular form without the need to create duplicate tiddlers or resort to pretty linking. Example: "I love SiameseCats and even had a beautiful SiameseCat once."
!Usage
Just install the plugin and tag with systemConfig.
!Revision History
* Original by [[JackParke]] on 2-Mar-2006
* Support createTiddler() function for aliased permalinks
* Support for reverseLookups (referrers functionality, thanks to Mike Fuellbrandt)
!Code
***/
//{{{
version.extensions.pluralAlias = {major: 2, minor: 1,
revision: 0, date: new Date("May 29, 2007")};

pluralAlias_createTiddlyLink = createTiddlyLink;
createTiddlyLink = function(place,title,includeText,theClass,isStatic) {
 title = pluralAlias_getTitle(title);
 return pluralAlias_createTiddlyLink(place,title,includeText,theClass,isStatic);
}
Story.prototype.pluralAlias_createTiddler= Story.prototype.createTiddler;
Story.prototype.createTiddler = function(place,before,title,template) {
 title = pluralAlias_getTitle(title);
 return this.pluralAlias_createTiddler(place,before,title,template);
}
function pluralAlias_getTitle(title) {
 if (!store.tiddlerExists(title)) {
 var aliasTitle = title.match(/s$/)?title.substr(0, title.length-1):title+"s";
 if (store.tiddlerExists(aliasTitle)) title = aliasTitle;
 }
 return title;
}
TiddlyWiki.prototype.reverseLookup = function(lookupField,lookupValue,lookupMatch,sortField)
{
 var results = [];
 this.forEachTiddler(function(title,tiddler) {
 var f = !lookupMatch;
 for(var lookup=0; lookup<tiddler[lookupField].length; lookup++)
 if(tiddler[lookupField][lookup] == lookupValue || pluralAlias_getTitle(tiddler[lookupField][lookup]) == lookupValue)
 f = lookupMatch;
 if(f)
 results.push(tiddler);
 });
 if(!sortField)
 sortField = "title";
 results.sort(function(a,b) {return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);});
 return results;
}
//}}}
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://kaizenfieldbook.com/marksblog/wp-content/uploads/2010/01/plus-delta-pic2-300x154.jpg>>
<<showtoc>>
!Overview
A [[Plus / Delta]] is a simple inclusive strategy enabling everyone to consider the pluses - what went well, and the deltas - what you would like to see changed. It is a great [[feedback tool|Feedback]] and a tool to find out which things should be intensified and should be changed.

!Plus / Delta
<<tiddler [[Plus / Delta##Overview]]>>

!Objectives
* Find out which things should be intensified and should be changed.
* Decide what to do in a [[retrospective|Agile Retrospectives]]
* Getting [[team commitment|Commitment]] for the things to do

!Timing
30min

!Audience
Group

!Materials
* flipchart with Plus/Delta drawn:
<<wikify [img(%0,%1)[%2|%3][%3]] 20% auto title http://www.better-leadership.com/image-files/t-chart.png>>

!Procedure
# To use a Plus Delta simply make two columns. Label one column with a plus + sign and the other with the Greek sign for delta
# Let the participants write cards for the things (on task level) that went well and should be intensified, let them stick the cards to the flipchart and let them explain their cards.
# Same with the things that should be changed.
# Discuss the suggestions and find out which ones the group will [[commit|Commitment]] on ([[Dot Voting]]).

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.cmoe.com/blog/wp-content/images/plusdelta.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.better-leadership.com/image-files/t-chart.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Templates for Plus/Delta| http://www.cap.nsw.edu.au/qi/tools/pqr/plusdelta.htm]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://kaizenfieldbook.com/marksblog/wp-content/uploads/2010/01<<showtoc>>
!Overview
[[Plus / Delta Team Reflection]] is equivalent to [[Plus / Delta]] for [[agile retrospectives|Agile Retrospectives]]. It is a great [[feedback tool|Feedback]] and a tool to find out which things should be intensified and should be changed.

!Plus / Delta Team Reflection
<<tiddler [[Plus / Delta Team Reflection##Overview]]>>

!Objectives
* Find out which things should be intensified and should be changed.
* Getting [[team commitment|Commitment]] for the things to do

!Timing
30min

!Audience
Group

!Materials
* flipchart with Plus/Delta drawn:
<<wikify [img(%0,%1)[%2|%3][%3]] 20% auto title http://www.better-leadership.com/image-files/t-chart.png>>

!Procedure
# To use a Plus Delta simply make two columns. Label one column with a plus + sign and the other with the Greek sign for delta
# Let the participants write cards for the things that went well in the team and should be intensified, let them stick the cards to the flipchart and let them explain their cards.
# Same with the things that should be changed.
# Discuss the suggestions and find out which ones the group will [[commit|Commitment]] on ([[Dot Voting]]).

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.cmoe.com/blog/wp-content/images/plusdelta.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.better-leadership.com/image-files/t-chart.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Templates for Plus/Delta| http://www.cap.nsw.edu.au/qi/tools/pqr/plusdelta.htm]]
* [[Delta Team Reflection - Process Check: Plus/Delta Feedback to Team - PDF| http://www.hydroville.org/system/files/team_reflection.pdf]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.nscblog.com/wp-content/uploads/2009/12/principles.gif>>
<<showtoc>>
!Overview
[[Pocket-sized Principles]]: this is a great exercise to better communicate the [[twelve principles|Agile Principles]] behind the [[Agile Manifesto]]. In their existing form, it is challenging for people to read and understand each principle and, just as importantly, to easily refer to them later.

!Pocket-sized Principles
<<tiddler [[Pocket-sized Principles##Overview]]>>

!Objectives
* effective way of capturing each [[Agile principle|Agile Principles]] in a much more concise and memorable way.

!Timing
15 min

!Materials
* Copies of the twelve [[principles of agile software|Agile Principles]] (http://agilemanifesto.org/principles.html)
* White-boards and/or flip-charts
* Markers 

!Audience
* Group
* Management

!Procedure
This is an exercise that we came up with to better communicate the twelve principles behind the Agile Manifesto. 
In their existing form, it is challenging for people to read and understand each principle and, just as importantly, to easily refer to them later.
# Divide participants in to groups, each with a white-board or flip-chart and markers.
# Have the teams write down the numbers 1 through 12.
# Challenge each team to, within a 15 minute time-box, come up with three words maximum that effectively capture each of the twelve principles.
# To avoid ‘analysis paralysis’, make sure to give the teams time updates throughout (e.g. 10, 5, 2, 1 minute warnings). You will find that teams will speed up towards the end.
# When time is up, go through each principle and discuss which are the most important words. Sometimes I like to ask people what their most and least favorite principles are.
# Post the condensed principles somewhere visible, so as to make it a regular talking point.

Here is an example:

{{groupbox{
# Produce Value Early
# Welcome Change
# Iterative Delivery
# Daily Business Collaboration
# Trust Motivated Team
# Face to Face
# Working Software
# Sustainable Pace
# Technical Excellence
# [[KISS principle|KISS-Prinzip]]
# [[Self-Organize|Self-organizing Team]]
# Reflect and Adjust 
}}}

!Debriefing
* This is an effective way of capturing each principle in a much more concise and memorable way.
* Probably the most valuable part of this exercise, is in the discussion that the teams have when trying to come up with the words. They need to first understand the principle before breaking it down.
* Teams can establish a collective understanding and ownership of each principle.
* This also makes for a good review exercise in a classroom environment. 

!Credits
Don ~McGreal

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2010/01/pocket-sized-principles/
/%
|Name|Polar bears and dogs playing|
|URL|http://www.youtube.com/v/JE-Nyt4Bmi8|
|Description|A strange relationship between dogs and bears.<br>Taken from the show "Jailed Polar Bear" on FirstScience.tv|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/JE-Nyt4Bmi8"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/JE-Nyt4Bmi8" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
/***
|Name|~PopupMacro|
|Version|1.0.0|
|Type|plugin|
|Source|http://tw.lewcid.org/#PopupMacro|
|Author|[[SaqImtiaz]]|
|Description|Create popups with custom content|
|Documentation|[[PopupMacro Documentation|PopupMacroDocs]]|
|Requires|TW Version 2.0.8 or better|
|~CoreVersion|2.x|
***/
// /%
{{{
config.macros.popup = {};
config.macros.popup.arrow = (document.all?"▼":"▾");
config.macros.popup.handler = function(place,macroName,params,wikifier,paramString,theTiddler) {

        if (!params[0] || !params[1]) 
             {createTiddlyError(place,'missing macro parameters','missing label or content parameter');
              return false;};
   
        var label = params[0];
        var source = (params[1]).replace(/\$\)\)/g,">>"); 
        var nestedId = params[2]? params[2]: 'nestedpopup';        

	var onclick = function(event) {
	        if(!event){var event = window.event;}
                var theTarget = resolveTarget(event);
                var nested = (!isNested(theTarget));
               
                if ((Popup.stack.length > 1)&&(nested==true)) {Popup.removeFrom(1);}
                else if(Popup.stack.length > 0 && nested==false) {Popup.removeFrom(0);};
                
                var theId = (nested==false)? "popup" : nestedId; 
	        var popup = createTiddlyElement(document.body,"ol",theId,"popup",null);
	        Popup.stack.push({root: button, popup: popup});

                wikify(source,popup);
		Popup.show(popup,true);
	        event.cancelBubble = true;
		if (event.stopPropagation) event.stopPropagation();
		return false;
	}
	var button = createTiddlyButton(place, label+this.arrow,label, onclick, null);
};

window.isNested = function(e) {
        while (e != null) {
                var contentWrapper = document.getElementById("contentWrapper");
                if (contentWrapper == e) return true;
                e = e.parentNode;
                }
        return false;
};
/***
setStylesheet(
".popup, .popup a, .popup a:visited {color: #fff;}\n"+
".popup  a:hover {background: #014; color: #fff; border: none;}\n"+
".popup li , .popup ul, .popup ol {list-style:none !important; margin-left:0.3em !important; margin-right:0.3em; font-size:100%; padding-top:0.5px !important; padding:0px !important;}\n"+
"#nestedpopup {background:#2E5ADF; border: 1px solid #0331BF; margin-left:1em; }\n"+
"",
"CustomPopupStyles");
***/
config.shadowTiddlers.PopupMacroDocs="The documentation is available [[here.|http://tw.lewcid.org/#PopupMacroDocs]]";
}}}
//%/
/***
|Name|PopupPreviewPlugin|
|Source|http://www.TiddlyTools.com/#PopupPreviewPlugin|
|Version|1.1.0|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires|StickyPopupPlugin (optional, recommended)|
|Description|popup a formatted preview of a linked tiddler's content|
This plugin adds a custom 'shift-click' or mouseover handler to all tiddler links (or images with tiddler links) to display a popup with a fully-formatted preview of the linked tiddler's content.
!!!!!Usage
<<<
When you click the mouse on a preview-enhanced tiddler link while holding the SHIFT key, a popup will be displayed, containing the fully-formatted content of the linked tiddler, in a restricted size, scrolling area.  Note that, while you can //scroll// this preview display to //view// its contents, clicking anywhere (even within the preview popup) will automatically dismiss the popup display, making interaction with the preview content impossible.  To actually interact with the content of a tiddler, you should open it in the normal fashion (i.e, by clicking the tiddler link //without// holding the SHIFT key).
<<<
!!!!!Configuration
<<<
<<option chkPopupPreviews>> enable popup previews (shift-click)
{{{usage: <<option chkPopupPreviews>>}}}
<<option chkPopupPreviewMouseover>> show previews on mouseover (no click needed)
{{{usage: <<option chkPopupPreviewMouseover>>}}}
width of popup: <<option txtPopupPreviewWidth>> height of popup: <<option txtPopupPreviewHeight>>
//(width and height may be specified using any valid css units, e.g., "px", "em", "in", "cm", "%")//
{{{usage: <<option txtPopupPreviewWidth>> <<option txtPopupPreviewHeight>>}}}
<<<
!!!!!Revisions
<<<
2009.09.22 [1.1.0] added chkPopupPreviewMouseover option
2007.11.19 [1.0.0] fixed handling for imageLinks ('tiddlylink' attrib is on the *parentNode* of target image element)
2007.11.10 [0.5.0] alpha development - use with care
<<<
!!!!!Code
***/
//{{{
version.extensions.PopupPreviewPlugin= {major: 1, minor: 1, revision: 0, date: new Date(2009,9,22)};

var co=config.options; // abbrev
if (co.chkPopupPreviews===undefined) co.chkPopupPreviews=true;
if (co.txtPopupPreviewWidth==undefined) co.txtPopupPreviewWidth="50%";
if (co.txtPopupPreviewHeight==undefined) co.txtPopupPreviewHeight="10em";
if (co.chkPopupPreviewMouseover===undefined) co.txtPopupPreviewHeight=false;

if (window.popupPreview_createTiddlyLink===undefined) { // only once
window.popupPreview_createTiddlyLink=window.createTiddlyLink;
window.createTiddlyLink=function()
{
	var btn=this.popupPreview_createTiddlyLink.apply(this,arguments);
	var handler=config.options.chkPopupPreviewMouseover?'onmouseover':'onclick';
	btn.savedHandler=btn[handler];
	btn[handler]=function(e) {
		var co=config.options; // abbrev
		if (!e) var e=window.event; var theTarget=resolveTarget(e);
		if (!e.shiftKey&&!co.chkPopupPreviewMouseover || !co.chkPopupPreviews) 
			return this.savedHandler?this.savedHandler.apply(this,arguments):false;
		else { // show tiddler preview if enabled and SHIFT is pressed
			var tid=theTarget.getAttribute("tiddlylink");
			if (!tid) tid=theTarget.parentNode.getAttribute("tiddlylink"); // for "imageLink"
			var text=store.getTiddlerText(tid);
			if (text && text.length) {
				var popup = Popup.create(this,null,"sticky popup");
				popup.style.width=co.txtPopupPreviewWidth;
				popup.style.padding=".5em";
				var msg="%0 %1".format([tid,config.views.wikified.shadowModifier]);
				var tiddler=store.getTiddler(tid); if (tiddler) msg=tiddler.getSubtitle();
				wikify("@@display:block;font-size:80%;line-height:110%;"+msg+"@@",popup);
				var div=createTiddlyElement(popup,"DIV",null,"popupPreview viewer");
				div.style.overflow="auto"; 
				div.style.whiteSpace="normal";
				div.style[config.browser.isIE?'height':'maxHeight']=co.txtPopupPreviewHeight;
				wikify(text,div);
				Popup.show('bottom','left');
			}
			e.cancelBubble=true; if (e.stopPropagation) e.stopPropagation(); return false;
		}
	}
	return btn;
}
}
//}}}
<data>{"abstract":"[[Positive TEAM-Akronyme finden]]: kreative Einstiegsübung, um die negative Assoziation von TEAM = TOLL EIN ANDERER MACHTS in einem Kleingruppen-[[Brainstorming]] auf Flipcharts in positive Richtung umzudeuten"}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.pacificadventure.org/main/files/u1/teambuilding.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Positive TEAM-Akronyme finden","abstract") </script>

!Positive ~TEAM-Akronyme finden
<script> return "<<tiddler [[Positive TEAM-Akronyme finden##Overview]]>>" </script> 

!Objectives

!Timing

!Audience
Group: 2-4 Personen 


!Materials
* 

!Procedure
Kleingruppen von 2-4 Personen erhalten die Aufgabe, möglichst viele Umdeutungen des Akronyms 

{{indent{/%
%/
//TEAM = "Toll Ein Anderer Machts"// /%
%/}}}

zu finden und auf einem Flipchart oder der Pinwand festzuhalten:

{{indent{/%
%/
* TEAM = Toll ein anderer machts'
* TEAM = Together everybody achieves more.
* TEAM = Tools ersetzen aktive Mitarbeiter
* TEAM = Treten, Einschüchtern, Austricksen, Mobben
* TEAM = Toleranz, Einsicht, Anteilnahme, Mitgefühl 
}}}

Der Trainer schreibt die Buchstaben TEAM untereinander und schreibt die bekannte ~Negativ-Assoziation dazu.
Er inspiriert das [[Brainstorming]] dann mit einigen wenigen positiven Beispielen wie: 

{{indent{/%
%/
//"Talentiere Einzelne Arbeiten Miteinander", 
"Tatkräftiges Engagiertes Aktives Miteinander",
"[[Team]] Entsteht Aus [[Motivation]]".// /%
%/}}}

Die Gruppen beginnen dann ihr [[Brainstorming]] und stellen ihre ~Flipchart-Ergebnisse, ihre drei Spitzenreiter oder ihren Hit je nach Seminarkontext entweder als Arbeitsergebnis verbal, pantomimisch, als Sketch oder in einem selbst verfassten Song vor.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline|http://mwonline.de/db/topics/themenentry.php3?to_parebene=Ideenfabrik&db=3]]
<data>{"abstract":"[[Postkarten-Schnipsel]]: eine Einstiegsübung, die bevorzugt bei der Einführung von Gruppenarbeit in multikulturellen [[Teams|Team]] einsetzbar ist, wenn es keine gemeinsame Muttersprache gibt.   "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://gestrandet.files.wordpress.com/2008/08/post2.jpg?w=320&h=240>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Postkarten-Schnipsel","abstract") </script>

!~Postkarten-Schnipsel
<script> return "<<tiddler [[Postkarten-Schnipsel##Overview]]>>" </script> 

!Objectives
* multikulturelle Teams

!Timing


!Audience
Group / Individual


!Materials
* ~Postkarten-Schnipsel mit verschiedenen Motiven

!Procedure
Sechs ~TeilnehmerInnen sitzen an einem Tisch. In die Mitte des Tisches werden die Schnipsel von fünf Postkarten mit verschiedenen Motiven gelegt. 

Die Aufgabe der ~TeilnehmerInnen besteht darin, die Postkarten wieder zusammenzusetzen, aber ohne sich mündlich auszutauschen. 

Bei dieser Übung kann jeder Teilnehmer unabhängig von Vorwissen und sprachlichen Fähigkeiten mitspielen. Deshalb ist eine non-verbale Übung bei multikulturellen [[Teams|Team]] mit Deutsch als Fremdsprache eine gute Einstiegsübung.

Postkarten mit farbigen Motiven sind leicht zu besorgen oder am Computer zu erstellen. Pro Karte sollten 8 bis 10 unregelmäßige Schnipsel geschnitten werden. Die Motive sollten anregenden Charakter haben, damit Spaß garantiert wird.
Eine Wettbewerbssituation unter mehreren [[Teams|Team]] lässt sich erzeugen, wenn die Schnipsel auf Zeit zusammengelegt werden müssen. Interessant ist hier, wer überhaupt mitarbeitet, ob die Aufgabenstellung von allen erfasst wurde, ob alle mitmachen durften und wer mit seinem Beitrag wie zufrieden ist.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline|http://mwonline.de/db/topics/themenentry.php3?to_parebene=Ideenfabrik&db=3]]
/%
|Name|Praxis Jugendarbeit|
|URL|http://www.praxis-jugendarbeit.de/spiele-sammlung.html|
|Description|2000 Spiele - Gruppenstunden, Ferienlager, Party-Spiele|
|Author|Hans Hirling|

!Objectives
* 2000 Spiele - Gruppenstunden, Ferienlager, Party-Spiele

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

%/
<data>{"abstract":"[[Pressekonferenz]]: ein Seminartag liegt hinter Ihnen. An Stelle eines [[Blitzlichtes|Blitzlicht]] können Sie mit dieser kleinen Übung, die allerdings etwas Vorbereitung braucht, ein kurzes aber sehr prägnantes Fazit ziehen lassen.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.exuberance.ch/images/news/pressekonferenz.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Pressekonferenz","abstract") </script>

!Pressekonferenz
<script> return "<<tiddler [[Pressekonferenz##Overview]]>>" </script> 

!Objectives

!Timing

!Audience
Group

!Materials
* Pinnwand
* Fotokopien mit Logos von ~Boulevard-Blättern.

!Procedure
Da ist ein Seminartag ist zu Ende - oder das ganze Seminar. Jeder Teilnehmer erhält eine Fotokopie mit dem Logo eines ~Boulevard-Blattes. Hierauf schreibt er seine persönliche Schlagzeile zum Tag (oder zum ganzen Seminar), in der er seinen Eindruck plakativ und im Stil der ~Boulevard-Presse zum Ausdruck bringt. Anschließend liest jeder seine Schlagzeile vor und heftet sie an eine Pinnwand, an der der Trainer Beispiele tatsächlicher Schlagzeilen aus der Regenbogenpresse angehängt hat.

Variation: Jeder Teilnehmer erhält einen Bogen mit einer anderen Publikation, also auch seriöse Tageszeitungen oder Fachzeitschriften, die die Teilnehmer lesen.

Mit dieser Auswertungsübung führen sich die Teilnehmer das Markanteste aus der Veranstaltung noch einmal gegenseitig plakativ vor Augen, außerdem erhält der Trainer ein humorvoll verpacktes [[Feedback]]. Die Bögen werden verkleinert und der [[Seminardokumentation|Dokumentation]] beigefügt.

!Debriefing

!Quelle
Amelie Funcke / Axel Rachow: Setzen Sie Ihr Seminar in Szene! managerSeminare 4/2002 S.68

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Pressekonferenz+%28jt%29]]
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://hypergogue.net/wp-content/uploads/2010/07/agile-manifesto1.gif>>
<<showtoc>>
!Overview
[[Presto Manifesto]]: unveil the true motivation behind the [[agile manifesto|Agile Manifesto]] with this interactive and powerful group exercise.

!Presto Manifesto
<<tiddler [[Presto Manifesto##Overview]]>>

!Objectives
* unveil the true motivation behind the [[agile manifesto|Agile Manifesto]].

!Timing
10 min

!Materials
* Whiteboards and/or flip-charts
* Markers

!Audience
* Group
* Management

!Procedure
# Begin by defining what success on a software development project means. Is it only about being on time and on budget? What about customer satisfaction?
# Divide the participants in to groups and ask them to, based on their project experiences, come up with a list of criteria that they have noticed as critical elements on successful projects.
# Ask them to reach a consensus within their team and have each member sign off on the criteria they agree with.
# Look for patterns between each team’s list and then discuss. 
# Compare each teams list with the list that the 17 signatories of the agile manifesto came up with.
# You will be surprised at the results, regardless of the participants experience with agile. 
# You will rarely see any team come up with prescriptive practices and I have yet to come across a list that did not include customer collaboration, communication, and team dynamics.

!Debriefing
* The agile manifesto is a set of factors that are considered common on successful projects.
* These successful factors are not entirely new to our industry.
* The agile manifesto does not prescribe specific practices, reaching a wide consensus on these would be very hard.

!Credits
Don ~McGreal

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/presto-manifesto/
/***
|Name|PreviewPlugin|
|Source|http://www.TiddlyTools.com/#PreviewPlugin|
|Version|1.8.0|
|Author|[[EricShulman]] - 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|add key-by-key wikified preview to any textarea input field|
Provides key-by-key ''LIVE PREVIEW'' of //formatted// tiddler content as you type input into a textarea (multi-line) edit field.
!!!!!Syntax
<<<
Syntax: (in tiddler content)
{{{
<<preview hide fieldname height>>
}}}
//OR// (in [[EditTemplate]])
{{{
<span macro='preview hide fieldname height'></span>
}}}
where:
* 'hide' (optional)<br>is a keyword that causes the preview display to be initially hidden when created.  This is typically used in an [[EditTemplate]] definition, in conjunction with the 'previewTiddler' toolbar syntax (see below).
* fieldname (optional)<br>specifies the name of the tiddler field that is being previewed.  It corresponds to the fieldname specified in the {{{<span class='editor' macro='edit fieldname height'></span>}}} syntax used to define the textarea edit field, and is used to locate and access the source content that is to be previewed.  When omitted, the previewer will automatically associate itself with the last textarea control that precedes it in the rendered tiddler editor display.
* height (optional)<br>defines the total height of the previewer display (including the status line and controls), using css "em" (line height) measurements.  The default height value is "15em" (i.e., approximately 15 lines of standard-sized text)

In addition to the preview macro itself, you can place the following in your [[EditTemplate]] to add a tiddler toolbar command that enables you to toggle the preview display once it has been created:
{{{
<span class='toolbar' macro='toolbar previewTiddler'></span>
}}}
when clicked, this command will show/hide ALL preview controls that are displayed in the current tiddler.  Note that, when desired, you can also embed this toolbar command directly into a tiddler by entering the "{{{<<toolbar previewTiddler>>}}}" syntax in the tiddler source.
<<<
!!!!!Usage/examples
<<<
in [[EditTemplate]]:
{{{
<div class='editor' macro='edit foobar 5'></div>
<div class='editor' macro='preview hide foobar 10'></div>
}}}
OR, embedded in tiddler content:
{{{
<<edit foobar 5>><<preview foobar 10>>
}}}
{{smallform{
<<edit foobar 5>><<preview foobar 10>>}}}
By default, the preview display is automatically rendered each time a key is typed into the tiddler content edit field.  As soon as changes are entered, they will be instantly visible within the preview display.  Unfortunately, the partial tiddler source definitions that occur //during// editing may somtimes cause rendering problems, and some exceptionally complex tiddlers make take an unusually long amount of time to completely render their content.   In such cases, key-by-key display updates are undesirable or impractical.

You can select the ''freeze'' checkbox to suspend automatic key-by-key preview display updates.  The preview display will not be re-rendered again until you press the ''refresh'' button or clear the 'freeze' checkbox.  The preview display will also automatically freeze whenever the //rendering time// exceeds a pre-determined time limit (see configuration section), specified in milliseconds.  Note: the ''actual elapsed time'' used to process and render any given content is reported in the preview "status bar" whenever that content is previewed.

In addition to a 'wikified' preview, the previewer display can show a ''DOM viewer'' and/or an ''HTML viewer'' that are also updated with each keystroke.  These text-based displays can be helpful while attempting to correct or enhance the formatting of tiddler content, especially when complex combinations of wiki-syntax produce unexpected or undesired results.
<<<
!!!!!Configuration
<<<
Automatically freeze preview updates when a tiddler takes more than <<option txtPreviewAutoFreeze>> milliseconds to render.
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
[[PreviewPlugin]] (tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
2007.09.27 [1.8.0] split TidIDE preview functionality into separate stand-alone plugin (see [[TidIDEPlugin]]).  
|please see [[TidIDEPluginHistory]] for additional revision details|
2006.04.15 [0.5.0] Initial ALPHA release. Converted from inline script.
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]].
<<<
!!!!!Code
***/
// // version info
//{{{
version.extensions.preview = {major: 1, minor: 8, revision: 0, date: new Date(2006,9,27)};
//}}}

// //  macro definition
//{{{
if (config.options.txtPreviewAutoFreeze==undefined)
	config.options.txtPreviewAutoFreeze=250; // limit (in milliseconds) for auto-freezing preview display

config.macros.preview = {
	renderMsg: "rendering preview...",
	timeoutMsg: " (> %0ms)",
	freezeMsg: " - preview is frozen.  Press [refresh] to re-display.",
	handler: function(place,macroName,params) {
		var hide=params[0]=="hide"; if (hide) params.shift();
		var field=params[0];
		var height=params[1]; if (!height) height=15;
		var here=this.findContainingForm(place);
		if (!here) here=story.findContainingTiddler(place);
		if (!here) here=place.parentNode;
		if (!here) here=place;
		var elems=here.getElementsByTagName("textarea");
		if (field) for (var e=0; e<elems.length; e++)  // find matching textarea (by fieldname)
			if (elems[e].getAttribute("edit")==field) var ta=elems[e];
		else
			if (elems.length) var ta=elems[elems.length-1]; // default to last rendered text area
		if (!ta) {
			var elems=here.getElementsByTagName("input");
			if (field) for (var e=0; e<elems.length; e++)  // find matching input field (by fieldname)
				if (elems[e].getAttribute("edit")==field) var ta=elems[e];
			else
				if (elems.length) var ta=elems[elems.length-1]; // default to last rendered input field
		}
		if (!ta) return false; // no textarea or input field found… do nothing…
		var id=(new Date().getTime()).toString()+Math.random(); // unique instance ID
		ta.id=id+"_edit";
		ta.setAttribute("previewid",id+"_preview");
		ta.saved_onkeyup=ta.onkeyup;
		ta.onkeyup=function(ev) {
			if (this.saved_onkeyup) this.saved_onkeyup.apply(this,arguments);
			config.macros.preview.render(this.id,this.getAttribute("previewid"));
		}
		var html=this.html.replace(/%previd%/g,id+"_preview")
		html=html.replace(/%srcid%/g,id+"_edit");
		html=html.replace(/%hide%/g,hide?"none":"block");
		html=html.replace(/%limit%/g,config.options.txtPreviewAutoFreeze);
		html=html.replace(/%frozen%/g,hide?"checked":"");
		html=html.replace(/%height%/g,height);
		html=html.replace(/%halfheight%/g,height/2);
		createTiddlyElement(place,"span").innerHTML=html;
		this.render(id+"_edit",id+"_preview");
	},
	findContainingForm: function(e) {
		while (e && e.nodeName.toLowerCase()!="form") e=e.parentNode;
		return e;
	},
	render: function(srcid,previd,force) {
		var value=document.getElementById(srcid).value;
		var panel=document.getElementById(previd);
		var f=this.findContainingForm(panel);
		if (!f || (f.freeze.checked && !force)) return;
		var p=panel.firstChild; var d=f.domview; var h=f.htmlview; if (!p||!d||!h) return;
		p.innerHTML="";
		f.status.value=this.renderMsg;
		var start=new Date();
		wikify(value.replace(regexpCarriageReturn,''),p);
		var end=new Date();
		this.renderDOM(previd);
		this.renderHTML(previd);
		f.status.value="elapsed: "+(end-start+1)+"ms";
		// automatically suspend preview updates for slow rendering tiddlers
		if (end-start+1>config.options.txtPreviewAutoFreeze) {
			f.freeze.checked=true;
			f.status.value+=this.timeoutMsg.format([config.options.txtPreviewAutoFreeze]);
		}
		if (f.freeze.checked) f.status.value+=this.freezeMsg;
	},
	renderDOM: function(id) {
		var panel=document.getElementById(id);
		var f=this.findContainingForm(panel); if (!f) return;
		var p=panel.firstChild; var d=f.domview; var h=f.htmlview; if (!p||!d||!h) return;
		var height=p.getAttribute("height");
		p.style.height=((f.dom.checked||f.html.checked)?height/2:height)+"em";
		if (f.dom.checked) d.value=this.getNodeTree(p,"|  ");
		if (!d.style||!h.style) return;
		d.style.height=height/2+"em";
		d.style.display=f.dom.checked?"inline":"none";
		d.style.width=f.html.checked?"49.5%":"100%";
		h.style.width=f.dom.checked?"49.5%":"100%";
	},
	renderHTML: function(id) {
		var panel=document.getElementById(id);
		var f=this.findContainingForm(panel); if (!f) return;
		var p=panel.firstChild; var d=f.domview; var h=f.htmlview; if (!p||!d||!h) return;
		var height=p.getAttribute("height");
		p.style.height=((f.dom.checked||f.html.checked)?height/2:height)+"em";
		if (f.html.checked) h.value=this.formatHTML(p.innerHTML);
		if (!h.style||!d.style) return;
		h.style.height=height/2+"em";
		h.style.display=f.html.checked?"inline":"none";
		h.style.width=f.dom.checked?"49.5%":"100%";
		d.style.width=f.html.checked?"49.5%":"100%";
	},
	formatHTML: function(txt) {
		if (config.browser.isIE) return txt; // BYPASS - 4/24/2006 due to IE hang problem.  Will fix later…
		var out="";
		var indent="";
		var level=0;
		for (var i=0;i<txt.length;i++) {
			var c=txt.substr(i,1);
			if (c=="<") {
					if (txt.substr(i+1,1)=="/")  indent=indent.substr(0,indent.length-2);
				out+="\n"+indent;
				if (txt.substr(i+1,1)!="/" && txt.substr(i+1,3)!="br>" && txt.substr(i+1,2)!="p>" && txt.substr(i+1,3)!="hr>")  indent+="  ";
			}
			out+=c;
				if (c=="\n")
				out+=indent;
			if (c==">" && txt.substr(i+1,1)!="<")
				out+="\n"+indent;
		}
		return out;
	},
	getNodeTree: function(theNode,theIndent,showPath,inline,thePrefix,thePath)
	{
		if (!theNode) return "";
		if (!thePrefix) thePrefix="";
		if (!thePath) thePath="";
		var mquote='"'+(inline?"{{{":"");
		var endmquote=(inline?"}}}":"")+'"';
		// generate output for this node
		var out = thePrefix;
		if (showPath && thePath.length)
				out += (inline?"//":"")+thePath.substr(1)+":"+(inline?"//":"")+"\r\n"+thePrefix;
		if (theNode.className=="DOMViewer")
			return out+'[DOMViewer]\r\n'; // avoid self-referential recursion
		out += (inline?"''":"")+theNode.nodeName.toUpperCase()+(inline?"''":"");
		if (theNode.nodeName=="#text")
			out += ' '+mquote+theNode.nodeValue.replace(/\n/g,'\\n')+endmquote;
		if (theNode.className)
			out += ' class='+mquote+theNode.className+endmquote;
		if (theNode.type)
			out += ' type='+mquote+theNode.type+endmquote;
		if (theNode.id)
			out += ' id='+mquote+theNode.id+endmquote;
		if (theNode.name)
			out += " "+theNode.name+(theNode.value?"="+mquote+theNode.value+endmquote:"");
		if (theNode.href)
			out += ' href='+mquote+theNode.href+endmquote;
		if (theNode.src)
			out += ' src='+mquote+theNode.src+endmquote;
		if (theNode.attributes && theNode.getAttribute("tiddlyLink")!=undefined)
			out += ' tiddler='+mquote+theNode.getAttribute("tiddlyLink")+endmquote;
		out += "\r\n";
		// recursively generate output for child nodes
		thePath=thePath+"."+theNode.nodeName.toLowerCase();
		thePrefix=theIndent+thePrefix;
		for (var i=0;i<theNode.childNodes.length;i++)
		{
			var thisChild=theNode.childNodes.item(i);
			var theNum=(inline?"~~":"(")+(i+1)+(inline?"~~":")");
			out += this.getNodeTree(thisChild,theIndent,showPath,inline,thePrefix,thePath+theNum);
		}
		return out;
	},
	html: " <form><span id='%previd%' editID='%srcid%' style='display:%hide%'><div class='viewer' height='%height%' \
			style='margin:0;margin-top:.5em;height:%height%em;overflow:auto;white-space:normal'>&nbsp;</div> \
		<!-- DOM and HTML viewers --> \
		<textarea name=domview cols=60 rows=12 wrap=off \
			onfocus='this.select()' style='display:none;width:100%;height:%halfheight%em;'></textarea><!-- \
		--><textarea name=htmlview cols=60 rows=12 wrap=off \
			onfocus='this.select()' style='display:none;width:100%;height:%halfheight%em;'></textarea> \
		<!-- status line, preview option checkboxes, run/refresh buttons --> \
		<table width='100%' style='border:0;padding:0;margin:0'><tr style='border:0;padding:0;margin:0'> \
		<td style='border:0;padding:0;margin:0'><!-- \
			--><input type=text name=status style='padding:0;width:100%;' \
				title='ELAPSED: time (in milliseconds) used to render tiddler content in preview display'><!-- \
		--></td><td style='width:1%;border:0;padding:0;margin:0;'><!-- \
			--><input type=text name=limit size='6' maxlength='6' style='padding:0;width:5em;text-align:center' \
				value='%limit%ms' title='TIME LIMIT: maximum rendering time (in milliseconds) before auto-freezing preview' \
				onfocus='this.select()' \
				onchange='var val=this.value.replace(/[^0-9]/g,\"\"); if (!val.length) val=this.defaultValue; \
					this.value=val+\"ms\"; config.options.txtPreviewAutoFreeze=val; saveOptionCookie(\"txtPreviewAutoFreeze\"); \
					this.form.freeze.checked=false; config.macros.preview.render(\"%srcid%\",\"%previd%\",true);'><!-- \
		--></td><td style='width:1%;border:0;padding:0;margin:0;'><!-- \
			--><input type=text name=height size='4' maxlength='4' style='padding:0;width:4em;text-align:center' \
				value='%height%em' title='HEIGHT: size (in \"ems\") of preview area, including controls' \
				onfocus='this.select()' \
				onchange='var val=this.value.replace(/[^0-9]/g,\"\");  if (!val.length) val=this.defaultValue; \
					this.value=val+\"em\"; document.getElementById(\"%previd%\").firstChild.setAttribute(\"height\",val); \
					config.macros.preview.render(\"%srcid%\",\"%previd%\",true)'><!-- \
		--></td><td style='width:1%;border:0;padding:0;margin:0;text-align:right;white-space:nowrap'> \
			<input type=checkbox name=dom style='display:inline;width:auto;margin:1px;' \
				title='show Document Object Model (DOM) information' \
				onclick='config.macros.preview.renderDOM(\"%previd%\");'>DOM \
			<input type=checkbox name=html style='display:inline;width:auto;margin:1px;' \
				title='show rendered HTML' \
				onclick='config.macros.preview.renderHTML(\"%previd%\");'>HTML \
			<input type=checkbox name=freeze style='display:inline;width:auto;margin:1px;' %frozen% \
				title='do not update preview display as changes are made' \
				onclick='var p=document.getElementById(\"%previd%\");  \
					if (this.checked) this.form.status.value+=config.macros.preview.freezeMsg; \
					else config.macros.preview.render(\"%srcid%\",\"%previd%\",true);'>freeze \
			<input type=button style='display:inline;width:auto;' value='refresh' \
				title='update preview display' \
				onclick='config.macros.preview.render(\"%srcid%\",\"%previd%\",true)'> \
		</td></tr></table> \
		</span></form>"
}
//}}}

// // toolbar definition
//{{{
config.commands.previewTiddler = {
	text: 'preview',
	tooltip: 'enable key-by-key preview',
	text_alt: '<input type="checkbox" style="padding:0;margin:0;border:0;background:transparent;" checked>preview',
	tooltip_alt: 'disable key-by-key preview',
	handler: function(event,src,title) {
		var here=story.findContainingTiddler(src); if (!here) return;
		var elems=here.getElementsByTagName("span");
		for (var e=0; e<elems.length; e++) {
			if (elems[e].getAttribute("editid")) {
				var show=elems[e].style.display=="none";
				src.innerHTML=show?this.text_alt:this.text;
				src.title=show?this.tooltip_alt:this.tooltip;
				elems[e].style.display=show?"block":"none";
				config.macros.preview.findContainingForm(elems[e]).freeze.checked=!show;
				if (show) config.macros.preview.render(elems[e].getAttribute("editid"),elems[e].id);
			}
		}
		return false;
	}
};
//}}}
<data>{"abstract":"Das [[Problemdreieck]] ist eine Technik, die in einer Gruppe eine [[Problemlösung]] anstrebt. Ein [[Problem]] wird genau beschrieben, um die Stützen des Problems zu erkennen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://upload.wikimedia.org/wikipedia/commons/thumb/c/c1/Penrose-dreieck.svg/300px-Penrose-dreieck.svg.png>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Problemdreieck","abstract") </script>

!Problemdreieck
Die Teilnehmenden beantworten dazu folgende Fragen: 
* Was oder wer sorgt weshalb dafür, dass dieses [[Problem]] immer wieder auftritt? 
* Wer oder was verhindert eine [[Problemlösung]]? 

Dahinter steht der Gedanke, dass die Existenz dieses Problems für etwas oder jemanden einen Vorteil bringt. Solange es Stützen für das [[Problem]] gibt, wird es nicht kippen und deshalb nicht  gelöst werden. Die Gruppe überlegt welche Möglichkeiten es gibt, die Stützen abzusägen. Es können ganz konkrete Maßnahmen beschlossen werden oder Anregungen zur Weiterarbeit entstehen.


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://comas.offeneslernen.de/Media/app/4/Bilder-Lernstiltest1/problemdreieck.jpg>>
---- }}} 
===


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* http://comas.offeneslernen.de/lerno/MPX_content.php?PHPSESSID=&content_id=1131
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://farm4.static.flickr.com/3430/3994470750_4f8550099b.jpg>>
<<showtoc>>
!Overview
[[Process Doodle]] is a group activity that to facilitate discussion about how to improve processes and work practices.

!Process Doodle
<<tiddler [[Process Doodle##Overview]]>>

!Objectives
* facilitate discussion about how to improve processes and work practices.
* to gain visibility in to what is working and what the challenges are in an organization’s current process.

!Timing
20 min

!Materials
* Whiteboards and/or flip-charts
* Markers

!Audience
Group

!Procedure
# Divide the participants in to groups and ask them to graphically represent their current development process. 
# Have them think about roles, artifacts produced, and challenges. 
# Invite them to be creative and to not worry about using any formal notation (UML, Gantt Charts, RUP, etc.). 
# Ask them not to use people’s names, or to criticize personalities.
# Each team will then then present their creation to the whole group.

!Debriefing
* This is an interesting and fun way for a [[facilitator|Facilitator]] to gain visibility in to what is working and what the challenges are in an organization’s current process.
* This exercise also creates more transparency within a team, by giving people a chance to see how others characterize the process.

!Credits
Michael ~McCullough

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/process-doodle/
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://innovationgames.com/wp-content/uploads/2009/11/product-box.jpg>>/%
http://harvardbusiness.org/products/4389-PDF-ENG/thumbnail/thumbnail.gif%/
<<showtoc>>
!Overview
[[Product Box]], a kind of [[Innovation Game]]: Customers work individually or in small teams to create and sell their ideal product.


!Product Box
<script> return "<<tiddler [[Product Box##Overview]]>>" </script>
Participants imagine that they’re selling a vendor’s product at a tradeshow, retail outlet, or public market.

!Objectives
* Identify customer requirements. 

!Timing
Depends on system/feature complexity: 90min - 1day workshop

!Audience
Group

!Materials
* plain cardboard boxes, glue, paint, crayons, and other scraps and knickknacks 

!Procedure
Participants use plain cardboard boxes, glue, paint, crayons, and other scraps and knickknacks to design a product box that they would buy.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.intraqq.com/assets/images/innovation.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Innovation games: Who says work can't be fun?| http://go.techtarget.com/r/12320138/4201481]]
* [[Google Groups: Project vs Product thinking| http://groups.google.com/group/agile-leaders/browse_thread/thread/d3d271debc43d7c2]]
* http://www.akademie.d
* http://en.wikipedia.org/wiki/Innovation_game
* http://innovationgames.com/product-box/

!Further Reading
<<tiddler [[Innovation Game##Further Reading]]>>
<data>{"abstract":"Die [[Progressive Abstraktion]] versucht, die übergeordneten Zusammenhänge, in die ein [[Problem]] eingebettet ist, zu erkennen. Man nähert sich dem eigentlichen [[Problem]] durch wiederholtes und beharrliches Nachfragen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.hafawo.at/wp-content/themes/arthemia-premium/scripts/timthumb.php?src=/wp-content/uploads/2009/03/letter_pieces.jpg&w=150&h=150&zc=1&q=100>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Progressive Abstraktion","abstract") </script>

!Progressive Abstraktion
[[Progressive Abstraktion]] geht auf [[H. Geschka|http://www.geschka.de/]] zurück und basiert auf darauf, dass geprüft wird, ob die vorläufige Problemdefinition den wirklich wesentlichen problematischen Tatbestand erfasst. Die Standardfrage lautet: //"Worauf kommt es eigentlich an?"//, sie wird solange wiederholt, bis man Lösungen gefunden hat, die dem [[Problem]] am besten entsprechen.

!Beispiel
# Problem: Wie kann man die Möglichkeiten des Kurzparkens in der City verbessern? Es sollen genügend Parkpätze geschaffen werden.
# Wie schafft man mehr Parkplätze? Tiefgaragen, Hochgaragen, kleinere Autos …
# Worauf kommt es eigentlich an?  Man möchte mit dem Auto kurze Besorgungen machen.
# Wie kann man das erreichen? Dauerparken verbieten, Drive-in´s, Ausdehnung der Ladenöffnungszeiten …
# Worauf kommt es eigentlich an?  Man möchte Lasten und Informationen austauschen.
# Wie kann man das erreichen? Leihautosystem, Auftragsdienste, Ausbau öffentlicher Verkehrsmittel …

(nach [[H. Schlicksupp: Innovation, Kreativität und Ideenfindung, Vogel Buchverlag, 2004, S.66-69| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FInnovation-Kreativit%25C3%25A4t-Ideenfindung-Helmut-Schlicksupp%2Fdp%2F3802319842%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214715553%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]])


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://upload.wikimedia.org/wikipedia/de/8/89/Progressive_Abstraktion.PNG>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://bidok.uibk.ac.at/library/behrisch-vaterschaft-dipl03.png>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[Progressive Abstraktion – Wikipedia| http://de.wikipedia.org/wiki/Progressive_Abstraktion]]
* [[Progressive Abstraktion| http://www.grauezelle.de/gz_abstrakt.html]]
* [[Progressive Abstraktion - PDF| http://www.inventool.de/Tools/300%20progressive%20Abstraktion%20T.pdf]]
* [[Informationen zum Tool "Progressive Abstraktion| http://www.inventool.de/toolauswahl/tooldescription.php?id=107]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.abcteach.com/free/p/pinwheel_4ast_rgb1.jpg>>
<<showtoc>>
!Overview
The Agile team building game [[Project Pinwheel]] forces trust and empowers the team. The job is to create as many pinwheels as you can in 5 minutes. The team goes through a time-boxed planning session of 2 minutes to figure out how to best make the pinwheels before the 5 minute pin-wheel making session.

!Project Pinwheel
<<tiddler [[Project Pinwheel##Overview]]>>

!Objectives
* trust and empower the team.

!Timing
15-20 mins

!Materials
* Straws
* Paper fasteners
* Paper copies of the pinwheel pattern to cut out
* Scissors
* Markers
* Paper punch
* Shoe-box size plastic containers (to hold the supplies at each table)
* [[pinwheel_instructions_and_cutout.zip (93 KB)|http://blog.tastycupcakes.com/wp-content/uploads/360/pinwheel_instructions_and_cutout.zip]]

!Audience
Group

!Procedure
Each table (with 5-6 students) has a plastic shoe-box containing enough supplies for 20 pinwheels (would need less most likely). 
Make sure that you make samples of what the pinwheels are supposed to look like for each group. //However// make sure that the sample pinwheels are not in the shoebox at first. The students should not even know they exist. 

This is conducted in two rounds, with three slides (two slides in round 1, and one additional slide for round 2).

!!Round 1
//Slide 1//

{{indent{{{indent{{{indent{{{groupbox{
Your job is to create as many pinwheels as you can in 5 minutes. Take a minute, and assign the following roles at each table:
* Cutter – owns the scissors and completes the cutting
* Decorator/Designer – owns the markers and creates the design for the pinwheel
* Hole Puncher & Paper Fastener – owns the hole puncher and the paper fasteners
* Folder – does any necessary manipulation or folding of the paper during the creation of the pinwheel
* Tester – tests the pinwheel when it has been finished. Verify that it has been decorated and that it at least moves a little when someone blows.
* Manager – responsible for telling each team member what to do. The manager will communicate the tasks to the team members. The team members are not allowed to see the instructions.
}}}}}}}}}}}}

//Slide 2//

{{indent{{{indent{{{indent{{{groupbox{
* At your table there is a box. Each box contains the instructions and the supplies.
* No one is allowed to step outside their role.
* The manager is the only one that can speak, by instructing the team members. Each team member is only allowed to speak to the manager.
* If the pinwheel fails testing, the tester must hand the pinwheel back to who they think caused the “bug”.
}}}}}}}}}}}}

At this point, the teams //DO NOT// see the sample. They don’t even know a sample exists. 
Now, start the timer. After 5 minutes, they will likely create 0 pinwheels.

!!Round 2
//Slide 1//

{{indent{{{indent{{{indent{{{groupbox{
* Manager, you are now a servant leader. Please do whatever it takes to help the team.
* Team members are allowed to help others out.
* You can cross role boundaries.
* Everyone can read the instructions. You can use the instructions as a guideline, but you can now be creative in how you create the pinwheels.
* First, take 2 minutes to discuss how you will work together to be more efficient. Then, you will have 5 minutes to create as many pinwheels as possible.
}}}}}}}}}}}}

Here, the team goes through a time-boxed planning session of 2 minutes to figure out how to best make the pinwheels before the 5 minute pin-wheel making session. I also pull out the sample pinwheel, so the team can have a collective understanding of what the “vision” is.

During this second round, the teams made between 5-10 pinwheels. The ones who made less had issues with the “servant leader” concept, which made for a great discussion afterwords.

!Debriefing
This exercise illustrates the following points.
* Cross functional team work
* Self organizing teams are more effective than those teams under a command-and-control regime
* Team members must be able to cross functional silos to be the most efficient
* Managers are the most effective when they are serving the team, not telling the team what to do
* Over-specialization causes bottle-necks (you’ll notice that some functions will be far ahead of others, such as the “cutters”, and others will be far behind, such as the designers)
* It’s important for the team to take time to retrospect and plan together

It is up to you whether you discuss after each round what was experienced.

!Credits
Andre Simones.

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/11/project-pinwheel/
//synonym://
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!Projekt-Hüte
<<tiddler [[Projekt-Hüte##Overview]]>>


!Objectives

!Timing

!Materials
*

!Audience
Group / Individual

!Procedure

!Debriefing

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Mit kreativen Impulsen emotionale Probleme lösen| http://www.business-wissen.de/index.php?id=7882]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://dclips.fundraw.com/zobo500dir/apple_tree_michael_latou_01.jpg>>/%
http://harvardbusiness.org/products/4389-PDF-ENG/thumbnail/thumbnail.gif%/
<<showtoc>>
!Overview
[[Prune the Product Tree]], a kind of [[Innovation Game]]: Customers work in small teams to shape the evolution of your products and services.

!Prune the Product Tree
<script> return "<<tiddler [[Prune the Product Tree##Overview]]>>" </script>
A very large (apple) tree (representing a system or product) is drawn on a whiteboard. Thick limbs represent major areas of functionality within the system. The edge of the tree - its outermost branches - represent the features available in the current release of the product. 

!Objectives
* Clarify the release plan; 
* shape the evolution of your products and services.

!Timing
Depends on system/feature complexity: 90min - 1day workshop

!Audience
Group

!Materials
* whiteboard
* sticky note cards


!Procedure
A very large (apple) tree (representing a system or product) is drawn on a whiteboard. 
Participants write new features on several index cards that are shaped like leaves, and then they place these feature-leaves onto the tree, revealing which branches (product features) are important to customers for future improvements.

!Debriefing
Setup the release plan.
A very large (apple) tree (representing a system or product) is drawn on a whiteboard. 
Thick limbs represent major areas of functionality within the system. 
The edge of the tree - its outermost branches - represent the features available in the current release of the product. 

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.intraqq.com/assets/images/innovation.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.enthiosys.com/wp-content/uploads/2008/08/tree-small3.JPG>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://leadinganswers.typepad.com/leading_answers/images/2007/03/22/a2.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://joshlanninpm.files.wordpress.com/2010/06/producttreecomplete_thumb.jpg?w=502&h=484>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://leadinganswers.typepad.com/leading_answers/images/2007/03/22/stpt_2.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://tastycupcakes.org/wp-content/uploads/2011/04/Prune-the-Product-Tree-for-TastyCupcakes.org_-150x150.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://tastycupcakes.org/wp-content/uploads/2011/04/Prune-the-Product-Tree-for-TastyCupcakes.org-2-150x150.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://tastycupcakes.org/wp-content/uploads/2011/04/Prune-the-Product-Tree-for-TastyCupcakes.org-3-150x150.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://tastycupcakes.org/wp-content/uploads/2011/04/Prune-the-Product-Tree-for-TastyCupcakes.org-4-150x150.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://tastycupcakes.org/wp-content/uploads/2011/04/Buy-A-Feature-Results-By-Team-for-TastyCupcakes.org_-150x150.jpg>> /%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Innovation games: Who says work can't be fun?| http://go.techtarget.com/r/12320138/4201481]]
* [[Growing Your Product Tree| http://pmblog.lannin.net/2010/06/28/growing-your-product-tree/]]
* http://en.wikipedia.org/wiki/Innovation_game
* http://innovationgames.com/prune-the-product-tree/

!Further Reading
<<tiddler [[Innovation Game##Further Reading]]>>
<data>{"abstract":"[[Punkte für Wissen]], das [[Problem]] ist bekannt: Wie bekommt man [[Mitarbeiter]] dazu, ihr Wissen einer Datenbank anzuvertrauen? Möglicher Weise hilft ein ausgefeiltes Punktesystem weiter - möglicher Weise..."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.perlenkueche.ch/images/blog/punkte.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Punkte für Wissen","abstract") </script>

!Punkte für Wissen
<script> return "<<tiddler [[Punkte für Wissen##Overview]]>>" </script>
Das [[Problem]] ist bekannt: Wie bekommt man [[Mitarbeiter]] dazu, ihr Wissen einer Datenbank anzuvertrauen? Der Spaß am Eintragen selbst, die sogenannte intrinsische [[Motivation]], reicht in der Regel nicht, da helfen vielleicht ausgefeilte Punktesysteme. 

!Objectives
* Informationsaustausch
* Wissensaustausch

!Timing


!Audience
Group


!Materials
* 

!Procedure
Jeder, der eine dringende Anfrage beantwortet, erhält drei Punkte. Wird die Antwort vom Fragesteller bewertet, können hier noch einmal bis zu fünf Punkten hinzukommen. 
Damit die Qualität einen besonderen Stellenwert erhält, kann dieser Wert noch einmal verdoppelt werden. Wenn ein Objekt in der Datenbank zweimal mit 0 Punkten bewertet wurde, wird es entfernt und ins Archiv verbannt, der Urheber wird hierüber informiert.

Am Ende eines Jahres können die Punkte in Preise umgewandelt werden. Witzige Idee: Ein Besuch bei einem Kollegen, mit dem man viele Daten ausgetauscht hat - so springt nicht nur ein Urlaub dabei heraus, sondern auch noch ein Face-to-~Face-Austausch - und weiter geht es mit dem [[Wissensmanagement]]. 


!Debriefing


!Quelle
Uwe Wilkesmann / Ingolf Rascher: Lässt sich Wissen durch Datenbanken managen?, Zeitschrift Führung + Organisation 6/2002 S.349

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Wissensmanagement]<<tiddlerList tags:"knowledge_management,-newTemplate" header:"Übungen Wissensmanagement">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Punkte+f%FCr+Wissen+%28jt%29.html]]
<data>{"abstract":"[[Quadrat-Übung]], eine wunderbare Übung, um Kooperation im [[Team]] greifbar und erlebbar zu machen, mit ungeahnten ~Aha-Erlebnissen - Disziplin vorausgesetzt. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.v-r.de/data/files/352540839/beispiel-quadrat.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Quadrat-Übung","abstract") </script>

!~Quadrat-Übung
<script> return "<<tiddler [[Quadrat-Übung##Overview]]>>" </script> 
Das Ziel der Übung: Jedes Mitglied legt aus den Pappteilen, die sich in den Umschlägen befinden, ein vollständiges Quadrat (Sechseck) gleicher Größe. 

!Objectives
* Kooperation
* Erleben und Diagnose der Probleme und [[Konflikte|Konflikt]] bei gemeinsamer [[Problemlösung]] ohne gegenseitiges Dominieren.
* Darstellung eigener unbewusster Hinderungs- und Förderungsmöglichkeiten der Gruppenlösung durch Fixierung auf die eigene Partiallösung.


!Timing
1 h

!Audience
Group

!Materials
* 5 Umschläge
* Tische für 5er-Gruppen

!Procedure
!!Vorbereitung
# Vorbereitung der Quadratteile nach Vorlage Seite 2. Herstellung aus exakt gleich großen Pappquadraten mit 10 - 15 cm Seitenlänge. exaktes Arbeiten ist wichtig! Die Buchstaben können klein auf den Rückseiten stehen bleiben, dies erleichtert die Sortierung vor dem Spiel. Die jeweils bezeichneten Stücke werden in fünf Umschläge gesteckt, jeder Umschlag erhält einen großen Buchstaben. Die fünf werden dann in einen großen Umschlag gesteckt.
# Tische für die Fünfergruppen vorbereiten und pro Tisch einen Satz der vorbereiteten Umschläge bereit halten.
# Die Teilnehmer nehmen an den Tischen Platz. Die Beobachter setzen sich etwas zurück, achten auf die Einhaltung der Regeln und auf Reaktionen, Verhalten und spontane Äußerungen der an der Übung Beteiligten.
# Jeder Gruppe wird die Instruktion vorgelesen.
# Je ein Mitglied einer Gruppe wird aufgefordert, den großen Umschlag zu öffnen und jedem der anderen Teilnehmer einen der verschlossenen Umschläge ~A-E zu übergeben.
# Beginn auf Zeichen, Beobachter stoppen die Zeit ihrer Gruppe.
# Das Spiel geht solange, bis die letzte Gruppe fertig ist.
# Vergleich der Gruppen, Bericht der Beobachter.

!!Variante 1
{{center{[img(50%,auto)[Quadrat|http://mwonline.de/Images/Quadrat.jpg]]}}}

Die Umschläge enthalten die Teile in folgender Zusammenstellung:

{{indent{
Umschlag A hat folgende Stücke: i, h, e
Umschlag B hat folgende Stücke: a, a, a, c
Umschlag C hat folgende Stücke: a, j
Umschlag D hat folgende Stücke: d, f
Umschlag E hat folgende Stücke: g, b, f, c
}}}

!!Variante 2
{{center{[img(50%,auto)[Quadrat|http://mwonline.de/Images/Sechseck.jpg]]}}}

Umschlag A: a,a,c,e,i,l; Umschlag B: a,a,b,f,h,m; Umschlag C: a,a,d,e,j; Umschlag D: a,d,j,h; Umschlag E: a,b,d,f,g,k

!!Setting
Fünf Gruppenmitglieder sitzen um einen Tisch, auf dem fünf Umschläge liegen. In der Mitte liegt ein Blatt Papier als Ablagefläche. 
Die Aufgabe jeder Gruppe ist es, wenn das Startzeichen gegeben wird, fünf Quadrate von genau gleicher Größe herzustellen. Die Aufgabe ist nicht eher beendet, bis jedes Mitglied ein vollständiges Quadrat von genau gleicher Größe wie alle anderen vor sich liegen hat.

!!Spielregeln 
* Keiner darf sprechen oder sonstige Signale geben. 
* Jeder darf Teilstücke, die er anderen zur Verfügung stellen will, auf das Blatt in der Mitte legen. 
* Jeder darf Teilstücke aus der Mitte nehmen, aber niemand darf in der Mitte Teile zusammenlegen. 
* Niemand darf in die Figuren anderer Mitglieder eingreifen. 
* Auf ein Zeichen hin öffnet jedes Mitglied einen Umschlag und beginnt mit dem Zusammenlegen. 

Achtung: Die Übung erfordert für die Teilnehmer eine gehörige Portion Disziplin, ein Moderator sollte hier jegliche [[Kommunikation]] unterbinden.

!Debriefing
In der anschließenden Diskussion läßt sich in der Regel schön herausarbeiten, wie es sich anfühlt, ein Werk beendet zu haben und es dann wieder zugunsten des Gesamtergebnisses aufgeben zu müssen (eine [[Information]] zu besitzen und sie dann abgeben zu müssen). 
* Welche Schwierigkeiten traten in der Gruppe auf?
* Was ging in den Teilnehmern vor, die ein fertiges Quadrat vor sich hatten, aber es wieder auflösen mussten, um die geforderte gemeinsame Lösung zu ermöglichen?
* Wie fühlte sich ein Teilnehmer, dem ständig Teile zugeschoben wurden, der aber selbst seine Lösung nicht sah?
* Wie kam es dann doch zu einer Gesamtlösung? <br> Welche Verhaltensweisen waren dazu nötig?
* Welche Verhaltensweisen anderer Gruppenmitglieder haben bei mir Kooperationsbereitschaft geweckt?
* Gibt es ähnliche Situationen, wie Sie sie in der Übung erlebt haben, auch an Ihrem Arbeitsplatz?
* Formulieren Sie acht wichtige Regeln, die für das gemeinsame Lösen eines Problems wichtig sind!
* Gefühl, wenn ein Mitglied ein wichtiges Teilstück festhält, ohne selbst die Lösung sehen zu können?
* Gefühl, wenn ein Mitglied ein unrichtiges Quadrat fertig hatte und mit sich zufrieden war?
* Reaktion auf Selbstzufriedenheit?
* Gefühl des Selbstzufriedenen?
* Gefühle gegenüber den Langsamen?
* Erleben der Spannung zwischen eigenem fertigen Quadrat und Gruppenlösung?
* Ganz nützlich ist auch die [[Erfahrung]], helfend eingreifen zu wollen und nicht zu dürfen, statt dessen den anderen seine eigenen Lernerfahrungen machen zu lassen.

!Quelle
Antons,K.: Praxis der Gruppendynamik, Hogrefe 6./1996, S.117-120, nach Brocher, Sechsecke von Schöpping.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Diverse Teamspiele - PDF| http://www.region-online.de/bildung/semi/projekte/spiele.pdf]]
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Quadrat-%DCbung+%28jt%29]]
* [[Quadratübung 1 - PDF| http://quiss.bildung-rp.de/quiss/downloads/teams/quad.pdf]]
* [[Quadratübung 2 - WORD| http://www.bke-koeln.de/uploads/media/quadratuebung.doc]]
* [[Quadratübung 3 - PDF| http://web21.apt-002.de/upload/SynapseFinal/07_Uebungen/Kooperation/Quadrat_Uebung.pdf]]
<data>{"abstract":"Wenn ein [[Team]] den Teamgedanken gar zu stark lebt, darüber aber die Zusammenarbeit mit anderen vergisst, ist die Übungen [[Quantensprung im Unternehmen]] ein schönes Beispiel für den Nutzen von Kooperation."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.weltderphysik.de/_img/article_large/weltenbilder_atomeundmolekuele_rdax_640x438.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Quantensprung im Unternehmen","abstract") </script>

!Quantensprung im Unternehmen
<script> return "<<tiddler [[Quantensprung im Unternehmen##Overview]]>>" </script> 
Manchmal wird das ~Team-Verständnis nur auf die eigene Abteilung bezogen und das Gesamtteam (Unternehmen) und das Gesamtziel (Unternehmenserfolg) leiden darunter.

!Objectives
* Lösungsfindung durch über den eigenen Tellerrand hinausschauen, 
* Hilfe anbieteen oder erfragen 
* das eigentliche Ziel - den Gesamterfolg - ins Bewußtsein rücken.
* [[Perspektivwechsel]]
* Reframing

!Timing
45 min

!Audience
Group

!Materials
* pro Gruppe 1 Seil und 1 Aufgabenzettel
!!Aufgabenzettel
//"Bitte sprechen Sie ab jetzt nicht mehr miteinander. Ihre Aufgabe ist es, mit dem Seil ein gleichseitiges x-Eck zu bilden. Der Längenunterschied zwischen der längsten und der kürzesten Seite darf maximal 1 Meter betragen. Jeder Teilnehmer muß an einer Ecke stehen. An jeder Ecke darf nur ein Teilnehmer sein. Die Aufgabe ist beendet, wenn alle Teilnehmer (TN) eine Seilecke in der rechten Hand halten und die linke Hand heben."//
!!Hinweise
An der freien Stelle im Text ("x-Eck") tragen Sie bitte die Größe des Seilecks (TN+1) ein: bei 6 TN, eine x=7. Bei 7 TN eine x=8 usw. Unter diesen Bedingungen ist es unmöglich das geforderte Eck zu bilden. Die Aufgabe ist für die Kleingruppen unlösbar.

!Procedure
Legen Sie jeweils ein 10m Seil und einen vorbereiteten Aufgabenzettel im Briefumschlag für jede Kleingruppe zurecht. Kalkulieren Sie 30 Minuten für die Durchführung und mindestens 60 Minuten für die Auswertung der Aufgabe ein.

Bitten Sie die Großgruppe, Kleingruppen (KG) zu bilden, bspw. zwei KG á 6 Personen. Geben Sie jeder KG ein Seil und einen Brief. 
Dann beginnen Sie die Einführung: //"Dies ist eine Aufgabe für Ihre gesamte Gruppe. Bitte nehmen Sie pro KG ein Seil und einen Brief und begeben sich in den KG in entgegengesetzte Ecken dieses Raumes. Diese Orte stellen die zwei Niederlassungen Ihres Unternehmens dar. Wenn Sie dort angekommen sind, öffnen Sie bitte den Briefumschlag und erledigen Sie den Auftrag".//

!Tips & Erfahrungen
Zunächst versuchen die KG verschiedene Lösungsmöglichkeiten. Da wird vielleicht ein Stuhl eingebunden um die fehlende Ecke zu konstruieren, oder eine Person hält mit dem Fuß eine zusätzliche Ecke usw. Ein stummer Hinweis auf den Aufgabenzettel genügt, um deutlich zu machen, dass die Lösung noch nicht gefunden wurde. Meist baut sich etwas Unmut auf, da die Aufgabe nicht lösbar scheint. Erst in diesen Momenten entwickelt sich bei einem, manchmal auch zwei TN eine Lösungsidee.

!Debriefing
!!Lösung
Ein Teilnehmer aus der Kleingruppe 1 ergänzt für einen kurzen Moment die (andere) Kleingruppe 2, um die Lösung zu realisieren. Dann wird dieser Vorgang für die zweite Kleingruppe wiederholt.

!!Anmerkung
Der "~AHA-Effekt" ist enorm groß! Es wird deutlich, wie leicht sich manchmal Lösungen erreichen lassen, wenn man über den eigenen Tellerrand hinausschaut, Hilfe anbietet oder erfragt und das eigentliche Ziel - den Gesamterfolg - ins Bewußtsein rückt.


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Quantensprung+im+Unternehmen+%28hgr%29]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://whateverebay.com/question-mark.jpg>>
<<showtoc>>
!Overview
The [[Question Game]] is a classroom exercise for reinforcing concepts.

!Question Game
<<tiddler [[Question Game##Overview]]>>

!Objectives
* review materials.
* reinforcing concepts

!Timing
20 min

!Materials
* Board (electronic or on white board)
* 20-30 Clues

!Audience
Group

!Procedure
# Divide the participants in to teams and select someone to choose the first clue category and dollar value. 
# Read the clue out loud and have participants ‘buzz in’ by raising their hands. 
** A correct response adds the corresponding dollar value to their teams total, while a wrong response subtracts the same amount and leaves the clue open for other teams to ‘buzz in’. 
** A response must be in the form of a question! 
# The person who last responded correctly, selects the next clue. 
# A hidden ‘secret clue’ will allow the team that selected it to wager as much money as they want. 
# The team with the most money after all the clues have been read wins.

!Debriefing
* This is a fun and competitive way to review materials.

!Credits
Michael ~McCullough

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/question-game/
/***
|Name|QuickEditPlugin|
|Source|http://www.TiddlyTools.com/#QuickEditPlugin|
|Documentation|http://www.TiddlyTools.com/#QuickEditPlugin|
|Version|2.4.3|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|Support functions for ~QuickEdit package: styles, utility functions, and 'toggleQuickEdit' command|
!!!!!Revisions
<<<
2009.06.11 [2.4.3] added keyup() function to abbreviate listbox handling for CR and ESC
2009.05.07 [2.4.2] added processed() function to abbreviate event handler code
2008.09.07 [2.4.1] added removeCookie() function for compatibility with [[CookieManagerPlugin]]
2008.05.17 [2.4.0] copied code from StickyPopupPlugin to remove dependency
2008.05.12 [2.3.0] added "toggleQuickEdit" command handler (replaces inline script command)
2008.01.11 [2.2.0] converted from inline script
2007.03.29 [1.0.0] initial release (as inline script)
<<<
!!!!!Code
***/
//{{{
version.extensions.QuickEditPlugin= {major: 2, minor: 4, revision: 3, date: new Date(2009,6,11)};

// SET STYLESHEET
setStylesheet("\
.quickEdit a { border:2px outset ButtonFace; padding:0px 3px !important; \
	-moz-border-radius:.5em; -webkit-border-radius:.5em; \
	-moz-appearance:button !important; -webkit-appearance:push-button !important; \
	background-color:ButtonFace; color:ButtonText !important;  \
	line-height:200%; font-weight:normal; } \
.quickEdit a:hover { border: 2px inset ButtonFace; background-color:ButtonFace; }\
", "quickEditStyles");

// REMOVE COOKIE
if (window.removeCookie===undefined) {
	window.removeCookie=function(name) {
		document.cookie = name+'=; expires=Thu, 01-Jan-1970 00:00:01 UTC; path=/;'; 
	}
}

// UTILITY FUNCTIONS
config.quickEdit = {
	processed: function(ev) { ev=ev||window.event;
		ev.cancelBubble=true;
		if(ev.stopPropagation) ev.stopPropagation();
		return false;
	},
	keyup: function(ev){ var k=(ev||window.event).keyCode;
		if (k==13) this.onclick();
		if (k==27) Popup.remove();
	},
	getField: function(where) {
		var here=story.findContainingTiddler(where); if (!here) return null;
		var e=story.getTiddlerField(here.getAttribute("tiddler"),"text");
		if (e&&e.getAttribute("edit")=="text") return e;
		return null;
	},
	setSelection: function(where,newtext) {
		var e=this.getField(where); if (!e) return false;
		e.focus(); replaceSelection(e,newtext);
		return false;
	},
	wrapSelection: function(where,before,after) {
		var e=this.getField(where); if (!e) return false;
		e.focus(); replaceSelection(e,before+config.quickEdit.getSelection(e)+after);
		return false;
	},
	getSelection: function(e) {
		var seltext="";
		if (e&&e.setSelectionRange)
			seltext=e.value.substr(e.selectionStart,e.selectionEnd-e.selectionStart);
		else if (document.selection) {
			var range = document.selection.createRange();
			if (range.parentElement()==e) seltext=range.text
		}
		return seltext;
	},
	promptForFilename: function(msg,path,file) {
		if(window.Components) { // moz
			try {
				netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
				var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
				var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
				picker.init(window, msg, nsIFilePicker.modeOpen);
				var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
				thispath.initWithPath(path);
				picker.displayDirectory=thispath;
				picker.defaultExtension='jpg';
				picker.defaultString=file;
				picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterImages);
				if (picker.show()!=nsIFilePicker.returnCancel)
					var result="file:///"+picker.file.persistentDescriptor.replace(/\\/g,'/');
			}
			catch(e) { alert('error during local file access: '+e.toString()) }
		}
		else { // IE
			try { // XP only
				var s = new ActiveXObject('UserAccounts.CommonDialog');
				s.Filter='All files|*.*|JPG files|*.jpg|GIF files|*.gif|PNG files|*.png|';
				s.FilterIndex=1; // default to JPG
				s.InitialDir=path;
				s.FileName=file;
				if (s.showOpen()) var result=s.FileName;
			}
			catch(e) { var result=prompt(msg,path+file); } // fallback for non-XP IE
		}
		return result;
	}
}
//}}}

//{{{
if (config.options.chkShowQuickEdit===undefined) config.options.chkShowQuickEdit=false;
config.commands.toggleQuickEdit = {
	hideReadOnly: true,
	getText: function() { return config.options.chkShowQuickEdit?'\u221Aquickedit':'quickedit'; },

	tooltip: 'show QuickEdit toolbar buttons',
	handler: function(event,src,title) {
		config.options.chkShowQuickEdit=!config.options.chkShowQuickEdit;
		config.macros.option.propagateOption("chkShowQuickEdit","checked", config.options.chkShowQuickEdit,"input");
		if (config.options.chkShowQuickEdit) saveOptionCookie("chkShowQuickEdit");
		else removeCookie("chkShowQuickEdit");
		src.innerHTML=config.commands.toggleQuickEdit.getText();
		story.forEachTiddler(function(t,e){if (story.isDirty(t)) refreshElements(e);});
		return false;
	}
};
//}}}

// // COPIED FROM [[StickyPopupPlugin]] TO ELIMINATE PLUGIN DEPENDENCY
//{{{
if (config.options.chkStickyPopups==undefined) config.options.chkStickyPopups=false;
Popup.stickyPopup_onDocumentClick = function(ev)
{
	// if click is in a sticky popup, ignore it so popup will remain visible
	var e = ev ? ev : window.event; var target = resolveTarget(e);
	var p=target; while (p) {
		if (hasClass(p,"popup") && (hasClass(p,"sticky")||config.options.chkStickyPopups)) break;
		else p=p.parentNode;
	}
	if (!p) // not in sticky popup (or sticky popups disabled)... use normal click handling
		Popup.onDocumentClick(ev);
	return true;
};
try{removeEvent(document,"click",Popup.onDocumentClick);}catch(e){};
try{addEvent(document,"click",Popup.stickyPopup_onDocumentClick);}catch(e){};
//}}}
/***
|Name:|QuickOpenTagPlugin|
|Description:|Changes tag links to make it easier to open tags as tiddlers|
|Version:|6.1.1|
|Date:|01-Oct-2006|
|Source:|http://mptw.tiddlyspot.com/#QuickOpenTagPlugin|
|Author:|[[SimonBaird]] <simon.baird@gmail.com>|
|CoreVersion:|2.1.x|
***/
//{{{
config.quickOpenTag = {

	dropdownChar: (document.all ? "\u25bc" : "\u25be"), // the little one doesn't work in IE

	createTagButton: function(place,tag,excludeTiddler) {
		// little hack so we can to <<tag PrettyTagName|RealTagName>>
		var splitTag = tag.split("|");
		var pretty = tag;
		if (splitTag.length == 2) {
			tag = splitTag[1];
			pretty = splitTag[0];
		}
		
		var sp = createTiddlyElement(place,"span",null,"quickopentag");
		createTiddlyText(createTiddlyLink(sp,tag,false),pretty);
		
		var theTag = createTiddlyButton(sp,config.quickOpenTag.dropdownChar,
                        config.views.wikified.tag.tooltip.format([tag]),onClickTag);
		theTag.setAttribute("tag",tag);
		if (excludeTiddler)
			theTag.setAttribute("tiddler",excludeTiddler);
    		return(theTag);
	},

	miniTagHandler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var tagged = store.getTaggedTiddlers(tiddler.title);
		if (tagged.length > 0) {
			var theTag = createTiddlyButton(place,config.quickOpenTag.dropdownChar,
                        	config.views.wikified.tag.tooltip.format([tiddler.title]),onClickTag);
			theTag.setAttribute("tag",tiddler.title);
			theTag.className = "miniTag";
		}
	},

	allTagsHandler: function(place,macroName,params) {
		var tags = store.getTags();
		var theDateList = createTiddlyElement(place,"ul");
		if(tags.length == 0)
			createTiddlyElement(theDateList,"li",null,"listTitle",this.noTags);
		for (var t=0; t<tags.length; t++) {
			var theListItem = createTiddlyElement(theDateList,"li");
			var theLink = createTiddlyLink(theListItem,tags[t][0],true);
			var theCount = " (" + tags[t][1] + ")";
			theLink.appendChild(document.createTextNode(theCount));
			var theDropDownBtn = createTiddlyButton(theListItem," " +
			config.quickOpenTag.dropdownChar,this.tooltip.format([tags[t][0]]),onClickTag);
			theDropDownBtn.setAttribute("tag",tags[t][0]);
		}
	},

	// todo fix these up a bit
	styles: 
"/*{{{*/\n"+
"/* Author QuickOpenTagPlugin */\n"+
".tagglyTagged .quickopentag, .tagged .quickopentag \n"+
"	{ margin-right:1.2em; border:1px solid #eee; padding:2px; padding-right:0px; padding-left:1px; }\n"+
".quickopentag .tiddlyLink { padding:2px; padding-left:3px; }\n"+
".quickopentag a.button { padding:1px; padding-left:2px; padding-right:2px;}\n"+
"/* extra specificity to make it work right */\n"+
"#displayArea .viewer .quickopentag a.button, \n"+
"#displayArea .viewer .quickopentag a.tiddyLink, \n"+
"#mainMenu .quickopentag a.tiddyLink, \n"+
"#mainMenu .quickopentag a.tiddyLink \n"+
"	{ border:0px solid black; }\n"+
"#displayArea .viewer .quickopentag a.button, \n"+
"#mainMenu .quickopentag a.button \n"+
"	{ margin-left:0px; padding-left:2px; }\n"+
"#displayArea .viewer .quickopentag a.tiddlyLink, \n"+
"#mainMenu .quickopentag a.tiddlyLink \n"+
"	{ margin-right:0px; padding-right:0px; padding-left:0px; margin-left:0px; }\n"+
"a.miniTag {font-size:150%;} \n"+
"#mainMenu .quickopentag a.button \n"+
"	/* looks better in right justified main menus */\n"+
"	{ margin-left:0px; padding-left:2px; margin-right:0px; padding-right:0px; }\n" + 
"#topMenu .quickopentag { padding:0px; margin:0px; border:0px; }\n" +
"#topMenu .quickopentag .tiddlyLink { padding-right:1px; margin-right:0px; }\n" +
"#topMenu .quickopentag .button { padding-left:1px; margin-left:0px; border:0px; }\n" +
"/*}}}*/\n"+
		"",

	init: function() {
		// we fully replace these builtins. can't hijack them easily
		window.createTagButton = this.createTagButton;
		config.macros.allTags.handler = this.allTagsHandler;
		config.macros.miniTag = { handler: this.miniTagHandler };
		config.shadowTiddlers["QuickOpenTagStyles"] = this.styles;
		if (store)
			store.addNotification("QuickOpenTagStyles",refreshStyles);
		else
			config.notifyTiddlers.push({name:"QuickOpenTagStyles", notify: refreshStyles});
	}

}

config.quickOpenTag.init();

//}}}
/***
|''Name''|QuickSavePlugin|
|''Description''|provides command for staying in edit mode when saving|
|''Author''|FND|
|''Version''|0.1.2|
|''Status''|@@experimental@@|
|''Source''|http://devpad.tiddlyspot.com/#QuickSavePlugin|
|''CodeRepository''|http://svn.tiddlywiki.org/Trunk/contributors/FND/|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''Keywords''|editing saving|
!Usage
Add {{{quickSaveTiddler}}} [[command|http://www.tiddlywiki.org/wiki/Tiddler_Toolbar]] to [[ToolbarDefinitions]]' //EditToolbar// slice.
!Revision History
!!v0.1 (2009-01-09)
* initial release
!Code
***/
//{{{
(function() { //# set up local scope

if(!version.extensions.QuickSavePlugin) { //# ensure that the plugin is only installed once
version.extensions.QuickSavePlugin = { installed: true };

config.messages.draftSaved = "Draft saved: %0";

config.commands.quickSaveTiddler = {
	text: "save",
	tooltip: "Save changes keep editing",

	handler: function(event, src, title) {
		story.saveTiddler(title, event.shiftKey, true);
		return false;
	}
};

// override saveTiddler to make template-switching optional
Story.prototype.saveTiddler = function(title, minorUpdate, keepView) // TODO: rename template/view argument
{
	var tiddlerElem = this.getTiddler(title);
	if(tiddlerElem) {
		var fields = {};
		this.gatherSaveFields(tiddlerElem, fields);
		var newTitle = fields.title || title;
		if(!store.tiddlerExists(newTitle)) {
			newTitle = newTitle.trim();
		}
		if(store.tiddlerExists(newTitle) && newTitle != title) {
			if(!confirm(config.messages.overwriteWarning.format([newTitle.toString()]))) {
				return null;
			}
		}
		if(newTitle != title) {
			this.closeTiddler(newTitle, false);
		}
		tiddlerElem.id = this.tiddlerId(newTitle);
		tiddlerElem.setAttribute("tiddler", newTitle);
		if(!keepView) {
			tiddlerElem.setAttribute("template", DEFAULT_VIEW_TEMPLATE);
		}
		tiddlerElem.setAttribute("dirty", "false");
		if(config.options.chkForceMinorUpdate) {
			minorUpdate = !minorUpdate;
		}
		if(!store.tiddlerExists(newTitle)) {
			minorUpdate = false;
		}
		var newDate = new Date();
		var extendedFields = store.tiddlerExists(newTitle) ? store.fetchTiddler(newTitle).fields : (newTitle!=title && store.tiddlerExists(title) ? store.fetchTiddler(title).fields : merge({}, config.defaultCustomFields));
		for(var n in fields) {
			if(!TiddlyWiki.isStandardField(n)) {
				extendedFields[n] = fields[n];
			}
		}
		var tiddler = store.saveTiddler(title, newTitle, fields.text, minorUpdate ? undefined : config.options.txtUserName, minorUpdate ? undefined : newDate, fields.tags, extendedFields);
		if(keepView && tiddler && !config.options.chkAutoSave) { // XXX: hacky!?
			displayMessage(config.messages.draftSaved.format([tiddler.title])); // XXX: "saved" confusing; displayMessage unsuitable for feedback?
		}
		autoSaveChanges(null, [tiddler]);
		return newTitle;
	}
	return null;
};

} //# end of "install only once"

})(); //# end of local scope
//}}}
/***
|Name|QuoteOfTheDayPlugin|
|Source|http://www.TiddlyTools.com/#QuoteOfTheDayPlugin|
|Documentation|http://www.TiddlyTools.com/#QuoteOfTheDayPluginInfo|
|Version|1.4.1|
|Author|[[EricShulman]] - 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|Display a randomly selected "quote of the day" from a list defined in a separate tiddler|

!!!!!Documentation
>see [[QuoteOfTheDayPluginInfo]]
!!!!!Revisions
<<<
2008.03.21 [1.4.1] in showNextItem(), corrected handling for random selection so that //initial// index value will randomized correctly instead of always showing first item, even when randomizing.  Thanks to Riccardo Gherardi for finding this.
| Please see [[QuoteOfTheDayPluginInfo]] for previous revision details |
2005.10.21 [1.0.0] Initial Release.  Based on a suggestion by M.Russula
<<<
!!!!!Code
***/
//{{{
version.extensions.QOTD = {major: 1, minor: 4, revision: 1, date: new Date(2008,3,21)};
config.macros.QOTD = {
	clickTooltip: "click to view another item",
	timerTooltip: "auto-timer stopped…  'mouseout' to restart timer",
	timerClickTooltip: "auto-timer stopped…  click to view another item, or 'mouseout' to restart timer",
	handler:
	function(place,macroName,params) {
		var tid=params.shift(); // source tiddler containing HR-separated quotes
		var p=params.shift();
		var click=true; // allow click for next item
		var inline=false; // wrap in slider for animation effect
		var random=true; // pick an item at random (default for "quote of the day" usage)
		var folder=false; // use local filesystem folder list
		var cookie=""; // default to no cookie
		var next=0; // default to first item (or random item)
		while (p) {
			if (p.toLowerCase()=="noclick") var click=false;
			if (p.toLowerCase()=="inline") var inline=true;
			if (p.toLowerCase()=="norandom") var random=false;
			if (p.toLowerCase().substr(0,7)=="cookie:") var cookie=p.substr(8);
			if (!isNaN(p)) var delay=p;
			p=params.shift();
		}
		if ((click||delay) && !inline) {
			var panel = createTiddlyElement(null,"div",null,"sliderPanel");
			panel.style.display="none";
			place.appendChild(panel);
			var here=createTiddlyElement(panel,click?"a":"span",null,"QOTD");
		}
		else
			var here=createTiddlyElement(place,click?"a":"span",null,"QOTD");
		here.id=(new Date()).convertToYYYYMMDDHHMMSSMMM()+Math.random().toString(); // unique ID
		// get items from tiddler or file list
		var list=store.getTiddlerText(tid,"");
		if (!list||!list.length) { // not a tiddler… maybe an image directory?
			var list=this.getImageFileList(tid);
			if (!list.length) { // maybe relative path… fixup and try again
				var h=document.location.href;
				var p=getLocalPath(decodeURIComponent(h.substr(0,h.lastIndexOf("/")+1)));
				var list=this.getImageFileList(p+tid);
			}
		}
		if (!list||!list.length) return false; // no contents… nothing to display!
		here.setAttribute("list",list);
		if (delay) here.setAttribute("delay",delay);
		here.setAttribute("random",random);
		here.setAttribute("cookie",cookie);
		if (click) {
			here.title=this.clickTooltip
			if (!inline) here.style.display="block";
			here.setAttribute("href","javascript:;");
			here.onclick=function(event)
				{ config.macros.QOTD.showNextItem(this); }
		}
		if (config.options["txtQOTD_"+cookie]!=undefined) next=parseInt(config.options["txtQOTD_"+cookie]);
		here.setAttribute("nextItem",next);
		config.macros.QOTD.showNextItem(here);
		if (delay) {
			here.title=click?this.timerClickTooltip:this.timerTooltip
			here.onmouseover=function(event)
				{ clearTimeout(this.ticker); };
			here.onmouseout=function(event)
				{ this.ticker=setTimeout("config.macros.QOTD.tick('"+this.id+"')",this.getAttribute("delay")); };
			here.ticker=setTimeout("config.macros.QOTD.tick('"+here.id+"')",delay);
		}
	},
	tick: function(id) {
		var here=document.getElementById(id); if (!here) return;
		config.macros.QOTD.showNextItem(here);
		here.ticker=setTimeout("config.macros.QOTD.tick('"+id+"')",here.getAttribute("delay"));
	},
	showNextItem:
	function (here) {
		// hide containing slider panel (if any)
		var p=here.parentNode;
		if (p.className=="sliderPanel") p.style.display = "none"
		// get a new quote
		var index=here.getAttribute("nextItem"); 
		var items=here.getAttribute("list").split("\n----\n");
		if (index<0||index>=items.length) index=0;
		if (here.getAttribute("random")=="true") index=Math.floor(Math.random()*items.length);
		var txt=items[index];
		// re-render quote display element, and advance index counter
		removeChildren(here); wikify(txt,here);
		index++; here.setAttribute("nextItem",index);
		var cookie=here.getAttribute("cookie");
		if (cookie.length) {
			config.options["txtQOTD_"+cookie]=index.toString();
			saveOptionCookie("txtQOTD_"+cookie);
		}
		// redisplay slider panel (if any)
		if (p.className=="sliderPanel") {
			if(anim && config.options.chkAnimate)
				anim.startAnimating(new Slider(p,true,false,"none"));
			else p.style.display="block";
		}
	},
	getImageFileList: function(cwd) { // returns HR-separated list of image files
		function isImage(fn) {
			var ext=fn.substr(fn.length-3,3).toLowerCase();
			return ext=="jpg"||ext=="gif"||ext=="png";
		}
		var files=[];
		if (config.browser.isIE) {
			cwd=cwd.replace(/\//g,"\\");
			// IE uses ActiveX to read filesystem info
			var fso = new ActiveXObject("Scripting.FileSystemObject");
			if(!fso.FolderExists(cwd)) return [];
			var dir=fso.GetFolder(cwd);
			for(var f=new Enumerator(dir.Files); !f.atEnd(); f.moveNext())
				if (isImage(f.item().path)) files.push("[img[%0]]".format(["file:///"+f.item().path.replace(/\\/g,"/")]));
		} else {
			// FireFox (mozilla) uses "components" to read filesystem info
			// get security access
			if(!window.Components) return;
			try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); }
			catch(e) { alert(e.description?e.description:e.toString()); return []; }
			// open/validate directory
			var file=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
			try { file.initWithPath(cwd); } catch(e) { return []; }
			if (!file.exists() || !file.isDirectory()) { return []; }
			var folder=file.directoryEntries;
			while (folder.hasMoreElements()) {
				var f=folder.getNext().QueryInterface(Components.interfaces.nsILocalFile);
				if (f instanceof Components.interfaces.nsILocalFile)
					if (isImage(f.path)) files.push("[img[%0]]".format(["file:///"+f.path.replace(/\\/g,"/")]));
			}
		}
		return files.join("\n----\n");
	}
}
//}}}
<data>{"abstract":"Die [[Random Input Methode]] ist eine effiziente und effektive [[Kreativitätstechnik|Kreativitätstechniken]] des Lateralen Denkens, dem kreativen Denkansatz nach [[Edward de Bono|http://de.wikipedia.org/wiki/Edward_de_Bono]]. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.querdenker.de/images/fotolia12932401sdavidhumphreyfotolia.com.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Random Input Methode","abstract") </script>

!Random Input Methode
<script> return "<<tiddler [[Random Input Methode##Overview]]>>" </script> 
Sie eignet sich besonders, wenn schnell neue [[Ideen|Ideenmanagement]] gefunden werden sollen, wenn zu einem Thema völlig neue Überlegungen nötig sind, wenn neue Produkte oder Dienstleistungen entwickelt werden sollen.
Die [[Random Input Methode]] ist eine effiziente und effektive [[Kreativitätstechnik|Kreativitätstechniken]] des [[Lateralen Denkens|Laterales Denken]], dem kreativen Denkansatz nach [[Edward de Bono|http://de.wikipedia.org/wiki/Edward_de_Bono]]. Sie eignet sich besonders, wenn schnell neue [[Ideen|Ideenmanagement]] gefunden werden sollen, wenn zu einem Thema völlig neue Überlegungen nötig sind, wenn neue Produkte oder Dienstleistungen entwickelt werden sollen.

!Objectives


!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Um systematisch nach einer neuen Idee zu suchen, wird schriftlich genau definiert, wozu eine neue Idee entwickelt werden soll.
Zum Beispiel: Wie fällt eine Weihnachtskarte richtig auf?

Ein unabhängiger Begriff, der in keinerlei Zusammenhang mit der Aufgabenstellung steht, wird dem [[Problem]] gegenübergestellt.


!Beispiel
 Benzin.

Zu diesem Begriff werden vier bis sechs charakteristische Merkmale notiert. Zu Benzin passt: explosiv, flüssig, geruchvoll und Energie gebend.

Jetzt wird die Verbindung zu dem Ausgangsthema hergestellt und die Merkmale übertragen. Am Beispiel der Weihnachtskarte heißt das: als Tischbombe könnte sie explosiv sein, die Tannengrün oder Weihnachtswünsche versprüht. Flüssig wäre sie ein Punschpraliné, ein Teebeutel oder Glühweingewürz. Als Karte mit Aroma wird sie geruchvoll. Oder sie wird ein Energie gebender Wärmebeutel oder Taschenwärmer.

Dieser ganze Vorgang kann mit neuen unabhängigen Begriffen wiederholt werden.
Zum Beispiel mit dem Begriff Kaffeekanne ergeben sich die Merkmale hohl, isoliert, duftend, praktisch und warm. Eine Geschenkdose mit Aufdruck repräsentiert das Hohle. Ein großes Wattekissen ist der isolierende Briefumschlag der Karte. Duftend wird sie durch aufgesprühten Zimt-~Orangen-Duft. Das Praktische erscheint in Form eines Weihnachtsrezepts. Ein in einen selbst gestrickten Schal gewickelter Gruß bringt die Wärme.

Die [[Random Input Methode]] beruht auf der Erkenntnis, dass das Gehirn die Fähigkeit besitzt, Verbindungen auch zu fernen Begriffen herzustellen. Das Gehirn ist in der Lage auch bei einem skurrilen Zufallsbegriff [[Assoziationen|Assoziationstechniken]] zu dem Ausgangsproblem herzustellen. Die Methode ist einfach anzuwenden, bietet Spaß und ist produktiv. Sie wirkt daher motivierend auf alle Teilnehmenden.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://comas.offeneslernen.de/lerno/MPX_content.php?PHPSESSID=&content_id=1093
* http://www.alles-k.de/doc/Krea-137.htm
<data>{"abstract":"[[Reactive Decision Making]] is when the decider opts for a course of action by reacting to the choices made by other [[stakeholders|Stakeholder]] in the problem."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://i218.photobucket.com/albums/cc275/thehousenextdoor/2008/Links%20for%20the%20Day/August%202008/August%2016%202008/yoda_500x250.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Reactive Decision Making","abstract") </script>

!Reactive Decision Making
[[Reactive Decision Making]] is when the decider opts for a course of action by reacting to the choices made by other [[stakeholders|Stakeholder]] in the problem. This approach is rather common in everyday human [[decision making|Decision Making]]. Deciding reactively may at times give the impression of being a rational act in a given set of circumstances, but beware: simply reacting to the actions of others can easily expose the decider to unforeseen risks. Strategically, it is neither a rational nor advisable approach.


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[Highly reactive decision making: a game with Time - (PDF)| http://dli.iiit.ac.in/ijcai/IJCAI-99%20VOL-2/PDF/048.pdf]]
* http://www.absoluteastronomy.com/topics/Reactive_decision_making
//synonym:// ''RTSC''
<data>{"abstract":"[[Real Time Strategic Change|Real Time Strategic Change Konferenz]] (RTSC) und ist eine Form der Großgruppenkonferenz, die vor allem dann zum Einsatz kommt, wenn ein Unternehmen sich über die Strategie schon im Klaren ist, nun aber die [[Mitarbeiter]] hierfür gewinnen will. Sie bedarf allerdings sorgfältiger Vorbereitungen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.agentursteinbach.at/files/pictures/full_20090212154323_RTSC%20Vogelpersp..JPG>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Real Time Strategic Change Konferenz","abstract") </script>

!Real Time Strategic Change Konferenz
<script> return "<<tiddler [[Real Time Strategic Change Konferenz##Overview]]>>" </script> 
Die [[Real Time Strategic Change Konferenz]] ist neben [[Open Space]] und Zukunftskonferenz eine weitere Möglichkeit der Großgruppenkonferenz. 
Sie wird meist im Zusammenhang mit Leitbildfindungsprozessen eingesetzt, es gibt im Gegensatz zu den beiden anderen Verfahren stärkere inhaltliche Vorgaben. Dies wiederum bedeutet, daß die Vorbereitung hier sehr sorgfältig sein muß. 

!Objectives
* Leitbildfindungsprozessen 

!Timing
3 Tag4

!Audience
Group

!Materials
* 

!Procedure
Der Ablauf der drei Tage gliedert sich so:

!!1.Tag
* "Unsere Geschichten": Emotionale Einstimmung der Teilnehmer
* Sicht der [[Führung]]: Wo wollen wir hin?
* Diagnose der [[Organisation]]: Was müssen wir verändern?
* Branchentrends: In welchem Umfeld bewegen wir uns?

!!2.Tag
* Präsentation eines Vorbildes: An wem können wir uns orientieren?
* Heimliche Spielregeln: Wie gestaltet sich unsere Zusammenarbeit
* Ziele, Werte und Programme der Teilnehmer
* Überarbeitung der [[Ziele|Ziel]] und Werte der Teilnehmer (Abendsitzung mit Management und Moderatoren)

!!3.Tag
* Darstellung der überarbeiteten Ziele
* Visionieren: Was ist in zwei Jahren realisiert?
* Erörterung und Beschließen der weiteren Maßnahmen
* Umsetzung der Maßnahmen

!Debriefing

!Quelle
Herzog: Menschen für Visionen gewinnen, managerSeminare 1/1999, S.108-115

!See also
* [[Organizational Change Management]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=RTSC-Konferenz+%28jt%29&db=3]]
/***
|Name|RearrangeTiddlersPlugin|
|Source|http://www.TiddlyTools.com/#RearrangeTiddlersPlugin|
|Version|2.0.0|
|Author|[[EricShulman]]|
|OriginalAuthor|Joe Raii|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Story.prototype.refreshTiddler|
|Description|drag tiddlers by title to re-order story column display|

adapted from: http://www.cs.utexas.edu/~joeraii/dragn/#Draggable
changes by ELS:
* hijack refreshTiddler() instead of overridding createTiddler()
* find title element by className instead of elementID
* set cursor style via code instead of stylesheet
* set tooltip help text
* set tiddler "position:relative" when starting drag event, restore saved value when drag ends
* update 2006.08.07: use getElementsByTagName("*") to find title element, even when it is 'buried' deep in tiddler DOM elements (due to custom template usage)
* update 2007.03.01: use apply() to invoke hijacked core function
* update 2008.01.13: only hijack core function once.  (allows for dynamic loading of plugin via bookmarklet)
* update 2008.10.19: added onclick popup menu with 'move to top' and 'move to bottom' commands

***/
//{{{

if (Story.prototype.rearrangeTiddlersHijack_refreshTiddler===undefined) {
Story.prototype.rearrangeTiddlersHijack_refreshTiddler = Story.prototype.refreshTiddler;
Story.prototype.refreshTiddler = function(title,template)
{
	this.rearrangeTiddlersHijack_refreshTiddler.apply(this,arguments);
	var theTiddler = document.getElementById(this.idPrefix + title); if (!theTiddler) return;
	var theHandle;
	var children=theTiddler.getElementsByTagName("*");
	for (var i=0; i<children.length; i++) if (hasClass(children[i],"title")) { theHandle=children[i]; break; }
	if (!theHandle) return theTiddler;

	Drag.init(theHandle, theTiddler, 0, 0, null, null);
	theHandle.style.cursor="move";
	theHandle.title="drag title to re-arrange tiddlers, click for more options..."
	theTiddler.onDrag = function(x,y,myElem) {
		if (this.style.position!="relative")
			{ this.savedstyle=this.style.position; this.style.position="relative"; }
		y = myElem.offsetTop;
		var next = myElem.nextSibling;
		var prev = myElem.previousSibling;
		if (next && y + myElem.offsetHeight > next.offsetTop + next.offsetHeight/2) { 
			myElem.parentNode.removeChild(myElem);
			next.parentNode.insertBefore(myElem, next.nextSibling);//elems[pos+1]);
			myElem.style["top"] = -next.offsetHeight/2+"px";
		}
		if (prev && y < prev.offsetTop + prev.offsetHeight/2) { 
			myElem.parentNode.removeChild(myElem);
			prev.parentNode.insertBefore(myElem, prev);
			myElem.style["top"] = prev.offsetHeight/2+"px";
		}
	};
	theTiddler.onDragEnd = function(x,y,myElem) {
		myElem.style["top"] = "0px";
		if (this.savedstyle!=undefined)
			this.style.position=this.savedstyle;
	};
	theHandle.onclick=function(ev) {
		ev=ev||window.event;
		var p=Popup.create(this); if (!p) return;
		var b=createTiddlyButton(createTiddlyElement(p,"li"),
			"\u25B2 move to top of column ","move this tiddler to the top of the story column",
			function() {
				var t=story.getTiddler(this.getAttribute("tid"));
				t.parentNode.insertBefore(t,t.parentNode.firstChild); // move to top of column
				window.scrollTo(0,ensureVisible(t));
				return false;
			});
		b.setAttribute("tid",title);
		var b=createTiddlyButton(createTiddlyElement(p,"li"),
			"\u25BC move to bottom of column ","move this tiddler to the bottom of the story column",
			function() {
				var t=story.getTiddler(this.getAttribute("tid"));
				t.parentNode.insertBefore(t,null); // move to bottom of column
				window.scrollTo(0,ensureVisible(t));
				return false;
			});
		b.setAttribute("tid",title);
		Popup.show(p,false);
		ev.cancelBubble=true; if (ev.stopPropagation) ev.stopPropagation(); return(false);
	};
	return theTiddler;
}
}

/**************************************************
 * dom-drag.js
 * 09.25.2001
 * www.youngpup.net
 **************************************************
 * 10.28.2001 - fixed minor bug where events
 * sometimes fired off the handle, not the root.
 **************************************************/

var Drag = {
	obj:null,

	init:
	function(o, oRoot, minX, maxX, minY, maxY) {
		o.onmousedown = Drag.start;
		o.root = oRoot && oRoot != null ? oRoot : o ;
		if (isNaN(parseInt(o.root.style.left))) o.root.style.left="0px";
		if (isNaN(parseInt(o.root.style.top))) o.root.style.top="0px";
		o.minX = typeof minX != 'undefined' ? minX : null;
		o.minY = typeof minY != 'undefined' ? minY : null;
		o.maxX = typeof maxX != 'undefined' ? maxX : null;
		o.maxY = typeof maxY != 'undefined' ? maxY : null;
		o.root.onDragStart = new Function();
		o.root.onDragEnd = new Function();
		o.root.onDrag = new Function();
	},

	start:
	function(e) {
		var o = Drag.obj = this;
		e = Drag.fixE(e);
		var y = parseInt(o.root.style.top);
		var x = parseInt(o.root.style.left);
		o.root.onDragStart(x, y, Drag.obj.root);
		o.lastMouseX = e.clientX;
		o.lastMouseY = e.clientY;
		if (o.minX != null) o.minMouseX = e.clientX - x + o.minX;
		if (o.maxX != null) o.maxMouseX = o.minMouseX + o.maxX - o.minX;
		if (o.minY != null) o.minMouseY = e.clientY - y + o.minY;
		if (o.maxY != null) o.maxMouseY = o.minMouseY + o.maxY - o.minY;
		document.onmousemove = Drag.drag;
		document.onmouseup = Drag.end;
		Drag.obj.root.style["z-index"] = "10";
		return false;
	},

	drag:
	function(e) {
		e = Drag.fixE(e);
		var o = Drag.obj;
		var ey = e.clientY;
		var ex = e.clientX;
		var y = parseInt(o.root.style.top);
		var x = parseInt(o.root.style.left);
		var nx, ny;
		if (o.minX != null) ex = Math.max(ex, o.minMouseX);
		if (o.maxX != null) ex = Math.min(ex, o.maxMouseX);
		if (o.minY != null) ey = Math.max(ey, o.minMouseY);
		if (o.maxY != null) ey = Math.min(ey, o.maxMouseY);
		nx = x + (ex - o.lastMouseX);
		ny = y + (ey - o.lastMouseY);
		Drag.obj.root.style["left"] = nx + "px";
		Drag.obj.root.style["top"] = ny + "px";
		Drag.obj.lastMouseX = ex;
		Drag.obj.lastMouseY = ey;
		Drag.obj.root.onDrag(nx, ny, Drag.obj.root);
		return false;
	},

	end:
	function() {
		document.onmousemove = null;
		document.onmouseup = null;
		Drag.obj.root.style["z-index"] = "0";
		Drag.obj.root.onDragEnd(parseInt(Drag.obj.root.style["left"]), parseInt(Drag.obj.root.style["top"]), Drag.obj.root);
		Drag.obj = null;
	},

	fixE:
	function(e) {
		if (typeof e == 'undefined') e = window.event;
		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
		return e;
	}
};
//}}}
/***
|Name|RecentChangesPlugin|
|Source|http://www.TiddlyTools.com/#RecentChangesPlugin|
|Version|2.2.1|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|display droplist of recently changed tiddlers with goto, edit, and preview buttons|
!!!!!Usage
<<<
The {{{<<recentChanges>>}}} macro displays a droplist of all tiddlers that have been changed within the last N days (default=10 days).  
{{{
<<recentChanges>>
<<recentChanges #ofdays summary noEdit previewheight previewclass>>
}}}
where:
* #ofdays specifies the time limit for listing changed tiddlers.  Use 0 (zero) to list all tiddlers in the document.
* ''summary'' is an optional keyword that outputs only the summary text (without the droplist or buttons)
* ''noEdit'' is an optional keyword that hides the 'edit' button
* previewheight is a css height measurement and sets the FIXED height of the tiddler preview area (default is 15em)
* previewclass is any css classname, and can be used to apply custom styles to the preview area (default is to use the standard 'viewer' class)
<<<
!!!!!Examples
<<<
{{smallform{
{{{<<recentChanges>>}}}
<<recentChanges>>
{{{<<recentChanges 30 summary>>}}}
<<recentChanges 30 summary>>

{{{<<recentChanges 30 noedit 10em groupbox>>}}}
<<recentChanges 30 noedit 10em groupbox>>
}}}
<<<
!!!!!Revisions
<<<
2009.09.07 [2.2.1] fixed typo in shadow definition
2009.07.02 [2.2.0] added optional 'noedit' keyword to hide 'edit' button
2008.07.01 [2.1.0] added optional 'summary' keyword for simple text output
2008.05.01 [2.0.1] fixup for titles with double-quotes
2007.07.26 [2.0.0] re-written as plugin
2006.10.02 [1.0.0] initial release (as inline script ShowRecentChanges)
<<<
!!!!!Code
***/
//{{{
version.extensions.RecentChangesPlugin= {major: 2, minor: 2, revision: 1, date: new Date(2009,9,7)};

config.shadowTiddlers.RecentChanges='<<recentChanges>>';

config.macros.recentChanges = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var days=10; if (!isNaN(params[0])) days=parseInt(params[0]); // time limit in days (use 0 for all tiddlers)
		var summary=params[1]&&params[1].toLowerCase()=='summary'; if (summary) params.shift();
		var noedit=params[1]&&params[1].toLowerCase()=='noedit'; if (noedit) params.shift();
		var height='15em'; if (params[1]) height=params[1]; // preview area fixed height
		var previewclass='viewer'; if (params[2]) previewclass=params[2]; // preview area css class
		var tiddlers=store.getTiddlers('modified','excludeLists').reverse();
		var count=tiddlers.length;
		if (days) {
			var timelimit=(new Date()).getTime()-86400000*days;
			for (var count=0; count<tiddlers.length && tiddlers[count].modified>timelimit; count++);
		}
		var s=count+' tiddlers have changed since ';
		s+=new Date(timelimit).formatString('DDD, MMM DDth YYYY 0hh:0mm');
		s+=' ('+days+' days ago)';
		if (summary)
			{ wikify(s,place); return; }
		var opts='<option value="">'+s+'</option>';
		for (var i=0; i<count; i++) { var t=tiddlers[i];
			opts+='<option value="'+t.title.replace(/"/g,"&#x22;")+'">';
			opts+=t.modified.formatString('YYYY.0MM.0DD 0hh:0mm')+' - '+t.title;
			opts+='</option>';
		}
		var h=store.getTiddlerText('RecentChangesPlugin##html')
		h=h.replace(/%options%/,opts);
		h=h.replace(/%listwidth%/,noedit?79.5:69.5);
		h=h.replace(/%noedit%/,noedit?'none':'inline');
		createTiddlyElement(place,'div').innerHTML=h;
		var preview=createTiddlyElement(place,'div',null,previewclass);
		preview.style.display='none';
		preview.style.whiteSpace='normal';
		preview.style.overflow='auto';
		preview.style.height=height;
	}
}
//}}}
/***
//{{{
!html
<form><select size=1 name="list" style="width:%listwidth%%"
	onchange="this.form.goto.disabled=this.form.edit.disabled=this.form.preview.disabled=!this.value.length;
		var target=this.parentNode.parentNode.nextSibling; removeChildren(target);
		if (!this.value.length)
			{ target.style.display='none'; this.form.preview.value='preview'; }
		else if (target.style.display=='block') {
			wikify('<'+'<tiddler [['+this.value+']]>'+'>',target);
			target.style.display='block';
			this.form.preview.value='done';
		}
">%options%</select><!--
--><input type="button" name="goto" value="goto" disabled title="view selected tiddler" style="width:10%"
	onclick="var target=this.parentNode.parentNode.nextSibling; removeChildren(target);
		target.style.display='none'; this.form.preview.value='preview';
		story.displayTiddler(story.findContainingTiddler(this),this.form.list.value);
"><input type="button" name="edit" value="edit" disabled title="edit selected tiddler" style="width:10%;display:%noedit%"
	onclick="var target=this.parentNode.parentNode.nextSibling; removeChildren(target);
		target.style.display='none'; this.form.preview.value='preview';
		story.displayTiddler(story.findContainingTiddler(this),this.form.list.value,DEFAULT_EDIT_TEMPLATE);
"><input type="button" name="preview" value="preview" disabled title="show/hide tiddler preview" style="width:10%"
	onclick="var target=this.parentNode.parentNode.nextSibling;
		if (this.value=='preview') {
			removeChildren(target);
			wikify('<'+'<tiddler [['+this.form.list.value+']]>'+'>',target);
			target.style.display=this.form.list.value.length?'block':'none'; this.value='done';
		} else {
			removeChildren(target);
			target.style.display='none'; this.value='preview';
		}
"></form>
!end
//}}}
***/
 
/***
|Name|RedirectPlugin|
|Source|http://tiddlystyles.com/#RedirectMacro|
|Version|1.1 Jan 26, 2006|
|Author|[[ClintChecketts]] and [[PaulPetterson]]|
|License||
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description|This macro tells TW to find all instances of a word and makes it point to a different link. For example, whenever I put the word 'Clint' in a tiddler I want TiddlyWiki to turn it into a link that points to a tiddler titled 'Clint Checketts' Or the word 'TW' could point to a tiddler called 'TiddlyWiki' It even matches clint (which is lowercase) [[Clint]] leet lEEt LEET|
|Usage|{{{<<redirect TW TiddlyWiki>>}}} |
|Example|{{{<<redirect TW "TiddlyWiki">> <<redirect Clint "Clint Checketts">>}}} (Nothing should appear, its just setting it all up){{{<<redirectExact lEEt Elite>>}}}|

!Revisions
1.1- Fixed tiddler refresh so a tiddler declaring a redirect will also render the redirect
1.0- Updated to work with TiddlyWiki 2.0 (thanks to Udo Borkowski)
0.9- Original release October 2005

!Code
***/
//{{{
version.extensions.redirectExact = {major: 1, minor: 2, revision: 0, date: new Date(2005,10,24)};
config.macros.redirectExact = {label: "Pickles Rock!"};
config.macros.redirectExact.handler = function(place,macroName,params,wikifier,paramString,tiddler){
 config.macros.redirect.handler(place,macroName,params,wikifier,paramString,tiddler);
}

version.extensions.redirect = {major: 1, minor: 2, revision: 0, date: new Date(2005,10,24)};
config.macros.redirect = {label: "Pickles Rock!"};

config.macros.redirect.handler = function(place,macroName,params,wikifier,paramString,tiddler){

var redirectExists = false
// Check to see if the wikifier exists
for (var i=0;i<config.formatters.length;i++)
 if (config.formatters[i].name == "redirect"+params[0])
 redirectExists = true;

//If it doesn't exist, add it!
if (!redirectExists){
 for( var i=0; i<config.formatters.length; i++ )
 if ( config.formatters[i].name=='wikiLink') break ;

 if ( i >= config.formatters.length ) {
 var e = "Can't find formatter for wikiLink!" ;
 displayMessage( e ) ;
 throw( e ) ;
 }

var pattern;
 if (macroName == 'redirect'){pattern=params[0].escapeRegExp().replace(/([A-Z])/img, function($1) {return("["+$1.toUpperCase()+$1.toLowerCase()+"]");});
 } else {
 pattern=params[0].escapeRegExp();
 }

 config.formatters.splice( i, 0, {
 name: "redirect"+params[0],
 match: "(?:\\b)(?:\\[\\[)?"+pattern+"(?:\\]\\])?(?:\\b)",
 subst: params[1],
 handler: function(w) {
 var link = createTiddlyLink(w.output,this.subst,false);
 w.outputText(link,w.matchStart,w.nextMatch);
 }
 });
 formatter = new Formatter(config.formatters); //update the tiddler
 if(tiddler) story.refreshTiddler(tiddler.title,null,true); //refresh tiddler so the new rule is applied
} // End if
}
//}}}
/***
|Name|RefreshCommand|
|Source|http://www.giffmex.org/tiddlydu2.html#RefreshCommand|
|Version||
|Author||
|License||
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description|Refreshs current tiddler|
***/
/***
***/

//{{{

config.commands.refresh = {
 text: 'refresh',
 tooltip: 'Refresh this tiddler',
 handler: function(e,src,title) {
  clearMessage();
  story.refreshTiddler(title,false,true); // force=true
  return false;
 }
};

//}}}
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://images.businessweek.com/ss/07/01/0116_employeereview/image/intro.jpg>>
<data>{"abstract":"[[Regelmäßiges Review]], wenn in einem [[Projekt]] unterschiedliche Gruppen kooperieren, hilft es dem [[Team]], in regelmäßigen Abständen die Zusammenarbeit einer einfachen Überprüfung zu unterziehen."}</data>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Regelmäßiges Review","abstract") </script>

!Regelmäßiges Review
<script> return "<<tiddler [[Regelmäßiges Review##Overview]]>>" </script> 
In jedem Projekt arbeiten die unterschiedlichsten Gruppen miteinander, z.T. auch verschiedene Beratungsunternehmen. 

!Objectives
* Kooperation

!Timing

!Audience
Group

!Materials
* Klebepunkte
* Flipchart

!Procedure
Die Zusammenarbeit sollte regelmäßig auf den Prüfstand gestellt werden, hierzu dient ein kurzer Fragebogen zum Review.

Die zentrale Frage lautet: //"Was hilft uns oder hindert uns daran, in unserer Kooperation exzellente Performance zu bringen?"//

Acht Kriterien werden anschließend auf einer Skala von ++ (förderlich) über +, - und -- (hinderlich) beurteilt. Dabei klebt jeder Teilnehmer je Kriterium einen Punkt in die einfache Tabelle. Die Kriterien lauten:
# Unsere Ziele
# Unsere [[Organisation]]
# Unsere Methoden
# Unser Material
# Unsere Tools
# Unser Wissen
# Unsere Fähigkeiten
# Unser Verhalten 

!Debriefing
Das Ergebnis zeigt auf einen Blick, wo es Handlungsbedarf gibt.

!Quelle
Frank Kühn / Marcin Komor / Jerzy Borakiewicz: Unterschiede produktiv machen - Interkulturelle Managementberatung, Zeitschrift Führung + Organisation, 6/2006, S. 350
!See also
<<tiddler ShowTiddlerReferences>>

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Regelm%E4%DFiges+Review+%28jt%29.html]]
<data>{"abstract":"[[Reiche Ernte]]: Übung zur schnellen, indirekte Erwartungsabfrage, gut für große Gruppen geeignet. Fördert lebhafte [[Kommunikation]], bezieht auch die Zurückhaltenden ein, erweitert das Repertoire des Trainers, bringt verschiedene Standpunkte zu Tage und bietet viele Anknüpfungspunkte für konträre Diskussionen.  "}</data>
[>img(43%,auto)[Reiche Ernte|http://home.pages.at/pibuk/verschiedenes/ernte2.jpg]]
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Reiche Ernte","abstract") </script>

!Reiche Ernte
<script> return "<<tiddler [[Reiche Ernte##Overview]]>>" </script> 

!Objectives
* Erwartungsabfrage

!Timing

!Audience
Group

!Materials
* bunte Karten

!Procedure
Die Teilnehmer bilden Dreiergruppen (oder größere Gruppen) mit den Nachbarn. Jede Gruppe soll möglichst viele Assoziationen zu einem Wort (das Thema in Kurzform) aufschreiben. Dazu bekommt jede Gruppe mehrere bunte Karten, auf denen jeweils ein Buchstabe des Wortes steht.
Was fällt nun der Gruppe zu den einzelnen Buchstaben ein? Zehn Minuten Zeit, um das notieren.

Nun fragt der Trainer bzw. die Trainerin jeden Buchstaben ab und schreibt die gesammelten Begriffe untereinander oder in eine Wolke, mit verschiedenfarbigen Folienstiften, auf eine Overheadfolie, auf der anfangs nur das bewusste Wort steht. So kristallisieren sich deutlich die Erwartungen, Assoziationen und unterschiedlichen Standpunkte der einzelnen Teilnehmer heraus. Das Eis ist schnell gebrochen und genug [[Ideen|Ideenmanagement]] - eine reiche Ernte - für eine teilnehmerorientierten Zugang vorhanden.

!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Reiche+Ernte+%28mw%29]]
<data>{"abstract":"[[Reizwortanalyse]], erst einmal auf andere Gedanken kommen, ehe man sich an die Lösung eines Problems macht - so könnte man den Ablauf dieser [[Kreativitätstechnik|Kreativitätstechniken]] kurz beschreiben. Eng verwandt mit [[Random Input Methode]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 20% auto title http://www.geometrika.de/Bilder/chili.jpg>>
<<showtoc>>

!Overview
<script> return DataTiddler.getData("Reizwortanalyse","abstract") </script>

!Reizwortanalyse
<script> return "<<tiddler [[Reizwortanalyse##Overview]]>>" </script> 

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Die Teilnehmer suchen sich ein Wort, das nichts mit dem zu lösenden [[Problem]] zu tun hat und aus einem anderen Bereich kommt. 
Dann wird in ca. 5 Minuten alles zusammengeschrieben, was den Teilnehmern zu diesem Begriff einfällt: 
* Wie sieht das Objekt aus? 
* Welche Eigenschaften hat es? 
* Wie ist es konstruiert? 
* Gibt es besondere Fähigkeiten? 
Diese Sammlung wird jetzt wieder mit dem Anfangsproblem zusammengeführt.

!Beispiel
Reizwort „Fenster”. Mögliche Ideen: Den Kunden das eigene Arbeiten „sichtbar” machen, z.B. durch eine Veranstaltung in der eigenen Firma. Einladungen in Fensterform „Schauen Sie rein…”. 
Dies wird mit verschiedenen Begriffen durchgespielt.

!Debriefing

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.rhetorik.ch/Kreativitaet/kreativ-pent.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.rhetorik.ch/Kreativitaet/rhetorik.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.fh-nb.de/lu/leitfaden/images/m44.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.4managers.de/typo3temp/pics/8f37daa486.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.siegfried-seibert.de/uploads/Wissensspeicher/Suchfeldmatrix.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.4managers.de/typo3temp/pics/ee72cdb5a7.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.siegfried-seibert.de/uploads/Wissensspeicher/Produktideenfindung.gif>>
---- }}} 
===


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Reizwortanalyse+%28ak%29]]
/***
|Name|RelatedTagsPlugin|
|Source|http://jnthnlstr.googlepages.com/RelatedTagsPlugin.html|
|Version||
|Author|JonLister|
|License||
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description|Gives you a list of tags that appear on tiddlers tagged with a particular tiddler.|
***/
//{{{
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;
}
//}}}
/***
|Name|RelatedTiddlersPlugin|
|Source|http://www.TiddlyTools.com/#RelatedTiddlersPlugin|
|Version|1.1.8|
|Author|[[Eric Shulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires|InlineJavascriptPlugin, NestedSlidersPlugin, StyleSheetShortcuts|
|Description|starting from a selected tiddler, display a list and/or tree of linked or transcluded tiddlers|
!!!!!Usage
<<<
Starting from a specified tiddler (default=current tiddler), {{{<<relatedTiddlers>>}}} recursively follows the internal links[] data to find all other tiddlers that are related to it by linking (e.g., {{{[[TiddlerName]]}}}) or used as macro parameter (e.g., {{{<<tiddler TiddlerName>>}}}).

The results can be displayed as a simple flat list of related tiddler titles, or as an indented tree diagram that shows the specific connections between the related tiddlers, and can be helpful for identifying clusters of interdependent tiddlers or simply generating an on-the-fly site map for quick discovery and navigation through complex or unfamiliar document content. 
//{{{
<<relatedTiddlers TiddlerName hideform "exclude list">>
//}}}
*''TiddlerName'' (optional)<br>specifies the starting tiddler (and hides the 'select a tiddler' form controls).  Use keyword ''here'' to specify the current tiddler.
*''hideform'' (optional)<br>when present, suppress display of 'select tiddler' droplist and buttons.
*''"exclude list"'' (optional)<br>space-separated list of tiddlers whose links should not be followed.  Use quotes or double-square brackets to ensure list is processed as a single parameter.
The plugin also defines two functions that can be called externally (from other plugins or scripts) to generate and retrieve either a list of links or a formatted "tree view":
>{{{var list=config.macros.relatedTiddlers.getList(start,exclude,callback);}}}
>{{{var tree=config.macros.relatedTiddlers.getTree(start,exclude,callback);}}}
where ''start'' and 'exclude'' are the same as the macro parameters described above, plus an optional reference to a callback function that allows you to generate an alternative list/tree, based on application-specific data (such tiddler references contained in tags or custom fields), rather than using the default "links" list, like this:
>{{block{
{{{
window.myCallback=function(tiddler) {
	var list=[];
	// … fill the list based on the specified tiddler …
	return list;
}
}}}
}}}
The function takes a tiddler object as input, and returns a list of tiddler titles that are //directly// linked (or otherwise related) to that specific tiddler.  {{{getList()}}} and {{{getTree()}}} then use this information to find all the //indirect// connections between tiddlers to produce the list or tree output.
<<<
!!!!!Configuration
<<<
<<option chkRelatedTiddlersShowList>> show list display
<<option chkRelatedTiddlersShowTree>> show tree display
<<option chkRelatedTiddlersZoom>> enable autosizing of tree display //(aka, "zoom" or "shrink-and-grow")//
don't follow links contained in these tiddlers: <<option txtRelatedTiddlersExclude>>
<<<
!!!!!Examples
<<<
{{smallform{<<relatedTiddlers>>}}}

Using getList()/getTree() public API from other scripts/plugins:
><script show>
	var start="About";
	var exclude=config.options.txtRelatedTiddlersExclude.readBracketedList();
	var callback=null;
	var list=config.macros.relatedTiddlers.getList(start,exclude,callback);
	var tree=config.macros.relatedTiddlers.getTree(start,exclude,callback);
	return "There are "+list.length+" tiddlers related to [["+start+"]]...\n"+tree;
</script>
<<<
!!!!!Revisions
<<<
2009.09.29 [1.1.8] in findRelatedTiddlers(), fixed recursion when using non-null callback
2007.11.11 [1.1.7] in findRelatedTiddlers(), refactored into separate getlinks(),<br>and added param for optional callback function that can be used to return an alternative set of links.<br>Also added API functions, getTree() and getList() for use by other scripts
2007.07.13 [1.1.6] performance optimizations, more code cleanup
2007.07.10 [1.1.5] extensive code cleanup
2007.07.08 [1.1.0] converted from inline script
2007.06.29 [1.0.0] started (as inline script)
<<<
!!!!!Code
***/
//{{{
version.extensions.RelatedTiddlersPlugin={major: 1, minor: 1, revision: 8, date: new Date(2009,9,29)};

// initialize 'autozoom' and 'exclude' tree options (defaults are not to zoom, and to follow all links)
if (config.options.chkRelatedTiddlersZoom===undefined)
	config.options.chkRelatedTiddlersZoom=false;
if (config.options.txtRelatedTiddlersExclude===undefined)
	config.options.txtRelatedTiddlersExclude='GettingStarted DefaultTiddlers';
if (config.options.chkRelatedTiddlersShowList===undefined)
	config.options.chkRelatedTiddlersShowList=true;
if (config.options.chkRelatedTiddlersShowTree===undefined)
	config.options.chkRelatedTiddlersShowTree=false;

config.macros.relatedTiddlers={
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {

		// create form with unique DOM element ID (using current timestamp)... permits multiple form instances
		var now=new Date().getTime();
		var span=createTiddlyElement(place,"span");
		span.innerHTML=this.form.format(["relatedTiddlers_form"+now]);
		var form=span.getElementsByTagName("form")[0]; // find form that we just created
		var target=createTiddlyElement(span,"div"); // create target block in which generated output will be placed

		// initialize droplist contents (all tiddlers except hidden ones)
		var tids=store.getTiddlers('title','excludeLists');
		for (i=0; i<tids.length; i++) form.list.options[form.list.options.length]=new Option(tids[i].title,tids[i].title,false,false);

		// initialize exclude field (space-separated list)
		if (config.options.txtRelatedTiddlersExclude) form.exclude.value=config.options.txtRelatedTiddlersExclude;

		// set starting tiddler, form display, and/or exclude list from macro params (if present) and then show the results!
		var root="";
		var hide=false;
		var exclude=config.options.txtRelatedTiddlersExclude;
		if (params[0]) root=params[0]; // TiddlerName
		if (params[1]) hide=(params[1].toLowerCase()=="hideform"); // keyword: "hideform" or "showform" (default)
		if (params[2]) exclude=params[2]; // list of tiddlers whose links should not be followed
		if (root=="here") { var tid=story.findContainingTiddler(place); if (tid) root=tid.getAttribute("tiddler"); }
		if (store.tiddlerExists(root)) {
			// NOTE:  don't hide form when running IE, where putting initial focus on hidden form creates an error
			if (!config.browser.isIE) form.style.display=hide?"none":"block"; // show/hide the controls
			form.list.value=root; // set the root
			form.exclude.value=exclude; // set 'exclude' field
			form.get.click(); // DISPLAY INITIAL RESULTS (if tiddler is selected)
		}
	},
	form:
		"<form id='%0' action='javascript:;' style='display:inline;margin:0;padding:0;' onsubmit='return false'><!-- \
		--><span class='fine' style='float:left;vertical-align:bottom;width:39.5%;'><i>find all tiddlers related to:</i></span><!-- \
		--><span class='fine' style='float:left;vertical-align:bottom;'><i>exclude links contained in:</i></span><!-- \
		--><div style='clear:both'><!-- \
		--><select name=list size=1 style='width:39.5%' onchange='this.form.get.click()'><!-- \
		--><option value=''>select a tiddler...</option><!-- \
		--></select><!-- \
		--><input type='text' option='txtRelatedTiddlersExclude' name='exclude' value='' style='width:40%' \
			title='enter the names of tiddlers whose links should NOT be followed' \
			onkeyup='if (event.keyCode==13) { this.blur(); this.form.get.click(); }'  \
			onchange='config.options[this.getAttribute(\"option\")]=this.value;saveOptionCookie(this.getAttribute(\"option\"));'><!-- \
		--><input type=button name=get value='get related' style='width:10%'  \
			onclick='config.macros.relatedTiddlers.show(this.form,this.form.nextSibling);'><!-- \
		--><input type=button name=done value='done' disabled style='width:10%'  \
			onclick='this.form.list.selectedIndex=0; this.form.get.click();'><!-- \
		--></div><!-- \
		--></form>",
	styles:
		".relatedTiddlers blockquote \
			{ border-left:1px dotted #999; margin:0 25px; padding-left:.5em; font-size:%0%; line-height:115%; } \
		.relatedTiddlers .borderleft \
			{ margin:0; padding:0; margin-left:1em; border-left:1px dotted #999; padding-left:.5em; } \
		.relatedTiddlers .fourcolumns \
			{ display:block; -moz-column-count:4; -moz-column-gap:1em; -moz-column-width:25%} \
		.relatedTiddlers a \
			{ font-weight:normal; } \
		.relatedTiddlers .bold, .relatedTiddlers .bold a \
			{ font-weight:bold; } \
		.relatedTiddlers .floatright \
			{ float:right; } \
		.relatedTiddlers .clear \
			{ clear:both; }	",
	toggleform:
		"{{floatright{<html><a href='javascript:;' class='button' title='show/hide tiddler selection droplist and buttons' \
		onclick='var here=story.findContainingTiddler(this); var tid=here?here.getAttribute(\"tiddler\"):\"\"; \
			var f=document.getElementById(\"%0\"); var hide=(f.style.display!=\"none\"); \
			f.style.display=hide?\"none\":\"inline\"; this.innerHTML=hide?\"show form\":\"hide form\"; return false;'>%1</a></html>}}}",
	treecheck:
		"{{floatright{@@display:none;<<option chkRelatedTiddlersShowTree>>@@<html><a href='javascript:;' class='button' onclick='this.parentNode.previousSibling.firstChild.click(); return false;'>tree view</a></html>}}}",
	tree:
		"{{clear{\n----\n}}} \
		{{floatright small{<<option chkRelatedTiddlersZoom>>autosize tree display}}} \
		{{fine{\n''tiddlers linked from or included by'' [[%0]]\n}}}%1",
	listcheck:
		"{{floatright{@@display:none;<<option chkRelatedTiddlersShowList>>@@<html><a href='javascript:;' class='button' onclick='this.parentNode.previousSibling.firstChild.click(); return false;'>list view</a></html>}}}",
	list:
		"{{clear{\n----\n}}} \
		{{fine{\n''tiddlers containing links to'' [[%0]]\n}}} \
		{{small fourcolumns borderleft{\n%1}}} \
		{{fine{\n''tiddlers linked from or included by'' [[%0]]\n}}} \
		{{borderleft{\n \
			{{fine{\n''bold''=//direct links//, plain=//indirect links//, ''...''=//links not followed//}}} \
			{{small fourcolumns{\n%2}}} \
		}}}",
	skipped:
		"<html><span title='links from %0 have NOT been followed'>...</span></html>",
	mouseover: function(ev) {
		this.saveSize=this.style.fontSize;
		this.style.fontSize='100%';
		this.style.borderLeftStyle='solid';
	},
	mouseout: function(ev) {
		this.style.fontSize=this.saveSize;
		this.style.borderLeftStyle='dotted';
	},
	findRelatedTiddlers: function(tid,tids,treeout,level,exclude,callback) { 
		// recursively build list of related tids (links and includes FROM the root tiddler) and generate treeview output
		var t=store.getTiddler(tid);
		if (!t || tids.contains(tid)) return tids; // tiddler already in results (or missing tiddler)... just return current results
		tids.push(t.title); // add tiddler to results
		var skip=exclude && exclude.contains(tid);
		treeout.text+=level+"[["+tid+"]]"+(skip?this.skipped.format([tid]):"")+"\n";
		if (skip) return tids; // branch is pruned… don't follow links
		var links=callback?callback(t):this.getLinks(t);
		for (var i=0; i<links.length; i++) tids=this.findRelatedTiddlers(links[i],tids,treeout,level+">",exclude,callback);
		return tids;
	},
	getLinks: function(tiddler) {
		if (!tiddler.linksUpdated) tiddler.changed();
		return tiddler.links;
	},
	getTree: function(start,exclude,callback) {
		// get related tiddlers and generate blockquote-indented tree output
		var list=[]; var tree={text:""}; var level="";
		list=this.findRelatedTiddlers(start,list,tree,level,exclude,callback);
		return tree.text;
	},
	getList: function(start,exclude,callback) {
		// get related tiddlers and generate blockquote-indented tree output
		var list=[]; var tree={text:""}; var level="";
		list=this.findRelatedTiddlers(start,list,tree,level,exclude,callback);
		return list;
	},
	show: function(form,target) {
		removeChildren(target); form.done.disabled=true; // clear any existing output and disable 'done' button
		var start=form.list.value; if (!start.length) return; // get selected starting tiddler.  If blank value (heading), do nothing

		// get related tiddlers and generate blockquote-indented tree output
		var rels=[]; var treeview={text:""}; var level="";
		var exclude=config.options.txtRelatedTiddlersExclude.readBracketedList();
		var rels=this.findRelatedTiddlers(start,rels,treeview,level,exclude);
		rels.shift(); // remove self from list
		rels.sort(); // sort titles alphabetically

		// generate list output
		var tid=store.getTiddler(start);
		var relsview=""; for (t=0; t<rels.length; t++) {
			relsview+=tid.links.contains(rels[t])?("{{bold{[["+rels[t]+"]]}}}"):("[["+rels[t]+"]]");
			if (exclude && exclude.contains(rels[t])) relsview+=this.skipped.format([rels[t]]);
			relsview+="\n";
		}
	
		// get references TO the root tiddler, add to related tiddlers and generate refsview output
		var refs=[]; var referers=store.getReferringTiddlers(start);
		for(var r=0; r<referers.length; r++)
			if(referers[r].title!=start && !referers[r].tags.contains("excludeLists")) refs.push(referers[r].title);
		var refcount=refs.length; var relcount=rels.length; // remember individual counts
		for (var r=0; r<refs.length; r++) rels.pushUnique(refs[r]); // combine lists without duplicates
		var total=rels.length; // get combined total
		var refsview="[["+refs.sort().join("]]\n[[")+"]]\n";
	
		// set custom blockquote styles for treeview
		setStylesheet(this.styles.format([config.options.chkRelatedTiddlersZoom?80:100]),'relatedTiddlers_styles');

		// assemble and render output
		var summary=(total?(total+" tiddler"+(total==1?" is":"s are")):"There are no tiddlers")+" related to: [["+start+"]]";
		var list=this.list.format([start,refsview.length?refsview:"//none//",relsview.length?relsview:"//none//"]);
		var tree=this.tree.format([start,treeview.text]);
		var toggle=this.toggleform.format([form.id,(form.style.display=='none'?'show form':'hide form')]);
		var sep="{{floatright{ | }}}";
		var showList=total && config.options.chkRelatedTiddlersShowList;
		var showTree=relcount && config.options.chkRelatedTiddlersShowTree;
		var out="{{relatedTiddlers{"+toggle+(relcount?sep+this.treecheck:"")+(total?sep+this.listcheck:"")+summary+(showList?list:"")+(showTree?tree:"")+"}}}";
		wikify(out,target);
		form.done.disabled=false; // enable 'done' button

		// add mouseover/mouseout handling to blockquotes (for autosizing)
		var blocks=target.getElementsByTagName("blockquote");
		for (var b=0; b<blocks.length; b++)
			{ blocks[b].onmouseover=this.mouseover; blocks[b].onmouseout=this.mouseout; }

		// add side-effect to checkboxes so that display is refreshed when a checkbox state is changed
		var checks=target.getElementsByTagName("input");
		for (var c=0; c<checks.length; c++) {
			if (checks[c].type.toLowerCase()!="checkbox") continue;
			checks[c].coreClick=checks[c].onclick; // save standard click handler
			checks[c].formID=form.id; // link checkbox with correponding form
			checks[c].onclick=function() { this.coreClick.apply(this,arguments); document.getElementById(this.formID).get.click(); }
		}
	}
}
//}}}
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.doughroller.net/wp-content/uploads/2008/03/remember-the-future.jpg>>/%
http://harvardbusiness.org/products/4389-PDF-ENG/thumbnail/thumbnail.gif%/
<<showtoc>>
!Overview
[[Remember the Future]], a kind of [[Innovation Game]]: Understand your customers' definition of success by seeing how they shape their future.

!Remember the Future
<script> return "<<tiddler [[Remember the Future##Overview]]>>" </script>
Participants imagine a time in the future when they will have been using the product almost continuously between now and then.

!Objectives
* Understand your customers' definition of success; 
* Plan a project, sprint.

!Timing
Depends on system/feature complexity: 90min - 1day workshop

!Materials
* whiteboard
* sticky note cards


!Procedure
Participants imagine a time in the future when they will have been using the product almost continuously between now and then.
(“Future” may be expressed in months, years, or some other time frame.) Participants then write down exactly what the product will have done to make them happy, successful, rich, safe, secure, etc.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.intraqq.com/assets/images/innovation.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.ipod.org.uk/reality/reality_dilbert.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://leadinganswers.typepad.com/leading_answers/images/2007/03/22/rtf_2.jpg>> /%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
* [[Video: Remember the Future]]
* [[Definition of Done]]
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Innovation games: Who says work can't be fun?| http://go.techtarget.com/r/12320138/4201481]]
* http://en.wikipedia.org/wiki/Innovation_game
* http://www.innovationsgames.com

!Further Reading
<<tiddler [[Innovation Game##Further Reading]]>>
/***
|Name|ReminderPlugin|
|Version|2.3.10 (Jun 28, 2007)|
|Source|http://remindermacros.tiddlyspot.com|
|Author|Jeremy Sheeley(pop1280 [at] excite [dot] com)<<br>>Maintainer: simon.baird@gmail.com|
|Licence|[[BSD open source license]]|
|Macros|reminder, showreminders, displayTiddlersWithReminders, newReminder|
|TiddlyWiki|2.0+|
|Browser|Firefox 1.0.4+; InternetExplorer 6.0|

!Description
This plugin provides macros for tagging a date with a reminder.  Use the {{{reminder}}} macro to do this.  The {{{showReminders}}} and {{{displayTiddlersWithReminder}}} macros automatically search through all available tiddlers looking for upcoming reminders.

!Installation
* Create a new tiddler in your tiddlywiki titled ReminderPlugin and give it the {{{systemConfig}}} tag.  The tag is important because it tells TW that this is executable code.
* Double click this tiddler, and copy all the text from the tiddler's body.
* Paste the text into the body of the new tiddler in your TW.
* Save and reload your TW.
* You can copy some examples into your TW as well.  See [[Simple examples]], [[Holidays]], [[showReminders]] and [[Personal Reminders]]

!Syntax:
|>|See [[ReminderSyntax]] and [[showRemindersSyntax]]|

!Revision history
* v2.3.10 (Jun 28, 2007)
** Removed window.story = window backwards compatibility hacks since they were breaking TW 2.2
* v2.3.9 (Apr 26, 2007)
** allow bracketed list format in tags param lets you use tags with spaces
* v2.3.8 (Mar 9, 2006)
**Bug fix: A global variable had snuck in, which was killing FF 1.5.0.1
**Feature: You can now use TIDDLER and TIDDLERNAME in a regular reminder format
* v2.3.6 (Mar 1, 2006)
**Bug fix: Reminders for today weren't being matched sometimes.
**Feature:  Solidified integration with DatePlugin and CalendarPlugin
**Feature:  Recurring reminders will now return multiple hits in showReminders and the calendar.
**Feature:  Added TIDDLERNAME to the replacements for showReminders format, for plugins that need the title without brackets.
* v2.3.5 (Feb 8, 2006)
**Bug fix: Sped up reminders lots.  Added a caching mechanism for reminders that have already been matched.
* v2.3.4 (Feb 7, 2006)
**Bug fix: Cleaned up code to hopefully prevent the Firefox 1.5.0.1 crash that was causing lots of plugins 
to crash Firefox.  Thanks to http://www.jslint.com
* v2.3.3 (Feb 2, 2006)
**Feature: newReminder now has drop down lists instead of text boxes.
**Bug fix:  A trailing space in a title would trigger an infinite loop.
**Bug fix:  using tag:"birthday !reminder" would filter differently than tag:"!reminder birthday"
* v2.3.2 (Jan 21, 2006)
**Feature: newReminder macro, which will let you easily add a reminder to a tiddler. Thanks to [[EricShulman]] (http://www.elsdesign.com) for the code to do this.
** Bug fix: offsetday was not working sometimes
** Bug fix: when upgrading to 2.0, I included a bit to exclude tiddlers tagged with excludeSearch.  I've reverted back to searching through all tiddlers
* v2.3.1 (Jan 7, 2006)
**Feature: 2.0 compatibility
**Feature AlanH sent some code to make sure that showReminders prints a message if no reminders are found.
* v2.3.0 (Jan 3, 2006)
** Bug Fix:  Using "Last Sunday (-0)" as a offsetdayofweek wasn't working.
** Bug Fix:  Daylight Savings time broke offset based reminders (for example year:2005 month:8 day:23 recurdays:7 would match Monday instead of Tuesday during DST.

!Code
***/
//{{{

//============================================================================
//============================================================================
//           ReminderPlugin
//============================================================================
//============================================================================

version.extensions.ReminderPlugin = {major: 2, minor: 3, revision: 8, date: new Date(2006,3,9), source: "http://remindermacros.tiddlyspot.com/"};

//============================================================================
// Configuration
// Modify this section to change the defaults for 
// leadtime and display strings
//============================================================================

config.macros.reminders = {};
config.macros["reminder"] = {};
config.macros["newReminder"] = {};
config.macros["showReminders"] = {};
config.macros["displayTiddlersWithReminders"] = {};

config.macros.reminders["defaultLeadTime"] = [0,6000];
config.macros.reminders["defaultReminderMessage"] = "DIFF: TITLE on DATE ANNIVERSARY";
config.macros.reminders["defaultShowReminderMessage"] = "DIFF: TITLE on DATE ANNIVERSARY -- TIDDLER";
config.macros.reminders["defaultAnniversaryMessage"] = "(DIFF)";
config.macros.reminders["untitledReminder"] = "Untitled Reminder";
config.macros.reminders["noReminderFound"] = "Couldn't find a match for TITLE in the next LEADTIMEUPPER days."
config.macros.reminders["todayString"] = "Today";
config.macros.reminders["tomorrowString"] = "Tomorrow";
config.macros.reminders["ndaysString"] = "DIFF days";
config.macros.reminders["emtpyShowRemindersString"] = "There are no upcoming events";


//============================================================================
//  Code
// You should not need to edit anything 
// below this.  Make sure to edit this tiddler and copy 
// the code from the text box, to make sure that 
// tiddler rendering doesn't interfere with the copy 
// and paste.
//============================================================================

//this object will hold the cache of reminders, so that we don't
//recompute the same reminder over again.
var reminderCache = {};

config.macros.showReminders.handler = function showReminders(place,macroName,params)
{
   var now = new Date().getMidnight();
   var paramHash = {};
   var leadtime = [0,14];
   paramHash = getParamsForReminder(params);
   var bProvidedDate = (paramHash["year"] != null) || 
			(paramHash["month"] != null) || 
			(paramHash["day"] != null) || 
			(paramHash["dayofweek"] != null);
   if (paramHash["leadtime"] != null)
   {
      leadtime = paramHash["leadtime"];
      if (bProvidedDate)
      {
         //If they've entered a day, we need to make 
         //sure to find it.  We'll reset the 
         //leadtime a few lines down.
         paramHash["leadtime"] = [-10000, 10000];
      }
   }
   var matchedDate = now;
   if (bProvidedDate)
   {
      var leadTimeLowerBound = new Date().getMidnight().addDays(paramHash["leadtime"][0]);
      var leadTimeUpperBound = new Date().getMidnight().addDays(paramHash["leadtime"][1]);
      matchedDate = findDateForReminder(paramHash, new Date().getMidnight(), leadTimeLowerBound, leadTimeUpperBound); 
   }

   var arr = findTiddlersWithReminders(matchedDate, leadtime, paramHash["tag"], paramHash["limit"]);
   var elem = createTiddlyElement(place,"span",null,null, null);
   var mess = "";
   if (arr.length == 0)
   {
      mess += config.macros.reminders.emtpyShowRemindersString; 
   }
   for (var j = 0; j < arr.length; j++)
   {
      if (paramHash["format"] != null)
      {
         arr[j]["params"]["format"] = paramHash["format"];
      }
      else
      {
         arr[j]["params"]["format"] = config.macros.reminders["defaultShowReminderMessage"];
      }
      mess += getReminderMessageForDisplay(arr[j]["diff"], arr[j]["params"], arr[j]["matchedDate"], arr[j]["tiddler"]);
      mess += "\n";
   }
   wikify(mess, elem, null, null);
};


config.macros.displayTiddlersWithReminders.handler = function displayTiddlersWithReminders(place,macroName,params)
{
   var now = new Date().getMidnight();
   var paramHash = {};
   var leadtime = [0,14];
   paramHash = getParamsForReminder(params);
   var bProvidedDate = (paramHash["year"] != null) || 
			(paramHash["month"] != null) || 
			(paramHash["day"] != null) || 
			(paramHash["dayofweek"] != null);
   if (paramHash["leadtime"] != null)
   {
      leadtime = paramHash["leadtime"];
      if (bProvidedDate)
      {
         //If they've entered a day, we need to make 
         //sure to find it.  We'll reset the leadtime 
         //a few lines down.
         paramHash["leadtime"] = [-10000,10000];
      }
   }
   var matchedDate = now;
   if (bProvidedDate)
   {
      var leadTimeLowerBound = new Date().getMidnight().addDays(paramHash["leadtime"][0]);
      var leadTimeUpperBound = new Date().getMidnight().addDays(paramHash["leadtime"][1]);
      matchedDate = findDateForReminder(paramHash, new Date().getMidnight(), leadTimeLowerBound, leadTimeUpperBound); 
   }
   var arr = findTiddlersWithReminders(matchedDate, leadtime, paramHash["tag"], paramHash["limit"]);
   for (var j = 0; j < arr.length; j++)
   {
      displayTiddler(null, arr[j]["tiddler"], 0, null, false, false, false);
   }
};

config.macros.reminder.handler = function reminder(place,macroName,params)
{
   var dateHash = getParamsForReminder(params);
   if (dateHash["hidden"] != null)
   {
      return;
   }
   var leadTime = dateHash["leadtime"];
   if (leadTime == null)
   {
      leadTime = config.macros.reminders["defaultLeadTime"]; 
   }
   var leadTimeLowerBound = new Date().getMidnight().addDays(leadTime[0]);
   var leadTimeUpperBound = new Date().getMidnight().addDays(leadTime[1]);
   var matchedDate = findDateForReminder(dateHash, new Date().getMidnight(), leadTimeLowerBound, leadTimeUpperBound);
   if (!store.getTiddler) 
   {
      store.getTiddler=function(title) {return this.tiddlers[title];};
   }
   var title = window.story.findContainingTiddler(place).id.substr(7);
   if (matchedDate != null)
   {
      var diff = matchedDate.getDifferenceInDays(new Date().getMidnight());
      var elem = createTiddlyElement(place,"span",null,null, null);
      var mess = getReminderMessageForDisplay(diff, dateHash, matchedDate, title);
      wikify(mess, elem, null, null);
   }
   else
   {
      createTiddlyElement(place,"span",null,null, config.macros.reminders["noReminderFound"].replace("TITLE", dateHash["title"]).replace("LEADTIMEUPPER", leadTime[1]).replace("LEADTIMELOWER", leadTime[0]).replace("TIDDLERNAME", title).replace("TIDDLER", "[[" + title + "]]") );
   }
};

config.macros.newReminder.handler = function newReminder(place,macroName,params)
{
  var today=new Date().getMidnight();
  var formstring = '<html><form>Year: <select name="year"><option value="">Every year</option>';
  for (var i = 0; i < 5; i++)
  {
    formstring += '<option' + ((i == 0) ? ' selected' : '') + ' value="' + (today.getFullYear() +i) + '">' + (today.getFullYear() + i) + '</option>';
  }
  formstring += '</select>&nbsp;&nbsp;Month:<select name="month"><option value="">Every month</option>';
  for (i = 0; i < 12; i++)
  {
    formstring += '<option' + ((i == today.getMonth()) ? ' selected' : '') + ' value="' + (i+1) + '">' + config.messages.dates.months[i] + '</option>';
  }
  formstring += '</select>&nbsp;&nbsp;Day:<select name="day"><option value="">Every day</option>';
  for (i = 1; i < 32; i++)
  {
    formstring += '<option' + ((i == (today.getDate() )) ? ' selected' : '') + ' value="' + i + '">' + i + '</option>';
  }

formstring += '</select>&nbsp;&nbsp;Reminder Title:<input type="text" size="40" name="title" value="please enter a title" onfocus="this.select();"><input type="button" value="ok" onclick="addReminderToTiddler(this.form)"></form></html>';

  var panel = config.macros.slider.createSlider(place,null,"New Reminder","Open a form to add a new reminder to this tiddler");
  wikify(formstring ,panel,null,store.getTiddler(params[1]));
};

// onclick: process input and insert reminder at 'marker'
window.addReminderToTiddler = function(form) {
   if (!store.getTiddler) 
   {
      store.getTiddler=function(title) {return this.tiddlers[title];};
   }
   var title = window.story.findContainingTiddler(form).id.substr(7);
   var tiddler=store.getTiddler(title);
  var txt='\n<<reminder ';
  if (form.year.value != "")
    txt += 'year:'+form.year.value + ' ';
  if (form.month.value != "")
    txt += 'month:'+form.month.value + ' ';
  if (form.day.value != "")
    txt += 'day:'+form.day.value + ' ';
  txt += 'title:"'+form.title.value+'" ';
  txt +='>>';
   tiddler.set(null,tiddler.text + txt);
   window.story.refreshTiddler(title,1,true);
   store.setDirty(true);
};

function hasTag(tiddlerTags, tagFilters)
{
  //Make sure we respond well to empty tiddlerTaglists or tagFilterlists
  if (tagFilters.length==0 || tiddlerTags.length==0)
  {
    return true;
  }

  var bHasTag = false;
  
  /*bNoPos says: "'till now there has been no check using a positive filter"
     Imagine a filterlist consisting of 1 negative filter:
         If the filter isn't matched, we want hasTag to be true.
         Yet bHasTag is still false ('cause only positive filters cause bHasTag to change)
         
     If no positive filters are present bNoPos is true, and no negative filters are matched so we have not returned false
         Thus: hasTag returns true.
      
      If at any time a positive filter is encountered, we want at least one of the tags to match it, so we turn bNoPos to false, which
      means bHasTag must be true for hasTag to return true*/
  var bNoPos=true;
  
for (var t3 = 0; t3 < tagFilters.length; t3++)
  {
      for(var t2=0; t2<tiddlerTags.length; t2++)
      {
           if (tagFilters[t3].length > 1 && tagFilters[t3].charAt(0) == '!') 
           {
              if (tiddlerTags[t2] == tagFilters[t3].substring(1))
              {
                 //If at any time a negative filter is matched, we return false
                  return false;
              }
           }
           else 
           {
              if (bNoPos)
              {
                 //We encountered the first positive filter
                 bNoPos=false;
              }
              if (tiddlerTags[t2] == tagFilters[t3])
              {
                  //A positive filter is matched. As long as no negative filter is matched, hasTag will return true
                  bHasTag=true;
              }
           }
        }
    }
    return (bNoPos || bHasTag);
};

//This function searches all tiddlers for the reminder  //macro.  It is intended that other plugins (like //calendar) will use this function to query for 
//upcoming reminders.
//The arguments to this function filter out reminders //based on when they will fire.
//
//ARGUMENTS:
//baseDate is the date that is used as "now".  
//leadtime is a two element int array, with leadtime[0] 
//         as the lower bound and leadtime[1] as the
//         upper bound.  A reasonable default is [0,14]
//tags is a space-separated list of tags to use to filter 
//         tiddlers.  If a tag name begins with an !, then 
//         only tiddlers which do not have that tag will 
//         be considered.  For example "examples holidays"  
//         will search for reminders in any tiddlers that  
//         are tagged with examples or holidays and 
//         "!examples !holidays" will search for reminders 
//         in any tiddlers that are not tagged with 
//         examples or holidays.  Pass in null to search 
//         all tiddlers.
//limit.  If limit is null, individual reminders can 
//        override the leadtime specified earlier.  
//        Pass in 1 in order to override that behavior.

window.findTiddlersWithReminders = function findTiddlersWithReminders(baseDate, leadtime, tags, limit)
{
//function(searchRegExp,sortField,excludeTag)
//   var macroPattern = "<<([^>\\]+)(?:\\*)([^>]*)>>";
   var macroPattern = "<<(reminder)(.*)>>";
   var macroRegExp = new RegExp(macroPattern,"mg");
   var matches = store.search(macroRegExp,"title","");
   var arr = [];
   var tagsArray = null;
   if (tags != null)
   {
      // tagsArray = tags.split(" ");
      tagsArray = tags.readBracketedList(); // allows tags with spaces. thanks Robin Summerhill, 4-Oct-06.
   }
   for(var t=matches.length-1; t>=0; t--)
   {
      if (tagsArray != null)
      {
         //If they specified tags to filter on, and this tiddler doesn't 
	 //match, skip it entirely.
         if ( ! hasTag(matches[t].tags, tagsArray))
         {
            continue;
         }
      }

      var targetText = matches[t].text;
      do {
         // Get the next formatting match
         var formatMatch = macroRegExp.exec(targetText);
         if(formatMatch && formatMatch[1] != null && formatMatch[1].toLowerCase() == "reminder")
         {
            //Find the matching date.
            
            var params = formatMatch[2] != null ? formatMatch[2].readMacroParams() : {};
            var dateHash = getParamsForReminder(params);
            if (limit != null || dateHash["leadtime"] == null)
            {
               if (leadtime == null)
                   dateHash["leadtime"] = leadtime;
               else
               {
                  dateHash["leadtime"] = [];
                  dateHash["leadtime"][0] = leadtime[0];
                  dateHash["leadtime"][1] = leadtime[1];
               }
            }
	    if (dateHash["leadtime"] == null)
               dateHash["leadtime"] = config.macros.reminders["defaultLeadTime"]; 
            var leadTimeLowerBound = baseDate.addDays(dateHash["leadtime"][0]);
            var leadTimeUpperBound = baseDate.addDays(dateHash["leadtime"][1]);
            var matchedDate = findDateForReminder(dateHash, baseDate, leadTimeLowerBound, leadTimeUpperBound);
            while (matchedDate != null)
            {
               var hash = {};
               hash["diff"] = matchedDate.getDifferenceInDays(baseDate);
               hash["matchedDate"] = new Date(matchedDate.getFullYear(), matchedDate.getMonth(), matchedDate.getDate(), 0, 0);
               hash["params"] = cloneParams(dateHash);
               hash["tiddler"] = matches[t].title;
               hash["tags"] = matches[t].tags;
               arr.pushUnique(hash);
	       if (dateHash["recurdays"] != null || (dateHash["year"] == null))
	       {
	         leadTimeLowerBound = leadTimeLowerBound.addDays(matchedDate.getDifferenceInDays(leadTimeLowerBound)+ 1);
                 matchedDate = findDateForReminder(dateHash, baseDate, leadTimeLowerBound, leadTimeUpperBound);
	       }
	       else matchedDate = null;
            }
         }
      }while(formatMatch);
   }
   if(arr.length > 1)  //Sort the array by number of days remaining.
   {
      arr.sort(function (a,b) {if(a["diff"] == b["diff"]) {return(0);} else {return (a["diff"] < b["diff"]) ? -1 : +1; } });
   }
   return arr;
};

//This function takes the reminder macro parameters and
//generates the string that is used for display.
//This function is not intended to be called by 
//other plugins.
 window.getReminderMessageForDisplay= function getReminderMessageForDisplay(diff, params, matchedDate, tiddlerTitle)
{
   var anniversaryString = "";
   var reminderTitle = params["title"];
   if (reminderTitle == null)
   {
      reminderTitle = config.macros.reminders["untitledReminder"];
   }
   if (params["firstyear"] != null)
   {
      anniversaryString = config.macros.reminders["defaultAnniversaryMessage"].replace("DIFF", (matchedDate.getFullYear() - params["firstyear"]));
   }
   var mess = "";
   var diffString = "";
   if (diff == 0)
   {
      diffString = config.macros.reminders["todayString"];
   }
   else if (diff == 1)
   {
      diffString = config.macros.reminders["tomorrowString"];
   }
   else
   {
      diffString = config.macros.reminders["ndaysString"].replace("DIFF", diff);
   }
   var format = config.macros.reminders["defaultReminderMessage"];
   if (params["format"] != null)
   {
      format = params["format"];
   }
   mess = format;
//HACK!  -- Avoid replacing DD in TIDDLER with the date
   mess = mess.replace(/TIDDLER/g, "TIDELER");
   mess = matchedDate.formatStringDateOnly(mess);
   mess = mess.replace(/TIDELER/g, "TIDDLER");
   if (tiddlerTitle != null)
   {
      mess = mess.replace(/TIDDLERNAME/g, tiddlerTitle);
      mess = mess.replace(/TIDDLER/g, "[[" + tiddlerTitle + "]]");
   }
   
   mess = mess.replace("DIFF", diffString).replace("TITLE", reminderTitle).replace("DATE", matchedDate.formatString("DDD MMM DD, YYYY")).replace("ANNIVERSARY", anniversaryString);
   return mess;
};

// Parse out the macro parameters into a hashtable.  This
// handles the arguments for reminder, showReminders and 
// displayTiddlersWithReminders.
window.getParamsForReminder = function getParamsForReminder(params)
{
   var dateHash = {};
   var type = "";
   var num = 0;
   var title = "";
   for(var t=0; t<params.length; t++)
   {
      var split = params[t].split(":");
      type = split[0].toLowerCase();
      var value = split[1];
      for (var i=2; i < split.length; i++)
      {
         value += ":" + split[i];
      }
      if (type == "nolinks" || type == "limit" || type == "hidden")
      {
         num = 1;
      }
      else if (type == "leadtime")
      {
         var leads = value.split("...");
         if (leads.length == 1)
         {
            leads[1]= leads[0];
            leads[0] = 0;
         }
         leads[0] = parseInt(leads[0], 10);
         leads[1] = parseInt(leads[1], 10);
         num = leads;
      }
      else if (type == "offsetdayofweek")
      {
          if (value.substr(0,1) == "-")
          {
             dateHash["negativeOffsetDayOfWeek"] = 1;
	     value = value.substr(1);
          }
          num = parseInt(value, 10);
      }
      else if (type != "title" && type != "tag" && type != "format")
      {
         num = parseInt(value, 10);
      }
      else
      {
         title = value;
         t++;
         while (title.substr(0,1) == '"' && title.substr(title.length - 1,1) != '"' && params[t] != undefined)
         {
            title += " " + params[t++];
         }
         //Trim off the leading and trailing quotes
         if (title.substr(0,1) == "\"" && title.substr(title.length - 1,1)== "\"")
         {
            title = title.substr(1, title.length - 2);
            t--;
         }
         num = title;
      }
      dateHash[type] = num;
   }
   //date is synonymous with day
   if (dateHash["day"] == null)
   {
      dateHash["day"] = dateHash["date"];
   }
   return dateHash;
};

//This function finds the date specified in the reminder 
//parameters.  It will return null if no match can be
//found.  This function is not intended to be used by
//other plugins.
window.findDateForReminder= function findDateForReminder( dateHash, baseDate, leadTimeLowerBound, leadTimeUpperBound)
{
   if (baseDate == null)
   {
     baseDate = new Date().getMidnight();
   }
   var hashKey = baseDate.convertToYYYYMMDDHHMM();
   for (var k in dateHash)
   {
      hashKey += "," + k + "|" + dateHash[k];
   }
   hashKey += "," + leadTimeLowerBound.convertToYYYYMMDDHHMM();
   hashKey += "," + leadTimeUpperBound.convertToYYYYMMDDHHMM();
   if (reminderCache[hashKey] == null)
   {
      //If we don't find a match in this run, then we will
      //cache that the reminder can't be matched.
      reminderCache[hashKey] = false;
   }
   else if (reminderCache[hashKey] == false)
   {
      //We've already tried this date and failed
      return null;
   }
   else
   {
      return reminderCache[hashKey];
   }
   
   var bOffsetSpecified = dateHash["offsetyear"] != null || 
				dateHash["offsetmonth"] != null || 
				dateHash["offsetday"] != null || 
				dateHash["offsetdayofweek"] != null || 
				dateHash["recurdays"] != null;
   
   // If we are matching the base date for a dayofweek offset, look for the base date a 
   //little further back.
   var tmp1leadTimeLowerBound = leadTimeLowerBound;  
   if ( dateHash["offsetdayofweek"] != null)
   {
      tmp1leadTimeLowerBound = leadTimeLowerBound.addDays(-6);  
   }
   var matchedDate = baseDate.findMatch(dateHash, tmp1leadTimeLowerBound, leadTimeUpperBound);
   if (matchedDate != null)
   {
      var newMatchedDate = matchedDate;
      if (dateHash["recurdays"] != null)
      {
         while (newMatchedDate.getTime() < leadTimeLowerBound.getTime())
         {
            newMatchedDate = newMatchedDate.addDays(dateHash["recurdays"]);
         }
      }
      else if (dateHash["offsetyear"] != null || 
		dateHash["offsetmonth"] != null || 
		dateHash["offsetday"] != null || 
		dateHash["offsetdayofweek"] != null)
      {
         var tmpdateHash = cloneParams(dateHash);
         tmpdateHash["year"] = dateHash["offsetyear"];
         tmpdateHash["month"] = dateHash["offsetmonth"];
         tmpdateHash["day"] = dateHash["offsetday"];
         tmpdateHash["dayofweek"] = dateHash["offsetdayofweek"];
	 var tmpleadTimeLowerBound = leadTimeLowerBound;
	 var tmpleadTimeUpperBound = leadTimeUpperBound;
	 if (tmpdateHash["offsetdayofweek"] != null)
	 {
	 	if (tmpdateHash["negativeOffsetDayOfWeek"] == 1)
		{
		   tmpleadTimeLowerBound = matchedDate.addDays(-6);
		   tmpleadTimeUpperBound = matchedDate;

		}
		else
		{
		   tmpleadTimeLowerBound = matchedDate;
		   tmpleadTimeUpperBound = matchedDate.addDays(6);
		}

	 }
	 newMatchedDate = matchedDate.findMatch(tmpdateHash, tmpleadTimeLowerBound, tmpleadTimeUpperBound);
         //The offset couldn't be matched.  return null.
         if (newMatchedDate == null)
         {
            return null;
         }
      }
      if (newMatchedDate.isBetween(leadTimeLowerBound, leadTimeUpperBound))
      {
         reminderCache[hashKey] = newMatchedDate;
         return newMatchedDate;
      }
   }
   return null;
};

//This does much the same job as findDateForReminder, but
//this one doesn't deal with offsets or recurring 
//reminders.
Date.prototype.findMatch = function findMatch(dateHash, leadTimeLowerBound, leadTimeUpperBound)
{

   var bSpecifiedYear =     (dateHash["year"] != null);
   var bSpecifiedMonth =     (dateHash["month"] != null);
   var bSpecifiedDay =     (dateHash["day"] != null);
   var bSpecifiedDayOfWeek =     (dateHash["dayofweek"] != null);
   if (bSpecifiedYear && bSpecifiedMonth && bSpecifiedDay)
   {
      return new Date(dateHash["year"], dateHash["month"]-1, dateHash["day"], 0, 0);
   }
   var bMatchedYear = !bSpecifiedYear;
   var bMatchedMonth = !bSpecifiedMonth;
   var bMatchedDay = !bSpecifiedDay;
   var bMatchedDayOfWeek = !bSpecifiedDayOfWeek;
   if (bSpecifiedDay && bSpecifiedMonth && !bSpecifiedYear && !bSpecifiedDayOfWeek)
   {

      //Shortcut -- First try this year.  If it's too small, try next year.
      var tmpMidnight = this.getMidnight();
      var tmpDate = new Date(this.getFullYear(), dateHash["month"]-1, dateHash["day"], 0,0);
      if (tmpDate.getTime() < leadTimeLowerBound.getTime())
      {
         tmpDate = new Date((this.getFullYear() + 1), dateHash["month"]-1, dateHash["day"], 0,0);
      }
      if ( tmpDate.isBetween(leadTimeLowerBound, leadTimeUpperBound))
      {
         return tmpDate;
      }
      else
      {
         return null;
      }
   }

   var newDate = leadTimeLowerBound; 
   while (newDate.isBetween(leadTimeLowerBound, leadTimeUpperBound))
   {
      var tmp = testDate(newDate, dateHash, bSpecifiedYear, bSpecifiedMonth, bSpecifiedDay, bSpecifiedDayOfWeek);
      if (tmp != null)
        return tmp;
      newDate = newDate.addDays(1);
   }
};

function testDate(testMe, dateHash, bSpecifiedYear, bSpecifiedMonth, bSpecifiedDay, bSpecifiedDayOfWeek)
{
   var bMatchedYear = !bSpecifiedYear;
   var bMatchedMonth = !bSpecifiedMonth;
   var bMatchedDay = !bSpecifiedDay;
   var bMatchedDayOfWeek = !bSpecifiedDayOfWeek;
   if (bSpecifiedYear)
   {
      bMatchedYear = (dateHash["year"] == testMe.getFullYear());
   }
   if (bSpecifiedMonth)
   {
      bMatchedMonth = ((dateHash["month"] - 1)  == testMe.getMonth() );
   }
   if (bSpecifiedDay)
   {
      bMatchedDay = (dateHash["day"] == testMe.getDate());
   }
   if (bSpecifiedDayOfWeek)
   {
      bMatchedDayOfWeek = (dateHash["dayofweek"] == testMe.getDay());
   }

   if (bMatchedYear && bMatchedMonth && bMatchedDay && bMatchedDayOfWeek)
   {
      return testMe;
   }
};

//Returns true if the date is in between two given dates
Date.prototype.isBetween = function isBetween(lowerBound, upperBound)
{
  return (this.getTime() >= lowerBound.getTime() && this.getTime() <= upperBound.getTime());
}
//Return a new date, with the time set to midnight (0000)
Date.prototype.getMidnight = function getMidnight()
{
   return new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0);
};
// Add the specified number of days to a date.
Date.prototype.addDays = function addDays(numberOfDays)
{
   return new Date(this.getFullYear(), this.getMonth(), this.getDate() + numberOfDays, 0, 0);
};
//Return the number of days between two dates.
Date.prototype.getDifferenceInDays = function getDifferenceInDays(otherDate)
{
//I have to do it this way, because this way ignores daylight savings
   var tmpDate = this.addDays(0);
   if (this.getTime() > otherDate.getTime())
   {
      var i = 0;
      for (i = 0; tmpDate.getTime() > otherDate.getTime(); i++)
      {
         tmpDate = tmpDate.addDays(-1);
      }
      return i;
   }
   else
   {
      var i = 0;
      for (i = 0; tmpDate.getTime() < otherDate.getTime(); i++)
      {
         tmpDate = tmpDate.addDays(1);
      }
      return i * -1;
   }
   return 0;
};
function cloneParams(what) {
    var tmp = {};
    for (var i in what) {
        tmp[i] = what[i];
    }
    return tmp;
}
// Substitute date components into a string
Date.prototype.formatStringDateOnly = function formatStringDateOnly(template)
{
	template = template.replace("YYYY",this.getFullYear());
	template = template.replace("YY",String.zeroPad(this.getFullYear()-2000,2));
	template = template.replace("MMM",config.messages.dates.months[this.getMonth()]);
	template = template.replace("0MM",String.zeroPad(this.getMonth()+1,2));
	template = template.replace("MM",this.getMonth()+1);
	template = template.replace("DDD",config.messages.dates.days[this.getDay()]);
	template = template.replace("0DD",String.zeroPad(this.getDate(),2));
	template = template.replace("DD",this.getDate());
	return template;
};

//}}}
/***
|Name:|RenameTagsPlugin|
|Description:|Allows you to easily rename or delete tags across multiple tiddlers|
|Version:|6.1.18|
|Date:|18-Oct-2006|
|Source:|http://mptw.tiddlyspot.com/#RenameTagsPlugin|
|Author:|[[SimonBaird]] <simon.baird@gmail.com>|
|CoreVersion:|2.1.x|
Rename a tag and you will be prompted to rename it in all its tagged tiddlers.
***/
//{{{
config.renameTags = {

	prompts: {
		rename: "Rename the tag '%0' to '%1' in %2 tidder%3?",
		remove: "Remove the tag '%0' from %1 tidder%2?"
	},

	removeTag: function(tag,tiddlers) {
		store.suspendNotifications();
		for (var i=0;i<tiddlers.length;i++) {
			store.setTiddlerTag(tiddlers[i].title,false,tag);
		}
		store.resumeNotifications();
		store.notifyAll();
	},

	renameTag: function(oldTag,newTag,tiddlers) {
		store.suspendNotifications();
		for (var i=0;i<tiddlers.length;i++) {
			store.setTiddlerTag(tiddlers[i].title,false,oldTag); // remove old
			store.setTiddlerTag(tiddlers[i].title,true,newTag);  // add new
		}
		store.resumeNotifications();
		store.notifyAll();
	},

	storeMethods: {

		saveTiddler_orig_renameTags: TiddlyWiki.prototype.saveTiddler,

		saveTiddler: function(title,newTitle,newBody,modifier,modified,tags,fields) {
			if (title != newTitle) {
				var tagged = this.getTaggedTiddlers(title);
				if (tagged.length > 0) {
					// then we are renaming a tag
					if (confirm(config.renameTags.prompts.rename.format([title,newTitle,tagged.length,tagged.length>1?"s":""])))
						config.renameTags.renameTag(title,newTitle,tagged);

					if (!this.tiddlerExists(title) && newBody == "")
						// dont create unwanted tiddler
						return null;
				}
			}
			return this.saveTiddler_orig_renameTags(title,newTitle,newBody,modifier,modified,tags,fields);
		},

		removeTiddler_orig_renameTags: TiddlyWiki.prototype.removeTiddler,

		removeTiddler: function(title) {
			var tagged = this.getTaggedTiddlers(title);
			if (tagged.length > 0)
				if (confirm(config.renameTags.prompts.remove.format([title,tagged.length,tagged.length>1?"s":""])))
					config.renameTags.removeTag(title,tagged);
			return this.removeTiddler_orig_renameTags(title);
		}

	},

	init: function() {
		merge(TiddlyWiki.prototype,this.storeMethods);
	}
}

config.renameTags.init();

//}}}
<data>{"abstract":"[[Reporter]], eine Einstiegsübung zum Kennenlernen, für fortgeschrittene und große Gruppen geeignet.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://4.bp.blogspot.com/_ICQ87LsNC0g/SWDLSC2ZLWI/AAAAAAAADYQ/1fPu7scmcxA/s400/reporter_standing.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Reporter","abstract") </script>

!Reporter
<script> return "<<tiddler [[Reporter##Overview]]>>" </script> 
Wer mit fortgeschrittenen Gruppen arbeitet, der kann die üblichen Kennenlernübungen zu Beginn kaum einsetzen. Auch in großen Gruppen ist die Gefahr groß, dass der Einstieg viel Zeit in Anspruch nimmt. 

!Objectives
* Kennenlernen
* Vorstellungsrunde 

!Timing

!Audience
Group

!Materials
* Stift und Fragebogen pro Teilnehmer

!Procedure
Bei der Übung [[Reporter]] erhalten alle Teilnehmer einen Stift und einen Fragebogen und müssen diesen Bogen möglichst rasch ausfüllen lassen. 
Dazu gehen sie im Raum umher und suchen andere Teilnehmer, die eine Frage auf dem Bogen bejahen können und dies durch ihre Unterschrift quittieren. 

Die Fragen können ernsthaft sein 
* //"Wer ist länger als 5 Jahre im Unternehmen?"//
* //"Wer hat in seinem früheren Leben mal etwas völlig anderes gelernt?"//
* //"Wer erhält mehr als 20 eMails am Tag?"//
oder witzig sein 
* //"Wer kennt einen Zungenbrecher?"//
* //"Wer hat ein 5 DM Stück bei sich?"//
* //"Wer ist Hundebesitzer?"//
Natürlich können die Fragen auch schon zum Thema gehören oder sich an tagespolitischen Themen anlehnen.

Bei großen Gruppen kann die Regeln eingeführt werden, dass jede Frage von einer anderen Person beantwortet werden muß. Es können auch kleine Aufgaben eingebaut werden (Gedicht aufsagen, ein Lied singen, eine kurze Rede halten...) 

!Debriefing
Am Ende können die Antworten vorgestellt werden, dabei dienen Fragen zu Erwartungen an das Seminar als geschickte Überleitung

!Quelle
Axel Rachow: Kennenlernen für Bekannte, Wirtschaft und Weiterbildung 2/1999, S.26-27

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Reporter+%28jt%29]]
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://www.thebuccaneer.com/art06/06-brochure520-2.jpg>>
<<showtoc>>
!Overview
[[Resort Brochure]] is an interactive game illustrating the [[flow|Scrum Flow]] of the [[Scrum framework|Scrum Methodology]].

!Resort Brochure
<<tiddler [[Resort Brochure##Overview]]>>

!Objectives
* illustrating the [[flow|Scrum Flow]] of the [[Scrum framework|Scrum Methodology]].

!Timing
30-60 min

!Materials
* Index Cards
* Supplies for each team: construction paper, glue, rulers, scissors, markers
* Magazines for clipping images
* Iteration status board (whiteboard, wall, etc.)

!Audience
Group

!Procedure
# In teams of four or more, participants must agree on a wish list for what they would like to see in a brochure for their ultimate resort. 
** Using index cards, teams must then write user stories for the brochure (e.g. //As a parent, I want a kid friendly atmosphere so that I can feel comfortable bringing children; As an owner, I want to advertise a special offer so that I can attract more vacationers;// etc.). 
** The team’s elected [[Product Owner]] must then prioritize each [[story|User Story]] by placing the cards in order of importance.
# The teams then prepare for a 12 minute [[iteration|Iteration]] (three 4 minute days) by selecting which stories they think they can accomplish in the first iteration. 
** For each selected story, the team defines [[acceptance criteria|Acceptance Criteria]] (definition of ‘done’) in order to clarify requirements and to extract tasks (e.g. //find picture of beach, write the resort name on brochure, create layout//, etc.). 
** Each task is placed on an iteration status board in the ‘Scheduled’ column and the iteration starts.
# Each day of the iteration should start with a quick Scrum meeting, where the participants move tasks over to the ‘Completed’ column and volunteer for tasks by moving them over to the ‘Active’ column. 
** Any blocked tasks are moved to the ‘Blocked’ column. 
** After the Scrum meeting, each member should start producing in accordance with the acceptance criteria until the three days and the iteration end. 
** An iteration should end with a demo of their progress and a retrospective, in which each team lists what they did well and what they can improve on for the next iteration. 
# Repeat iterations as necessary.

!Debriefing
This is a great mini-simulation of Scrum. It provides each participant with a sense of control and visibility in to all the work that is going on.

!Credits
Don ~McGreal

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
* [[Making Pamphlets: Kanban Game]]
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/resort-brochure/
<data>{"abstract":"[[Ressourcenbild]], eine Übung, die den Teammitgliedern hilft, die eigene Vielfalt und die im [[Team]] vorhandenen Fähigkeiten zu erkennen und zu nutzen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.ras-training.de/neu/coaching/aufstellungen/images/4_haende_ressourcen_400.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Ressourcenbild","abstract") </script>

!Ressourcenbild
<script> return "<<tiddler [[Ressourcenbild##Overview]]>>" </script>

!Objectives
* Erkennen der Fähigkeiten im [[Team]]
* Teambuilding

!Timing
2h workshop

!Audience
Group

!Materials
* gelbe Papierstreifen

!Procedure
Im ersten Schritt schreibt jedes Teammitglied für sich selbst mindestens sieben eigene Stärken, Fähigkeiten oder Talente auf. Anschließend bilden sich Gruppen zu vier Teilnehmern. Hier deckt jeder seine zuvor notierten Stärken auf, die anderen ergänzen oder bestärken diese.

Im dritten Schritt wählt jedes Teammitglied für sich die drei wichtigsten Stärken auf jeweils einen gelben Streifen Papier (bei größeren Gruppen nur zwei oder sogar nur eine Stärke).

Schließlich treffen sich alle wieder im Plenum im großen Kreis. In der Mitte liegt ein gelber Kreis aus Papier. Die Teilnehmer legen ihre Streifen als Strahlen der Sonne rund um den gelben Kreis und benennen sie. Auf diese Weise entsteht das Ressourcenbild des Teams.

!Debriefing
Das [[Team]] diskutiert sodann, wie es die gefundenen [[Ressourcen|Ressource]] nutzen kann und wie diese erhalten werden können.

!Quelle
[[Erika Lüthi / Hans Oberpriller: Teamentwicklung mit Diversity Management, Haupt 2009, S.132.| http://www.amazon.de/gp/product/3258076014?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3258076014]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline|http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Ressourcenbild+%28jt%29]]
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://projektmanagement.files.wordpress.com/2007/05/brainstorming.jpg>>
<<showtoc>>
!Overview
[[Retrospective Brainstorming]] is a [[brainstorming technique|Brainstorming]] to generate in the team a lot of items in a short period of time.

!Retrospective Brainstorming
<<tiddler [[Retrospective Brainstorming##Overview]]>>

!Objectives
* Every phase in a [[retrospective|Agile Retrospectives]]
* Generate as team a lot of items in a short period of time.

!Timing

!Audience
Group

!Materials
* flipchart
* index cards / sticky notes

!Procedure
The [[facilitator|Facilitator]] invites the team members to write their input (ideas, facts, emotions, etc.) on cards and to stick them on th flip chart.
Focus is on quantity //not// on quality. The other participants may ask questions for better understanding but rather not critize cards.
# Define the questions clear and explicite 
# Explain the rules of brainstorming (the more the better, no critics)
# Define the [[timebox|TimeBoxing]]  for the brainstorming
# Hand cards and pencils  to the participants
# Let the participants write their input on the cards (1 per card), and  let them stick the cards to the flipchart.
Use [[Retrospective Clustering]] to [[cluster|Clustering]] the items; use [[Dot Voting]] to prioritize.

!Debriefing

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* 
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.pui.ch/phred/automated_tag_clustering/figures/slide4.png>>
<<showtoc>>
!Overview
With [[retrospective clustering|Retrospective Clustering]] you group related items and remove duplicates.

!Retrospective Clustering
<<tiddler [[Retrospective Clustering##Overview]]>>

!Objectives
* Every phase in a [[retrospective|Agile Retrospectives]]
* Group related items and remove duplicates 

!Timing
10 min

!Audience
Group

!Materials
* flichart
* index cards / sticky notes

!Procedure
# Let the participants rearrange the cards on the flichart so they form clusters - normally by theme
# Let the participants find themes for the clusters and put additional cards with other colour as header (names) to the clusters.
# Perform [[Dot Voting]] of the clusters.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* 
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.thepeoplescube.com/images/LiveGreen_PrimeDirective.jpg>>
<<showtoc>>
!Overview
The key to a constructive successful ritual is assuring that all the participants adhere to the [[Retrospective Prime Directive]]. One of the most obvious fears people have when first trying a [[retrospective|Agile Retrospective]] is that the ritual will become a negative gripe session, interspersed with blame and counter blame.

!Retrospective Prime Directive
<<tiddler [[Retrospective Prime Directive##Overview]]>>
Also known as Starfleet General Order 1, the Prime Directive is the most important law in Starfleet, a law of noninterference. Violation of the Directive is generally considered a felony offense that often carries severe punishment unless sufficient justification can be made for the violation. 

!Objectives
* Set the Stage in a [[retrospective|Agile Retrospectives]]
* Assuring a safe environment for the project / the team
* Retrenching fear, blaming others
* Stopping gripe

!Timing
10 min

!Audience
Group

!Materials
* a flipchart Prime Directive written on

!Procedure
The Retrospective Prime Directive says: 		
//"Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand."//

# Ensemble team around flipchart.
# Read out Prime Directive 
# Ask round-robin for agreement
# In case of agreement each team member signs the chart.

!Debriefing
In case of non-agreement ask and discuss reasons.


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.stardestroyer.net/Empire/Tactics/starfleet-logo.png>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.retrospectives.com/pages/retroPrimeDirective.html
* http://en.wikipedia.org/wiki/Prime_Directive
<<wikify [>img(%0,%1)[%2|%3]] 60% auto title http://www.thekua.com/rant/wp-content/uploads/2006/03/RetrospectiveTimelineEventsSmall.jpg>>/% http://www.allofme.com/Images/hp_timeline.jpg>> %/
<<showtoc>>
!Overview
The [[retrospective timeline|Retrospective Timeline]] is a useful exercise for gaining a better understanding and a richer context for a particular retrospective.
Remember what had happened during time period in question (e.g. last sprint, project, etc.)

!Retrospective Timeline
<<tiddler [[Retrospective Timeline##Overview]]>>
This means that this exercise becomes less useful when you do retrospectives more frequently and especially useful when doing a retrospective spanning longer periods or you run retrospectives less frequently.

!Objectives
* Gather Data in a [[retrospective|Agile Retrospectives]]
* Remember what had happened during time period in question (e.g. last sprint, project, etc.)

!Timing
20 min

!Audience
Group

!Materials
* flipchart
* index cards / sticky notes

!Procedure
# Draw the timeline beginning with first day, ending with last day
# Let the participants write events they remember on index cards, stick the cards to the timeline and let them explain the cards.
Variants:
* let the participants [[dot vote|Dot Voting]] the cards.
* use coloured cards 
** to express emotions (see [[Glad, Sad, Mad]])
** to distinguish different root cause categories, e.g. "team related issues", "technical issues", and "organizational" issues.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.thekua.com/rant/wp-content/uploads/2006/03/RetrospectiveTimelineEventsSmall.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.thekua.com/rant/wp-content/uploads/2006/03/RetrospectiveTimelineFeelingsSmall.jpg>>
{{small{Optional, draw an [[Emotion Curve]] below the [[timeline|Retrospective Timeline]]: get the team to fill in how they felt about each event or how they felt in general for that period. You can try to limit them by getting them to put three dots per significant period (week/month) or perhaps one per event posted, with the idea that you want to get a general feeling for the overall morale of the team.}}}
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.thekua.com/rant/wp-content/uploads/2006/03/RetrospectiveTimelineTrendsSmall.jpg>>
{{small{Once the team has finished plotting all their points, you can then try to draw a trend through them that helps to establish a real idea of how the project went.}}}  /%
---- 
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>> %/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[A Retrospective Timeline| http://www.thekua.com/rant/category/retrospective-exercises/]]
* [[Agile Retrospective Tool - The Time Line| http://www.softwareproductdev.com/2010/04/agile-retrospective-tool-the-time-line/]]
!!Online Tools
* [[Interactives Timeline|http://www.readwritethink.org/files/resources/interactives/timeline/]]
* [[Time Glider|http://timeglider.com/]]
* [[Time Toast| http://www.timetoast.com/]]
* [[xTimeline|http://www.xtimeline.com/index.aspx]]
* [[SIMILE Timeline Widget|http://www.simile-widgets.org/timeline/]]
//synonym:// ''ROTI''
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://farm3.static.flickr.com/2038/2247354510_63e1747cce.jpg>>
<<showtoc>>
!Overview
[[Return On Time Invested]] (ROTI) meetings create tacit, organization knowledge that can be acted upon by team members in the future.
ROTI helps to generate feedback on the retrospective process and measure the effectiveness of the session from the team member's perspective.

!Return On Time Invested
<<tiddler [[Return On Time Invested##Overview]]>>
ROTI drives a team towards less meetings (almost always a good thing), pushes team members to be more respectful of each others time and expertise, and influences meeting organizers to craft more succinct, on topic, and meaningful gatherings.

!Objectives
* Generate feedback on the retrospective process 
* Measure the effectiveness of the session from the team member's perspective.
* Close [[retrospective|Agile Retrospectives]].

!Timing
5-10min

!Audience
Group

!Materials
* flipchart with ROTI scale drawn:
<<wikify [img(%0,%1)[%2|%3]] 30% auto title http://3.bp.blogspot.com/_dVhQbe4S9AM/S0mvWNxDAgI/AAAAAAAAAJ4/uiVFWTex4Bs/s400/roti.png>>

!Procedure
# Ask the group to put their marks on the flipchart
# Each person in turn gives a number on how the meeting performed as a "Return on Time Invested" and the person with the marker draws in the rating. 
# Ask the group what to keep or change about the process. Write the answers on a blank flip chart.

The rating scale

{{indent{
0 - Lost Principle: No Benefit Received for Time Invested 
1 -
2- ~Break-Even: Received Benefit Equal to Time Invested 
3 -
4 - High Return: Received Benefit Greater than Time Invested
}}}

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[60 Second Agility: ROTI Meetings| http://java.dzone.com/articles/60-second-agility-roti]]
<data>{"abstract":"[[Rezeptverschreibung]], eine ganz interessante Übung zum Abschluss eines Seminares, die dazu beiträgt, das Erfahrene noch einmal zu reflektieren und Umsetzungsmöglichkeiten zu finden.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.stark-gegen-schwitzen.de/drupal6/sites/all/modules/ckeditor/ckfinder/userfiles/images/Arzt%20schreibt%20Rezept%20aus.jpg>> /%
http://www.lettische-presseschau.de/joomla/images/LP/lp80/pille.jpg>> %/
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Rezeptverschreibung","abstract") </script>

!Rezeptverschreibung
<script> return "<<tiddler [[Rezeptverschreibung##Overview]]>>" </script> 
Das Seminar geht dem Ende zu, doch was nehmen die Teilnehmer mit nach Hause? Eine Übung, die den Transfer wahrscheinlicher machen soll, ist die folgende, die als Metapher das Schreiben eines Rezeptes nutzt. 

!Objectives
* [[Praxistransfer]]

!Timing

!Audience
Group

!Materials
* 

!Procedure
Jeweils drei Teilnehmer finden sich, dabei ist einer der Patient, die beiden anderen die Ärzte. Der Patient schildert seine "Krankengeschichte" (Probleme, auf die er treffen wird, wenn er die Erkenntnisse aus dem Seminar am Arbeitsplatz umsetzt). 
Dann bereden die beiden Ärzte im Beisein des Patienten, welche "Behandlungsstrategie" geeignet erscheint und formulieren ein Rezept. Der Patient hört dabei nur zu. Dann wird das Rezept besprochen, wobei man die Metapher beibehält:

{{indent{
Was sind aus der Sicht der Ärzte Ursachen und Symptome? Welchen verdeckten Nutzen haben die Symptome für den Patienten? Wie stark ist das Medikament und wie hoch sollte die Dosis sein? Wann soll es eingenommen werden? Wie sieht es mit den Heilungschancen aus? Welche Nebenwirkungen können auftreten? Gibt es alternative Heilmethoden? Sollte der Patient noch einmal den Arzt aufsuchen und wann? etc.
}}}

Am Ende bezieht der Patient Stellung oder schlägt Alternativen vor. Dann wird er gefragt, ob er das Rezept wirklich einlösen möchte. Wichtig ist, dass die "Ärzte" ihre Rolle nicht überziehen, also sollte der Patient ein Veto- bzw. ein Unterbrechungsrecht haben, wenn die Vermutungen zu sehr in das Persönliche bzw. Private gehen. 

!Debriefing

!Quelle
Ralf Besser: Machen Sie den Weg frei! managerSeminare 5/2001, S.82

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Rezeptverschreibung+%28jt%29]]
<data>{"abstract":"Der Rollentausch eignet sich hervorragend zur Vorbereitung auf [[schwierige Gespräche|Konflikt]] oder [[Verhandlungssituationen|Negotiation]]. Eine Variation des der bekannten Übungen mit zwei Stühlen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.clickpix.de/girls/rollentausch.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Rollentausch","abstract") </script>

!Rollentausch
<script> return "<<tiddler [[Rollentausch##Overview]]>>" </script> 
 Hilfreich ist, wenn dem Klienten der Verhandlungs-/Gesprächspartner persönlich bereits bekannt ist. Das Tool sollte durch eine eingehende Analyse vorbereitet werden: Die anstehende Verhandlung, die möglichen Ziele, sowohl des Klienten als auch des Verhandlungspartners und dessen möglicher Befindlichkeiten, Bedürfnisse nach Wertschätzung, Struktur und Befindlichkeiten seines Systems.

!Objectives
* [[Schwierige Gespräche|Konflikt]] 
* [[Verhandlungen|Negotiation]]

!Timing

!Audience
Group / Individual

!Materials
* 2 Stühle

!Procedure
Vorgehensweise: Es werden zwei Stühle gegenüber aufgestellt. Der Klient nimmt zunächst auf "seinem" Stuhl Platz und beschreibt/visualisiert den Gesprächspartner auf dem Stuhl gegenüber. 
Dann eröffnet er das Gespräch. Danach wechselt er auf den Stuhl des Verhandlungspartners. Hier kann der Coach kurz auf die Metaebene gehen und den Klienten sich selbst als Gegenüber aus der [[Wahrnehmung]] des Anderen beschreiben. 
Der Coach leitet dann in den Gesprächsfluss, indem er resümiert, was der Klient eingangs gesagt hat. Im Fortlauf wechselt der Klient die Stühle und entwickelt das Gespräch.

Der Coach kann in einzelnen Phasen katalysieren oder auf die Metaebene gehen. Er steht dabei immer hinter dem Klienten. Er kann das Gespräch auch unterbrechen, wenn es notwendig erscheint, auf der Metaebene den Stand und die weitere Entwicklung zu reflektieren. Auf diese Weise können auch Gesprächsabläufe trainiert werden, indem man sie wiederholt und der Klient Verhaltensalternativen erprobt. In jedem Fall aber erlebt der Klient den Verhandlungspartner auf dessen Stuhl in großer Intensität und kann so dessen [[Wahrnehmung]] und Befindlichkeiten besser einschätzen und somit erfolgreicher kommunizieren.

!Note
Der Effekt tritt nicht ein, wenn man lediglich auf der mentalen Ebene versucht, sich in den anderen "hineinzuversetzen".

!Debriefing

!Quelle
Schreyögg, Astrid: Imaginativer Rollentausch; in: [[Coaching Tools I, hrsg. von C. Rauen.| http://www.amazon.de/gp/product/3936075182?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3936075182]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWonline| http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Rollentausch+%28D.Fritzsche%29]]
/***
|Name|Rollover plugin|
|Source|http://www-static.cc.gatech.edu/~dellaert/dhtml/tiddly.html#RolloverPlugin|
|Version|1.0|
|Author|[[FrankDellaert]]|
|Description|Macro that inserts an image with a rollover backup image.|

!Description:
Macro that inserts an image with a rollover backup image. It takes three mandatory arguments:
* a unique name to identify the img tag. If not unique, none of the rollover macros will work.
* the default image
* the secondary image
and two optional arguments:
* the url the image points to when clicked. If not given, the second image will be the target.
* optional arguments passed to the image tag

Exactly three arguments links to the second image:
<< {{{calendar}}} three http://www.cc.gatech.edu/~dellaert/4d-cities/images/Atlanta/4D-strip.jpg http://www.cc.gatech.edu/~dellaert/4d-cities/../images/Atlanta/4D-strip-big.jpg>>

!''Syntax:''
<< {{{rollover name firstPictureLink secondPictureLink url furtherOptions}}} >>, Using less than three arguments does nothing

!Code
***/
//{{{
config.macros.rollover = {};
config.macros.rollover.handler= function(place,macroName,params) {
 if (params.length<3) return;
 var name = params[0];
 var img1 = params[1];
 var img2 = params[2];
 var url = (params.length==3) ? img2 : params[3];
 var options = (params.length>=5) ? params[4] : "";
 wikify("<html><a target = '_blank' href='"+url+"' onmouseout=\"document."+name+".src='"+img1+"'\" onmouseover=\"document."+name+".src='"+img2+"'\"> <img "+options+" name='"+name+"' src="+img1+"></a></html>",place)
}
//}}}
/***
|Name|RunTiddlerPlugin|
|Source|http://www.TiddlyTools.com/#RunTiddlerPlugin|
|Version|1.1.0|
|Author|[[EricShulman]] - 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|command to invoke tiddler content as if tagged with systemConfig (i.e., a plugin)|
!!!!!Usage/Example
<<<
Toolbar command:
>{{{<<toolbar runTiddler>>}}} (in tiddler content)
>{{{<span class='toolbar' macro='toolbar runTiddler'></span>}}} (in ViewTemplate definition)
><<toolbar runTiddler>>
>when clicked, invokes the current tiddler as javascript code
Macro function:
>{{{<<runTiddler TiddlerName>>}}} or {{{<<runTiddler TiddlerName label tip>>}}}
>if only a TiddlerName is provided, the specified tiddler is automatically invoked as javascript code as soon as the macro is rendered.  If //optional// ''label'' and ''tip'' parameters are present, a command link is created that, when clicked, invokes the specified tiddler as javascript code.
<<<
!!!!!Revisions
<<<
2008.08.26 [1.2.0] added optional label and tooltip params to macro (creates 'onclick' button to invoke specified tiddler)
2008.08.26 [1.1.0] added {{{<<runTiddler TiddlerName>>}}} macro to invoke specified tiddler
2007.09.27 [1.0.0] toolbar command based on run button functionality from TidIDEPlugin
<<<
!!!!!Code
***/
//{{{
version.extensions.runTiddler = {major: 1, minor: 2, revision: 0, date: new Date(2008,8,26)};
//}}}
//{{{
config.commands.runTiddler = {
	text: 'run',
	tooltip: 'evaluate tiddler content as systemConfig (plugin) javascript code',
	warning: "Warning!!  Processing '%0' as a systemConfig (plugin) tiddler may produce unexpected results! Are you sure you want to proceed?",
	completed: "%0: Processing completed",
	handler: function(event,src,title) {
		var here=story.findContainingTiddler(src); if (!here) return;
		this.invoke(here.getAttribute("tiddler"),true,false);
	},
	invoke: function(tid,ask,quiet) {
		if (ask && !confirm(this.warning.format([tid]))) return false;
		var text=store.getTiddlerText(tid); if (!text) return false;
		try { window.eval(text); if (!quiet) displayMessage(config.commands.runTiddler.completed.format([tid])); }
		catch(ex) { displayMessage(config.messages.pluginError.format([exceptionText(ex)])); }
		return false;
	}
};
//}}}
//{{{
config.macros.runTiddler = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var tid=params[0];
		var label=params[1];
		var tip=params[2]||config.commands.runTiddler.tooltip;
		if (!label) config.commands.runTiddler.invoke(tid,false,true);
		else createTiddlyButton(place,label,tip,function(){
			return config.commands.runTiddler.invoke(this.getAttribute("tid"),true,false);
		},"button").setAttribute("tid",tid);
	}
}
//}}}
<data>{"abstract":"Eine Übung, die sich sowohl zum gegenseitigen Kennenlernen als auch zum Geben und Nehmen von [[Feedback]] eignet."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.labbe.de/zzzebra/gefuehle/wut/rueckenpost.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Rückenpost","abstract") </script>

!Rückenpost
<script> return "<<tiddler [[Rückenpost##Overview]]>>" </script> 

!Objectives
* Kennenlernen
* Vorstellungsrunde 

!Timing

!Audience
Group

!Materials
* ~Flipchart-Papier

!Procedure
Jeder Seminarteilnehmer klebt sich einen Bogen ~Flipchart-Papier mit Hilfe von Kreppband auf den Rücken. Sodann spazieren die Teilnehmer zu angenehmer Musik durch den Raum. Wer jemandem etwas mitteilen oder ihn etwas fragen möchte, schreibt dies auf das Blatt. Danach spaziert man weiter. 
Mögliche Themen sind:
* //"Was möchte ich gerne vom anderen erfahren?"// (Kennenlernen)
* //"Was möchte ich dem anderen mitteilen?"// ([[Feedback]])
* //"Welche positiven Dinge bzw. Stärken sind mir beim anderen aufgefallen?"// (Energetisieren)
* //"Was wünsche ich mir vom anderen für das weitere Seminar?"//
* //"Welche Tipps habe ich für den anderen für sein Verhalten nach dem Seminar?"// ([[Praxistransfer]])
Nach Beendigung der Übung nimmt jeder sein Blatt ab und liest die Botschaften. Wenn es um Feedback ging, kann man auch mal nachfragen, was noch zu ergänzen ist.

!Note
Am Anfang sind die Teilnehmer etwas zögerlich, da benötigt man als Trainer etwas Geduld. Nach fünf Minuten stockt der Fluss der Botschaften erneut - hier sollte man nicht abbrechen, weil danach noch einmal ein Schub einsetzt mit in der Regel wertvollen Beiträgen.

!Debriefing

!Quelle
[[Bernd Weidenmann: Handbuch Active Training, Beltz 2006, S. 61-62.| http://www.amazon.de/gp/product/3407364601?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3407364601]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/R%FCckenpost+%28jt%29.html]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.autoholic.de/images/news/blog_UhG7-Smart-Fortwo-Konzept.jpg>>
<<showtoc>>
!Overview
[[SMART Goals]] define clearly what the group wants to //achieve// (in contrast to: what the group wants to //do// after the [[retrospective|Agile Retrospectives]]. 

!SMART Goals
<<tiddler [[SMART Goals##Overview]]>>
The [[facilitator|Facilitator]] invites the participants to define goals for their future actions. The goals have to be SMAR

{{indent{
{{big{''S''}}}  &nbsp;&nbsp; pecific
{{big{''M''}}}  &nbsp;&nbsp; easurable
{{big{''A''}}}  &nbsp;&nbsp; chievable / ''A''greed-Upon
{{big{''R''}}}  &nbsp;&nbsp; elevant / ''R''ealistic
{{big{''T''}}}  &nbsp;&nbsp; ime-based
}}}


!Objectives
* Clear definition what the group wants to achieve. 
* Decide what to do in a [[retrospective|Agile Retrospectives]]
* Getting [[team commitment|Commitment]] for the things to do

!Timing
30min

!Audience
Group

!Materials
* flipchart
* index cards / sticky notes

!Procedure
# Collect the goals from the participants
# For each goal let the group define the SMART aspects.
# Let the group check, if they can handle all the goals. Let the group prioritize and select only some goals if not.

Newby teams should commit to only one goal to stay focused.

!Debriefing



!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Nutzen Sie die enorme Wirkung von SMART-Zielen?| http://www.business-wissen.de/index.php?id=8028&ref=&ref=nl]]
<data>{"abstract":"Eine sehr bekannte Methode zur Analyse eines Problems, die die Richtung für die Lösung schon in sich birgt.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.thessenvitz.de/Bilder/SWOT-Schwert.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("SWOT Analyse","abstract") </script>

!SWOT Analyse
Ein Tool zur strategischen Analyse, ideal für Kick offs, [[Review]], Risk [[Assessment]] oder allgemein zur [[Problemlösung|Problemlösung]] ist die ~SWOT-Analyse. 
Mit ihr lassen sich Projekte analysieren und konkrete Verbesserungsvorschläge zur Optimierung eruieren. 
 	
| |''Gegenwart'' |''Zukunft'' |
|Positiv |{{medium{''S''}}} Strengths Satisfaction |{{medium{''O''}}} Opportunities Chancen|
|Negativ |{{medium{''W''}}} Weaknesses Schwächen   |{{medium{''T''}}} Threats Gefahren     |


Fragen dazu sind:

|{{medium{''S''}}}  	|Strengths Stärken Satisfaction |//Was lief gut? Was sind unsere Stärken? Worauf sind wir stolz? Was gab uns Energie? Wo stehen wir momentan?//|
|{{medium{''W''}}} 	|Weaknesses Schwächen           |//Was war schwierig? Wo liegen unsere Fallen, Barrieren? Welche Störungen behinderten uns? Was fehlt uns?//|
|{{medium{''O''}}} 	|Opportunities Chancen 	        |//Was sind die Zukunftschancen? Was könnten wir ausbauen? Welche konkreten Verbesserungsmöglichkeiten haben wir? Was können wir im Umfeld nutzen? Wozu wären wir noch fähig? Was liegt noch brach?//|
|{{medium{''T''}}} 	|Threats Gefahren                |//Wo lauern künftig Gefahren? Was kommt an Schwierigkeiten auf uns zu? Was sind mögliche [[Risiken|Risiko]], kritische Faktoren? Womit müssen wir rechnen?//|

Weitere Fragen nach der SWOT Analyse:

|         |!Stärken  |!Mängel|
|Chancen  |Wie die Stärken einsetzen, um die Chancen zu nutzen? |Wie an den Schwächen arbeiten, um die Chancen zu Nutzen?|
|Gefahren |Wie die Stärken einsetzen, um die Gefahren zu meistern? |Wie an den Schwächen arbeiten, um die Gefahren zu meiste|

([[MWonline|http://mwonline.de/db/topics/themenentry.php3?to_parebene=Ideenfabrik&db=3]]; [[free SWOT Worksheet|http://www.mindtools.com/pages/article/worksheets/SWOTAnalysisDownload.htm]])


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.foersterschule.ch/proquercus/inhalt/Grafiken/SWOT%20Analyse.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://projektmanagement.files.wordpress.com/2007/05/swot.pnghttp://www.rainerbusch.de/images/mo-stratanalyse-swot-super.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.rainerbusch.de/images/mo-stratanalyse-swot-super.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.kecos.de/script/21swot.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.sonje-webconsult.de/backstage/picpool/relaunch2007/schaubilder/swot_analyse.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://wissen.sfg.at/ratgeber/themen/managementwissen/Swot_Analyse_Grafik.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.nordschwarzwald.ihk24.de/produktmarken/starthilfe/Unternehmensentwicklung/Anlagen/bilder2007/swot-w456h302jpg.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.betriebswirtschaft.ch/imagesp/20.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://webdesign-gerer.de/eisel/gfx/gfx_3_0_2_swot.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.braincenter.at/bilder/strategie.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://1.bp.blogspot.com/_paumzbEvkQ4/R8AgBISOdwI/AAAAAAAAAQU/-dWwfTyYnNY/s1600-h/320px-SWOT_en_svg.png>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===


Eine gute SWOT erkennen Sie an einer

* internen [[Potenzialanalyse]]
* externen [[Wettbewerbsanalyse]]
* externen [[Marktanalyse]]
* externen [[Stakeholderanalyse]]
* externen [[Szenarioanalyse]]

SWOT kann im Zusammenspiel der

* Innensicht des Unternehmens mit möglichst vielen Mitarbeitern
* Außensicht des Unternehmens auf der Grundlage valider Daten
* repräsentativen und aktuellen Markt- und Trenddaten

wertvolle Nutzen stiften. Das Unternehmen erkennt

* strategische Lücken im [[Geschäftsprozess]]
* interne Stärken und Schwächen …
* … UND externe Chancen und [[Risiken|Risiko]] am Markt
* sehr präzise seinen Handlungsbedarf

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[Einführung in die SWOT-Analyse (PowerPoint-Präsentation)| http://www.thessenvitz.de/Slide-Shows/44.pps]]
* [[FAQ zu SWOT|http://www.thessenvitz.de/Produkte/SWOT/FAQ_SWOT.doc]]
* [[Fragebogen zur internen Potenzialanalyse| http://www.thessenvitz.de/Produkte/SWOT/SWOT_Fragebogen.doc]]
* [[SWOT Analysis — MindTools| http://www.mindtools.com/pages/Newsletters/14Dec10.htm#Article]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://img195.imageshack.us/img195/1405/satisfaction.gif>>
<<showtoc>>
!Overview
[[Satisfaction Histogram]], create an histogram that includes the general impressions gathered in every sprint for every member. 

!Satisfaction Histogram
<<tiddler [[Satisfaction Histogram##Overview]]>>
It's a good idea to make a scale to reflect the current status, so that everyone thinks about a number that reflects better his/her impressions. Analize the results of this sprint and the evolution of the histogram.
This can be useful to do regularly, to see changes in perspective over time.

!Objectives
* For measuring level of satiscfaction about the team, project process and product created
* Get how people are feeling about team output and to see how well they think we are working together.
* Gather Data, Generate Insights in a [[retrospective|Agile Retrospectives]]

!Timing
20min

!Audience
Group

!Materials
* prepared flipchart/poster with histogramm bars drawn (for each participant one bar)

!Procedure
# Ask the team a question (eg: //"How do we feel about the products we build?", "How do we feel about our engineering processes?", "How satisfied are you with the team output?", "How satisfied are you with team cohesion?"//), 
# Then have everyone (anonymously) provide an answer from 5 choices (eg: //"5 - We build the best products on the market, 4 - Our products are great quality and stand out, 3 - Our products are competitive, but need improvement, 2 - ..."//). 
# Graph the results in a histogram format to give a picture of the overall feeling about the question. 

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.developerdame.com/wp-content/uploads/2010/08/photo2.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* 
/***
|Name|SaveAsPlugin|
|Source|http://www.TiddlyTools.com/#SaveAsPlugin|
|Documentation|http://www.TiddlyTools.com/#SaveAsPluginInfo|
|Version|2.7.0|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|Save current document to another path/filename|
!!!!!Documentation
<<<
see [[SaveAsPluginInfo]]
<<<
!!!!!Revisions
<<<
2009.10.13 2.7.0 added 'here' param (saves current tiddler)
2009.08.16 2.6.2 fixed handling for backstage
| Please see [[SaveAsPluginInfo]] for additional revision details |
2006.02.03 1.0.0 Created
<<<
!!!!!Code
***/
//{{{
version.extensions.SaveAsPlugin= {major: 2, minor: 7, revision: 0, date: new Date(2009,10,13)};

config.macros.saveAs = {
	label: 'save as...',
	labelparam: 'label:',
	prompt: 'Save current document to a different path/file',
	promptparam: 'prompt:',
	filePrompt: 'Please select or enter a target path/filename',
	targetparam: 'target:',
	defaultFilename: 'new.html',
	filenameparam: 'filename:',
	currfilekeyword: 'here',
	typeparam: 'type:',
	type_TW: 'tw', type_PS: 'ps', type_TX: 'tx', type_CS: 'cs', type_NF: 'nf', // file type tokens
	type_map: {
		tiddlywiki:'tw', tw:'tw', wiki: 'tw',
		purestore: 'ps', ps:'ps', store:'ps',
		plaintext: 'tx', tx:'tx', text: 'tx',
		comma:     'cs', cs:'cs', csv:  'cs',
		newsfeed:  'nf', nf:'nf', xml:  'nf', rss:'nf'
	},
	limitparam: 'limit:',
	replaceparam: 'replace',
	mergeparam: 'merge',
	quietparam: 'quiet',
	openparam: 'open',
	askParam: 'ask',
	hereParam: 'here',
	askMsg: "Enter a tag filter (use * for all tiddlers, 'none' for blank document)",
	hereMsg: 'Enter a tiddler title',
	emptyParam: 'none',
	confirmmsg: "Found %0 tiddlers matching\n\n'%1'\n\nPress OK to proceed",
	mergeprompt: '%0\nalready contains tiddler definitions.\n'
		+'\nPress OK to add new/revised tiddlers to current file contents.'
		+'\nPress Cancel to completely replace file contents',
	mergestatus: 'Merged %0 new/revised tiddlers and %1 existing tiddlers',
	okmsg: '%0 tiddlers written to %1',
	failmsg: 'An error occurred while creating %1',
	filter: '',
	handler: function(place,macroName,params) {
		if ((params[0]||'').startsWith(this.labelparam))
			var label=params.shift().substr(this.labelparam.length);
		if ((params[0]||'').startsWith(this.promptparam))
			var prompt=params.shift().substr(this.promptparam.length);
		if ((params[0]||'').startsWith(this.targetparam))
			var target=params.shift().substr(this.targetparam.length);
		if ((params[0]||'').startsWith(this.filenameparam))
			var filename=params.shift().substr(this.filenameparam.length);
		if ((params[0]||'').startsWith(this.typeparam))
			var filetype=this.type_map[params.shift().substr(this.typeparam.length).toLowerCase()];
		if ((params[0]||'').startsWith(this.limitparam))
			var limit=params.shift().substr(this.limitparam.length);
		var q=((params[0]||'')==this.quietparam);   if (q) params.shift();
		var o=((params[0]||'')==this.replaceparam); if (o) params.shift();
		var m=((params[0]||'')==this.mergeparam);   if (m) params.shift();
		var a=((params[0]||'')==this.openparam);    if (a) params.shift();
		var btn=createTiddlyButton(place,label||this.label,prompt||this.prompt,
			function(){ config.macros.saveAs.go( this.getAttribute('target'),
				this.getAttribute('filename'), this.getAttribute('filetype'),
				this.getAttribute('filter'), this.getAttribute('limit'),
				this.getAttribute('quiet')=='true',
				this.getAttribute('overwrite')=='true',
				this.getAttribute('merge')=='true',
				this.getAttribute('autoopen')=='true',
				this);
				return false;
			});
		if (target) btn.setAttribute('target',target);
		if (filename) btn.setAttribute('filename',filename);
		btn.setAttribute('filetype',filetype||this.type_TW);
		btn.setAttribute('filter',params.join(' '));
		btn.setAttribute('limit',limit||0);
		btn.setAttribute('quiet',q?'true':'false');
		btn.setAttribute('overwrite',o?'true':'false');
		btn.setAttribute('merge',m?'true':'false');
		btn.setAttribute('autoopen',a?'true':'false');
	},
	go: function(target,filename,filetype,filter,limit,quiet,overwrite,merge,autoopen,here) {
		var cm=config.messages; // abbreviation
		var cms=config.macros.saveAs; // abbreviation
		if (window.location.protocol!='file:') // make sure we are local
			{ displayMessage(cm.notFileUrlError); return; }

		// get tidders, confirm filtered results
		var tids=cms.selectTiddlers(filter,here);
		if (tids===false) return; // cancelled by user
		if (cms.filter!=cms.emptyParam && cms.filter.length && !quiet)
			if (!confirm(cms.confirmmsg.format([tids.length,cms.filter]))) return;

		// get target path/filename
		if (!filetype) filetype=this.type_TW;
		target=target||cms.getTarget(filename,filetype==this.type_TX?'txt':filetype==this.type_CS?'csv':'html');
		if (!target) return; // cancelled by user

		var link='file:///'+target.replace(/\\/g,'/');
		var samefile=link==decodeURIComponent(window.location.href);
		var p=getLocalPath(document.location.href);
		if (samefile) {
			if (config.options.chkSaveBackups)
				{ var t=loadOriginal(p);if(t)saveBackup(p,t); }
			if (config.options.chkGenerateAnRssFeed && saveRss instanceof Function)
				saveRss(p);
		}
		var notes='';
		var total={val:0};
		var out=this.assembleFile(target,filetype,tids,limit||0,notes,quiet,overwrite,merge,total);
		var ok=saveFile(target,out);
		if (ok && autoopen) {
			if (!samefile) window.open(link).focus();
			else { store.setDirty(false); window.location.reload(); }
		}
		if (!quiet || !(ok && autoopen))
			displayMessage((ok?this.okmsg:this.failmsg).format([total.val,target]),link);
	},
	selectTiddlers: function(filter,here) {
		var cms=config.macros.saveAs; // abbreviation
		var tids=[]; cms.filter=filter||'';
		if (filter==cms.emptyParam)
			return tids;
		if (filter==config.macros.saveAs.hereParam) {
			var here=story.findContainingTiddler(here);
			if (here) var tid=here.getAttribute('tiddler');
			else var tid=prompt(config.macros.saveAs.hereMsg,'');
			while (tid && !store.tiddlerExists(tid)) {
				var err='"'+tid+'" not found.\nPlease try again.\n\n';
				var tid=prompt(err+config.macros.saveAs.hereMsg,tid);
			}
			if (!tid) return false;  // cancelled by user
			return [store.getTiddler(tid)];
		}
		if (filter==config.macros.saveAs.askParam) {
			filter=prompt(config.macros.saveAs.askMsg,'');
			if (!filter) return false;  // cancelled by user
			cms.filter=filter=='*'?'':filter;
		}
		if (!filter||!filter.length||filter=='*') tids=store.getTiddlers('title');
		else tids=store.filterTiddlers('[tag['+filter+']]');
		return tids;
	},
	getTarget: function(defName,defExt) {
		var cms=config.macros.saveAs; // abbreviation
		// get new target path/filename
		var newPath=getLocalPath(window.location.href);
		var slashpos=newPath.lastIndexOf('/'); if (slashpos==-1) slashpos=newPath.lastIndexOf('\\'); 
		if (slashpos!=-1) newPath=newPath.substr(0,slashpos+1); // trim filename
		if (!defName||!defName.length) { // use current filename as default
			var p=getLocalPath(window.location.href);
			var s=p.lastIndexOf('/'); if (s==-1) s=p.lastIndexOf('\\'); 
			if (s!=-1) defName=p.substr(s+1);
		}
		var defFilename=(defName||cms.defaultFilename).replace(/.html$/,'.'+defExt);
		var target=cms.askForFilename(cms.filePrompt,newPath,defFilename,defExt);
		if (!target) return; // cancelled by user
		// if specified file does not include a path, assemble fully qualified path and filename
		var slashpos=target.lastIndexOf('/'); if (slashpos==-1) slashpos=target.lastIndexOf('\\');
		if (slashpos==-1) target=target+(defName||cms.defaultFilename).replace(/.html$/,'.'+defExt);
		return target;
	},
	askForFilename: function(msg,path,file,defExt) {
		if(window.Components) { // moz
			try {
				netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
				var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
				var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
				picker.init(window, msg, nsIFilePicker.modeSave);
				var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
				thispath.initWithPath(path);
				picker.displayDirectory=thispath;
				picker.defaultExtension=defExt||'html';
				picker.defaultString=file;
				picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
				if (picker.show()!=nsIFilePicker.returnCancel) var result=picker.file.persistentDescriptor;
			}
			catch(e) { alert('error during local file access: '+e.toString()) }
		}
		else { // IE
			try { // XP/Vista only
				var s = new ActiveXObject('UserAccounts.CommonDialog');
				s.Filter='All files|*.*|Text files|*.txt|HTML files|*.htm;*.html|';
				s.FilterIndex=(defExt=='txt')?2:3; // default to HTML files;
				s.InitialDir=path;
				s.FileName=file;
				if (s.showOpen()) var result=s.FileName;
			}
			catch(e) { var result=prompt(msg,path+file); } // fallback for non-XP IE
		}
		return result;
	},
	plainTextHeader:
		 'Source:\n\t%0\n'
		+'Title:\n\t%1\n'
		+'Subtitle:\n\t%2\n'
		+'Created:\n\t%3 by %4\n'
		+'Application:\n\tTiddlyWiki %5 / %6 %7\n\n',
	plainTextTiddler:
		'- - - - - - - - - - - - - - -\n'
		+'|     title: %0\n'
		+'|   created: %1\n'
		+'|  modified: %2\n'
		+'| edited by: %3\n'
		+'|      tags: %4\n'
		+'- - - - - - - - - - - - - - -\n'
		+'%5\n',
	plainTextFooter:
		'',
	newsFeedHeader:
		 '<'+'?xml version="1.0"?'+'>\n'
		+'<rss version="2.0">\n'
		+'<channel>\n'
		+'<title>%1</title>\n'
		+'<link>%0</link>\n'
		+'<description>%2</description>\n'
		+'<language>en-us</language>\n'
		+'<copyright>Copyright '+(new Date().getFullYear())+' %4</copyright>\n'
		+'<pubDate>%3</pubDate>\n'
		+'<lastBuildDate>%3</lastBuildDate>\n'
		+'<docs>http://blogs.law.harvard.edu/tech/rss</docs>\n'
		+'<generator>TiddlyWiki %5 / %6 %7</generator>\n',
	newsFeedTiddler:
		'\n%0\n',
	newsFeedFooter:
		'</channel></rss>',
	pureStoreHeader:
		 '<html><body>'
		+'<style type="text/css">'
		+'	#storeArea {display:block;margin:1em;}'
		+'	#storeArea div {padding:0.5em;margin:1em;border:2px solid black;height:10em;overflow:auto;}'
		+'	#pureStoreHeading {width:100%;text-align:left;background-color:#eeeeee;padding:1em;}'
		+'</style>'
		+'<div id="pureStoreHeading">'
		+'	TiddlyWiki "PureStore" export file<br>'
		+'	Source'+': <b>%0</b><br>'
		+'	Title: <b>%1</b><br>'
		+'	Subtitle: <b>%2</b><br>'
		+'	Created: <b>%3</b> by <b>%4</b><br>'
		+'	TiddlyWiki %5 / %6 %7<br>'
		+'	Notes:<hr><pre>%8</pre>'
		+'</div>'
		+'<div id="storeArea">',
	pureStoreTiddler:
		'%0\n%1',
	pureStoreFooter:
		'</div><!--POST-BODY-START-->\n<!--POST-BODY-END--></body></html>',
	assembleFile: function(target,filetype,tids,limit,notes,quiet,overwrite,merge,total) {
		var revised='';
		var now = new Date().toLocaleString();
		var src=convertUnicodeToUTF8(document.location.href);
		var title = convertUnicodeToUTF8(wikifyPlain('SiteTitle').htmlEncode());
		var subtitle = convertUnicodeToUTF8(wikifyPlain('SiteSubtitle').htmlEncode());
		var user = convertUnicodeToUTF8(config.options.txtUserName.htmlEncode());
		var twver = version.major+'.'+version.minor+'.'+version.revision;
		var v=version.extensions.SaveAsPlugin; var pver = v.major+'.'+v.minor+'.'+v.revision;
		var headerargs=[src,title,subtitle,now,user,twver,'SaveAsPlugin',pver,notes];
		switch (filetype) {
			case this.type_TX: // plain text
				var header=this.plainTextHeader.format(headerargs);
				var footer=this.plainTextFooter;
				break;
			case this.type_CS: // comma-separated
				var fields={};
				for (var i=0; i<tids.length; i++) for (var f in tids[i].fields) fields[f]=f;
				var names=['title','created','modified','modifier','tags','text'];
				for (var f in fields) names.push(f);
				var header=names.join(',')+'\n';
				var footer='';
				break;
			case this.type_NF: // news feed (XML)
				headerargs[0]=store.getTiddlerText('SiteUrl','');
				var header=this.newsFeedHeader.format(headerargs);
				var footer=this.newsFeedFooter;
				tids=store.sortTiddlers(tids,'-modified');
				break;
			case this.type_PS: // PureStore (no code)
				var header=this.pureStoreHeader.format(headerargs);
				var footer=this.pureStoreFooter;
				break;
			case this.type_TW: // full TiddlyWiki
			default:
				var currPath=getLocalPath(window.location.href);
				var original=loadFile(currPath);
				if (!original) { alert(config.messages.cantSaveError); return; }
				var posDiv = locateStoreArea(original);
				if (!posDiv) { alert(config.messages.invalidFileError.format([currPath])); return; }
				var header = original.substr(0,posDiv[0]+startSaveArea.length)+'\n';
				var footer = '\n'+original.substr(posDiv[1]);
				break;
		}
		if (parseInt(limit)!=0) tids=tids.slice(0,limit);
		var out=this.getData(target,filetype,tids,quiet,overwrite,merge,fields);
		var revised = header+convertUnicodeToUTF8(out.join('\n'))+footer;
		// if full TW, insert page title and language attr, and reset MARKUP blocks as needed…
		if (filetype==this.type_TW) {
			var newSiteTitle=convertUnicodeToUTF8(getPageTitle()).htmlEncode();
			revised=revised.replaceChunk('<title'+'>','</title'+'>',' ' + newSiteTitle + ' ');
			revised=updateLanguageAttribute(revised);
			var titles=[]; for (var i=0; i<tids.length; i++) titles.push(tids[i].title);
			revised=updateMarkupBlock(revised,'PRE-HEAD',
				titles.contains('MarkupPreHead')? 'MarkupPreHead' :null);
			revised=updateMarkupBlock(revised,'POST-HEAD',
				titles.contains('MarkupPostHead')?'MarkupPostHead':null);
			revised=updateMarkupBlock(revised,'PRE-BODY',
				titles.contains('MarkupPreBody')? 'MarkupPreBody' :null);
			revised=updateMarkupBlock(revised,'POST-SCRIPT',
				titles.contains('MarkupPostBody')?'MarkupPostBody':null);
		}
		total.val=out.length;
		return revised;
	},
	getData: function(target,filetype,tids,quiet,overwrite,merge,fields) {
		// output selected tiddlers and gather list of titles (for use with merge)
		var out=[]; var titles=[];
		var url=store.getTiddlerText('SiteUrl','');
		for (var i=0; i<tids.length; i++) {
			out.push(this.formatItem(store,filetype,tids[i],url,fields));
			titles.push(tids[i].title);
		}
		// if TW or PureStore format, ask to merge with existing tiddlers (if any)
		if (filetype==this.type_TW || filetype==this.type_PS) {
			if (overwrite) return out; // skip merge… forced overwrite
			var txt=loadFile(target);
			if (txt && txt.length) {
				var remoteStore=new TiddlyWiki();
				if (version.major+version.minor*.1+version.revision*.01<2.52) txt=convertUTF8ToUnicode(txt);
				if (remoteStore.importTiddlyWiki(txt) && (merge||confirm(this.mergeprompt.format([target])))) {
					var existing=remoteStore.getTiddlers('title');
					for (var i=0; i<existing.length; i++)
						if (!titles.contains(existing[i].title))
							out.push(this.formatItem(remoteStore,filetype,existing[i],url));
					if (!quiet) displayMessage(this.mergestatus.format([tids.length,out.length-tids.length]));
				}
			}
		}
		return out;
	},
	formatItem: function(s,f,t,u,fields) {
		if (f==this.type_TW)
			var r=s.getSaver().externalizeTiddler(s,t);
		if (f==this.type_PS)
			var r=this.pureStoreTiddler.format([t.title,s.getSaver().externalizeTiddler(s,t)]);
		if (f==this.type_NF)
			var r=this.newsFeedTiddler.format([t.saveToRss(u)]);
		if (f==this.type_TX)
			var r=this.plainTextTiddler.format([t.title, t.created.toLocaleString(), t.modified.toLocaleString(),
				t.modifier, String.encodeTiddlyLinkList(t.tags), t.text]);
		if (f==this.type_CS) {
			function toCSV(t) { return '"'+t.replace(/"/g,'""')+'"'; } // always encode CSV
			var out=[ toCSV(t.title), toCSV(t.created.toLocaleString()), toCSV(t.modified.toLocaleString()),
				toCSV(t.modifier), toCSV(String.encodeTiddlyLinkList(t.tags)), toCSV(t.text) ];
			for (var f in fields) out.push(toCSV(t.fields[f]||''));
			var r=out.join(',');
		}
		return r||'';
	}
};
//}}}
//{{{
// automatically add saveAs to backstage
config.tasks.saveAs = {
	text: 'saveAs',
	tooltip: config.macros.saveAs.prompt,
	action: function(){ clearMessage(); config.macros.saveAs.go(); }
}
config.backstageTasks.splice(config.backstageTasks.indexOf('save')+1,0,'saveAs');
//}}}
/***
|Name|saveClose|
|Version|1.1.1|
|Source|http://knighjm.googlepages.com/knightnet-default-tw.html <<br>> http://saveclosetiddler.tiddlyspot.com/|
|Author|[[SimonBaird]]|
|Type|Toolbar Macro Extension|
|Requires|TiddlyWiki 2.0.0 or higher|
|~CoreVersion|2.0+|
|Description|Extends the TiddlyWiki commands for the toolbar macro by adding a button to save and then close the Tiddler immediately.|

!Description
Extends the TiddlyWiki commands for the toolbar macro by adding a button to save and then close the [[Tiddler]] immediately.
It simply duplicates and mashes the code from the two pre-defined commands SaveTiddler and closeTiddler.
!History
|!2006-04-10 - 1.1.1|Minor improvements to versioning, no code changes, improve description and history|
|!2006-04-07 - 1.1|Amended "source" and move master copy to my Google web space|
|!2006-03-30 - 1.0|First release|
!Useage
Add to your EditTemplate, e.g.:
{{{
<!-- ********* -->
<div class='toolbar' macro='toolbar +saveTiddler saveClose -cancelTiddler deleteTiddler closeTiddler'></div>
}}}
It does a save followed by a close.

!Code
***/
//{{{
version.extensions.saveClose = {
 major: 1, minor: 1, revision: 1, date: new Date("Apr 10, 2006"), type: 'macro',
 source: 'http://knighjm.googlepages.com/knightnet-default-tw.html#saveClose'
};

config.commands.saveClose = {
 text: "save/close", tooltip: "Save then close this tiddler"
}

config.commands.saveClose.handler = function(event,src,title) {
 var newTitle = story.saveTiddler(title,event.shiftKey);
 story.closeTiddler(title,true,event.shiftKey || event.altKey);
 // story.displayTiddler(null,newTitle);
 return false;
}
//}}}
/***
This plugin is released under the "Do whatever you like at your own risk" license.
***/
/***
|Name|SaveCollapseTiddlerPlugin|
|Version|1.0.0|
|Source||
|Author|[[MichaelTarnowski]]|
|Type|Toolbar Macro Extension|
|Requires|CollapseTiddlerPlugin|
|~CoreVersion|2.0+|
|Description|Extends the TiddlyWiki commands for the toolbar macro by adding a button to save and then collapse the Tiddler immediately.|

!Description
<<tiddler [[SaveCollapseTiddlerPlugin::Description]]>>

!Useage
Add to your EditTemplate, e.g.:
{{{
<!-- ********* -->
<div class='toolbar' macro='toolbar +saveTiddler saveClose saveCollapse -cancelTiddler deleteTiddler closeTiddler'></div>
}}}
It does a save followed by a collapse.

!Code
***/
//{{{
version.extensions.saveClose = {
 major: 1, minor: 0, revision: 0, date: new Date("Oct 16, 2009"), type: 'macro',
};

config.commands.saveCollapse = {
 text: "save/collapse", tooltip: "Save then collapse this tiddler"
}

config.commands.saveCollapse.handler = function(event,src,title) {
      story.saveTiddler(title,event.shiftKey);
      var t=config.commands.collapseTiddler.getCollapsedTemplate();
      config.commands.collapseTiddler.saveTemplate(tiddler);
      config.commands.collapseTiddler.display(title,t);
      t.folded=true;
      return false;
}
//}}}
/***
This plugin is released under the "Do whatever you like at your own risk" license.
***/
/***
|Name|SaveFromWebConfig|
|Source|http://www.TiddlyTools.com/#SaveFromWebConfig|
|Documentation|http://www.TiddlyTools.com/#SaveFromWebPluginInfo|
|Version|1.3.1|
|Author|[[EricShulman]]|
|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|configuration settings for SaveFromWebPlugin|
***/
/***
!!!!! URL for server-side 'reflector' script.
***/
//{{{
config.options.txtSaveFromWebScriptURL="savefromweb.php";
//}}}
/***
>Script can be hosted on ANY web server that supports PHP5.
***/
/***
!!!!! URL for TiddlyWiki core source
***/
//{{{
config.options.txtSaveFromWebSourceFile="http://www.TiddlyTools.com/empty.html";
//}}}
/***
>document URL for retrieving TiddlyWiki core source code. Using an *empty* TW minimizes data transfer for retrieving TW core. Can be on ANY domain… If blank, get core source code from current document URL.
***/
/***
!!!!! Target filename
***/
//{{{
config.options.txtSaveFromWebTargetFilename="";
//}}}
/***
>specifies the destination filename for the downloaded file. Can be any valid filename for local filesystem and appears as the default value when you are prompted to save the file.  If blank, the filename of the current document (or the domain name if there is no filename in the URL) is used.
***/
/***
!!!!! Pre-fetch option:
***/
//{{{
config.options.chkSaveFromWebPreFetch=false;
//}}}
/***
<<<
* true=get (and cache) TW core code when document is first loaded (i.e., when plugin is initialized)
* false=get and cache core code the first time the file is being saved
This option causes the plugin to retrieve the TiddlyWiki core source as soon as you load the document, instead of waiting for the first time you save.  This ensures that the TiddlyWiki core source can still be saved to the local filesystem even if your network connection is dropped before you save your changes.  Note that, even without pre-fetching, the core source is always cached after it is retrieved, so that subsequent saves don't do extra work to get it again.
<<<
***/
/***
!!!!! Local I/O option
***/
//{{{
config.options.chkSaveFromWebAttemptLocalIO=false;
//}}}
/***
<<<
(requires browser security permissions, i.e., "trusted site" settings).
The plugin will try to obtain security permission for direct filesystem I/O.  If you grant filesystem access to the script, then it writes the document directly to your filesystem, and doesn't use the server-side reflector script at all.  This allows you to save a remote file to your local filesystem, even if your net connection drops after you open the document. Note: if filesystem permissions are not granted, the plugin will automatically attempt to use the server-side reflector script as a fallback… even if no longer connected to the net.
<<<
***/
 
/***
|Name|SaveFromWebPlugin|
|Source|http://www.TiddlyTools.com/#SaveFromWebPlugin|
|Documentation|http://www.TiddlyTools.com/#SaveFromWebPluginInfo|
|Version|1.3.1|
|Author|[[EricShulman]] - 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||
|Options|##Configuration|
|Description|extend 'save changes' to get remote document contents and save to local filesystem |
Normally, when you are viewing a TiddlyWiki document over the web (i.e., not via {{{file://}}}) and you select the "save changes" (or "save to disk") command, an error message is displayed: //__"You need to save this TiddlyWiki to a file before you can save changes."__//  This plugin extends the use of {{{<<saveChanges>>}}} so that when you are viewing and/or editing a remote TiddlyWiki document, instead of receiving this somewhat confusing and unhelpful message, you can still click the "save changes" (or "save to disk") command to ''store a copy of the remote document directly onto your local filesystem'', //including any unsaved tiddler changes/additions you have made while working on-line.//
!!!!!Documentation
>see [[SaveFromWebPluginInfo]]
!!!!!Configuration
> see [[SaveFromWebConfig]]
!!!!!Revisions
<<<
2008.09.29 [1.3.1] in saveFromWeb(), do NOT convert UTF8 to Unicode when merging retrieved source for submission to server-side reflector script.  Fixes mangling of international characters and symbols.
|please see [[SaveFromWebPluginInfo]] for additional revision details|
2007.06.26 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.SaveFromWebPlugin= {major: 1, minor: 3, revision: 1, date: new Date(2008,9,29)};
//}}}

//{{{
// DEFAULT SETTINGS
if (config.options.txtSaveFromWebScriptURL==undefined)
	config.options.txtSaveFromWebScriptURL="savefromweb.php";
if (config.options.txtSaveFromWebTargetFilename==undefined)
	config.options.txtSaveFromWebTargetFilename=""; // use current filename when blank
if (config.options.txtSaveFromWebSourceFile==undefined)
	config.options.txtSaveFromWebSourceFile=""; // use current URL when blank
if (config.options.chkSaveFromWebAttemptLocalIO==undefined)
	config.options.chkSaveFromWebAttemptLocalIO=true; // true=try to use local filesystem I/O (requires security permissions)
if (config.options.chkSaveFromWebPreFetch==undefined)
	config.options.chkSaveFromWebPreFetch=false; // true=retrieve TW core when document is first loaded
//}}}

//{{{
// OPTIONAL: get TW core source code when plugin is loaded (i.e., once per document session)
if (document.location.protocol!="file:" && config.options.chkSaveFromWebPreFetch) {
	// retrieve TW source from server…
	var src=document.location.href;
	if (config.options.txtSaveFromWebSourceFile && config.options.txtSaveFromWebSourceFile.length)
		src=config.options.txtSaveFromWebSourceFile;
	var target=config.options.txtSaveFromWebTargetFilename;
	if (!target.length) { // use current filename
		var loc=document.location.pathname;
		var slashpos=loc.lastIndexOf("/");
		target=(slashpos==-1)?loc:loc.substr(slashpos+1);
		if (!target.length) target=document.location.host+".html";
	}
	var xhr=loadRemoteFile(src,function(success,target,txt,src,xhr){if(success)config.saveFromWebSourceCache=txt;},target);
}
//}}}

//{{{
window.saveFromWeb_saveChanges = window.saveChanges;
window.saveChanges = function(onlyIfDirty,tiddlers) {
	// if on file:, just use standard core save handling
	if(document.location.protocol == "file:") { window.saveFromWeb_saveChanges.apply(this,arguments); return; }
	clearMessage();
	// get target filename
	var target=config.options.txtSaveFromWebTargetFilename;
	if (!target.length) { // use current filename
		var loc=document.location.pathname;
		var slashpos=loc.lastIndexOf("/");
		target=(slashpos==-1)?loc:loc.substr(slashpos+1);
		if (!target.length) target=document.location.host+".html";
	}
	// get TW core source location
	var src=document.location.href;
	if (config.options.txtSaveFromWebSourceFile && config.options.txtSaveFromWebSourceFile.length)
		src=config.options.txtSaveFromWebSourceFile;
	// if core source has already been cached, go straight to saving the file…
	if (config.saveFromWebSourceCache)
		{ window.saveFromWeb(true,target,config.saveFromWebSourceCache,src,null); return; }
	// otherwise, retrieve TW source from server…
	displayMessage("Retrieving TiddlyWiki core from "+src);
	var xhr=loadRemoteFile(src,window.saveFromWeb,target);
	if (!xhr) { // couldn't load remote, report core error message
		displayMessage("Could not retrieve TiddlyWiki core… download unsuccessful.");
		alert(config.messages.notFileUrlError);
		if(store.tiddlerExists(config.messages.saveInstructions))
			story.displayTiddler(null,config.messages.saveInstructions);
	}
	return;
}
//}}}

//{{{
window.saveFromWeb = function(success,target,txt,url,xhr) {
	if(!success) {
		displayMessage("Could not retrieve TiddlyWiki core… download unsuccessful.");
		alert(config.messages.cantSaveError);
		if(store.tiddlerExists(config.messages.saveInstructions))
			story.displayTiddler(null,config.messages.saveInstructions);
		return;
	}
	// Locate the storeArea div's in the original source
	var posDiv=locateStoreArea(txt);
	if(!posDiv) { alert(config.messages.invalidFileError.format([url])); return; }

	// cache the document source so subsequent saves don't have to retrieve the source each time
	if (!config.saveFromWebSourceCache) config.saveFromWebSourceCache=txt;

	// if we can get local filesystem access, then ask for a filename and merge/write the file
	if (config.options.chkSaveFromWebAttemptLocalIO) {
		try {
			// get local target path+filename (may be blocked by browser security)
			var target=promptForFilename( "Save file as:","C:\\",target,"html");
			if (!target || !target.length) return;
			saveBackup(target,txt);
			saveRss(target);
			saveEmpty(target,txt,posDiv);
			saveMain(target,txt,posDiv);
			return;
		} catch(e) { }
	}
	// otherwise, fallback to using online 'reflector' script (if any)
	if (config.options.txtSaveFromWebScriptURL.length) {
		displayMessage("Merging tiddlers with core and preparing for download...");
		var merged=txt.substr(0,posDiv[0]+startSaveArea.length)+"\n"+
			store.allTiddlersAsHtml()+"\n"+txt.substr(posDiv[1]);
		var title=getPageTitle().htmlEncode();
		merged=merged.replaceChunk("<title"+">","</title"+">"," "+title+" ");
		merged=updateLanguageAttribute(merged);
		merged=updateMarkupBlock(merged,"PRE-HEAD","MarkupPreHead");
		merged=updateMarkupBlock(merged,"POST-HEAD","MarkupPostHead");
		merged=updateMarkupBlock(merged,"PRE-BODY","MarkupPreBody");
		merged=updateMarkupBlock(merged,"POST-SCRIPT","MarkupPostBody");
		// create form in a hidden frame and submit it to server
		var html='<input type="hidden" name="filename" value="">'
			+'<input type="hidden" name="contents" value="">';
		var form=window.createHiddenForm(config.options.txtSaveFromWebScriptURL,html);
		form.filename.value=target;
		form.contents.value=merged;
		form.submit();
	}
}
//}}}

//{{{
window.createHiddenForm=function(action,body) {
	var f=document.getElementById("saveFromWebFrame");
	if (f) document.body.removeChild(f);
	var f=createTiddlyElement(document.body,"iframe","saveFromWebFrame");
	f.style.width="0px"; f.style.height="0px"; f.style.border="0px";
	var d=f.document;
	if (f.contentDocument) d=f.contentDocument; // For NS6
	else if (f.contentWindow) d=f.contentWindow.document; // For IE5.5 and IE6
	d.open();
	d.writeln('<form target="_self" action="'+action+'" method="post" enctype="multipart/form-data">'+body+'</form>');
	d.close();
	return d.getElementsByTagName("form")[0];
}
//}}}

//{{{
// note: if blocked by browser security, this function will throw an error…
// the CALLING function should use "try{...} catch(e){...}" to handle the security errors
window.promptForFilename=function(msg,path,file,defext) {
	var result="";
	if(window.Components) { // moz
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
		var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
		var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
		picker.init(window, msg, nsIFilePicker.modeSave);
		picker.displayDirectory=null;
		picker.defaultExtension=defext;
		picker.defaultString=file;
		picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
		if (picker.show()!=nsIFilePicker.returnCancel) var result=picker.file.persistentDescriptor;
	}
	else { // IE (XP only)
		var s = new ActiveXObject('UserAccounts.CommonDialog');
		s.Filter='All files|*.*|Text files|*.txt|HTML files|*.htm;*.html|';
		s.FilterIndex=1; // default to ALL files;
		s.InitialDir=path;
		s.FileName=file;
		if (s.showOpen()) var result=s.FileName;
	}
	return result;
}
//}}}
/***
|Name|SaveTiddlerToFilePlugin|
|Source|http://www.TiddlyTools.com/#SaveTiddlerToFilePlugin|
|Documentation|http://www.TiddlyTools.com/#SaveTiddlerToFilePlugin|
|Version|1.0.0|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|toolbar command to save tiddler source definition to an external text file|
!!!!!Usage/Example
<<<
Embedded as a macro in tiddler content:
{{{
<<saveTiddlerToFile label:text prompt:text filename:text path:text>>
}}}
or, as a tiddler toolbar command in [[ViewTemplate]]:
{{{
<span class='toolbar' macro='toolbar saveTiddlerToFile'></span>
}}}
where:
* ''label'' //(optional)//<br>specifies the text to display for the command
* ''prompt'' //(optional)//<br>specifies the mouseover 'tooltip' text for the command
* ''filename'' //(optional)//<br>specifies the default filename to create.  You can use "*" within the filename as a 'substitution marker' that will be automatically replaced with the current tiddler's title.    If ''file'' is omitted, a system-specific 'ask for filename' dialog box will be displayed, using 'tiddlername.tid' as the suggested default filename.  //Note: if the tiddler is a plugin (tagged with <<tag systemConfig>>), then the suggested filename will use ".js" instead of ".tid"//
* ''path'' //(optional)//<br>specifies the default folder in which to create the output file.  If the path begins with "./" (or ".\" for Windows) it is treated as a relative path, and the path containing the current document will be prepended to create a full path reference.  Otherwise, the specified path must be a full path reference.  You can use "*" within the path as a 'substitution marker' that will be automatically replaced with the current tiddler's title.  If ''path'' is omitted, the path containing the current document will be used by default.
Examples:
>{{{<<saveTiddlerToFile>>}}}<br>Try it: <<saveTiddlerToFile>>
>{{{<<saveTiddlerToFile label:"save 'txt' file to current folder..." filename:*.txt>>}}}<br>Try it: <<saveTiddlerToFile label:"save 'txt' file to current folder..." filename:*.txt>>
>{{{<<saveTiddlerToFile label:"save 'txt' file to archive..." filename:*.txt path:./archive>>}}}<br>Try it: <<saveTiddlerToFile label:"save 'txt' file to archive..." filename:*.txt path:./archive>>
<<<
!!!!!Configuration
<<<
When {{{<span class='toolbar' macro='toolbar saveTiddlerToFile'></span>}}} is used to create a tiddler toolbar command, the default values for all parameters are applied (e.g., you will be prompted to select/enter a filename with a ".tid" or ".js" extension).  You can override these defaults by writing the following into a tiddler tagged with <<tag systemConfig>>:
{{{
config.commands.saveTiddlerToFile.filename="...";
config.commands.saveTiddlerToFile.path="...";
}}}
<<<
!!!!!Revisions
<<<
2008.04.22 [1.1.0] converted from inline script to tiddler toolbar command
2007.06.26 [1.0.0] initial release as inline script
<<<
!!!!!Code
***/
//{{{
version.extensions.SaveTiddlerToFilePlugin= {major: 1, minor: 1, revision: 0, date: new Date(2008,4,22)};

config.macros.saveTiddlerToFile = {
	label: "save this tiddler to a file",
	prompt: "save this tiddler's SOURCE text to a local file",
	askmsg: "select an output filename for this tiddler",
	okmsg: "Tiddler source written to %0",
	failmsg: "An error occurred while creating %0",
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		params = paramString.parseParams("anon",null,true,false,false);
		var label=getParam(params,"label",this.label);
		var prompt=getParam(params,"prompt",this.prompt);
		var filename=getParam(params,"filename","");
		var path=getParam(params,"path","");
		var btn=createTiddlyButton(place,label,prompt,
			function(event){config.macros.saveTiddlerToFile.go(this,event)});
		btn.setAttribute("filename",filename);
		btn.setAttribute("path",path);
	},
	go: function(src,event) {
		var cms=config.macros.saveTiddlerToFile; // abbreviation
		var here=story.findContainingTiddler(src); if (!here) return;
		var tid=here.getAttribute('tiddler');
		var filename=src.getAttribute("filename")||"";
		filename=filename.replace(/\*/g,tid);
		var path=src.getAttribute("path")||"";
		path=path.replace(/\*/g,tid);
		if (!path.length||path.substr(0,2)=="./"||path.substr(0,2)==".\\") {
			var curr=getLocalPath(document.location.href);
			var slashpos=curr.lastIndexOf("/"); if (slashpos==-1) slashpos=curr.lastIndexOf("\\"); 
			if (slashpos!=-1) curr=curr.substr(0,slashpos+1); // remove filename, leave trailing slash
			var trailingslash=curr.indexOf("\\")!=-1?"\\":"/"; // fixup for missing trailing slash
			if (path.length && path.substr(path.length,1)!=trailingslash) path+=trailingslash;
			path=!path.length?curr:curr+path.substr(2); // convert relative path to absolute path
		}
		var deffn=tid+(store.getTiddler(tid).isTagged("systemConfig")?".js":".tid");
		var target=filename.length?path+filename:cms.askForFilename(cms.askmsg,path,deffn); // ask
		if (!target||!target.length) return false; // cancelled by user
		var msg=saveFile(target,store.getTiddlerText(tid))?cms.okmsg:cms.failmsg;
		clearMessage(); displayMessage(msg.format([target]),"file:///"+target.replace(/\\/g,'/'));
	},
	askForFilename: function(msg,path,file) {
		if(window.Components) { // moz
			try {
				netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
				var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
				var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
				picker.init(window, msg, nsIFilePicker.modeSave);
				var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
				thispath.initWithPath(path);
				picker.displayDirectory=thispath;
				picker.defaultExtension='tid';
				picker.defaultString=file;
				picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
				if (picker.show()!=nsIFilePicker.returnCancel) var result=picker.file.persistentDescriptor;
			}
			catch(e) { alert('error during local file access: '+e.toString()) }
		}
		else { // IE
			try { // XP/Vista only
				var s = new ActiveXObject('UserAccounts.CommonDialog');
				s.Filter='All files|*.*|Text files|*.txt;*.tid;*.js|HTML files|*.htm;*.html|';
				s.FilterIndex=2; // default to TEXT files;
				s.InitialDir=path;
				s.FileName=file;
				if (s.showOpen()) var result=s.FileName;
			}
			catch(e) { var result=prompt(msg,path+file); } // fallback for non-XP IE
		}
		return result;
	}
}

// // toolbar definition
config.commands.saveTiddlerToFile= {
	text: "file",
	tooltip: config.macros.saveTiddlerToFile.prompt,
	filename: "",
	path: "",
	handler: function(event,src,title) {
		var ccs=config.commands.saveTiddlerToFile;
		if (ccs.filename.length) src.setAttribute("filename",ccs.filename);
		if (ccs.path.length) src.setAttribute("path",ccs.path);
		config.macros.saveTiddlerToFile.go(src,event);
		return false;
	}
};
//}}}
//synonym:// Scaling Walk
<data>{"abstract":"[[Scaling Dance]], wo steht das [[Team]] heute? Wo möchte es in Zukunft stehen? Eine kleine Visualisierungshilfe…  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.ivygateblog.com/images/vayner_dance.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Scaling Dance","abstract") </script>

!Scaling Dance
<<tiddler [[Scaling Dance##Overview]]>>
Um den Zustand des [[Teams|Team]] deutlich zu machen, bietet sich eine Visualisierung an, die mit geringem Aufwand machbar ist. Der [[Scaling Dance]] ist ein Schritt im Tool [[Solution Circle]].

!Objectives
* Standortbestimmung 
* [[Ziele|Ziel]] vs. [[Ist-Situation|Ist-Zustand]] eines [[Teams]]

!Timing
10min

!Audience
Group / Individual

!Materials
* Klebeband mit Skalenwerten 1-10 (1: Schlechteste Bedingungen - 10: Optimum))

!Procedure
# Dazu wird auf dem Boden ein Streifen Klebeband angebracht. 
# Das eine Ende des Bandes hat den Skalenwert 10, er steht für den Optimalzustand. In ihm sind alle Probleme gelöst, die Zusammenarbeit läuft perfekt. <br>Das gegenüberliegende Ende hat den Skalenwert 1. Er steht für das genaue Gegenteil. Hier ist die Zusammenarbeit so schlecht, dass man es kaum aushalten kann.
# Die Teammitglieder werden gebeten, sich entlang des Klebebandes [[aufzustellen|Aufstellung]], je nachdem, wie sie die Zusammenarbeit erleben.

!Debriefing
<<tiddler [[SolutionCircle##6. Schritt: Scaling Dance]]>>

!Quelle
Daniel Meier: Fallstudie: Turbulenzen im [[Team]] als Chancen nutzen, wirtschaft + weiterbildung 2/2006, S. 47

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Scaling+Dance+%28jt%29.html]]
* [[The Scaling Walk — PDF| http://www.thesolutionsfocus.co.uk/sites/default/files/TheScalingWalk.pdf]] (''Description & Tips!!'')
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://svpow.files.wordpress.com/2009/07/new-aussie-dinos.jpg>>
<<showtoc>>
!Overview
[[Scaling Highlights]] is the agile variant of [[Scaling Dance]].

!Scaling Highlights
<<tiddler [[Scaling Highlights##Overview]]>>

!Objectives
* scale emotions/impressions

!Timing
10min

!Audience
Group

!Materials
* adhesive tape with scale 1 (worse conditions) to  10 (best/optimum condition)

!Procedure
# Stick the tape onto the floor 
# Ask the participants to stand on the scale that describes their emotions/impressions best.

Variant:
* All participants stand in a circle; in a round-robin fashion each one steps into the center and voices a statement; all others align their bodies with the statement: standing near to her signifies strong agreement while standing far away to signifies strong disagreement (a variant of [[Constellation]]).

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.almutlorber.at/images/aufstellung.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
* [[Scaling Dance]]
* [[Solution Focus]]
<<tiddler ShowTiddlerReferences>>
!Weblinks
* 
<data>{"abstract":"[[Schlüsselbeziehungen]], mit Hilfe dieser Übung erkennen die Teilnehmer die Bedeutung der [[Kommunikation]] mit und Einbeziehung von Menschen, die nicht direkt mit dem Projekt zu tun haben, dieses aber beeinflussen können ([[Stakeholder]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.ms-life.de/img/ms/1/schluessel_key_1.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Schlüsselbeziehungen","abstract") </script>

!Schlüsselbeziehungen
<script> return "<<tiddler [[Schlüsselbeziehungen##Overview]]>>" </script> 
In Projekten stellt man immer wieder fest, dass einzelne Interessen Beteiligter oder Betroffener nicht frühzeitig und umfassend genug berücksichtigt werden. Dies führt häufig zu [[Widerständen|Change Resistance]] oder anderen Fehlentwicklungen im Projektverlauf.

Mit der Übung [[Schlüsselbeziehungen]] werden die Teilnehmer aufgefordert zu überlegen, welche Beziehungen das Projekt und der Projektinhalt zu anderen [[Organisationseinheiten|Organisationseinheit]], Menschen, Nutzern, Kunden, Gesetzen usw. aufweisen. 

!Objectives
* [[Stakeholder Analyse]]

!Timing

!Audience
Group

!Materials
* 

!Procedure
Hierzu wird eine 2x2-Matrix aufgezeichnet. Die vier Felder unterteilen Menschen, Gruppen, [[Organisationen|Organisation]] usw. die vom Projekt mehr oder weniger stark betroffen sind und eine mehr oder weniger große Distanz zum Projekt haben.

{{center{
|Betroffenheit vom Projekt hoch | |
|Betroffenheit vom Projekt gering | |
| |Distanz zum [[Projektteam]] gering|Distanz zum [[Projektteam]] hoch|
}}}

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
<data>{"abstract":"[[Schubladen-Denken]], Übung für den Beginn eines Kommunikationsseminares um zu zeigen, wie schnell man andere in eine Schublade steckt."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://view.stern.de/de/picture/1729218/Schubladen-Denken-Schwarz-Digiart-510x510.jpg>>/%
http://www.hannestreichl.com/wp-content/uploads/2006/08/out_of_the_box_denken.jpg>> %/
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Schubladen-Denken","abstract") </script>

!~Schubladen-Denken
<script> return "<<tiddler [[Schubladen-Denken##Overview]]>>" </script> 

!Objectives

!Timing

!Audience
Group

!Materials
* 

!Procedure
Die Teilnehmer setzen sich in 2er-Gruppen zusammen. Jeder nennt fünf Vermutungen nach dem Schema //"Ich sehe … und ich vermute, dass ..."//. 

Bspw. //"Ich sehe, dass Du eine teure Brille trägst und ich vermute, dass Du viel Wert auf Dein Äußeres legst"//. 

Der andere Teilnehmer hört sich die fünf Punkte schweigend an, dann wechseln die Rollen. Anschließend wird sich in den Gruppen über die Vermutungen ausgetauscht. Was stimmt, was war falsch? Wie entsteht "~Schubladen-Denken"? Welche Auswirkungen hat es?

Diese Übung lässt sich zu Beginn bspw. eines ~Kommunikations-Seminares einsetzen, um zu zeigen, dass wir andere Personen aufgrund von Äußerlichkeiten sofort in "Schubladen" stecken.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Schubladen-Denken+%28msi%29&db=3]]
<data>{"abstract":"Es klingt auf den ersten Blick etwas paradox: Aber den [[Schuldigen der Woche|Schuldige der Woche]] zu suchen, kann Spaß machen und die Stimmung im [[Team]] entkrampfen.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 20% auto title http://bp1.blogger.com/_Y0NNg-0cUCw/RgfJ_igy5kI/AAAAAAAAAwA/RCTFLMGl5Lk/s400/oh-je.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Schuldige der Woche","abstract") </script>

!Schuldige der Woche
<script> return "<<tiddler [[Schuldige der Woche##Overview]]>>" </script> 
Ein unterhaltsames Ventil für Stress war in unserer Abteilung der "Schuldige der Woche". 

!Objectives
* Stressabbau

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Einer aus der Abteilung wurde dazu bestimmt, eine Woche an allem Schuld zu sein. Wann immer irgendetwas schief ging, hörte man ein lautes "Und wer ist wieder schuld?!!!" - und einige Kollegen antworteten begeistert mit dem Namen desjenigen, der "dran" war. 
Wichtig: alle sind mit Humor dabei. Funktioniert hervorragend, wenn sich die Kollegen untereinander gut verstehen. 

Lockert auf, wird nie langweilig - und alleine die Wahl des Schuldigen der Woche sorgt für eine Menge Spaß. - Schließlich haben sich die Kandidaten schon freiwillig gemeldet, schuld zu sein - meist allerdings, wenn ihr Urlaub bevorstand … 

Der Vorteil: Situationen, in denen jeder gereizt ist, werden dadurch sofort entspannt.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Schuldige+der+Woche+%28gh%29]]
<data>{"abstract":"[[Schuppen]], eine einfache Übung, mit deren Hilfe Sie zu Beginn eines Seminares auch in großen Gruppen für gegenseitiges Kennenlernen und gleichzeitig für die erste Beschäftigung mit den Seminarinhalten sorgen.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://view.stern.de/de/picture/1443760/Gr%C3%83%C2%BCn-ltdbrain-schlange-Schuppen-Mamba-Mamba-Gr%C3%83%C2%BCn-510x510.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Schuppen","abstract") </script>

!Schuppen
<script> return "<<tiddler [[Schuppen##Overview]]>>" </script> 


!Objectives
* Kennenlernen
* Vorstellungsrunde 

!Timing

!Audience
Group

!Materials
* Moderationskarten

!Procedure
Bereiten Sie hierzu für jeden Teilnehmer verschiedene Moderationskarten vor, auf deren Vorderseite z.B. steht: //"Meine Erwartungen an den Tag..."// oder //"Das Seminarthema ist für mich..."// oder //"Meine derzeitige Tätigkeit ist..."//. 

Jeder Teilnehmer schreibt nun auf die Rückseite (auf dem Kopf stehend) seine persönlichen Antworten auf die Karten. Anschließend klebt er sich die Karten mit Kreppbank so auf den Oberkörper, dass sie hochgeklappt werden können und damit die individuell beschriftete Rückseite freigeben.

Anschließend bewegen sich alle frei im Raum, schauen sich gegenseitig in die Karten und kommen so zum ersten Mal ins Gespräch.

!Debriefing

!Quelle
Funcke / Rachow: Rezeptbuch für lebendiges Lernen, managerSeminare 2002, S.204.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Schuppen+%28jt%29]]
<data>{"abstract":"[[Schwebender Stab]], eine Übung, die auch nach mehrfacher Durchführung selbst den Trainer noch verblüffen kann. Und an der man zeigen kann, wie Gruppen bei unerwarteten Ereignissen miteinander umgehen. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.t-e-a-m.org/de/images/teambuilding.jpg>>/%
http://www.montanalingua.com/typo3temp/pics/ed2e726f7f.jpg>>%/
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Schwebender Stab","abstract") </script>

!Schwebender Stab
<script> return "<<tiddler [[Schwebender Stab##Overview]]>>" </script> 


!Objectives
* Gruppendynamik
* Zielkonflikt & Rahmenbedingungen

!Timing
10min

!Audience
Group: 6 bis 15 Personen

!Materials
* Bambusstab oder zerlegbare Zeltstange, ca. 2,50m lang, nicht schwerer als 300g.

!Procedure
# Zur Durchführung stellen sich die Teilnehmer einer Gruppe (6 bis 15 Personen) gegenüber auf mit dem Gesicht zueinander. 
# Dann werden sie aufgefordert, die Hände nach vorn zu strecken und den Zeigefinger "auszufahren" - so wie man als Kind aufeinander gezielt hat. Die Hände sind auf einer Höhe. 
# Sodann legt der Trainer den Stab auf die ausgestreckten Zeigefinger. Er betont, dass alle den Stab während der ganzen Übung mit dem Zeigefinger berühren müssen, er darf keinesfalls eingeklemmt werden.

Dann folgt die eigentliche Aufgabe: Die Gruppe soll den Stab auf dem Boden ablegen, wobei niemand den Kontakt zum Stab verlieren darf.

!Debriefing
Was geschieht? Statt nach unten bewegt sich der Stab nach oben. Wenn das geschieht, nimmt der Trainer ihn auf und legt ihn wie gehabt auf die Zeigefinger.
Was so leicht erscheint, wird plötzlich doch kompliziert. Wie die Teilnehmer mit der Situation umgehen, wie sie sich gegenseitig instruieren, kritisieren, auffordern, nach Schuldigen suchen - all das wird Gegenstand der Auswertung.

Zu dieser Übung eine Anmerkung von Dr. Frank Edelkraut:
Solange die Gruppe ausreichend groß und der Stab leicht genug ist, funktioniert die Überraschung immer. Aber: Damit die TN auch etwas lernen, muss unbedingt geklärt werden, aus welchem Grund der Stab nach oben geht. Ursache ist der [[Zielkonflikt]], der aus dem Ziel (ablegen) und der [[Randbedingung]] (Kontakt halten) und den [[Rahmenbedingungen|Rahmenbedingung]] (geringes Gewicht pro Finger) resultiert. Jedes "Zucken" eines Fingers zwingt die anderen TN, nachzuführen, sodass der Stab letztlich hochwandert. Irgendwer zuckt nämlich immer.
Viele Gruppen bekommen diesen Zielkonflikt durch [[Führung]], [[Kommunikation]], Koordination (Übung passt daher zu Führungs- und Projektmanagementseminaren) in den Griff. Es muss ihnen aber klar gemacht werden, dass dieser Erfolg durch einen erheblichen Aufwand erkauft wird. Erkennen und Beseitigen des Zielkonfliktes wäre erheblich effizienter!

!Quelle
[[Heckmair, Bernd: Konstruktiv lernen, Beltz 2./2005, S. 32-35| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FKonstruktiv-lernen-Bernd-Heckmair%2Fdp%2F3407364261%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214446859%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Schwebender+Stab+%28jt%29.html]]
<data>{"abstract":"[[Schweigetechnik]], bei der Erstellung einer [[Mindmap|Mind Mapping]] in der Gruppe erzielt man erstaunliche Ergebnisse, wenn man in der ~Kreativ-Phase schweigend arbeitet."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.suseundfritzi.de/presse/pressefoto--suse-und-fritzi--das-schweigen-der-emma.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Schweigetechnik","abstract") </script>

!Schweigetechnik
<script> return "<<tiddler [[Schweigetechnik##Overview]]>>" </script> 
Wenn es darum geht, ein klar umrissenes Thema in einer Gruppe zu bearbeiten und möglichst rasch eine Fülle von [[Ideen|Ideenmanagement]] zu entwickeln, bietet sich ein [[Mind Mapping]] an. Dazu können Sie das Kernthema in die Mitte des Blattes schreiben und alle weiteren Äste der Mindmap unbeschriftet lassen. Oder Sie geben die Hauptäste vor und lassen die Teilnehmer weitere Begriffe als Unteräste ergänzen.

!Objectives

!Timing

!Audience
Group

!Materials
* 

!Procedure
Während dieser kreativen Phase beim [[Mind Mapping]] bietet sich an, schweigend zu arbeiten. Lassen Sie die Teilnehmer 10 Minuten ohne zu reden an ihren Mindmaps arbeiten. 

!Debriefing
Innerhalb kürzester Zeit kommen dabei eine Menge verwertbarer [[Ideen|Ideenmanagement]] zusammen, die anschließend gesammelt und gemeinsam sortiert werden.

!Quelle
[[Detlef Jäschke: Mindmaps. Cornelsen 2009, S. 34.| http://www.amazon.de/gp/product/3589234334?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3589234334]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Schweigetechnik+%28jt%29.html]]
<<wikify [>img(%0,%1)[%2|%3]] 60% auto title http://mgerwing.files.wordpress.com/2009/12/lego_chicago_city_view_2001.jpg>>
<<showtoc>>
!Overview
Find out how powerful Scrum can be — Learning by doing, and failing. Do not underestimate any Story... it may cost you a lot! The [[Scrum Lego City]] brings you right to the point: You will experience what it means to be agile. With the Scrum Lego City from agile42 you can find out how powerful [[Scrum]] can be.
The goal of the Game is to simulate every aspect of the Scrum process learned in theory the day before. The Team and the [[Scrum Master]] will have to put in practice everything learned during the theoretical part.

!Scrum Lego City
<<tiddler [[Scrum Lego City##Overview]]>>

!Objectives
* The goal of the Game is to simulate every aspect of the Scrum process learned in theory the day before. 
* The Team and the Scrum Master will have to put in practice everything learned during the theoretical part.
* [[Product Owner]]:
** Learn to organize a Backlog properly, prioritizing what is more important first
** Learn to measure the Team velocity and based on that make decisions, and re-prioritize the [[Product Backlog]]
** Learn to negotiate with the Team about [[acceptance criteria|Acceptance Criteria]] and the deliverable
* Team:
** Experience self-organization and pressure given from the time-box
** Learn to communicate focused on the sprint goal
** Learn how to plan and organize tasks during a sprint
** Learn to estimate fast and precisely based on the experience
** Learn to measure performance and improvements
** Learn to deal with unexpected events
* [[Scrum Master]]:
** Learn to moderate the meetings
** Learn to mediate between the Team and the Product Owner
** Learn how to deal with Impediments
** Learn how to coach and suggest improvements to the Team

!Timing
87 min

!Materials
* Product Vision: a document containing the Vision to build the LEGO city
* Requirements and User Stories (Cards): pre-compiled Requirements and Stories related to various building and elements of the City
* [[Planning Poker]] Cards
* Whiteboard or electrostatic sheets to write sprint outcome and velocity and make a whiteboard for the team
* ~Post-It to write tasks
* Pen and whiteboard markers
* Unexpected (Cards): some cards containing unexpected behavior to steer from outside the Game (e.g: you are ill, you leave the team for 4 min.) Cards - contain also suggestions on what people should do in particular situations (e.g: Prepare the whiteboard with 3 columns, commit first to the items which have a specification cause are less risky).
* LEGO, a lot, with plans (possibly CREATIVE boxes where you can build many things with the same blocks)
** [[LEGO - 5582 Ultimatives LEGO® Häuser Set, 689 Teile| http://www.amazon.de/gp/product/B001EW28JE/ref=as_li_ss_tl?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=B001EW28JE]]
** [[LEGO 6119 - Dachziegel| http://www.amazon.de/gp/product/B0013V2UU8/ref=as_li_ss_tl?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=B0013V2UU8]]
** [[LEGO 6117 - Türen und Fenster| http://www.amazon.de/gp/product/B0013UZHS6/ref=as_li_ss_tl?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=B0013UZHS6]]
** [[LEGO 5489 - Steine & Co. Ultimatives Fahrzeug Set| http://www.amazon.de/gp/product/B001U3ZMQS/ref=as_li_ss_tl?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=B001U3ZMQS]]
** [[LEGO 5487 - Steine & Co. Steinebox mit Schüttfunktion| http://www.amazon.de/gp/product/B001U3Y8JU/ref=as_li_ss_tl?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=B001U3Y8JU]]
* [[Music: "We Built The City On Rock And Roll" (Jefferson Starship)|http://en.wikipedia.org/wiki/We_Built_This_City]]

!Audience
Group

!Procedure
# Start with the product vision of the Scrum Lego City Game<br>To understand the vision of a product is the first important step in order to develop the product in the right way. This is why you need to give the vision to the whole Scrum Team at the beginning of the game.<br>Here is the vision we use… //„agile42 wants to build a website to present what can be done with LEGO bricks in only 20 min of time. You will have to use Scrum to prove that you can build a LEGO city with fully fledged buildings, cars and natural environments. The city needs to fulfill some specific criteria<br>''PO'': make clear that there are already some fixed and defined requirements and stories, and that you have prepared a backlog<br>At the end of 4 Sprint the city will be released to agile42, that will make a photo and post it on the agile42 Blog where everyone will see and vote, comment your results :-)”//
# The game will dedicate specific time to the various phases:
** 5 min. Preparation from the [[Product Vision]] for the Product Owner, includes sorting out the provided stories plus adding some own or enriching some of the
** 5 min. Product Owner presenting the Product Vision as well as a high level presentation of the Backlog, Teams can ask questions on stories or requirements
# Here you can have a release planning meeting session, where the team(s) focus in estimating as many stories as possible to have an initial idea of the Release Costs. This assumes that the Trainer guides the Product Owner in setting a reasonable Release scope (that can be adjusted anyway after every sprint).
# 5 min. [[Release planning meeting|Release Planning Meeting]], teams estimating stories from top to bottom
# Now start with the first sprint planning meeting, and prepare to run 4 Sprints and execute as much as possible of the Backlog:
** 5 min. [[Sprint planning meeting|Sprint Planning Meeting]], basically commit to some stories and make an initial task breakdown
** 5 min. [[Sprint]]
** 3 min. Review Meeting (showing the Product Owner what has been build)
** 5 min. Team [[Retrospective|Agile Retrospective]]
# At the end of the 4th Sprint the Product Owner should make the Release Review and together with the Teams analyze the results. 

!Debriefing
Discuss the outcome of the whole Release cycle in comparison with the initial Vision and Goals

!Credits
Scrum Lego City by [[agile42|http://www.agile42.com/cms/pages/lego_city_game/]] is licensed under a [[Creative Commons Attribution-Share Alike 3.0 Germany License| http://creativecommons.org/licenses/by-sa/3.0/de/]]. 

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[agile 42. Scrum Lego City| http://www.agile42.com/cms/pages/lego_city_game/]]
* [[agile 42. User Stories for the Lego City Game — PDF| http://media.agile42.com/content/PDF_User_Stories.pdf]]
* [[LEGO Digital Designer| http://www.winload.de/download/lego-digital-designer-111695]]
/%
|Name|Scrum Simulation using Lego|
|URL|http://www.youtube.com/v/PyI3_cw9OWA|
|Description|Recorded on March 3, 2009 at the Web Collective office. Teams learned the Scrum process through a simulated exercise, building a city out of Lego.|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/PyI3_cw9OWA"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/PyI3_cw9OWA" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
/***
|Name|SearchOptionsPlugin|
|Source|http://www.TiddlyTools.com/#SearchOptionsPlugin|
|Documentation|http://www.TiddlyTools.com/#SearchOptionsPluginInfo|
|Version|3.0.7|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|extend core search function with additional user-configurable options|
Adds extra options to core search function including selecting which data items to search, enabling/disabling incremental key-by-key searches, and generating a ''list of matching tiddlers'' instead of immediately displaying all matches.  This plugin also adds syntax for rendering 'search links' within tiddler content to embed one-click searches using pre-defined 'hard-coded' search terms.
!!!!!Documentation
>see [[SearchOptionsPluginInfo]]
!!!!!Configuration
<<<
Search in:
<<option chkSearchTitles>> titles <<option chkSearchText>> text <<option chkSearchTags>> tags <<option chkSearchFields>> fields <<option chkSearchShadows>> shadows
<<option chkSearchHighlight>> Highlight matching text in displayed tiddlers
<<option chkSearchList>> Show list of matches
<<option chkSearchListTiddler>> Write list to [[SearchResults]] tiddler
<<option chkSearchTitlesFirst>> Show title matches first
<<option chkSearchByDate>> Sort matching tiddlers by modification date (most recent first)
<<option chkSearchResultsOptions>> Include {{{options...}}} slider in "search again" form
<<option chkIncrementalSearch>> Incremental key-by-key search: {{twochar{<<option txtIncrementalSearchMin>>}}} or more characters,  {{threechar{<<option txtIncrementalSearchDelay>>}}} msec delay
<<option chkSearchOpenTiddlers>> Search only in tiddlers that are currently displayed
<<option chkSearchExcludeTags>> Exclude tiddlers tagged with: <<option txtSearchExcludeTags>>
<<<
!!!!!Revisions
<<<
2010.05.03 3.0.8 added chkSearchResultsOptions to allow/omit the "options..." slider from the "search again" form
|please see [[SearchOptionsPluginInfo]] for additional revision details|
2005.10.18 1.0.0 Initial Release
<<<
!!!!!Code
***/
//{{{
version.extensions.SearchOptionsPlugin= {major: 3, minor: 0, revision: 8, date: new Date(2010,5,3)};

var defaults={
	chkSearchTitles:	true,
	chkSearchText:		true,
	chkSearchTags:		true,
	chkSearchFields:	true,
	chkSearchTitlesFirst:	true,
	chkSearchList:		true,
	chkSearchHighlight:	true,
	chkSearchListTiddler:	false,
	chkSearchByDate:	false,
	chkIncrementalSearch:	true,
	chkSearchShadows:	true,
	chkSearchOpenTiddlers:	false,
	chkSearchResultsOptions:true,
	chkSearchExcludeTags:	true,
	txtSearchExcludeTags:	'excludeSearch',
	txtIncrementalSearchDelay:	500,
	txtIncrementalSearchMin:	3
}; for (var id in defaults) if (config.options[id]===undefined)
	config.options[id]=defaults[id];

if (config.macros.search.reportTitle==undefined)
	config.macros.search.reportTitle="SearchResults"; // note: not a cookie!
config.macros.search.label+="\xa0"; // a little bit of space just because it looks better
//}}}
// // searchLink: {{{[search[text to find]] OR [search[text to display|text to find]]}}}
//{{{
config.formatters.push( {
	name: "searchLink",
	match: "\\[search\\[",
	lookaheadRegExp: /\[search\[(.*?)(?:\|(.*?))?\]\]/mg,
	prompt: "search for: '%0'",
	handler: function(w)
	{
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var label=lookaheadMatch[1];
			var text=lookaheadMatch[2]||label;
			var prompt=this.prompt.format([text]);
			var btn=createTiddlyButton(w.output,label,prompt,
				function(){story.search(this.getAttribute("searchText"))},"searchLink");
			btn.setAttribute("searchText",text);
			w.nextMatch = this.lookaheadRegExp.lastIndex;
		}
	}
});
//}}}
// // incremental search uses option settings instead of hard-coded delay and minimum input values
//{{{
var fn=config.macros.search.onKeyPress;
fn=fn.toString().replace(/500/g, "config.options.txtIncrementalSearchDelay||500");
fn=fn.toString().replace(/> 2/g, ">=(config.options.txtIncrementalSearchMin||3)");
eval("config.macros.search.onKeyPress="+fn);
//}}}
// // REPLACE story.search() for option to "show search results in a list"
//{{{
Story.prototype.search = function(text,useCaseSensitive,useRegExp)
{
	var co=config.options; // abbrev
	var re=new RegExp(useRegExp ? text : text.escapeRegExp(),useCaseSensitive ? "mg" : "img");
	if (config.options.chkSearchHighlight) highlightHack=re;
	var matches = store.search(re,co.chkSearchByDate?"modified":"title","");
	if (co.chkSearchByDate) matches=matches.reverse(); // most recent first
	var q = useRegExp ? "/" : "'";
	clearMessage();
	if (!matches.length) {
		if (co.chkSearchListTiddler) discardSearchResults();
		displayMessage(config.macros.search.failureMsg.format([q+text+q]));
	} else {
		if (co.chkSearchList||co.chkSearchListTiddler) 
			reportSearchResults(text,matches);
		else {
			var titles = []; for(var t=0; t<matches.length; t++) titles.push(matches[t].title);
			this.closeAllTiddlers(); story.displayTiddlers(null,titles);
			displayMessage(config.macros.search.successMsg.format([matches.length, q+text+q]));
		}
	}
	highlightHack = null;
}
//}}}
// // REPLACE store.search() for enhanced searching/sorting options
//{{{
TiddlyWiki.prototype.search = function(searchRegExp,sortField,excludeTag,match)
{
	var co=config.options; // abbrev
	var tids = this.reverseLookup("tags",excludeTag,!!match,sortField);
	var opened=[]; story.forEachTiddler(function(tid,elem){opened.push(tid);});

	// eliminate tiddlers tagged with excluded tags
	if (co.chkSearchExcludeTags&&co.txtSearchExcludeTags.length) {
		var ex=co.txtSearchExcludeTags.readBracketedList();
		var temp=[]; for(var t=tids.length-1; t>=0; t--)
			if (!tids[t].tags.containsAny(ex)) temp.push(tids[t]);
		tids=temp;
	}

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

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

	return results;
}
//}}}
// // HIJACK core {{{<<search>>}}} macro to add "report" and "simple inline" output
//{{{
config.macros.search.SOP_handler=config.macros.search.handler;
config.macros.search.handler = function(place,macroName,params)
{
	// if "report", use SearchOptionsPlugin report generator for inline output
	if (params[1]&&params[1].substr(0,6)=="report") {
		var keyword=params[0];
		var options=params[1].split("=")[1]; // split "report=option+option+..."
		var heading=params[2]?params[2].unescapeLineBreaks():"";
		var matches=store.search(new RegExp(keyword.escapeRegExp(),"img"),"title","excludeSearch");
		if (matches.length) wikify(heading+window.formatSearchResults(keyword,matches,options),place);
	} else if (params[1]) {
		var keyword=params[0];
		var heading=params[1]?params[1].unescapeLineBreaks():"";
		var seperator=params[2]?params[2].unescapeLineBreaks():", ";
		var matches=store.search(new RegExp(keyword.escapeRegExp(),"img"),"title","excludeSearch");
		if (matches.length) {
			var out=[];
			for (var m=0; m<matches.length; m++) out.push("[["+matches[m].title+"]]");
			wikify(heading+out.join(seperator),place);
		}
	} else
		config.macros.search.SOP_handler.apply(this,arguments);
};
//}}}
// // SearchResults panel handling
//{{{
setStylesheet(".searchResults { padding:1em 1em 0 1em; }","searchResults"); // matches std tiddler padding

config.macros.search.createPanel=function(text,matches,body) {

	function getByClass(e,c) { var d=e.getElementsByTagName("div");
		for (var i=0;i<d.length;i++) if (hasClass(d[i],c)) return d[i]; }
	var panel=createTiddlyElement(null,"div","searchPanel","searchPanel");
	this.renderPanel(panel,text,matches,body);
	var oldpanel=document.getElementById("searchPanel");
	if (!oldpanel) { // insert new panel just above tiddlers
		var da=document.getElementById("displayArea");
		da.insertBefore(panel,da.firstChild);
	} else { // if panel exists
		var oldwrap=getByClass(oldpanel,"searchResults");
		var newwrap=getByClass(panel,"searchResults");
		// if no prior content, just insert new content
		if (!oldwrap) oldpanel.insertBefore(newwrap,null);
		else {	// swap search results content but leave containing panel intact
			oldwrap.style.display='block'; // unfold wrapper if needed
			var i=oldwrap.getElementsByTagName("input")[0]; // get input field
			if (i) { var pos=this.getCursorPos(i); i.onblur=null; } // get cursor pos, ignore blur
			oldpanel.replaceChild(newwrap,oldwrap);
			panel=oldpanel; // use existing panel
		} 
	}
	this.showPanel(true,pos);
	return panel;
}

config.macros.search.renderPanel=function(panel,text,matches,body) {

	var wrap=createTiddlyElement(panel,"div",null,"searchResults");
	wrap.onmouseover = function(e){ addClass(this,"selected"); }
	wrap.onmouseout = function(e){ removeClass(this,"selected"); }
	// create toolbar: "open all", "fold/unfold", "close"
	var tb=createTiddlyElement(wrap,"div",null,"toolbar");
	var b=createTiddlyButton(tb, "open all", "open all matching tiddlers", function() {
		story.displayTiddlers(null,this.getAttribute("list").readBracketedList()); return false; },"button");
	var list=""; for(var t=0;t<matches.length;t++) list+='[['+matches[t].title+']] ';
	b.setAttribute("list",list);
	var b=createTiddlyButton(tb, "fold", "toggle display of search results", function() {
		config.macros.search.foldPanel(this); return false; },"button");
	var b=createTiddlyButton(tb, "close", "dismiss search results",	function() {
		config.macros.search.showPanel(false); return false; },"button");
	createTiddlyText(createTiddlyElement(wrap,"div",null,"title"),"Search for: "+text); // title
	wikify(body,createTiddlyElement(wrap,"div",null,"viewer")); // report
	return panel;
}

config.macros.search.showPanel=function(show,pos) {
	var panel=document.getElementById("searchPanel");
	var i=panel.getElementsByTagName("input")[0];
	i.onfocus=show?function(){config.macros.search.stayFocused(true);}:null;
	i.onblur=show?function(){config.macros.search.stayFocused(false);}:null;
	if (show && panel.style.display=="block") { // if shown, grab focus, restore cursor
		if (i&&this.stayFocused()) { i.focus(); this.setCursorPos(i,pos); }
		return;
	}
	if(!config.options.chkAnimate) {
		panel.style.display=show?"block":"none";
		if (!show) { removeChildren(panel); config.macros.search.stayFocused(false); }
	} else {
		var s=new Slider(panel,show,false,show?"none":"children");
		s.callback=function(e,p){e.style.overflow="visible";}
		anim.startAnimating(s);
	}
	return panel;
}

config.macros.search.foldPanel=function(button) {
	var d=document.getElementById("searchPanel").getElementsByTagName("div");
	for (var i=0;i<d.length;i++) if (hasClass(d[i],"viewer")) var v=d[i]; if (!v) return;
	var show=v.style.display=="none";
	if(!config.options.chkAnimate)
		v.style.display=show?"block":"none";
	else {
		var s=new Slider(v,show,false,"none");
		s.callback=function(e,p){e.style.overflow="visible";}
		anim.startAnimating(s);
	}
	button.innerHTML=show?"fold":"unfold";
	return false;
}

config.macros.search.stayFocused=function(keep) { // TRUE/FALSE=set value, no args=get value
	if (keep===undefined) return this.keepReportInFocus;
	this.keepReportInFocus=keep;
	return keep
}	

config.macros.search.getCursorPos=function(i) {
	var s=0; var e=0; if (!i) return { start:s, end:e };
	try {
		if (i.setSelectionRange) // FF
			{ s=i.selectionStart; e=i.selectionEnd; }
		if (document.selection && document.selection.createRange) { // IE
			var r=document.selection.createRange().duplicate();
			var len=r.text.length; s=0-r.moveStart('character',-100000); e=s+len;
		}
	}catch(e){};
	return { start:s, end:e };
}
config.macros.search.setCursorPos=function(i,pos) {
	if (!i||!pos) return; var s=pos.start; var e=pos.end;
	if (i.setSelectionRange) //FF
		i.setSelectionRange(s,e);
	if (i.createTextRange) // IE
		{ var r=i.createTextRange(); r.collapse(true); r.moveStart("character",s); r.select(); }
}
//}}}
// // SearchResults report generation
// note: these functions are defined globally, so they can be more easily redefined to customize report formats//
//{{{
if (!window.reportSearchResults) window.reportSearchResults=function(text,matches)
{
	var cms=config.macros.search; // abbrev
	var body=window.formatSearchResults(text,matches);
	if (!config.options.chkSearchListTiddler) // show #searchResults panel
		window.scrollTo(0,ensureVisible(cms.createPanel(text,matches,body)));
	else { // write [[SearchResults]] tiddler
		var title=cms.reportTitle;
		var who=config.options.txtUserName;
		var when=new Date();
		var tags="excludeLists excludeSearch temporary";
		var tid=store.getTiddler(title); if (!tid) tid=new Tiddler();
		tid.set(title,body,who,when,tags);
		store.addTiddler(tid);
		story.closeTiddler(title);
		story.displayTiddler(null,title);
	}
}

if (!window.formatSearchResults) window.formatSearchResults=function(text,matches,opt)
{
	var body='';
	var title=config.macros.search.reportTitle
	var q = config.options.chkRegExpSearch ? "/" : "'";
	if (!opt) var opt="all";
	var parts=opt.split("+");
	for (var i=0; i<parts.length; i++) { var p=parts[i].toLowerCase();
		if (p=="again"||p=="all")   body+=window.formatSearchResults_again(text,matches);
		if (p=="summary"||p=="all") body+=window.formatSearchResults_summary(text,matches);
		if (p=="list"||p=="all")    body+=window.formatSearchResults_list(text,matches);
		if (p=="buttons"||p=="all") body+=window.formatSearchResults_buttons(text,matches);
	}
	return body;
}

if (!window.formatSearchResults_again) window.formatSearchResults_again=function(text,matches)
{
	var title=config.macros.search.reportTitle
	var body='';
	// search again
	body+='{{span{<<search "'+text.replace(/"/g,'&#x22;')+'">> /%\n';
	body+='%/<html><input type="button" value="search again"';
	body+=' onclick="var t=this.parentNode.parentNode.getElementsByTagName(\'input\')[0];';
	body+=' config.macros.search.doSearch(t); return false;">';
	if (!config.options.chkSearchResultsOptions) { // omit "options..."
		body+='</html>}}}\n\n';
		return body;
	}
	body+=' <a href="javascript:;" onclick="';
	body+=' var e=this.parentNode.nextSibling;';
	body+=' var show=e.style.display!=\'block\';';
	body+=' if(!config.options.chkAnimate) e.style.display=show?\'block\':\'none\';';
	body+=' else anim.startAnimating(new Slider(e,show,false,\'none\'));';
	body+=' return false;">options...</a>';
	body+='</html>@@display:none;border-left:1px dotted;margin-left:1em;padding:0;padding-left:.5em;font-size:90%;/%\n';
	body+='	%/<<option chkSearchTitles>>titles /%\n';
	body+='	%/<<option chkSearchText>>text /%\n';
	body+='	%/<<option chkSearchTags>>tags /%\n';
	body+='	%/<<option chkSearchFields>>fields /%\n';
	body+='	%/<<option chkSearchShadows>>shadows\n';
	body+='	<<option chkCaseSensitiveSearch>>case-sensitive /%\n';
	body+='	%/<<option chkRegExpSearch>>text patterns /%\n';
	body+='	%/<<option chkSearchByDate>>sorted by date\n';
	body+='	<<option chkSearchHighlight>> highlight matching text in displayed tiddlers\n';
	body+='	<<option chkIncrementalSearch>>incremental key-by-key search: /%\n';
	body+='	%/{{twochar{<<option txtIncrementalSearchMin>>}}} or more characters, /%\n';
	body+='	%/{{threechar{<<option txtIncrementalSearchDelay>>}}} msec delay\n';
	body+='	<<option chkSearchOpenTiddlers>> search only in tiddlers that are currently displayed\n';
	body+='	<<option chkSearchExcludeTags>>exclude tiddlers tagged with:\n';
	body+='	{{editor{<<option txtSearchExcludeTags>>}}}/%\n';
	body+='%/@@}}}\n\n';
	return body;
}

if (!window.formatSearchResults_summary) window.formatSearchResults_summary=function(text,matches)
{
	// summary: nn tiddlers found matching '...', options used
	var body='';
	var co=config.options; // abbrev
	var title=config.macros.search.reportTitle
	var q = co.chkRegExpSearch ? "/" : "'";
	body+="''"+config.macros.search.successMsg.format([matches.length,q+"{{{"+text+"}}}"+q])+"''\n";
	var opts=[];
	if (co.chkSearchTitles) opts.push("titles");
	if (co.chkSearchText) opts.push("text");
	if (co.chkSearchTags) opts.push("tags");
	if (co.chkSearchFields) opts.push("fields");
	if (co.chkSearchShadows) opts.push("shadows");
	if (co.chkSearchOpenTiddlers) body+="^^//search limited to displayed tiddlers only//^^\n";
	body+="~~&nbsp; searched in "+opts.join(" + ")+"~~\n";
	body+=(co.chkCaseSensitiveSearch||co.chkRegExpSearch?"^^&nbsp; using ":"")
		+(co.chkCaseSensitiveSearch?"case-sensitive ":"")
		+(co.chkRegExpSearch?"pattern ":"")
		+(co.chkCaseSensitiveSearch||co.chkRegExpSearch?"matching^^\n":"");
	return body;
}

if (!window.formatSearchResults_list) window.formatSearchResults_list=function(text,matches)
{
	// bullet list of links to matching tiddlers
	var body='';
	var co=config.options; // abbrev
	var pattern=co.chkRegExpSearch?text:text.escapeRegExp();
	var sensitive=co.chkCaseSensitiveSearch?"mg":"img";
	var link='{{tiddlyLinkExisting{<html><nowiki><a href="javascript:;" onclick="'
		+'if(config.options.chkSearchHighlight)'
		+'	highlightHack=new RegExp(\x27'+pattern+'\x27.escapeRegExp(),\x27'+sensitive+'\x27);'
		+'story.displayTiddler(null,\x27%0\x27);'
		+'highlightHack = null; return false;'
		+'" title="%2">%1</a></html>}}}';
	for(var t=0;t<matches.length;t++) {
		body+="* ";
		if (co.chkSearchByDate)
			body+=matches[t].modified.formatString('YYYY.0MM.0DD 0hh:0mm')+" ";
		var title=matches[t].title;
		var fixup=title.replace(/'/g,"\\x27").replace(/"/g,"\\x22");
		var tid=store.getTiddler(title);
		var tip=tid?tid.getSubtitle():''; tip=tip.replace(/"/g,"&quot;");
		body+=link.format([fixup,title,tip])+'\n';
	}
	return body;
}

if (!window.formatSearchResults_buttons) window.formatSearchResults_buttons=function(text,matches)
{
	// embed buttons only if writing SearchResults to tiddler
	if (!config.options.chkSearchListTiddler) return "";
	// "open all" button
	var title=config.macros.search.reportTitle;
	var body="";
	body+="@@diplay:block;<html><input type=\"button\" href=\"javascript:;\" "
		+"onclick=\"story.displayTiddlers(null,[";
	for(var t=0;t<matches.length;t++)
		body+="'"+matches[t].title.replace(/\'/mg,"\\'")+"'"+((t<matches.length-1)?", ":"");
	body+="],1);\" accesskey=\"O\" value=\"open all matching tiddlers\"></html> ";
	// "discard SearchResults" button
	body+="<html><input type=\"button\" href=\"javascript:;\" "
		+"onclick=\"discardSearchResults()\" value=\"discard "+title+"\"></html>";
	body+="@@\n";
	return body;
}

if (!window.discardSearchResults) window.discardSearchResults=function()
{
	// remove the tiddler
	story.closeTiddler(config.macros.search.reportTitle);
	store.deleteTiddler(config.macros.search.reportTitle);
	store.notify(config.macros.search.reportTitle,true);
}
//}}}
/***
|Name|SectionLinksPlugin|
|Source|http://www.TiddlyTools.com/#SectionLinksPlugin|
|Documentation|http://www.TiddlyTools.com/#SectionLinksPlugin|
|Version|1.4.0|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|allow tiddler sections in TiddlyLinks to be used as anchor points|
This plugin enhances the processing of section references so they can be used in links to auto-scroll to the indicated heading within a tiddler (i.e., similar to the 'anchor' behavior provided in HTML by {{{<a name="foo">}}} and {{{<a href="#foo">...</a>}}})
!!!Usage
<<<
!!!!~TiddlyLink syntax
>The standard link syntax has been extended so that a section name can included in a tiddler link (e.g., {{{[[SomeTiddler##SomeSection]]}}}).  When clicked, the tiddler is displayed and the specified section heading will be automatically scrolled into view. If the tiddler title is omitted or the 'here' keyword is used (e.g., {{{[[##SomeSection]]}}} or {{{[[here##SomeSection]]>>}}}), then the current containing tiddler is implied by default.
>
>//Note: the enhanced "section"" link syntax can also be used with ''anchor'' elements defined by HTML syntax://
>>{{{<html><a name="sectionname" /></html>}}}
>//This provides an alternative syntax can automatically scroll to content without requiring use of the standard TW section ''heading'' syntax.//
!!!!{{{<<tiddler>>}}} macro 
>The {{{<<tiddler SomeTiddler##SomeSection>>}}} syntax has been extended so that when the tiddler title is omitted or the 'here' keyword is used (e.g., {{{<<tiddler ##SomeSection>>}}} or {{{<<tiddler here##SomeSection>>}}}), then the current containing tiddler is implied by default.
!!!!"""<<sectionTOC>>""" macro
>This macro generates a 'Table of Contents'-style numbered-bullet list with links to all sections within the current tiddler.  Simply place the following macro at the //end of the tiddler content// (i.e., following all section headings):
{{{
<<sectionTOC>> or <<sectionTOC className>>
}}}
>Note: The macro must occur at the end of the tiddler in order to locate the rendered section headings that precede it. In addition, to position the macro's //output// within the tiddler, you must create a special 'target element' that uses a specified classname (default='sectionTOC'), like this:
{{{
{{sectionTOC{}}}
}}}
>When the {{{<<sectionTOC>>}}} macro is rendered, it will find the matching 'sectionTOC'-classed element and writes it's output there.  You can also add the macro and/or target elements directly to the [[ViewTemplate]] definition, so that every tiddler can automatically display the table of contents:
{{{
<span class='sectionTOC'></span> <!-- target element -->
…
<span macro='sectionTOC'></span> <!-- must be at end of tiddler -->
}}}
<<<
!!!Examples
<<<
links to sections defined by ''TW heading syntax'' (e.g, {{{!!!sectionname}}}):{{indent{
[[SectionLinksPlugin##onClickTiddlerLink]]
[[##onClickTiddlerLink]] //(current tiddler implied)//}}}
links to anchors defined by ''HTML syntax'' (e.g., {{{<html><a href="anchorname"></html>}}}):{{indent{
[[SectionLinksPlugin##sampleanchorlink]]
[[##sampleanchorlink]] //(current tiddler implied)//}}}
<<<
!!!Revisions
<<<
2010.08.09 1.4.0 in scrollToSection(), added support for using HTML <a name="..."> anchor elements
2009.08.21 1.3.4 added handling to ignore leading/trailing whitespace in section references
2009.08.21 1.3.3 in createTiddlyLink(), add tiddlyLinkNonExistingSection class if matching section is not found
2009.08.14 1.3.2 in createTiddlyLink(), don't override core value for ~TiddlyLink attribute
2009.08.02 1.3.1 in sectionTOC.handler(), trim leading/trailing whitespace from generated section links
2009.08.01 1.3.0 in scrollToSection(), apply 3-tier section matching (exact, startsWith, contains)
2009.07.06 1.2.2 fixed displayTiddler() hijack
2009.07.03 1.2.1 in {{{<<sectionTOC>>}}}, suppress output if target is not found
2009.06.02 1.2.0 added support for 'here' keyword in {{{[[here##section]]}}} links and {{{<<tiddler here##section>>}}} macro
2009.04.09 1.1.1 in sectionTOC macro, make target visible when TOC is rendered.
2009.01.18 1.1.0 added {{{<<sectionTOC>>}}} macro to generate numbered-bullet links to sections of current tiddler
2009.01.06 1.0.0 converted to stand-alone plugin
2008.10.14 0.0.0 initial release (as [[CoreTweaks]] #784 - http://trac.tiddlywiki.org/ticket/784)
<<<
!!!Code
***/
//{{{
version.extensions.SectionLinksPlugin= {major: 1, minor: 4, revision: 0, date: new Date(2010,8,9)};

Story.prototype.scrollToSection = function(title,section) {
	if (!title||!section) return; var t=this.getTiddler(title); if (!t) return null;
	var elems=t.getElementsByTagName('*');
	var heads=[]; var anchors=[];
	for (var i=0; i<elems.length; i++)
		if (['H1','H2','H3','H4','H5'].contains(elems[i].nodeName)) heads.push(elems[i]);
	for (var i=0; i<elems.length; i++)
		if (elems[i].nodeName=='A' && (elems[i].getAttribute('name')||'').length) anchors.push(elems[i]);
	var found=null;
	for (var i=0; i<heads.length; i++)
		if (getPlainText(heads[i]).trim()==section) { found=heads[i]; break; }
	if (!found) for (var i=0; i<heads.length; i++)
		if (getPlainText(heads[i]).trim().startsWith(section)) { found=heads[i]; break; }
	if (!found) for (var i=0; i<heads.length; i++)
		if (getPlainText(heads[i]).trim().indexOf(section)!=-1) { found=heads[i]; break; }
	if (!found) for (var i=0; i<anchors.length; i++)
		if (anchors[i].getAttribute('name')==section) { found=anchors[i]; break; }
	if (!found) for (var i=0; i<anchors.length; i++)
		if (anchors[i].getAttribute('name').startsWith(section)) { found=anchors[i]; break; }
	if (!found) for (var i=0; i<anchors.length; i++)
		if (anchors[i].getAttribute('name').indexOf(section)!=-1) { found=anchors[i]; break; }
	if (found) {
		// if section heading is collapsed, click to expand it - see [[FoldHeadingsPlugin]]
		if (hasClass(found,'foldable') && found.nextSibling.style.display=='none') found.onclick();
		// scroll *after* tiddler animation
		var delay=config.options.chkAnimate?config.animDuration+100:0;
		setTimeout('window.scrollTo('+findPosX(found)+','+findPosY(found)+')',delay);
		return found;
	}
}
//}}}
/***
!!!!core hijacks
***/
/***
!!!!!createTiddlyLink
***/
//{{{
// [[tiddlername##section]] and [[##section]]
if (!window.createTiddlyLink_section)
	window.createTiddlyLink_section=window.createTiddlyLink;
window.createTiddlyLink=function(place,title) {
	var t=story.findContainingTiddler(place); var tid=t?t.getAttribute('tiddler'):'';
	var parts=title.split(config.textPrimitives.sectionSeparator);
	var title=parts[0]; var section=parts[1]; if (section) section=section.trim();
	if (!title.length || title.toLowerCase()=='here') title=tid;  // default=current tiddler
	arguments[1]=title;
	var btn=createTiddlyLink_section.apply(this,arguments);
	if (section) {
		btn.setAttribute('section',section);
		if (store.getTiddlerText(title+config.textPrimitives.sectionSeparator+section)===null)
			addClass(btn,'tiddlyLinkNonExistingSection');
	}
	return btn;
}
//}}}
/***
!!!!!onClickTiddlerLink
***/
//{{{
if (!window.onClickTiddlerLink_section)
	window.onClickTiddlerLink_section=window.onClickTiddlerLink;
window.onClickTiddlerLink=function(ev) {
	var e=ev||window.event;	var target=resolveTarget(e); var title=null;
	while (target!=null && title==null) {
		title=target.getAttribute('tiddlyLink');
		section=target.getAttribute('section');
		target=target.parentNode;
	} 
	var t=story.findContainingTiddler(target); var tid=t?t.getAttribute('tiddler'):'';
	if (title!=tid||!section) // avoid excess scrolling for intra-tiddler links
		onClickTiddlerLink_section.apply(this,arguments);
	story.scrollToSection(title,section);
	return false;
}
//}}}
/***
!!!!! displayTiddler
***/
//{{{
if (!Story.prototype.displayTiddler_section)
	Story.prototype.displayTiddler_section=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler)
{
	var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
	var parts=title.split(config.textPrimitives.sectionSeparator);
	var title=parts[0]; var section=parts[1]; if (section) section=section.trim();
	if (!title.length || title.toLowerCase()=='here') {
		var t=story.findContainingTiddler(place);
		title=t?t.getAttribute('tiddler'):'';
	}
	arguments[1]=title;  // default=current tiddler
	this.displayTiddler_section.apply(this,arguments);
	story.scrollToSection(title,section);
}
//}}}
/***
<html><a name="sampleanchorlink" /></html>This is a sample ''anchor link'': {{{<html><a name="sampleanchorlink" /></html>}}}
!!!!!isExternalLink
***/
//{{{
if (!config.formatterHelpers.isExternalLink_section)
	config.formatterHelpers.isExternalLink_section=config.formatterHelpers.isExternalLink;
config.formatterHelpers.isExternalLink=function(link) {
	if (link.indexOf(config.textPrimitives.sectionSeparator)!=-1) return false;
	return config.formatterHelpers.isExternalLink_section.apply(this,arguments);
}
//}}}
/***
!!!!!tiddler.handler
***/
//{{{
if (!config.macros.tiddler.handler_section)
	config.macros.tiddler.handler_section=config.macros.tiddler.handler;
config.macros.tiddler.handler=function(place,macroName,params,wikifier,paramString,tiddler)
{
	if (!params[0]) return;
	var sep=config.textPrimitives.sectionSeparator;
	var parts=params[0].split(sep); var tid=parts[0]; var sec=parts[1]; if (sec) sec=sec.trim();
	if ((tid.toLowerCase()=='here'||!tid.length) && sec) { // fixup for 'here##section' and '##section'
		var here=story.findContainingTiddler(place)
		var tid=here?here.getAttribute('tiddler'):tiddler?tiddler.title:'';
		arguments[2][0]=tid+sep+sec;
		arguments[4]=paramString.replace(new RegExp('(here)?'+sep+sec),tid+sep+sec);
	}
	config.macros.tiddler.handler_section.apply(this,arguments);
}
//}}}
/***
!!!!sectionTOC macro
***/
//{{{
config.macros.sectionTOC = {
	targetClass: 'sectionTOC',
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var out=[];
		var targetClass=params[0]||this.targetClass;
		var t=story.findContainingTiddler(place); if (!t) return;
		var elems=t.getElementsByTagName('*');
		var level=5; // topmost heading level
		for (var i=0; i<elems.length; i++) {
			var txt=getPlainText(elems[i]).trim();
			var link='[['+txt+'|##'+txt+']]';
			switch(elems[i].nodeName) {
				case 'H1': out.push('#'+link);		level=1; break;
				case 'H2': out.push('##'+link);		level=level<2?level:2; break;
				case 'H3': out.push('###'+link);	level=level<3?level:3; break;
				case 'H4': out.push('####'+link);	level=level<4?level:4; break;
				case 'H5': out.push('#####'+link);	level=level<5?level:5; break;
				default: if (hasClass(elems[i],targetClass)) var target=elems[i];
			}
		}
		// trim excess bullet levels
		if (level>1) for (var i=0; i<out.length; i++) out[i]=out[i].substr(level-1);
		// show numbered list
		if (out.length && target) {
			if (target.style.display=='none') target.style.display='block';
			wikify(out.join('\n'),target);
		}
	}
}
//}}}
/***
!!!Invoke macro
{{{
<<sectionTOC>>
}}}
***/
// //<<sectionTOC>>
<data>{"abstract":"[[Seilquadrat]], eine leicht durchzuführende Übung, die intensive [[Absprache|Kommunikation]] im [[Team]] erfordert. Auch Indoor verwendbar.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.neuland-ev.de/bildvignette/seilquadrat.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Seilquadrat","abstract") </script>

!Seilquadrat
<script> return "<<tiddler [[Seilquadrat##Overview]]>>" </script> 

!Objectives
* [[Kommunikation]]

!Timing

!Audience
Group

!Materials
* Seil
* Augenbinden

!Procedure
Bei dieser Übung werden allen Teilnehmern die Augen verbunden. Dann sollen sie aus einem ca. 20 Meter langen Seil ein Quadrat legen. 
Das [[Problem]] dabei ist nicht nur, dass allen die Augen verbunden sind. Jeder muss das Seil ständig mit mindestens einer Hand festhalten. 
Man mag sich vorstellen, welche Absprachen und welche Zusammenarbeit nötig ist, um diese im Grunde einfache Aufgabe zu lösen (alternativ kann auch ein gleichschenkliges Dreieck gelegt werden.)

!Debriefing

!Quelle
Bernhard Kuntz: Lernfeld Natur, ManagerSemiare, 6/1999, S.93

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Outdoor]<<tiddlerList tags:"outdoor,-newTemplate" header:"Übungen Outdoor">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Seilquadrat+%28jt%29]]
<data>{"abstract":"[[Selbstmotivation]], das Seminar ist zu Ende, erschöpft, aber auch zufrieden mit dem Geleisteten [[loben|Lob und Anerkennung]] sich die Teilnehmer gegenseitig.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.lernen-heute.de/pics/motivation.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Selbstmotivation","abstract") </script>

!Selbstmotivation
<script> return "<<tiddler [[Selbstmotivation##Overview]]>>" </script> 
Immer wieder lustig zum Abschluss eines Seminares sind Rituale, in denen die Teilnehmer sich "selbst" loben sollen. 

!Objectives
* [[Selbstmotivation]]

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Ab 6 TN hilft es hier, die Teilnehmer in einem Kreis aufzustellen - alle mit der gleichen Schulter zur Kreismitte. 
Dann legt jeder die gegengleichen Hand auf die Schulter des Vormannes/-Frau. Die Gruppe geht los und jeder kopft dem Vordermann auf die Schulter und sagt //"Mensch, das haben wir toll gemacht"// o.ä.
Damit das nicht zu einseitig wird, alles in der Gegenrichtung nochmals. 
Sorgt immer für eine gute Stimmung.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://www.creative-beratung.de
* [[DeMotivational Posters| http://www.riceconsulting.com/humor/De-motivation.ppt]]
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Selbstmotivation+%28Klein%29]]
* [[Self as an Agent of Change| http://www.au.af.mil/au/awc/awcgate/navy/knowing/knowing_selfaschange.htm]]
/***
|Name:|SelectThemePlugin|
|Description:|Lets you easily switch theme and palette|
|Version:|1.0.1 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#SelectThemePlugin|
|Author:|[[SimonBaird]] <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
* Borrows largely from ThemeSwitcherPlugin by Martin Budden http://www.martinswiki.com/#ThemeSwitcherPlugin
* Theme is cookie based. But set a default by setting config.options.txtTheme in MptwConfigPlugin (for example)
* Palette is not cookie based. It actually overwrites your ColorPalette tiddler when you select a palette, so beware. 
!Usage
* {{{<<selectTheme>>}}} makes a dropdown selector
* {{{<<selectPalette>>}}} makes a dropdown selector
* {{{<<applyTheme>>}}} applies the current tiddler as a theme
* {{{<<applyPalette>>}}} applies the current tiddler as a palette
* {{{<<applyTheme TiddlerName>>}}} applies TiddlerName as a theme
* {{{<<applyPalette TiddlerName>>}}} applies TiddlerName as a palette
***/
//{{{

config.macros.selectTheme = {
	label: {
      		selectTheme:"select theme",
      		selectPalette:"select palette"
	},
	prompt: {
		selectTheme:"Select the current theme",
		selectPalette:"Select the current palette"
	},
	tags: {
		selectTheme:'systemTheme',
		selectPalette:'systemPalette'
	}
};

config.macros.selectTheme.handler = function(place,macroName)
{
	var btn = createTiddlyButton(place,this.label[macroName],this.prompt[macroName],this.onClick);
	// want to handle palettes and themes with same code. use mode attribute to distinguish
	btn.setAttribute('mode',macroName);
};

config.macros.selectTheme.onClick = function(ev)
{
	var e = ev ? ev : window.event;
	var popup = Popup.create(this);
	var mode = this.getAttribute('mode');
	var tiddlers = store.getTaggedTiddlers(config.macros.selectTheme.tags[mode]);
	// for default
	if (mode == "selectPalette") {
		var btn = createTiddlyButton(createTiddlyElement(popup,'li'),"(default)","default color palette",config.macros.selectTheme.onClickTheme);
		btn.setAttribute('theme',"(default)");
		btn.setAttribute('mode',mode);
	}
	for(var i=0; i<tiddlers.length; i++) {
		var t = tiddlers[i].title;
		var name = store.getTiddlerSlice(t,'Name');
		var desc = store.getTiddlerSlice(t,'Description');
		var btn = createTiddlyButton(createTiddlyElement(popup,'li'), name?name:t, desc?desc:config.macros.selectTheme.label['mode'], config.macros.selectTheme.onClickTheme);
		btn.setAttribute('theme',t);
		btn.setAttribute('mode',mode);
	}
	Popup.show();
	return stopEvent(e);
};

config.macros.selectTheme.onClickTheme = function(ev)
{
	var mode = this.getAttribute('mode');
	var theme = this.getAttribute('theme');
	if (mode == 'selectTheme')
		story.switchTheme(theme);
	else // selectPalette
		config.macros.selectTheme.updatePalette(theme);
	return false;
};

config.macros.selectTheme.updatePalette = function(title)
{
	if (title != "") {
		store.deleteTiddler("ColorPalette");
		if (title != "(default)")
			store.saveTiddler("ColorPalette","ColorPalette",store.getTiddlerText(title),
					config.options.txtUserName,undefined,"");
		refreshAll();
		if(config.options.chkAutoSave)
			saveChanges(true);
	}
};

config.macros.applyTheme = {
	label: "apply",
	prompt: "apply this theme or palette" // i'm lazy
};

config.macros.applyTheme.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	var useTiddler = params[0] ? params[0] : tiddler.title;
	var btn = createTiddlyButton(place,this.label,this.prompt,config.macros.selectTheme.onClickTheme);
	btn.setAttribute('theme',useTiddler);
	btn.setAttribute('mode',macroName=="applyTheme"?"selectTheme":"selectPalette"); // a bit untidy here
}

config.macros.selectPalette = config.macros.selectTheme;
config.macros.applyPalette = config.macros.applyTheme;

config.macros.refreshAll = { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
	createTiddlyButton(place,"refresh","refresh layout and styles",function() { refreshAll(); });
}};

//}}}
<data>{"abstract":"[[Semantische Intuition]], wenn der ~Kreativ-Prozess stecken bleibt, führen zufällige Wortkombinationen zu neuen Lösungsansätzen.   "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.berlinfoil.de/immagini/mulino.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Semantische Intuition","abstract") </script>

!Semantische Intuition
<script> return "<<tiddler [[Semantische Intuition##Overview]]>>" </script> 

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Der Moderator hat eine Liste mit Zahlen von 1 bis 100. Jeder Zahl ist ein Begriff zugeordnet (Maximierung, Optimierung, Gewicht, Druck...). 
Die Teilnehmer an der Kreativsitzung bilden ~Dreier-Gruppen und suchen sich zwei Zahlen zwischen 1 und 100 aus. Sodann erhalten sie die Liste mit den zugeordneten Worten und bilden aus den beiden Worten ein neues: Druckmaximierung, Optimierungsgewicht…

Die konkrete Frage lautet anschließend: "Was könnte dieses Wort mit dem aktuellen Thema zu tun haben?"

Die zufällige Wortkommunikation erzeugt neue Gedankenverbindungen und führt zu ungewohnten Lösungsansätzen.

!Debriefing

!Quelle
Mathias Irle: Die Geburtshelfer, Brand eins 8/2006, S. 71

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Semantische+Intuition+%28jt%29.html]]
/***
|Name|SetIconPlugin|
|Source|http://www.TiddlyTools.com/#SetIconPlugin|
|Documentation|http://www.TiddlyTools.com/#SetIconPluginInfo|
|Version|1.8.0|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.3|
|Type|plugin|
|Description|add an image to a toolbar, macro, or slider link|
!!!!!Documentation
>see [[SetIconPluginInfo]]
!!!!!Configuration
<<<
<<option chkIconsShowImage>> show images on links
<<option chkIconsShowText>> include link text with images
default image style: {{stretch{<<option txtIconsCSS>>}}}
<<<
!!!!!Revisions
<<<
2008.05.11 [1.8.0] added optional 'notext' value for iconpos to force text to be hidden for specific links
| see [[SetIconPluginInfo]] for additional revision details |
2008.05.09 [1.0.0] initial release (as inline script)
<<<
!!!!!Code
***/
//{{{
version.extensions.SetIconPlugin= {major: 1, minor: 8, revision: 0, date: new Date(2008,5,11)};

if (config.options.chkIconsShowImage===undefined)
	config.options.chkIconsShowImage=true;
if (config.options.chkIconsShowText===undefined)
	config.options.chkIconsShowText=true;
if (config.options.txtIconsCSS===undefined)
	config.options.txtIconsCSS="vertical-align:middle;width:auto;height:auto";

config.macros.setIcon = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		if (!config.options.chkIconsShowImage) return; // text-only - do nothing
		if (!params[0]) return; // no image src specified - do nothing

		// find nearest link element
		var btn=place.lastChild; // look for sibling link
		while (btn && btn.nodeName!="A") btn=btn.previousSibling;
		if (!btn) { // look for child link
			var links=place.getElementsByTagName("A");
			if (links.length) btn=links[links.length-1];
		}
		if (!btn) { // look for parent link
			var btn=place.parentNode.lastChild;
			while (btn && btn.nodeName!="A") btn=btn.previousSibling;
		}
		if (!btn) { // look for cousin link
			var links=place.parentNode.getElementsByTagName("A");
			if (links.length) btn=links[links.length-1];
		}
		if (!btn) return; // can't find a link - do nothing

		// set icon and command text/tip
		var txt=btn.innerHTML;
		var src=params[0];  // default to direct URL
		if (config.macros.attach && config.macros.attach.isAttachment(src))
			src=config.macros.attach.getAttachment(src); // retrieve attachment (if any)
		var css=params[1]; if (!css||!css.length) css=config.options.txtIconsCSS;
		var after=params[2]&&params[2].toUpperCase()=="RIGHT";
		var notext=params[2]&&params[2].toUpperCase()=="NOTEXT";
		btn.innerHTML="<img src='"+src+"' style='"+css+"'>";
		if (config.options.chkIconsShowText && !notext)
			btn.innerHTML=after?txt+btn.innerHTML:btn.innerHTML+txt;
		else
			btn.title=txt.toUpperCase()+": "+btn.title; // add text to tooltip

		// adjust nested slider button text/tip
		if (btn.getAttribute("closedtext")!=null) {
			btn.setAttribute("closedtext",btn.innerHTML);
			btn.setAttribute("openedtext",btn.innerHTML);
			if (!config.options.chkIconsShowText || notext) {
				btn.setAttribute("closedtip",txt.toUpperCase()+": "+btn.getAttribute("closedtip"));
				btn.setAttribute("openedtip",txt.toUpperCase()+": "+btn.getAttribute("openedtip"));
			}
		}
	}
};
//}}}
/***
|Name|SetUserNamePlugin|
|Source|http://www.TiddlyTools.com/#SetUserNamePlugin|
|Version|1.0.0|
|Author|[[EricShulman]]|
|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|If default username is used ("YourName"), display prompt box to get new username|

!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''SetUserNamePlugin'' (tagged with <<tag systemConfig>>)

If you are using the default (shadow) EditTemplate definition, it will be updated to invoke this macro, so that whenever a user attempts to edit/create a tiddler AND the username is "YourName", they will be automatically prompted to enter a new username.  If you are using a customized EditTemplate, you will need to edit it yourself and add the following line:
{{{
<span macro='setUserName'></span>
}}}
<<<
!!!!!Revision History
<<<
''2006.12.01 [1.0.0]'' initial release - converted from SetUserName inline script
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]
<<<
!!!!!Code
***/
//{{{
version.extensions.setUserName= {major: 1, minor: 0, revision: 0, date: new Date(2006,12,1)};

config.macros.setUserName = {
	handler: function(place,macroName,params) {
		// only prompt when needed
		if (readOnly || config.options.txtUserName!="YourName") return;
		// get new username
		var who=prompt("Please set your username",config.options.txtUserName);
		if (!who||!who.trim().length) return; // cancelled by user
		// set new username
		config.options.txtUserName=who;
		saveOptionCookie("txtUserName");
		// sync any option input fields that are showing username
		var nodes = document.getElementsByTagName("input");
		for(var t=0; t<nodes.length; t++) 
			if(nodes[t].getAttribute("option")=="txtUserName") nodes[t].value=who;
	}
}

// add trigger to default shadow EditTemplate (custom templates: add this by hand)
config.shadowTiddlers.EditTemplate+="<span macro='setUserName'></span>";
//}}}
/***
|Name|SettingsPlugin|
|Version|1.1.0|
|Type|plugin|
|Source|http://tiddlywiki.abego-software.de/#SettingsPlugin|
|Author|[[UdoBorkowski]]|
|Documentation|[[SettingsPlugin Documentation|http://tiddlywiki.abego-software.de/#%5B%5BSettingsPlugin%20Documentation%5D%5D]]|
|Licence|[[BSD open source license (abego Software)]]|
|~CoreVersion|2.0.7|
|Browser|Firefox 1.5.0.2 or better; Internet Explorer 6.0|
|Description|The SettingsPlugin allows you to decide "per setting" if a setting should be shared by all TiddlyWikis or if a setting should be "private" to a given TiddlyWiki. Alternatively you may also decide that all settings should be private to a given TiddlyWiki.|
^^This tiddler contains compressed source code. [[Full Source Code|SettingsPlugin SourceCode]].^^

***/
//{{{
// Ensure the Plugin is only installed once.
//
if (!version.extensions.SettingsPlugin) {

if (version.major < 2) {
	(function() {
		var s = "Use TiddlyWiki 2.0 or better to run the Settings Plugin.";
		alert(s);
		throw s;
	})();
}

version.extensions.SettingsPlugin = {
	major: 1, minor: 1, revision: 0,
	date: new Date(2006, 6, 30),
	type: 'plugin',
	source: "http://tiddlywiki.abego-software.de/#SettingsPlugin",
	documentation: "[[SettingsPlugin Documentation]]",
	sourcecode: "[[SettingsPlugin SourceCode]]",
	author: "Udo Borkowski (ub [at] abego-software [dot] de)",
	licence: "[[BSD open source license (abego Software)]]",
	coreVersion: "2.0.7",
	browser: "Firefox 1.5.0.2 or better; Internet Explorer 6.0"
};

// Ensure the global abego namespace is set up.
if (!window.abego) window.abego = {};


//}}}
/***
!Start of main code
***/
//{{{
// ========================================================================
// Utilities ==============================================================
// ========================================================================

if (!abego.setTiddlerText) {
// Set the text of the tiddler with the given title.
// 
// When the tiddler does not yet exist it is created with the given defaultTags.
// When withNotify is true notifications are send.
// When dontAutoSave is false and AutoSave is on changes are autoSaved.
//
abego.setTiddlerText = function(store,title,text,defaultTags,dontAutoSave,withNotify){
	var tiddler = store.getTiddler(title);
	
	// Shortcut: Do nothing when text hasn't changed.
	if (tiddler && (tiddler.text == text))
		return;
		
	var minorUpdate = config.options.chkForceMinorUpdate;
	var tags = !tiddler ? defaultTags : tiddler.tags;
	
	store.suspendNotifications();
	try {
		store.saveTiddler(
				title,
				title,
				text,
				minorUpdate ? undefined : config.options.txtUserName,
				minorUpdate ? undefined : new Date(),
				tags);
	} finally {
		store.resumeNotifications();
	}
	
	if (withNotify) 
		store.notify(title,true);

	if(!dontAutoSave && config.options.chkAutoSave)
		saveChanges();
};
}

// ========================================================================
// The Settings Core Code =================================================
// ========================================================================

(function() {
	// ====================================================================
	// Internal Part ======================================================
	// ====================================================================

	// ====================================================================
	// Constants ==========================================================
	// ====================================================================

	var TIDDLERNAME = "PrivateSettings";
	var USE_PRIVATE_SETTINGS_OPTION = "chkUsePrivateSettings";
	var MAKE_SETTING_PRIVATE_WHEN_CHANGED_OPTION = "chkMakeSettingPrivateWhenChanged";

	// ====================================================================
	// Variables ==========================================================
	// ====================================================================

	var privateSettingNames = null;
	var usePrivateSettings = false;

	// ====================================================================
	// Internal Functions =================================================
	// ====================================================================

	// Adds the settings defined in s to the result.
	//
	// A setting n with value v sets the property n with value v to result
	// Old values are overwritten.
	// 
	// Returns an object with the names of the added settings as boolean 
	// properties set to true (Attention: this is not the result object).
	//
	var addSettings = function(result, s) {
		var settings = s.split(";");
		var addedSettings = {};
		for(var c = 0; c < settings.length; c++) {
			var p = settings[c].indexOf("=");
			if(p != -1)	{
				var name = settings[c].substr(0,p).trim();
				var value = settings[c].substr(p+1).trim();
				result[name] = unescape(value);
				addedSettings[name] = true;
			}
		}
		return addedSettings;
	};
	
	// Adds the settings stored in the (private) Settings tiddler to the result
	//
	var addPrivateSettings = function(result) {
		var s = store.getTiddlerText(TIDDLERNAME);
		privateSettingNames = 
				s 
					? addSettings(result, s) 
					: {};
	};
	
	// Adds the settings stored in the cookies to the result
	//
	var addSharedSettings = function(result) {
		addSettings(result, document.cookie);
	};
	
	// Loads and returns the settings stored in the  cookies
	//
	var loadSharedSettings = function() {
		var result = {};
		addSharedSettings(result);
		return result;
	};
	
	// Returns the settings stored in the (private) Settings tiddler
	// 
	var loadPrivateSettings = function() {
		var result = {};
		addPrivateSettings(result);
		return result;
	};
	
	// Saving -----------------------------------------------------------------
	
	// Stores the setting in the cookies
	//
	var saveSharedSetting = function(name, value) {
		document.cookie = name + "=" + escape(value) + "; expires=Fri, 1 Jan 2038 12:00:00 UTC; path=/";
	};
	
	// Sets the private setting with the given name to s.
	//
	// When s is null the setting is removed.
	//
	var savePrivateSetting = function(name, s, dontAutoSave) {
		// get the private settings
		var privateSettings = loadPrivateSettings();
		
		// modify the private settings (i.e. set/change value, or delete)
		if (s === null) {
			// If there is no such setting we are done
			if (!privateSettingNames[name]) 
				return;
				
			// remove the setting (and the name from the private names list)
			delete privateSettings[name];
			delete privateSettingNames[name];
			
		} else {
			// When the value has not changed we are done.
			var oldValue = privateSettings[name];
			if (oldValue !== undefined && oldValue == s) 
				return;

			// Set the new value and ensure that this setting 
			// is remembered as a private setting.
			privateSettings[name] = s;
			privateSettingNames[name] = true;
		}
		
		// Convert to a "cookies string"
		var t = "";
		for (var i in privateSettings) {
			if (t) t += "; ";
			t += i + "=" + escape(privateSettings[i]);
		}
		
		// save to the tiddler
		abego.setTiddlerText(store,TIDDLERNAME,t,["excludeLists", "excludeSearch"],dontAutoSave);

		if(!dontAutoSave && config.options.chkAutoSave)
			saveChanges();
	};
	
	// ====================================================================
	// Initializations ====================================================
	// ====================================================================

	// ShadowTiddlers =====================================================
	
	config.shadowTiddlers["BSD open source license (abego Software)"] = "See [[Licence|http://tiddlywiki.abego-software.de/#%5B%5BBSD%20open%20source%20license%5D%5D]].";
	config.shadowTiddlers["SettingsPlugin Documentation"] = "[[Documentation on abego Software website|http://tiddlywiki.abego-software.de/#%5B%5BSettingsPlugin%20Documentation%5D%5D]].\n\n^^You may copy the documentation tiddler from the website to your TiddlyWiki.\nThen you don't need to access the internet to read the documentation.^^";
	config.shadowTiddlers["SettingsPlugin SourceCode"] = "Rightclick this [[link|http://tiddlywiki.abego-software.de/src/Plugin-Settings-src.js]] and choose 'Save target/link as...' to get the plugin source code from the abego Software website.";
	config.shadowTiddlers["Show Settings"] = "<<showSettings>>";
	
	// Options ============================================================

	if (config.options[USE_PRIVATE_SETTINGS_OPTION] === undefined) config.options[USE_PRIVATE_SETTINGS_OPTION] = false;
	if (config.options[MAKE_SETTING_PRIVATE_WHEN_CHANGED_OPTION] === undefined) config.options[MAKE_SETTING_PRIVATE_WHEN_CHANGED_OPTION] = false;

	config.shadowTiddlers.AdvancedOptions += "\n''Private Settings: ''<<option "+USE_PRIVATE_SETTINGS_OPTION+">> Use private settings.  <<option "+MAKE_SETTING_PRIVATE_WHEN_CHANGED_OPTION+">> Make setting private when changed.&#160;&#160;&#160;[[Show Settings]].\n^^(Private settings are stored in this ~TiddlyWiki, shared settings are stored as cookies. For more information see the [[Settings documentation|SettingsPlugin Documentation]].)^^";
	




	// ====================================================================
	// Public Part ========================================================
	// ====================================================================
	
	// Returns true if the "private settings" should be used, 
	// otherwise false is returned.
	//
	abego.usePrivateSettings = function() {
		return usePrivateSettings;
	};
	
	// Sets the usePrivateSettings flag
	//
	abego.setUsePrivateSettings = function(f) {
		if (f != abego.usePrivateSettings()) {
			usePrivateSettings = f;
			loadOptionsCookie();
		}
	};

	// Returns true if name is the name of the option/setting to hold
	// the "UsePrivateSettings" value, otherwise false is returned.
	//
	abego.isUsePrivateSettingsOption = function(name) {
		return name == USE_PRIVATE_SETTINGS_OPTION;
	};

	// Returns true if changing a setting should make it private,
	// otherwise false is returned.
	//
	abego.makeSettingPrivateWhenChanged = function() {
		return config.options[MAKE_SETTING_PRIVATE_WHEN_CHANGED_OPTION];
	};
	
	// Sets the makeSettingPrivateWhenChanged flag
	//
	abego.setMakeSettingPrivateWhenChanged = function(f) {
		config.options[MAKE_SETTING_PRIVATE_WHEN_CHANGED_OPTION] = f;
	};
	
	// Returns the current settings as the properties of the returned object.
	// 
	// This contains both shared and private settings, with the private settings
	// overwriting shared ones (if defined)
	//
	// When abego.usePrivateSettings() is false private settings are ignored.
	//
	// To access the value of an individual setting use
	//
	//     abego.getSettings()["aSettingName"]
	//
	// (may be undefined)
	//
	abego.getSettings = function() {
		var result = {};
		addSharedSettings(result);
		usePrivateSettings = result[USE_PRIVATE_SETTINGS_OPTION] == "true";
		if (abego.usePrivateSettings()) 
			addPrivateSettings(result);
		return result;
	};
	
	// Returns the value of the setting with the given name.
	//
	// Returns "" when no such setting exists.
	//
	// When multiple settings should be accessed at once use the
	// abego.getSettings() function instead to get the Settings 
	// object and access the individual setting values through
	// that object's properties.
	// 
	abego.getSetting = function(name) {
		var s = abego.getSettings()[name];
		return !s ? "" : s;
	};
	
	// Save the new setting value.
	//
	// This does not change the scope of the setting, 
	// a shared setting stays shared and a private setting stays private.
	// New settings are initially shared.
	//
	// When abego.usePrivateSettings() is false the shared setting is modified.
	//
	abego.saveSetting = function(name, value) {
		// Special case: The "UsePrivateSettings" is always a shared setting. 
		// Also: Changing it enforce the options to be reloaded.
		if (abego.isUsePrivateSettingsOption(name)) {
			saveSharedSetting(name, value);
			abego.setUsePrivateSettings(value == "true");
			loadOptionsCookie();
			window.alert("You changed the 'Use private settings' option.\nPlease reload your TiddlyWiki to update the settings.\n");
			return;
		}

		if (abego.usePrivateSettings() &&
				(abego.isSettingPrivate(name)||abego.makeSettingPrivateWhenChanged())) 
			savePrivateSetting(name, value);
		else
			saveSharedSetting(name, value);
	};
	
	// Returns true if the given setting is a private setting, 
	// otherwise false.
	//
	// The value of abego.usePrivateSettings() is has no effect 
	// on the outcome of this function.
	//
	abego.isSettingPrivate = function(name) {
		if (abego.isUsePrivateSettingsOption(name))
			return false;
			
		if (!privateSettingNames) {
			loadPrivateSettings();
		}
		return !!privateSettingNames[name];
	};
	
	// Returns true if the name refers to a "password" setting
	// (i.e. options starting with "pas" or "chkpas").
	//
	// Password settings should not be displayed and 
	// not be stored as a private setting.
	abego.isPasswordSetting = function(name) {
		return (name.substr(0,3) == "pas") || (name.substr(0,6) == "chkpas");
	};
	
	// Make the setting private or shared, depending on the value of makePrivate.
	//
	// When no such private setting is defined the function does nothing.
	//
	abego.makeSettingPrivate = function(name, makePrivate, dontAutoSavePrivateSettings) {
		if (abego.isPasswordSetting(name)) {
			// Don't save password settings as a private setting. 
			
			// Even remove it from the private settings in case the password was once 
			// stored with an older version of the plugin)
			savePrivateSetting(name, null, dontAutoSavePrivateSettings);
			return;
		}

		var privateSettings = loadPrivateSettings();
		var isPrivate = privateSettings[name] !== undefined;
		if (makePrivate == isPrivate) 
			// the setting needs no change. We are done.
			return;
	
		var sharedSettings = loadSharedSettings();
	
		if (makePrivate) {
			savePrivateSetting(name, sharedSettings[name], dontAutoSavePrivateSettings);
			
		} else {
			// make the setting shared, i.e. remove the private setting
				
			// if the setting is defined as a private setting but there is no
			// shared setting with that name save the current private value as
			// a shared value.
			if (sharedSettings[name] === undefined) {
				saveSharedSetting(name, privateSettings[name]);			
			}
			
			// Remove the private setting
			savePrivateSetting(name, null, dontAutoSavePrivateSettings);
		}
	};
	
	// Make all settings private or shared, depending on the value of makePrivate.
	//
	// tiddlerToRefresh [may be null/undefined] the name of the tiddler that 
	// should be refreshed after the  settings are changed.
	//
	abego.setAllSettingsPrivate = function(makePrivate, tiddlerToRefresh) {
		var settings = abego.getSettings();
		for (var s in settings) {
			abego.makeSettingPrivate(s, makePrivate, true);
		}
		if(config.options.chkAutoSave)
			saveChanges();
		if (tiddlerToRefresh) {
			story.refreshTiddler(tiddlerToRefresh,1, true);
		}
		return false;
	};
})();





// ========================================================================
// showSettings Macro =====================================================
// ========================================================================

// Macro to display a table with all current settings.
//
// Every setting is displayed with name and value and a checkbox that indicates
// if the setting is of private and shared scope. 
//
// The checkbox can be used to change the scope.
// 
config.macros.showSettings = {
     // Standard Properties
     label: "showSettings",
     prompt: "Display the current TiddlyWiki settings"
};

config.macros.showSettings.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	
	var isOptionName = function(a) {
		var s = a.substr(0,3);
		return s == "txt" || s == "chk";
	};
	
	var compareNoCase = function(a,b) {
		var s1 = a.toLowerCase();
		var s2 = b.toLowerCase();
		return (s1 < s2) ? -1 : (s1 == s2) ? 0 : 1;
	};
	
	var compareWithOptionsFirst = function(a, b) {
		var aIsOption = isOptionName(a);
		var bIsOption = isOptionName(b);
		if (aIsOption) {
			if (!bIsOption)
				return -1;
			else 
				return compareNoCase(a.substr(3), b.substr(3));
		} else if (bIsOption) {
			return 1;
		} else {
			return compareNoCase(a,b);
		}
	};
	
	var s = '<html><table><tr align="left"><th>Private</th><th>Name</th><th>Value</th></tr>';
	var c = abego.getSettings();
	var names = [];

	for (var i in c) {
		// Only show "non-password" settings
		if (!abego.isPasswordSetting(i))
			names.push(i);
	}
	
	names.sort(compareWithOptionsFirst);

	for (i = 0; i < names.length; i++) {
		var name = names[i];
		var label = isOptionName(name)
				? name.substr(3)+" ("+name.substr(0,3)+"...)"
				: name;
		var checkboxText = abego.isUsePrivateSettingsOption(name)
				? ''
				: '<input name="'+name+'" type="checkbox" onclick="abego.onPrivateSettingClick(this)"'+
						(abego.isSettingPrivate(name) ? " checked" : "")+'/>';
		s += '<tr><td align="right">'+ checkboxText +
				'</td><td>'+label+'</td><td>'+c[name]+'</td></tr>\n';
	}
	
	s += '</table>';
	s += '<a class="button" title="Make all current settings private" href="javascript:;" onclick="abego.setAllSettingsPrivate(true,\''+tiddler.title+'\',1);">Make all private</a>';
	s += '<a class="button" title="Make all current settings shared" href="javascript:;" onclick="abego.setAllSettingsPrivate(false,\''+tiddler.title+'\',1);">Make all shared</a>';
	s += '</html>';
	
	wikify(s, place);
};

// Event handler used by the checkboxes in the "showSettings" table to change the
// scope of a setting.
//
abego.onPrivateSettingClick = function(inputElem) {
	abego.makeSettingPrivate(inputElem.name, inputElem.checked);
	return false;
};




// ========================================================================
// TiddlyWiki Integration =================================================
// ========================================================================

// Overload the core "Options" functions to use the Settings feature

this.loadOptionsCookie = function()
{
	if(safeMode)
		return;
	var settings = abego.getSettings();
	for(var name in settings)
		{
			var value = settings[name];
			switch(name.substr(0,3))
				{
				case "txt":
					config.options[name] = unescape(value);
					break;
				case "chk":
					config.options[name] = value == "true";
					break;
				}
		}
};

this.saveOptionCookie = function(name)
{
	if(safeMode)
		return;
	var v = "";
	switch(name.substr(0,3))
		{
		case "txt":
			v = config.options[name].toString();
			break;
		case "chk":
			v = config.options[name] ? "true" : "false";
			break;
		}
	abego.saveSetting(name,v);
};

//------------------------------------------------------------------------------
// Since the plugin is loaded after the options are loaded we do a re-load now,
// allowing the options to hold private values.
loadOptionsCookie();
//}}}


/***
!End of main code
***/

	
//{{{
} // of single install
//}}}

//{{{
// Used Globals (for JSLint) ==============

// … DOM
/*global 	document */
// … TiddlyWiki Core
/*global 	Tiddler, loadOptionsCookie, safeMode, saveChanges, saveOptionCookie, store, story, wikify*/
//}}}
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://www.carshelpingcharities.org/WebNonprofits2/images/clip_image001.jpg>>
<<showtoc>>
!Overview
[[Sharing values|Sharing Values]] establishs a set of shared values - a kind of list of positive behaviors that are currently valued in your team to support the team interactions.

!Sharing Values
<<tiddler [[Sharing Values##Overview]]>>

!Objectives
* Share a set of positive behavioral statements for guiding the team. 
* Team members will be responsible for monitoring their interactions.

!Timing
30 min

!Audience
Group

!Materials
* flipchart
* index cards / sticky notes

!Procedure
Team members work together to generate ideas for effective behaviours at work then choose five to seven agreemenets to guide team interaction. The chosen agreements are published in the team room.

# ''Identify a pair'' (optional)
# ''I don’t like it…'' - On a single index card, ask each team member to complete this statement: //“I don’t like it when someone/people ……“// Encourage each team member to write down 2-5 such statements on separate index cards.
# ''Exchange Cards'' - After everyone is done writing, exchange all your cards with your partner.
# ''I like it…'' - On the back of each index card, write down a statement that will counter your partners “I don’t like it …” statement with //“I like it when someone/people….”//
# ''Share Values'' - Go around the table where each team member reads aloud a statement that begins with //“I like it when…”.// Take turns reading one statement per team member at a time until all statements are exhausted. These are your team’s value statements. These statements provide a simple list of positive behaviors that are currently valued in your team.
# ''Team Values Chart'' - On a Big Visible Chart only capture statements, that begin with //“I like it when…”.// Radiate this information in your team area for the benefit of your team members and others who interact with your team.


!Debriefing
As a [[facilitator|Facilitator]]/[[Scrum Master]] refrain from vocalizing these statements yourself. It is very important for everyone in the team to hear these positive behavioral statements from their peers.

Discuss in the team:
* …why it is easier for us to identify behaviors that we don’t like, especially when we have been at the receiving end.
* …how your team member’s insight into your hot-button issue helps you recognize behavior that you will truly appreciate!


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
* [[Shared Vision]]
* [[The Project Adventure Map]]
!Weblinks
* [[Sharing Values, a team building exercise| http://www.dhavalpanchal.com/sharing-values-a-team-building-exercise/]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.thecreativeleadershipforum.com/storage/PG.bmp?__SQUARESPACE_CACHEVERSION=1233558470428>>/%
http://harvardbusiness.org/products/4389-PDF-ENG/thumbnail/thumbnail.gif%/
<<showtoc>>
!Overview
[[Show and Tell]], a kind of [[Innovation Game]]: Customers describe the most important artifacts produced by your system to you and other customers.

!Show and Tell
<script> return "<<tiddler [[Show and Tell##Overview]]>>" </script>
Participants bring in examples of artifacts created or modified by the product or service. 

!Objectives
* Describe the most important artifacts produced by your system.

!Timing
Depends on system/feature complexity: 90min - 1day workshop

!Audience
Group

!Materials
* whiteboard
* sticky note cards


!Procedure
Participants describe the most important artifacts produced by your system to you and other customers.
Participants explain why these artifacts are important, and how and when they are used.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.intraqq.com/assets/images/innovation.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Innovation games: Who says work can't be fun?| http://go.techtarget.com/r/12320138/4201481]]
* http://en.wikipedia.org/wiki/Innovation_game
* http://www.innovationsgames.com

!Further Reading
<<tiddler [[Innovation Game##Further Reading]]>>
/***
|Name|[[ShowReferencesPlugin]]|
|Source|http://www.TiddlyTools.com/#ShowReferencesPlugin|
|Version|2.0.0|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|format and display references to the current tiddler|
!!!!!Documenatation
>see [[ShowReferencesPluginInfo]]
!!!!!Revisions
<<<
2011.03.01 2.0.0 converted to plugin and added optional TiddlerName and message params
| Please see [[ShowReferencesPluginInfo]] for previous revision details |
2006.09.04 1.0.0 original release (transclusion)
<<<
!!!!!Code
***/
//{{{
version.extensions.ShowReferencesPlugin =
	{ major:2, minor:0, revision:0, date:new Date(2011,3,1) };
config.macros.showReferences = {
	defaultFormat: '[[%0]]\n',
	fallbackMsg: 'no references',
	init: function() {
		config.shadowTiddlers.ShowReferences =
			'<<showReferences "$1" [[$2]] "$3">>';
		config.annotations.ShowReferences =
			'created by ShowReferencesPlugin';
	},
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var here=story.findContainingTiddler(place);
		var tid=here?here.getAttribute('tiddler'):'';
		var fmt=params[0];	if (!fmt||fmt=='$1')	 fmt	=this.defaultFormat;
		var title=params[1];	if (!title||title=='$2') title	=tid;
		var msg=params[2];	if (!msg||msg=='$3')	 msg	=this.fallbackMsg;
		var refs=store.getReferringTiddlers(title);
		var out='';
		fmt=fmt.unescapeLineBreaks();
		for(var r=0; r<refs.length; r++)
			if(refs[r].title!=title && !refs[r].isTagged('excludeLists'))
				out+=fmt.format([refs[r].title]);
		wikify(out.length?out:msg,place);
	}
}
//}}}
/***
|Name|ShowUpdatesPlugin|
|Source|http://tw.lewcid.org/#ShowUpdatesPlugin|
|Version|2.0|
|Author|[[SaqImtiaz]]|
|License|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|~CoreVersion|2.2.x|
|Type|plugin|
|Requires||
|Overrides||
|Description|Allows you to list tiddlers that have changed since the users last visit. |

!!!Description:
Allows you to list tiddlers that have changed since the users last visit. You can list only all changed tiddlers, or filter them to only show tiddlers that have or do not have a specific tag. By default a simple list of the titles of changed tiddlers is created. However, using an extremely versatile syntax you can provide a custom template for the generated text.

!!!Examples: 
[[ShowUpdatesDocs|http://tw.lewcid.org/#ShowUpdatesDocs]]

!!!Installation:
Copy the contents of this tiddler to your TW, tag with systemConfig, save and reload your TW.

!!!Syntax:
{{{<<showUpdates>>}}}
additional optional params:
{{{<showUpdates excludeTag:TagToExclude onlyTag:TagToList maxEntries:10 write:CustomWriteParameter >>}}}
excludeTag: ~TagToExclude
onlyTag: ~TagToList
maxEntries: max number of entries displayed when there are no updates. (default is 10, which can be changed in the config.macros.showUpdates.settings part of the code)
write: if a write parameter is not provided, an un-numbered list of the updates is generated. Alternatively, you can specify a custom 'template' for the text generated. The syntax for the write parameter is identical to that of the [[ForEachTiddlerPlugin]]. Additonal documentation on this syntax will be provided soon.
Some of the variables available in the write parameter are 'index', 'count' and 'lastVisit' where lastVisit is the date of the last visit in the format YYYYMMDDHHMM. Also areUpdates is a boolean that is true if there are new updates since the users last visit.

!!!To Do:
*refactor code to facilitate translations
*a streamlined version without the custom write parameter


!!!Code
***/
//{{{
window.lewcidLastVisit = '';
window.old_lewcid_whatsnew_restart = window.restart;
window.restart = function()
{
        if(config.options.txtLastVisit)
                 lewcidLastVisit= config.options.txtLastVisit;
        config.options.txtLastVisit = (new Date()).convertToYYYYMMDDHHMM();
        saveOptionCookie('txtLastVisit');
        window.old_lewcid_whatsnew_restart();
}

TiddlyWiki.prototype.lewcidGetTiddlers = function(field,excludeTag,includeTag,updatesOnly)
{
              var results = [];
              this.forEachTiddler(function(title,tiddler)
                      {
                      if(excludeTag == undefined || !tiddler.isTagged(excludeTag))
                                    if(includeTag == undefined ||  tiddler.isTagged(includeTag))
                                            if ( updatesOnly == false || tiddler.modified.convertToYYYYMMDDHHMM()>lewcidLastVisit)
                                                  results.push(tiddler);
                      });
              if(field)
                  results.sort(function (a,b) {if(a[field] == b[field]) return(0); else return (a[field] < b[field]) ? -1 : +1; });
              return results;
}

config.macros.showUpdates={};
config.macros.showUpdates.settings =
{
         maxEntries: 10  //max items to show, if there are no updates since last visit
}

config.macros.showUpdates.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
          var args = paramString.parseParams("list",null,true);
          var write = getParam(args, "write", undefined);
          var onlyTag = getParam(args, "onlyTag", undefined);
          var excludeTag = getParam(args, "excludeTag", undefined);
          var sortBy = "modified";
          var maxEntries = getParam(args,"maxEntries",this.settings.maxEntries);

          if (lewcidLastVisit) 
                {var tiddlers = store.lewcidGetTiddlers(sortBy,excludeTag,onlyTag,true);
                 var areUpdates = tiddlers.length>0? true:false;}

          if (!lewcidLastVisit)
               {var countLine = "!!Recent Updates:";
               var tiddlers = store.lewcidGetTiddlers(sortBy,excludeTag,onlyTag,false);
               var areUpdates = false;}
          else if (tiddlers.length == 0)
               {var countLine = "!!@@color:red;No new updates@@ since your last visit. @@color:#999;font-size:70%;" + (Date.convertFromYYYYMMDDHHMM(lewcidLastVisit)).formatString(" (DD/MM/YY)") + "@@\n!!Recent Updates:";
               var tiddlers = store.lewcidGetTiddlers(sortBy,excludeTag,onlyTag,false);}
          else
               {var countLine ="!!@@color:red;"+ tiddlers.length + "@@ new " + (tiddlers.length==1?"update":"updates") + " since your last visit: @@color:#999;font-size:70%;" + (Date.convertFromYYYYMMDDHHMM(lewcidLastVisit)).formatString(" (DD/MM/YY)") + "@@";}

          tiddlers = tiddlers.reverse();
          var lastVisit = lewcidLastVisit? lewcidLastVisit:undefined;
          var count = areUpdates == true? tiddlers.length : maxEntries;
          var sp = createTiddlyElement(place,"span","showUpdates");
          if (write==undefined)
                 {
                  wikify(countLine,sp);
                  var list = createTiddlyElement(sp,"ul");
                  for (var i = 0; i < count; i++)
                          {
                           var tiddler = tiddlers[i];
                           createTiddlyLink(createTiddlyElement(list,"li"), tiddler.title, true);
                          }
                 }
          else
                {
                 var list = '';
                 for (var index = 0; index < count; index++) {
                 var tiddler = tiddlers[index];
                 list += eval(write); }
                 wikify(list, sp);
                }
}
//}}}
{{button{goto}}}
<<gotoTiddler>><<search>><<closeAll>><<collapseAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>><<tiddler TspotSidebar>><<snapshot print label:print prompt:"Print a tiddler" id:ask>><<importTiddlers link "external import" "Import from external TiddlyWiki">><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">>
<<tabs txtMainTab "Timeline" "Timeline" TabTimeline "A-Z" "A-Z index" AlphabetIndex "All" "All tiddlers" TabAll "Tags" "All tags" TabTags "More" "More lists" TabMore>>
/***
|''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"
//}}}
/***
|Name|SinglePageModePlugin|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Documentation|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|Version|2.9.6|
|Author|[[EricShulman]] - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Story.prototype.displayTiddler(), Story.prototype.displayTiddlers()|
|Options|##Configuration|
|Description|Show tiddlers one at a time with automatic permalink, or always open tiddlers at top/bottom of page.|
This plugin allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one tiddler displayed at a time.
!!!!!Documentation
>see [[SinglePageModePluginInfo]]
!!!!!Configuration
<<<
<<option chkSinglePageMode>> Display one tiddler at a time
><<option chkSinglePagePermalink>> Automatically permalink current tiddler
><<option chkSinglePageKeepFoldedTiddlers>> Don't close tiddlers that are folded
><<option chkSinglePageKeepEditedTiddlers>> Don't close tiddlers that are being edited
<<option chkTopOfPageMode>> Open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Open tiddlers at the bottom of the page
<<option chkSinglePageAutoScroll>> Automatically scroll tiddler into view (if needed)

Notes:
* The "display one tiddler at a time" option can also be //temporarily// set/reset by including a 'paramifier' in the document URL: {{{#SPM:true}}} or {{{#SPM:false}}}.
* If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.
* When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.
<<<
!!!!!Revisions
<<<
2008.10.17 [2.9.6] changed chkSinglePageAutoScroll default to false
| Please see [[SinglePageModePluginInfo]] for previous revision details |
2005.08.15 [1.0.0] Initial Release.  Support for BACK/FORWARD buttons adapted from code developed by Clint Checketts.
<<<
!!!!!Code
***/
//{{{
version.extensions.SinglePageModePlugin= {major: 2, minor: 9, revision: 6, date: new Date(2008,10,17)};
//}}}
//{{{
config.paramifiers.SPM = { onstart: function(v) {
	config.options.chkSinglePageMode=eval(v);
	if (config.options.chkSinglePageMode && config.options.chkSinglePagePermalink && !config.browser.isSafari) {
		config.lastURL = window.location.hash;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	}
} };
//}}}
//{{{
if (config.options.chkSinglePageMode==undefined)
	config.options.chkSinglePageMode=false;
if (config.options.chkSinglePagePermalink==undefined)
	config.options.chkSinglePagePermalink=true;
if (config.options.chkSinglePageKeepFoldedTiddlers==undefined)
	config.options.chkSinglePageKeepFoldedTiddlers=false;
if (config.options.chkSinglePageKeepEditedTiddlers==undefined)
	config.options.chkSinglePageKeepEditedTiddlers=false;
if (config.options.chkTopOfPageMode==undefined)
	config.options.chkTopOfPageMode=false;
if (config.options.chkBottomOfPageMode==undefined)
	config.options.chkBottomOfPageMode=false;
if (config.options.chkSinglePageAutoScroll==undefined)
	config.options.chkSinglePageAutoScroll=false;
//}}}
//{{{
config.SPMTimer = 0;
config.lastURL = window.location.hash;
function checkLastURL()
{
	if (!config.options.chkSinglePageMode)
		{ window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }
	if (config.lastURL == window.location.hash) return; // no change in hash
	var tids=decodeURIComponent(window.location.hash.substr(1)).readBracketedList();
	if (tids.length==1) // permalink (single tiddler in URL)
		story.displayTiddler(null,tids[0]);
	else { // restore permaview or default view
		config.lastURL = window.location.hash;
		if (!tids.length) tids=store.getTiddlerText("DefaultTiddlers").readBracketedList();
		story.closeAllTiddlers();
		story.displayTiddlers(null,tids);
	}
}

if (Story.prototype.SPM_coreDisplayTiddler==undefined)
	Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,slowly)
{
	var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
	var tiddlerElem=document.getElementById(story.idPrefix+title); // ==null unless tiddler is already displayed
	var opt=config.options;
	var single=opt.chkSinglePageMode && !startingUp;
	var top=opt.chkTopOfPageMode && !startingUp;
	var bottom=opt.chkBottomOfPageMode && !startingUp;
	if (single) {
		story.forEachTiddler(function(tid,elem) {
			// skip current tiddler and, optionally, tiddlers that are folded.
			if (	tid==title
				|| (opt.chkSinglePageKeepFoldedTiddlers && elem.getAttribute("folded")=="true"))
				return;
			// if a tiddler is being edited, ask before closing
			if (elem.getAttribute("dirty")=="true") {
				if (opt.chkSinglePageKeepEditedTiddlers) return;
				// if tiddler to be displayed is already shown, then leave active tiddler editor as is
				// (occurs when switching between view and edit modes)
				if (tiddlerElem) return;
				// otherwise, ask for permission
				var msg="'"+tid+"' is currently being edited.\n\n";
				msg+="Press OK to save and close this tiddler\nor press Cancel to leave it opened";
				if (!confirm(msg)) return; else story.saveTiddler(tid);
			}
			story.closeTiddler(tid);
		});
	}
	else if (top)
		arguments[0]=null;
	else if (bottom)
		arguments[0]="bottom";
	if (single && opt.chkSinglePagePermalink && !config.browser.isSafari) {
		window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));
		config.lastURL = window.location.hash;
		document.title = wikifyPlain("SiteTitle") + " - " + title;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	}
	if (tiddlerElem && tiddlerElem.getAttribute("dirty")=="true") { // editing… move tiddler without re-rendering
		var isTopTiddler=(tiddlerElem.previousSibling==null);
		if (!isTopTiddler && (single || top))
			tiddlerElem.parentNode.insertBefore(tiddlerElem,tiddlerElem.parentNode.firstChild);
		else if (bottom)
			tiddlerElem.parentNode.insertBefore(tiddlerElem,null);
		else this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	} else
		this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	var tiddlerElem=document.getElementById(story.idPrefix+title);
	if (tiddlerElem&&opt.chkSinglePageAutoScroll) {
		// scroll to top of page or top of tiddler
		var isTopTiddler=(tiddlerElem.previousSibling==null);
		var yPos=isTopTiddler?0:ensureVisible(tiddlerElem);
		// if animating, defer scroll until after animation completes
		var delay=opt.chkAnimate?config.animDuration+10:0;
		setTimeout("window.scrollTo(0,"+yPos+")",delay); 
	}
}

if (Story.prototype.SPM_coreDisplayTiddlers==undefined)
	Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function() {
	// suspend single/top/bottom modes when showing multiple tiddlers
	var opt=config.options;
	var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
	var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
	var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
	this.SPM_coreDisplayTiddlers.apply(this,arguments);
	opt.chkBottomOfPageMode=saveBPM;
	opt.chkTopOfPageMode=saveTPM;
	opt.chkSinglePageMode=saveSPM;
}
//}}}
<data>{"abstract":"[[Sinne schärfen]], einfach einmal kurz innehalten und die fünf Sinne gebrauchen - auch so kann man die eigene Kreativität anregen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://wmnet.at/chilli_startseite2.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Sinne schärfen","abstract") </script>

!Sinne schärfen
<script> return "<<tiddler [[Sinne schärfen##Overview]]>>" </script> 
Wer seinen sechsten Sinn für neue Lösungen entwickeln möchte, tut gut daran, seine fünf Sinne zu trainieren. 

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Eine einfache Übung, die man im Alltag jederzeit einschieben kann: Machen Sie eine kurze Pause, halten inne und fragen sich: //"Was sehe ich gerade? Was rieche ich? Was schmecke ich? Was empfinde ich?"// Dabei wird Ihnen möglicherweise auch deutlich, wie sehr Sie sich in der Regel auf Ihren Sehsinn verlassen und die anderen sträflich vernachlässigen.

!Debriefing

!Quelle
Brigitte Seibold: Den Muskel der Intuition trainieren, wirtschaft & weiterbildung 2/2001, S.29

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Sinne+sch%E4rfen+%28jt%29]]
/***
|Name:|SiteMapMacro|
|Author:|[[SimonBaird]]|
|Location:|http://mptw2.tiddlyspot.com/#SiteMapMacro|
|Version:|1.0.3, 15-Mar-06|

!!Examples
See [[SiteMap]] and [[SliderSiteMap|http://mptw2.tiddlyspot.com/#SiteMapMacro]] for example usage.

!!Parameters
* Name of tiddler to start at
* Max depth (a number) 
* Format (eg, nested, see formats below)
* Don't show root flag (anything other than null turns it on)
* Tags - a string containing a bracketed list of tags that we are interested in

!!History
* 1.0.3 (15-Mar-06)
** added tag filtering
* 1.0.2 (15-Mar-06)
** Added json format and dontshowroot option
* 1.0.1 (9-Mar-06)
** Added selectable formats and fixed nested slider format
* 1.0.0 (8-Mar-06)
** first release

***/
//{{{

version.extensions.SiteMapMacro = {
	major: 1,
	minor: 0,
	revision: 3,
	date: new Date(2006,3,15),
	source: "http://simonbaird.com/mptw/#SiteMapMacro"
};

config.macros.siteMap = {

	formats: {
		bullets: {
			formatString: "%0[[%1]]\n%2",
			indentString: "*"
		},

		// put this in your StyleSheet to make it look good.
		// .sliderPanel { margin-left: 2em; }

		sliders: {
			formatString: "[[%1]]+++\n%2===\n\n",
			formatStringLeaf: "[[%1]]\n"
		},

		openSliders: {
			formatString: "[[%1]]++++\n%2===\n\n",
			formatStringLeaf: "[[%1]]\n"
		},

		popups: {
			formatString: "[[%1]]+++^\n%2===\n\n",
			formatStringLeaf: "[[%1]]\n"
		},

		// these don't work too well
		openPopups: {
			formatString: "[[%1]]++++^\n%2===\n\n",
			formatStringLeaf: "[[%1]]\n"
		},
		
		// this is a little nuts but it works
		json: {
			formatString: '\n%0{"%1":[%2\n%0]}',
			formatStringLeaf: '\n%0"%1"',
			indentString: "  ",
			separatorString: ","
		}


	},

	defaultFormat: "bullets",

	treeTraverse: function(title,depth,maxdepth,format,dontshowroot,tags,excludetags) {

		var tiddler = store.getTiddler(title);
		var tagging = store.getTaggedTiddlers(title);

		if (dontshowroot)
			depth = 0;

		var indent = "";
		if (this.formats[format].indentString)
			for (var j=0;j<depth;j++)
				indent += this.formats[format].indentString;

		var childOutput = "";
		if (!maxdepth || depth < parseInt(maxdepth)) 
			for (var i=0;i<tagging.length;i++)
				if (tagging[i].title != title) {
					if (this.formats[format].separatorString && i != 0)
						childOutput += this.formats[format].separatorString;
					childOutput += this.treeTraverse(tagging[i].title,depth+1,maxdepth,format,null,tags,excludetags);
				}

		if (childOutput == "" && (
				(tags && tags != "" && !tiddler.tags.containsAll(tags.readBracketedList())) ||
				(excludetags && excludetags != "" && tiddler.tags.containsAny(excludetags.readBracketedList()))
				)
			) {
			// so prune it cos it doesn't have the right tags and neither do any of it's children
			return "";
		}

		if (dontshowroot)
			return childOutput;

		if (this.formats[format].formatStringLeaf && childOutput == "") {
			// required for nestedSliders
			return this.formats[format].formatStringLeaf.format([indent,title,childOutput]);
		}

		return this.formats[format].formatString.format([indent,title,childOutput]);
	},

	handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		wikify(this.treeTraverse(
			params[0] && params[0] != '.' ? params[0] : tiddler.title, 1, 
			params[1] && params[1] != '.' ? params[1] : null, // maxdepth
			params[2] && params[2] != '.' ? params[2] : this.defaultFormat, // format
			params[3] && params[3] != '.' ? params[3] : null, // dontshowroot
			params[4] && params[4] != '.' ? params[4] : null, // tags
			params[5] && params[5] != '.' ? params[5] : null // excludetags
			),place);
	}

}

//}}}
M. Tarnowski, [[www.Plays-In-Business.com|http://www.Plays-In-Business.com]]
Agile Games Collection 
[<img(  , )[http://plays-in-business.com/wp-content/uploads/PiB_Logo_01_med.png]] 
/***
|Name|SliceGridPlugin|
|Source|http://www.TiddlyTools.com/#SliceGridPlugin|
|Documentation|http://www.TiddlyTools.com/#SliceGridPluginInfo|
|Version|1.1.0|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1.3|
|Type|plugin|
|Requires||
|Overrides||
|Description|Generate a "slice grid" table to get an instant 'birds-eye' overview of your entire document|
Rows are tiddlers, columns are slice names.  If a tiddler has a value defined for a given slice, that grid cell is colored. Move the mouse over a grid cell to view the value for that tiddler slice.  To keep the grid display from getting very wide, the slice names used as column headings are not initially displayed.  ''Click directly above the column to show/hide that heading'', or toggle all column headings at once by clicking the {{{>>>}}} symbol in the upper-left corner of the grid display.
!!!!!Documentation
>see [[SliceGridPluginInfo]]
!!!!!Revisions
<<<
2009.09.17 [1.1.0] added '=fieldname' syntax for 'field grid'
|please see [[SliceGridPluginInfo]] for additional revision details|
2007.01.30 [0.0.1] started
<<<
!!!!!Code
***/
//{{{
version.extensions.SliceGridPlugin= {major: 1, minor: 1, revision: 0, date: new Date(2009,9,17)};

config.macros.sliceGrid= {
	sizeSliceName: "TiddlerSize", // shadow slice used for retrieving and showing tiddler size as a grid column
	noSlicesMsg: "\n|~SliceGrid: there are no slices to display|\n",
	handler:
	function(place,macroName,params) {
		this.slicesRE=/(?:^\|\s*[\'\/]*~?(\w+)\:?[\'\/]*\s*\|\s*(.*?)\s*\|$)/gm;
		this.wikify=false; // wiki-syntax in slices
		this.edit=false; // 'click-to-edit' feature
		this.verbose=false; // debugging/performance feedback messages
		this.alltiddlers=false; // rows for all tiddlers (even if no slices)
		this.inline=false; // slice value in cell (instead of mouseover)
		this.headers=false; // column headers
		this.cliplength=0; // limit inline display text length (0=no limit)
		this.slices=[]; // slices to show (columns)
		var tablewidth="auto"; // default css for table width
		var p=params.shift();
		while (p) {
			if (p.substr(0,6).toUpperCase()=="WIDTH:")
				tablewidth=p.substr(6);
			else if (p.substr(0,5).toUpperCase()=="TAGS:") {
				if (p.substr(5,1)=="@") { // get tags from tiddler
					var tid=store.getTiddler(p.substr(6));
					if (p.substr(6)=="here") {
						var here=story.findContainingTiddler(place);
						if (here) var tid=store.getTiddler(here.getAttribute("tiddler"));
					}
					if (tid) var tags=tid.tags;
				}
				else if (p.substr(5,1)=="+") { // get tags from tiddler contents
					var tid=store.getTiddler(p.substr(6));
					if (p.substr(6)=="here") {
						var here=story.findContainingTiddler(place);
						if (here) var tid=store.getTiddler(here.getAttribute("tiddler"));
					}
					if (tid)
						{ var tags=tid.text.readBracketedList(); }
				}
				else var tags=p.substr(5).readBracketedList();
			}
			else if (p.substr(0,7).toUpperCase()=="SLICES:") {
				if (p.substr(7,1)=="@") { // get slices from tiddler
					var tid=p.substr(8);
					var tiddler=store.getTiddler(tid);
					if (tid=="here") {
						var here=story.findContainingTiddler(place);
						if (here) var tiddler=store.getTiddler(here.getAttribute("tiddler"));
					}
					if (tiddler) {
						var slices=tiddler.getSlices(tiddler.title); for (var s in slices) this.slices.push(s);
					}
				}
				else if (p.substr(7,1)=="+") { // get slices from tiddler contents
					var tid=p.substr(8);
					var tiddler=store.getTiddler(tid);
					if (tid=="here") {
						var here=story.findContainingTiddler(place);
						if (here) var tiddler=store.getTiddler(here.getAttribute("tiddler"));
					}
					if (tiddler)
						{ this.slices=tiddler.text.readBracketedList(); }
				}
				else this.slices=p.substr(7).readBracketedList();
			}
			else switch (p.toUpperCase()) {
				case "EDIT":
					this.edit=true && !readOnly; break; // no editing allowed if readOnly mode
				case "WIKIFY":
					this.wikify=true; break;
				case "VERBOSE":
					this.verbose=true; break;
				case "ALL":
					this.alltiddlers=true; break;
				case "INLINE":
					this.inline=true; this.headers=true; break; // default to show headers with inline grid
				default:
					if (!isNaN(p)) { this.cliplength=p; break; }
					else displayMessage("unrecognized parameter: "+p);
			}
			p=params.shift();
		}
		// get rows and columns
		var rows=[]; var cols=[]; var total=0;
		var tiddlers=store.getTiddlers("title","excludeLists"); // get all tiddlers (except hidden ones)
		if (tags && tags.length) for (t=0;t<tiddlers.length;t++) // filter out tiddlers with no matching tags
			if (!tiddlers[t].tags.containsAny(tags)) { tiddlers.splice(t,1); t--; } // remove non-matching tiddler
		for (i=0; i<tiddlers.length; i++) {
			var slices=this.getSlices(tiddlers[i].title);
			var count=0; for (var s in slices) { cols.pushUnique(s); count++; total++;}
			if (count || this.alltiddlers) rows.push(tiddlers[i].title); // only show rows for tiddlers with slices
		}
		if (!cols.length) { wikify(this.noSlicesMsg,place); return; }
		if (this.verbose) displayMessage("Found %0 slices using %1 slice names in %2 tiddlers".format([total, cols.length,rows.length]));

		// get optional list of slices to show
		if (this.slices.length) var cols=this.slices;

		// generate HTML table
		var out="";
		out+="<html><table cellpadding='0' cellspacing='0' style='border:0;border-collapse:collapse;width:"+tablewidth+"'>";
		// column headings
		out+="<tr style='border:0;'><td style='text-align:right;border:0'>";
		out+="<a href='javascript:;' style='font-size:80%;'";
		out+="	title='show all column headings'";
		out+="	onclick='return config.macros.sliceGrid.toggleAllColumns(this,event,"+(this.headers?"true":"false")+")'>";
		out+=this.headers?"&lt;&lt;&lt;":"&gt;&gt;&gt;";
		out+="</a>";
		out+="</td>";
		for (var i=0;i<cols.length;i++) {
			out+="<td style='text-align:center;cursor:pointer;border:0;padding-left:2px;padding-right:2px;' ";
			out+=" title='show/hide column heading' ";
			out+=" onclick='return config.macros.sliceGrid.toggleColumn(this,event)'>";
			out+="<span style='display:"+(this.headers?"block":"none")+"'>";
			out+=cols[i].replace(/^=/,'');
			out+="</span>";
			out+="</td>";
		}
		out+="</tr>";
		for (var i=0;i<rows.length;i++) {
			var tiddlersrc=rows[i].replace(/"/g,"&#x22;");
			out +="<tr style='border:0'>";
			// row heading
			out +="<td style='text-align:right;border:0;padding-right:2px;white-space:nowrap;"+(this.inline?'width:1%':'')+";'>";
			out +="<a href='javascript:;' tid=\""+tiddlersrc+"\" class='slicegrid_heading' ";
			out +="		onclick='story.displayTiddler(this,this.getAttribute(\"tid\"));return false'>"+tiddlersrc+"</a>";
			out +="</td>";
			var slices=this.getSlices(rows[i]);
			for (var j=0;j<cols.length;j++) {
				var val=slices[cols[j]]||'';
				if (cols[j].substr(0,1)=='=')
					val=store.getValue(rows[i],cols[j].substr(1))||'';
				var bgcolor=val.length?"#999":"transparent";
				var content="&nbsp;";
				if (val.length && this.inline) {
					content=val.htmlEncode();
					if (this.cliplength) content=val.substr(0,this.cliplength)+(val.length>this.cliplength?"...":"");
					bgcolor="transparent";
				}
				out+="<td style='background-color:"+bgcolor+";border:1px solid;"+(!this.inline?'width:1em;':'');
				if (this.inline && cols[j]==this.sizeSliceName) out+="text-align:right !important;"; // right align tiddler size pseudo-slice
				out+="'"; 
				if (this.edit && !(cols[j]==this.sizeSliceName)) { // add edit-in-place, except for tiddler size pseudo-slice
					var onclick="return config.macros.sliceGrid.editSlice(this,event,this.getAttribute(\"tid\"),\""+cols[j]+"\","+(this.inline?"true":"false")+")";
					out+=" tid=\""+tiddlersrc+"\" onclick='"+onclick+"'";
				}
				if (cols[j].substr(0,1)=="=")
					out+=" title=\""+cols[j].substr(1)+"@"+tiddlersrc+(!this.inline?("="+val):"")+"\"";
				else
					out+=" title=\""+tiddlersrc+"::"+cols[j]+(!this.inline?("="+val):"")+"\"";
				out+="><span class='slicegrid_content'>"+content+"</span></td>";
			}
			out+="</tr>";
		}
		out+="</table>";
		out+="</html>";
		var span=createTiddlyElement(place,"span")
		span.innerHTML=out;
		if (this.wikify) {
			// find all TD's in table and replace span content with wikified elements
			var tds=span.getElementsByTagName("td");
			for (var t=0; t<tds.length; t++) {
				var content=tds[t].firstChild;
				if (hasClass(content,"slicegrid_heading")||hasClass(content,"slicegrid_content")) {
					var txt=getPlainText(content);
					if (hasClass(content,"slicegrid_heading")) txt="[["+txt+"]]";
					removeChildren(content);
					wikify(txt,content);
				}
			}
		}
	},
	toggleAllColumns:
	function(here,event,defOpen) {
		if (here.expanded==undefined) here.expanded=defOpen;
		var ex=here.expanded=!here.expanded; 
		here.innerHTML=ex?"&lt;&lt;&lt;":"&gt;&gt;&gt;";
		here.title=ex?'hide all column headings':'show all column headings';
		var cells=here.parentNode.parentNode.getElementsByTagName("td");
		for (i=1; i<cells.length; i++) cells[i].firstChild.style.display=ex?"inline":"none";
		event.cancelBubble = true;
		if (event.stopPropagation) event.stopPropagation();
		return(false);
	},
	toggleColumn:
	function(here,event) {
		here.firstChild.style.display=(here.firstChild.style.display=="none")?"inline":"none";
		event.cancelBubble = true;
		if (event.stopPropagation) event.stopPropagation();
		return(false);
	},
	editSlice:
	function(here,event,tid,slice,inline) {
		// replace prompt box with edit field that is displayed until onBlur
		if (here.editing) return false; // already editing… don't re-init

		var onkeyup='if (event.keyCode==13)'; // SAVE and END
		onkeyup+='	{ config.macros.sliceGrid.setSlice(this.getAttribute(\"tid\"),"'+slice+'",this.value); this.blur(); }';
		onkeyup+='else if (event.keyCode==27)'; // END without saving
		onkeyup+='	{ this.blur(); }';

		var onblur="var tid=this.getAttribute(\"tid\"); var slice=\""+slice+"\"; var currval=config.macros.sliceGrid.getSlice(tid,slice); ";
		if (cols[j].substr(0,1)=="=")
			onblur+="if (this.value!=currval && confirm(slice+\"@\"+tid+\" has changed… save value?\"))";
		else
			onblur+="if (this.value!=currval && confirm(tid+\"::\"+slice+\" has changed… save value?\"))";
		onblur+="	{ config.macros.sliceGrid.setSlice(tid,slice,this.value); currval=this.value; }";
		onblur+="var target=this.parentNode;";
		onblur+="target.editing=false;";
		onblur+="target.style.backgroundColor=target.getAttribute(\"savedColor\");";
		onblur+="target.style.padding=target.getAttribute(\"savedPadding\");";
		onblur+="target.style.width=target.getAttribute(\"savedWidth\");";
		onblur+="if (config.macros.sliceGrid.wikify) { removeChildren(target); wikify(currval,target); }";
		onblur+="else target.innerHTML="+(inline?'currval':'\"&nbsp;\"')+";";

		var style="font-size:1em;font-family:inherit;width:95%;margin:0px;padding:1px 0px 1px 3px;border:0;";
		if (cols[j].substr(0,1)=="=")
			var title=slice+"@"+tid+" (ENTER=submit, ESC=cancel)";
		else
			var title=tid+"::"+slice+" (ENTER=submit, ESC=cancel)";

		here.setAttribute("savedWidth",here.style.width); if (!inline) here.style.width="99%";
		here.setAttribute("savedPadding",here.style.padding); here.style.padding="0px"; 
		here.setAttribute("savedColor",here.style.backgroundColor); here.style.backgroundColor="#fff";
		here.innerHTML="<input type='text' tid=\""+tid.replace(/"/g,"&#x22;")+"\" onkeyup='"+onkeyup+"' onblur='"+onblur+"' style='"+style+"' title='"+title+"'>";
		here.firstChild.value=config.macros.sliceGrid.getSlice(tid,slice); // avoids conflicts with nested quoting in HTML
		here.firstChild.focus();
		here.firstChild.select();
		here.editing=true;

		event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation(); return(false);
	},
	getSlice:
	function(tid,slice) {
		if (slice.substr(0,1)=="=") { // use custom field
			var f=slice.substr(1);
			return store.getValue(tid,f,'');
		}
		var slices=config.macros.sliceGrid.getSlices(tid);
		return slices[slice]?slices[slice]:"";
	},
	getSlices:
	function(tid) {
		var slices = {};
		var text = store.getTiddlerText(tid,"");
		slices[this.sizeSliceName]=text.length.toString();  // 'shadow slice' to show tiddler size
		this.slicesRE.lastIndex = 0;
		do {
			var m = this.slicesRE.exec(text);
			if (m) { if (m[1]) slices[m[1]] = m[2]; else slices[m[3]] = m[4]; }
		} while(m);
		return slices;
	},
	setSlice:
	function(tid,slice,val) {
		if (slice.substr(0,1)=="=") { // use custom field
			var f=slice.substr(1);
			store.setValue(tid,f,val);
			displayMessage(f+'@'+tid+' has been updated');
			return false;
		}
		var oldval=this.getSlice(tid,slice);
		if (val==oldval) return false; // value is unchanged… do nothing
		// find slice within tiddler text
		var tiddler=store.getTiddler(tid);
		this.slicesRE.lastIndex = 0;
		var lastIndex=0;
		do {
			var m=this.slicesRE.exec(tiddler.text);
			if (m && (m[1]==slice||m[3]==slice)) break;
			if (m) lastIndex=this.slicesRE.lastIndex;
		} while(m);
		if (m) { // if matching slice was found
			if (oldval.length) { // replace old value with new value
				var pos=RegExp.lastMatch.indexOf(oldval);
				var newSlice=RegExp.lastMatch.substr(0,pos)+val+RegExp.lastMatch.substr(pos+oldval.length);
			} else // insert new value into empty slice
				var newSlice=RegExp.lastMatch.substr(0,RegExp.lastMatch.length-1)+val+"|";
			var newText=RegExp.leftContext+newSlice+RegExp.rightContext;
		} else { // create new slice following last slice (or at start of tiddler if no slices)
			var newSlice="|"+slice+"|"+val+"|\n";
			var newText=newSlice+tiddler.text
			if (lastIndex) var newText=tiddler.text.substr(0,lastIndex+1)+newSlice+tiddler.text.substr(lastIndex+1);
		}
		// write tiddler contents
		var user=config.options.txtUserName; var mod=new Date();
		if (config.options.chkForceMinorUpdate)
			{ var user=tiddler.modifier; var mod=tiddler.modified; }
		store.saveTiddler(tid,tid,newText,user,mod,tiddler.tags,tiddler.fields);
		displayMessage(tid+"::"+slice+" has been "+(m?"updated":"created"));
		return(false);
	}
};
//}}}
/***
|''Name:''|SlideShowPlugin|
|''Description:''|Creates a slide show from a group of tiddlers|
|''Author:''|Paulo Soares|
|''Version:''|2.0.4|
|''Date:''|2009-05-03|
|''Source:''|http://www.math.ist.utl.pt/~psoares/addons.html|
|''License:''|[[Creative Commons Attribution-Share Alike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''~CoreVersion:''|2.5.0|

!Description
This plugin turns a set of tiddlers into a slide show. A single macro provides a flexible way to present a set of tiddlers, including:
#a full screen presentation that hides the TiddlyWiki structure (header, sidebar, main menu);
#a way to navigate through a set of tiddlers keeping the TiddlyWiki structure (similar to the [[NavigationMacro|http://tw.lewcid.org/#NavigationMacro]] by Saq Imtiaz);
#a display of all the selected tiddlers ready to be printed.
!Main features
Most features that are usually found in presentation software are available. 
*Build a slide show from a list of tiddlers' titles or selecting a specific tag with optional sort
*Fully customizable presentations (css knowledge required)
*Auto-advancing slide show (kiosk mode) and looping (circular mode)
*Incremental display (several overlays or layers in a slide)
*Optional clock with 3 different modes:
**local time
**elapsed time of presentation
**countdown clock for a given period
*Screen blanking for pauses
!Installation
To install this plugin copy the tiddler SlideShowPlugin to your TiddlyWiki, label it with the ''systemConfig'' tag, save the TW and refresh the browser.
Optionally, you can also copy this documentation tiddler. If you don't, a link to the original one in my site is provided.  
!Quick start
The simplest way to make a slide show is to create a new tiddler with references to all the tiddlers you want to include in your presentation and add {{{<<slideShow>>}}} anywhere in the tiddler. Close the edit form, click the ''slide show'' button and there you are. Move forward/backward in the presentation with the mouse left/right button. If you move the mouse pointer over the bottom of the browser window you will see a few navigation buttons. Click the ''x'' button or press the ''Escape'' key to exit.
!Options
{{{
<<slideShow tag:tag sort:field noClicks noKeyboard noOverlays cycle showAll theme:tiddler toc: string auto:time clock:type header:string footer:string>> 
}}}
''tag''
Use this option to create a slide show with the tiddlers with the provided tag instead of providing a list of tiddlers.

''sort''
If the ''tag'' option is used you can use this other option to sort the tiddlers according to a specific field. Valid values are: //created// (default), //modified//, //title// and //text//.

''noClicks''
Disables navigation through mouse clicks on the tiddlers. This is useful when there are lots of clickable elements in the presentation.
If you want to keep using the mouse to move around the presentation and there are occasional elements that require mouse clicking, these can be formatted with a {{{noClicks}}} class (read more [[here|http://www.tiddlywiki.com/#CustomCssClass]]).

''noKeyboard''
Disables keyboard navigation.

''noOverlays''
Disables the incremental display of overlays.

''cycle''
The slide shows runs in a continuous loop. 

''showAll''
To print a presentation all the selected tiddlers are opened in the specified order. Press any key to return to the default TiddlyWiki layout.

''theme''
A user provided tiddler containing css rules that define the style of the slide show. To redefine the default style, edit the SlideShowStyleSheet shadow tiddler. 

''toc''
Choose the type of table of contents. Possible values: ''titles'' will enable the use of the tiddlers titles, ''headers'' (default) to choose html headers (h1, h2,...), anything else will disable the table of contents.  

''auto''
The slide show auto advances after the defined number of seconds. The slide show can be paused by pressing the ''space bar''.

''clock''
Displays a clock near the navigation buttons at the bottom of the screen. Three types of clocks can be defined:
#''clock:0'' -- shows the local time in the format defined by the //config.macros.slideShow.text.clockFormat// parameter.
#''clock:'+''' -- displays the elapsed time of the presentation. Click the clock display to reset the time.
#''clock:-20'' -- displays a countdown clock for the given (negative) number of minutes. Click the clock display to reset the time.
''header''
A string to be used as a permanent header for the slide show. By default it's used the title of tiddler that defines the slide show.

''footer''
A string to be used as a permanent footer slide show.
!Incremental display
A succession of overlays (or layers) can be defined in each slide by marking blocks of text with
{{{
{{overlay1{...some text...}}}, {{overlay2{...some text...}}}, {{overlay3{...some text...}}}, …
}}}
The default name of the classes (//overlay//) can be redefined with //config.macros.slideShow.text.overlay = "layer"//, for example. 
To costumize the way overlays are shown you can redefine the following css classes
*.previousOverlay 
*.currentOverlay 
*.nextOverlay 
in a ~StyleSheet. The default style simply hides the next overlays and shows the current and the previous ones as normal text.
!Slide show navigation
You can navigate through a slide show using the keyboard or the mouse. 
!!Mouse navigation
Left (right) clicking on a slide jumps to the next (previous) slide or overlay. To move to the first or last slides you must use the navigation bar at the bottom of the browser's window.
!!Keyboard
The following keys are defined:
*Home - first slide
*~PageUp - previous slide
*~PageDown - next slide
*End - last slide
*Escape - exit slide show
*Up arrow - first overlay
*Left arrow - previous overlay/slide
*Pause/Right arrow - next overlay/slide
*Down arrow - last overlay
*Spacebar - pause/resume slide show in auto advance mode, next overlay/slide otherwise
*B - blank screen and block the slide show
!Miscellaneous 
Any block of text marked as
{{{
{{comment{For my eyes only!}}}
}}}
will not be displayed in the slide show.

All translatable strings are defined in //config.macros.slideShow.text// parameter. See SlideShowPluginMsgPT with the portuguese translation as an example.
***/
//{{{
if(!version.extensions.SlideShowPlugin) { //# ensure that the plugin is only installed once
version.extensions.SlideShowPlugin = {installed: true};

(function($) {
config.macros.slideShow = {};

config.macros.slideShow.text = {
  label: "slide show", tooltip: "Start slide show",
  quit: {label: "x", tooltip: "Quit the slide show"},
  firstSlide: {label: "<<", tooltip: "Go to first slide"},
  previous: {label: "<", tooltip: "Go back"},
  next: {label: ">", tooltip: "Advance"},
  lastSlide: {label: ">>", tooltip: "Go to last slide"},
  goto: {label: "Go to slide:"},
  resetClock: {tooltip: "Reset the clock"},
  clockFormat: "0hh:0mm:0ss",
  overlay: "overlay"
};

config.macros.slideShow.handler = function(place,macroName,params,wikifier,paramString,tiddler){
  var args = paramString.parseParams(null,null,true);
  this.label = getParam(args,"label",this.text.label);
  this.tooltip = getParam(args,"tooltip",this.text.tooltip);
  var onclick = function(){config.macros.slideShow.onClick(tiddler,paramString);};
  createTiddlyButton(place,this.label,this.tooltip,onclick);
}

config.macros.slideShow.onClick = function(tiddler,paramString) {
  var cm = config.macros.slideShow;
  var args = paramString.parseParams(null,null,true);
  var argsArray = paramString.readMacroParams();
  this.clicks = ($.inArray('noClicks',argsArray) < 0);
  this.keyboard = ($.inArray('noKeyboard',argsArray) < 0);
  this.showAll = ($.inArray('showAll',argsArray) > -1);
  this.cycle = ($.inArray('cycle',argsArray) > -1);
  this.overlays = ($.inArray('noOverlays',argsArray) < 0);
  this.theme = getParam(args,"theme");
  this.tag = getParam(args,"tag");
  this.toc = getParam(args,"toc","headers");
  this.sort = getParam(args,"sort");
  this.auto = getParam(args,"auto",0);
  this.header = getParam(args,"header",tiddler.title);
  this.footer = getParam(args,"footer","");
  this.clock = getParam(args,"clock");
  this.blocked = 0;
  if(this.clock){
    var startTime = new Date(0);
    this.clockCorrection=startTime.getTimezoneOffset()*60000;
    startTime = new Date();
    this.clockMultiplier = 1;
    this.clockInterval = 0;
    var clockType= parseFloat(this.clock);
    if(clockType < 0) {
      this.clockMultiplier = -1;
      this.clockInterval = -clockType*60000;
    } else if(clockType == 0){
      this.clockCorrection = 0;
      startTime = new Date(0);
    }
    this.clockStartTime=startTime.getTime();
  }
  this.slides = [];
  this.openTiddlers = [];
  $("#tiddlerDisplay > *").each(function(){cm.openTiddlers.push($(this).attr('tiddler'))});
  var count = 0;
  this.slideTOC=[];
  if(this.tag){
    var content = store.getTaggedTiddlers(this.tag,this.sort);
    $.each(content, function(){
      count++;
      cm.buildTOC(count,this.title);
      cm.slides.push(this.title);
    });
  } else {
    var content = tiddler.text.readBracketedList();
    $.each(content, function(){
      if(store.tiddlerExists(this)){
        count++;
        cm.buildTOC(count,this);
        cm.slides.push(this);
      }
    });
  }
  this.nSlides = this.slides.length;
  if(this.nSlides==0) return;
  clearMessage();
  this.toggleSlideStyles();
  if(!this.showAll){
    //Attach the key and mouse listeners
    if(this.keyboard && !$("#tiddlerDisplay").hasClass("noKeyboard")) $(document).keyup(cm.keys);
    if(this.clicks){
      $("#displayArea").mouseup(cm.clicker);
      document.oncontextmenu = function(){return false;}
    }
    if(this.clock) this.slideClock=setInterval(this.setClock, 1000);
    if(this.auto>0){
      this.autoAdvance=setInterval(cm.next, this.auto*1000);
    }
    this.showSlide(1);
  } else {
    story.closeAllTiddlers();
    story.displayTiddlers(null,this.slides);
    $(".tiddler").attr("ondblclick",null);
    $(document).keyup(cm.endSlideShow);
  }
  return false;
}

config.macros.slideShow.buildNavigator = function() {
  //Create the navigation bar
  var i, slidefooter = $("#controlBar")[0];
  if(!slidefooter) return;
  $(slidefooter).addClass("slideFooterOff noClicks");
  var navigator = createTiddlyElement(slidefooter,"SPAN","navigator");
  //Make it so that when the footer is hovered over the class will change to make it visible
  $(slidefooter).bind("mouseenter mouseleave", function(e){$(this).toggleClass("slideFooterOff");});
  //Create the control buttons for the navigation
 
  createTiddlyButton(navigator,this.text.firstSlide.label,this.text.firstSlide.tooltip,this.firstSlide,"button");
  createTiddlyButton(navigator,this.text.previous.label,this.text.previous.tooltip,this.previous,"button");
  createTiddlyButton(navigator,this.text.quit.label,this.text.quit.tooltip,this.endSlideShow,"button");
  createTiddlyButton(navigator,this.text.next.label,this.text.next.tooltip,this.next,"button");
  createTiddlyButton(navigator,this.text.lastSlide.label,this.text.lastSlide.tooltip,this.lastSlide,"button");
  if(this.clock){
    if(this.clock == 0){
       createTiddlyElement(navigator,"SPAN","slideClock");
    } else {
      createTiddlyButton(navigator," ",this.text.resetClock.tooltip,this.resetClock,"button","slideClock");
    }
    this.setClock();
  }
  var index = createTiddlyElement(slidefooter,"SPAN","slideCounter");
  index.onclick = this.toggleTOC;
  var toc = createTiddlyElement(slidefooter,"SPAN","toc");
  var tocLine;
  for(i=0; i<this.slideTOC.length; i++){
    $(toc).append(this.slideTOC[i][2]);
    tocLine = toc.lastChild;
    $(tocLine).addClass("tocLevel"+this.slideTOC[i][1]).css("cursor", "pointer").hover(function () {
        $(this).addClass("highlight");}, function () {
        $(this).removeClass("highlight");});
    tocLine.setAttribute("slide",this.slideTOC[i][0]);
    $(tocLine).click(config.macros.slideShow.showSlideFromTOC);
  }
  //Input box to jump to specific slide
  var tocItem = createTiddlyElement(toc,"DIV","jumpItem",null,this.text.goto.label);
  var tocJumpInput = createTiddlyElement(tocItem,"INPUT","jumpInput");
  tocJumpInput.type="text";
  $(tocJumpInput).keyup(config.macros.slideShow.jumpToSlide);
}

config.macros.slideShow.buildTOC = function(count,title) {
  switch(this.toc){
  case "headers":
    var frag = wikifyStatic(store.getTiddlerText(title));
    var text = frag.replace(/<div class="comment">.*<\/div>/mg,"");
    var matches =  text.match(/<h[123456]>.*?<\/h[123456]>/mgi);
    if(matches){
      for (var j=0; j<matches.length; j++){
        this.slideTOC.push([count,matches[j].charAt(2),matches[j].replace(/H[123456]/gi,"div")]);
      }
    }
    break;
  case "titles":
    this.slideTOC.push([count,1,"<div>"+title+"</div>"]);
  }
}

config.macros.slideShow.showSlideFromTOC = function(e) {
  var cm = config.macros.slideShow;
  var slide = parseInt(e.target.getAttribute('slide'));
  $("#toc").hide();
  cm.showSlide(slide);
  return false;
}

config.macros.slideShow.toggleTOC = function(){
  $("#toc").toggle();
  $("#jumpInput").focus().val('');
}

config.macros.slideShow.isInteger = function(s){
  for (var i = 0; i < s.length; i++){
    // Check that current character is number
    var c = s.charAt(i);
    if (((c < "0") || (c > "9"))) return false;
  }
  // All characters are numbers
  return true;
}

config.macros.slideShow.jumpToSlide = function(e){
  var cm = config.macros.slideShow;
  if(e.which==13){
    var input= $("#jumpInput").val();
    if(cm.isInteger(input) && input>0 && input<=cm.nSlides){
      $("#toc").hide();
      cm.showSlide(input);
    } else  {$("#jumpInput").val('');}
  }
  return false;
}

config.macros.slideShow.toggleSlideStyles = function(){
  var contentWrapper = $('#contentWrapper');
  if(contentWrapper.hasClass("slideShowMode")){
    refreshPageTemplate();
    removeStyleSheet("SlideShowStyleSheet");
    if(this.theme) removeStyleSheet(this.theme);
  } else {
    $("#displayArea").prepend('<div id="slideBlanker" style="display:none"></div><div id="slideHeader">'+this.header+'</div><div id="slideFooter">'+this.footer+'</div><div id="controlBar"></div>');
    setStylesheet(store.getRecursiveTiddlerText("SlideShowStyleSheet"),"SlideShowStyleSheet");
    if(this.theme && store.tiddlerExists(this.theme)){setStylesheet(store.getRecursiveTiddlerText(this.theme),this.theme);}
    this.buildNavigator();
  }
  contentWrapper.toggleClass("slideShowMode");
}

config.macros.slideShow.showSlide = function(n){
  if(this.cycle) {
    if(n>this.nSlides) {
      n = 1;
    } else if(n<1) {
      n = this.nSlides;
    }
  } else {
    if(n>this.nSlides || n<1) return;
  }
  story.closeAllTiddlers();
  story.displayTiddler(null,String(this.slides[n-1]));
  $(".tiddler").attr("ondblclick",null);
  this.curSlide = n;
  $("#slideCounter").text(this.curSlide+"/"+this.nSlides);
  if(this.overlays){
    var contents = $(".viewer *");
    this.numOverlays = 1;
    while(1){
      if(contents.hasClass(this.text.overlay+this.numOverlays)){
        this.numOverlays++;
      } else {break;}
    }
    this.numOverlays--;
    this.showOverlay(0);
  }
}

config.macros.slideShow.showOverlay = function(n){
  var i, set, cm = config.macros.slideShow;
  if(!cm.overlays || cm.numOverlays == 0 || n<0 || n>cm.numOverlays){return;}
  for(i=1; i<n; i++){
    set = $(".viewer "+"."+cm.text.overlay+i);
    set.removeClass("currentOverlay nextOverlay");
    set.addClass("previousOverlay");
  }
  set = $(".viewer "+"."+cm.text.overlay+n);
  set.removeClass("previousOverlay nextOverlay");
  set.addClass("currentOverlay");
  for(i=n; i<config.macros.slideShow.numOverlays; i++){
    set = $(".viewer "+"."+cm.text.overlay+(i+1));
    set.removeClass("previousOverlay currentOverlay");
    set.addClass("nextOverlay");
  }
  cm.curOverlay = n;
}

config.macros.slideShow.firstSlide = function(){
  config.macros.slideShow.showSlide(1);
}

config.macros.slideShow.lastSlide = function(){
  config.macros.slideShow.showSlide(config.macros.slideShow.nSlides);
}

config.macros.slideShow.next = function(){
  var cm = config.macros.slideShow;
  if(!cm.overlays || cm.numOverlays == 0 || cm.curOverlay == cm.numOverlays) {
    cm.showSlide(cm.curSlide+1);
  } else {
    cm.showOverlay(cm.curOverlay+1);
  }
}

config.macros.slideShow.previous = function(){
  var cm = config.macros.slideShow;
  if(!cm.overlays || cm.numOverlays == 0 || cm.curOverlay == 0) {
    cm.showSlide(cm.curSlide-1);
    cm.showOverlay(cm.numOverlays);
  } else {
    cm.showOverlay(cm.curOverlay-1);
  }
}

config.macros.slideShow.endSlideShow=function(){
  var cm = config.macros.slideShow;
  if(cm.autoAdvance) {clearInterval(cm.autoAdvance);}
  if(this.clock) clearInterval(this.slideClock);
  story.closeAllTiddlers();
  cm.toggleSlideStyles();
  story.displayTiddlers(null,cm.openTiddlers);
  $(document).unbind();
  document.oncontextmenu =  function(){};
}

// 'keys' code adapted from S5 which in turn was adapted from MozPoint (http://mozpoint.mozdev.org/)
config.macros.slideShow.keys = function(key) {
  var cm = config.macros.slideShow;
  switch(key.which) {
  case 32: // spacebar
    if(cm.auto>0 && cm.blocked==0){
      if(cm.autoAdvance){
        clearInterval(cm.autoAdvance);
        cm.autoAdvance = null;
      } else {
        cm.autoAdvance=setInterval(cm.next, cm.auto*1000);
      }
    } else {
      if(cm.blocked==0) cm.next();
    }
    break;
  case 34: // page down
    if(cm.blocked==0) cm.showSlide(cm.curSlide+1);
    break;
  case 39: // rightkey
    if(cm.blocked==0) cm.next();
    break;
  case 40: // downkey
    if(cm.blocked==0) cm.showOverlay(cm.numOverlays);
    break;
  case 33: // page up
    if(cm.blocked==0) cm.showSlide(cm.curSlide-1);
    break;
  case 37: // leftkey
    if(cm.blocked==0) cm.previous();
    break;
  case 38: // upkey
    if(cm.blocked==0) cm.showOverlay(0);
    break;
  case 36: // home
    if(cm.blocked==0) cm.firstSlide();
    break;
  case 35: // end
    if(cm.blocked==0) cm.lastSlide();
    break;
  case 27: // escape
    cm.endSlideShow();
    break;
  case 66: // B
    $("#slideBlanker").toggle();
    cm.blocked = (cm.blocked +1)%2;
    break;
  }
  return false;
}

config.macros.slideShow.clicker = function(e) {
  var cm = config.macros.slideShow;
  if(cm.blocked==1 || $(e.target).attr('href') || $(e.target).parents().andSelf().hasClass('noClicks')){
    return true;
  }
  if($("#toc").is(':visible')){
    cm.toggleTOC();
  } else {
    if((!e.which && e.button == 1) || e.which == 1) {
      cm.next();
    }
    if((!e.which && e.button == 2) || e.which == 3) {
      cm.previous();
    }
  }
  return false;
}

config.macros.slideShow.setClock = function(){
  var cm = config.macros.slideShow;
  var actualTime = new Date();
  var newTime = actualTime.getTime() - cm.clockStartTime;
  newTime = cm.clockMultiplier*newTime+cm.clockInterval+cm.clockCorrection;
  actualTime.setTime(newTime);
  newTime = actualTime.formatString(cm.text.clockFormat);
  $("#slideClock").text(newTime);
}

config.macros.slideShow.resetClock = function(){
  var cm = config.macros.slideShow;
  if(cm.clock == 0) return;
  var time = new Date(0);
  if(cm.clockStartTime>time){
    var startTime = new Date();
    cm.clockStartTime=startTime.getTime();
  }
}

config.shadowTiddlers.SlideShowStyleSheet="/*{{{*/\n.header, #mainMenu, #sidebar, #backstageButton, #backstageArea, .toolbar, .title, .subtitle, .tagging, .tagged, .tagClear, .comment{\n display:none !important\n}\n\n#slideBlanker{\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 90; \n background-color: #000;\n opacity: 0.9;\n filter: alpha(opacity=90)\n}\n\n.nextOverlay{\n visibility: hidden\n}\n\n.previousOverlay,.currentOverlay{\n visibility: visible\n}\n\n#displayArea{\n font-size: 250%;\n margin: 0 !important;\n padding: 0\n}\n\n#controlBar{\n position: fixed;\n bottom: 2px;\n right: 2px;\n width: 100%;\n text-align: right\n}\n\n#controlBar .button{\n margin: 0 0.25em;\n padding: 0 0.25em\n}\n\n#slideHeader{\n font-size: 200%;\n font-weight: bold\n}\n\n#slideFooter{\n position: fixed;\n bottom: 2px\n}\n\n.slideFooterOff #navigator{\n visibility: hidden\n}\n\n#slideClock{\n margin: 0 5px 0 5px\n}\n\n#slideCounter{\n cursor: pointer;\n color: #aaa\n}\n\n#toc{\n display: none;\n position: absolute;\n font-size: .75em;\n bottom: 2em;\n right: 0;\n background: #fff;\n border: 1px solid #000;\n text-align: left\n}\n\n#jumpItem{\n padding-left:0.25em\n}\n\n#jumpInput{\n margin-left: 0.25em;\n width: 3em\n}\n\n.tocLevel1{\n font-size: .8em\n}\n\n.tocLevel2{\n margin-left: 1em;\n font-size: .75em\n}\n\n.tocLevel3{\n margin-left: 2em;\n font-size: .7em\n}\n\n.tocLevel4{\n margin-left: 3em;\n font-size: .65em\n}\n\n.tocLevel5{\n margin-left: 4em;\n font-size: .6em\n}\n\n.tocLevel6{\n margin-left: 5em;\n font-size: .55em\n}\n/*}}}*/";

config.shadowTiddlers.SlideShowPluginDoc="The documentation is available [[here|http://www.math.ist.utl.pt/~psoares/addons.html#SlideShowPluginDoc]].";
})(jQuery)
}
//}}}
<data>{"abstract":"[[Slideluck Potshow]], das schräge Wort stammt  aus den USA und beschreibt ein Veranstaltungsformat, zu dem Kreative aller Couleur  zusammenkommen, gemeinsam essen und in ~Multimedia-Präsentationen ihre Gedanken  vorstellen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://3.bp.blogspot.com/_2JzUNfZE8Ps/SAU2MTyqhQI/AAAAAAAAAL4/tlcKx4UiBi8/s320/slideluck.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Slideluck Potshow","abstract") </script>

!Slideluck Potshow
<script> return "<<tiddler [[Slideluck Potshow##Overview]]>>" </script> 

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Das Prinzip: Keine Darbietung darf länger als fünf Minuten dauern.
 Kaum länger haben die Referenten bei einer [[Pecha-Kucha-Night|Pecha Kucha]] Zeit. Bei diesem aus Japan stammenden Format darf jeder Vortragende maximal 20 Folien jeweils höchstens 20 Sekunden zeigen. 


!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Präsentation]<<tiddlerList tags:"presentation,-newTemplate" header:"Übungen Präsentation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://www.slideluckpotshow.com/
/***
|Name|SnapshotPlugin|
|Source|http://www.TiddlyTools.com/#SnapshotPlugin|
|Documentation|http://www.TiddlyTools.com/#SnapshotPluginInfo|
|Version|1.4.3|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|save or print HTML+CSS image of rendered document content|
This plugin provides a macro as well as tiddler toolbar commands to create a file or browser window containing the //rendered// CSS-and-HTML that is currently being displayed for selected elements of the current document.
!!!!!Documentation
>see [[SnapshotPluginInfo]]
!!!!!Configuration
<<<
<<option chkSnapshotHTMLOnly>> output HTML only (omit CSS)
<<<
!!!!!Revisions
<<<
2011.02.14 1.4.3 fix OSX error: use picker.file.path
2011.01.03 1.4.2 added snapshotSaveViewer toolbar command
2010.12.15 1.4.1 added 'snapshot' class to wrapper
|please see [[SnapshotPluginInfo]] for additional revision details|
2008.04.21 1.0.0 initial release - derived from [[NewDocumentPlugin]] with many improvements...
<<<
!!!!!Code
***/
//{{{
version.extensions.SnapshotPlugin= {major: 1, minor: 4, revision: 3, date: new Date(2011,2,14)};

if (config.options.chkSnapshotHTMLOnly===undefined)
	config.options.chkSnapshotHTMLOnly=false;

config.macros.snapshot = {
	snapLabel: "save a snapshot",
	printLabel: "print a snapshot",
	snapPrompt: "save an HTML image",
	printPrompt: "print an HTML image",
	hereID: "here",
	viewerID: "viewer",
	storyID: "story",
	allID: "all",
	askID: "ask",
	askTiddlerID: "askTiddler",
	askDOMID: "askDOM",
	askMsg: "select an element...",
	hereItem: "tiddler: '%0'",
	viewerItem: "tiddler: '%0' (content only)",
	storyItem: "story column (one file)",
	storyFilesItem: "story column (multiple files)",
	allItem: "entire document",
	tiddlerItem: "select a tiddler...",
	IDItem: "select a DOM element by ID...",
	HTMLItem: "[%0] output HTML only (omit CSS)",
	fileMsg: "select or enter a target path/filename",
	defaultFilename: "snapshot.html",
	okmsg: "snapshot written to %0",
	failmsg: "An error occurred while creating %0",
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var printing=params[0]&&params[0]=="print"; if (printing) params.shift();
		params = paramString.parseParams("anon",null,true,false,false);
		var id=getParam(params,"id","here");
		var label=getParam(params,"label",printing?this.printLabel:this.snapLabel);
		var prompt=getParam(params,"prompt",printing?this.printPrompt:this.snapPrompt);
		var btn=createTiddlyButton(place,label,prompt, function(ev){
			this.setAttribute("snapID",this.getAttribute("startID"));
			config.macros.snapshot.go(this,ev)
		});
		btn.setAttribute("startID",id);
		btn.setAttribute("snapID",id);
		btn.setAttribute("printing",printing?"true":"false");
		btn.setAttribute("HTMLOnly",config.options.chkSnapshotHTMLOnly?"true":"false");
	},
	go: function(here,ev) {
		var cms=config.macros.snapshot; // abbreviation
		var id=here.getAttribute("snapID");
		var printing=here.getAttribute("printing")=="true";
		var HTMLOnly=here.getAttribute("HTMLOnly")=="true";

		if (id==cms.askID||id==cms.askTiddlerID||id==cms.askDOMID) {
			cms.askForID(here,ev);
		} else if (id==cms.storyID) {
			story.forEachTiddler(function(t,e) {
				var out=cms.getsnap(e,e.id,printing,HTMLOnly);
				if (printing) cms.printsnap(out);
				else cms.savesnap(out,e.getAttribute('tiddler')+'.html');
			});
		} else {
			if (id==cms.allID) id="contentWrapper";
			var snapElem=document.getElementById(id);
			if (id==cms.hereID || id==cms.viewerID)
				var snapElem=story.findContainingTiddler(here);
			if (snapElem && hasClass(snapElem,"tiddler") && (id==cms.viewerID || HTMLOnly)) {
				// find viewer class element within tiddler element
				var nodes=snapElem.getElementsByTagName("*");
				for (var i=0; i<nodes.length; i++)
					if (hasClass(nodes[i],"viewer")) { snapElem=nodes[i]; break; }
			}
			if (!snapElem) // not in a tiddler or no viewer element or unknown ID
				{ e.cancelBubble=true; if(e.stopPropagation)e.stopPropagation(); return(false); }
			// write or print snapshot
			var out=cms.getsnap(snapElem,id,printing,HTMLOnly);
			if (printing) cms.printsnap(out); else cms.savesnap(out);
		}
		return false;
	},
	askForID: function(here,ev) {
		var ev = ev ? ev : window.event; 
		var cms=config.macros.snapshot; // abbreviation
		var id=here.getAttribute("snapID");
		var indent='\xa0\xa0\xa0\xa0';
		var p=Popup.create(here); if (!p) return false; p.className+=' sticky smallform';
		var s=createTiddlyElement(p,'select'); s.button=here;
		if (id==cms.askID) {
			s.options[s.length]=new Option(cms.askMsg,cms.askID);
			var tid=story.findContainingTiddler(here);
			if(tid) { 
				var title=tid.getAttribute("tiddler");
				if (here.getAttribute("HTMLOnly")!="true")
					s.options[s.length]=new Option(indent+cms.hereItem.format([title]),cms.hereID);
				s.options[s.length]=new Option(indent+cms.viewerItem.format([title]),cms.viewerID);
			}
			s.options[s.length]=new Option(indent+cms.tiddlerItem,cms.askTiddlerID);
			s.options[s.length]=new Option(indent+cms.IDItem,cms.askDOMID);
			s.options[s.length]=new Option(indent+cms.storyItem,"tiddlerDisplay");
			s.options[s.length]=new Option(indent+cms.storyFilesItem,cms.storyID);
			s.options[s.length]=new Option(indent+cms.allItem,"contentWrapper");
		}
		if (id==cms.askDOMID) {
			s.options[s.length]=new Option(cms.IDItem,cms.askDOMID);
			var elems=document.getElementsByTagName("*");
			var ids=[];
			for (var i=0;i<elems.length;i++)
				if (elems[i].id.length && elems[i].className!="animationContainer")
					ids.push(elems[i].id);
			ids.sort();
			for (var i=0;i<ids.length;i++) s.options[s.length]=new Option(indent+ids[i],ids[i]);
		}
		if (id==cms.askTiddlerID) {
			s.options[s.length]=new Option(cms.tiddlerItem,cms.askTiddlerID);
			var elems=document.getElementsByTagName("div");
			var ids=[];
			for (var i=0;i<elems.length;i++) { var id=elems[i].id;
				if (id.length && id.substr(0,story.idPrefix.length)==story.idPrefix && id!="tiddlerDisplay")
					ids.push(id);
			}
			ids.sort();
			for (var i=0;i<ids.length;i++) s.options[s.length]=new Option(indent+ids[i].substr(story.idPrefix.length),ids[i]);
		}
		s.options[s.length]=new Option(cms.HTMLItem.format([here.getAttribute("HTMLOnly")=="true"?"\u221a":"_"]),cms.HTMLItem);
		s.onchange=function(ev){
			var ev = ev ? ev : window.event; 
			var cms=config.macros.snapshot; // abbreviation
			var here=this.button;
			if (this.value==cms.HTMLItem) {
				config.options.chkSnapshotHTMLOnly=!config.options.chkSnapshotHTMLOnly;
				here.setAttribute("HTMLOnly",config.options.chkSnapshotHTMLOnly?"true":"false");
				config.macros.option.propagateOption("chkSnapshotHTMLOnly","checked",
					config.options.chkSnapshotHTMLOnly,"input");
			} else
				here.setAttribute("snapID",this.value);
			config.macros.snapshot.go(here,ev);
			return false;
		};
		Popup.show();
		ev.cancelBubble=true;
		if(ev.stopPropagation)ev.stopPropagation();
		return false;
	},
	getpath: function() {
		// get current path
		var path=getLocalPath(window.location.href);
		var slashpos=path.lastIndexOf("/");
		if (slashpos==-1) slashpos=path.lastIndexOf("\\"); 
		if (slashpos!=-1) path=path.substr(0,slashpos+1); // trim filename
		return path;
	},
	getsnap: function(snapElem,id,printing,HTMLOnly) {
		var cms=config.macros.snapshot; // abbreviation
		var out='<head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" />';
		if (printing)
			out+='<base href="file:///'+cms.getpath().replace(/\\/g,'/')+'"></base>\n';
		if (!HTMLOnly) {
			var styles=document.getElementsByTagName('style');
			var fmt='<style>\n/* stylesheet=%0 */\n%1\n\n</style>\n';
			for(var i=0; i < styles.length; i++)
				out+=fmt.format([styles[i].getAttribute('id'),styles[i].innerHTML]);
		}
		out+='</head>\n';

		var elems=snapElem.getElementsByTagName('input');
		for (var i=0; i<elems.length; i++) { var e=elems[i];
			if (e.type=='text')		e.defaultValue=e.value;
			if (e.type=='checkbox')	 	e.defaultChecked=e.checked;
			if (e.type=='radiobutton')	e.defaultChecked=e.checked;
		}
		var elems=snapElem.getElementsByTagName('textarea');
		for (var i=0; i<elems.length; i++)	elems[i].defaultValue=elems[i].value;

		var fmt='<body>\n\n<div class="snapshot %0">%1</div>\n\n</body>\n';
		out+=fmt.format([(id==cms.viewerID?'tiddler viewer':''),snapElem.innerHTML]);

		return '<html>\n'+out+'</html>';
	},
	printsnap: function(out) {
		var win=window.open("","_blank","");
		win.document.open();
		win.document.writeln(out);
		win.document.close();
		win.focus(); // bring to front
		win.print(); // trigger print dialog
	},
	savesnap: function(out,target) {
		var cms=config.macros.snapshot; // abbreviation
		// make sure we are local
		if (window.location.protocol!="file:")
			{ alert(config.messages.notFileUrlError); return; }
		var target=target||cms.askForFilename(cms.fileMsg,cms.getpath(),cms.defaultFilename);
		if (!target) return; // cancelled by user
		// if specified file does not include a path, assemble fully qualified path and filename
		var slashpos=target.lastIndexOf("/"); if (slashpos==-1) slashpos=target.lastIndexOf("\\");
		if (slashpos==-1) {
			var h=document.location.href;
			var cwd=getLocalPath(decodeURIComponent(h.substr(0,h.lastIndexOf('/')+1)));
			target=cwd+target;
		}
		var link="file:///"+target.replace(/\\/g,'/'); // link for message text
		var ok=saveFile(target,convertUnicodeToUTF8(out));
		var msg=ok?cms.okmsg.format([target]):cms.failmsg.format([target]);
		displayMessage(msg,link);
	},
	askForFilename: function(msg,path,file) {
		if(window.Components) { // moz
			try {
				netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
				var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
				var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
				picker.init(window, msg, nsIFilePicker.modeSave);
				var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
				thispath.initWithPath(path);
				picker.displayDirectory=thispath;
				picker.defaultExtension='html';
				picker.defaultString=file;
				picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
				if (picker.show()!=nsIFilePicker.returnCancel) var result=picker.file.path;
			}
			catch(e) { alert('error during local file access: '+e.toString()) }
		}
		else { // IE
			try { // XP/Vista only
				var s = new ActiveXObject('UserAccounts.CommonDialog');
				s.Filter='All files|*.*|Text files|*.txt|HTML files|*.htm;*.html|';
				s.FilterIndex=3; // default to HTML files;
				s.InitialDir=path;
				s.FileName=file;
				if (s.showOpen()) var result=s.FileName;
			}
			catch(e) { var result=prompt(msg,path+file); } // fallback for non-XP IE
		}
		return result;
	}
};
//}}}

// // TOOLBAR DEFINITIONS
//{{{
config.commands.snapshotSave = {
	text: "snap",
	tooltip: config.macros.snapshot.snapPrompt,
	handler: function(ev,src,title) {
		src.setAttribute("snapID","ask");
		src.setAttribute("printing","false");
		src.setAttribute("HTMLOnly",config.options.chkSnapshotHTMLOnly?"true":"false");
		config.macros.snapshot.go(src,ev);
		return false;
	}
};
config.commands.snapshotSaveViewer = {
	text: "snap",
	tooltip: config.macros.snapshot.snapPrompt,
	handler: function(ev,src,title) {
		src.setAttribute("snapID","viewer");
		src.setAttribute("printing","false");
		src.setAttribute("HTMLOnly",config.options.chkSnapshotHTMLOnly?"true":"false");
		config.macros.snapshot.go(src,ev);
		return false;
	}
};
config.commands.snapshotPrint = {
	text: "print",
	tooltip: config.macros.snapshot.printPrompt,
	handler: function(ev,src,title) {
		src.setAttribute("snapID","ask");
		src.setAttribute("printing","true");
		src.setAttribute("HTMLOnly",config.options.chkSnapshotHTMLOnly?"true":"false");
		config.macros.snapshot.go(src,ev);
		return false;
	}
};
config.commands.snapshotPrintViewer = {
	text: "print",
	tooltip: config.macros.snapshot.printPrompt,
	handler: function(ev,src,title) {
		src.setAttribute("snapID","viewer");
		src.setAttribute("printing","true");
		src.setAttribute("HTMLOnly",config.options.chkSnapshotHTMLOnly?"true":"false");
		config.macros.snapshot.go(src,ev);
		return false;
	}
};
//}}}

// // COPIED FROM [[StickyPopupPlugin]] TO ELIMINATE PLUGIN DEPENDENCY
//{{{
if (config.options.chkStickyPopups==undefined) config.options.chkStickyPopups=false;
Popup.stickyPopup_onDocumentClick = function(ev)
{
	// if click is in a sticky popup, ignore it so popup will remain visible
	var e = ev ? ev : window.event; var target = resolveTarget(e);
	var p=target; while (p) {
		if (hasClass(p,"popup") && (hasClass(p,"sticky")||config.options.chkStickyPopups)) break;
		else p=p.parentNode;
	}
	if (!p) // not in sticky popup (or sticky popups disabled)... use normal click handling
		Popup.onDocumentClick(ev);
	return true;
};
try{removeEvent(document,"click",Popup.onDocumentClick);}catch(e){};
try{addEvent(document,"click",Popup.stickyPopup_onDocumentClick);}catch(e){};
//}}}
<data>{"abstract":"[[Sockeln]], eine spielerische Wettkampfübung im Freien, mit der Seminarteilnehmer Aggressionen abbauen und ihre Geschicklichkeit unter Beweis stellen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.gartensinemus.de/images/00125.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Sockeln","abstract") </script>

!Sockeln
<script> return "<<tiddler [[Sockeln##Overview]]>>" </script>
Nettes Spiel für die Pause, um Aggressionen abzubauen. 

!Objectives
* Aggressionsabbau
* Teambuilding

!Timing
15 min

!Audience
Group / Individual


!Materials
* 2 etwa 30cm hohe Sockel mit kleiner Standfläche (Baumstümpfe, Töpfe, Eimer etc.)
* 1 Seil (mindestens fünf Meter lang)

!Procedure
Auf die Sockel hocken sich in zwei Meter Abstand zwei Teilnehmer und nehmen das Seilende in die Hand. 
Auf ein Startzeichen beginnen sie, das Seil einzuholen. Das Ziel ist, den Gegner aus dem Gleichgewicht zu bringen, indem das Seil angezogen oder losgelassen wird.

!Debriefing
Als Erkenntnis könnte herauskommen, dass man, um sich zu behaupten, nicht unbedingt viel Kraft benötigt…

!Quelle
[[Gudrun F. Wallenwein: Spiele: Der Punkt auf dem i, Beltz, 5. Aufl. 2003 S.57.| http://www.amazon.de/gp/product/3407364075?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3407364075]], nach [[Fluegelman/Tembeeck: New Games| http://www.amazon.de/gp/product/3884030043?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3884030043]]

+++*[Übungen Outdoor]<<tiddlerList tags:"outdoor,-newTemplate" header:"Übungen Outdoor">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Sockeln+%28jt%29.html]]
<<wikify [>img(%0,%1)[%2|%3]] 40% 40% title http://thedecoratingdiva.com/images/SmallKitchenProblemFuturisticKitchenSolu_13C09/image_3.png>>
<<showtoc>>
!Overview
Der [[Solution Circle]] stellt die Werkzeuge zur Verfügung, um [[Teams]] lösungs- und ressourcenorientiert zu [[führen|Führung]] und zu [[coachen|Coaching]]. 
Diese Werkzeuge können sowohl im Führungsalltag an Sitzungen und [[Besprechungen|Besprechung]] eingesetzt werden, wie auch in der Projektarbeit oder um [[konflikthafte Situationen|Konflikt]] im Rahmen eines Workshops zu bearbeiten

!Solution Circle
<script> return "<<tiddler [[Solution Circle##Overview]]>>" </script>
Der Solution Circle besteht aus acht Elementen, welche alle nötigen Phasen eines [[Team-Coaching-Prozesses|Team-Coaching im Phasenmodell]] umspannen. Es gilt, die vorhandenen Turbulenzen im Team als Chance für die Weiterentwicklung zu nutzen.
Einzelne Elemente des Solution Circles können aber sehr spezifisch eingesetzt werden, beispielsweise
* das [[Futur Perfect|Solution Circle##5. Schritt: Futur Perfect]] zur klaren Zieldefinition, wobei mit der Zieldefinition schon der konstruktive Veränderungsprozess einsetzt.
* der [[Scaling Dance|Solution Circle##6. Schritt: Scaling Dance]] als Veränderungsmethode und um konkrete Maßnahmen zu formulieren.

Der Solution Circle eignet sich besonders in Teamsituationen, in denen rasch und trotzdem nachhaltig eine [[Veränderung|Organizational Change]] gewünscht wird.

!Objectives
* Vorhandene Turbulenzen im Team für Weiterentwicklung nutzen

!Timing
60min

!Audience
Group


!Materials
* 

!Procedure
!!1. Schritt: Rahmen klären
Zunächst gilt es, Vertrauen zwischen Team und Coach aufzubauen und sich gemeinsam darüber zu einigen, was benötigt wird, damit alle engagiert arbeiten können. Folgende Elemente sind dabei wichtig:
# Vorgeschichte klären: Wie kam der Coach zum Team – oder umgekehrt.
# Vorgehensweise und Rollen klären: Vorab sollte als wichtiger Aspekt festgehalten werden, dass der Coach für diesen Workshop die Struktur und den Rahmen schafft, den Verlauf koordiniert und viele Fragen stellen darf, die Teilnehmer jedoch den Inhalt bieten und Lösungen entwickeln.
# Spielregeln festhalten: Auf einem Flipchart werden Verhaltens- oder Kommunikationsregeln gesammelt, die den Teilnehmern für eine engagierte Mitarbeit wichtig sind. Sie können als „Spielregeln der Zusammenarbeit“ bezeichnet werden, die gemeinsam festgehalten und in Kraft gesetzt werden.

!!2. Schritt: Erwartungen und Ziele
Nun werden die Erfolgskriterien für die Sitzung definiert. Kernfrage ist, welche [[Ziele|Ziel]] erreicht und welche Erwartungen erfüllt sein müssen, damit eine Mitarbeit sich überhaupt gelohnt hat?
Hilfreiche Fragen sind hier:
* //„Was soll in diesem Workshop passieren, damit es sich wirklich gelohnt hat, mit dabei
gewesen zu sein?“//
* //„Was soll am Schluss dieses Workshops anders sein als vorher?“//
* //„Woran werden Sie merken, dass Sie dieses Ziel erreicht haben?“//
* //„Wenn gemeinsam dieses Ziel erreicht wird, woran würden Ihre Kunden das merken?“//

!!3. Schritt: Brennpunkte
In diesem Schritt werden die Themen fixiert, in denen eine Verbesserung eintreten soll. Welches sind die brennendsten Themen, in denen unbedingt eine Verbesserung eintreten muss? Können die einzelnen Fragestellungen sinnvoll zu Oberthemen zusammengefasst werden?

!!4. Schritt: Sternstunden
Die Beteiligten machen sich auf die Suche nach Situationen, in denen das [[Problem]] oder der Konflikt weniger oder gar nicht aufgetreten ist. Sie finden heraus, mit welchen Fähigkeiten sie dies geschafft haben.
* //„Welche Begebenheiten gab es in den letzten Wochen, die bezüglich der Fragestellung wie eine kleine Sternstunde erschienen?“//
* //„Was war dabei genau anders?“//
* //„Was hat Ihnen geholfen, in dieser Art zu reagieren?“//
* //„Was haben Sie dazu beigetragen, dass Ihr Kollege so reagiert hat?“//

!!5. Schritt: Futur Perfect
Im [[Futur Perfect]] entwirft das Team eine möglichst präzise Vorstellung einer Zukunft, in der die Probleme gelöst sind.
* //„Wenn wir in diesem Workshop wirklich sehr erfolgreich wären und sich das Team dabei genau nach unseren Wünschen entwickeln würde – wo würde das Team dann in zwei Jahren stehen?“//
* //„Was würden sie genau anders tun? „//

!!6. Schritt: Scaling Dance
[[Scaling Dance]]: Die einzelnen Mitglieder des Teams schätzen die heutige Situation ein. Es geht darum, herauszufinden, was in der Vergangenheit bereits gut funktioniert hat.
* //„Stellen Sie sich eine Skala von 1 bis 10 vor. Wo stehen Sie heute bezüglich des Themas X, wobei 10 den wirklichen Idealzustand (kühnste Erwartung) und 1 das genaue Gegenteil davon darstellt?“//
* //„Wie haben Sie es geschafft, bereits heute auf diesen Punkt zu kommen? Was macht also den Unterschied zwischen 1 und diesem Punkt aus?“//
* //„Wenn Sie an ihre beste Sternstunde aus Schritt 5 denken, wo lag sie auf derselben Skala? Was macht hier den Unterschied aus?“//
* //„Was haben Sie persönlich dazu beigetragen, dass Sie schon auf einer X stehen?“//

!!7. Schritt: Maßnahmen
In diesem Schritt werden konkrete Maßnahmen formuliert, die das Team in nächster Zukunft – am besten schon am nächsten Tag – umsetzen kann.
Auf der Basis des vorangegangenen Schrittes kann leicht zu den Maßnahmen übergeleitet werden. Es gilt festzuhalten, was getan werden muss, um einen kleinen Schritt Richtung 10 zu vollführen.

!!8. Schritt: Persönlicher Auftrag
Durch einen Beobachtungs- oder Handlungsauftrag, den der Coach weitergibt, soll die Aufmerksamkeit auf bestimmte Aspekte in der Umsetzung gerichtet und der Prozess im Alltag weiter unterstützt werden.
Der persönliche Auftrag stellt eine elegante Möglichkeit dar, den eingeleiteten Prozess im Alltag weiter zu unterstützen und den Fokus der Teilnehmer auf die Erfolge zu richten.
Durch die gezielte Aufmerksamkeit auf kleinere und größere Erfolgssituationen wird der
Prozess konstruktiv beschleunigt. 

Ein Beispiel: //„Beobachten Sie in den nächsten zwei Wochen genau, was denn nun im Alltag passiert, von dem Sie sich wünschen, dass es weiter passiert und schon eindeutig in Richtung Futur Perfekt weist. Am nächsten gemeinsamen Meeting tauschen wir diese Beobachtungen dann aus.“//


!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.inclusion.com/tools/solutioncircle.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Daniel Meier: The SolutionCircle for Teams: Eine kurze Einführung - (PDF)| http://www.solutioncircle.com/d/documents/SC_Kurzeinfuhrung.pdf]]
* [[Solution Circle - Slideshare|http://www.slideshare.net/JosefHindels/solution-circle]]
* [[Daniel Meier: Turbulenzen im Team als Chance nutzen — PDF| http://www.solutioncircle.com/d/documents/003_turbulenz_SolCircl_pub.pdf]]
//synonym:// ''SF''
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.elliottconnie.com/images/solutions.gif>>
<<showtoc>>
!Overview
The [[Solution Focus]] is the essential part of [[Solutions Focused Coaching]]. It puts the emphasis on enabling people to be the best they can be in order to go beyond self-imposed limits. Targets can be psychologically limiting. They encourage the mind to think like a machine and look for routine, standardization and predictable outputs. Solutions often come from more creative thinking that allows flexibility in thinking in order to get the best out of people and achieves more effectiveness in doing.

!Solution Focus
<<tiddler [[Solution Focus##Overview]]>>
Most of the time we are locked into looking for “gaps to bridge”. This “deficit model” of change creates a gap between “the now” and “the new”. This is bridged with an action plan that includes milestones or targets. This is fine when the situation is stable and the outcomes are under our control. Getting the cooperation of staff can be far from predictable. 

The [[Solution Focus]] approach is part of [[Solution Focused Brief Therapy]] and was developed by Steve de Shazer at the Centre for ~Solution-Directed Brief Therapy in America.
The focus has to be on what’s needed in creating a workable solution — the so called [[Futur Perfect]], rather than on the problems that are stopping it happening. If we believe that the problem lies „outside” us, and it is stopping us performing better, we are unlikely to own the problem. If we do not see ourselves as „part of the problem”, we are unlikely to give much of your energy to being „part of the solution”. However, if we desire the solution we will look for ways in which we can contribute towards achieving it.

!Objectives
* Decide what to do in a [[Retrospectives|Agile Retrospectives]]

!Timing
60min - 120min

!Audience
Group

!Materials
* 

!Procedure
{{center{<<wikify [img(%0,%1)[%2|%3][%3]] 50% auto title http://www.changezone.co.uk/Solutions%20Focus.JPG>>}}}
!!Description
# The seeds of a solution are almost always present in the form of ''counters'' — things that have been happening before that can contribute to the solution. 
# This creates a ''platform'' (the present situation, ) — the starting point for change (with its connotations of somewhere to depart or lift off from — from which further improvements on a rising ''scale'' towards a ''Future Perfect'' position — the desired outcome — what it would be like if the problem disappeared completely — help feed the solution.
# When you can ''affirm'' what additional things will contribute to the desired solution you can take the ''small actions'' needed to do more of what works.
# A story from the past, an explanation of what is happening now or a vision of the future will contain ''attitudes'' and ''possibilities'' and ''resources'' that can be used to help deliver the solution. What you are looking for are examples or evidence of bits of the „desired state” happening now — nomatter how small. These small actions can be combined to create simple, practical and workable solutions. What matters is what works in a given situation. Context is all important

!!Solution Focus Process
The solution focused process involves:
# Developing a ''Position Statement'' — to be clear where you are now – the //platform for change//
# ''Agreeing a Desired State'' — imagining that the problem no longer exists – the //perfect future//
# Knowing what ''Counts'' — which actions/thoughts/feelings //count// towards the desired state — using a //scale// to //affirm// the small //actions// to be taken.
# ''Affirming Successful Change'' — by identifying what’s working and doing more of it or what’s not working and stopping it.
# ''Taking action'' — doing what needs to be done to bring the desired state into the present moment

!!Miracle Question
The coaching process hinges on what is known as the [[Miracle Question|Wunderfrage]] to get at //What// is better? 
For example, //"suppose the problem vanishes over night, how will you know tomorrow that the transformation has happened? How will others know? What will you be doing?// 
To be the best you can be you must keep asking yourself how you could become better at what you do. Use the 1-10 scale. //"What would it take for you to rate yourself 10% better than you are now?"// 
One way of doing this with individuals and teams is to use „sentence completion” exercises.

!!Sample Questions
!!!Conversation Basis
Complete one of the following sentences and use it as the basis of your coaching conversation
* //"What get’s me into trouble…………………………………"//
* //"When I am criticized…………………………………"//
* //"My main problem is…………………………………"//
* //"When I get angry…………………………………"//

!!!Platform
(this is an initial assessment of what is already happening that could contribute to the solution)
* //"What is the objective of this coaching session?"//
* //"What would be the benefit in moving forward?"//
* //"When you've tackled this kind of problem before, what was helpful?"//
* //"What skills and resources did you discover you had?"//
* //"What in general has been going well for you?"//

!!!Future Perfect
To find the client’s desired state you ask a miracle question along the lines of…
* //"Suppose the problem vanishes overnight, how will you know tomorrow that the transformation has happened?"//
* //"How will others know? What will you be doing?"// <br>Use the SCALE to assess the value or impact of the coaching session.
* //"On a scale from 1-10, where 10 is the Future Perfect, where are you now?"//
* //"What's helping you to reach that level already?"//
* //"What would take you a small step (say one point on the scale) higher?"//
* //"What would be the first tiny signs of progress?"//

!!!Counters
Resources, which includes attitudes and qualities, plus skills, know-how, expertise, etc.
* //"When does the Future Perfect or parts of it happen? Even a little bit?"//
* //"When do things like the Future Perfect happen already?"//
* //"How did you make it happen?"//
* //"What required skills & resources are you using already?"//
* //"How have you managed to get as far as you have?"//
* //"What else..?"//<br> (this is an important and frequently used question)

!!!Affirm
Helps to creates a positive environment and engenders hope and enthusiasm for a solution.
* //"What are you most impressed with?"//
* //"What skills, resources & qualities can you observe?"//
* //"What are the grounds for optimism?"//
* //"What's most impressive about what has already happened?"//

!!!Small Actions
Can create lots of small ripples. Consider their impact and the need for additional actions.
* //"Do more of what works and stop doing stuff that doesn’t work"//
* //"Be specific and clearly define the actions you can take today and tomorrow (make them SMART)"//
* //"Actions are for the client to do (i.e. not someone else)"//

!Debriefing
Applying the Solutions Focus to [[Coaching]] requires the use of listening and questioning skills to help construct a solution with the coachee. See the sample questions at the back. This coactive approach encourages the coach to take a step back and look at the “bigger picture”, or do what Tim Gallwey refers to as the STOP Test — ''S''tepping back to ''T''hink and ''O''rganise your thoughts before you ''P''roceed. This is particularly helpful when the coachee is unclear about what they want or the goal they should pursue.

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.m-cc.nl/albert%20model.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.changezone.co.uk/Solutions%20Focus.JPG>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.lkcestateplanning.com/images/db44f94a3955e9206de9012e68e60941.youthingyoucan.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.modelthinking.com/uploads/1/0/1/9/1019561/2781936.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://alistair.cockburn.us/get/2791>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.edbatista.com/images/2010/04/Agile_Coach_02.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.gcm21.com/images/Focus.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] 100% auto title http://www.emeraldinsight.com/content_images/fig/0370360104001.png>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>> %/
---- }}}
===

!Blogs 
+++*[Blogs]> 
<<tiddler [[Blogs about Solution Focus##List of Blogs]]>> 
=== 

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Focusing on Solutions – not problems - PDF| http://www.google.de/url?sa=t&source=web&cd=8&sqi=2&ved=0CD8QFjAH&url=http%3A%2F%2Fwww.changezone.co.uk%2Fdownload%2FFocusing%2520on%2520Solutions%2520-%2520not%2520Problems%25202.pdf&rct=j&q=Futur%20Perfect%20solution%20focused&ei=EkrRTIKeGpKTjAfOscGVDA&usg=AFQjCNH3xX3zWNV4XRTK__JZc6aCArmfOg&cad=rja]] (''!!!'')
* [[How to improve your tennis, your management skills and your organisation’s results. — PDF| http://www.thesolutionsfocus.co.uk/sites/default/files/CoachingArtWeb.pdf]]
* [[Paul Z Jackson: How to improve your tennis, your management skills and your organisation’s results. Our experience of Solutions Focus Advanced Coaching. — PDF|http://www.thesolutionsfocus.co.uk/sites/default/files/CoachingArtWeb.pdf]]
* [[Positively The Best Solution — PDF| http://www.thesolutionsfocus.co.uk/sites/default/files/TJ_Jan_JLIS.pdf]]
* [[Solution Focused Approach To Agile Coaching — Slideshare| http://www.slideshare.net/ppugliese/solution-focused-approach-to-agile-coaching-2604381]]
* [[Solution focused approach to agile coaching at Agile Central Europe — Slideshare| http://www.slideshare.net/ppugliese/solution-focused-approach-to-agile-coaching-at-agile-central-europe]]
* [[Solution focused approach to agile coaching for the Mini XP Days Benelux 2010 — Slideshare| http://www.slideshare.net/ppugliese/solution-focused-approach-to-agile-coaching-for-the-mini-xp-days-benelux-2010]]
* [[Solution focused approach to agile coaching — Slideshare| http://www.slideshare.net/ppugliese/solution-focused-approach-to-agile-coaching-for-the-mini-xp-days-benelux-2010]]
* [[Solutions-Focused Approach to Change| http://www.modelthinking.com/sf-change-management.html]]
* [[Taking it Forward - From Ideas to Action — PDF| http://www.thesolutionsfocus.co.uk/sites/default/files/Taking_it_forward_-_from_ideas_to_action%5B1%5D.pdf]]
* [[The Short Story – a new tool for Solutions Focus Coaching — PDF| http://www.thesolutionsfocus.co.uk/sites/default/files/Short%20Story.pdf]]
* [[What to do when your client is feeling defeated by the recession — PDF| http://www.thesolutionsfocus.co.uk/sites/default/files/CC%20TZ%20CLient%20defeated%20by%20recession%20_2_.pdf]]
* [[Solution-Focused Scaling Questions| http://articlescoertvisser.blogspot.com/2009/02/solution-focused-scaling-questions.html]] (''!!'')
* [[What is the Solution Focused approach?| http://www.tylalifecoach.co.uk/solutionfocused.html]] (''!!'')
<data>{"abstract":"Den [[Konflikt]] mit den Augen des Konfliktgegners oder eines neutralen Dritten zu betrachten, ist das Ziel dieser Übung - durch einen Rollentausch. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.volksbuehne-gruermannsheide.de/Drama1b.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Soziodramatisierung","abstract") </script>

!Soziodramatisierung
<script> return "<<tiddler [[Soziodramatisierung##Overview]]>>" </script> 

!Objectives
* Konfliktbewältigung

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Die Schlüsselszene eines [[Konfliktes|Konflikt]] wird mit verteilten und vertauschten Rollen vor einer Videokamera aufgeführt. 
Die Konfliktbeteiligten spielen dabei jeweils die Rolle des "Konfliktgegners" oder des "neutralen" Dritten. 
Alles, was nicht akzeptabel ist oder nicht die Situation trifft, wird als Verfremdung durch das [[Rollenspiel|Improvisationstheater]] angesehen. 
Vieles jedoch ist in der Regel übertragbar.

!Debriefing

!Quelle
Schwarz, G. Konflikt Management, Gabler 3./1997, S.78.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Soziodramatisierung+%28jt%29]]
/***
|''Name''|SparklinePlugin|
|''Description''|provides support for [[sparklines|http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001OR&topic_id=1]]|
|''Version''|1.0.0|
|''Status''|stable|
|''Source''|http://www.tiddlywiki.com/coreplugins.html#SparklinePlugin|
|''~CodeRepository:''|http://svn.tiddlywiki.org/Trunk/association/plugins/SparklinePlugin/SparklinePlugin.js |
|''License''|[[BSD open source license]]|
|''~CoreVersion''|2.3.0|
|''Feedback''|[[TiddlyWiki community|http://groups.google.com/group/TiddlyWiki]] |
|''Keywords''|visualization|
!Usage
{{{
<<sparkline numbers>>
}}}
The macro accepts space-separated numeric values as parameter.
!!Examples
Activity on http://www.tiddlywiki.com during the month of April 2005:
{{{<<sparkline 163 218 231 236 232 266 176 249 289 1041 1835 2285 3098 2101 1755 3283 3353 3335 2898 2224 1404 1354 1825 1839 2142 1942 1784 1145 979 1328 1611>>}}}
<<sparkline 163 218 231 236 232 266 176 249 289 1041 1835 2285 3098 2101 1755 3283 3353 3335 2898 2224 1404 1354 1825 1839 2142 1942 1784 1145 979 1328 1611>>
!Code
***/
//{{{
if(!version.extensions.SparklinePlugin) {
version.extensions.SparklinePlugin = {installed:true};

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

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


}
//}}}
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://img358.imageshack.us/img358/5781/speedboat7ne.jpg>>/%
http://harvardbusiness.org/products/4389-PDF-ENG/thumbnail/thumbnail.gif%/
<<showtoc>>
!Overview
[[Speed Boat]], a kind of [[Innovation Game]]: Customers identify their biggest pain points with your products and services.

!Speed Boat
<script> return "<<tiddler [[Speed Boat##Overview]]>>" </script>
A drawing of a boat appears on a white board or sheet of butcher paper. 
Anchors “attached” to the boat prevent it from moving quickly through the water. The boat represents a product or system, and the anchors are features that the participants don’t like. The lower the anchor, the more debilitating the feature.

!Objectives
* Improve [[Sprint Retrospective]] or [[Agile Retrospective]]; 
* Identify biggest pain points of products and services.

!Timing
Depends on system/feature complexity: 90min - 1day workshop

!Audience
Group

!Materials
* whiteboard
* sticky note cards

!Procedure
A drawing of a boat appears on a white board or sheet of butcher paper. Anchors “attached” to the boat prevent it from moving quickly through the water. 

!Debriefing
The boat represents a product or system, and the anchors are features that the participants don’t like. 
The lower the anchor, the more debilitating the feature.

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.intraqq.com/assets/images/innovation.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://innovationgames.com/wp-content/uploads/2011/04/speedboat1.png>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://yachtpals.com/files/userimages/speedboat.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
* [[Video: Speed Boat — Innovation Game]]
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Innovation games: Who says work can't be fun?| http://go.techtarget.com/r/12320138/4201481]]
* http://innovationgames.com/speed-boat/
* http://en.wikipedia.org/wiki/Innovation_game

!Further Reading
<<tiddler [[Innovation Game##Further Reading]]>>
* [[Wie würden Sie Ihr Unternehmen beschreiben, wenn es ein Schiff wäre?| http://schlachte.wordpress.com/2010/04/27/wie-wurden-sie-ihr-unternehmen-beschreiben-wenn-es-ein-schiff-ware/]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://london.blog.qype.com/wp-content/uploads/2009/07/speed-dating-resize.jpg>>
<<showtoc>>
!Overview
[[Speed Dating]] in pairs participants compare notes with each other to a certain topic.

!Speed Dating
<<tiddler [[Speed Dating##Overview]]>>

!Objectives
* Set the Stage in a [[retrospective|Agile Retrospectives]]

!Timing
30 min

!Audience
Group

!Materials
* 

!Procedure
# Define a time-box
# All participants stand face to face in a two circles: an inner and an outer one.
# Give a question to a certain topic in the round
# The pairs compare notes with each other
# After the time is done the outer circle shifts one person to the left.
# Repeat until initial pairings are reached again.
 
!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* 
<data>{"abstract":"[[Spekulieren zu dritt]], das gegenseitige Kennenlernen der Teilnehmer ist manchmal eine etwas zähe Angelegenheit. Nicht so bei diesem Beginn, der sich für mehrtägige Seminare eignet.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.polarwinkel.de/uploads/05Norwegen086R.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Spekulieren zu dritt","abstract") </script>

!Spekulieren zu dritt
<script> return "<<tiddler [[Spekulieren zu dritt##Overview]]>>" </script> 
Das gegenseitige Kennenlernen der Teilnehmer ist manchmal eine etwas zähe Angelegenheit. Nicht so bei diesem Beginn, der sich für mehrtägige Seminare eignet.

!Objectives
* Kennenlernen

!Timing


!Audience
Group

!Materials
* 

!Procedure
Man unterteilt die Gruppe in Dreiergruppen. Davon haben dann jeweils zwei die Aufgabe (hemmungslos aber respektvoll) über den dritten zu spekulieren. Dieser darf nur seinen Namen nennen und hat die Aufgabe, ein Pokerface zu allen Spekulationen zu machen. Die Einschätzungen können z.B. Beruf, Auto, Familienstand, Wohnungseinrichtung, Sport, Essen usw. umfassen. Ein paar Vorgaben sind manchmal nützlich.

!Debriefing
Die Auflösung erfolgt dann in der eigentlichen Vorstellung und bringt sehr viel Spaß, ~Aha-Effekte und schafft Vertrauen. Zum Schluss können die TN dann auch noch über den Trainer spekulieren. Aus dieser Übung lassen sich dann auch viele weitere Bezüge z.B. zu den Themen [[Kommunikation]], [[Konflikt]], Präsentation.... herstellen. 

''Achtung:'' Die Vorstellung dauert dadurch lange und die Teilnehmer geben sehr viele [[Informationen|Information]] über sich, also eher für mehrtägige Seminare geeignet.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Spekulieren+zu+dritt+%28cmuehldorfer%29.html]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://wealthynetizen.com/wp-content/uploads/2008/05/drew-on-spider-web-OhrC_r.jpg>>/%
http://harvardbusiness.org/products/4389-PDF-ENG/thumbnail/thumbnail.gif%/
<<showtoc>>
!Overview
[[Spider Web]], a kind of [[Innovation Game]]: Participants work individually or in small teams to create vivid pictures of how your products and services fit into their world.

!Spider Web
<script> return "<<tiddler [[Spider Web##Overview]]>>" </script>
A product name appears at the center of a circle drawn in the middle of a whiteboard. 
Participants draw other products and services, explaining how, when, and why they are used. Participants then draw lines that link these additional services to each other and to the product’s circle.

!Objectives
* Getting a picture how your products and services fit into the world of the customer.

!Timing
Depends on system/feature complexity: 90min - 1day workshop

!Audience
Group

!Materials
* whiteboard
* sticky note cards

!Procedure
A product name appears at the center of a circle drawn in the middle of a whiteboard. 
Participants draw other products and services, explaining how, when, and why they are used. Participants then draw lines that link these additional services to each other and to the product’s circle.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.intraqq.com/assets/images/innovation.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.cartoonstock.com/newscartoons/cartoonists/rbr/lowres/rbrn22l.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Innovation games: Who says work can't be fun?| http://go.techtarget.com/r/12320138/4201481]]
* http://en.wikipedia.org/wiki/Innovation_game
* http://www.innovationsgames.com

!Further Reading
<<tiddler [[Innovation Game##Further Reading]]>>
<data>{"abstract":"[[Spiegel-Übung]], [[Selbst- und Fremdwahrnehung|Fremdbild / Eigenbild]] gehen mitunter auseinander. Mit dieser einfachen Übung können Sie dies eindrucksvoll demonstrieren."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.actas.nl/page12/files/page12_2.png>>/%
http://cojobo.bonn.de/~t_hildeb/archive/physikmachtspass/experimente/spiegelbild.gif>> %/
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Spiegel-Übung","abstract") </script>

!~Spiegel-Übung
<script> return "<<tiddler [[Spiegel-Übung##Overview]]>>" </script> 

!Objectives
* Teambuilding

!Timing

!Audience
Group

!Materials
* pro Paar 1 Handspiegel, Stifte und Papier 

!Procedure
Sie bilden Paare und teilen pro Paar einen Handspiegel, Stifte und Papier aus.
Anleitung: 

{{indent{
//"Beschreiben Sie das Gesicht Ihres Gegenübers so detailliert wie möglich. Ihr Gegenüber schaut in der Zwischenzeit in den Spiegel und beschreibt sein eigenes Gesicht, so wie er es im [[Spiegelbild]] sieht. Sprechen Sie Ihre Beobachtungen nicht laut aus, sondern schreiben Sie diese nieder. Nach ca. fünf Minuten wechseln Sie den Spiegel und wiederholen Sie den Vorgang."
}}}

Nach Beendigung werden die Unterlagen ausgetauscht, so dass jeder seine [[Selbst- und Fremdwahrnehmung|Fremdbild / Eigenbild]] vor sich liegen hat. 

!Debriefing
Im Zweiergespräch werden die Unterschiede herausgearbeitet und die Ursachen besprochen.

!See also
* [[Kennenlernen über Selbst- und Fremdbild]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Spiegel-%DCbung+%28ts%29&db=3]]
<data>{"abstract":"[[Spiegelbild]], eine einfache und ohne besonderen Aufwand durchzuführende Übung zur Vorbereitung der Arbeit an konkreten, gruppenübergreifenden Fragestellungen.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.spektrum.de/sixcms/media.php/912/thumbnails/Spiegelbild.jpg.230846.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Spiegelbild","abstract") </script>

!Spiegelbild
<script> return "<<tiddler [[xxxx##Overview]]>>" </script>
[[Spiegelbild]] ist eine einfache und ohne besonderen Aufwand durchzuführende Übung zur Vorbereitung der Arbeit an konkreten, gruppenübergreifenden Fragestellungen. 
Zwei (eventuell auch mehr) [[Teams]], Bereiche oder Abteilungen betrachten sich dabei jeweils mit den Augen der anderen. Der Austausch über die jeweils vermuteten [[Fremdbilder|Fremdbild / Eigenbild]] erhöht das gegenseitige Verständnis und fördert die Zusammenarbeit. 

Das Tool kommt zum Einsatz, wenn im Rahmen von [[Veränderungsprozessen|Organizational Change Model]] mehrere betroffene Bereiche in Workshops ihre Zusammenarbeit planen, optimieren und gestalten sollen. Dies können auch [[Teams|Team]] im Rahmen größerer Projekte sein, bei denen es in der Zusammenarbeit zu Störungen gekommen ist oder die im Verlauf eines Projektes enger zusammenrücken müssen.
Vgl. auch [[Spiegel-Übung]]

!Objectives
* Vorbereitung der Arbeit an konkreten, gruppenübergreifenden Fragestellungen. 

!Timing
ca. 60 Minuten (30 Minuten Kleingruppenarbeit plus 30 Minuten im Plenum).


!Audience
Group


!Materials
* Flipchart
* 2 getrennte Räume

!Procedure
!1. Beschreibung des vermuteten Fremdbilds
Nach der Klärung der Zielsetzung des Workshops bittet der Moderator beide Gruppen, getrennt voneinander folgende Fragen zu bearbeiten:
# Was glauben wir, wie die andere Gruppe uns sieht?
# Was vermuten wir, was sich die andere Gruppe von uns wünscht?
Dabei sollen sich beide Gruppen gedanklich in die andere Gruppe versetzen und sich selbst und Ihre Gruppe durch deren Brille betrachten. 
Ihre Vermutungen visualisieren sie auf ~Flip-Chart.
Anschließend präsentieren beide Gruppen ihr vermutetes [[Fremdbild|Fremdbild / Eigenbild]] der anderen Gruppe.

Die Auswertung lässt sich in der Regel nicht getrennt von der Präsentation durchführen. Die andere Gruppe möchte sich meist spontan zu einzelnen Punkten äußern. Der Moderator strukturiert diesen Prozess durch Fragen:
* Wie wirkt das Ergebnis auf Sie?
* Was war erwartet?
* Was ist überraschend?
* Was hat Sie gefreut, was hat Sie geärgert?
* Wo liegt die andere Gruppe völlig daneben?“ 

Hier wird rasch deutlich, dass jede Gruppe recht genau die eigenen Schwächen kennt, was wiederum die andere verwundert.

!2. Wünsche und Vereinbarungen konkretisieren
Im nächsten Schritt werden die gegenseitige Wünsche konkretisiert und Vereinbarungen getroffen.


!Debriefing


!Quelle
Johannes Thönneßen, in: [[Arnim Rohm: Change-Tools. Erfahrene Prozessberater präsentieren wirksame Workshop-Interventionen. managerSeminare GmbH, 2006.| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FChange-Tools-Erfahrene-Prozessberater-pr%25C3%25A4sentieren-Workshop-Interventionen%2Fdp%2F3936075395%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214936596%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Spiegelbild+%28jt%29.html]]
/%
|Name|Stages of Play|
|URL|http://www.youtube.com/v/nhF6E7zHqWI|
|Description|Outlines the various stages of play that children experience as they grow and mature|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/nhF6E7zHqWI"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/nhF6E7zHqWI" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://starfishenvy.typepad.com/.a/6a0115718934aa970b0120a651298f970b-320wi>>
<<showtoc>>
!Overview
The [[retrospective starfish|Starfish]] helps people by getting them to reflect on varying degrees of things that they want to bring up, without having it fit into the black or white category of ‘What Went Well’ or ‘Not So Well’ so I think it scales a little bit better.

!Starfish
<<tiddler [[Starfish##Overview]]>>

!Objectives
* Getting a picture of the overall health of your project
* Gather Data in a [[retrospective|Agile Retrospectives]]

!Timing
20 min

!Audience
Group

!Materials
* flipchart / whiteboard with starfish drawn:
<<wikify [img(%0,%1)[%2|%3][%3]] 40% auto title http://www.thekua.com/rant/wp-content/uploads/2006/03/StarTechnique.gif>>

!Procedure
# Explain the 5 areas of the starfish to the participants
# Let the participants write events/tasks on index cards
# Let the participants stick the card to the associated starfish area and explain the cards
Optional:
* Let the participants [[dot vote|Dot Voting]] the most prominent issues

* ''Keep Doing'' – Is a good starting point for team members to focus on typically all the good things that they liked about a project. You might want to encourage people to think about things in terms of, what would they miss if they didn’t have a particular practice, technique, technology, person, role, etc. A good example from a real session I’ve been in before is ‘Running performance benchmarking and tuning during an iteration helps to identify regressions or slowdowns so we can address them earlier’.
* ''Less Of'' – Helps to focus on practices that might need a bit more refining or that were simply not helpful in the current circumstance. Perhaps they add value but not as much as other practices could. An example here is that perhaps stand ups have become status meetings and so there should less of talking to one person (and more of talking to each other) during them.
* ''More Of'' – Is another type of focus that helps further refine or highlight practices, technologies, etc that team members might want to try more and are not necessarily taking full advantage of. A good example is that maybe people are [[pair programming|Pair Programming]] but knowledge transfer and a better understanding of the code changing might be gained by doing more of swapping programming partners.
* ''Stop Doing'' – Obviously for things that are not very helpful to development practices or not adding much value. Perhaps it’s about writing that status reporting email at the end of the day (because you can substitute a simple one minute conversation for it instead)
* ''Start Doing'' – Is a great opportunity for team members to suggest new things to try because of things that may not have gone so well or just for simply keeping things dynamic and fun. Perhaps you might want to try a burn up chart on the whiteboard or try some new open source tool for helping improve developer productivity.


!Debriefing
Getting people to either write things up under the starfish in this manner gives you a scattergram of sorts and is a great visual technique of estimating the overall health of your project. Most of the points on the starfish also try to coerce people into actually creating action items instead of simply saying that something was not good.

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.thekua.com/rant/wp-content/uploads/2006/03/StarTechnique.gif>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>> %/
---- }}}
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://www.thekua.com/rant/category/retrospective-exercises/
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://mars.jpl.nasa.gov/mystique/images/timeline.gif>>/%
http://harvardbusiness.org/products/4389-PDF-ENG/thumbnail/thumbnail.gif%/
<<showtoc>>
!Overview
[[Start Your Day]], a kind of [[Innovation Game]]: Participants collaboratively describe when, how, and where they use your product(s). Participants describe their daily, weekly, monthly, and yearly events related to their use of a product. 

!Start Your Day
<script> return "<<tiddler [[Start Your Day##Overview]]>>" </script>
Descriptions are written on pre-printed, poster-sized calendars or timelines taped to the walls. Participants include events with time frames that match the product’s expected lifecycle or release cycle. Participants may also include one-time events (particularly horrible days where everything goes wrong) and describe how the product helps or hinders as the event unfolds.

!Objectives
* Participants collaboratively describe when, how, and where they use your product(s).

!Timing
Depends on system/feature complexity: 90min - 1day workshop

!Audience
Group

!Materials
* pre-printed, poster-sized calendars or timelines taped to the walls.
* sticky note cards

!Procedure
Participants include events with time frames that match the product’s expected lifecycle or release cycle. Participants may also include one-time events (particularly horrible days where everything goes wrong) and describe how the product helps or hinders as the event unfolds.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.intraqq.com/assets/images/innovation.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Innovation games: Who says work can't be fun?| http://go.techtarget.com/r/12320138/4201481]]
* http://en.wikipedia.org/wiki/Innovation_game
* http://www.innovationsgames.com

!Further Reading
<<tiddler [[Innovation Game##Further Reading]]>>
<data>{"abstract":"[[Start mit Blitzlicht]], der Beginn einer [[Besprechung]] verzögert sich, weil alle noch mit anderen Dingen des Tagesgeschäftes beschäftigt sind. Ein [[Blitzlicht]] zu Beginn sorgt für klare Köpfe.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.slr-foto.de/galerie-landschaft/foto/blitz3_1717.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Start mit Blitzlicht","abstract") </script>

!Start mit Blitzlicht
<script> return "<<tiddler [[Start mit Blitzlicht##Overview]]>>" </script> 
Das kostet nur wenige Minuten, aber danach sind alle konzentriert bei der Sache.

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
So wird das Blitzlicht eingeleitet: 

{{indent{
//"Ganz kurz, damit wir alle besser umschalten und uns auf die Themen der Besprechung konzentrieren können: Jeder sagt in ein, zwei Sätzen, was ihn gerade geistig beschäftigt."// 
Das klappt nicht unbedingt bei allen im ersten Versuch, aber nicht zu schnell aufgeben. Wenn sich alle an diese Einleitung gewöhnt haben, merken sie, dass das Aussprechen der Gedanken ungemein beim Loslassen hilft.
}}}

Wichtig ist, dass man anschließend nicht ins "Quatschen" verfällt, die Versuchung ist groß. Doch hier heißt es gemeinsam zu widerstehen und sich anschließend der Tagesordnung zu widmen.

!Debriefing

!Quelle
[[Wilfried Braig, Roland Wille: Mitarbeitergespräche, orell füssli, 2.Aufl., 2007, S.153/154| http://www.amazon.de/gp/product/3280052068?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3280052068]]

!See also
* [[Gelbe und Rote Karte]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Besprechungen]<<tiddlerList tags:"meeting,-newTemplate" header:"Übungen Besprechung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Start+mit+Blitzlicht+%28jt%29&db=3]]
<data>{"abstract":"[[Statustreffen]]: viele scheinbar sachliche Diskussionen verfolgen das Ziel, den eigenen Machtanspruch durchzusetzen. Eine kleine Übung, um hierfür zu sensibilisieren."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.scientificamerican.com/media/inline/829D6E9E-ABCF-B928-9FC8F8FC569D3F67_1.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Statustreffen","abstract") </script>

!Statustreffen
<script> return "<<tiddler [[Statustreffen##Overview]]>>" </script>
Ob am Telefon, in einer [[Besprechung]] oder im direkten Dialog - die zugrunde liegende Frage, die geklärt wird, lautet: //"Wer hat hier das Sagen / den höheren Status?"//

!Objectives
* Für Machtanspruch sensibilisieren.

!Timing
60min

!Audience
Group

!Materials
* 

!Procedure
# Um Machtspiele besser erkennen und damit umgehen zu können, bilden die Teilnehmer Kleingruppen. For pairing use [[Gruppenpuzzle]] or [[Hör gut hin!]].
# Hier tragen sie [[Erfahrungen|Erfahrung]] zusammen, in denen sie Macht- bzw. Rangausübung erlebt haben (in Ämtern, der Schule, beim Militär, im Krankenhaus etc.). <br> Dabei tragen sie Informationen über Ort, [[Körpersprache|Body language]], Tonfall und Statussymbole zusammen.
# Anschließend erfinden sie einen Sketch, in dem diese Machtmittel demonstriert werden und ihre Wirkung erlebbar wird. 
# Den Sketch führen sie anschließend in der großen Gruppe vor.

!Variation
Statt die ~Original-Situation vorzuspielen, erfinden die Gruppen einen Sketch mit einer Alltagssituation, der vorgespielt wird. Anschließend wird gemeinsam überlegt, wie man sich alternativ in einem solchen "Statusspiel" verhalten kann.

!Debriefing

!Quelle
[[Simanowitz, Jenny: 100 außergewöhnliche Stimmungsmacher, S. 53| http://www.amazon.de/gp/product/3867020655?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3867020655]]

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.observer.com/files/full/inner%20circle.jpeg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Statustreffen+(jt)]]
<data>{"abstract":"[[Stein-Projekt]], gemeinsame Werte zu ermitteln und nach außen zu vertreten, ist schon schwer genug. Gemeinsame Werte für alle [[Mitarbeiter]] erlebbar zu machen, ist noch einmal eine Herausforderung ganz anderer Natur."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% 40% title http://www.sammler.com/kunst/images/stein_01.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Stein-Projekt","abstract") </script>

!~Stein-Projekt
<script> return "<<tiddler [[Stein-Projekt##Overview]]>>" </script> 
Vor allem dann, wenn das Unternehmen global aufgestellt ist und aus rund 55.000 [[Mitarbeitern|Mitarbeiter]] in 100 Gesellschaften besteht.
Die Lösung einer kleinen Kreativgruppe bei [[OTTO| http://www.ottogroup.com/home+M52087573ab0.html]] suchte einen Weg und gebar ein Projekt, das als "~OTTO-Group Meilensteine" bezeichnet wurde. 

!Objectives
* Gemeinsame Werte erleben

!Timing
10min

!Audience
Group


!Materials
* kleine Steine

!Procedure
# Alle [[Mitarbeiter]] wurden aufgefordert, einen Stein (Nachhaltigkeit) zu bemalen (Leidenschaft) und an die Zentrale zu schicken. 
# aus dieser Menge werden einige Steine prämiert sowie eine Ausstellung veranstaltet. Positiver Nebeneffekt: Für jeden eingesandten Stein flossen drei Euro in soziale Projekte. 

!Debriefing
Eine geniale Idee. Mit geringen Mitteln wurde viel bewegt. Statt eine Hochglanzbroschüre achtlos auf die Seite zu legen, setzten sich die [[Mitarbeiter]] mit den Werten kreativ auseinander.
Anregung genug, sich dem Thema "Unternehmenswerte" und "[[Organizational Change Management]]" einmal auf ganz andere Art zu nähern.

!Quelle
Andree Martens: Stein-Projekt mit Lawineneffekt, managerSeminare Heft 10, 2005, S. 78-82

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Stein-Projekt+%28jt%29&db=3]]
/***
|Name|StickyPopupPlugin|
|Source|http://www.TiddlyTools.com/#StickyPopupPlugin|
|Version|1.0.0|
|Author|[[EricShulman]] - 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|Popup.onDocumentClick|
|Description|allow mouse interactions inside popups without automatically closing them|
Usually, when a TW popup is displayed, it is automatically closed whenever a click occurs //anywhere// in the document, either //inside// or //outside// the popup itself.  This plugin makes popups persistent (a.k.a, "sticky"), allowing you to perform multiple mouse interactions on content //inside// the popup (e.g., entering form fields, opening links, selecting text, etc.), remaining visible until you click //outside// the popup or perform an action that opens another popup (only one popup can be displayed at any given time).
!!!!!Usage
<<<
You can cause popups to behave in a persistent ("sticky") manner simply by selecting the option checkbox below.  The selected popup display behavior will be applied to ALL popups in the document automatically.
><<option chkStickyPopups>> make all popups "sticky"
>{{{usage: <<option chkStickyPopups>>}}}

Alternatively, if you are developing your own plugins or inline scripts that create popups programmatically using the core function:
{{{
Popup.create(this)
}}}
you can provide additional parameters that specify the desired css classname(s) to assign to the popup DOM element.  The default class when none is specified is simply "popup".  To create a //sticky// popup, simply enter a custom class combination like this:
{{{
Popup.create(this,null,"sticky popup")
}}}
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
[[StickyPopupPlugin]]
<<<
!!!!!Revision History
<<<
''2007.11.25 [1.0.0]'' initial release - moved from [[CoreTweaks]]
<<<
!!!!!Credits
<<<
This feature was developed by [[EricShulman]]
<<<
!!!!!Code
***/
//{{{
version.extensions.StickyPopups= {major: 1, minor: 0, revision: 0, date: new Date(2007,11,25)};

if (config.options.chkStickyPopups==undefined) config.options.chkStickyPopups=false;

Popup.stickyPopup_onDocumentClick = function(ev)
{
	// if click is in a sticky popup, ignore it so popup will remain visible
	var e = ev ? ev : window.event; var target = resolveTarget(e);
	var p=target; while (p) {
		if (hasClass(p,"popup") && (hasClass(p,"sticky")||config.options.chkStickyPopups)) break;
		else p=p.parentNode;
	}
	if (!p) // not in sticky popup (or sticky popups disabled)... use normal click handling
		Popup.onDocumentClick(ev);
	return true;
};
removeEvent(document,"click",Popup.onDocumentClick);
addEvent(document,"click",Popup.stickyPopup_onDocumentClick);
//}}}
<data>{"abstract":"[[Stimmenfangen]], eine einfache und schnelle Möglichkeit, [[Feedback]] von allen Teilnehmern während eines Seminares zu erhalten und für Bewegung zu sorgen.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://content.stuttgarter-nachrichten.de/media_fast/626/Stimme_0926.JPG>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Stimmenfangen","abstract") </script>

!Stimmenfangen
<script> return "<<tiddler [[Stimmenfangen##Overview]]>>" </script> 
Eine Übung, die die Teilnehmer aktivieren soll und gleichzeitig eine Möglichkeit bietet, dem Trainer ein kurzes [[Feedback]] zu geben. 

!Objectives
* ~Feedback-Übung

!Timing

!Audience
Group / Individual

!Materials
* Moderationskarten

!Procedure
Jeder Teilnehmer formuliert eine kurze Aussage zum vorangegangenen Lerninhalt (z.B. [[Kommunikation]]: //"Das 4-~Ohren-Modell ist gewöhnungsbedürftig"//). 

Der Satz wird auf der einen Hälfte einer Moderationskarte vermerkt (nicht Seite!). Wenn alle fertig sind, gehen sie auf Stimmenfang: In 99 Sekunden gilt es, möglichst viele Unterschriften von anderen Teilnehmern auf der freien Hälfte der Karte zu sammeln. Dabei entsteht ein lebhaftes Durcheinander, was durchaus im Sinne des Trainers ist. Nach der Zeit werden die Aussagen vorgelesen und die Zahl der Unterschriften verglichen.

!Debriefing

!Quelle
A. Rachow: Der Spieler, managerSeminare 2/99 S.87.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* 
<data>{"abstract":"[[Stimmungsbarometer]], auch eine Form des [[Feedbacks]] für den Trainer, um zu erfahren, wie die Stimmung im [[Team]] ist. Sicher auch bei jedem Seminar einzusetzen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.quint-essenz.ch/images/pic_barometer.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Stimmungsbarometer","abstract") </script>

!Stimmungsbarometer
<script> return "<<tiddler [[Stimmungsbarometer##Overview]]>>" </script> 
Gut geeignet, wenn es darum geht, aufkeimende [[Konflikte|Konflikt]] und Schwierigkeiten zu erkennen und zu bearbeiten.

!Objectives
Erkennen von Konflikten

!Timing


!Audience
Group


!Materials
* 

!Procedure
Nach einer kurzen angeleiteten "Entspannung" (wenige Minuten) äußern die TN und die Seminarleiter in einem [[Blitzlicht]] ihre Stimmungslage anhand einer Zahlenskala von 1 bis 10 (1= mir geht es ganz schlecht, 10=ich fühle mich topfit). 
Wer eine Wertung unter 6 hat, bekommt im Anschluss die Möglichkeit, näher auf seine schlechte Befindlichkeit einzugehen, wenn er oder sie das möchte. 


!Debriefing
Die Seminarleitung muss in der Lage sein, die hinter den Äußerungen liegenden Bedürfnisse und Interessen herauszuhören und evtl. darauf einzugehen. 


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.schildershop24.de/artimg/large/1018.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.buddhismus-schule.de/inhalte/grafik/vis_barometer.jpg>>
---- }}} 
===


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Stimmungsbarometer+%28msi%29]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://hem.spray.se/mikael.lundqvist/angry.gif>>
<<showtoc>>
!Overview
The [[Story of Our Sprints]] is a a facilitation technique for improving the value of [[Sprint reviews|Sprint Review]] or [[iteration|Iteration]] [[Lessons Learned]]. This game helps to create an ongoing shared goal and represents an oral history of the software process.

!Story of Our Sprints
<<tiddler [[Story of Our Sprints##Overview]]>>

!Objectives
* create an ongoing shared goal 
* represent an oral history of the software process.

!Timing
10 min

!Materials
* People and space
* 1 stop watch
* Optionally, something to record the audio with.

!Audience
Group / Individual

!Procedure
# Have the team sit/stand in a circle. 
# You want to get a story of the last [[sprint|Sprint]] that is told by the entire team. 
# You start by saying ‘Once upon a time , we had a X (insert sprint length here!) week sprint…’. 
# Then, the next person to your left adds to your sentence and this carries on until the last person has spoken or if the story is developing in an interesting direction, until all the points appear to have been made and there is nothing of value coming through. <br> You might want to strictly enforce the time limit for a large team.
# After the [[sprint retrospective|Sprint Retrospective]], you could run the game again to tell the story of the next sprint, and this should galvanise the improvements that will take place and nicely summarise the lessons learnt and help the team visualise how the next sprint could be better. 

!Debriefing
* Discover a consensus view of the success/failures from the last sprint.
* Empower everyone to add value to a collective goal through participation.
* Exercise the ‘responding to change’ learning point from the word-at-a-time letter game.

!Credits
Mike Sutton

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/the-story-of-our-sprints/
<data>{"abstract":"[[Story-Circle]], was verbindet Menschen in einer Gruppe, so dass sie zu einem [[Team]] werden? Die authentische Begegnung. Zum Beispiel durch das [[Erzählen von Geschichten|Storytelling]]. Durch diese Übung sollen die Teilnehmer sich authentisch, ohne Maske begegnen, ihre Unterschiedlichkeit erkennen und zusammenwachsen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% 40% title http://www.meavoss-nlp.de/img/Stuhlkreis%20347Q40.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Story-Circle","abstract") </script>

!~Story-Circle
<script> return "<<tiddler [[Story-Circle##Overview]]>>" </script>

!Objectives
* Teambuilding
* Persönl. Unterschiedlichkeiten erkennen/wertschätzen.

!Timing
3h

!Audience
Group


!Materials
* ~Indoor-Gelfeuer, Kerze

!Procedure
So läuft sie ab: Jeder erzählt Geschichten aus seinem Leben, die ihn geprägt, verändert oder weitergebracht haben (positive wie negative Ereignisse). 
Am besten sitzen dabei alle um ein "Lagerfeuer" (~Indoor-Gelfeuer, Kerze oder Outdoor, [[Listening Circle]]), ein Gegenstand wird von Erzähler zu Erzähler weitergereicht. Dreimal wird die Runde gemacht, entsprechend lange dauert die Übung (ca. 3 Stunden).



!Debriefing
Eine Übung, die in der Tat verbindet und sehr nachdenklich macht…


!Quelle
Matthias zur Bonsen: Raum für Lebendigkeit, managerSeminare 10/2009, S. 26

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.e-quip4education.co.uk/acatalog/storytime_circle_medium.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://images111.fotki.com/v729/photos/4/41513/882116/Mar_24_06_Story_circle_2-vi.jpg?1143291166>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.susankaplanmsw.com/files/images/Circle%20of%20Services_0_0_0.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.communities.qld.gov.au/family/parenting/general-parenting/images/circle-children.gif>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Story-Circle+(jt)]]
<<tiddler {{
	place.onmouseover = function(e){ addClass(this,"selected"); }
	place.onmouseout = function(e){ removeClass(this,"selected"); }
'';}}>>/%
%/{{center{
{{mouseover{{{floatleft{<<tiddler ToggleLeftSidebar>>}}}{{floatright{<<tiddler ToggleRightSidebar>>}}}}}}{{smallform fine{<<unsavedChanges panel>>}}}
}}}
/***
|Name|StorySaverPlugin|
|Source|http://www.TiddlyTools.com/#StorySaverPlugin|
|Documentation|http://www.TiddlyTools.com/#StorySaverPluginInfo|
|Version|1.8.3|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires|MarkupPostBody|
|Description|save/restore current tiddler view between browser sessions|
Automatically save a list of currently viewed tiddlers (the 'story') in a local cookie, {{{txtSavedStory}}} and then open those tiddlers when the document is reloaded, so you can resume working from the same place you left off!!  Also, use {{{<<saveStory>>}}} and {{{<<openStory>>}}} macros to quickly save/re-display stories stored in tiddlers, using a command link, droplist, or popup display.
!!!!!Documentation
>see [[StorySaverPluginInfo]]
!!!!!Configuration
<<<
<<option chkSaveStory>> use automatic story cookie (reopens tiddlers on startup)
<<option chkStoryAllowAdd>>include 'add a story' command in droplist/popup
<<option chkStoryFold>>fold story tiddlers when opening a story (see [[CollapseTiddlersPlugin]])
<<option chkStoryClose>>close other tiddlers when opening a story
<<option chkStoryTop>>open story tiddlers at top of column
<<option chkStoryBottom>>open story tiddlers at bottom of column
<<<
!!!!!Revisions
<<<
2009.10.20 1.8.3 fix handling for 'add' item in popup menu
|please see [[StorySaverPluginInfo]] for additional revision details|
2007.10.05 1.0.0 initial release. Moved [[SetDefaultTiddlers]] inline script and rewrote as a {{{<<saveStory>>}}} macro.
<<<
!!!!!Code
***/
//{{{
version.extensions.StorySaverPlugin= {major: 1, minor: 8, revision: 3, date: new Date(2009,10,20)};

var defaults={
	chkSaveStory:		false,
	chkStoryFold:		true,
	chkStoryClose:		true,
	chkStoryAllowAdd:	true,
	chkStoryTop:		true,
	chkStoryBottom:		false
};
for (var id in defaults) if (config.options[id]===undefined)
	config.options[id]=defaults[id];

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

// save or clear story cookie on exit
if (window.coreTweaks_confirmExit==undefined) {
	window.coreTweaks_confirmExit=window.confirmExit;
	window.confirmExit=function() {
		if (config.options.chkSaveStory) { // save cookie
			var links=[];
			story.forEachTiddler(function(title,element){links.push('[['+title+']]');});
			config.options.txtSavedStory=links.join(' ');
			saveOptionCookie('txtSavedStory');
		} else removeCookie('txtSavedStory');
		return window.coreTweaks_confirmExit.apply(this,arguments);
	}
}
//}}}
/***
''apply saved story on startup:'' //important note: the following code is actually located in [[MarkupPostBody]].  This is because it needs to supercede the core's getParameters() function, which is called BEFORE plugins are loaded, preventing the normal plugin-based hijack method from working, while code loaded into [[MarkupPostBody]] will be processed as soon as the document is read, even before the TW main() function is invoked.//
<<tiddler MarkupPostBody>>
***/
//{{{
config.macros.saveStory = {
	label: 'set default tiddlers',
	defaultTiddler: 'DefaultTiddlers',
	prompt: 'store a list of currently displayed tiddlers in another tiddler',
	askMsg: 'Enter the name of a tiddler in which to save the current story:',
	tag: 'story',
	excludeTag: 'excludeStory',
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var tid=params.shift()||'DefaultTiddlers';
		var label=params.shift()||this.label;
		var tip=params.shift()||this.prompt;
		var btn=createTiddlyButton(place,label,tip,this.setTiddler,'button');
		btn.setAttribute('tid',tid);
		btn.setAttribute('extratags','[['+params.join(']] [[')+']]');
	},
	setTiddler: function() {
		var cms=config.macros.saveStory; // abbrev
		// get list of current open tiddlers
		var tids=[];
		story.forEachTiddler(function(title,element){
			var t=store.getTiddler(title);
			if (!t || !t.isTagged(cms.excludeTag)) tids.push('[['+title+']]');
		});
		// get target tiddler
		var tid=this.getAttribute('tid');
		if (!tid || tid=='ask') {
			tid=prompt(cms.askMsg,cms.defaultTiddler);
			if (!tid || !tid.length) return false; // cancelled by user
		}
		if(store.tiddlerExists(tid) && !confirm(config.messages.overwriteWarning.format([tid])))
			return false;
		tids=tids.join('\n');
		var t=store.getTiddler(tid); var tags=t?t.tags:[];
		var extratags=(this.getAttribute('extratags')||'').readBracketedList();
		for (var i=0; i<extratags.length; i++) tags.pushUnique(extratags[i]);
		tags.pushUnique(cms.tag);
		store.saveTiddler(tid,tid,tids,config.options.txtUserName,new Date(),tags,t?t.fields:null);
		story.displayTiddler(null,tid);
		story.refreshTiddler(tid,null,true);
		displayMessage(tid+' has been '+(t?'updated':'created'));
		return false;
	}
}
//}}}
//{{{
config.macros.openStory = {
	label: 'open story: %0',
	prompt: 'open the set of tiddlers listed in: %0',
	popuplabel: 'stories',
	popupprompt: 'view a set of tiddlers',
	tag: 'story',
	selectprompt: 'select a story...',
	optionsprompt: 'viewing options...',
	foldcmd: '[%0] fold story',
	foldprompt: 'fold story tiddlers when opening a story',
	closecmd: '[%0] close others',
	closeprompt: 'close other tiddlers when opening a story',
	topcmd: '[%0] open at top',
	topprompt: 'open story tiddlers at top of column',
	bottomcmd: '[%0] open at bottom',
	bottomprompt: 'open story tiddlers at bottom of column',
	addcmd: 'add a story...',
	addprompt: 'create a new story',
	excludeTag: 'excludeStory',
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		if (params[0].toLowerCase()=='list') return this.createList(place,params);
		else if (params[0].toLowerCase()=='popup') return this.createPopup(place,params);
		else this.createButton(place,params);
	},
	showStory: function(tid,fold) {
		var co=config.options; // abbrev
		var tids=[];
		var t=store.getTiddler(tid);
		var tagged=store.getTaggedTiddlers(tid,'title');
		if (tagged.length) // if tiddler IS a tag, use tagged tiddlers as story
			for (var i=0; i<tagged.length; i++) tids.push(tagged[i].title);
		else if (t) { // get tiddler list from content
			if (!t.linksUpdated) t.changed();
			for (var i=0; i<t.links.length; i++) {
				var tid=store.getTiddler(t.links[i]);
				if (tid && !tid.isTagged(this.excludeTag))
					tids.push(t.links[i]);
			}
		}
		var template=null;
		if (fold||co.chkStoryFold) template='CollapsedTemplate'; // see [[CollapseTiddlersPlugin]]
		if (!store.tiddlerExists('CollapsedTemplate')) template=null;
		if (co.chkStoryClose) story.closeAllTiddlers();
		var pos='top'; var first=tids[0];
		if (!story.isEmpty() && co.chkStoryBottom) { pos='bottom'; tids=tids.reverse(); }
		story.displayTiddlers(pos,tids,template);
		var cmd='var t=story.getTiddler("'+first+'");if(t)window.scrollTo(0,t.offsetTop);';
		var delay=config.options.chkAnimate?config.animDuration+100:0;
		setTimeout(cmd,delay);
	},
	createButton: function(place,params) {
		var tid=params[0]||'';
		var label=params[1]||this.label; label=label.format([tid]);
		var tip=params[2]||this.prompt; tip=tip.format([tid]);
		var fold=(params[3]&&(params[3].toLowerCase()=='fold'))||config.options.chkStoryFold;
		var fn=function(){config.macros.openStory.showStory(this.getAttribute('tid'),this.getAttribute('fold')); return false; };
		var btn=createTiddlyButton(place,label,tip,fn,'button');
		btn.setAttribute('tid',tid);
		if (fold) btn.setAttribute('fold',fold);
	},
	createPopup: function(place,params) {
		params.shift(); // discard 'popup' keyword
		var label=params.shift()||this.popuplabel;
		var tip=params.shift()||this.popupprompt;
		var btn=createTiddlyButton(place,label,tip,this.showPopup,'button');
		btn.setAttribute('filter',params.shift()||config.macros.openStory.tag);
	},
	showPopup: function(ev) { var e=ev||window.event;
		var co=config.options; // abbrev
		var cmo=config.macros.openStory; // abbrev
		var indent='\xa0\xa0';
		var p=Popup.create(this); if (!p) return false;
		createTiddlyText(createTiddlyElement(p,'li'),cmo.selectprompt);
		var stories=store.filterTiddlers('[tag['+this.getAttribute('filter')+']]');
		for (var s=0; s<stories.length; s++) {
			var label=indent+stories[s].title;
			var tip=cmo.prompt.format([stories[s].title]);
			var fn=function(){config.macros.openStory.showStory(this.getAttribute('tid'));return false;};
			var btn=createTiddlyButton(createTiddlyElement(p,'li'),label,tip,fn,'button');
			btn.setAttribute('tid',stories[s].title);
		}
		createTiddlyText(createTiddlyElement(p,'li'),cmo.optionsprompt);
		if (store.tiddlerExists('CollapsedTemplate')) {
			var label=indent+cmo.foldcmd.format([co.chkStoryFold?'x':'\xa0\xa0']);
			var tip=cmo.foldprompt;
			var fn=function(){ config.macros.option.propagateOption(
				'chkStoryFold','checked',!config.options.chkStoryFold,'input'); return false; };
			var btn=createTiddlyButton(createTiddlyElement(p,'li'),label,tip,fn,'button');
		}
		var label=indent+cmo.closecmd.format([co.chkStoryClose?'x':'\xa0\xa0']);
		var tip=indent+cmo.closeprompt;
		var fn=function(){ config.macros.option.propagateOption(
			'chkStoryClose','checked',!config.options.chkStoryClose,'input'); return false; };
		var btn=createTiddlyButton(createTiddlyElement(p,'li'),label,tip,fn,'button');
		if (!co.chkStoryClose) {
			var label=indent+cmo.topcmd.format([co.chkStoryTop?'x':'\xa0\xa0']);
			var tip=indent+cmo.topprompt;
			var fn=function(){
				config.macros.option.propagateOption(
					'chkStoryTop','checked',!config.options.chkStoryTop,'input');
				config.macros.option.propagateOption(
					'chkStoryBottom','checked',!config.options.chkStoryTop,'input');
				return false;
			};
			var btn=createTiddlyButton(createTiddlyElement(p,'li'),label,tip,fn,'button');
			var label=indent+cmo.bottomcmd.format([co.chkStoryBottom?'x':'\xa0\xa0']);
			var tip=indent+cmo.botprompt;
			var fn=function(){
				config.macros.option.propagateOption(
					'chkStoryBottom','checked',!config.options.chkStoryBottom,'input');
				config.macros.option.propagateOption(
					'chkStoryTop','checked',!config.options.chkStoryBottom,'input');
				return false;
			};
			var btn=createTiddlyButton(createTiddlyElement(p,'li'),label,tip,fn,'button');
		}
		if (!readOnly && co.chkStoryAllowAdd) {
			var label=cmo.addcmd;
			var tip=cmo.addprompt;
			var fn=config.macros.saveStory.setTiddler;
			createTiddlyElement(createTiddlyElement(p,'li'),'hr');
			var btn=createTiddlyButton(createTiddlyElement(p,'li'),label,tip,fn,'button');
		}
		Popup.show();
		e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation();
		return false;
	},
	createList: function(place,params) {
		var cmo=config.macros.openStory; // abbrev
		var s=createTiddlyElement(place,'select',null,'storyListbox');
		s.size=1;
		s.onchange=function() {
			if (this.value=='_fold') {
				config.macros.option.propagateOption('chkStoryFold','checked',
					!config.options.chkStoryFold,'input');
				cmo.refreshList();
			} else if (this.value=='_close') {
				config.macros.option.propagateOption('chkStoryClose','checked',
					!config.options.chkStoryClose,'input');
				cmo.refreshList();
			} else if (this.value=='_top') {
				config.macros.option.propagateOption('chkStoryTop','checked',
					!config.options.chkStoryTop,'input');
				cmo.refreshList();
			} else if (this.value=='_bottom') {
				config.macros.option.propagateOption('chkStoryBottom','checked',
					!config.options.chkStoryBottom,'input');
				cmo.refreshList();
			} else if (this.value=='_add')
				config.macros.saveStory.setTiddler.apply(this,arguments);
			else cmo.showStory(this.value);
		}
		params.shift(); // discard 'list' keyword
		s.setAttribute('filter',params.shift()||cmo.tag);
		setStylesheet('.storyListbox { width:100%; }', 'StorySaverStyles');
		store.addNotification(null,this.refreshList); this.refreshList();
		return;
	},
	refreshList: function() {
		var cmo=config.macros.openStory; // abbrev
		var indent='\xa0\xa0\xa0\xa0';
		var lists=document.getElementsByTagName('select');
		for (var i=0; i<lists.length; i++) { if (lists[i].className!='storyListbox') continue;
			var here=lists[i];
			var stories=store.filterTiddlers('[tag['+here.getAttribute('filter')+']]');
			while (here.length) here.options[0]=null; // remove current list items
			here.options[here.length]=new Option(cmo.selectprompt,'',true,true);
			for (var s=0; s<stories.length; s++)
				here.options[here.length]=new Option(indent+stories[s].title,stories[s].title);
			if (!readOnly && config.options.chkStoryAllowAdd)
				here.options[here.length]=new Option(cmo.addcmd,'_add');
			here.options[here.length]=new Option(cmo.optionsprompt,'');
			if (store.tiddlerExists('CollapsedTemplate')) {
				var msg=cmo.foldcmd.format([config.options.chkStoryFold?'x':'\xa0\xa0']);
				here.options[here.length]=new Option(indent+msg,'_fold');
			}
			var msg=cmo.closecmd.format([config.options.chkStoryClose?'x':'\xa0\xa0']);
			here.options[here.length]=new Option(indent+msg,'_close',false,false);
			if (!config.options.chkStoryClose) {
				var msg=cmo.topcmd.format([config.options.chkStoryTop?'x':'\xa0\xa0']);
				here.options[here.length]=new Option(indent+msg,'_top',false,false);
				var msg=cmo.bottomcmd.format([config.options.chkStoryBottom?'x':'\xa0\xa0']);
				here.options[here.length]=new Option(indent+msg,'_bottom',false,false);
			}
		}
	}
}
//}}}
/***
|Name|[[StoryViewerPlugin]]|
|Source|http://www.TiddlyTools.com/#StoryViewerPlugin|
|Documentation|http://www.TiddlyTools.com/#StoryViewerPluginInfo|
|Version|1.4.0|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|view a set of tiddlers using a droplist, "first/previous/next/last" links, or timed slideshow|
The {{{<<storyViewer>>}}} macro allows you to quickly ''display //and// navigate between a set of tiddlers'', using a droplist of titles and/or individual "first/previous/next/last" buttons/text links.  It also provides a "slideshow" feature that permits you to ''present one tiddler at a time with a countdown timer to automatically advance to the next tiddler'' after a specified number of seconds.
!!!!!Documentation
> see [[StoryViewerPluginInfo]]
!!!!!Revisions
<<<
2011.03.11 1.4.0 added 'sort:fieldname' parameter
2011.01.24 1.3.4 in droplist onchange handler, don't clear slideshow 'started' flag (allows slideshow to continue after manual navigation)
|please see [[StoryViewerPluginInfo]] for additional revision details|
2007.10.23 1.0.0 Initial release, split {{{<<storyViewer>>}}} macro definition from [[StorySaverPlugin]] to allow separate installation of story saving vs. story viewing features.
<<<
!!!!!Code
***/
//{{{
version.extensions.StoryViewerPlugin= {major: 1, minor: 4, revision: 0, date: new Date(2011,3,11)};

config.macros.storyViewer = {
	tag:			"story",
	storynotfoundmsg:	"'%0' is an empty/unrecognized story",
	firstcmd:		"first",
	firstbutton:		"<<",
	firstmsg:		"first: '%0'",
	nextcmd:		"next",
	nextbutton:		">",
	nextmsg:		"next: '%0'",
	previouscmd:		"previous",
	previousbutton:		"<",
	prevmsg:		"previous: '%0'",
	lastcmd:		"last",
	lastbutton:		">>",
	lastmsg:		"last: '%0'",
	refreshmsg:		"redisplay '%0'",
	refreshmsg:		"",
	autostart:		false,
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {

		var parsed=paramString.parseParams('anon',null,true,false,false);
		var here=story.findContainingTiddler(place);
		if (here) var tid=here.getAttribute("tiddler");
		var storyname="";
		var p=params.shift();
		var keywords=['first','previous','here','next','last','list','links','timer','sort'];
		if (!p || keywords.indexOf(p.split(':')[0])!=-1) {
			// find story from current tiddler name
			if (!tid) return; // not in a tiddler... do nothing!
			var stories=store.getTaggedTiddlers(this.tag);
			if (!stories) return;
			for (var s=0; s<stories.length; s++) {
				if (!stories[s].linksUpdated) stories[s].changed();
				var tids=stories[s].links.slice(0);
				if (tids.contains(tid)) { storyname=stories[s].title; break; }
			}
			if (!storyname.length) return; // current tiddler is not part of a saved story
		}
		else { storyname=p; p=params.shift(); } // user-specified story name

		var sortby=getParam(parsed,'sort','title');
		var tids=this.getStory(storyname,sortby); // get tiddler list

		var target=null;
		switch (p?p.split(':')[0]:'') {
			case 'first':
				target=tids[0];
				break;
			case 'previous':
				var i=tids.indexOf(tid);
				if (i!=-1) var target=tids[Math.max(i-1,0)];
				break;
			case 'here':
				if (tid) target=tid;
				break;
			case 'next':
				var i=tids.indexOf(tid);
				if (i!=-1) var target=tids[Math.min(i+1,tids.length-1)];
				break;
			case 'last':
				target=tids[tids.length-1];
				break;
			case 'links':
				this.renderAllLinks(place,storyname);
				break;
			case 'timer':
				var delay=parseInt(getParam(parsed,'timer',15))*1000; // msecs between slides
				var autostart=params[0]=='autostart'; if (autostart) params.shift();
				var action=params[0]; // null/close/fold
				this.renderTimer(place,tids,tid,delay,autostart,action);
				break;
			case 'list':
			default:
				var prompt=getParam(parsed,'prompt',storyname+'...');
				var nobuttons=params.contains("nobuttons");
				var allbuttons=params.contains("allbuttons");
				var onlybuttons=params.contains("onlybuttons");
				this.renderList(place,tids,tid,storyname,prompt,nobuttons,allbuttons,onlybuttons);
				break;
		}
		var label=getParam(parsed,'label',params[0]||target);
		if (target) this.renderLink(place,tid,target,label);
	},
	getStory: function(storyname,sortby) { // READ TIDDLER LIST
		var tids=[];
		var fn=store.getMatchingTiddlers||store.getTaggedTiddlers;
		var tagged=store.sortTiddlers(fn.apply(store,[storyname]),sortby||'title');
		if (tagged.length) // if storyname is a tag, get tagged tiddlers rather than links
			for (var t=0; t<tagged.length; t++) tids.push(tagged[t].title);
		else {
			var t=store.getTiddler(storyname);
			if (t && !t.linksUpdated) t.changed();
			var tids=t?t.links.slice(0):[];
		}
		return tids;
	},
	renderLink: function(place,tid,target,label) {
		// override default labelling with specified text (if any)
		if (tid==target) { // self-referential links turn into 'refresh links'
			var btn=createTiddlyButton(place,null,this.refreshmsg.format([tid]), function() {
				var here=story.findContainingTiddler(place).getAttribute("tiddler");
				story.refreshTiddler(here,null,true);
			});
			wikify(label,btn); 
		}
		else // create link
			wikify(label,createTiddlyLink(place,target,false));
	},
	renderAllLinks: function(place,storyname) {
		var out="{{floatleft{";
		out+="<<storyViewer [["+storyname+"]] first first>> &nbsp;";
		out+="<<storyViewer [["+storyname+"]] previous previous>> &nbsp;";
		out+="}}}";
		out+="{{floatright{";
		out+="&nbsp; <<storyViewer [["+storyname+"]] next next>>";
		out+="&nbsp; <<storyViewer [["+storyname+"]] last last>>";
		out+="}}}";
		out+="{{center{<<storyViewer [["+storyname+"]] here>>}}}";
		wikify(out,place);
	},
	renderList: function(place,tids,tid,storyname,prompt,nobuttons,allbuttons,onlybuttons) {
		var h="";
		h+='<form style="display:inline">';
		if ((!nobuttons||onlybuttons) && allbuttons) {
			h+='<input type="button" value="'+this.firstbutton+'" ';
			h+='	style="padding:0" title="'+(tids[0]?this.firstmsg.format([tids[0]]):'')+'"';
			h+=' onclick="if (this.form.list.length<2) return; ';
			h+='	this.form.list.selectedIndex=1; this.form.list.onchange();">';
		}
		if (!nobuttons||onlybuttons) {
			h+='<input type="button" value="'+this.previousbutton+'" style="padding:0 0.3em"';
			h+=' onclick="if (this.form.list.length<2) return; ';
			h+=' 	var i=this.form.list.selectedIndex-1; if (i<1) i=1; ';
			h+='	this.form.list.selectedIndex=i; this.form.list.onchange();"';
			h+=' onmouseover="if (this.form.list.length<2) return; ';
			h+=' 	var i=this.form.list.selectedIndex-1; if (i<1) i=1; ';
			h+='	var v=this.form.list.options[i].value; if (!v.length) return; ';
			h+='	this.title=config.macros.storyViewer.prevmsg.format([v]);">';
		}
		h+='<select size="1" name="list"';
		if (onlybuttons) h+=' style="display:none;"';
		h+=' onchange="if (this.value) story.displayTiddler(this,this.value);">';
		h+='<option value="">'+prompt+'</option>';
		for (i=0; i<tids.length; i++) {
			h+='<option '+
				(tids[i]==tid?'selected ':'')+
				'value="'+tids[i]+'">\xa0\xa0'+tids[i]+'</option>';
		}
		h+='</select>';
		if (!nobuttons||onlybuttons) {
			h+='<input type="button" value="'+this.nextbutton+'" style="padding:0 0.3em"';
			h+=' onclick="var i=this.form.list.selectedIndex+1; ';
			h+='	if (i>this.form.list.options.length-1) i=this.form.list.options.length-1; ';
			h+='	this.form.list.selectedIndex=i; this.form.list.onchange();"';
			h+=' onmouseover="var i=this.form.list.selectedIndex+1; ';
			h+='	if (i>this.form.list.options.length-1) i=this.form.list.options.length-1; ';
			h+='	var v=this.form.list.options[i].value; if (!v.length) return;';
			h+='	this.title=config.macros.storyViewer.nextmsg.format([v]);">';
		}
		if ((!nobuttons||onlybuttons) && allbuttons) {
			h+='<input type="button" value="'+this.lastbutton+'" ';
			h+='	style="padding:0" title="'+(tids[tids.length-1]?this.lastmsg.format([tids[tids.length-1]]):'')+'"';
			h+=' onclick="this.form.list.selectedIndex=this.form.list.options.length-1; this.form.list.onchange();">';
		}
		h+='</form>';
		createTiddlyElement(place,"span").innerHTML=h;
	},
	renderTimer: function(place,tids,tid,delay,autostart,action) {
		var now=new Date().getTime(); // msec
		var target=createTiddlyElement(null,'input',now+Math.random()); // unique ID
		target.setAttribute('type','button'); target.style.padding='0';
		place.appendChild(target);
		target.tid		=tids[Math.min(tids.indexOf(tid)+1,tids.length-1)]||''; // next tiddler
		target.action		=action;
		target.formatTimer	=this.formatTimer;
		target.start		=this.startTimer;
		target.stop		=this.stopTimer;
		target.onmouseover	=this.pauseTimer;
		target.onmouseout	=this.resumeTimer;
		target.tick		=this.timerTick;
		target.onclick		=this.timerClick;
		target.next		=this.timerNext;
		target.start(delay,autostart);
	},
	formatTimer: function(t) {
		return '0:'+String.zeroPad(Math.floor(t/1000),2);
	},
	startTimer: function(delay,start) {
		var co=config.options; // abbrev
		start=config.macros.storyViewer.started=start||config.macros.storyViewer.started;
		var now=new Date().getTime(); // msec
		this.started=start;
		this.delay=delay;
		this.paused=start?0:delay;
		this.stopTime=now+delay; // msec
		this.title='CLICK='+(start?'reset':'start')+" slideshow timer... next: '"+this.tid+"'";
		this.style.cursor='pointer';
		this.value=this.formatTimer(delay);
		if (start) {
			var code="var e=document.getElementById('"+this.id+"'); if(e)e.tick()";
			this.timer=setTimeout(code,500);
		}
		return false;
	},
	stopTimer: function() {
		this.timer=clearTimeout(this.timer);
		this.started=config.macros.storyViewer.started=false;
		this.paused=0;
		this.title="CLICK=start slideshow timer... next: '"+this.tid+"'";
		this.value=this.formatTimer(this.delay);
		return false;
	},
	pauseTimer: function() {
		if (!this.started) return;
		var now=new Date().getTime(); // msec
		this.paused=Math.max(this.stopTime-now,0);
		this.stopTime=now+this.paused;
		return false;
	},
	resumeTimer: function() {
		if (!this.started || !this.paused) return;
		var now=new Date().getTime(); // msec
		this.stopTime=now+this.paused;
		this.paused=0;
		return false;
	},
	timerTick: function() {
		var now=new Date().getTime(); // msec
		if (!this.started)
			this.stopTime=now+this.delay;
		else if (this.paused) {
			this.stopTime=now+this.paused;
			this.title="[PAUSED] MOUSEOUT=resume, CLICK=reset... next: '"+this.tid+"'";
		}
		var remaining=this.stopTime-now;
		if (remaining>0) {
			if (this.started && !this.paused) this.value=this.formatTimer(remaining);
			var code="var e=document.getElementById('"+this.id+"'); if(e)e.tick()";
			this.timer=setTimeout(code,500);
		} else {
			this.stop();
			this.next();
		}
		return false;
	},
	timerClick: function() {
		return this.started?this.stop():this.start(this.delay,true);
	},
	timerNext: function() { // OPEN NEXT TIDDLER
		var here=story.findContainingTiddler(this);
		config.macros.storyViewer.started=true; // next slide autostarts to continue slideshow
		if (this.tid) story.displayTiddler(here,this.tid);
		config.macros.storyViewer.started=false;
		if (!here) return false;
		var t=here.getAttribute('tiddler');
		if (this.action=='close') story.closeTiddler(t);
		if (this.action=='fold' && config.commands.collapseTiddler) // see CollapseTiddlerPlugin
			config.commands.collapseTiddler.handler(null,here,t);
		return false;
	}
}
//}}}
//{{{
config.paramifiers.story = {
	onstart: function(v) {
		var t=store.getTiddler(v); if (t) t.changed();
		var list=t?t.links:store.getTiddlerText(v,"").parseParams("open",null,false);
		story.displayTiddlers(null,list);
	}
};
//}}}
<data>{"abstract":"[[Stringball]], kleine Übungen, die [[Führungsverhalten|Führung]] erlebbar machen, gibt es gar nicht so viele. Dies ist eine, die mit relativ geringem Aufwand durchzuführen ist. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.uni-ulm.de/typo3temp/pics/38a51ec1cb.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Stringball","abstract") </script>

!Stringball
<script> return "<<tiddler [[Stringball##Overview]]>>" </script>

!Objectives
* [[Führungsverhalten|Führung]] erlebbar machen
* Gruppendynamik sichtbar machen

!Timing
30min

!Audience
Group


!Materials
* 1 Gummiring, an den bis zu acht Schnüre geknüpft sind
* 1 gefülltes Weizenbierglas, 
* 2 Bierdeckel
* Augenbinden

!Procedure
Auf dem Boden steht ein gefülltes Weizenbierglas auf einem Bierdeckel. 
Aufgabe der Teilnehmer ist es nun, mit Hilfe der Schnüre den Ring so weit auseinander zu ziehen, dass er über das Glas gezogen werden kann. Anschließend wird das Glas gemeinsam angehoben und auf einem zweiten Bierdeckel abstellt.

Um die beiden Bierdeckel ist ein Kreis abgezeichnet, dessen Inneres von den Teilnehmern nicht betreten werden darf. 
Interessant wird die Aufgabe, wenn diejenigen, die an den Schnüren ziehen, die Augen verbunden haben und von den anderen Teilnehmern angeleitet werden. 
Dann sind die "Geführten" völlig abhängig von den Anweisungen der "Führungskräfte", hier lassen sich wunderbar Verhaltensweisen der [[Information]], [[Motivation]], Koordination etc. erleben und rückmelden.


!Debriefing
Abhängigkeit der "Geführten" von den Anweisungen der "Führungskräfte", hier lassen sich wunderbar Verhaltensweisen der [[Information]], [[Motivation]], Koordination etc. erleben und rückmelden.


!Quelle
[[Rachow, Axel: LudoCards, 80 Spielkarten, managerSeminare Verlags GmbH, 1999| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FLudoCards-80-Spielkarten-Axel-Rachow%2Fdp%2F3931488624%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214715992%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!See also
<<tiddler ShowTiddlerReferences>>
* [[Balltransport - Wie ein rohes Ei (Metalog)]]

+++*[Übungen Führung]<<tiddlerList tags:"leadership,-newTemplate" header:"Übungen Führung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline|http://www.mwonline.de/online/themen/3/Ideenfabrik/Stringball+%28jt%29.html]]
<data>{"abstract":"[[Stromspiel]], in Bewegung kommen ist das Ziel dieser Warm-up Übung, die viel Konzentration erfordert und Spaß macht.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.stromvergleich-online.org/grafik/elektrischer-strom.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Stromspiel","abstract") </script>

!Stromspiel
<script> return "<<tiddler [[Stromspiel##Overview]]>>" </script> 
Eine "Warm-up" Übung, um die Teilnehmer nach einer längeren Arbeitsphase oder einer Mittagspause wieder in Schwung zu bringen.

!Objectives
* Aufwärmen

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
 Alle stehen im Kreis und geben sich den "Strom" im Uhrzeigersinn weiter. 
Dies geschieht, indem sie in die Hände klatschen. Wenn ein Teilnehmer zweimal in die Hände klatscht, wechselt der Strom die Richtung. 
Kreuzt ein Teilnehmer die Arme, wird der Strom abgeblockt, dann muss der Teilnehmer, der ihn weitergeben wollte, zurücknehmen und in die andere Richtung weitergeben. 
Man kann den Strom auch durch "Werfen" einem beliebigen Teilnehmer übergeben. 
Wenn die Spielregeln in einer Proberunde von allen verstanden wurden, wird es "ernst". Dann scheidet derjenige aus, der einen [[Fehler]] macht.

!Debriefing

!Quelle
toolbox, wirtschaft & weiterbildung 1/2002 Seite 24, nach Stefanie Gerlach und Inga Squarr.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Stromspiel+%28is%29]]
/%
|Name|Stuart Brown: Why play is vital — no matter your age|
|URL|http://www.youtube.com/v/HHwXlcHcTHc|
|Description|A pioneer in research on play, Stuart Brown says humor, games, roughhousing, flirtation and fantasy are more than just fun. Plenty of play in childhood makes for happy, smart adults — and keeping it up can make us smarter at any age.|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/HHwXlcHcTHc"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/HHwXlcHcTHc" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
<data>{"abstract":"[[Superposition]], es klingt auf den ersten Blick verrückt. Aber einen Versuch ist es wert: Nehmen Sie ein Lexikon und wählen per Zufall einen Begriff. Möglicherweise liegt in ihm die Lösung… "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://switzernet.com/people/emin-gabrielyan/070306-optical-speedup/a5/a16.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Superposition","abstract") </script>

!Superposition
<script> return "<<tiddler [[Superposition##Overview]]>>" </script> 
[[Superposition]] gehört zu den [[Reizworttechniken|Reizwortanalyse]]. Dahinter steckt die Idee des "Planvollen Herbeiführens von Zufällen". 

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Aus einem Lexikon werden nach dem Zufallsprinzip 7 bis 12 Worte ausgewählt, indem jemand eine beliebige Seitenzahl nennt, ein anderer schlägt das Lexikon auf und liest das erste Wort vor, das ihm ins Auge springt. 
Dieses Wort wird für alle sichtbar aufgeschrieben. Anschließend versucht man gemeinsam, aus diesen Reizworten [[Ideen|Ideenmanagement]] für die Fragestellung abzuleiten. 
Auch hier gilt wie beim [[Brainstorming]]: Erst frei assoziieren und im zweiten Schritt die [[Ideen|Ideenmanagement]] bewerten. Superposition mag für die meisten Teammitglieder zunächst sehr ungewöhnlich erscheinen, weil ein Zusammenhang in der Regel zunächst überhaupt nicht erkennbar ist. 
Durch die beliebigen Reizworte wird verhindert, daß man rasch wieder in die herkömmliche Betrachtungsweise abgleitet.

!Debriefing

!Quelle
[[Pink, R.: Wege aus der Routine: Kreativitätstechniken für Beruf und Alltag, S.82-82.| http://www.amazon.de/gp/product/3093058627?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3093058627]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Superposition+%28jt%29.html]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://viddug.com/images/albumcovers/Simian_Mobile_Disco_Attack_Decay_Sustain_Release-B000UZ4G7S.jpg>>
<<showtoc>>
!Overview
Have you been on a software project where each release gets harder and harder? Many projects fall into the tarpit of the Design Dead Core.
Why do nearly all software projects fail to balance short term choices with long term consequences?

!Sustaining Agility
<<tiddler [[Sustaining Agility##Overview]]>>
Through game-play you will experience how hard it is to make effective choices. Game learnings will be tied into well-known models in and beyond software such as Technical Debt, Stephen Covey’s Production Capability and Cockburns theory of competing games.


!Objectives
* Participants experience the attraction of short-term thinking and feel the long-term consequences.

!Timing
90-110 min.

!Materials
*

!Audience
Group
* Executives, Managers, Product Managers and team members

!Procedure
Please see [[full game post|http://www.agilitrix.com/2011/04/sustaining-agility-game/]].

!Debriefing

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://tastycupcakes.org/2011/04/sustaining-agility/
//synonym://
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview
Have you been on a software project where each release gets harder and harder? Many projects fall into the tar pit of the Design Dead Core.

Why do nearly all software projects fail to balance short term choices with long term consequences?

Through game-play you will experience how hard it is to make effective choices. Game learnings will be tied into well-known models in and beyond software such as Technical Debt, Stephen Covey’s Production Capability, and Alistair Cockburn’s theory of competing games.

!Sustaining Agility Game
<<tiddler [[Sustaining Agility Game##Overview]]>>


!Objectives
* Short-term thinkers feel the improtance of long-term consequences. 
* Executives and managers understand the importance of investment in sustainable development practices.

!Timing

!Materials
*

!Audience
Group / Individual

!Procedure

!Debriefing

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://agilitrix.com/2011/04/sustaining-agility-game/
/***
|Name|SyncFromSourcePlugin|
|Description|Synchronizes plugins from their original source (issued from plugin info) instead of imported url. So, plugins can be imported from any existing tiddlywiki and still be synchronized with their original source.|
|Version|1.0.0|
|Date|Dec 21,2007|
|Source|http://visualtw.ouvaton.org/VisualTW.html|
|Author|[[PascalCollin]]|
|License|[[BSD open source license|License]]|
|~CoreVersion|2.2.0|
|Browser|Firefox 1.5; InternetExplorer 6.0|
!Usage
#import the plugin, save and reload.
#a new column (source) is available in ''sync task'' from the ''backstage button''. If the plugin's source mismatches the plugin server.host (the place from which is was last imported), the source value is displayed.
#a new button is also available : ''reset source''. Click on this button applies plugin's ''source'' as server.host for the checked lines.
Look at this [[example|SyncFromSourceDemo]] on plugin [[homepage|http://visualtw.ouvaton.org/VisualTW.html]].
!Patch required for TiddlyWiki 2.3.0
A bug in TW2.3.0 requires [[SyncPatch]].
!Code
***/
//{{{
config.macros.sync.getSyncableTiddlersWithoutSource = config.macros.sync.getSyncableTiddlersWithoutSource ? config.macros.sync.getSyncableTiddlersWithoutSource : config.macros.sync.getSyncableTiddlers;

config.macros.sync.startSyncWithoutSource = config.macros.sync.startSyncWithoutSource ? config.macros.sync.startSyncWithoutSource : config.macros.sync.startSync;

config.macros.sync.getSyncableTiddlers = function(){
	var syncs = config.macros.sync.getSyncableTiddlersWithoutSource();
	for(var cpt=0;cpt<syncs.length;cpt++){
		var s= getPluginInfo(syncs[cpt].tiddler).Source;
		if (s) {
			var source = FileAdaptor.minHostName(s);
			source = source.replace(/#[^#]*$/,"").replace(/\/*$/,"");
			syncs[cpt].source = (source==syncs[cpt].tiddler.fields["server.host"]) ? "": source;
		}
		else syncs[cpt].source = "";
	}
	return syncs;
}

config.macros.sync.startSync = function(place) {
	config.macros.sync.startSyncWithoutSource(place);
	var w = new Wizard(place.getElementsByTagName("form")[0]);
	w.setButtons([
			{caption: this.syncLabel, tooltip: this.syncPrompt, onClick: this.doSync},
			{caption: this.syncSourceLabel, tooltip: this.syncSourcePrompt, onClick: this.doSyncSource}
		]);
}

merge(config.macros.sync,{
	syncSourceLabel : "reset source",
	syncSourcePrompt : "reset synchronization to plugin source, if available"
})

config.macros.sync.doSyncSource = function(e)
{
	var rowNames = ListView.getSelectedRows(currSync.listView);
	for(var t=0; t<currSync.syncList.length; t++) {
		var si = currSync.syncList[t];
		if((rowNames.indexOf(si.title) != -1)&&si.source) {
			si.tiddler.fields["server.host"]=si.source;
			si.tiddler.fields["server.type"]="file";
			store.setDirty(true);
		}
	}
	backstage.switchTab(null);
	return false;
};

config.macros.sync.listViewTemplate.columns.push({name: 'Source', field: 'source', title: "Source", type: 'Link'});

//}}}
/***
Corrects a bug in TiddlyWiki 2.3.0
***/

//{{{
FileAdaptor.getTiddlerComplete = function(context,userParams)
{
	var t = context.adaptor.store.fetchTiddler(context.title);
	t.fields['server.type'] = FileAdaptor.serverType;
	t.fields['server.host'] = FileAdaptor.minHostName(context.host);
	t.fields['server.page.revision'] = t.modified.convertToYYYYMMDDHHMM();
	context.tiddler = t;
	context.status = true;
	if(context.allowSynchronous) {
		context.isSynchronous = true;
		context.callback(context,userParams);
	} else {
		window.setTimeout(function() {context.callback(context,userParams);},10);
	}
	return true;
};
//}}}
<data>{"abstract":"[[Synektik]], eine Kreativitätstechnik, die sicherlich einiger Übung bedarf und am besten von einem erfahrenen Moderator begleitet wird. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 35% auto title http://ideentower.blogs.com/ideentower/images/ideentower_kreativtaet_symbolbild.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Synektik","abstract") </script>

!Synektik
<script> return "<<tiddler [[Synektik##Overview]]>>" </script> 
Diese Methode geht auf W.J.J. Gordon zurück und ist sicherlich gewöhnungsbedürftig. Ihre Schritte folgen dem Phasenverlauf natürlich ablaufender kreativer Prozesse, als da wären: 
# Vorbereitungsphase 
# Inkubationsphase 
# Illuminationsphase 
# Verifikationsphase.

!Objectives

!Timing

!Audience
Group

!Materials
* 

!Procedure
Die Phasen der Synektik sehen so aus: 
# Problemanalyse und -definition 
# Spontane Lösungen 
# ~Neu-Formulierung des Problems 
# Bildung direkter Analogien, z.B. aus der Natur 
# Persönliche Analogien (dies ist wohl der Schritt, der das größte Befremden bei neuen Teilnehmern auslöst) 
# Symbolische Analogien 
# Direkte Analogien, z.B. aus der Technik 
# Analyse der direkten Analogien 
# "~Force-Fit": Übertragung auf das [[Problem]] 
# Entwicklung von Lösungsansätzen.

Wem das noch zu abstrakt ist, der sei getröstet. Die Methode erfordert Übung und einen geschulten Moderator, verspricht aber sehr interessante Ergebnisse.

!Beispiel
Vielleicht hilft ein Beispiel: Gesucht werden Möglichkeiten, wie sich Bilder rahmen lassen.
# Wie kann eine Glasplatte möglichst einfach auf einem flachen Rahmen befestigt werden?
# Saugnäpfe, Klammern, Klebefolie …
# Wie kann gleichzeitig erreicht werden, dass die Glasplatte leicht wieder abgenommen werden kann?
# Schlange streift Haut ab, Geweih wird abgestoßen, Schnee schmilzt … Gruppe wählt: Schlange streift Haut ab
# Wie fühle ich mich als häutende Schlange? Es juckt, alte Haut engt ein, endlich frische Luft … Gruppe wählt: alte Haut engt ein
# bedrückende Hülle, würgendes Ich, lückenlose Fessel… Gruppe wählt: lückenlose Fessel
# Leitplanken der Autobahn, Druckbehälter, Schienenstrang …
# Leitplanke: Blechprofil, verformbar, auf beiden Seiten … &rArr; Profilrahmen, knatartige Kugeln zwischen Glasplatte und Rahmen, Rahmen nur an zwei Seiten ...; Druckbehälter: steht unter Spannung … &rArr; gekrümmter Rahmen erzeugt Spannung usw.

!Debriefing

!Quelle
[[Schlicksupp, H.: Ideenfindung, Vogel Buchverlag 2004, S.121-127| http://www.amazon.de/gp/product/3802317866?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3802317866]].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://comas.offeneslernen.de/lerno/MPX_content.php?PHPSESSID=&content_id=1083
/***
|Name|SystemInfoPlugin|
|Source|http://www.TiddlyTools.com/#SystemInfoPlugin|
|Version|1.7.1|
|Author|[[EricShulman]] - 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|view system internal data and settings|

~TidIDE (//prounounced "Tie Dyed"//) - ''Tid''dlyWiki ''I''ntegrated ''D''evelopment ''E''nvironment - tools for ~TiddlyWiki authors and editors.  

You can use the {{{<<systemInfo>>}}} control panel to view a variety of system internal data and functions, and view/modify ''all'' of ~TiddlyWiki's internal config.option.* settings.  NOTE: Non-default config.options are stored in cookies and are retrieved whenever the TW document is loaded into a browser; however, ''core TW functions and custom-defined plugins can explicitly ignore or reset any locally-stored cookie values and use their own, internally-defined values'' instead.  As a result, changes to these may be completely ignored, or may only have an effect during the current TW document "session" (i.e., until the TW document is reloaded), even though a persistent cookie value has been saved.
!!!!!Usage/Example
<<<
{{{<<systemInfo>>}}}
{{smallform{<<systemInfo>>}}}
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
[[SystemInfoPlugin]] (tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
''2007.10.31 [1.7.1]'' code reduction: when filling globals droplist, instead of using a large, static "global exclusion list", simply skip global *functions*, while still listing all other global properties, including key TW internal objects such as "config".
''2007.09.09 [1.7.0]'' split from TidIDEPlugin
|please see [[TidIDEPlugin]] and/or [[TidIDEPluginHistory]] for additional revision details|
''2006.04.15 [0.5.0]'' Initial ALPHA release. Converted from inline script.
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]].
<<<
!!!!!Code
***/
//{{{
version.extensions.systemInfo = {major: 1, minor: 7, revision: 1, date: new Date(2006,10,31)};
config.shadowTiddlers.SystemInfo="<<systemInfo>>";
config.macros.systemInfo = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var span=createTiddlyElement(place,"span")
		span.innerHTML=this.html;
		this.getsys(span.getElementsByTagName("form")[0]); // initialize form
	},
	getsys: function(f) {
		f.sysview.value="";

		// OPTIONS
		while (f.sys_opts.options.length > 1) { f.sys_opts.options[1]=null; } // clear list
		f.config_view.value="";  // clear edit field
		var cookies = { };
		if (document.cookie != "") {
			var p = document.cookie.split("; ");
			for (var i=0; i < p.length; i++) {
				var pos=p[i].indexOf("=");
				if (pos==-1)
					cookies[p[i]]="";
				else
					cookies[p[i].substr(0,pos)]=unescape(p[i].slice(pos+1));
			}
		}
		var c=1;
		var opt=new Array(); for (var i in config.options) opt.push(i); opt.sort();
		for(var i=0; i<opt.length; i++) {
			if ((opt[i].substr(0,3)=="txt")||(opt[i].substr(0,3)=="chk")) {
				var txt = (opt[i].substr(0,3)=="chk"?("["+(config.options[opt[i]]?"x":"_")+"] "):"")+opt[i]+(cookies[opt[i]]?" (cookie)":"");
				var val = config.options[opt[i]];
				f.sys_opts.options[c++]=new Option(txt,val,false,false);
			}
		}

		// STYLESHEETS
		while (f.sys_styles.options.length > 1) { f.sys_styles.options[1]=null; } // clear list
		var c=1;
		var styles=document.getElementsByTagName("style");
		for(var i=0; i < styles.length; i++) {
			var id=styles[i].getAttribute("id"); if (!id) id="(default)";
			var txt=id;
			var val="/* stylesheet:"+txt+" */\n"+styles[i].innerHTML;
			f.sys_styles.options[c++]=new Option(txt,val,false,false);
		}

		// SHADOWS
		while (f.sys_shadows.options.length > 1) { f.sys_shadows.options[1]=null; } // clear list
		var c=1;
		for(var s in config.shadowTiddlers) f.sys_shadows.options[c++]=new Option(s,config.shadowTiddlers[s],false,false);

		// NOTIFICATIONS
		while (f.sys_notify.options.length > 1) { f.sys_notify.options[1]=null; } // clear list
		var c=1;
		for (var i=0; i<store.namedNotifications.length; i++) {
			var n = store.namedNotifications[i];
			var fn = n.notify.toString();
			fn = fn.substring(fn.indexOf("function ")+9,fn.indexOf("{")-1);
			var txt=(n.name?n.name:"any change")+"="+fn;
			var val="/* notify: "+txt+" */\n"+n.notify.toString();
			f.sys_notify.options[c++]=new Option(txt,val,false,false);
		}

		// MACROS
		while (f.sys_macros.options.length > 1) { f.sys_macros.options[1]=null; } // clear list
		var c=1;
		var macros=new Array(); for (var m in config.macros) macros.push(m); macros.sort();
		for(var i=0; i < macros.length; i++)
			f.sys_macros.options[c++]=new Option(macros[i],this.showObject(config.macros[macros[i]]),false,false);

		// COMMANDS
		while (f.sys_commands.options.length > 1) { f.sys_commands.options[1]=null; } // clear list
		var c=1;
		for(var cmd in config.commands)
			f.sys_commands.options[c++]=new Option(cmd,this.showObject(config.commands[cmd]),false,false);

		// FORMATTERS
		while (f.sys_formatters.options.length > 1) { f.sys_formatters.options[1]=null; } // clear list
		var c=1;
		for(var i=0; i < config.formatters.length; i++)
			f.sys_formatters.options[c++]=new Option(config.formatters[i].name,this.showObject(config.formatters[i]),false,false);

		// PARAMIFIERS
		while (f.sys_params.options.length > 1) { f.sys_params.options[1]=null; } // clear list
		var c=1;
		for(var param in config.paramifiers)
			f.sys_params.options[c++]=new Option(param,this.showObject(config.paramifiers[param]),false,false);

		// GLOBALS
		//global variables and functions (excluding most DOM and ~TiddyWiki core definitions)://
		while (f.sys_globals.options.length > 1) { f.sys_globals.options[1]=null; } // clear list
		if (config.browser.isIE) return; // BYPASS - 8/16/2006 // DON'T LIST GLOBALS IN IE… throws object error - WFFL
		try {
			var c=1;
			for (var v in window) if ((typeof window[v])!='function') {
				var t=window[v];
				if ((typeof window[v])=='object') {
					var t='';
					for (var p in window[v]) {
						t+=((typeof window[v][p])!='function')?('['+typeof window[v][p]+'] '+p):p;
						t+=((typeof window[v][p])!='function')?('='+window[v][p]):'';
						t+='\n';
					}
				}
				f.sys_globals.options[c++]=new Option(((typeof window[v])!='function')?('['+typeof window[v]+'] '+v):v,t,false,false);
			}	
		}
		catch(e) { ; }
	},
	setsys: function(f) {
		if (f.sys_opts.selectedIndex==0) return; // heading - do nothing
		var name=f.sys_opts.options[f.sys_opts.selectedIndex].text.replace(/\[[Xx_]\] /,'').replace(/ \(cookie\)/,'')
		var value=f.config_view.value;
		config.options[name]=value;
		saveOptionCookie(name);
		f.sys_opts.options[f.sys_opts.selectedIndex].value=value;
		return;
	},
	showObject: function(o) { // generate formatted output for displaying object references
		var t="";
		for (var p in o) {
			if (typeof o[p]=="function") {
				t+="- - - - - - - - - - "+p+" - - - - - - - - - -\n";
				t+=o[p].toString();
				t+="\n- - - - - - - - - - END: "+p+" - - - - - - - - - -\n";
			}
			else
				t+='['+typeof o[p]+'] '+p+": "+o[p]+"\n";
		}
		return t;
	},
	html: "\
	<form style='display:inline;margin:0;padding:0;'> \
		<!-- configurable options --> \
		<table style='width:100%;border:0;padding:0;margin:0'><tr style='border:0;padding:0;margin:0'> \
		<td style='width:30%;border:0;padding:0;margin:0'> \
			<select size=1 name='sys_opts' style='width:100%;' \
				onchange='this.form.config_view.value=this.value'> \
				<option value=\"\">config.options.*</option> \
			</select> \
		</td><td style='width:50%;border:0;padding:0;margin:0;'> \
			<input type=text name='config_view' size=60 style='width:99%;' value=''> \
		</td><td style='width:20%;white-space:nowrap;border:0;padding:0;margin:0;'> \
			<input type=button style='width:50%;' value='set option' title='save this TiddlyWiki option value' \
				onclick='config.macros.systemInfo.setsys(this.form);config.macros.systemInfo.getsys(this.form);'><!-- \
			--><input type=button style='width:50%;' value='refresh' title='retrieve current options and system values' \
				onclick='this.form.sysview.style.display=\"none\"; config.macros.systemInfo.getsys(this.form);'> \
		</td></tr><tr style='border:0;padding:0;margin:0'><td colspan=3 \
				style='white-space:nowrap;width:100%;border:0;padding:0;margin:0'> \
			<!-- system objects --> \
			<select size=1  name='sys_styles' style='width:25%;' \
				onchange='this.form.sysview.style.display=\"block\"; this.form.sysview.value=this.value'> \
				<option value=\"\">stylesheets...</option> \
			</select><select size=1  name='sys_shadows' style='width:25%;' \
				onchange='this.form.sysview.style.display=\"block\"; this.form.sysview.value=this.value'> \
				<option value=\"\">shadows...</option> \
			</select><select size=1  name='sys_notify' style='width:25%;' \
				onchange='this.form.sysview.style.display=\"block\"; this.form.sysview.value=this.value'> \
				<option value=\"\">notifications...</option> \
			</select><select size=1  name='sys_globals' style='width:25%;' \
				onchange='this.form.sysview.style.display=\"block\"; this.form.sysview.value=this.value'> \
				<option value=\"\">globals...</option> \
			</select><br><select size=1  name='sys_macros' style='width:25%;' \
				onchange='this.form.sysview.style.display=\"block\"; this.form.sysview.value=this.value'> \
				<option value=\"\">macros...</option> \
			</select><select size=1  name='sys_commands' style='width:25%;' \
				onchange='this.form.sysview.style.display=\"block\"; this.form.sysview.value=this.value'> \
				<option value=\"\">commands...</option> \
			</select><select size=1  name='sys_formatters' style='width:25%;' \
				onchange='this.form.sysview.style.display=\"block\"; this.form.sysview.value=this.value'> \
				<option value=\"\">formatters...</option> \
			</select><select size=1  name='sys_params' style='width:25%;' \
				onchange='this.form.sysview.style.display=\"block\"; this.form.sysview.value=this.value'> \
				<option value=\"\">paramifiers...</option> \
			</select> \
			<!-- system value display area --> \
			<span style='white-space:normal;'><textarea id='sysview' name=sysview cols=60 rows=12 \
				onfocus='this.select()' style='width:99.5%;height:16em;display:none'></textarea></span> \
		</td></tr></table> \
	</form>"
}
//}}}
<data>{"abstract":"[[Systemische Strukturaufstellung]], eine [[Aufstellungsform|Aufstellung]], bei der neben menschlichen auch abstrakte Systemelemente (z. B. Ziele, Hindernisse, Ideen) berücksichtigt werden können."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.huettner-therapie-beratung.de/bilder/bild_aufstellung.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Systemische Strukturaufstellung","abstract") </script>

!Systemische Strukturaufstellung
<<tiddler [[Systemische Strukturaufstellung##Overview]]>>

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Personen (Repräsentanten) übernehmen dabei die Rolle der einzelnen Systemanteile und werden so aufgestellt, wie sie aus Sicht des Aufstellers der Position im [[System]] entsprechen. 
Durch die Empfindungen der aufgestellten Personen kann so ein Verständnis für das gesamte [[System]] entstehen. Durch  [[Veränderungen|Organizational Change]] im aufgestellten System können Lösungen zu Problemsituationen ausprobiert und erarbeitet werden.

!Debriefing

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.innovationcluster.ca/images/services-how-we-can-help-splash.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.strukturaufstellungen.info/images/z.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.coaching-scholler.at/typo3temp/pics/85b85cd64a.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===


!See also
* [[Agile Coaching]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Coaching]<<tiddlerList tags:"coaching,-newTemplate" header:"Übungen Coaching">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[Playmobil-Aufstellungsfiguren| http://www.aufstellungsfiguren.de/playmobil.php]]
* [[Systemic Constellations at Agile Coach Camp Montreal| http://www.infoq.com/news/2011/07/agile-coach-camp-montreal]]
* http://de.wikipedia.org/wiki/Systemische_Strukturaufstellung
* http://www.ras-training.de/neu/coaching/aufstellungen/strukturaufstellungen.htm
* http://www.strukturaufstellungen.info/

!Literatur:
* [[Insa Sparrer, Systemische Strukturaufstellungen: Theorie und Praxis, Carl-Auer-Systeme, 2006| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FSystemische-Strukturaufstellungen-Theorie-Insa-Sparrer%2Fdp%2F3896705334%2F&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]
* [[Insa Sparrer, Wunder, Lösung und System. Lösungsfokussierte Systemische Strukturaufstellungen für Therapie und Organisationsberatung, Carl-Auer-Systeme, 2006| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FL%25C3%25B6sungsfokussierte-Systemische-Strukturaufstellungen-Therapie-Organisationsberatung%2Fdp%2F3896704583%2F&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]
* [[Helmut J. Wresnik, Von Bild zu Bild ...: Arbeiten mit Systemischen Strukturaufstellungen, Books on Demand Gmbh, 2006| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FVon-Bild-Systemischen-Strukturaufstellungen%2Fdp%2F383346190X%2F&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]
<data>{"abstract":"[[Szenenbild]], eine Übung, die hilft, sich zunächst Wortpaare, aber später auch komplexere Zusammenhänge zu merken, ist das bildhafte Vorstellen der Begriffe in Szenen. Ohne Übung aber geht es nicht."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://www.bbk-bayern.de/obf/archiv/2007_wbdS/Logbuch/04_5_Kulisse.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Szenenbild","abstract") </script>

!Szenenbild
<script> return "<<tiddler [[Szenenbild##Overview]]>>" </script> 
Die beiden Grundprinzipien mnemomotechnischen Denkens sind immer die selben:
* Wir versuchen, jede wichtige [[Information]] in ein lebendiges Bild umzusetzen („kreatives Visualisieren”) und
* es phantasievoll mit einem anderen Bild zu verknüpfen („kreatives Assoziieren”).
Die Übung [[Szenenbild]] verdeutlicht diese Prinzipien und trainiert zugleich die Vorgehensweise:

!Objectives
* bildhafte Vorstellung von Begriffen

!Timing
10min

!Audience
Group / Individual


!Materials
* 

!Procedure
Bitte entwickeln Sie je ein [[Szenenbild]], in dem die paarweise zusammen gehörigen Begriffe eine Bedeutung haben!
* Taschentuch - Werkzeugkasten
* Nadel - Trompete
* Pferd - Rock
* Hut - Hufeisen
* Schüssel - Fensterrahmen
* Lokomotive - Zebrastreifen
* Taschentuch - Werkzeugkasten

Was „sehen” Sie z.B. für ein Bild bei Nennung des Begriffs „Taschentuch”? Ein Textil- oder ein Papiertaschentuch? Ein sauberes oder ein verschmutztes Taschentuch, ...?

Und was „sehen” Sie bei Nennung des Begriffs „Werkzeugkasten”? Einen aus Kunststoff oder einen aus Metall? Einen nagelneuen oder einen seit 20 Jahren genutzten Werkzeugkasten, ...?

Ein [[Szenenbild|Szenenbilder]] stellt eine Verknüpfung zwischen den beiden Bildern dar. Eine Möglichkeit könnte z.B. sein: //„Mit einem blütenweißen ~Damast-Taschentuch putze ich einen total verdreckten Werkzeugkasten aus.”//

Vielleicht schauert es Ihnen bei dieser Assoziation, aber: Je absurder, je schrecklicher, je verrückter Ihre Verknüpfung ist, desto markanter wird die Erinnerungsspur, desto leichter werden Sie sich später daran erinnern!

Und nachdem Sie sich Ihr jeweiliges [[Szenenbild]] entwickelt haben, versuchen Sie bitte, es noch einmal von beiden Seiten aufzubauen.
Zum obigen Beispiel heißt das, dass Sie zunächst das Taschentuch „sehen” und dann auch den Werkzeugkasten „entdecken” bzw. dass Sie zunächst den Werkzeugkasten „sehen” und dann auch das Taschentuch „entdecken”.

Um auch mit den anderen Bilderpaaren nur Erfolgserlebnisse zu haben, noch ein Tipp: „Verstecken” Sie nicht einen Gegenstand in den anderen, also legen Sie z.B. nicht das Taschentuch in den Werkzeugkasten und klappen Sie ihn dann zu! Es könnte sein, dass Sie bei Aufruf von „Werkzeugkasten” zwar diesen „sehen”, dann nicht aber auch das Taschentuch!

Die obige Aufgabe stellt eine Einstiegsübung dar. Weitere, im Schwierigkeitsgrad gesteigerte Übungen sind die Grundlage für generell leichteres Einprägen, egal ob es sich um ansonsten schwierig zu lernende ~Fach-Informationen, um Vokabeln oder um fremdsprachige Fachbegriffe, um beabsichtigte Aktivitäten, um Zahlen oder z.B. um die Stichworte einer frei vorzutragenden Rede handelt.


!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Gedaechnistraining]<<tiddlerList tags:"mnemonic,-newTemplate" header:"Übungen Gedaechnistraining">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* 
//synonym://
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview
With the [[TOWS Matrix]] you develop strategic options from an external-internal analysis. TOWS Analysis is a variant of the classic business tool, [[SWOT Analysis|SWOT Analyse]]. TOWS and SWOT are acronyms for different arrangements of the words //Strengths, Weaknesses, Opportunities// and //Threats//. 

!TOWS Matrix
<<tiddler [[TOWS Matrix##Overview]]>>
By analyzing the external environment (threats and opportunities), and your internal environment (weaknesses and strengths), you can use these techniques to think about the strategy of your whole organization, a department or a team. You can also use them to think about a process, a marketing campaign, or even your own skills and experience.

At a practical level, the only difference between TOWS and SWOT is that TOWS emphasizes the external environment whilst SWOT emphasizes the internal environment. In both cases, this analysis results in a SWOT (or TOWS) Matrix like the one shown below:

{{center{
|{{medium{''S''}}} Strengths Satisfaction |{{medium{''O''}}} Opportunities Chancen|
|{{medium{''W''}}} Weaknesses Schwächen   |{{medium{''T''}}} Threats Gefahren     |
}}}

!Identifying Strategic Options
SWOT or TOWS analysis helps you get a better understanding of the strategic choices that you face. (Remember that "strategy" is the art of determining how you'll "win" in business and life.) It helps you ask, and answer, the following questions: How do you:
* Make the most of your strengths?
* Circumvent your weaknesses?
* Capitalize on your opportunities?
* Manage your threats?

A next step of analysis, usually associated with the externally-focused TOWS Matrix, helps you think about the options that you could pursue. To do this you match external opportunities and threats with your internal strengths and weaknesses, as illustrated in the matrix below:

{{center{ ''TOWS Strategic Alternatives Matrix''
|	|''External Opportunities (O)''<br>1.<br>2.<br>3.<br>4. |''External Threats (T)''<br>1.<br>2.<br>3.<br>4. |
|''Internal Strengths (S)''<br>1.<br>2.<br>3.<br>4. | ''SO''<br>//"~Maxi-Maxi" Strategy//<br>Strategies that use strengths to maximize opportunities. | ''ST''<br>//"~Maxi-Mini" Strategy//<br>Strategies that use strengths to minimize threats. |
|''Internal Weaknesses (W)''<br>1.<br>2.<br>3.<br>4. | ''WO''<br>//"~Mini-Maxi" Strategy//<br>Strategies that minimize weaknesses by taking advantage of opportunities. | ''WT''<br>//"~Mini-Mini" Strategy//<br>Strategies that minimize weaknesses and avoid threats. |
}}}


This helps you identify strategic alternatives that address the following additional questions:
* Strengths and Opportunities (SO) – How can you use your strengths to take advantage of the opportunities?
* Strengths and Threats (ST) – How can you take advantage of your strengths to avoid real and potential threats?
* Weaknesses and Opportunities (WO) – How can you use your opportunities to overcome the weaknesses you are experiencing?
* Weaknesses and Threats (WT) – How can you minimize your weaknesses and avoid threats?

!Using the Tool
''Step 1:'' Print off the [[free SWOT Worksheet|http://www.mindtools.com/pages/article/worksheets/SWOTAnalysisDownload.htm]] and perform a TOWS/SWOT analysis, recording your findings in the space provided. This helps you understand what your strengths and weaknesses are, as well as identifying the opportunities and threats that you should be looking at.

''Step 2:'' Print off the [[free TOWS Strategic Options Worksheet|http://www.mindtools.com/pages/article/worksheets/TOWSAnalysisDownload.htm]], and copy the key conclusions from the SWOT Worksheet into the area provided (shaded in blue).
''Step 3:'' For each combination of internal and external environmental factors, consider how you can use them to create good strategic options:
* Strengths and Opportunities (SO) – How can you use your strengths to take advantage of these opportunities?
* Strengths and Threats (ST) – How can you take advantage of your strengths to avoid real and potential threats?
* Weaknesses and Opportunities (WO) – How can you use your opportunities to overcome the weaknesses you are experiencing?
* Weaknesses and Threats (WT) – How can you minimize your weaknesses and avoid threats?

{{groupbox{''Note:''
The WT quadrant – weaknesses and threats – is concerned with defensive strategies. Put these into place to protect yourself from loss, however don't rely on them to create success.}}}

The options you identify are your strategic alternatives, and these can be listed in the appropriate quadrant of the TOWS worksheet.

{{groupbox{''Tip:''
When you have many factors to consider, it may be helpful to construct a matrix to match individual strengths and weaknesses to the individual opportunities and threats you've identified. To do this, you can construct a matrix such as the one below for each quadrant (SO, ST, WO, and WT).

{{center{
| ''SO''<br>''Matrix'' | S1 | S2 | S3 | S4 |
|O1 | | | | |
|O2 | | | | |
|O3 | | | | |
|O4 | | | | |
}}}

This helps you analyze in more depth options that hold the greatest promise. Note any new alternatives you identify on the TOWS Strategic Alternatives worksheet. }}}

''Step 4:'' Evaluate the options you've generated, and identify the ones that give the greatest benefit, and that best achieve the mission and vision of your organization. Add these to the other strategic options that you're considering.

{{groupbox{''Tip:''
See the [[Mind Tools Strategy|http://www.mindtools.com/pages/main/newMN_STR.htm]] and [[Creativity Sections|http://www.mindtools.com/pages/main/newMN_CT.htm]] for other useful techniques for understanding your environment, and analyzing your strategic options. And see [[Problem Solving and Decision Making Sections|Games for Problem Solving]] for techniques for understanding these options in more detail, and deciding between them.}}}

{{groupbox{''Key Points:''
The TOWS Matrix is a relatively simple tool for generating strategic options. By using it, you can look intelligently at how you can best take advantage of the opportunities open to you, at the same time that you minimize the impact of weaknesses and protect yourself against threats.

Used after detailed analysis of your threats, opportunities, strength and weaknesses, it helps you consider how to use the external environment to your strategic advantage, and so identify some of the strategic options available to you. }}}


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing



/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Using the TOWS Matrix| http://www.mindtools.com/pages/article/newSTR_89.htm]]
/***
|Name|TWUpdatePlugin|
|Source|http://www.dcubed.ca/twupdate.js|
|Version|0.2|
|Author|[[TomOtvos]]|
|License||
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description|Updates TiddlyWiki core to the next release (download from http://www.TiddlyWiki.com)|
***/

//{{{

version.extensions.twupdate = {major: 0, minor: 2, revision: 0, date: new Date(2006,3,13,0,0,0,0), source: ""};

config.macros.twupdate = { 
	label: "update",
	sourceUrl: "http://www.tiddlywiki.com/empty.html", 
	lingo: {
		prompt: "Update this TiddlyWiki from TiddlyWiki.com", 
		warning: "Are you sure you want to update this document with the latest version of TiddlyWiki?\n\nIf you want to continue, your document will first be saved with a backup.",
		success: "Update was successful. Click on 'OK' to reload the document",
		errNoHttp: "Unable to allocate an HTTP request object for the update",
		progressLoading: "Getting update from TiddlyWiki.com...",
		progressLoadSuccess: "File successfully loaded",
		progressLoadFailure: "File was not loaded successfully (%0)",
		progressMerging: "Merging with existing document..."
	}
}

config.macros.twupdate.handler = function(place)
{
	if(!readOnly)
		createTiddlyButton(place, this.label, this.prompt, this.onClick, null, null, null);
}

config.macros.twupdate.onClick = function(e)
{
	if (!confirm(config.macros.twupdate.lingo.warning)) return;

	try {
		// force a save with backup
		var saveBackups = config.options.chkSaveBackups;
		config.options.chkSaveBackups = true;
		saveChanges();
		config.options.chkSaveBackups = saveBackups;
		
		var ajax = new AjaxHelper();
		displayMessage(config.macros.twupdate.lingo.progressLoading);
		ajax.getText(config.macros.twupdate.sourceUrl, config.macros.twupdate.performUpdate);		
	}
	catch (e) {
		alert(e);
	}

	return false;
}

config.macros.twupdate.performUpdate = function(emptyHtml, status, statusText)
{
	// note that this is begin called from a callback from an event handler, so
	// "this" is most definitely not defined!
	
	if (status == 200)
		displayMessage(config.macros.twupdate.lingo.progressLoadSuccess);
	else {
		displayMessage(config.macros.twupdate.lingo.progressLoadFailure.format([statusText]));
		return;
	}
	displayMessage(config.macros.twupdate.lingo.progressMerging);
	
	// the bulk of this is cribbed from saveChanges()...
	var originalPath = document.location.toString();
	// Check we were loaded from a file URL
	if (originalPath.substr(0,5) != "file:") {
		alert(config.messages.notFileUrlError);
		if (store.tiddlerExists(config.messages.saveInstructions))
			displayTiddler(null,config.messages.saveInstructions);
		return;
	}
	var localPath = getLocalPath(originalPath);

	// Locate the storeArea div's
	var posOpeningDiv = emptyHtml.indexOf(startSaveArea);
	var posClosingDiv = emptyHtml.lastIndexOf(endSaveArea);
	if ((posOpeningDiv == -1) || (posClosingDiv == -1)) {
		alert(config.messages.invalidFileError.format(['empty.html']));
		return;
	}

	// Save new file
	var revised = emptyHtml.substr(0,posOpeningDiv + startSaveArea.length) + 
				convertUnicodeToUTF8(allTiddlersAsHtml()) + "\n\t\t" +
				emptyHtml.substr(posClosingDiv);
	var newSiteTitle = convertUnicodeToUTF8((wikifyPlain("SiteTitle") + " - " + wikifyPlain("SiteSubtitle")).htmlEncode());
	revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
	revised = revised.replaceChunk("<!--PRE-HEAD-START--"+">","<!--PRE-HEAD-END--"+">","\n" + store.getTiddlerText("MarkupPreHead","") + "\n");
	revised = revised.replaceChunk("<!--POST-HEAD-START--"+">","<!--POST-HEAD-END--"+">","\n" + store.getTiddlerText("MarkupPostHead","") + "\n");
	revised = revised.replaceChunk("<!--PRE-BODY-START--"+">","<!--PRE-BODY-END--"+">","\n" + store.getTiddlerText("MarkupPreBody","") + "\n");
	revised = revised.replaceChunk("<!--POST-BODY-START--"+">","<!--POST-BODY-END--"+">","\n" + store.getTiddlerText("MarkupPostBody","") + "\n");
	var save = saveFile(localPath, revised);
	if (save) {
		displayMessage(config.messages.mainSaved, "file://" + localPath);
		store.setDirty(false);
		alert(config.macros.twupdate.lingo.success);
		document.location.reload();
	}
	else
		alert(config.messages.mainFailed);
}

function AjaxHelper()
{
	this.http = null;
	
	try
	{
		this.http = new XMLHttpRequest()
	}
	
	catch(e)
	{
		// if we don't get an internal object, try allocating it using ActiveX, with successive
		// fallbacks to earlier MSXML versions as necessary
		try
		{
			this.http = new ActiveXObject("Msxml2.XMLHTTP.4.0")
		} 
		catch(e) 
		{
			try
			{
				this.http = new ActiveXObject("MSXML2.XMLHTTP")
			} 
			catch(e) 
			{
				try
				{
					this.http = new ActiveXObject("Microsoft.XMLHTTP")
				} 
				catch(e) 
				{
					this.http = null
				}
			}
		}
	}
		
	if (!this.http) throw 'Unable to allocate an HTTP request object';
}

AjaxHelper.prototype.getText = function(url, callback, async, force)
{
	if (!this.http) return;
	if (async == undefined) async = true;
	if (force == undefined) force = false;
	// ??? right now, we are not handling "forced" requests
	this._request("GET", url, callback, async, true, false);
}

AjaxHelper.prototype.getXML = function(url, callback, async, force)
{
	if (!this.http) return;
	if (async == undefined) async = true;
	if (force == undefined) force = false;
	// ??? right now, we are not handling "forced" requests
	this._request("GET", url, callback, async, true, true);
}

AjaxHelper.prototype.getHead = function(url, callback, async, force)
{
	if (!this.http) return;
	if (async == undefined) async = true;
	if (force == undefined) force = false;
	// ??? right now, we are not handling "forced" requests
	this._request("HEAD", url, callback, async, false, false);
}

AjaxHelper.prototype.abort = function()
{
	if (this.http) this.http.abort();
}

AjaxHelper.prototype.setRequestHeader = function(name, value)
{
	if (this.http) this.http.setRequestHeader(name, value);
}

AjaxHelper.prototype._request = function(method, url, callback, async, hasResponse, hasResponseXML)
{
	if (!this.http) return;
	
	// get reference to request object so we can use it in closure
	var xmlHttp = this.http, helper = this;
	xmlHttp.onreadystatechange = function()
	{
		if (!async) return;
		if (xmlHttp.readyState == 4)
			callback((hasResponse ? (hasResponseXML ? xmlHttp.responseXML : xmlHttp.responseText) : null), xmlHttp.status, xmlHttp.statusText, helper._parsedResponseHeaders());
	}
	
	try {
		// need some cross-domain privileges for Firefox
		try {
			netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
		} 
		catch (e) 
		{
		}
		
		xmlHttp.open(method, url, async);
		xmlHttp.send(null);
		if (!async) callback((hasResponse ? (hasResponseXML ? xmlHttp.responseXML : xmlHttp.responseText) : null), xmlHttp.status, xmlHttp.statusText, this._parsedResponseHeaders());
	}
	
	catch (e)
	{
		alert(e);
	}
}

AjaxHelper.prototype._parsedResponseHeaders = function()
{
	if (this.http) {
		var headersArray = new Array();
		var headers = this.http.getAllResponseHeaders().split("\n");
		for (var i = 0; i < headers.length; i++) {
			var h = headers[i].trim();
			if (h.length == 0) continue;
			// value can have ':' so do not use split here!
			var sep = h.indexOf(':');
			headersArray[h.substring(0, sep).trim()] = h.substr(sep + 1).trim();
		}
		return headersArray;
	}
	else
		return null;
}

//}}}
<<list all>>
/***
|Name|TabEditPlugin|
|Author|[[SaqImtiaz]]|
|Source|http://tw.lewcid.org/#TabEditPlugin|
|Version|0.32|
|Requires|~TW2.x|
|Type|plugin|
|~CoreVersion|2.x|
|Description|Makes editing of tabs easier. Double click a tab to edit the source tiddler. Double click outside the tabset to edit the containing tiddler.|
!Description
Makes editing of tabs easier.

!Usage
*Double click a tab to edit the source tiddler
*Double click outside the tabset to edit the containing tiddler. 

!Demo
TestTabs

!History
*28-04-06, v0.32 - fixed previous bug fix!
*27-04-06, v0.31 - fixed conflicts with tabs created using PartTiddler.
*26-04-06, v0.30 - first public release

***/

//{{{

//tab on double click event handler
Story.prototype.onTabDblClick = function(e){
        if (!e) var e = window.event;
        var theTarget = resolveTarget(e);
        var title= this.getAttribute("source");
        if ((version.extensions.PartTiddlerPlugin)&&(title.indexOf("/")!=-1))
                 {if (!oldFetchTiddler.call(this, [title]))
                              {return false;}}   
        story.displayTiddler(theTarget,title,2,false,null)
        e.cancelBubble = true;
        if (e.stopPropagation) e.stopPropagation();
        return false;
        }

config.macros.tabs.switchTab = function(tabset,tab)
{
	var cookie = tabset.getAttribute("cookie");
	var theTab = null
	var nodes = tabset.childNodes;
	for(var t=0; t<nodes.length; t++)
		if(nodes[t].getAttribute && nodes[t].getAttribute("tab") == tab)
			{
			theTab = nodes[t];
			theTab.className = "tab tabSelected";
			}
		else
			nodes[t].className = "tab tabUnselected"
	if(theTab)
		{
		if(tabset.nextSibling && tabset.nextSibling.className == "tabContents")
			tabset.parentNode.removeChild(tabset.nextSibling);
		var tabContent = createTiddlyElement(null,"div",null,"tabContents",null);
		tabset.parentNode.insertBefore(tabContent,tabset.nextSibling);
		var contentTitle = theTab.getAttribute("content");

                //set source attribute equal to title of tiddler displayed in tab
		tabContent.setAttribute("source",contentTitle);
		//add dbl click event
		tabContent.ondblclick = story.onTabDblClick;

		wikify(store.getTiddlerText(contentTitle),tabContent,null,store.getTiddler(contentTitle));
		if(cookie)
			{
			config.options[cookie] = tab;
			saveOptionCookie(cookie);
			}
		}
}

//}}}
<<tabs txtMoreTab "Missing" "Missing tiddlers" TabMoreMissing "Orphans" "Orphaned tiddlers" TabMoreOrphans "Shadowed" "Shadowed tiddlers" TabMoreShadowed>>
<<list missing>>
<<list orphans>>
<<list shadowed>>
<<allTags excludeLists>>
/***
|Name|TableOfContentsPlugin|
|Source|http://www.TiddlyTools.com/#TableOfContentsPlugin|
|Documentation|http://www.TiddlyTools.com/#TableOfContentsPluginInfo|
|Version|2.4.2|
|Author|[[EricShulman]] - 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|replace the standard tabbed contents list with a scrolling listbox|
When there are many tiddlers in a document, the standard 'tabbed list of tiddlers' in the right-hand sidebar can become very long, occupying a lot of page space and requiring a lot scrolling in order to locate and select a tiddler.  The TableOfContentsPlugin addresses this problem by replacing the standard tabbed list display with a single listbox/droplist control that uses a very small amount of page space, regardless of the number of tiddlers in the document.
!!!!!Documentation
>see [[TableOfContentsPluginInfo]]
!!!!!Configuration
listbox shows <<option txtTOCListSize>> lines, sorted by <<option txtTOCSortBy>>
<<option chkTOCIncludeHidden>> include tiddlers tagged with <<tag excludeLists>> in listbox
!!!!!Revisions
<<<
2008.04.07 [2.4.2] added "Configuration" section and removed config.options.chkTOCShow and onClickTOCMenu() handler
2008.01.08 [*.*.*] plugin size reduction: documentation moved to …Info tiddler
2007.12.25 [2.4.1] code cleanup and performance improvements
|please see [[TableOfContentsPluginInfo]] for additional revision details|
2005.06.13 [1.0.0] Initial Release (as adaptation - predates TiddlyWiki plugin architecture!!)
<<<
!!!!!Code
***/
//{{{
version.extensions.tableOfContents = {major: 2, minor: 4, revision: 1, date: new Date(2007,12,25)};
//}}}

// // 1.2.x compatibility
//{{{
if (!window.story) window.story=window;
if (!store.getTiddler) store.getTiddler=function(title){return store.tiddlers[title]}
if (!store.addTiddler) store.addTiddler=function(tiddler){store.tiddlers[tiddler.title]=tiddler}
if (!store.deleteTiddler) store.deleteTiddler=function(title){delete store.tiddlers[title]}
//}}}

//{{{
// define defaults for cookie-based option values
if (config.options.txtTOCSortBy==undefined)	config.options.txtTOCSortBy="modified";
if (config.options.txtTOCListSize==undefined)	config.options.txtTOCListSize=19;
if (config.options.chkTOCIncludeHidden==undefined)	config.options.chkTOCIncludeHidden=false;

// define macro "tableOfContents" to render controls
config.macros.tableOfContents = { label: "contents" };
config.macros.tableOfContents.cmdMax=8; // index of maximum command item

config.macros.tableOfContents.css = '\
.TOC { padding:0.5em 1em 0.5em 1em; }\
.TOC a { padding:0em 0.25em 0em 0.25em; color:inherit; }\
.TOCList { width: 100%; font-size:8pt; margin:0em; }\
';

config.macros.tableOfContents.html = '\
<div style="text-align:right">\
	<span style="float:left">%label%</span>\
	<a href="JavaScript:;" id="TOCSmaller" style="display:inline"\
		onclick="resizeTOC(this)" title="reduce list size">&#150;</a>\
	<a href="JavaScript:;" id="TOCLarger"style="display:inline"\
		onclick="resizeTOC(this)" title="increase list size">+</a>\
	<a href="JavaScript:;" id="TOCMaximize"style="display:inline"\
		onclick="resizeTOC(this)" title="maximize/restore list size">=</a>\
</div>\
';

config.macros.tableOfContents.handler = function(place,macroName,params) { 
	var parsedParams = new Array();
	parsedParams['label']=this.label;
	parsedParams['inline']=false;
	while (params.length>0) {
		if (params[0]=="label:none") parsedParams['label']="";
		else if (params[0].substr(0,6)=="label:") parsedParams['label']=params[0].substr(6);
		if (params[0].substr(0,7)=="prompt:") parsedParams['prompt']=params[0].substr(7);
		if (params[0].substr(0,8)=="padding:")parsedParams['padding']=params[0].substr(8);
		if (params[0].substr(0,7)=="margin:") parsedParams['margin']=params[0].substr(7);
		if (params[0].substr(0,5)=="sort:")   parsedParams['sortby']=params[0].substr(5);
		if (params[0].substr(0,5)=="date:")   parsedParams['date']=params[0].substr(5);
		if ((params[0]=="size:auto")||(params[0]=="size:0")) parsedParams['autosize']=true;
		else if (params[0] && (params[0].substr(0,5)=="size:")) parsedParams['requestedSize']=params[0].substr(5);
		if (params[0].substr(0,6)=="width:") parsedParams['width']=params[0].substr(6);
		if (params[0]=="hidelist") parsedParams['hidelist']=true;
		if (params[0]=="inline")   parsedParams['inline']=true;
		if (params[0]=="-title")   parsedParams['hide_title']=true;
		if (params[0]=="-date")    parsedParams['hide_date']=true;
		if (params[0]=="-author")  parsedParams['hide_author']=true;
		if (params[0]=="-creator") parsedParams['hide_creator']=true;
		if (params[0]=="-tags")    parsedParams['hide_tags']=true;
		if (params[0]=="-missing") parsedParams['hide_missing']=true;
		if (params[0]=="-orphans") parsedParams['hide_orphans']=true;
		if (params[0]=="-shadows") parsedParams['hide_shadows']=true;
		params.shift(); 
	}
	setStylesheet(config.macros.tableOfContents.css,"tableOfContents");
	var newTOC=createTiddlyElement(place,parsedParams['inline']?"span":"div",null,"TOC",null)
	if (parsedParams['margin'])	{ newTOC.style.margin=parsedParams['margin']; }
	if (parsedParams['padding'])	{ newTOC.style.padding=parsedParams['padding']; }
	if (parsedParams['label']!="") newTOC.innerHTML=config.macros.tableOfContents.html.replace(/%label%/,parsedParams['label']);
	var newTOCList=createTOCList(newTOC,parsedParams)
	refreshTOCList(newTOCList);
	store.addNotification(null,reloadTOCLists);	// reload listbox after every tiddler change
}

// IE needs explicit global scoping for functions/vars called from browser events
window.onChangeTOCList=onChangeTOCList;
window.onClickTOCList=onClickTOCList;
window.onDblClickTOCList=onDblClickTOCList;
window.reloadTOCLists=reloadTOCLists;
window.refreshTOCList=refreshTOCList;
window.resizeTOC=resizeTOC;
	
function createTOCList(place,params) {
	var list = createTiddlyElement(place,"select",null,"TOCList",params['prompt'])
	list.params=params;
	list.onchange=onChangeTOCList;
	list.onclick=onClickTOCList;
	list.ondblclick=onDblClickTOCList;
	list.onkeyup=onKeyUpTOCList;
	list.sortBy=config.options.txtTOCSortBy;
	list.dateFormat="DD MMM YYYY";
	list.requestedSize=config.options.txtTOCListSize;
	list.expandall=false;
	list.cmdMax=config.macros.tableOfContents.cmdMax;
	if (params['hide_title'])   list.cmdMax--;
	if (params['hide_date'])    list.cmdMax--;
	if (params['hide_author'])  list.cmdMax--;
	if (params['hide_creator']) list.cmdMax--;
	if (params['hide_tags'])    list.cmdMax--;
	if (params['hide_missing']) list.cmdMax--;
	if (params['hide_orphans']) list.cmdMax--;
	if (params['hide_shadows']) list.cmdMax--;
	if (params['sortby'])       { list.sortBy=params['sortby']; list.noSortCookie=true; }
	if (params['date'])         { list.dateFormat=params['date']; }
	if (params['autosize'])     { list.autosize=true; list.noSizeCookie=true; }
	if (params['requestedSize']){ list.requestedSize=params['requestedSize']; list.noSizeCookie=true; }
	if (params['width'])        { list.style.width=params['width']; }
	if (params['hidelist'])     { list.style.display ="none" ; list.noShowCookie=true; }
	if (params['expandall'])    { list.expandall=true; }
	return list;
}

function onChangeTOCList() {
	var thisTiddler=this.options[this.selectedIndex].value;
	if ((this.size==1)&&(thisTiddler!='')&&(this.selectedIndex>this.cmdMax))
		story.displayTiddler(null,thisTiddler,1);
	refreshTOCList(this);
	return false;
}
function onClickTOCList(e) {
	if (!e) var e = window.event;
	if (this.size==1) return; // don't toggle display for droplist
	if (e.shiftKey) { this.expandall=!this.expandall; refreshTOCList(this);}
	e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation();
	return true;
}
function onDblClickTOCList(e) {
	if (!e) var e = window.event;
	var thisTiddler=this.options[this.selectedIndex].value;
	if ((thisTiddler!='')&&(this.selectedIndex>this.cmdMax))
		story.displayTiddler(null,thisTiddler,1);
	e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation();
	return false;
}
function onKeyUpTOCList(e) {
	if (!e) var e = window.event;
	if (e.keyCode!=13) return true;
	var thisTiddler=this.options[this.selectedIndex].value;
	if ((thisTiddler!='')&&(this.selectedIndex>this.cmdMax))
		story.displayTiddler(null,thisTiddler,1);
	e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation();
	return false;
}
function reloadTOCLists() {
	var all=document.all? document.all.tags("select") : document.getElementsByTagName("select");
	for (var i=0; i<all.length; i++)
		if (all[i].className=="TOCList")
			{ all[i].selectedIndex=-1; refreshTOCList(all[i]); }
}
 
function refreshTOCList(list) {
	var selectedIndex = list.selectedIndex;
	if (selectedIndex==-1) selectedIndex=0;
	var sortBy = list.sortBy;
	var showHidden = config.options.chkTOCIncludeHidden && !(config.options.chkHttpReadOnly && readOnly);

	if (selectedIndex==0) sortBy=list.sortBy;	// "nnn tiddlers" heading - use previous sort order
	else if (selectedIndex<=list.cmdMax)sortBy=list.value;
	else { if (list.options[list.selectedIndex].value=='') expandTOC(list); return; }

	list.sortBy = sortBy; // save current sort order
	if (!list.noSortCookie) { config.options.txtTOCSortBy=sortBy; saveOptionCookie("txtTOCSortBy"); }

	// get the list of tiddlers
	var tiddlers = [];
	switch (sortBy) {
		case "missing":	tiddlers=store.getMissingLinks(); break;
		case "tags": tiddlers=store.getTags(); break;
		case "orphans":	tiddlers=store.getOrphans(); break;
		case "shadows": for (var t in config.shadowTiddlers) tiddlers.push(t); tiddlers.sort();	break;
		default: tiddlers=store.getTiddlers(sortBy=='creator'?'modifier':sortBy,showHidden?'':'excludeLists'); break;
	}

	// clear current listbox contents
	while (list.length > 0) { list.options[0] = null; }
	list.saved=null;

	// add heading and control items to list
	var i=0;
	var theHeading=tiddlers.length+' tiddlers:';
	if (sortBy=='missing') theHeading=tiddlers.length+' missing tiddlers:';
	if (sortBy=='orphans') theHeading=tiddlers.length+' orphaned tiddlers:';
	if (sortBy=='tags')    theHeading=tiddlers.length+' tags:';
	if (sortBy=='shadows') theHeading=tiddlers.length+' shadow tiddlers:';
	var indent=String.fromCharCode(160)+String.fromCharCode(160);
	var sel=">";
	list.options[i++]=new Option(theHeading,'');
	function headerOpt(txt,val) { return new Option(((sortBy==val)?sel:indent)+' ['+txt+']',val); }
	if (!list.params['hide_title'])   list.options[i++]=headerOpt('by title','title');
	if (!list.params['hide_date'])    list.options[i++]=headerOpt('by date','modified');
	if (!list.params['hide_author'])  list.options[i++]=headerOpt('by author','modifier');
	if (!list.params['hide_creator']) list.options[i++]=headerOpt('by creator','creator');
	if (!list.params['hide_tags'])    list.options[i++]=headerOpt('by tags','tags');
	if (!list.params['hide_missing']) list.options[i++]=headerOpt('missing','missing');
	if (!list.params['hide_orphans']) list.options[i++]=headerOpt('orphans','orphans');
	if (!list.params['hide_shadows']) list.options[i++]=headerOpt('shadows','shadows');
	// output the tiddler list
	switch(sortBy) {
		case "title":
			for (var t = 0; t < tiddlers.length; t++)
				list.options[i++] = new Option(tiddlers[t].title,tiddlers[t].title);
			break;
		case "modified":
		case "modifier":
		case "creator":
			if (sortBy=="modified") tiddlers.reverse(); // show newest first
			if (sortBy=="creator") { // sort by custom field with fallback value
				tiddlers.sort(function (a,b) {
					var v1=a.fields.creator||a.modifier;
					var v2=b.fields.creator||b.modifier;
					return (v1==v2)?0:(v1>v2?1:-1);
				});
			}
			var lastSection = "";
			for (var t = 0; t < tiddlers.length; t++){
				var tiddler = tiddlers[t];
				var theSection = "";
				var m=tiddler.modified;
				if (sortBy=="modified") theSection=m.getFullYear()+'.'+(m.getMonth()+1)+'.'+m.getDate();
				if (sortBy=="modifier") theSection = tiddler.modifier;
				if (sortBy=="creator") theSection=tiddler.fields['creator']||tiddler.modifier;
				if (theSection != lastSection) {
					lastSection = theSection;
					if (sortBy=="modified") theSection = m.formatString(list.dateFormat);
					list.options[i++] = new Option('+ '+theSection,"");
				}
				list.options[i++] = new Option(indent+indent+tiddler.title,tiddler.title);
			}
			expandTOC(list);
			break;
		case "tags":
			// tagged tiddlers, by tag
			var tagcount=0;
			var lastTag = null;
			for (var t = 0; t < tiddlers.length; t++) {  // actually a list of tags, not tiddlers… 
				var theTag = tiddlers[t][0]; var tid=store.getTiddler(theTag);
				if (tid && tid.isTagged('excludeLists')) continue; // skip excluded tags
				var temp = store.getTaggedTiddlers(theTag);
				var tagged=[]; for (var q=0; q<temp.length; q++) // hide excluded tiddlers
					if (!temp[q].isTagged('excludeLists')) tagged.push(temp[q]); 
				if (tagged.length) { tagcount++;
					list.options[i++]=new Option('+ '+theTag+" ("+tagged.length+")","");
					for(var r=0; r<tagged.length; r++)
						list.options[i++]=
							new Option(indent+indent+tagged[r].title,tagged[r].title);
				}
			}
			// count untagged tiddlers
			var temp = store.getTiddlers("title");
			var c=0; for (var r=0; r<temp.length;r++) if (!temp[r].tags.length) c++;
			// create 'pseudo-tag' listing untagged tiddlers (if any)
			if (c>0) {
				list.options[i++] = new Option("+ untagged ("+c+")","");
				for (var r=0; r<temp.length;r++) if (!temp[r].tags.length)
					list.options[i++] = new
						Option(indent+indent+temp[r].title,temp[r].title);
			}
			list.options[0].text=tagcount+' tags:';
			expandTOC(list);
			break;
		case "missing": case "orphans": case "shadows":
			for (var t = 0; t < tiddlers.length; t++)
				list.options[i++] = new Option(tiddlers[t],tiddlers[t]);
			break;
	}
	list.selectedIndex=selectedIndex; // select current control item
	list.size = (list.autosize)?list.options.length:list.requestedSize;
}

// show/hide branch of TOCList based on current selection
function expandTOC(list) {
	var selectedIndex = list.selectedIndex;
	if (selectedIndex==-1) selectedIndex=0;
	var sortBy = list.sortBy;

	// don't collapse/expand list for alpha-sorted "flatlist" TOC contents
	// or list control items
	if ((sortBy=="title")||(sortBy=="missing")||(sortBy=="orphans")||(sortBy=="shadows")) return;
	if ((selectedIndex>0)&&(selectedIndex<=list.cmdMax)) return;

	// get current selected text/value and cache the 
	// complete list.  Then clear the current list contents
	var theText = list.options[selectedIndex].text;
	var theValue = list.options[selectedIndex].value;
	if (!list.saved) {
		list.saved=new Array();
		for (var i=0;i<list.length;i++) list.saved[i]=list.options[i];
	}
	while (list.length > 0) { list.options[0] = null; }

	// put back heading items until item text matches current selected heading
	var i=0;
	for (var t=0; t<list.saved.length; t++) {
		var opt=list.saved[t];
		if (list.expandall||(opt.value=='')||(i<=list.cmdMax)) list.options[i++] = opt;
		if (opt.text==theText) break;
	}
	selectedIndex=i-1;	// this is the NEW index of the current selected heading
	// put back items with value!='' until value==''
	for ( t++; t<list.saved.length; t++) {
		var opt=list.saved[t];
		if (list.expandall||opt.value!='') list.options[i++] = opt;
		if (opt.value=='') break;
	}
	// put back remaining items with value==''
	for ( ; t<list.saved.length; t++) {
		var opt=list.saved[t];
		if (list.expandall||opt.value=='') list.options[i++] = opt;
	}
	list.selectedIndex = selectedIndex;
	list.size = (list.autosize)?list.options.length:list.requestedSize;
}

// these functions process clicks on the 'control links' that are displayed above the listbox
function getTOCListFromButton(which) {
	var list = null;
	switch (which.id) {
		case 'TOCMenu':
			var theSiblings = which.parentNode.parentNode.parentNode.childNodes;
			var thePlace=which.parentNode.parentNode.parentNode.parentNode.parentNode.id;
			break;
		case 'TOCSmaller': case 'TOCLarger': case 'TOCMaximize':
			var theSiblings = which.parentNode.parentNode.childNodes;
			var thePlace=which.parentNode.parentNode.parentNode.parentNode.id;
			break;
	}
	for (var k=0; k<theSiblings.length; k++)
		if (theSiblings[k].className=="TOCList") { list=theSiblings[k]; break; }
	return list;
}
function resizeTOC(which) {
	var list=getTOCListFromButton(which); if (!list) return;
	var size = list.size;
	if (list.style.display=="none")	// make sure list is visible
		if(config.options.chkAnimate) anim.startAnimating(new Slider(list,true,false,"none"));
		else list.style.display = "block" ;
	switch (which.id) {
		case 'TOCSmaller':	// decrease current listbox size
			if (list.autosize) { list.autosize=false; size=config.options.txtTOCListSize; }
			if (size==1)	break;
			size -= 1;	// shrink by one line
			list.requestedSize = list.size = size;
			break;
		case 'TOCLarger':	// increase current listbox size
			if (list.autosize) { list.autosize=false; size=config.options.txtTOCListSize; }
			if (size>=list.options.length)	break;
			size += 1;	// grow by one line
			list.requestedSize = list.size = size;
			break;
		case 'TOCMaximize':	// toggle autosize
			list.autosize  = (list.size!=list.options.length);
			list.size = (list.autosize)?list.options.length:list.requestedSize;
			break;
	}
	if (!list.noSizeCookie && !list.autosize)
		{ config.options.txtTOCListSize=size; saveOptionCookie("txtTOCListSize"); }
}
//}}}
/***
|''Name:''|TableSortingPlugin|
|''Description:''|Dynamically sort tables by clicking on column headers|
|''Author:''|Saq Imtiaz ( lewcid@gmail.com )|
|''Source:''|http://tw.lewcid.org/#TableSortingPlugin|
|''Code Repository:''|http://tw.lewcid.org/svn/plugins|
|''Version:''|2.03|
|''Date:''|24-09-2010|
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''~CoreVersion:''|2.2.3|
@@color:red;Mod by Tobias Beer! Refactored the refresh handler to allow triggering a refresh in other macros without refreshing the tiddler!@@
***/
//{{{
config.tableSorting = {
	
	darrow: "\u2193",
	uarrow: "\u2191",
	
	getText : function (o) {
		var p = o.cells[SORT_INDEX];
		return p.innerText || p.textContent || '';
	},

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

	stripe : function (e,i){
		var cl = ["oddRow","evenRow"];
		i&1? cl.reverse() : cl;
		removeClass(e,cl[1]);
		addClass(e,cl[0]);
	},

	sortNumber : function(v) {
		var x = parseFloat(this.getText(v).replace(/[^0-9.-]/g,''));
		return isNaN(x)? 0: x;
	},

	sortDate : function(v) {
		return Date.parse(this.getText(v));
	},

	sortAlpha : function(v) {
		return this.getText(v).toLowerCase();
	},

	sortFile : function(v) { 		
		var j, q = config.messages.sizeTemplates, s = this.getText(v);
		for (var i=0; i<q.length; i++) {
			if ((j = s.toLowerCase().indexOf(q[i].template.replace("%0\u00a0","").toLowerCase())) != -1)
				return q[i].unit * s.substr(0,j);
		}
		return parseFloat(s);
	},
	
	reSort : function(a,b){
		var c = config.tableSorting;
		var aa = c.fn(a);
		var bb = c.fn(b);
		return ((aa==bb)? 0 : ((aa<bb)? -1:1));
	},
	
	refresh : function(elem){
		var ts = elem.getElementsByTagName("TABLE");
		var c = config.tableSorting;
		for(var i=0;i<ts.length;i++){
			if(hasClass(ts[i],"sortable")){
				var x = null, rev, table = ts[i], thead = table.getElementsByTagName('thead')[0], headers = thead.rows[thead.rows.length-1].cells;
				for (var j=0; j<headers.length; j++){
					var h = headers[j];
					if (hasClass(h,"nosort"))
						continue;
					h.setAttribute("index",j);
					h.onclick = function(){c.sortTable(this); return false;};
					h.ondblclick = stopEvent;
					if(h.getElementsByTagName("span").length == 0)
						createTiddlyElement(h,"span",null,"hidden",c.uarrow); 
					if(x===null && hasClass(h,"autosort")) { 
						x = j;
						rev = hasClass(h,"reverse");
					}
				}
				if(x)
					c.sortTable(headers[x],rev);		
			}
		}
	}
};

Story.prototype.tSort_refreshTiddler = Story.prototype.refreshTiddler;
Story.prototype.refreshTiddler = function(title,template,force,customFields,defaultText){
	var elem = this.tSort_refreshTiddler.apply(this,arguments);
	if(elem)config.tableSorting.refresh(elem);
	return elem; 
};

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

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

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

config.macros.autosort={
	handler : function(place,m,p,w,pS){addClass(place,"autosort"+" "+pS);}
}
//}}}
/***
|Name|TableTagsPlugin |
|Version|1.3|
|Source|http://thePettersons.org/tiddlywiki.html#TableTagsPlugin |
|Author|[[PaulPetterson]] |
|Type|List Macro Extension |
|Requires|TiddlyWiki 2.0.0 or higher |
|~CoreVersion|2.0+|
|Description|Lists all tiddler with a given tag in a table format. Can specify the number of columns in the table.|

!Description
Lists all [[Tiddler]] with a given tag in a table format. Can specify the number of columns in the table.

!Sample Output
{{{<<tableTags systemConfig 4>>}}}
<<tableTags systemConfig 4>>

!Known issues
* Doesn't always display a good table if there are two many empty columns in the last row.

!Revision history
$History: PaulsNotepad.html $
 * 
 * ***************** Version 2 *****************
 * User: paulpet Date: 2/22/06 Time: 11:10a
 * Updated in $/PaulsNotepad3.0.root/PaulsNotepad3.0/Plugin/systemConfig

!Code
***/
//{{{
config.macros.tableTags = { 
handler: function(place,macroName,params) {
 var tag = params[0] ? params[0] : "all";
 var rows = params[1] ? params[1] : 3;
 var tagged = store.getTaggedTiddlers(params[0]);
 var tbl = createTiddlyElement(place,"table",null,null,"");
 var tb = createTiddlyElement( tbl, "tbody", null, null );
 var tr ;
 for(var r=0;r<tagged.length;r++) {
 if ( ( r % rows ) == 0 )
 tr = createTiddlyElement( tb, "tr", null, null, "");
 var td = createTiddlyElement(tr,"td",null,null,"");
 createTiddlyLink(td,tagged[r].title,true);
 }
}}
//}}}
/***
This plugin is released under the [[Creative Commons Attribution 2.5 License|http://creativecommons.org/licenses/by/2.5/]]
***/
/***
|Name|TagCloudPlugin|
|Source|http://www.TiddlyTools.com/#TagCloudPlugin|
|Version|1.7.0|
|Author|[[EricShulman]]|
|Original Author|Clint Checketts|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|present a 'cloud' of tags (or links) using proportional font display|
!Usage
<<<
{{{
<<cloud type action:... limit:... tag tag tag ...>>
<<cloud type action:... limit:... +TiddlerName>>
<<cloud type action:... limit:... -TiddlerName>>
<<cloud type action:... limit:... =tagvalue>>
}}}
where:
* //type// is a keyword, one of:
** ''tags'' (default) - displays a cloud of tags, based on frequency of use
** ''links'' - displays a cloud of tiddlers, based on number of links //from// each tiddler
** ''references'' - displays a cloud of tiddlers, based on number of links //to// each tiddler
* ''action:popup'' (default) - clicking a cloud item shows a popup with links to related tiddlers<br>//or//<br> ''action:goto'' - clicking a cloud item immediately opens the tiddler corresponding to that item
* ''limit:N'' (optional) - restricts the cloud display to only show the N most popular tags/links
* ''tag tag tag...'' (or ''title title title'' if ''links''/''references'' is used)<br>shows all tags/links in the document //except// for those listed as macro parameters
* ''+TiddlerName''<br>show only tags/links read from a space-separated, bracketed list stored in a separate tiddler.
* ''-TiddlerName''<br>show all tags/links //except// those read from a space-separated, bracketed list stored in a separate tiddler.
* ''=tagvalue'' (//only if type=''tags''//)<br>shows only tags that are themselves tagged with the indicated tag value (i.e., ~TagglyTagging usage)
//note: for backward-compatibility, you can also use the macro {{{<<tagCloud ...>>}}} in place of {{{<<cloud ...>>}}}//
<<<
!Examples
<<<
//all tags excluding  <<tag glossary systemConfig>>, <<tag excludeMissing>> and <<tag script>>//
{{{<<cloud glossary systemConfig excludeMissing script>>}}}
/% {{groupbox{<<cloud glossary systemConfig excludeMissing script>>}}} %/
//top 10 tags excluding  <<tag glossary systemConfig>>, <<tag excludeMissing>> and <<tag script>>//
{{{<<cloud limit:10 glossary systemConfig excludeMissing script>>}}}
/% {{groupbox{<<cloud limit:10 glossary systemConfig excludeMissing script>>}}} %/
//tags listed in// [[FavoriteTags]]
{{{<<cloud +FavoriteTags>>}}}
/% {{groupbox{<<cloud +FavoriteTags>>}}} %/
//tags NOT listed in// [[FavoriteTags]]
{{{<<cloud -FavoriteTags>>}}}
/% {{groupbox{<<cloud -FavoriteTags>>}}} %/
//links to tiddlers tagged with 'package'//
{{{<<cloud action:goto =package>>}}}
/% {{groupbox{<<cloud action:goto =package>>}}} %/
//top 20 most referenced tiddlers//
{{{<<cloud references limit:20>>}}}
/% {{groupbox{<<cloud references limit:20>>}}} %/
//top 20 tiddlers that contain the most links//
{{{<<cloud links limit:20>>}}}
/% {{groupbox{<<cloud links limit:20>>}}} %/
<<<
!Revisions
<<<
2009.07.17 [1.7.0] added {{{-TiddlerName}}} parameter to exclude tags that are listed in the indicated tiddler
2009.02.26 [1.6.0] added {{{action:...}}} parameter to apply popup vs. goto action when clicking cloud items
2009.02.05 [1.5.0] added ability to show links or back-links (references) instead of tags and renamed macro to {{{<<cloud>>}}} to reflect more generalized usage.
2008.12.16 [1.4.2] corrected group calculation to prevent 'group=0' error
2008.12.16 [1.4.1] revised tag filtering so excluded tags don't affect calculations
2008.12.15 [1.4.0] added {{{limit:...}}} parameter to restrict the number of tags displayed to the top N most popular
2008.11.15 [1.3.0] added {{{+TiddlerName}}} parameter to include only tags that are listed in the indicated tiddler
2008.09.05 [1.2.0] added '=tagname' parameter to include only tags that are themselves tagged with the specified value (i.e., ~TagglyTagging usage)
2008.07.03 [1.1.0] added 'segments' property to macro object.  Extensive code cleanup
<<<
!Code
***/
//{{{
version.extensions.TagCloudPlugin= {major: 1, minor: 7 , revision: 0, date: new Date(2009,7,17)};
//Originally created by Clint Checketts, contributions by Jonny Leroy and Eric Shulman
//Currently maintained and enhanced by Eric Shulman
//}}}
//{{{
config.macros.cloud = {
	tagstip: "%1 tiddlers tagged with '%0'",
	refslabel: " (%0 references)",
	refstip: "%1 tiddlers have links to '%0'",
	linkslabel: " (%0 links)",
	linkstip: "'%0' has links to %1 other tiddlers",
	groups: 9,
	init: function() {
		config.macros.tagCloud=config.macros.cloud; // for backward-compatibility
		config.shadowTiddlers.TagCloud='<<cloud>>';
		config.shadowTiddlers.StyleSheetTagCloud=
			'/*{{{*/\n'
			+'.tagCloud span {line-height: 3.5em; margin:3px;}\n'
			+'.tagCloud1{font-size: 80%;}\n'
			+'.tagCloud2{font-size: 100%;}\n'
			+'.tagCloud3{font-size: 120%;}\n'
			+'.tagCloud4{font-size: 140%;}\n'
			+'.tagCloud5{font-size: 160%;}\n'
			+'.tagCloud6{font-size: 180%;}\n'
			+'.tagCloud7{font-size: 200%;}\n'
			+'.tagCloud8{font-size: 220%;}\n'
			+'.tagCloud9{font-size: 240%;}\n'
			+'/*}}}*/\n';
		setStylesheet(store.getTiddlerText('StyleSheetTagCloud'),'tagCloudsStyles');
	},
	getLinks: function(tiddler) { // get list of links to existing tiddlers and shadows
		if (!tiddler.linksUpdated) tiddler.changed();
		var list=[]; for (var i=0; i<tiddler.links.length; i++) {
			var title=tiddler.links[i];
			if (store.isShadowTiddler(title)||store.tiddlerExists(title))
				list.push(title);
		}
		return list;
	},
	handler: function(place,macroName,params) {
		// unpack params
		var inc=[]; var ex=[]; var limit=0; var action='popup';
		var links=(params[0]&&params[0].toLowerCase()=='links'); if (links) params.shift();
		var refs=(params[0]&&params[0].toLowerCase()=='references'); if (refs) params.shift();
		if (params[0]&&params[0].substr(0,7).toLowerCase()=='action:')
			action=params.shift().substr(7).toLowerCase();
		if (params[0]&&params[0].substr(0,6).toLowerCase()=='limit:')
			limit=parseInt(params.shift().substr(6));
		while (params.length) {
			if (params[0].substr(0,1)=='+') { // read taglist from tiddler
				inc=inc.concat(store.getTiddlerText(params[0].substr(1),'').readBracketedList());
			} else if (params[0].substr(0,1)=='-') { // exclude taglist from tiddler
				ex=ex.concat(store.getTiddlerText(params[0].substr(1),'').readBracketedList());
			} else if (params[0].substr(0,1)=='=') { // get tag list using tagged tags
				var tagged=store.getTaggedTiddlers(params[0].substr(1));
				for (var t=0; t<tagged.length; t++) inc.push(tagged[t].title);
			} else ex.push(params[0]); // exclude params
			params.shift();
		}
		// get all items, include/exclude specific items
		var items=[];
		var list=(links||refs)?store.getTiddlers('title','excludeLists'):store.getTags();
		for (var t=0; t<list.length; t++) {
			var title=(links||refs)?list[t].title:list[t][0];
			if (links)	var count=this.getLinks(list[t]).length;
			else if (refs)	var count=store.getReferringTiddlers(title).length;
			else 		var count=list[t][1];
			if ((!inc.length||inc.contains(title))&&(!ex.length||!ex.contains(title)))
				items.push({ title:title, count:count });
		}
		if(!items.length) return;
		// sort by decending count, limit results (optional)
		items=items.sort(function(a,b){return(a.count==b.count)?0:(a.count>b.count?-1:1);});
		while (limit && items.length>limit) items.pop();
		// find min/max and group size
		var most=items[0].count;
		var least=items[items.length-1].count;
		var groupSize=(most-least+1)/this.groups;
		// sort by title and draw the cloud of items
		items=items.sort(function(a,b){return(a.title==b.title)?0:(a.title>b.title?1:-1);});
		var cloudWrapper = createTiddlyElement(place,'div',null,'tagCloud',null);
		for (var t=0; t<items.length; t++) {
			cloudWrapper.appendChild(document.createTextNode(' '));
			var group=Math.ceil((items[t].count-least)/groupSize)||1;
			var className='tagCloudtag tagCloud'+group;
			var tip=refs?this.refstip:links?this.linkstip:this.tagstip;
			tip=tip.format([items[t].title,items[t].count]);
			if (action=='goto') { // TAG/LINK/REFERENCES GOTO
				var btn=createTiddlyLink(cloudWrapper,items[t].title,true,className);
				btn.title=tip;
				btn.style.fontWeight='normal';
			} else if (!links&&!refs) { // TAG POPUP
				var btn=createTiddlyButton(cloudWrapper,items[t].title,tip,onClickTag,className);
				btn.setAttribute('tag',items[t].title);
			} else { // LINK/REFERENCES POPUP
				var btn=createTiddlyButton(cloudWrapper,items[t].title,tip,
					function(ev) { var e=ev||window.event; var cmt=config.macros.cloud;
						var popup = Popup.create(this);
						var title = this.getAttribute('tiddler');
						var count = this.getAttribute('count');
						var refs  = this.getAttribute('refs')=='T';
						var links = this.getAttribute('links')=='T';
						var label = (refs?cmt.refslabel:cmt.linkslabel).format([count]);
						createTiddlyLink(popup,title,true);
						createTiddlyText(popup,label);
						createTiddlyElement(popup,'hr');
						if (refs) {
							popup.setAttribute('tiddler',title);
							config.commands.references.handlePopup(popup,title);
						}
						if (links) {
							var tiddler = store.fetchTiddler(title);
							var links=config.macros.cloud.getLinks(tiddler);
							for(var i=0;i<links.length;i++)
								createTiddlyLink(createTiddlyElement(popup,'li'),
									links[i],true);
						}
						Popup.show();
						e.cancelBubble=true; if(e.stopPropagation) e.stopPropagation();
						return false;
					}, className);
				btn.setAttribute('tiddler',items[t].title);
				btn.setAttribute('count',items[t].count);
				btn.setAttribute('refs',refs?'T':'F');
				btn.setAttribute('links',links?'T':'F');
				btn.title=tip;
			}
		}
	}
};
//}}}
/***
|Name|TagDataBase|
|Source||
|Version|0.0.1|
|Author|[[MichaelTarnowski]]|
|License|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type||
|Requires||
|Overrides||
|Description||
***/
/***
|Name|TagGridPlugin|
|Source|http://www.TiddlyTools.com/#TagGridPlugin|
|Version|1.6.5|
|Author|[[EricShulman]]|
|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|Generate a cross-referenced grid of tiddlers, based on tag values|

!!!!!Usage
<<<
Specify which tags should be used for the columns and rows of the grid to ''see a particular cross-section'' of your document, or use //all// tags to ''get an instant 'birds-eye' overview of your entire document''.

Each grid cell contains a label with the number of tiddlers in that grid cell.  Click the number to ''show a popup of cross-indexed tiddler titles''.  Grid cells with no matching tiddlers contain a "-" (dash) that can be clicked to ''create new tiddlers automatically pre-tagged with that cell's combination of tags.''

To keep the grid display from getting very wide, the grid tags used as column headings are not initially displayed.  ''Click directly above the column to show/hide that heading'', or toggle all column headings at once by clicking the {{{>>>}}} symbol in the upper-left corner of the grid display.  Clicking a displayed row/column tag heading opens the tiddler whose title is that tag name.

The macro syntax to include a tag grid in your tiddler content is:
{{{<<tagGrid columntags exclude:tags rowtags exclude:tags startcolor endcolor open inline colorall sortrows sortcolumns>>}}}
where:

''rowtags/columntags'' are each:
* a ''quoted'' space-separated lists of tags: {{{"tag1 tag2 [[tag3 with spaces]] tag4 ..."}}}
* //or,// a tiddler name preceded by "+": {{{+TiddlerName}}} where the specified tiddler contains a space-separated list of tags (same format as DefaultTiddlers)
* //or,// a tiddler name preceded by "@": {{{@TiddlerName}}} to use the same tags as those that are tagging the specified tiddler (i.e., the tiddler is a representative example of the kind of tags you are interested in cross-indexing)
* //or,// a tag name preceded by "=": {{{=tagName}}} to use the group of tags that are themselves, in turn, tagged with the indicated tagName (i.e., useful when you have defined a 'meta-tag'/classification system, a.k.a. "TagglyTagging" techniques)
* //or,// keyword: {{{all}}} (use all tags)
* if only columntags are specified, rows display all tags by default
* if no parameters are provided, both rows and columns display all tags
''exclude:tag tag tag''
* This optional parameter can be placed immediately following the columntags and/or rowtags parameter to selectively omit certain tags from the grid display.  You can exclude several tags at once by enclosing the entire parameter in quotes, e.g.: {{{"exclude:tag tag tag"}}}  
''startcolor/endcolor''
* describes a ''color gradient'' where the grid cell background color is calculated as a combination of  the starting and ending colors, in proportion to the cell value
* colors are specified using 6-digit hex-coded RGB values (e.g., red="FF0000", green="00FF00", blue="0000FF")
* the cells with the lowest number use the starting background color
* the cells with the highest number use the ending background color
* if one or both color values are omitted, all cells have //transparent// backgrounds
''open''
* causes the grid column headings to be shown when the grid is initially displayed (you can hide all the column headings using the &lArr; link, or just toggle one heading by clicking //near// the tag text.  (Note: clicking //on// the tag text will open the tiddler with the same name as the tag.
''inline''
* by default, cells with cross-indexed tiddlers display the total number of tiddlers in the cell.  When this number is clicked, a popup is displayed, containing links to the individual tiddlers in that cell.  However, the popup display makes it difficult to compare the contents of two or more cells because only one popup can be displayed at any given time.  To address this, you can use the ''inline'' keyword parameter to ''display the grid contents directly in the cells'', without using any popups.  While this can make the grid display significantly larger (to fit the text of each cell), it also enables quick comparisons between cells.  Inline rendering of the cell contents also makes it possible to print the entire grid contents for easy off-line reporting and analysis.
''colorall''
* by default, cells with no cross-indexed tiddlers have a //transparent// background (e.g., the tiddler's background colors shows through).  However, this can create a 'patchwork' appearance to the grid.  Add the ''colorall'' keyword parameter to force these 'empty' cells to use the specified startcolor instead of a transparent background.
''sortrows/sortcolumns''
* rowtags and columntags are normally displayed in the order specified in the macro parameters, or in alphabetical order when ''all'' is used to generate the list of tags.  Adding the ''sortrows'' and/or ''sortcolumns'' keyword parameters will sort the tags in decending order so that the most frequently used tags are displayed first (i.e., towards the top-left corner).
<<<
!!!!!Examples
<<<
{{{<<tagGrid +FavoriteTags +FavoriteTags eeeeff 3333ff colorall sortrows sortcolumns>>}}}
<<tagGrid +FavoriteTags +FavoriteTags eeeeff 3333ff colorall sortrows sortcolumns>>
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''TagGridPlugin'' (tagged with <<tag systemConfig>>)
^^documentation and javascript for this plugin^^
<<<
!!!!!Revision History
<<<
''2007.07.24 [1.6.5]'' corrected handling for @TiddlerName with excluded tags, so that excluded tags are not actually removed from the @TiddlerName source tiddler.
''2007.07.04 [1.6.4]'' fix fatal "unterminated string" popup error caused by tiddlers containing double-quotes (now being encoded using """)
''2007.03.08 [1.6.3]'' use global flag to replace ALL single-quotes in tiddler titles (fixes popups where more than one tiddler title had a ' in it)
''2007.03.06 [1.6.2]'' removed debugging alert()s… D'oh!
''2007.03.06 [1.6.1]'' fix handling for excluding tags (was only removing last tag in list)
''2007.03.05 [1.6.0]'' added "exclude:tag tag tag..." parameter handling for both rows and columns
''2006.12.20 [1.5.1]'' fixed bordercolor calculation and css so grid correctly uses midtone-color for table cell borders
''2006.12.09 [1.5.0]'' added 'inline' keyword parameter to display tiddler titles directly in grid cells (in addition to popup)
''2006.11.03 [1.4.0]'' changed {{{=TiddlerName}}} param usage to {{{@TiddlerName}}} and added {{{=tagName}}} usage for specifying TagglyTagging "meta-tagged" groups of tag (based on ideas by GregWolff)
''2006.11.03 [1.3.3]'' performance optimization: calculate maximum cross-index value while building grid (eliminates extra calc during colormapping)
''2006.10.29 [1.3.2]'' fixes for IE: in decToHex and hexToDec, use substr() instead array indexing.  Also, use {{{>>>}}} and {{{<<<}}} instead of {{{&rArr;}}} and {{{&lArr;}}} for 'toggle headings' link text
''2006.10.29 [1.3.1]'' suppress border around table
''2006.10.21 [1.3.0]'' added {{{=TiddlerName}}} and {{{open}}} parameter handling
''2006.10.17 [1.2.1]'' fixed row/column sorting to properly sort undefined tags to the end of the list
''2006.10.16 [1.2.0]'' added optional row/column sorting and improved parameter parsing
''2006.10.15 [1.1.0]'' added features: background gradients, collapsible column headings, eliminated table borders around row/column headings
''2006.10.06 [1.0.1]'' calls to displayTiddler() use 'this' instead of 'null'
''2006.10.05 [1.0.0]'' initial release (converted from prototype inline script)
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]
<<<
!!!!!Code
***/
//{{{
version.extensions.tagGrid= {major: 1, minor: 6, revision: 5, date: new Date(2007,7,24)};
config.macros.tagGrid= {
	verbose:false, // display debugging/performance feedback messages
	warn:true,	// display workload warning message before rendering
	threshold:600000, // workload warning threshold (workload=# of comparisons to perform)
	handler:
	function(place,macroName,params) {

		// get columns
		var columntags=params.shift(); var cols=[];
		if ((!columntags)||(columntags=="all")) // no param (or "all") - use all tags
			{ var all=store.getTags(); for (i=0;i<all.length;i++) cols.push(all[i][0]); }
		else if (columntags.substr(0,1)=="+") // get tag list from tiddler content
			{ var t=store.getTiddlerText(columntags.substr(1)); if (t&&t.length) cols=t.readBracketedList(); }
		else if (columntags.substr(0,1)=="@") // get tag list from tiddler tags
			{ var t=store.getTiddler(columntags.substr(1)); if (t&&t.tags) for (i=0;i<t.tags.length;i++) cols.push(t.tags[i]); }
		else if (columntags.substr(0,1)=="=")  // get names of "tagtiddlers" tagged with meta-tag
			{ var t=store.getTaggedTiddlers(columntags.substr(1)); for (i=0;i<t.length;i++) cols.push(t[i].title); }
		else cols=columntags.readBracketedList();
		if (!cols.length) { wikify("~TagGrid: no columns to display\n",place); return; }

		// exclude specific column tags
		if (params[0]&&params[0].substr(0,8)=="exclude:") {
			var ex=params.shift().substr(8).readBracketedList();
			for (x=0; x<ex.length; x++) {
				var i=cols.indexOf(ex[x]);
				if (i!=-1) cols.splice(i,1); // remove excluded tags
			}
		}

		// get rows
		var rowtags=params.shift(); var rows=[];
		if ((!rowtags)||(rowtags=="all")) // no param (or "all") - use all tags
			{ var all=store.getTags(); for (i=0;i<all.length;i++) rows.push(all[i][0]); }
		else if (rowtags.substr(0,1)=="+") // get tag list from tiddler content
			{ var t=store.getTiddlerText(rowtags.substr(1)); if (t&&t.length) rows=t.readBracketedList(); }
		else if (rowtags.substr(0,1)=="@") // get tag list from tiddler tags
			{ var t=store.getTiddler(rowtags.substr(1)); if (t&&t.tags) for (i=0;i<t.tags.length;i++) rows.push(t.tags[i]); }
		else if (rowtags.substr(0,1)=="=")  // get names of "tagtiddlers" tagged with meta-tag
			{ var t=store.getTaggedTiddlers(rowtags.substr(1)); for (i=0;i<t.length;i++) rows.push(t[i].title); }
		else rows=rowtags.readBracketedList();
		if (!rows.length) { wikify("~TagGrid: no rows to display\n",place); return; }

		// exclude specific row tags
		if (params[0]&&params[0].substr(0,8)=="exclude:") {
			var ex=params.shift().substr(8).readBracketedList();
		 	for (x=0; x<ex.length; x++) {
				var i=rows.indexOf(ex[x]);
				if (i!=-1) rows.splice(i,1); // remove excluded tags
			}
		}

		// get optional flag keywords and/or color gradient endpoints
		var defOpen=false;
		var colorAll=false;
		var sortRows=false;
		var sortColumns=false;
		var showInline=false;
		var p=params.shift();
		while (p) {
			switch (p.toUpperCase()) {
				case "OPEN":
					defOpen=true; break;
				case "COLORALL":
					colorAll=true; break;
				case "SORTROWS":
					sortRows=true; break;
				case "SORTCOLUMNS":
					sortColumns=true; break;
				case "INLINE":
					showInline=true; break;
				default:
					if (startcolor==undefined) var startcolor=p;
					else if (endcolor==undefined) var endcolor=p;
					else alert("unexpected parameter: '"+p+"'");
					break;
			}
			p=params.shift();
		}

		// get the tiddlers
		var tiddlers=store.getTiddlers("modified","excludeLists");

		// show "workload warning"... get permission to proceed…
		if (this.warn) {
			var workload=rows.length*cols.length*tiddlers.length;
			var warning="Cross-indexing %0 tiddlers in %1 row%3 by %2 column%4...\n(up to %5 comparisons MAY be needed)\n\n";
			warning+="This may take a while.  It is OK to proceed?";
			warning=warning.format([tiddlers.length,rows.length,cols.length,rows.length!=1?"s":"",cols.length!=1?"s":"",workload]);
			if (workload>this.threshold&&!confirm(warning)) { wikify("~TagGrid: display cancelled by user\n",place); return; }
		}

		// sort row and column tags in decending order, by frequency of use
		if (sortRows||sortColumns) {
			var tags=store.getTags(); var tagcount={}; for (i=0; i<tags.length; i++) tagcount[tags[i][0]]=tags[i][1];
			if (sortRows) rows.sort(function(a,b){return (!tagcount[a]||tagcount[a]<tagcount[b])?+1:(tagcount[a]==tagcount[b]?0:-1);});
			if (sortColumns) cols.sort(function(a,b){return (!tagcount[a]||tagcount[a]<tagcount[b])?+1:(tagcount[a]==tagcount[b]?0:-1);});
		}

		// cross-index tiddlers by tags, building lists of tiddler titles into grid[i][j] (sparse array)
		var time1=new Date();
		var grid=new Array();
		var max=0;  // track maximum cross-index value
		for (var t=0;t<tiddlers.length;t++) { // for each tiddler
			for (var i=0;i<tiddlers[t].tags.length;i++) { // for each tag in tiddler
				var row=rows.find(tiddlers[t].tags[i]); if (row==null) continue; // this tag not in rows
				if (!grid[row]) grid[row]=new Array(); // create row as needed
				for (var j=0;j<tiddlers[t].tags.length;j++) {  // for each tag in tiddler
					var col=cols.find(tiddlers[t].tags[j]); if (col==null) continue; // this tag not in columns
					if (!grid[row][col]) grid[row][col]=new Array(); // create cell
					grid[row][col].push("[["+tiddlers[t].title+"]]"); // add tiddler title to cell
					if (max<grid[row][col].length) max=grid[row][col].length; // check for new maximum
				}
			}
		}

		// compute gradient color map
		if (startcolor && endcolor) {
			var digits="0123456789ABCDEF";
			function hexToDec(s) // 2-digit conversion
				{ return digits.indexOf(s.substr(0,1).toUpperCase())*16+digits.indexOf(s.substr(1,1).toUpperCase()); }
			function decToHex(d) // 2-digit conversion
				{ return digits.substr(Math.floor(d/16),1)+digits.substr(d%16,1); }
			var steps=max;
			var startR=hexToDec(startcolor.substr(0,2));
			var startG=hexToDec(startcolor.substr(2,2));
			var startB=hexToDec(startcolor.substr(4,2));
			var endR=hexToDec(endcolor.substr(0,2));
			var endG=hexToDec(endcolor.substr(2,2));
			var endB=hexToDec(endcolor.substr(4,2));
			var rangeR=endR-startR;
			var rangeG=endG-startG;
			var rangeB=endB-startB;
			var stepR=rangeR/steps; if (stepR>0) stepR=Math.floor(stepR); else stepR=Math.ceil(stepR);
			var stepG=rangeG/steps; if (stepG>0) stepG=Math.floor(stepG); else stepG=Math.ceil(stepG);
			var stepB=rangeB/steps; if (stepB>0) stepB=Math.floor(stepB); else stepB=Math.ceil(stepB);
			var colors=[];
			colors[0]=startcolor;
			for (var i=1; i<steps; i++)
				colors[i]=decToHex(startR+stepR*i)+decToHex(startG+stepG*i)+decToHex(startB+stepB*i);
			colors[steps-1]=endcolor; // fixup for roundoff error
		}

		// generate HTML table containing popups (and optional inline links)
		var time2=new Date();
		var out="<html><table cellpadding='0' cellspacing='0' style='border:0;border-collapse:collapse'>";
		// column headings
		out+="<tr style='border:0;'><td style='text-align:right;border:0'>";
		out+="<a href='' style='font-size:80%;'";
		out+="	title='show all column headings'";
		out+="	onclick='return config.macros.tagGrid.toggleAllColumns(this,event,"+defOpen+")'>"+(defOpen?"<<<":">>>")+"</a>";
		out+="</td>";
		for (var i=0;i<cols.length;i++) {
			out+="<td style='text-align:center;cursor:pointer;border:0;padding-left:2px;padding-right:2px' ";
			out+="	title='show/hide column heading' ";
			out+="	onclick='return config.macros.tagGrid.toggleColumn(this,event)'>";
			out+="<a href='' title='open tag tiddler'";
			if (!defOpen) out+="	style='display:none' ";
			out+="	onclick='story.displayTiddler(this,\""+cols[i]+"\");return false'>"+cols[i]+"</a>";
			out+="</td>";
		}
		out+="</tr>";
		for (var i=0;i<rows.length;i++) {
			// row heading
			var rowlink="<a href='' onclick='story.displayTiddler(this,\""+rows[i]+"\");return false'>"+rows[i]+"</a>";
			out +="<tr style='border:0'>";
			out +="<td style='text-align:right;border:0;padding-right:2px'>"+rowlink+"</td>";
			for (var j=0;j<cols.length;j++) {
				var content="";
				var bgcolor="transparent"; // default empty cell background
				if (colors && colorAll) bgcolor="#"+colors[0]; // empty cell background uses startcolor 
				var bordercolor=""; // default border color (inherits current css value)
				if (colors) bordercolor="#"+colors[Math.floor(colors.length/2-1)]; // border uses mid-tone color 
				var linkstyle=""; // use default unless background color is very light or very dark
				var cross=(grid[i]&&grid[i][j])?grid[i][j]:null;
				var hdr=rows[i]+(rows[i]!=cols[j]?(" + "+cols[j]):"");
				if (cross) {
					// cross-tagged list of tiddlers (in a popup)
					var label="<b>"+cross.length+"</b>";
					var tip=hdr;
					var list=cross.sort().join(' ').replace(/'/g,"\\'").replace(/"/g,'"');
					var handler="return config.macros.tagGrid.popup(this,event,\'"+rows[i]+"\',\'"+cols[j]+"\',\'"+list+"\')";
					if (colors) {
						var c=colors[cross.length-1];
						bgcolor="#"+c;
						linkstyle="style='color:#000000 !important'";
						// invert link color if background is very light
						if (c.substr(0,2)<"60" || c.substr(2,2)<"60" || c.substr(4,2)<"60")
							linkstyle="style='color:#FFFFFF !important'";
					}
				} else {
					var label="&nbsp;-&nbsp;";
					var tip="create a new tiddler tagged with: "+hdr;
					var list="";
					var handler="var title=config.macros.newTiddler.title;";
					handler+="story.displayTiddler(this,title,DEFAULT_EDIT_TEMPLATE);";
					handler+="story.setTiddlerTag(title,\'"+rows[i]+"\',+1);";
					handler+="story.setTiddlerTag(title,\'"+cols[j]+"\',+1);";
					handler+="story.focusTiddler(title,\'text\');return(false);";
				}
				if (!showInline || !cross)
					content+='<a href="javascript:;" '+linkstyle+' onclick="'+handler+'" title="'+tip+'">'+label+'</a>';
				if (showInline && cross) {
					content+="<div "+linkstyle+"><span style='white-space:nowrap'>";
					content+=hdr+" ("+label+")";
					content+="</span></div><hr>";
					// list tiddler links inline in table cell
					for (t=0; t<cross.length; t++) {
						var title=cross[t].replace(/\[\[/g,'').replace(/\]\]/g,'');
						var handler="story.displayTiddler(null,'"+title+"');return false;"
						var tid=store.getTiddler(title);
						var author=tid.modifier;
						var date=tid.modified.toLocaleString();
						var tip=config.messages.tiddlerLinkTooltip.format([title,author,date]);
						if (t>0) content+="<br>";
						content+='<a href="javascript:;" '+linkstyle+' onclick="'+handler+'" title="'+tip+'">'+title+'</a>';
					}
					content+="<hr>";
					handler="var tids=\'"+list+"\'.readBracketedList();story.displayTiddlers(this,tids); return(false);"
					tip="display all tiddlers tagged with: "+hdr;
					content+='<a href="javascript:;" '+linkstyle+' onclick="'+handler+'" title="'+tip+'">open all...</a><br>';
					handler="var title=config.macros.newTiddler.title;";
					handler+="story.displayTiddler(this,title,DEFAULT_EDIT_TEMPLATE);";
					handler+="story.setTiddlerTag(title,\'"+rows[i]+"\',+1);";
					handler+="story.setTiddlerTag(title,\'"+cols[j]+"\',+1);";
					handler+="story.focusTiddler(title,'text'); return(false);"
					tip="create a new tiddler tagged with: "+hdr;
					content+='<a href="javascript:;" '+linkstyle+' onclick="'+handler+'" title="'+tip+'">new tiddler...</a>';
				}
				out+="<td style='background-color:"+bgcolor+";border:1px solid "+bordercolor+" !important;text-align:center'>"+content+"</td>";
			}
			out+="</tr>";
		}
		out+="</table>";
		out+="</html>";
		createTiddlyElement(place,"span").innerHTML=out;
		var time3=new Date();
		if (this.verbose) displayMessage("TagGrid: scan="+(time2-time1)+", generate table="+(time3-time2));
	},
	popup:
	function(here,event,row,col,list) {
		var tids=list.replace(/"/g,'"').readBracketedList();
		var hdr=row+(row!=col?(" AND "+col):"");
		if (tids.length) {
			var p=Popup.create(here); if (!p) return;
			createTiddlyText(p,hdr);
			createTiddlyElement(p,'hr');
			for(var t=0; t<tids.length; t++) createTiddlyLink(createTiddlyElement(p,'li'),tids[t],true);
			createTiddlyElement(p,'hr');
			createTiddlyButton(createTiddlyElement(p,'li'),
				"open all...", "display all tiddlers tagged with: "+hdr,
				function(){story.displayTiddlers(null,tids); return(false);});
			var a=createTiddlyButton(createTiddlyElement(p,'li'),
				"new tiddler...", "create a new tiddler tagged with: "+hdr,
				function(){
					var title=config.macros.newTiddler.title;
					story.displayTiddler(this,title,DEFAULT_EDIT_TEMPLATE);
					story.setTiddlerTag(title,this.getAttribute("rowtag"),+1);
					story.setTiddlerTag(title,this.getAttribute("coltag"),+1);
					story.focusTiddler(title,"text");
					return(false);
				});
			a.setAttribute("rowtag",row);
			a.setAttribute("coltag",col);
			Popup.show(p,false);
		}
		event.cancelBubble = true;
		if (event.stopPropagation) event.stopPropagation();
		return(false);
	},
	toggleAllColumns:
	function(here,event,defOpen) {
		if (here.expanded==undefined) here.expanded=defOpen;
		var ex=here.expanded=!here.expanded; 
		here.innerHTML=ex?"<<<":">>>";
		here.title=ex?'hide all column headings':'show all column headings';
		var cells=here.parentNode.parentNode.getElementsByTagName("td");
		for (i=1; i<cells.length; i++) cells[i].firstChild.style.display=ex?"inline":"none";
		event.cancelBubble = true;
		if (event.stopPropagation) event.stopPropagation();
		return(false);
	},
	toggleColumn:
	function(here,event) {
		here.firstChild.style.display=(here.firstChild.style.display=="none")?"inline":"none";
		event.cancelBubble = true;
		if (event.stopPropagation) event.stopPropagation();
		return(false);
	}
};
//}}}
/***
|''Name:''|TagSearchPlugin|
|''Version:''|1.0.6 (2010-09-17)|
|''Source:''|http://tagsearch.tiddlyspot.com/#TagSearchPlugin|
|''Author:''|[[Tobias Beer]]|
|''Description:''|Provides a drop down listing current tags and others to be set. Based on [[x-tagger|http://tbgtd.tiddlyspot.com/#x-tagger]] which in turn was once based on [[TaggerPlugin|http://tw.lewcid.org/#TaggerPlugin]].|
|''Documentation:''|See [[Welcome]] or [[online help|http://tagsearch.tiddlyspot.com]]|
|''~TiddlyWiki:''|Version 2.5 or better|
***/
//{{{
config.macros.tagsearch={
cfg:{
	defaultMode:1,	// 0 -> substitute (silent), 1 -> ask for substitution, >1 -> always add (silent)
	defaultOpenNew:1,	//0: never open new tiddler, 1:ask, >2: always open
	defaultMore:'',	//the default for the more section
	keepModified:false,	//when true does not update modified date or modifier when setting tags
	sidebarOffset:20,	//dist from sidebar
	colWidth:'180px',	//minwidth of sides
	newAtSingle:30,	//new block for all tags
	newAt:18,	//new block when grouped
	excludeTagged:'',	//default tags or exclusion
	arrow:document.all?" ▼":" ▾",	//only the fat works in IE

	label:'Tags:',	//localization starts here
	options:'Options',
	more:'More...',
	tooltip:'Manage tiddler tags',
	notags:'no tags set...',
	aretags:'Current tags',
	addTag:'Add tag...',
	addTags:'Set tag...',
	txtRemove: 'remove tag',
	txtEdit:"~ edit categories...",
	txtEditTip:"edit tiddler with GTD tag categories used by x-tagger",
	txtNew:"~ add another tag",
	txtAdd:"set tag ",
	txtFor:"To be tagged... ",
	promptNew:"Enter new tag:",
	modeAsk:"Do also you want to remove tag '%0' and other tags from category '%1'?\nCancel simply adds tag '%2'.",
	askOpen:"Do you want to open the newly created tiddler '%0' now tagged '%1'?"
},
handler:function(place,macroName,params,wikifier,paramString,tiddler){
	var c,click,e,ex=[],fst=true,goto,lbl,list,open,mode,more,notags,p,source,rtid,src,tb,tid,tip,tmp=place,x;
	x=config.macros.tagsearch;c=x.cfg;
	p=paramString.parseParams('tagman',null,true);
	tb=params.contains("toolbar");
	notags=params.contains("notags");
	lbl=getParam(p,"label",c.label)+c.arrow;
	tip=getParam(p,"tooltip",c.tooltip);
	exclude=(getParam(p,"exclude",'')+' '+c.excludeTagged).readBracketedList();
	exclude.map(function(e){ex.pushUnique(e);});
	for(e=0;e<exclude.length;e++){
		store.getTaggedTiddlers(exclude[e]).map(function(t){ex.pushUnique(t.title)});
	}
	src=getParam(p,"source",'');
	if(src&&!store.getTiddlerText(src))return false;
	more=getParam(p,"more",c.defaultMore);
	mode=parseInt(getParam(p,"mode",c.defaultMode));
	mode=isNaN(mode)?c.defaultMode:mode;
	open=parseInt(getParam(p,"open",c.defaultOpenNew));
	open=isNaN(open)?c.defaultOpenNew:open;
	goto=getParam(p,"goto",'');
	tid=rtid=getParam(p,"tiddler");
	if(!tid){
		do{if(fst)fst=false;else tid=tmp;tmp=story.findContainingTiddler(tmp);}while(tmp&&tid!=tmp);
		tid=tid?tid.getAttribute('tiddler'):'';
	}
	if(!tid)return;
	click=function(e){
		e=e||window.event;
		var ar,curr,d1,d2,fst=true,i,j,l,nuBtns,nuLi,m,max=nu=src?c.newAt:c.newAtSingle,oTid=store.getTiddler(tid),pop,s,t,tags=[],tids,ti,tgt;
		pop=Popup.create(this);
		addClass(pop,'tagsearch');
		if(src){//mod tb:different method for source tiddler
			tids=store.getTiddlerText(src).readBracketedList();
			for(t=0;t<tids.length;t++){
				if(!ex.contains(tids[t])){
					tgt=store.getTaggedTiddlers(tids[t]);
					tags.push('TAG:'+tids[t]);
					for(s=0;s<tgt.length;s++){
						if(!ex.contains(tgt[s].title))tags.push(tgt[s].title);
					}
				}
			}
		}else tags=store.getTags();
		curr=oTid?oTid.tags.sort():[];
		nuLi=function(p){return createTiddlyElement(createTiddlyElement(p,"li",null,null),"ol",null,null);}
		nuBtns=function(where,text,tag,pref){
			var s,t;
			s=createTiddlyElement(createTiddlyElement(where,"li"),"span",null,null);
			t=createTiddlyButton(s,text,pref+" '"+tag+"'",x.setTag,"button toggleButton", null);
			t.setAttribute("tiddler",tid);
			t.setAttribute("tag",tag);
			t.setAttribute("source",src);
			t.setAttribute("mode",mode);
			t.setAttribute("open",open);
			insertSpacer(s);
			createTagButton(s,tag);
		}
		d1=nuLi(pop);d2=nuLi(d1);
		if(config.macros.gotoTiddler){
			if(rtid){
				l=createTiddlyElement(d2,"li",null,'addto','');
				wikify('{{title{'+c.txtFor+'}}}<<tag [['+tid+']]>>',l);
				d2=nuLi(d1);
			}
			createTiddlyElement(d2,"li",null,"title",c.addTag);
			wikify('<<gotoTiddler '+goto+' >>',d2);
		}
		d2=nuLi(d1);
		createTiddlyElement(d2,"li",null,"title",c.aretags);
		if(curr.length==0)wikify('{{added{'+c.notags+'}}}',d2);
		else for(t=0;t<curr.length;t++)nuBtns(d2,"[X]",curr[t],c.txtRemove);
		if(c.colWidth)jQuery('li',d1).css('min-width',c.colWidth);		
		if(!notags){
			for(i=0;i<tags.length;i++){
				nu++;
				ti=src?tags[i]:tags[i][0];
				if(ti.indexOf('TAG:')==0){
					ti=ti.substr(4);
					if(nu>max){nu=0;d1=nuLi(pop);}d2=nuLi(d1);nu++;
					createTiddlyLink(createTiddlyElement(d2,"li",null,null),ti,ti,'title');
				}
				else if(!curr.contains(ti)&&!ex.contains(ti)){
					if(!src&&nu>max||src&&nu>c.newAtSingle){
						nu=0;d1=nuLi(pop);d2=nuLi(d1);
						if(fst){createTiddlyElement(createTiddlyElement(d2,"li",null,null),'li',null,'title',c.addTags);fst=false;}
					}
					nuBtns(d2,"["+String.fromCharCode(160,160,160)+"]",ti,c.txtAdd);
				}
			}
			//options
			d1=nuLi(pop);d2=nuLi(d1);createTiddlyElement(d2,'li',null,'title',c.options);
			var newBtn=createTiddlyButton(createTiddlyElement(d2,"li"),(c.txtNew),null,x.setTag,'tsoption');
			newBtn.setAttribute("tiddler",tid);
			if(src){
				var edit=createTiddlyButton(createTiddlyElement(d2,"li"),c.txtEdit,c.txtEditTip,onClickTiddlerLink,'tsoption'); 
				edit.setAttribute("tiddlyLink",src.split('##')[0]);
			}

			fst=true;
			if(more){//more
				m=store.getTiddlerText(more).readBracketedList();
				if(m.length>0){
					for(i=0;i<m.length;i++){
						var ti=m[i];
						if(ti.indexOf('TAG:')==0){
							ti=ti.substr(4,ti.length-4);
							d2=nuLi(d1);createTiddlyLink(createTiddlyElement(d2,"li",null,null),ti,ti,'title');
							ar=store.getTaggedTiddlers(ti);
							for(j=0;j<ar.length;j++){var ti=ar[i].title;
								if(!tiddler.tags.contains(ti)&&!ex.contains(ti))nuBtns(d2,"["+String.fromCharCode(160,160)+"]",ti,c.txtAdd);
							}
						}else{
							if(fst){d2=nuLi(d1);createTiddlyElement(d2,'li',null,'title',c.more);fst=false;}
							if(!curr.contains(ti)&&!ex.contains(ti))nuBtns(d2,"["+String.fromCharCode(160,160)+"]",ti,c.txtAdd);
						}
					}
				}
				if(c.colWidth)jQuery('li',d1).css('min-width',c.colWidth);
			}
		}
		jQuery(pop).attr({tiddler:tid,source:src,mode:mode,open:open});
		Popup.show(pop,false);
		put=jQuery(".tagsearch form input");
		put.attr('notify','config.macros.tagsearch.notify');
		put.focus();
		if(tb){
			s=document.getElementById('sidebarTabs');
			pop.style.left='';pop.style.right=(c.sidebarOffset+(s?s.offsetWidth:0))+'px';
		}
		e.cancelBubble=true;
		if(e.stopPropagation)e.stopPropagation();
		return false;
	}	
	createTiddlyButton(place,lbl,tip,click,"button","tagsearchDrop");
},
setTag:function(e){
	var a,b,el,f,m,nu,o,r,s,set,src,t,tag,ti,tid,title,c=config.macros.tagsearch.cfg;
	el=e&&!e.target?e:this;
	title=el.getAttribute("tiddler");
	tag=el.getAttribute("tag");
	src=el.getAttribute("source");
	m=el.getAttribute("mode");
	o=el.getAttribute("open");
	tid=store.getTiddler(title);
	if(!tag){nu=prompt(c.promptNew,"");if(!nu)return false;else tag=nu;}
	b=!tid;
	if(!tid||!tid.tags){
		f=merge((tid?tid.fields:{}), config.defaultCustomFields);
		store.saveTiddler(title,title,'',config.options.txtUserName,new Date(),tag,f);
		if(!tid&&!document.getElementById(title)&&o>0)
			if(o>1||o==1&&confirm(c.askOpen.format([title,tag])))
				story.displayTiddler(null,title);
	}else{
		if(!tid.tags.contains(tag)){
			if(src){
				if(m<2){
					var cats=store.getTiddlerText(src).readBracketedList();
findTagged:			for(t=0;t<cats.length;t++){
						ti=cats[t];
						var tgt=store.getTaggedTiddlers(ti);
						for(s=0;s<tgt.length;s++){
							if(tgt[s].title==tag){
								for(r=0;r<tgt.length;r++){
									if(tid.tags.contains(tgt[r].title)){
										var ok;
										if(m==1&&!ok){
											if(!confirm(c.modeAsk.format([tgt[r].title,ti,tag])))break findTagged;
											ok=true;
										}
										store.setTiddlerTag(title,false,tgt[r].title);
									}
								}
								break findTagged;
							}
						}
					}
				}
			}
			store.setTiddlerTag(title,true,tag);
		}
		else if(!nu)store.setTiddlerTag(title,false,tag);
		t=store.getTiddler(title);
		store.saveTiddler(title,title,t.text,c.keepModified?t.modifier:config.options.txtUserName,c.keepModified?t.modified:new Date(),t.tags,t.fields);
	}
	if(!e.target){e.value='';e.focus();}
},
notify:function(tag){
	var p = jQuery('.tagsearch');
	var i = jQuery('.tagsearch form input')[0];
	var t = store.getTiddler(p.attr('tiddler'));
	if(t&&t.tags.contains(tag))return false;
	wikify('{{added{ {{add{+}}} <<tag "'+tag+'">>}}}',i.parentNode);
	p.attr('tag',tag);
	this.setTag(p[0]);
	i.select();
},
tiddler:'',
src:''
}

var gt=config.macros.gotoTiddler;
if(gt){
gt.processItem=function(title,here,list,showlist) {
	if (!title.length) return;
	list.style.display=showlist?'block':'none';
	if (title=="*")	{ story.search(here.value); return false; } // do full-text search
	if (!showlist) here.value=title;
	var n=here.getAttribute('notify');
	if(n)eval(n+'("'+title+'")'); //notify of selection, otherwise...
	else story.displayTiddler(null,title); // show selected tiddler (default behaviour)
	return false;
}
gt.IEtableFixup="%0";
}

var TP=store.getTiddlerText('ColorPalette::TertiaryPale'),
	TM=store.getTiddlerText('ColorPalette::TertiaryMid'),
	TD=store.getTiddlerText('ColorPalette::TertiaryDark'),
	SP=store.getTiddlerText('ColorPalette::SecondaryPale'),
	SD=store.getTiddlerText('ColorPalette::SecondaryDark');
config.shadowTiddlers["StyleSheetTagSearch"]="/*{{{*/\n"+
	".tagsearch {padding:7px !important;border:1px solid "+SD+";background: "+TP+";-moz-border-radius:5px; -webkit-border-radius:5px;border-radius:5px;}\n"+
	".tagsearch li a, .tagsearch .quickopentag .tiddlyLink {display:inline;padding:2px;color:"+TD+";clear:none;}\n"+
	".tagsearch li a.toggleButton {display:inline;margin-left:5px;}\n"+
	".tagsearch .title {margin:3px 0 0 5px;font-weight:bold;font-size:150%;color:"+SD+";padding:0;}\n"+
	".tagsearch form{display:block;float:left;clear:both;padding-left:5px !important;}\n"+
	".tagsearch .addto .quickopentag{display:block;clear:both;padding:5px;font-size:120%;}\n"+
	".tagsearch .added{display:block;clear:both;padding:5px;}\n"+
	".tagsearch .added span{display:block;float:left;}\n"+
	".tagsearch .add{clear:left;padding:0 3px;}\n"+
	".tagsearch ol{margin:0;padding:0 0 5px 0;}\n"+
	".tagsearch li{display:block;float:left;padding-bottom:10px !important;}\n"+
	".tagsearch li span{line-height:1em;}\n"+
	".tagsearch li ol li{clear:both;min-width:120px;display:inline;border:1px solid transparent;}\n"+
	".tagsearch li ol li:hover{border:1px solid "+TM+";}\n"+
	".tagsearch li ol li ol li{padding:0 !important;}\n"+
	".tagsearch li ol li ol li:hover{border:1px solid transparent;}\n"+
	".tagsearch .tiddlyLink:hover{color:"+SD+";background:"+SP+";}\n"+
	".tagsearch .quickopentag {display:inline;}\n"+
	".tagsearch .quickopentag .tiddlyLink:hover {text-decoration:underline;}\n"+
	".tagsearch .quickopentag .button {border:0;padding:2px;font-size:1.5em;}\n"+
	"/*}}}*/";
store.addNotification("StyleSheetTagSearch",refreshStyles);
//}}}
/***
|Name|TagTablePlugin|
|Source||
|Version||
|Author|Jon Robson|
|License||
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description||
***/
//{{{

config.macros.TagTable = {
  handler: function(place) {
    var tagsCount = {};
    var tiddlers = store.getTiddlers();
    for(var i=0; i < tiddlers.length; i++){
      var tags = tiddlers[i].tags;
      for(var j=0; j < tags.length; j++){
        var tag = tags[j];
        tagsCount[tag] = tagsCount[tag] ? tagsCount[tag] + 1 : 1;
      }
    }
    var line1 = [];
    var line2 = []; 
    for(var i in tagsCount){
      line1.push(i);
      line2.push(tagsCount[i]);
    }
    var wikiText = "|%0|\n|%1|".format([line1.join("|"),line2.join("|")]);
    wikify(wikiText, place);
  }
}

//}}}
/***
|Name|TaggedTemplateTweak|
|Source|http://www.TiddlyTools.com/#TaggedTemplateTweak|
|Documentation|http://www.TiddlyTools.com/#TaggedTemplateTweakInfo|
|Version|1.6.1|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Story.prototype.chooseTemplateForTiddler()|
|Description|use alternative ViewTemplate/EditTemplate for specific tiddlers|
This plugin extends the core function, story.chooseTemplateForTiddler(), so that any given tiddler can be viewed and/or edited using alternatives to the standard tiddler templates.
!!!!!Documentation
>see [[TaggedTemplateTweakInfo]]
!!!!!Revisions
<<<
2009.09.02 [1.6.1] apply field-based template (if any) *before* tag-based template
| please see [[TaggedTemplateTweakInfo]] for previous revision details |
2007.06.11 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.TaggedTemplateTweak= {major: 1, minor: 6, revision: 1, date: new Date(2009,9,2)};

if (!config.options.txtTemplateTweakFieldname)	
	config.options.txtTemplateTweakFieldname='template';

Story.prototype.taggedTemplate_chooseTemplateForTiddler = Story.prototype.chooseTemplateForTiddler
Story.prototype.chooseTemplateForTiddler = function(title,template)
{
	// get core template and split into theme and template name
	var coreTemplate=this.taggedTemplate_chooseTemplateForTiddler.apply(this,arguments);
	var theme=""; var template=coreTemplate;
	var parts=template.split(config.textPrimitives.sectionSeparator);
	if (parts[1]) { theme=parts[0]; template=parts[1]; }
	else theme=config.options.txtTheme||""; // if theme is not specified
	theme+=config.textPrimitives.sectionSeparator;

	// look for template using title as prefix
	if (!store.getTaggedTiddlers(title).length) { // if tiddler is not a tag
		if (store.getTiddlerText(theme+title+template))
			{ return theme+title+template; } // theme##TitleTemplate
		if (store.getTiddlerText(title+template))
			{ return title+template; }	 // TitleTemplate
	}

	// look for templates using custom field value as prefix
	var v=store.getValue(title,config.options.txtTemplateTweakFieldname);
	if (store.getTiddlerText(theme+v+template))
		{ return theme+v+template; }	// theme##valueTemplate
	if (store.getTiddlerText(v+template))
		{ return v+template; }		// valueTemplate

	// look for template using tags as prefix
	var tiddler=store.getTiddler(title);
	if (!tiddler) return coreTemplate; // tiddler doesn't exist… use core result
	for (i=0; i<tiddler.tags.length; i++) {
		var t=tiddler.tags[i]+template; // add tag prefix to template
		var c=t.substr(0,1).toUpperCase()+t.substr(1); // capitalized for WikiWord title
		if (store.getTiddlerText(theme+t))	{ return theme+t; } // theme##tagTemplate
		if (store.getTiddlerText(theme+c))	{ return theme+c; } // theme##TagTemplate
		if (store.getTiddlerText(t)) 		{ return t; }	    // tagTemplate
		if (store.getTiddlerText(c))		{ return c; }	    // TagTemplate
	}
	
	// no match… use core result
	return coreTemplate;
}
//}}}
/***
|Name|~TaggerPlugin|
|Version|1.0.1|
|Source|http://tw.lewcid.org/#TaggerPluginSource|
|Author|[[SaqImtiaz]]|
|Description|Provides a drop down listing current tiddler tags, and allowing toggling of tags; http://tw.lewcid.org/#TaggerPlugin.|
|Documentation|[[TaggerPluginDocumentation|http://tw.lewcid.org//#TaggerPluginDocumentation]]|
|Type|plugin|
|~CoreVersion|2.0.8+|
***/
//{{{
config.shadowTiddlers.TaggerPluginDocumentation="The documentation is available [[here.|http://tw.lewcid.org/#TaggerPluginDocumentation]]";
config.shadowTiddlers.TaggerPluginSource="The uncompressed source code is available [[here.|http://tw.lewcid.org/#TaggerPluginSource]]";

config.tagger={
       defaults:{
              label: 'Tags: ',
              tooltip: 'Manage tiddler tags',
              taglist: 'true',
              excludeTags: '',
              notags: 'tiddler has no tags',
              aretags: 'current tiddler tags:',
              toggletext: 'add tags:'
       }
};

config.macros.tagger={};
config.macros.tagger.arrow = (document.all?"▼":"▾"); // the fat one is the only one that works in IE
config.macros.tagger.handler =  function(place,macroName,params,wikifier,paramString,tiddler) {
       var defaults = config.tagger.defaults;
       var nAV = paramString.parseParams('tagman', null, true);
       var label = ((nAV[0].label)&&(nAV[0].label[0])!='.')?nAV[0].label[0]+this.arrow: defaults.label+this.arrow;
       var tooltip = ((nAV[0].tooltip)&&(nAV[0].tooltip[0])!='.')?nAV[0].tooltip[0]: defaults.tooltip;
       var taglist = ((nAV[0].taglist)&&(nAV[0].taglist[0])!='.')?nAV[0].taglist[0]: defaults.taglist;
       var exclude = ((nAV[0].exclude)&&(nAV[0].exclude[0])!='.')?(nAV[0].exclude[0]).readBracketedList(): defaults.excludeTags.readBracketedList();
       if ((nAV[0].source)&&(nAV[0].source[0])!='.')var source = nAV[0].source[0];
       if (source&&!store.getTiddler(source)) return false;

       var onclick = function(e) {
                   if (!e) var e = window.event;
                   var popup = Popup.create(this);
                   var tagsarray = store.getTags();
                   var tags=new Array();

                   for (var i=0; i<tagsarray.length; i++){
                       tags.push(tagsarray[i][0]);}

                   if (source)
                      {var sourcetiddler=store.getTiddler(source);
                       tags=sourcetiddler.tags.sort();}

                   var currentTags = tiddler.tags.sort();

                   var createButtons=function(text,theTag,tooltipPrefix){
                       var sp = createTiddlyElement(createTiddlyElement(popup,"li"),"span",null,"tagger");
                       var theToggle = createTiddlyButton(sp,text,tooltipPrefix+" '"+theTag+"'",taggerOnToggle,"button","toggleButton");
                       theToggle.setAttribute("tiddler",tiddler.title);
                       theToggle.setAttribute("tag",theTag);
                       insertSpacer(sp);
                       if (window.createTagButton_orig_mptw)
                           createTagButton_orig_mptw(sp,theTag);
                       else
                           createTagButton(sp,theTag);
                       }

                   createTiddlyElement(popup,"li",null,"listTitle",(tiddler.tags.length == 0 ? defaults.notags : defaults.aretags));

                   for (var t=0; t<currentTags.length; t++){
                      createButtons("[x]",currentTags[t],"remove tag ");
                       }

                   createTiddlyElement(createTiddlyElement(popup,"li"),"hr");

                   if (taglist!='false')
                      { createTiddlyElement(popup,"li",null,"listTitle",defaults.toggletext);
                        for (var i=0; i<tags.length; i++){
                          if (!tiddler.tags.contains(tags[i])&&!exclude.contains(tags[i]))
                                  {createButtons("[ ]",tags[i],"add tag ");
                                  }
                          }
                          createTiddlyElement(createTiddlyElement(popup,"li"),"hr");
                      }

                   var newTagButton = createTiddlyButton(createTiddlyElement(popup,"li"),("Create new tag"),null,taggerOnToggle);
                   newTagButton.setAttribute("tiddler",tiddler.title);
                   if (source) newTagButton.setAttribute("source",source);

                   Popup.show(popup,false);
                   e.cancelBubble = true;
                   if (e.stopPropagation) e.stopPropagation();
                   return(false);
                   };

       createTiddlyButton(place,label,tooltip,onclick,"button","taggerDrpBtn");
};

window.taggerOnToggle = function(e) {
              var tag = this.getAttribute("tag");
              var title = this.getAttribute("tiddler");
              var tiddler = store.getTiddler(title);
              if (!tag)
                 {
                 var newtag=prompt("Enter new tag:","");
                 if (newtag!=''&&newtag!=null)
                    {
                    var tag=newtag;
                    if (this.getAttribute("source"))
                    {var sourcetiddler =  store.getTiddler(this.getAttribute("source"));
                    sourcetiddler.tags.pushUnique(newtag);}
                    }
                 else
                     {return false;};
                 }
              if (!tiddler || !tiddler.tags)
                 {store.saveTiddler(title,title,'',config.options.txtUserName,new Date(),tag);}
              else
                  {if (tiddler.tags.find(tag)==null)
                     {tiddler.tags.push(tag)}
                  else if(!newtag)
                      {tiddler.tags.splice(tiddler.tags.find(tag),1)};
                  store.saveTiddler(tiddler.title,tiddler.title,tiddler.text,tiddler.modifier,tiddler.modified,tiddler.tags);};
              story.refreshTiddler(title,null,true);
              if(config.options.chkAutoSave)
                  saveChanges();
              return false;
};

setStylesheet(
 ".tagger a.button {font-weight: bold;display:inline; padding:0px;}\n"+
 ".tagger #toggleButton {padding-left:2px; padding-right:2px; margin-right:1px; font-size:110%;}\n"+
 "#nestedtagger {background:#2E5ADF; border: 1px solid #0331BF;}\n"+
 ".popup .listTitle {color:#000;}\n"+
 "",
"TaggerStyles");

window.lewcidTiddlerSwapTag =  function (tiddler, oldTag, newTag){
                    for (var i = 0; i < tiddler.tags.length; i++)
			  if (tiddler.tags[i] == oldTag) {
				  tiddler.tags[i] = newTag;
				  return true;}
                         return false;
}

window.lewcidRenameTag = function(e) {
                    var tag=this.getAttribute("tag");
                    var newtag=prompt("Rename tag '"+tag+"' to:",tag);

                    if ((newtag==tag)||(newtag==null)) {return false;}

                    if(store.tiddlerExists(newtag))
                               {if(confirm(config.messages.overwriteWarning.format([newtag.toString()])))
                                             story.closeTiddler(newtag,false,false);
                               else
                                             return null;}

                    tagged=store.getTaggedTiddlers(tag);
                    if (tagged.length!=0){
                          for (var j = 0; j < tagged.length; j++)
                              lewcidTiddlerSwapTag(tagged[j],tag,newtag);}

                    if (store.tiddlerExists(tag))
                       {store.saveTiddler(tag,newtag);}
                    if (document.getElementById("tiddler"+tag))
                       {var oldTagTiddler =  document.getElementById(story.idPrefix + tag);
                       var before= story.positionTiddler(oldTagTiddler);
                       var place = document.getElementById(story.container);
                       story.closeTiddler(tag,false,false);
                       story.createTiddler(place,before,newtag,null);
                       story.saveTiddler(newtag);}
                    if(config.options.chkAutoSave)
                                                      saveChanges();
                    return false;
}


window.onClickTag=function(e)
{
	if (!e) var e = window.event;
	var theTarget = resolveTarget(e);

        var nested = (!isNested(theTarget));
        if ((Popup.stack.length > 1)&&(nested==true)) {Popup.removeFrom(1);}
        else if(Popup.stack.length > 0 && nested==false) {Popup.removeFrom(0);};

        var theId = (nested==false)? "popup" : "nestedtagger";
        var popup = createTiddlyElement(document.body,"ol",theId,"popup",null);
        Popup.stack.push({root: this, popup: popup});

	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"),"hr");
			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"),"hr");
		var h = createTiddlyLink(createTiddlyElement(popup,"li"),tag,false);
		createTiddlyText(h,lingo.openTag.format([tag]));

		createTiddlyElement(createTiddlyElement(popup,"li"),"hr");

		var renameTagButton = createTiddlyButton(createTiddlyElement(popup,"li"),("Rename tag '"+tag+"'"),null,lewcidRenameTag);
		renameTagButton.setAttribute("tag",tag)
		}
	Popup.show(popup,false);
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	return(false);
}

if (!window.isNested)
   window.isNested = function(e) {
        while (e != null) {
                var contentWrapper = document.getElementById("contentWrapper");
                if (contentWrapper == e) return true;
                e = e.parentNode;
                }
        return false;
   };
//}}}
/***
|Name|TagglyTaggingPlugin|
|Description|tagglyTagging macro is a replacement for the builtin tagging macro in your ViewTemplate|
|Version|3.1 ($Rev: 2351 $)|
|Date|$Date: 2007-07-12 10:18:02 +1000 (Thu, 12 Jul 2007) $|
|Source|http://mptw.tiddlyspot.com/#TagglyTaggingPlugin|
|Author|[[SimonBaird]] <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
See http://mptw.tiddlyspot.com/#TagglyTagging
***/
//{{{
config.taggly = {

	// for translations
	lingo: {
		labels: {
			asc:        "\u2191", // down arrow
			desc:       "\u2193", // up arrow
			title:      "title",
			modified:   "modified",
			created:    "created",
			show:       "+",
			hide:       "-",
			normal:     "normal",
			group:      "group",
			commas:     "commas",
			sitemap:    "sitemap",
			numCols:    "cols\u00b1", // plus minus sign
			label:      "Tagged as '%0':",
			excerpts:   "excerpts",
			contents:   "contents",
			sliders:    "sliders",
			noexcerpts: "title only"
		},

		tooltips: {
			title:    "Click to sort by title",
			modified: "Click to sort by modified date",
			created:  "Click to sort by created date",
			show:     "Click to show tagging list",
			hide:     "Click to hide tagging list",
			normal:   "Click to show a normal ungrouped list",
			group:    "Click to show list grouped by tag",
			sitemap:  "Click to show a sitemap style list",
			commas:   "Click to show a comma separated list",
			numCols:  "Click to change number of columns",
			excerpts: "Click to show excerpts",
			contents: "Click to show entire tiddler contents",
			sliders:  "Click to show tiddler contents in sliders",
			noexcerpts: "Click to show entire title only"
		}
	},

	config: {
		showTaggingCounts: true,
		listOpts: {
			// the first one will be the default
			sortBy:     ["title","modified","created"],
			sortOrder:  ["asc","desc"],
			hideState:  ["show","hide"],
			listMode:   ["normal","group","sitemap","commas"],
			numCols:    ["1","2","3","4","5","6"],
			excerpts:   ["noexcerpts","excerpts","contents","sliders"]
		},
		valuePrefix: "taggly.",
		excludeTags: ["excludeLists","excludeTagging"],
		excerptSize: 50,
		excerptMarker: "/%"+"%/"
	},

	getTagglyOpt: function(title,opt) {
		var val = store.getValue(title,this.config.valuePrefix+opt);
		return val ? val : this.config.listOpts[opt][0];
	},

	setTagglyOpt: function(title,opt,value) {
		if (!store.tiddlerExists(title))
			// create it silently
			store.saveTiddler(title,title,config.views.editor.defaultText.format([title]),config.options.txtUserName,new Date(),null);
		// if value is default then remove it to save space
		return store.setValue(title,
			this.config.valuePrefix+opt,
			value == this.config.listOpts[opt][0] ? null : value);
	},

	getNextValue: function(title,opt) {
		var current = this.getTagglyOpt(title,opt);
		var pos = this.config.listOpts[opt].indexOf(current);
		// a little usability enhancement. actually it doesn't work right for grouped or sitemap
		var limit = (opt == "numCols" ? store.getTaggedTiddlers(title).length : this.config.listOpts[opt].length);
		var newPos = (pos + 1) % limit;
		return this.config.listOpts[opt][newPos];
	},

	toggleTagglyOpt: function(title,opt) {
		var newVal = this.getNextValue(title,opt);
		this.setTagglyOpt(title,opt,newVal);
	}, 

	createListControl: function(place,title,type) {
		var lingo = config.taggly.lingo;
		var label;
		var tooltip;
		var onclick;

		if ((type == "title" || type == "modified" || type == "created")) {
			// "special" controls. a little tricky. derived from sortOrder and sortBy
			label = lingo.labels[type];
			tooltip = lingo.tooltips[type];

			if (this.getTagglyOpt(title,"sortBy") == type) {
				label += lingo.labels[this.getTagglyOpt(title,"sortOrder")];
				onclick = function() {
					config.taggly.toggleTagglyOpt(title,"sortOrder");
					return false;
				}
			}
			else {
				onclick = function() {
					config.taggly.setTagglyOpt(title,"sortBy",type);
					config.taggly.setTagglyOpt(title,"sortOrder",config.taggly.config.listOpts.sortOrder[0]);
					return false;
				}
			}
		}
		else {
			// "regular" controls, nice and simple
			label = lingo.labels[type == "numCols" ? type : this.getNextValue(title,type)];
			tooltip = lingo.tooltips[type == "numCols" ? type : this.getNextValue(title,type)];
			onclick = function() {
				config.taggly.toggleTagglyOpt(title,type);
				return false;
			}
		}

		// hide button because commas don't have columns
		if (!(this.getTagglyOpt(title,"listMode") == "commas" && type == "numCols"))
			createTiddlyButton(place,label,tooltip,onclick,type == "hideState" ? "hidebutton" : "button");
	},

	makeColumns: function(orig,numCols) {
		var listSize = orig.length;
		var colSize = listSize/numCols;
		var remainder = listSize % numCols;

		var upperColsize = colSize;
		var lowerColsize = colSize;

		if (colSize != Math.floor(colSize)) {
			// it's not an exact fit so..
			upperColsize = Math.floor(colSize) + 1;
			lowerColsize = Math.floor(colSize);
		}

		var output = [];
		var c = 0;
		for (var j=0;j<numCols;j++) {
			var singleCol = [];
			var thisSize = j < remainder ? upperColsize : lowerColsize;
			for (var i=0;i<thisSize;i++) 
				singleCol.push(orig[c++]);
			output.push(singleCol);
		}

		return output;
	},

	drawTable: function(place,columns,theClass) {
		var newTable = createTiddlyElement(place,"table",null,theClass);
		var newTbody = createTiddlyElement(newTable,"tbody");
		var newTr = createTiddlyElement(newTbody,"tr");
		for (var j=0;j<columns.length;j++) {
			var colOutput = "";
			for (var i=0;i<columns[j].length;i++) 
				colOutput += columns[j][i];
			var newTd = createTiddlyElement(newTr,"td",null,"tagglyTagging"); // todo should not need this class
			wikify(colOutput,newTd);
		}
		return newTable;
	},

	createTagglyList: function(place,title) {
		switch(this.getTagglyOpt(title,"listMode")) {
			case "group":  return this.createTagglyListGrouped(place,title); break;
			case "normal": return this.createTagglyListNormal(place,title,false); break;
			case "commas": return this.createTagglyListNormal(place,title,true); break;
			case "sitemap":return this.createTagglyListSiteMap(place,title); break;
		}
	},

	getTaggingCount: function(title) {
		// thanks to Doug Edmunds
		if (this.config.showTaggingCounts) {
			var tagCount = store.getTaggedTiddlers(title).length;
			if (tagCount > 0)
				return " ("+tagCount+")";
		}
		return "";
	},

	getExcerpt: function(inTiddlerTitle,title,indent) {
    if (!indent)
			indent = 1;
		if (this.getTagglyOpt(inTiddlerTitle,"excerpts") == "excerpts") {
			var t = store.getTiddler(title);
			if (t) {
				var text = t.text.replace(/\n/," ");
				var marker = text.indexOf(this.config.excerptMarker);
				if (marker != -1) {
					return " {{excerpt{<nowiki>" + text.substr(0,marker) + "</nowiki>}}}";
				}
				else if (text.length < this.config.excerptSize) {
					return " {{excerpt{<nowiki>" + t.text + "</nowiki>}}}";
				}
				else {
					return " {{excerpt{<nowiki>" + t.text.substr(0,this.config.excerptSize) + "..." + "</nowiki>}}}";
				}
			}
		}
		else if (this.getTagglyOpt(inTiddlerTitle,"excerpts") == "contents") {
			var t = store.getTiddler(title);
			if (t) {
				return "\n{{contents indent"+indent+"{\n" + t.text + "\n}}}";
			}
		}
		else if (this.getTagglyOpt(inTiddlerTitle,"excerpts") == "sliders") {
			var t = store.getTiddler(title);
			if (t) {
				return "<slider slide>\n{{contents{\n" + t.text + "\n}}}\n</slider>";
			}
		}
		return "";
	},

	notHidden: function(t,inTiddler) {
		if (typeof t == "string") 
			t = store.getTiddler(t);
		return (!t || !t.tags.containsAny(this.config.excludeTags) ||
				(inTiddler && this.config.excludeTags.contains(inTiddler)));
	},

	// this is for normal and commas mode
	createTagglyListNormal: function(place,title,useCommas) {

		var list = store.getTaggedTiddlers(title,this.getTagglyOpt(title,"sortBy"));

		if (this.getTagglyOpt(title,"sortOrder") == "desc")
			list = list.reverse();

		var output = [];
		var first = true;
		for (var i=0;i<list.length;i++) {
			if (this.notHidden(list[i],title)) {
				var countString = this.getTaggingCount(list[i].title);
				var excerpt = this.getExcerpt(title,list[i].title);
				if (useCommas)
					output.push((first ? "" : ", ") + "[[" + list[i].title + "]]" + countString + excerpt);
				else
					output.push("*[[" + list[i].title + "]]" + countString + excerpt + "\n");

				first = false;
			}
		}

		return this.drawTable(place,
			this.makeColumns(output,useCommas ? 1 : parseInt(this.getTagglyOpt(title,"numCols"))),
			useCommas ? "commas" : "normal");
	},

	// this is for the "grouped" mode
	createTagglyListGrouped: function(place,title) {
		var sortBy = this.getTagglyOpt(title,"sortBy");
		var sortOrder = this.getTagglyOpt(title,"sortOrder");

		var list = store.getTaggedTiddlers(title,sortBy);

		if (sortOrder == "desc")
			list = list.reverse();

		var leftOvers = []
		for (var i=0;i<list.length;i++)
			leftOvers.push(list[i].title);

		var allTagsHolder = {};
		for (var i=0;i<list.length;i++) {
			for (var j=0;j<list[i].tags.length;j++) {

				if (list[i].tags[j] != title) { // not this tiddler

					if (this.notHidden(list[i].tags[j],title)) {

						if (!allTagsHolder[list[i].tags[j]])
							allTagsHolder[list[i].tags[j]] = "";

						if (this.notHidden(list[i],title)) {
							allTagsHolder[list[i].tags[j]] += "**[["+list[i].title+"]]"
										+ this.getTaggingCount(list[i].title) + this.getExcerpt(title,list[i].title) + "\n";

							leftOvers.setItem(list[i].title,-1); // remove from leftovers. at the end it will contain the leftovers

						}
					}
				}
			}
		}

		var allTags = [];
		for (var t in allTagsHolder)
			allTags.push(t);

		var sortHelper = function(a,b) {
			if (a == b) return 0;
			if (a < b) return -1;
			return 1;
		};

		allTags.sort(function(a,b) {
			var tidA = store.getTiddler(a);
			var tidB = store.getTiddler(b);
			if (sortBy == "title") return sortHelper(a,b);
			else if (!tidA && !tidB) return 0;
			else if (!tidA) return -1;
			else if (!tidB) return +1;
			else return sortHelper(tidA[sortBy],tidB[sortBy]);
		});

		var leftOverOutput = "";
		for (var i=0;i<leftOvers.length;i++)
			if (this.notHidden(leftOvers[i],title))
				leftOverOutput += "*[["+leftOvers[i]+"]]" + this.getTaggingCount(leftOvers[i]) + this.getExcerpt(title,leftOvers[i]) + "\n";

		var output = [];

		if (sortOrder == "desc")
			allTags.reverse();
		else if (leftOverOutput != "")
			// leftovers first…
			output.push(leftOverOutput);

		for (var i=0;i<allTags.length;i++)
			if (allTagsHolder[allTags[i]] != "")
				output.push("*[["+allTags[i]+"]]" + this.getTaggingCount(allTags[i]) + this.getExcerpt(title,allTags[i]) + "\n" + allTagsHolder[allTags[i]]);

		if (sortOrder == "desc" && leftOverOutput != "")
			// leftovers last…
			output.push(leftOverOutput);

		return this.drawTable(place,
				this.makeColumns(output,parseInt(this.getTagglyOpt(title,"numCols"))),
				"grouped");

	},

	// used to build site map
	treeTraverse: function(title,depth,sortBy,sortOrder) {

		var list = store.getTaggedTiddlers(title,sortBy);
		if (sortOrder == "desc")
			list.reverse();

		var indent = "";
		for (var j=0;j<depth;j++)
			indent += "*"

		var childOutput = "";
		for (var i=0;i<list.length;i++)
			if (list[i].title != title)
				if (this.notHidden(list[i].title,this.config.inTiddler))
					childOutput += this.treeTraverse(list[i].title,depth+1,sortBy,sortOrder);

		if (depth == 0)
			return childOutput;
		else
			return indent + "[["+title+"]]" + this.getTaggingCount(title) + this.getExcerpt(this.config.inTiddler,title,depth) + "\n" + childOutput;
	},

	// this if for the site map mode
	createTagglyListSiteMap: function(place,title) {
		this.config.inTiddler = title; // nasty. should pass it in to traverse probably
		var output = this.treeTraverse(title,0,this.getTagglyOpt(title,"sortBy"),this.getTagglyOpt(title,"sortOrder"));
		return this.drawTable(place,
				this.makeColumns(output.split(/(?=^\*\[)/m),parseInt(this.getTagglyOpt(title,"numCols"))), // regexp magic
				"sitemap"
				);
	},

	macros: {
		tagglyTagging: {
			handler: function (place,macroName,params,wikifier,paramString,tiddler) {
				var refreshContainer = createTiddlyElement(place,"div");
				// do some refresh magic to make it keep the list fresh - thanks Saq
				refreshContainer.setAttribute("refresh","macro");
				refreshContainer.setAttribute("macroName",macroName);
        			refreshContainer.setAttribute("title",tiddler.title);
				this.refresh(refreshContainer);
			},

			refresh: function(place) {
				var title = place.getAttribute("title");
				removeChildren(place);
				if (store.getTaggedTiddlers(title).length > 0) {
					var lingo = config.taggly.lingo;
					config.taggly.createListControl(place,title,"hideState");
					if (config.taggly.getTagglyOpt(title,"hideState") == "show") {
						createTiddlyElement(place,"span",null,"tagglyLabel",lingo.labels.label.format([title]));
						config.taggly.createListControl(place,title,"title");
						config.taggly.createListControl(place,title,"modified");
						config.taggly.createListControl(place,title,"created");
						config.taggly.createListControl(place,title,"listMode");
						config.taggly.createListControl(place,title,"excerpts");
						config.taggly.createListControl(place,title,"numCols");
						config.taggly.createTagglyList(place,title);
					}
				}
			}
		}
	},

	// todo fix these up a bit
	styles: [
"/*{{{*/",
"/* created by TagglyTaggingPlugin */",
".tagglyTagging { padding-top:0.5em; }",
".tagglyTagging li.listTitle { display:none; }",
".tagglyTagging ul {",
"	margin-top:0px; padding-top:0.5em; padding-left:2em;",
"	margin-bottom:0px; padding-bottom:0px;",
"}",
".tagglyTagging { vertical-align: top; margin:0px; padding:0px; }",
".tagglyTagging table { margin:0px; padding:0px; }",
".tagglyTagging .button { visibility:hidden; margin-left:3px; margin-right:3px; }",
".tagglyTagging .button, .tagglyTagging .hidebutton {",
"	color:[[ColorPalette::TertiaryLight]]; font-size:90%;",
"	border:0px; padding-left:0.3em;padding-right:0.3em;",
"}",
".tagglyTagging .button:hover, .hidebutton:hover, ",
".tagglyTagging .button:active, .hidebutton:active  {",
"	border:0px; background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]];",
"}",
".selected .tagglyTagging .button { visibility:visible; }",
".tagglyTagging .hidebutton { color:[[ColorPalette::Background]]; }",
".selected .tagglyTagging .hidebutton { color:[[ColorPalette::TertiaryLight]] }",
".tagglyLabel { color:[[ColorPalette::TertiaryMid]]; font-size:90%; }",
".tagglyTagging ul {padding-top:0px; padding-bottom:0.5em; margin-left:1em; }",
".tagglyTagging ul ul {list-style-type:disc; margin-left:-1em;}",
".tagglyTagging ul ul li {margin-left:0.5em; }",
".editLabel { font-size:90%; padding-top:0.5em; }",
".tagglyTagging .commas { padding-left:1.8em; }",
"/* not technically tagglytagging but will put them here anyway */",
".tagglyTagged li.listTitle { display:none; }",
".tagglyTagged li { display: inline; font-size:90%; }",
".tagglyTagged ul { margin:0px; padding:0px; }",
".excerpt { color:[[ColorPalette::TertiaryDark]]; }",
"div.tagglyTagging table,",
"div.tagglyTagging table tr,",
"td.tagglyTagging",
" {border-style:none!important; }",
".tagglyTagging .contents { border-bottom:2px solid [[ColorPalette::TertiaryPale]]; padding:0 1em 1em 0.5em;",
"  margin-bottom:0.5em; }",
".tagglyTagging .indent1  { margin-left:3em;  }",
".tagglyTagging .indent2  { margin-left:4em;  }",
".tagglyTagging .indent3  { margin-left:5em;  }",
".tagglyTagging .indent4  { margin-left:6em;  }",
".tagglyTagging .indent5  { margin-left:7em;  }",
".tagglyTagging .indent6  { margin-left:8em;  }",
".tagglyTagging .indent7  { margin-left:9em;  }",
".tagglyTagging .indent8  { margin-left:10em; }",
".tagglyTagging .indent9  { margin-left:11em; }",
".tagglyTagging .indent10 { margin-left:12em; }",
"/*}}}*/",
		""].join("\n"),

	init: function() {
		merge(config.macros,this.macros);
		config.shadowTiddlers["TagglyTaggingStyles"] = this.styles;
		store.addNotification("TagglyTaggingStyles",refreshStyles);
	}
};

config.taggly.init();

//}}}
/***
|Name|TagsTreePlugin|
|Description|Displays tags hierachy as a tree of tagged tiddlers.<br>Can be used to create dynamic outline navigation.|
|Version|1.0.1|
|Date|Jan 04,2008|
|Source|http://visualtw.ouvaton.org/VisualTW.html|
|Author|[[PascalCollin]]|
|License|[[BSD open source license|License]]|
|~CoreVersion|2.1.0|
|Browser|Firefox 2.0; InternetExplorer 6.0|
!Demo
On the plugin [[homepage|http://visualtw.ouvaton.org/VisualTW.html]] :
*Try to tag some <<newTiddler>> with a tag displayed in the menu and edit MainMenu.
*Look at some tags like [[Plugins]] or [[menu]].
!Installation
#import the plugin,
#save and reload,
#optionally, edit TagsTreeStyleSheet.
! Usage
{{{<<tagsTree>>}}} macro accepts the following //optional// parameters.
|!#|!parameter|!description|!by default|
|1|{{{root}}}|Uses {{{root}}} tag as tree root|- In a //tiddler// content or template : uses the tiddler as root tag.<br>- In the //page// content or template (by ex MainMenu) : displays all untagged tags.|
|2|{{{excludeTag}}}|Excludes all such tagged tiddlers from the tree|Uses default excludeLists tag|
|3|{{{level}}}|Expands nodes until level {{{level}}}.<br>Value {{{0}}} hides expand/collapse buttons.|Nodes are collapsed on first level|
|4|{{{depth}}}|Hierachy depth|6 levels depth (H1 to H6 header styles)|
|5|{{{sortField}}}|Alternate sort field. By example : "index".|Sorts tags and tiddlers alphabetically (on their title)|
|6|{{{labelField}}}|Alertnate label field. By example : "label".|Displays tiddler's title|

!Useful addons
*[[FieldsEditorPlugin]] : //create//, //edit//, //view// and //delete// commands in toolbar <<toolbar fields>>.
*[[TaggerPlugin]] : Provides a drop down listing current tiddler tags, and allowing toggling of tags.
!Advanced Users
You can change the global defaults for TagsTreePlugin, like default {{{level}}} value or level styles, by editing or overriding the first config.macros.tagsTree attributes below.
!Code
***/
//{{{
config.macros.tagsTree = {
	expand : "+",
	collapse : "–",
	depth : 6,
	level : 1,
	sortField : "",	
	labelField : "",
	styles : ["h1","h2","h3","h4","h5","h6"],
	trees : {}
}

config.macros.tagsTree.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
	var root = params[0] ? params[0] : (tiddler ? tiddler.title : null);
	var excludeTag = params[1] ? params[1] : "excludeTagsTree";
	var level = params[2] ? params[2] : config.macros.tagsTree.level;
	var depth = params[3] ? params[3] : config.macros.tagsTree.depth;
	var sortField = params[4] ? params[4] : config.macros.tagsTree.sortField;
	var labelField = params[5] ? params[5] : config.macros.tagsTree.labelField;
	var showButtons = (level>0);
	var id = config.macros.tagsTree.getId(place);
	if (config.macros.tagsTree.trees[id]==undefined) config.macros.tagsTree.trees[id]={};
	config.macros.tagsTree.createSubTree(place,id,root,excludeTag,[],level>0 ? level : 1,depth, sortField, labelField,showButtons);
}

config.macros.tagsTree.createSubTree = function(place, id, root, excludeTag, ancestors, level, depth, sortField, labelField,showButtons){
	var childNodes = root ? this.getChildNodes(root, ancestors) : this.getRootTags(excludeTag);
	var isOpen = (level>0) || (!showButtons);
	if (root && this.trees[id][root]!=undefined) isOpen = this.trees[id][root]; 
	if (root && ancestors.length) {
		var t = store.getTiddler(root);
		if (childNodes.length && depth>0) {
			var wrapper = createTiddlyElement(place , this.styles[Math.min(Math.max(ancestors.length,1),6)-1],null,"branch");
			if (showButtons) {
				b = createTiddlyButton(wrapper, isOpen ? config.macros.tagsTree.collapse : config.macros.tagsTree.expand, null, config.macros.tagsTree.onClick);
				b.setAttribute("treeId",id);
				b.setAttribute("tiddler",root);					
			}
			createTiddlyText(createTiddlyLink(wrapper, root),t&&labelField ? t.fields[labelField] ? t.fields[labelField] : root : root);
		}
		else 
			createTiddlyText(createTiddlyLink(place, root,false,"leaf"),t&&labelField ? t.fields[labelField] ? t.fields[labelField] : root : root);
	}
	if (childNodes.length && depth) {
		var d = createTiddlyElement(place,"div",null,"subtree");
		d.style.display= isOpen ? "block" : "none";
		if (sortField)
			childNodes.sort(function(a, b){
				var fa=a.fields[sortField];
				var fb=b.fields[sortField];
				return (fa==undefined && fb==undefined) ? a.title < b.title ? -1 : a.title > b.title ? 1 : 0 : (fa==undefined && fb!=undefined) ? 1 :(fa!=undefined && fb==undefined) ? -1 : fa < fb ? -1 : fa > fb ? 1 : 0;
			})
		for (var cpt=0; cpt<childNodes.length; cpt++)
			this.createSubTree(d, id, childNodes[cpt].title, excludeTag, ancestors.concat(root), level-1, depth-1, sortField, labelField, showButtons);	
	}	
}

config.macros.tagsTree.onClick = function(e){
	var id = this.getAttribute("treeId");
	var tiddler = this.getAttribute("tiddler");	
	var n = this.parentNode.nextSibling;
	var isOpen = n.style.display != "none";
	if(config.options.chkAnimate && anim && typeof Slider == "function")
		anim.startAnimating(new Slider(n,!isOpen,null,"none"));
	else
		n.style.display = isOpen ? "none" : "block";
	this.firstChild.nodeValue = isOpen ? config.macros.tagsTree.expand : config.macros.tagsTree.collapse;
	config.macros.tagsTree.trees[id][tiddler]=!isOpen;
	return false;
}

config.macros.tagsTree.getChildNodes = function(root ,ancestors){
	var childs = store.getTaggedTiddlers(root);
	var result = new Array();
	for (var cpt=0; cpt<childs.length; cpt++)
		if (childs[cpt].title!=root && ancestors.indexOf(childs[cpt].title)==-1) result.push(childs[cpt]);
	return result;
}

config.macros.tagsTree.getRootTags = function(excludeTag){
	var tags = store.getTags(excludeTag);
	tags.sort(function(a,b) {return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : (a[0].toLowerCase() == b[0].toLowerCase() ? 0 : +1);});
	var result = new Array();
	for (var cpt=0; cpt<tags.length; cpt++) {
		var t = store.getTiddler(tags[cpt][0]);
		if (!t || t.tags.length==0) result.push(t ? t : {title:tags[cpt][0],fields:{}});
	}
	return result;
}

config.macros.tagsTree.getId = function(element){
	while (!element.id && element.parentNode) element=element.parentNode;
	return element.id ? element.id : "<html>";
}

config.shadowTiddlers.TagsTreeStyleSheet = "/*{{{*/\n";
config.shadowTiddlers.TagsTreeStyleSheet +=".leaf, .subtree {display:block; margin-left : 0.5em}\n";
config.shadowTiddlers.TagsTreeStyleSheet +=".subtree {margin-bottom:0.5em}\n";
config.shadowTiddlers.TagsTreeStyleSheet +="#mainMenu {text-align:left}\n";
config.shadowTiddlers.TagsTreeStyleSheet +=".branch .button {border:1px solid #DDD; color:#AAA;font-size:9px;padding:0 2px;margin-right:0.3em;vertical-align:middle;text-align:center;}\n";
config.shadowTiddlers.TagsTreeStyleSheet +="/*}}}*/";

store.addNotification("TagsTreeStyleSheet", refreshStyles); 

config.shadowTiddlers.MainMenu="<<tagsTree>>"

config.shadowTiddlers.PageTemplate = config.shadowTiddlers.PageTemplate.replace(/id='mainMenu' refresh='content' /,"id='mainMenu' refresh='content' force='true' ")

//}}}
/*{{{*/
.leaf, .subtree {display:block; margin-left : 0.5em}
.subtree {margin-bottom:0.5em}
#mainMenu {text-align:left}
.branch .button {border:1px solid #DDD; color:#AAA;font-size:6px;padding:0 2px;margin-right:0.3em;vertical-align:middle;text-align:center;}
/*}}}*/
/***
|''Name''|TagsplorerMacro|
|''Description''|tag-based faceted tiddler navigation|
|''Author''|FND|
|''Version''|1.3.3|
|''Status''|stable|
|''Source''|http://svn.tiddlywiki.org/Trunk/contributors/FND/plugins/TagsplorerMacro.js|
|''CodeRepository''|http://svn.tiddlywiki.org/Trunk/contributors/FND/|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.6.0|
|''Keywords''|navigation tagging|
!Usage
{{{
<<tagsplorer [exclude:<tagName>] [tag] [tag] … >>
}}}
!!Examples
<<tagsplorer exclude:excludeLists systemConfig>>
!Revision History
!!v1.0 (2010-03-21)
* initial release
!!v1.1 (2010-03-26)
* added sorting for tag and tiddler collections
* added section headings
* adjusted styling
!!v1.2 (2010-03-27)
* added exclude parameter for excludeLists support
!!v1.3 (2010-03-29)
* added automatic scrolling after tag selection
!To Do
* refresh handling
* "open all" functionality
* animations for new/removed tags/tiddlers (requires array diff'ing)
!StyleSheet
.tagsplorer {
	border: 1px solid [[ColorPalette::TertiaryLight]];
	padding: 5px;
	background-color: [[ColorPalette::TertiaryPale]];
}

.tagsplorer h3,
.tagsplorer ul {
	margin: 0;
	padding: 0;
}

.tagsplorer h3 {
	margin: 0 -5px;
	padding: 0 5px;
	border: none;
}

.tagsplorer h3.tags {
	float: left;
	margin-right: 1em;
}

.tagsplorer h3.tiddlers {
	margin-top: 5px;
	border-top: 1px solid [[ColorPalette::TertiaryLight]];
	padding-top: 5px;
}

.tagsplorer .tagSelection {
	overflow: auto;
	list-style-type: none;
}

.tagsplorer .tagSelection li {
	float: left;
}

.tagsplorer .tagSelection li a.tag {
	border: 1px solid [[ColorPalette::TertiaryLight]];
	border-top-right-radius: 0.7em;
	-webkit-border-top-right-radius: 0.7em;
	-moz-border-radius-topright: 0.7em;
	border-bottom-right-radius: 0.7em;
	-webkit-border-bottom-right-radius: 0.7em;
	-moz-border-radius-bottomright: 0.7em;
	padding: 0 0.5em 0 0.3em;
}

.tagsplorer .tiddlerList {
	margin-left: 1.5em;
}
!Code
***/
//{{{
(function($) {

config.shadowTiddlers.StyleSheetTagsplorer = store.getTiddlerText(tiddler.title + "##StyleSheet");
store.addNotification("StyleSheetTagsplorer", refreshStyles);

var macro = config.macros.tagsplorer = {};

config.macros.tagsplorer = $.extend(macro, {
	locale: {
		tagsLabel: "Tags",
		tiddlersLabel: "Tiddlers",
		newTagLabel: "[+]",
		newTagTooltip: "add tag to filter",
		delTagTooltip: "remove tag from filter",
		noTagsLabel: "N/A",
		noTiddlersLabel: "N/A"
	},

	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		var prms = paramString.parseParams("anon", null, true);
		var excludeTag = getParam(prms, "exclude", null);
		var tags = prms[0].anon || [];
		var tiddlers = getTiddlers(tags, excludeTag);

		var container = $('<div class="tagsplorer" />').
			append('<h3 class="tags" />').children(":last").
				text(this.locale.tagsLabel).end().
			append('<ul class="tagSelection" />').
			append('<h3 class="tiddlers" />').children(":last").
				text(this.locale.tiddlersLabel).end().
			append('<ul class="tiddlerList" />').
			data("excludeTag", excludeTag);

		macro.refreshTags(tags, container);
		macro.refreshTiddlers(tiddlers, container);

		container.appendTo(place);
	},
	newTagClick: function(ev) {
		var btn = $(this);
		var container = btn.closest(".tagsplorer");

		var tags = container.find(".tagSelection").data("tags");
		var tiddlers = container.find(".tiddlerList").data("tiddlers");
		var tagSelection = getTagSelection(tiddlers, tags);

		var popup = Popup.create(this, "ul");
		if(tagSelection.length) {
			$.each(tagSelection, function(i, tag) {
				createTagElement(popup, tag, macro.locale.newTagTooltip, macro.onTagClick);
			});
		} else {
			createTagElement(popup, macro.locale.noTagsLabel);
		}
		$(popup).data({
			container: container,
			tags: tags,
			tiddlers: tiddlers
		});
		Popup.show();
		ev.stopPropagation();
		return false;
	},
	onTagClick: function(ev) {
		var btn = $(this);
		var popup = btn.closest(".popup");
		var data = popup.data();
		var tag = btn.text();
		data.tags.pushUnique(tag);
		data.tiddlers = filterTiddlers(data.tiddlers, tag);
		if(config.options.chkAnimate && anim && typeof Scroller == "function") {
			anim.startAnimating(new Scroller(data.container[0]));
		} else {
			window.scrollTo(0, ensureVisible(data.container[0]));
		}
		macro.refreshTags(data.tags, data.container);
		macro.refreshTiddlers(data.tiddlers, data.container);
		return !ev.ctrlKey;
	},
	delTag: function(ev) {
		var btn = $(this);
		var container = btn.closest(".tagsplorer");
		var tags = container.find(".tagSelection").data("tags");
		tags.remove(btn.text());
		var tiddlers = getTiddlers(tags, container.data("excludeTag"));
		btn.parent().remove();
		macro.refreshTags(tags, container);
		macro.refreshTiddlers(tiddlers, container);
		return false;
	},
	refreshTags: function(tags, container) {
		var orig = container.find(".tagSelection");
		var clone = orig.clone().empty();
		clone.data("tags", tags);

		var self = this;
		$.each(tags, function(i, tag) {
			createTagElement(clone, tag, self.locale.delTagTooltip, self.delTag, "tag");
		});
		createTagElement(clone, this.locale.newTagLabel, this.locale.newTagTooltip, this.newTagClick).
			addClass("button");

		orig.replaceWith(clone);
	},
	refreshTiddlers: function(tiddlers, container) {
		var orig = container.find(".tiddlerList");
		var clone = orig.clone().empty();
		clone.data("tiddlers", tiddlers);

		if(tiddlers.length) {
			$.each(tiddlers, function(i, tiddler) {
				var el = $("<li />").appendTo(clone)[0];
				createTiddlyLink(el, tiddler.title, true);
			});
		} else {
			$("<li />").text(macro.locale.noTiddlersLabel).appendTo(clone);
		}

		orig.replaceWith(clone);
	}
});

var getTiddlers = function(tags, excludeTag) {
	var tiddlers = store.getTiddlers("title", excludeTag);
	for(var i = 0; i < tags.length; i++) {
		tiddlers = filterTiddlers(tiddlers, tags[i]);
	}
	return tiddlers;
};

var filterTiddlers = function(tiddlers, tag) {
	return $.map(tiddlers, function(item, i) {
		if(item.tags.contains(tag)) {
			return item;
		}
	});
};

var getTagSelection = function(tiddlers, exclude) {
	var tags = [];
	for(var i = 0; i < tiddlers.length; i++) {
		var _tags = tiddlers[i].tags;
		for(var j = 0; j < _tags.length; j++) {
			var tag = _tags[j];
			if(!exclude.contains(tag)) {
				tags.pushUnique(tag);
			}
		}
	}
	return tags.sort();
};

var createTagElement = function(container, label, tooltip, action, className) {
	var el = $("<li />").appendTo(container);
	return $('<a href="javascript:;" />').
		addClass(className || "").
		attr("title", tooltip || "").
		text(label).
		click(action || null).
		appendTo(el);
};

})(jQuery);
//}}}
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://farm1.static.flickr.com/8/9335897_f55c8f30c5.jpg>>
<<showtoc>>
!Overview
[[Taking it Forward — From Ideas to Action]] is a simple and effective process to pull together the key learnings from a workshop and identify small actions for participants to take when they return to the work place. This activity combines group work with individual reflection and builds individual commitment to taking action.

!Ideas to Action
<<tiddler [[Ideas to Action##Overview]]>>
This activity can be used towards the end of a workshop, and works equally well with teams that work together and know each other and those who don’t. It is helpful to review learning and expand participants’ ideas about how to apply what they have learned during the workshop.

The aim of this activity is to review the course content and maximise the possibility of the skills, ideas and tools learned being transferred to the workplace. It also reinforces the learning as it incorporates a number of solutions-focused tools such as future perfect, counters and small actions. 
By creating a positive future ([[Futur Perfect]]), the activity motivates people to take action after the workshop. Participants are encouraged to choose small actions and to speculate on the positive consequences of taking those actions — and this too increases their commitment to using what they have learned.

!Objectives
* pull together the key learnings from a workshop to return to the work place.
* review the workshop content 
* maximise the possibility of the skills, ideas and tools learned 
* transfer to the workplace. 
* reinforce the learning

!Timing
25-30 min

!Materials
Optimal group size: 6-60

!Audience
Group / Individual

!Procedure
!!Process Overview
* Get participants into groups
* Collect ideas, concepts and tools covered during the workshop
* Draw a Future Perfect poster
* Individually identify small actions
* Sharing small actions with positive consequences

!!Step for Step
# Start the activity by explaining that they are now going to explore how they will take forward what they have learnt during the workshop — from this room into their jobs.
# Get the participants into groups of 3-5.
# Show the instructions below on a slide or flipchart: {{center{

| ''Taking it Forward''<br> List all the ideas, concepts and tools covered during <br> this workshop that you would like to use in your <br> work over the next month or so… |

}}}
# Ask them to list all the ideas, concepts and tools from the workshop that they can think of. 
# Tell them they have 2 minutes for this activity. 
# They don’t need to agree or discuss it at length. 
# They all have a pen which they can use to write on the group’s flip chart.
# Call time after a couple of minutes. Ask the participants to rip the page off the flip chart and put it somewhere they can see it…such as on the wall, a table or the floor nearby.
# Show the following on a slide or flipchart {{center{

| ''Applications''<br>Suppose you are able to put all this into practice <br>over the next three months… <br> Collectively create a poster that shows when and how <br>you will be doing this |

}}}
# Read the instructions to the participants and explain that a poster can be whatever they want it to be – it’s a visual representation of them putting this into practice over the next three months.
# Tell them they have 8 minutes for this.
# Show the next set of instructions below {{center{

| ''Small Actions''<br> Individually pick the smallest steps with <br>which you could make the maximum impacts |

}}}
# invite the participants to sit at their tables, and say that now they have created a future perfect, the next thing to do is to pick some small steps that will make the maximum impact over the next days and weeks.
# Invite them to spend a few minutes choosing their small steps and to write them down in their work books.{{center{

| ''Good consequences?'' <br>  - Share your small steps <br> - Speculate on what beneficial <br>consequences might arise from <br>these small steps |

}}}
# After a few minutes, show a slide/flipchart with these instructions and ask the participants to turn to the person next to them (working in 2’s or 3’s depending on the number in the group) and to share their steps — those they are happy to share — with their colleague , and to speculate on the beneficial consequences that might arise from these steps… what good things might happen as a result of them taking these small steps?
# After a few minutes, check with the group that everybody has a step that they can take

''If time:'' you can ask people to say, on a scale of 0-10 where 10 is you will definitely take this small step and 0 is there is no chance — where are they now. If everybody says about 8, 9 or 10, then move on. If any are lower, invite them to spend a few more minutes with their partner exploring what might increase the likelihood of the step being taken.

!Debriefing
* As this activity is best positioned at the end of a workshop, it can be followed by an appropriate closing process.
* I found that by getting the participants into groups using coloured pens that they were more likely to contribute to writing their contributions on flip charts. The fact that they don’t necessarily need to have group consensus on everything that is written on the flip chart also helps with this.
* The drawing of a collective future perfect facilitates a sharing of ideas and the creation of new applications.
* The sharing of small actions seems to have a large impact on the probability of taking the action, and the idea of checking the likelihood that they will take the step on a scale of 0-10 also models [[Solution Focus]] at work.
* When they have completed the poster, you can take a photo of them which you can send to them after the workshop as a reminder.
* If they are a bit slow to get started you might like to give an example of what you are looking for, eg: that “resourceful questioning” is a tool, or they might like the idea of ‘following rather than leading’

!Credits
Janine Waldman, The Solutions Focus, http://www.thesolutionsfocus.co.uk

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Taking it Forward - From Ideas to Action — PDF| http://www.thesolutionsfocus.co.uk/sites/default/files/Taking_it_forward_-_from_ideas_to_action%5B1%5D.pdf]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://ascend.no/flow/w_tangle.jpg>>
<<showtoc>>
!Overview
[[Tangled Mess]] is an interactive game illustrating the importance of trust and team work. Trusting and empowering the team is quite often the most effective solution. Some team members will intentionally take advantage of the situation, invariably destroying the very trust that these exercises should be building. Take note of the alacrity with which these team members contact their lawyers.

!Tangled Mess
<<tiddler [[Tangled Mess##Overview]]>>

!Objectives
* Trusting and empowering the team

!Timing
15 mins, plus court time

!Materials
* People and space
* 1 stop watch per team
* Video camera
* Corporate Lawyer

!Audience
Group / Individual

!Procedure
# Each team selects a manager. 
# Then, standing in a circle, the rest of the team members are asked to hold hands with others that are not directly adjacent to them. 
# Each person should be holding hands with two different people, forming a tangled mess. 
# The team must then untangle themselves by following the instructions of the manager. 
# None of the other team members are allowed to talk. 
# Record the time it takes to untangle. 
# Repeat the process, but this time remove the manager and let the team untangle themselves through communication and collaboration. 
# Record the time; it should be faster.
Then try untangling in silence, and see what happens.

!Note
Be wary of team members taking advantage of the situation, and filing a sexual harassment lawsuit for the inevitable groping that will occur. It might be a good idea to videotape the exercise, to facilitate ensuing depositions.

!Debriefing
* Trusting and empowering the team is quite often the most effective solution.
* Some team members will intentionally take advantage of the situation, invariably destroying the very trust that these exercises should be building. Take note of the alacrity with which these team members contact their lawyers.

!Credits
Michael ~McCullough

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/tangled-mess/
<data>{"abstract":"[[Tangram]], eine Übung mit einem alten Spiel die zu den Themen [[Kommunikation]] - [[Aktives Zuhören]] - [[Frageformen]] - eventuell sogar [[Konflikte|Konflikt]] (weil die manchmal aus dem Spiel entstehen können) zu Einsatz kommen kann."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.mormonchic.com/crafty/images/quiet_toys/tangram_games.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Tangram","abstract") </script>

!Tangram
<script> return "<<tiddler [[Tangram##Overview]]>>" </script> 
Tangram (Schmidt Spiel und Freizeit ~GmbH, 12359 Berlin, Nr. 51016) - ein chinesisches Legespiel - im Original für eine oder mehrere Personen, habe ich für Seminarzwecke abgewandelt. 
Tangram ist kein Spiel im eigentlich Sinne, eher eine Philosophie, und besteht aus 7 kleinen unterschiedlichen Holzformen (1 Quadrat, 1 Parallelogramm und 5 Dreiecken) sowie einer Spielanleitung mit über 800 Bildern und Auflösungen.

!Objectives
* [[Kommunikation]]

!Timing
Spieldauer je nach Personen zwischen 5 und 20 Minuten, deshalb könnte es wichtig sein, im Vorfeld gleich einen Zeitrahmen festzulegen.

!Audience
Group / Individual

!Materials
* ~Tangram-Spiel (Schmidt Spiel und Freizeit ~GmbH, 12359 Berlin, Nr. 51016)

!Procedure
!!Spielanleitung
2 Personen setzen sich Rücken an Rücken; die eine Person erhält die 7 Holzformen, die andere Person die Spielanleitung, und zwar den Auflösungsteil. Der Auflösungsteil zeigt auch alle Bilder (z.B. Pfeil, Katze, Hammer, Schiff und unzählige Bilder mehr) hat jedoch den Vorteil, dass man erkennen kann, welches Holzteil wohin gelegt werden muss, um das Gesamtbild darzustellen. Es soll den Personen ja nicht unnötig schwer gemacht werden, deshalb den Auflösungsteil. Der andere Bildteil würde den zeitlichen Rahmen des Seminars sprengen.

!!Spieleranweisung
Die Person mit den Bildvorlagen versetzt jetzt die Person mit den Holzteilen allein durch Beschreibung und Anweisung in die Lage, die Teile so zu legen, dass eben das Gesamtbild entsteht.

Es darf eine ganz normale [[Kommunikation]] geführt werden. Einzige Ausnahme: Die aktiven Personen dürfen nicht über die Schulter zu der anderen Person schauen (Fairneß).

Anweisung an die stillen Beobachter, die nicht in das Geschehen eingreifen dürfen: Beobachten Sie genau: Was lief gut während des Spiels und warum? Wo waren die Hürden und warum? Was konnten Sie noch beobachten - was ist zwischen den Personen abgelaufen?

Hürden, die die meisten Personen nehmen müssen:

Sie geben kein Ziel vor, z.B. wir legen jetzt ein Schiff (Gesprächsführung, Gesprächsstruktur).
* Sie verständigen sich nicht über Begriffe. Wenn ich z.B. nicht weiss was eine Raute ist (Parallelogramm), dann weiss ich auch nicht, was ich wohin legen soll (übertragbar auf Fremdwörter, Fachbegriffe).
* Aktives Zuhören/Fragen wird häufig nicht ausreichend praktiziert, insbesondere die [[Kontrollfrage|Frageformen##Kontrollfrage]] nicht. Das verhindert wiederum zu erkennen, wo ich gerade im Gespräch stehe (Missverständnisse entstehen und können nicht ausgeräumt werden, weil nicht erkannt).
* Es wird nicht bedacht, dass meine eigenen Worte bei dem anderen unterschiedliche Bilder auslösen können (präzise Formulierungen suchen, mit Analogien aus dem Alltag arbeiten, die jedem vertraut und bekannt sind).
* Durch die Art und Weise (Stimme/Ton) des Sprechens entstehen Emotionen. Je nach dem welche Persönlichkeiten miteinander spielen - positive oder negative. Das kann maßgeblich das Spiel beeinflussen - es könnten Machtkämpfe entstehen ([[Konflikt]]).
* Unterschiedliches Kommunikationsverhalten Mann/Frau

Das ist ein [[Rollenspiel|Improvisationstheater]] mit vielen positiven Aspekten: Personen mit Aversionen gegen Rollenspiele bekommen plötzlich Lust doch mitzumachen, Ehrgeiz wird geweckt, durch die Eigendynamik entstehen so viele Situationen, die die menschliche [[Kommunikation]] widerspiegeln, so dass dieses Spiel als "echt" empfunden wird. Die Beobachter können genau erkennen, wo überall in der [[Kommunikation]] die "Gefahren" lauern und was jeder tun kann, um weniger Missverständnisse entstehen zu lassen.

!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Tangram+%28Buchner%29&db=3]]
<data>{"abstract":"Um sich Dinge und Informationen zu merken, die man bei Vorträgen, Diskussionen oder sonstigen Gelegenheiten, wo kein Stichwortzettel zur Hand ist, kann man den Taschen-Trick anwenden."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://comas.offeneslernen.de/Media/app/4/Bilder-Test/taschentrick.bmp>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Taschen-Trick","abstract") </script>

!~Taschen-Trick
<script> return "<<tiddler [[Taschen-Trick##Overview]]>>" </script> 
Um sich Dinge und [[Informationen|Information]] zu merken, die man bei Vorträgen, Diskussionen oder sonstigen Gelegenheiten, wo kein Stichwortzettel zur Hand ist, kann man den Taschen-Trick anwenden.

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Man legt sich einige Gegenstände zurecht, z.B. Geldstücke, Büroklammer, Murmel, Kastanie. Diese nimmt man in die Hand und verbindet sie mit der Information oder dem Stichwort, was man sich merken will. Dann steckt man sie z.B. in die Hosentasche. In der Situation, wo man die Information braucht, fasst man in die Tasche und erinnert sich an den Begriff, der mit dem Gegenstand gekoppelt ist.

Das gleiche Prinzip verfolgt der berühmte Knoten im Taschentuch oder Gegenstände, die man als Merkhelferlein bezeichnet. Diese können auch sichtbar auf dem Schreibtisch deponiert sein, als Merkzettel an der Tür hängen, oder akustisch durch den Weckmechanismus eines Handys wirken.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Gedaechnistraining]<<tiddlerList tags:"mnemonic,-newTemplate" header:"Übungen Gedaechnistraining">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://comas.offeneslernen.de/lerno/MPX_content.php?PHPSESSID=&content_id=1143
* http://www.lizzynet.de/dyn/9.asp?Aid=124&Avalidate=174648464&cache=68120&url=43317%2Easp
/***
|Name|TaskTimerPlugin|
|Source|http://www.TiddlyTools.com/#TaskTimerPlugin|
|Documentation|http://www.TiddlyTools.com/#TaskTimerPluginInfo|
|Version|1.4.0|
|Author|[[EricShulman]] - 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||
|Options|##Configuration|
|Description|'timer' button automatically writes start/end/elapsed time into tiddler content|
Quickly generate 'timed task' logs that can be used for status reports, billing purposes, etc.  
!!!!!Documentation
> see [[TaskTimerPluginInfo]]
!!!!!Configuration
> see [[TaskTimerPluginConfig]]
!!!!!Revisions
<<<
2008.10.31 [1.4.0] added 'buttonFormat' for custom timer button display using %0=current, %1=start, %2=elapsed
|please see [[TaskTimerPluginInfo]] for additional revision details|
2007.03.14 [0.5.0] converted from inline script
<<<
!!!!!Code
***/
//{{{
version.extensions.TaskTimerPlugin= {major: 1, minor:4, revision: 0, date: new Date(2008,10,31)};

config.macros.taskTimer = {
	label: "start timer",
	title: "press to start the task timer",
	format: "|%4|%0|%1|%2|%3|\\n", // note: double-backslash-en, also date is %4 (for backward compatibility)
	defText: " ", // default description text
	todayKeyword: "today",
	todayFormat: "0MM/0DD/YYYY", // default format - superceded by CalendarPlugin, DatePlugin, or DatePluginConfig
	datestampFormat: "YYYY-0MM-0DD", // date stamp format
	buttonFormat: "%0 - %2",  // timer button formats: %0=current time, %1=start time, %2=elapsed time
	defHeader: "|//Date//|//Description//|//Started//|//Stopped//|//Elapsed//|\n",
	defTarget: "ActivityReport",
	prompt: "Enter a short description for this activity.  Press [cancel] to continue timer.",
	askMsg: "Enter the title of a tiddler in which to record this activity.  Press [cancel] to continue timer.",
	createdMsg: "'%0' has been created",
	updatedMsg: "'%0' has been updated",
	marker: "/%"+"tasktimer"+"%/",
	tag: "task",
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var target=params.shift(); // get optional target tiddler title
		if (!target) target="";
		var format=this.format; if (params[0]) format=params.shift(); // get optional output format
		var prompt=this.prompt; if (params[0]) prompt=params.shift(); // get optional prompt text
		var defText=this.defText; if (params[0]) defText=params.shift(); // get optional default text
		var onclick="config.macros.taskTimer.toggle(this,'"+target+"','"+format+"','"+prompt+"','"+defText+"')";
		createTiddlyElement(place,"span").innerHTML =
			'<input type="button" value="start timer" title="'+this.title+'" onclick="'+onclick+'">';
	},
	toggle: function(here,target,format,msg,defText) {
		if (!target || !target.length || target=="here") {
			var  tid=story.findContainingTiddler(here);
			target=tid?tid.getAttribute("tiddler"):"ask";
		}
		if (!here.running) { // not running… start timer…
			var now=new Date();
			here.startTime=now;
			here.title=(here.target?here.target:target)+" - "+now.formatString("started at 0hh:0mm:0ss");
			here.value=this.buttonFormat.format([now.formatString("0hh:0mm:0ss"),now.formatString("0hh:0mm:0ss"),0]);
			here.id=(new Date()).convertToYYYYMMDDHHMMSSMMM()+Math.random().toString(); // unique ID
			here.ticker=setTimeout("config.macros.taskTimer.tick('"+here.id+"')",500);
			here.running=true;
		} else {
			if (target=="ask") {
				target=prompt(this.askMsg,here.target?here.target:this.defTarget);
				if (!target) return; // user cancelled input…  continue timer
			}
			var txt=prompt(msg,defText); // get description from user
			if (!txt) return; // user cancelled input…  continue timer
			if (target==this.todayKeyword || target.substr(0,this.todayKeyword.length+1)==this.todayKeyword+":")
				target=(new Date()).formatString(this.getJournalFormat(target));
			here=document.getElementById(here.id); // RE-get button element after timer has stopped…
			clearTimeout(here.ticker);
			here.target=target;
			var before=this.defHeader;
			var after=this.marker+"\n";
			var tiddler=store.getTiddler(here.target);
			if (tiddler && tiddler.text.length) {
				var pos=tiddler.text.indexOf(this.marker);
				if (pos==-1) pos=tiddler.text.length; // no marker, append content to end
				var before=tiddler.text.substr(0,pos); // everything up to marker
				if (before.length&&before.substr(before.length-1)!="\n") before+="\n"; // start on a new line
				var after=tiddler.text.substr(pos); // marker+everything else
			}
			var start=here.startTime.formatString("0hh:0mm:0ss");
			var now=new Date();
			var stop=now.formatString("0hh:0mm:0ss");
			var diff=new Date(now-here.startTime);
			var s=diff.getUTCSeconds(); if (s<10) s="0"+s;
			var m=diff.getUTCMinutes();  if (m<10) m="0"+m;
			var h=diff.getUTCHours();  if (h<10) h="0"+h;
			var elapsed=h+":"+m+":"+s;
			var dateStamp=now.formatString(config.macros.taskTimer.datestampFormat);
			var newtxt=before+format.format([txt,start,stop,elapsed,dateStamp])+after;
			var newtags=(tiddler?tiddler.tags:['task']); // include 'task' tag when creating new tiddlers
			store.saveTiddler(here.target,here.target,newtxt,config.options.txtUserName,new Date(),newtags,tiddler?tiddler.fields:null);
			if (!tiddler) displayMessage(this.createdMsg.format([here.target]));
			else displayMessage(this.updatedMsg.format([here.target]));
			here.running=false;
			here.value=this.label;
			here.title=this.title;
			var  tid=story.findContainingTiddler(here);
			if (!tid || tid.getAttribute("tiddler")!=target) // display target tiddler, but only when button is not IN the target tiddler
				{ story.displayTiddler(story.findContainingTiddler(here),here.target); story.refreshTiddler(here.target,1,true); }
		}
	},
	tick: function(id) {
		var here=document.getElementById(id); if (!here) return;
		var now=new Date();
		var diff=new Date(now-here.startTime);
		var s=diff.getUTCSeconds(); if (s<10) s="0"+s;
		var m=diff.getUTCMinutes();  if (m<10) m="0"+m;
		var h=diff.getUTCHours();  if (h<10) h="0"+h;
		var elapsed=h+":"+m+":"+s;
		now=now.formatString("0hh:0mm:0ss");
		var start=here.startTime.formatString("0hh:0mm:0ss");
		here.value=this.buttonFormat.format([now,start,elapsed]);
		here.ticker=setTimeout("config.macros.taskTimer.tick('"+id+"')",500);
	},
	getJournalFormat: function(target) {
		var fmt=target.split(":"); fmt.shift(); fmt=fmt.join(":");
		if (!fmt || !fmt.length) { // if date format was not specified
			if (config.macros.date)  // if installed, use default from DatePlugin
				fmt=config.macros.date.linkformat;
			if (config.macros.calendar) { // if installed, use default from CalendarPlugin
				if (!config.macros.date) // hard-coded calendar fallback if no DatePlugin
					fmt=config.macros.calendar.tiddlerformat;
				else // journalDateFmt is set when calendar is rendered with DatePlugin
					fmt=config.macros.calendar.journalDateFmt;
			}
		}
		if (!fmt) { // if not specified and no DatePlugin/CalendarPlugin
			// get format from <<newJournal>> in SideBarOptions
			var text = store.getTiddlerText("SideBarOptions");
			var re=new RegExp("<<(?:newJournal)([^>]*)>>","mg"); var fm=re.exec(text);
			if (fm && fm[1]!=null) { var pa=fm[1].readMacroParams(); if (pa[0]) fmt = pa[0]; }
		}
		if (!fmt) var fmt=this.todayFormat; // no "newJournal"... final fallback.
		return fmt;
	}
}
//}}}
/***
|Name|TaskTimerPluginConfig|
|Source|http://www.TiddlyTools.com/#TaskTimerPluginConfig|
|Documentation|http://www.TiddlyTools.com/#TaskTimerPluginInfo|
|Version|1.3.0|
|Author|[[EricShulman]] - 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|formats other optional settings for TaskTimerPlugin|
***/
//{{{
// default target tiddler title (when 'ask' option is used)
config.macros.taskTimer.defTarget="ActivityReport";

// table heading (when creating **new** target tiddlers only)
config.macros.taskTimer.defHeader="|//Date//|//Description//|//Started//|//Stopped//|//Elapsed//|\n";

// note: double-backslash-en, also datestamp is %4 (for backward compatibility)
config.macros.taskTimer.format="|%4|%0|%1|%2|%3|\\n";

// date stamp format (used with %4, above)
config.macros.taskTimer.datestampFormat="YYYY-0MM-0DD";

// default description text - note: do not use empty string (e.g., "")
config.macros.taskTimer.defText=" ";

// format for target tiddler title (when "today" option is used)
// otherwise, value is superceded by superceded by CalendarPlugin, DatePlugin, DatePluginConfig,
// or format from <<newJournal>> macro embedded in SideBarOptions
config.macros.taskTimer.todayFormat="0MM/0DD/YYYY";

// marker for locating 'insertion point' in target tiddler
config.macros.taskTimer.marker="/%"+"tasktimer"+"%/"; //

// default tag (when creating **new** target tiddlers only)
config.macros.taskTimer.tag="task";
//}}}
/%
|Name|TastyCupCakes.com|
|URL|http://blog.tastycupcakes.com/|
|Description|Toolkit/Games to create better and more effective teams and build better products.|
|Author|enter author/moderator info|
!Overview
<script> return DataTiddler.getData("Tastycucpcakes.com","abstract") </script>

!Tastycucpcakes.com
<script> return "<<tiddler [[Tastycucpcakes.com##Overview]]>>" </script> 

!Objectives
* More effective teams 
* Build better products

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

%/
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://team-spider.it-agile.de/TeamSpider/images/spiderchart_klein.jpg>>
<<showtoc>>
!Overview
The [[team radar|Team Radar]] visualizes the current state of a number of variables.

!Team Radar
<<tiddler [[Team Radar##Overview]]>>

!Objectives
* Gather Data, Generate Insights in a [[retrospective|Agile Retrospectives]]
* Visualize the current state of a number of variables

!Timing
20min

!Audience
Group

!Materials
* flipchart with drawn empty radar chart (axes only)

!Procedure
# Choose the variables you want to analyze (product owner's availability, technical infrastructure, team temperature, etc.)
# Each participant gets a pencil colour for her own.
# Let the participants draw dots on the axis of each variable according their personal assessment of the current state. Let each participant connect his dots.
Variants:
* In addition to the current state the [[facilitator|Facilitator]] asks for the goal state.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* 
<data>{"abstract":"[[Team als Organismus]]: ein Modell, das sich gut zum Einsatz in [[Teams|Team]] eignet, in den [[Konflikte|Konflikt]] verdeckt oder offen die Zusammenarbeit beeinträchtigen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.berlinews.de/archiv-bilder/mdc_proteinkarte.jpeg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Team als Organismus","abstract") </script>

!Team als Organismus
<script> return "<<tiddler [[Team als Organismus##Overview]]>>" </script> 
Treten in einem [[Team]] [[Konflikte|Konflikt]] auf ([[Teamentwicklung / Teambuilding]]), kann es nützlich sein, in Analogien zu denken. Denn es ist ja allseits bekannt, dass Bilder mehr als 1000 Worte sagen. Als Ausgangssituation gibt es eine Arbeitsgruppe von ca. 6-12 Personen (bis 15 ist auch o.k.), welche in irgendeiner Form zusammenarbeiten. 
Man sollte dieses Modell möglichst früh einsetzen. Es ist humorvoll, kraftvoll und der [[Konflikt]] ist danach oft nicht mehr der Gleiche wie vorher.

!Objectives
* Konfliktbewältigung im Team

!Timing
30min

!Audience
Group: 6-12 Personen (bis 15 ist auch o.k.), welche in irgendeiner Form zusammenarbeiten. 

!Materials
* Flipchart

!Procedure
Das Modell läuft grob in drei Schritten ab.
# Jemand aus dem [[Team]] oder der Supervisor/Trainer malt einen menschlichen Organismus auf die ~Flip-Chart. <br>Nun wird jeder gebeten, mit einem Marker das Organ einzutragen, welches er glaubt, momentan in dieser Gruppe zu sein. Dazu bedarf es manchmal ein wenig liebevoll penetranter Unterstützung, je nach Abstraktionsvermögen. <br>Dazu sagt dann jeder einige Sätze, aus welchem Grund er sich momentan so sieht. Und vor allen Dingen immer das Erste nehmen, was einem durch den Kopf schießt (z.B. wenn jemand den Blinddarm nennt, was ja vielleicht zunächst absurd erscheint. Da kommen die interessantesten Sachen zum Vorschein. <br>Und man glaubt gar nicht, was ein Blinddarm für eine Macht im System hat.)<br><br>
# Dann soll jeder auf der ~Flip-Chart eintragen, welches Organ er am liebsten wäre. Auch hier wieder ein wenig liebevoll nachhelfen. Zum Wünschen muss man sich auch manchmal erst trauen. Sodann werden die Organe mit einem Pfeil verbunden, vom Ursprung zum Gewünschten hin.<br><br>
# Hier ist es nun ganz entscheidend nach den Auswirkungen zu fragen. Also: //"Was würde passieren, wenn sich jetzt jeder erlauben würde zu verändern?"// <br>Und das gilt es dann sehr genau zu explorieren. Da kommen die wirklichen ~Aha-Erlebnisse, und die Dinge werden oft schlagartig klar. 


!Debriefing
Zum Schluss kann der ganze Papierbogen an einem sicheren Ort verwahrt oder verbrannt werden.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Das+Team+als+Organismus+%28cs%29]]
<data>{"abstract":"[[Teamgalerie]], ein humorvoller und anregender Einstieg in eine Veranstaltung, der aber ein wenig Vorlaufzeit benötigt.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.interartmania.ch/images/photo_galerie.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Teamgalerie","abstract") </script>

!Teamgalerie
<script> return "<<tiddler [[Teamgalerie##Overview]]>>" </script> 
Einen humorvollen und anregenden Einstieg in eine Veranstaltung.

!Objectives
* Teambuilding

!Timing

!Audience
Group

!Materials
* 

!Procedure
Im Vorfeld eines Seminares/Workshops wird jeder Teilnehmer gebeten, ein Kinder-/~Baby-Foto von sich an die Seminarleitung zu senden. 
Die Fotos werden im Seminarraum als Bilderausstellung aufgehängt, dabei klebt jedes Bild auf einem großen Blatt Papier. 
Nun werden die Teilnehmer aufgefordert, still durch den Raum zu gehen und sich zu überlegen, wer zu welchem Bild gehört.

!Debriefing
Danach werden alle aufgefordert, sich über das Gesehene zu äußern: Man geht von Bild zu Bild, und alle Vermutungen, spontane Äußerungen und Einfälle werden auf dem jeweiligen Blatt notiert. Erst nach Abschluss der [[Vernissage]] und einem Austausch über das Erlebte geben sich die Personen zu erkennen und kommentieren das [[Feedback]] zu ihren Fotos.
Alternativ können auch die Betroffenen direkt nach dem Aufschreiben der Anmerkungen Stellung nehmen.

!Quelle
Dalila Schönfeld / Marlies Meier, aus: [[Rachow, Axel: Spielbar II, managerSeminare Gerhard May Verlags GmbH 2002| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FSpielbar-pr%25C3%25A4sentieren-Top-Spiele-Seminarpraxis-Seminarpraxis%2Fdp%2F3931488632%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1211920003%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Teamgalerie+%28jt%29]]
<data>{"abstract":"[[Teamgeist]]: Sie kommen als Trainer oder Supervisor zu einem neuem [[Team]] oder einer Gruppen mit dem Auftrag einer [[Teambildungsmaßnahme|teambuilding]] oder [[Supervision]]. Sie sind natürlich neugierig, was für eine Art Gruppe Sie wohl vor sich haben."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://roger.phrblog.kaywa.ch/files/images/2006/12/mob11_1165323432.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Teamgeist","abstract") </script>

!Teamgeist
<script> return "<<tiddler [[Teamgeist##Overview]]>>" </script> 
Wie bringen Sie das in Erfahrung? Durch Beobachten der verschiedenen Verhaltensweisen? Oder lassen Sie sich die Erfolge und Probleme der Gruppe schildern? Damit richten Sie jedoch gleich am Anfang den Fokus auf einzelne Teammitglieder und ihre Rolle im [[Team]] und weniger auf das Gesamtsystem "Team".

!Objectives
* Teambeobachtung mit Gesamtsystem "Team" als Fokus.

!Timing
10min

!Materials
*

!Audience
Group

!Procedure
Eine Möglichkeit, das Gesamtsystem in den Mittelpunkt zu stellen, die das [[Team]] auch gleich schwer ins Grübeln bringt, ist es, das [[Team]] (fast) direkt zu [[fragen|Frageformen]]:
* //„Wenn ihr [[Team]] ein Auto wäre, was für ein Auto wäre es dann?”// oder
* //„Wenn es hier einen Teamgeist gebe, was für eine Art Geist wäre das und wie sähe er aus?”// oder
* //„Wenn ihr [[Team]] ein Land wäre, was für eine Art Land wäre es?”//

Sie sehen schon, dass Ihrer Fantasie hier keine Grenzen gesetzt sind. Vielleicht können Sie Ihre Frage ja auch in den Kontext des [[Teams|Team]] einbinden?! 

!Debriefing
Das Schöne an dieser Frage ist, dass Sie viel über das [[Team]] erfahren, die Teilnehmer sich spielerisch eventuell ernsten Themen nähern können und Sie auch gleich eine Brücke zur Zielvereinbarung mit dem [[Team]] schlagen können: //„Was für ein Auto könnte/soll das [[Team]] denn werden/sein, wenn wir alle wichtigen Fragen geklärt haben…”//

!See also
* [[Check-In]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Teamgeist+%28jm%29]]
<data>{"abstract":"Finden [[Teams|Team]] zu ihrem Ziel auch ohne einen traditionellen [[Führer|Führung]]? Diese Übung leistet den Beweis."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.salzburger-tennisclub.at/images/teams.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Teams ohne Führer","abstract") </script>

!Teams ohne Führer
<script> return "<<tiddler [[Teams ohne Führer##Overview]]>>" </script> 

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Die Gruppenmitglieder stehen in einer Ecke des Seminarraumes, jeder legt eine Hand auf die Schulter eines anderen. 
Sodann funktioniert die Gruppe als "Amöbe", die sich nur nach einer bestimmten Regel fortbewegen darf. Jeder muss bei jedem Schritt die Schulter, die er gerade berührt, loslassen und eine andere ergreifen. 
Ziel der "Amöbe" ist die entgegengesetzte Ecke des Seminarraumes. 
Wer versucht, durch Kommandos die Gruppe zu steuern, wird [[scheitern|Archäologie des Scheiterns]], stattdessen muss sich die Gruppe selbst zu ihrem Ziel [[führen|Führung]]. Ausprobieren.

!Debriefing

!Quelle
Martin Pichler: Mehr Pep ins Seminar, wirtschaft und weiterbildung, 1/2000, S.83

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Übungen Führung]<<tiddlerList tags:"leadership,-newTemplate" header:"Übungen Führung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Teams+ohne+F%FChrer+%28jt%29]]
<data>{"abstract":"Mit dem [[Teamschiff]] werden den Gruppenmitgliedern ihre [[Rollen|Teamrollen]] im [[Team]] bewusst. Sie entwickeln Aufmerksamkeit und Empathie für die Situation ihrer Kollegen und erkennen aus dem Gesamtbild neue Anhaltspunkte zur konstruktiven  [[Veränderung|Organizational Change]] der Teamstrukturen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.msc-yachting.com/Location/sailing.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Teamschiff","abstract") </script>

!Teamschiff
<script> return "<<tiddler [[Teamschiff##Overview]]>>" </script>

!Objectives
* Teamrollen identifizieren
* Empathie für die Situation der Kollegen entwickeln
* Teambuilding

!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Einstieg: Zunächst gibt der Moderator eine Erklärung zum Ziel der Übung "Teamschiff", etwas so: //"In der folgenden Übung möchte ich Sie unterstützen, Ihre Rollen im [[Team]] deutlich wahrzunehmen und bewusstzumachen, wie es Ihnen mit dieser Rolle geht, bzw. was Sie dringend bräuchten. Außerdem bekommen Sie ein Bild vom Gesamtteam."//

Dann erheben sich die Teilnehmer von den Stühlen und werden gebeten sich vorzustellen, das [[Team]] wäre ein Schiff, mit einem Motor, einen Kapitän, vielleicht einen blinden Passagier, einen Ausguck, einen Anker, einen Steuermann, einen flinken Matrosen und so weiter. Jeder nimmt sich einen Moment Zeit, um nachzuspüren, in welcher Rolle er sich zur Zeit im [[Team]] empfindet, und zwar unabhängig von der aktuelle Position. Es kann also mehrere Kapitäne, Köche, Matrosen, Motoren etc. geben."

Anschließend gibt der Moderator eine Richtung an, in die es geht (Teamziele) und eine, aus der das Schiff kommt (Vergangenheit). Dann nehmen die Teilnehmer ihre Position mit einer Geste ein.


!Debriefing
Anschließend fragt der Moderator jede Person, welche Rolle sie mit ihrer Position und Geste ausdrücken, wie es ihr mit dieser Rolle im [[Team]] geht, und was sie aus der Rolle heraus bräuchte. Die Antworten wiederholt er mit eigenen Worten. Am Ende bittet er die Gruppe, sich noch einmal das Gesamtbild anzuschauen. Dann wird das Geschehen gemeinsam reflektiert.

!Quelle
[[Bähner, Christian/Oboth, Monika/Schmidt, Jörg: Praxisbox Konfliktklärung in Teams und Gruppen. Praktische Anleitung und Methoden zur Mediation in Gruppen. Junfermann, 2008.| http://www.amazon.de/gp/product/3873876795?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3873876795]].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://www.mwonline.de/db/topics/themenentry.php4?to_parebene=Teamschiff+%28B%E4hner%29&db=3]]
<data>{"abstract":"[[Teamuhr]], diese Übung basiert auf dem [[Tuckman Model of Team building]] und hilft herauszufinden, in welcher Phase der [[Teamentwicklung / Teambuilding]] sich ein [[Team]] befindet."}</data>
<<wikify [>img(%0,%1)[%2|%3][%3]] auto auto title http://www.intarix.com/wp-content/uploads/2010/08/Teamuhr-nach-Tuckmann1-150x150.png>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Teamuhr","abstract") </script>

!Teamuhr
<script> return "<<tiddler [[Teamuhr##Overview]]>>" </script> 

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Dazu wird jedem Teammitglied nach einer kurzen einführenden Erläuterung eine Kopie der [[Teamuhr]] (siehe unten) vorgelegt, mit der Bitte, einen Punkt an die Stelle des Zifferblattes zu kleben, an der das [[Team]] sich seiner Einschätzung nach befindet. 

{{center{
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://lehrerfortbildung-bw.de/kompetenzen/projektkompetenz/durchfuehrung/organisation/teamuhr/image002.gif>>
[[download|http://lehrerfortbildung-bw.de/kompetenzen/projektkompetenz/durchfuehrung/organisation/teamuhr.gif]]}}}

{{indent{
Testphase = [[Forming|Tuckman Model of Team building##Stage 1: Forming]]
Nahkampfphase = [[Storming|Tuckman Model of Team building##Stage 2: Storming]]
Orientierungsphase = [[Norming|Tuckman Model of Team building##Stage 3: Norming]]
Arbeitsphase = [[Performing|Tuckman Model of Team building##Stage 4: Performing]]
}}}


!Debriefing

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://lehrerfortbildung-bw.de/kompetenzen/projektkompetenz/durchfuehrung/organisation/teamuhr_sw.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.evolutionen.de/de/pics/newsletter/teamuhr.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.patrzek.de/images/teamuhr1.gif>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://projektmanagementhandbuch.de/Bilder/Team/05Team-Teamuhr.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.lorenz-seminare.de/newsbilder/leistungskurve500.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://lehrerfortbildung-bw.de/kompetenzen/projektkompetenz/durchfuehrung/organisation/teamuhr.htm
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://venturecompany.com/opinions/files/telephone-game.jpg>>
<<showtoc>>
!Overview
The [[Telephone Game]] can be used to illustrate the noisiness of communication and facilitate better communication.

!Telephone Game
<<tiddler [[Telephone Game##Overview]]>>

!Objectives
* illustrate the noisiness of communication 
* facilitate better communication.

!Timing
15 min

!Materials
* People and space
* Notepads and pens for participant

!Audience
Group

!Procedure
# The moderator whispers a short phrase, such as “The company is facing budgetary problems, and some of us will be let go,” in the ear of a participant. The moderator writes down what he whispered.
# The participant then whispers the sentence that he heard in the ear of another participant and writes down what he whispered.
# Repeat step 2 until everyone has participated.
# The moderator then asks each participant to read aloud the sentence that the participant wrote down.

!Debriefing
* The morale will deteriorate quickly, often in comical ways. 
* Invite the participants to discuss why communication is intrinsically noisy. 
* Discuss practices that promote good communication.

!Credits
Michael dela Maza <~MdelaMaza @ drc.com>

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/telephone-game/
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.chacocanyon.com/images/hot-and-cold.gif>>
<<showtoc>>
!Overview
[[Temperature Reading]] is an activity by which a group can receive and respond to information about how it is functioning. Check on what is happening in the group.

!Temperature Reading
<<tiddler [[Temperature Reading##Overview]]>>
This activity was designed by [[Virginia Satir| http://en.wikipedia.org/wiki/Virginia_Satir]] ([[Satir Change Model]]). 
A Temperature reading consists of five parts, each part offering group members an opportunity to express themselves within a specific theme:
* Appreciations
* Puzzles
* Complaints with Recommendations
* New Information
* Hopes and Wishes
One of the benefits of Temperature Reading is that people come to understand that it is okay for them to express appreciation, to have questions about things they don’t understand, to voice complaints, and to speak about their wishes.

!Objectives
* Facilitate congruent communication 
* Assists individuals in becoming more open.
* Check on what is happening in the group

!Timing
30min

!Audience
Group

!Materials
* flipchart with Temperature reading poster drawn:
{{indent{
| ''Temperature reading'' |h
|Appreciations|
|Puzzles, Gossip and Rumors|
|Complaints with Recommendations|
|New Information|
|Hopes and Wishes|
}}}

!Procedure
# Open the activity by saying //"Let's look at what's happening in our group. You can contribute in any of the sections, but participation is voluntary. The aim is to hear from others, so no commenting on another's contribution."//
# Explain each of the five sections of the poster and then allow time for the people to comment.
# If there are no responses for a theme, wait quietly for a moment. Be patient.
# Wait between each section. 
# During Complaints with Recommendations, if an issue cannot be resolved quickly, write down the issue to be dealt with later. Then, move on to the next issue.

Explanations:
* ''Appreciations'' - each group member may express appreciation for something done by another person.
* ''Puzzles, Gossip and Rumors'' - group members talk about something they are confused about, or to ask for information they need from others. (Answers, of anyone has them, are held until New Information, below.)
* ''Complaints with Recommendations'' - complaints are often solutions in disguise. In each complaint there is a hidden hope that things can be better. The person with the complaint is saying, “the situation would be better if …”, but may be able to verbalize the complaint only as a negative. The purpose of requesting complaints is to hear the issue; it does not mean corrective action is required.
* ''New Information'' - group members share important information that others may not know about. Also, at this time people may wish to offer answers to others’ Puzzles, or to offer possible solutions to Complaints.
* '' Hopes and Wishes'' - positive, forward-looking note to close the Temperature Reading. Group members have an opportunity to express what they would like to have happen, both for themselves and for the group. Each person gains some additional insight into others, and may choose to support others in attaining their hopes and wishes.


!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Temperature Reading - PDF| http://dhemery.com/pdf/temperature_reading.pdf]]
* [[Satir Temperature Reading - PDF| http://www.satirworkshops.com/files/SatirTemperatureReading.pdf]]
<data>{"abstract":"[[Teppich falten]], ein ~Mini-Projekt, das wenig Zeit beansprucht und die Zusammenarbeit eines [[Teams|Team]] deutlich macht. Gut geeignet für Teams, die neu formiert oder umstrukturiert wurden."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.physik.uni-augsburg.de/~ferdi/skript/teil2/img197.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Teppich falten","abstract") </script>

!Teppich falten
<script> return "<<tiddler [[Teppich falten##Overview]]>>" </script> 

!Objectives
* Teambuilding
* [[Teams]], die neu formiert oder umstrukturiert wurden

!Timing
90 min

!Audience
Group: 6 bis 12 Teilnehmer

!Materials
*  1 Decke von ca. 2m x 1,20m.


!Procedure
Der Trainer breitet die Decke auf dem Boden aus. 
Die Anweisung an die Gruppe lautet: 

{{indent{
//"Bitte stellen Sie sich alle auf die Decke. Ihre Aufgabe lautet, die Decke komplett zu wenden, sodass die Seite, die jetzt zuoberst liegt, nach unten zeigt. Dabei darf niemand den Boden außerhalb der Decke berühren, Hilfsmittel dürfen ebenfalls keine verwendet werden."//
}}}

Als Trainer bitte unterbinden, wenn die Teilnehmer sich gegenseitig tragen wollen - dies ist aus Sicherheitsgründen untersagt.

Wenn die Teilnehmer die Aufgabe bewältigt haben, folgt Teilaufgabe 2: 

{{indent{
//"Nun sollen Sie die Leistungsfähigkeit Ihres [[Teams|Team]] einschätzen."// 
}}}

Die Frage lautet: 

{{indent{
//"Wie oft können Sie die Decke falten, so dass anschließend noch alle auf ihr Platz finden?" Wiederum darf der Boden nicht berührt werden, und es dürfen keine Hilfsmittel verwendet werden. Das Ziel lautet natürlich, die Decke so oft wie möglich zu falten."//
}}}

Nachdem die Teilnehmer eine Einschätzung abgegeben haben, versuchen sie, die Decke so oft wie zuvor eingeschätzt, zu falten.

!Debriefing
Bei der Auswertung können folgende Fragen helfen:
* Wie verlief der Planungsprozess? 
* Wie wurde mit Problemen umgegangen? 
* Wie verlief die Risikoeinschätzung bei der zweiten Aufgabe?
Gute Fragen sind auch: 
* Wenn Ihnen Ihr Chef (Ihr wichtigster Kunde, Ihre Mitarbeiter...) zugeschaut hätten, was würde er wohl zu Ihrer Leistung sagen?

!Quelle
[[Bernd Heckmair: Konstruktiv lernen, 2. Aufl. 2005, S. 36-39| http://www.amazon.de/gp/product/3407363680?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3407363680]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Teppich+falten+%28jt%29]]
/***
|Name|TextAreaPlugin|
|Source|http://www.TiddlyTools.com/#TextAreaPlugin|
|Documentation|http://www.TiddlyTools.com/#TextAreaPluginInfo|
|Version|2.2.0|
|Author|[[EricShulman]] - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Story.prototype.focusTiddler|
|Options|##Configuration|
|Description|Adds Find/Again keyboard search, autosize, and 'stretch bar' resize for textarea controls|
!!!!!Documentation
>see [[TextAreaPluginInfo]]
!!!!!Configuration
<<<
<<option chkTextAreaExtensions>> use control-f (find), control-g (find again) inside text area
<<option chkDisableAutoSelect>> place cursor at start of textarea instead of pre-selecting content
<<option chkResizeEditor>> modify shadow EditTemplate to add resizeable text area (and autosize command)
<<<
!!!!!Revisions
<<<
2009.04.06 [2.2.0] added resizeListbox macro definition and adjusted dragbar width calculation.
|please see [[TextAreaPluginInfo]] for additional revision details|
2006.01.22 [1.0.0] Moved from temporary "System Tweaks" tiddler into 'real' TextAreaPlugin tiddler.
<<<
!!!!!Code
***/
//{{{
version.extensions.TextAreaPlugin= {major: 2, minor: 2, revision: 0, date: new Date(2009,4,6)};

if (config.options.chkTextAreaExtensions===undefined) config.options.chkTextAreaExtensions=true;
if (config.options.chkDisableAutoSelect===undefined) config.options.chkDisableAutoSelect=true;
if (config.options.chkResizeEditor===undefined) config.options.chkResizeEditor=true;

// automatically tweak shadow EditTemplate to add "autosizeEditor" toolbar command
if (config.options.chkResizeEditor)
	config.shadowTiddlers.EditTemplate=config.shadowTiddlers.EditTemplate.replace(/deleteTiddler/,"deleteTiddler autosizeEditor");
// automatically tweak shadow EditTemplate to add "resizeEditor" macro
if (config.options.chkResizeEditor)
	config.shadowTiddlers.EditTemplate+="<span macro='resizeEditor'></span>";

// Put focus in a specified tiddler field
Story.prototype.TextAreaExtensions_focusTiddler=Story.prototype.focusTiddler;
Story.prototype.focusTiddler = function(title,field)
{
	this.TextAreaExtensions_focusTiddler.apply(this,arguments); // first call core
	var e = this.getTiddlerField(title,field);
	if (e && config.options.chkDisableAutoSelect) {
		if (e.setSelectionRange) // FF
			e.setSelectionRange(0,0);
		else if (e.createTextRange) // IE
			{ var r=e.createTextRange(); r.collapse(true); r.select(); }
	}
	if (e && config.options.chkTextAreaExtensions) addKeyDownHandlers(e);
}
//}}}

//{{{
function addKeyDownHandlers(e)
{
	// exit if not textarea or element doesn't allow selections
	if (e.tagName.toLowerCase()!="textarea"||!e.setSelectionRange||e.initialized) return;

	// utility function: exits keydown handler and prevents browser from processing the keystroke
	var processed=function(ev) {
		ev.cancelBubble=true; // IE4+
		try{event.keyCode=0;}catch(e){}; // IE5
		if (window.event) ev.returnValue=false; // IE6
		if (ev.preventDefault) ev.preventDefault(); // moz/opera/konqueror
		if (ev.stopPropagation) ev.stopPropagation(); // all
		return false;
	}
	// capture keydown in edit field
	e.saved_onkeydown=e.onkeydown; // save current keydown handler (if any)
	e.onkeydown=function(ev) { if (!ev) var ev=window.event;
		var key=ev.keyCode;
		if (!key) {
			var char=event.which?event.which:event.charCode;
			if (char==102) key=70;
			if (char==103) key=71;
		}
		// process CTRL-F (find matching text) or CTRL-G (find next match)
		if (ev.ctrlKey && (key==70||key==71)) {

			// prompt for text to find
			var defFind=e.findText?e.findText:e.value.substring(e.selectionStart,e.selectionEnd);
			if (key==70||!e.findText||!e.findText.length) // ctrl-f or no saved search text
				{ var f=prompt("find:", defFind); e.focus(); if (f) e.findText=f; }
			if (!e.findText||!e.findText.length) return processed(ev); //  if no search text, exit

			// do case-insensitive match with 'wraparound'...  if not found, alert and exit 
			var newstart=e.value.toLowerCase().indexOf(e.findText.toLowerCase(),e.selectionStart+1);
			if (newstart==-1) newstart=e.value.toLowerCase().indexOf(e.findText.toLowerCase());
			if (newstart==-1) { alert("'"+e.findText+"' not found"); e.focus(); return processed(ev); }

			// set new selection, scroll it into view, and report line position in status bar
			e.setSelectionRange(newstart,newstart+e.findText.length);
			var linecount=e.value.split('\n').length;
			var thisline=e.value.substr(0,e.selectionStart).split('\n').length;
			e.scrollTop=Math.floor((thisline-1-e.rows/2)*e.scrollHeight/linecount);
			window.status="line: "+thisline+"/"+linecount;
			return processed(ev);
		}
		if (e.saved_onkeydown) // call previous keydown handler (if any)
			e.saved_onkeydown(ev);
	}
	e.initialized=true;
}
//}}}

// // 'autosize' toolbar command
//{{{
config.commands.autosizeEditor = {
	text: 'autosize',
	tooltip: 'automatically adjust the editor height to fit the contents',
	text_alt: '\u221Aautosize',
	hideReadOnly: false,
	handler: function(event,src,title) {
		var here=story.findContainingTiddler(src); if (!here) return;
		var ta=here.getElementsByTagName('textarea'); if (!ta) return;
		for (i=0;i<ta.length;i++) {
			// only autosize textareas actually used to edit tiddler fields
			if (ta[i].getAttribute("edit")==undefined) continue;
			ta[i].button=src;
			if (!ta[i].maxed)
				config.commands.autosizeEditor.on(ta[i]);
			else
				config.commands.autosizeEditor.off(ta[i],true);
		}
		return false;
	},
	on: function(e) {
		if (e.maxed) return; // already autosizing!
		if (e.savedheight==undefined)
			e.savedheight=e.style.height;
		if (e.savedkeyup==undefined) {
			e.savedkeyup=e.onkeyup;
			e.onkeyup=function(ev) {
				if (!ev) var ev=window.event; var e=resolveTarget(ev);
				e.style.height=e.scrollHeight+'px';
				if (e.savedkeyup) e.savedkeyup();
			}
		}
		// IE reports error: "not implemented" for onkeypress
		if (!config.browser.isIE && e.savedkeypress==undefined) {
			e.savedkeypress=e.onkeypress;
			e.onkeypress=function(ev) {
				if (!ev) var ev=window.event; var e=resolveTarget(ev);
				if (ev.keyCode==33) { // PGUP
					if (window.scrollByPages) window.scrollByPages(-1);
					return false;
				}
				if (ev.keyCode==34) { // PGDN
					if (window.scrollByPages) window.scrollByPages(1);
					return false;
				}
				if (e.savedkeypress) e.savedkeypress();
			}
		}
		e.style.height=e.scrollHeight+'px';
		e.button.innerHTML=config.commands.autosizeEditor.text_alt;
		e.maxed=true;
	},
	off: function(e,resetHeight) {
		if (resetHeight) e.style.height=e.savedheight;
		e.onkeyup=e.savedkeyup;
		// IE reports error: "not implemented" for onkeypress
		if (!config.browser.isIE) e.onkeypress=e.savedkeypress;
		e.button.innerHTML=config.commands.autosizeEditor.text;
		e.maxed=false;
	}
};
//}}}

// // grab-and-stretch handle
//{{{
config.macros.resizeEditor = { // add stretch bar to editor textarea
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var here=story.findContainingTiddler(place); if (!here) return;
		var ta=here.getElementsByTagName('textarea');
		if (ta) for (i=0;i<ta.length;i++) {
			// only resize tiddler editor textareas
			if (ta[i].getAttribute("edit")==undefined) continue;
			new window.TextAreaResizer(ta[i]);
		}
	}
}

config.macros.resizeTiddler = { // add stretch bar to tiddler viewer element
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var here=story.findContainingTiddler(place); if (!here) return;
		var elems=here.getElementsByTagName('div');
		if (elems) for (i=0;i<elems.length;i++) if (hasClass(elems[i],'viewer')) break;
		if (i<elems.length) new window.TextAreaResizer(elems[i]);
	}
}

config.macros.resizeFrame = { // add stretch bar to iframes
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var here=story.findContainingTiddler(place); if (!here) return;
		var fr=here.getElementsByTagName('iframe');
		if (fr) for (i=0;i<fr.length;i++) new window.TextAreaResizer(fr[i]);
	}
}

config.macros.resizeListbox = { // add stretch bar to listbox controls
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var here=story.findContainingTiddler(place); if (!here) here=place;
		var fr=here.getElementsByTagName('select');
		if (fr) for (i=0;i<fr.length;i++) new window.TextAreaResizer(fr[i]);
	}
}

// TextAreaResizer script by Jason Johnston (jj@lojjic.net)
// Created August 2003.  Use freely, but give me credit.
// adds a handle below textareas that the user can drag with the mouse to resize the textarea.
// MODIFIED by ELS for cross-browser (IE) compatibility, including:

window.TextAreaResizer = function(elt) {
	this.element = elt;
	this.create();
}
window.TextAreaResizer.prototype = {
	create : function() {
		var elt = this.element;
		var thisRef = this;
		var h = this.handle = document.createElement("div");
		h.style.height = "2px"; // was 4px… looked too fat!
		h.style.overflow = "hidden"; // ELS: force IE to trim height to < 1em
		var adjust=elt.nodeName=='textarea'?4:0;  // 4 pixels for textarea border edge
		h.style.width=(elt.offsetWidth-adjust)+"px";
//		h.style.width="auto";
		h.style.backgroundColor = "#999"; // ELS: standard mid-tone (dark) gray
		h.style.cursor = "s-resize";
		h.title = "Drag to resize text box";
		h.onmousedown=function(evt){thisRef.dragStart(evt)};
		elt.parentNode.insertBefore(h, elt.nextSibling);
	},
	dragStart : function(evt) {
		if (!evt) var evt=window.event;
		this.dragStop(evt); // ELS: stop any current drag processing first
		var thisRef = this;
		this.dragStartY = evt.clientY;
		this.dragStartH = this.element.offsetHeight;
		document.savedmousemove=document.onmousemove;
		document.onmousemove=this.dragMoveHdlr=function(evt){thisRef.dragMove(evt)};
		document.savedmouseup=document.onmouseup;
		document.onmouseup=this.dragStopHdlr=function(evt){thisRef.dragStop(evt)};
	},
	dragMove : function(evt) {
		if (!evt) var evt=window.event;
		// ELS: make sure height is at least 10px
		var h=this.dragStartH+evt.clientY-this.dragStartY;
		if (h<10) h=10; this.element.style.height=h+"px";
		// ELS: match handle to textarea width (which may have changed due to document scrollbars)
		var adjust=this.element.nodeName.toLowerCase()=='textarea'?4:0; // 4 pixels for textarea
console.log(adjust);
		this.handle.style.width=(this.element.offsetWidth-adjust)+"px";
		// ELS: when manually resizing, disable autoresizing (without restoring saved height)
		if (this.element.maxed!=undefined && this.element.maxed)
			config.commands.autosizeEditor.off(this.element,false);
	},
	dragStop : function(evt) {
		if (!evt) var evt=window.event;
		document.onmousemove=(document.savedmousemove!=undefined)?document.savedmousemove:null;
		document.onmousemove=(document.savedmouseup!=undefined)?document.savedmouseup:null;
	},
	destroy : function() {
		var elt = this.element;
		elt.parentNode.removeChild(this.handle);
		elt.style.height = "";
	}
};
//}}}
<data>{"abstract":"Wer seine Fähigkeiten ausbauen möchte, vor Publikum frei zu sprechen, dabei an Sicherheit und Präsenz zu gewinnen, dem wird hier das [[Rezitieren von Texten|Texte rezitieren]] empfohlen. Eine witzige Übung..."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.nrhz.de/flyer/media/84_inter01_01.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Texte rezitieren","abstract") </script>

!Texte rezitieren
<script> return "<<tiddler [[Texte rezitieren##Overview]]>>" </script> 
Wer seine Fähigkeiten ausbauen möchte, vor Publikum frei zu sprechen, dabei an Sicherheit und Präsenz zu gewinnen, dem wird hier das Rezitieren von Texten empfohlen. Dazu bekommt jeder Teilnehmer im Präsentationstraining einen kurzen Text. Nach einer kurzen Vorbereitungszeit rezitieren die Teilnehmer die Texte mit der entsprechenden Gestik und Mimik, so wie dies in der jeweiligen Anweisung steht.
Die Texte sollen möglichst einfach sein, es können Vierzeiler, Bedienungsanleitungen, kurze Gedichte, Wegbeschreibungen etc. sein.

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Die Anweisungen sind z.B.: Polizist beim Vorlesen der Rechte - Pfarrer beim Predigen am Grab - Mutter beim Vorlesen der ~Gute-Nacht-Geschichte - Tageschausprecher - Chef beim Diktat usw.
Besonders interessant wird es, wenn man Texte mehrfach vergibt, aber mit unterschiedlichen Anleitungen.

!Debriefing

!Quelle
[[Amelie Funcke: Vorstellbar, managerSeminare 2006, S. 127-130| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FVorstellbar-Methoden-Schauspielern-Regisseuren-normalen%2Fdp%2F3936075441%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214446177%26sr%3D8-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Präsentation]<<tiddlerList tags:"presentation,-newTemplate" header:"Übungen Präsentation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?db=3&to_parebene=Texte+rezitieren+%28jt%29]]
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://img.seenby.de/user/jens-benninghofen/img/w1024/9PG5RyO3cV_fYjjouPr95mVJlvP_joGoAPphQnbdBvNpkcR4L10PodP_zsy7q56m.jpg>>
<<showtoc>>
!Overview
* We //liked// it when a good thing took on a life of its own.
* We //learned// that it really resonated with many folks.
* We //lacked// sharing the full understanding of the technique.
* We //longed// for more sharing. 

!The 4L's
<<tiddler [[The 4L's##Overview]]>>


!Objectives
* eliciting feedback, 
* collectively sharing that feedback
* exploring action possibilities.  

!Timing

!Materials
* 4 posters

!Audience
Group

!Procedure
# Hang four posters, one for each L, around the room, titled appropriately.
# Ask people to individually jot down what they Liked, Learned, Lacked, and Longed For – one per sticky note.  When the time is up (3-4 minutes), they silently place their notes on each poster.
# Divide the group into four subgroups; assign an “L” poster to each subgroup. They read all the notes, cluster as appropriate and identify themes.
# Each team reports out on the themes.
# The entire group decides how they might use the data.  For example, ask, “How can we satisfy the ‘lacked’ or ‘longed for’ items?

!Debriefing

!Credits
* [[Mary Gorman and Ellen Gottesdiener, EBG Consulting| http://ebgconsulting.com/blog/the-4l%E2%80%99s-a-retrospective-technique/]]


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://ebgconsulting.com/blog/wp-content/uploads/2010/06/4-Ls-poster-verticle-layout2.jpg>> /%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>> %/
---- }}}
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://ebgconsulting.com/blog/the-4l%E2%80%99s-a-retrospective-technique/
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.installationstechnik-kellner.com/images/personen/lehrling_512.jpg>>/%
http://harvardbusiness.org/products/4389-PDF-ENG/thumbnail/thumbnail.gif%/
<<showtoc>>
!Overview
[[The Apprentice]], a kind of [[Innovation Game]]: An engineer or product developer uses the product as an end-user. 

!The Apprentice
<script> return "<<tiddler [[The Apprentice##Overview]]>>" </script>
For example, if the system is used for data entry, the developer enters data for a couple of days. Observers record the engineer’s actions, expressions, comments, and suggestions.

!Objectives
* Create empathy for the customer experience by doing the job of a customer.

!Timing
Depends on system/feature complexity: 90min - 1day workshop

!Audience
Group

!Materials
*

!Procedure
An engineer or product developer uses the product as an end-user. 

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.intraqq.com/assets/images/innovation.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Innovation games: Who says work can't be fun?| http://go.techtarget.com/r/12320138/4201481]]
* http://en.wikipedia.org/wiki/Innovation_game
* http://www.innovationsgames.com

!Further Reading
<<tiddler [[Innovation Game##Further Reading]]>>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://michelemiller.blogs.com/marketing_to_women/eye.bmp>>
<<showtoc>>
!Overview
[[The Backlog is in the Eye of the Beholder]]: organization and prioritization are two distinct activities that can be used to improve the quality of a product backlog. A simple linear list is difficult to prioritize. As well, many [[stakeholders|Stakeholder]] are forgotten in the rush to deliver customer value. The purpose of this Agile game is to expand the view of multiple stakeholders as well as illuminate the value of organizing the work without/before prioritizing. 

!The Backlog is in the Eye of the Beholder
<<tiddler [[The Backlog is in the Eye of the Beholder##Overview]]>>

!Objectives
* expand the view of multiple stakeholders 
* insights on the need to deeply understanding stakeholders from a variety of perspectives. 
* the value of organizing without/before prioritizing. 
* help organizations and most importantly stakeholders (product owners/ champions and delivery teams) to partner in prioritizing and planning most valuable items to deliver, and when.

!Timing
45 mins. (Variant: drop a round to shorten)

!Materials
The game consists of the following items for each participating team:
* ''Persona Cards:'' (5”x8” cards) There are four persona cards or sheets. Each persona should be copied to a separate card.
* ''Story Cards:'' (3”x5” cards) In this game, the stories consist of a verb and a noun (e.g Fertilize Crops). There are 18 cards, but more cards can be added. One verb noun grouping should be copied to each card.
* ''Category Cards:'' (3”x5” blank cards – use different colour than story cards) – The category cards are initially blank. A set of blank cards are needed for each round and team. Typically there are around 5 Categories per round.
* ''Black Marker:'' Any pen or felt tip mark should work. This is used for writing on the category cards. One timer is needed in order to time each round and the debrief sessions.

!Audience
Group

!Procedure
# Introduction (5 min)
** Draw simple Product Backlog in Scrum
** Ask participants what it is
** Comment that there is a lot of complexity that may not be best represented by asingle sorted list.
# Form the group into teams – each at a table. (2 min) 4 seems a good number for a team. More than this and it is hard to jointly sort the cards. 5 may be OK.
# Introduce the domain. Once upon a time, there was a farm and different people had different ideas how the farm should be run. (MORE)
# Iterate! There are 4 rounds – each with a different persona (see table below)
** Shuffle story cards between rounds
** Introduce Persona (1 min + 1 min for questions)
** Ask participant organize the backlog based on the persona.
** Debrief the round. Do this in a circle. See debrief questions below.
# Debrief the whole game.

!!Round 1
* Persona: Producer/Farmer
* Round Duration: 5 mins
* Debrief```Larger groups may require more debrief time.```: 4 mins

!!Round 2
* Persona: Customer/Buyer
* Round Duration: 4 mins
* Debrief: 3 mins

!!Round 3
* Persona: Farm Bureau/Inspectors
* Round Duration: 4 mins
* Debrief: 3 mins

!!Round 4
* Persona: Land Owner
* Round Duration: 3 mins
* Debrief: 10 mins – whole game

!Story Cards
There are 18 story cards. Each story card consists of a verb and noun pair.
(Note: Michael S removed story numbers since it may confuse people```The whole point of the game is to ignore prioritization. Story cost is only relevant for making prioritization decisions. In this game we want people to think about stakeholders and how to organize the work in terms of who cares about what.```)
# Fertilize Crops
# Spray Insecticide
# Harvest Crop
# Buy Seed
# Rotate Crops
# Weed Fields
# Survey Market
# Kill Groundhogs
# Lay Fallow
# Define Market Needs
# Till The Ground
# Assure Organic (inspect for selected crops)
# Plant Seed
# Sell Early Summer Crops
# Sell Late Summer Crops
# Water Plants
# Recover from Natural Disaster
# Forecast Profit

!Personas
!!Producer / Farmer
As a farmer, I’m focused on legally maximizing my profits by controlling costs, buying the right seeds, planning crop rotations, reducing pests, and timing the release of my products to markets. I follow closely the agreements set forth in the lease with the Land Owner.

!!Consumer / Buyer
As a customer of the local farm, I want healthy and reasonably priced food that has been grown with sustainable and environmentally friendly practices.

!!Land Owner
The farm land has been in my family for over 200 years. My family’s income depends on the revenue generated from the farm lease. Hence, we are interested in ensuring the long-term sustainability of the land. As a family, we have been engaged in wildlife preservation and conservation of natural resources. It is imperative our property used in accordance with all relevant laws and regulations.

!!Farm Bureau / Inspectors / Regulatory Agencies
As a regulatory body, we are tasked with ensuring that produce is safe and fit for human consumption. We test and verify that the land is used in accordance with local, state, and federal regulation to protect from erosion, run off, soil depletion and other activities that may harm the land. We enforce all animal protection laws and regulations.

!Debriefing
* allow sufficient time to analyze the personas’ themes (the color cards). Evaluating the higher level view of the product needs — across personas — may help to identify common themes and possibly conflicting perspectives.

!!First Round
* Each team: talk a little about how you organized the backlog.
* //What is the same/different?//
* //What else did you notice?//
* If no one mentions, may notice that we are used so used to prioritizing we often go there automatically. //Did any of the teams create a structure that helps them understand their world?//

!!Second/Third
* Same questions as first plus
* //What was different from earlier round(s)?//

!!Final
* //Over all 4 rounds, what have you noticed about backlog organization?//
* //How does this relate to product backlogs that you work with?//
* //How well do real world product backlogs represent different stakeholders?//


!Credits
This game was developed at Deep Agile 2010 in Boston by:
* [[Michael Sahota|http://www.agilitrix.com/]]
* [[Mary Gorman|http://www.ebgconsulting.com/]]
* Warren Elliott
* Greg Ott
* Dan Zaino
* Judy Rivais

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2010/07/the-backlog-is-in-the-eye-of-the-beholder/
* http://www.agilitrix.com/2010/05/the-backlog-is-in-the-eye-of-the-beholder/
* [[Harvesting Stakeholder Perspectives to Organize Your Backlog| http://www.stickyminds.com/sitewide.asp?ObjectId=16545&Function=DETAILBROWSE&ObjectType=COL&sqry=*Z%28SM%29*J%28MIXED%29*R%28relevance%29*K%28simplesite%29*F%28gorman%29*&sidx=3&sopp=10&sitewide.asp?sid=1&sqry=*Z%28SM%29*J%28MIXED%29*R%28relevance%29*K%28simplesite%29*F%28gorman%29*&sidx=3&sopp=10]]
* http://groups.google.com/group/agilegames/msg/bdd16c559bf466e
/%
|Name|The Importance of Play|
|URL|http://www.youtube.com/v/mIayLh2P5C0|
|Description|How unstructured playtime is crucial to a child's development.|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/mIayLh2P5C0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/mIayLh2P5C0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
/%
|Name|The Importance of Play|
|URL|http://www.youtube.com/v/4zD9-Kq89M4|
|Description|Highlights the values and benefits of allowing children free play time.|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/4zD9-Kq89M4"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/4zD9-Kq89M4" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://itorganization2017.files.wordpress.com/2008/02/yogyakarta-principles.jpg>>
<<showtoc>>
!Overview
[[The Problem with Principles]] is interactive Agile Game and facilitation technique helps drive meaningful consideration and discussion on the principles and values of Agile.

!The Problem with Principles
<<tiddler [[The Problem with Principles##Overview]]>>

!Objectives
* drive meaningful consideration and discussion on the principles and values of Agile.

!Timing
30-60 min

!Materials
* Whiteboards
* Markers
* Set of four coloured sticky notes for each player

!Audience
Group / Individual

!Procedure
# Begin by reviewing the four [[value statements|Agile Values]] from the [[Agile Manifesto]].  
# Draw on the whiteboard a matrix of complexity on the vertical axis  and impact on the horizontal axis with a scale of low, medium and high. 
# Draw out all 9 resulting boxes of the matrix. 
# Assign a colour (one of the four sticky note colours) to each of the four statements in the manifesto.
# Ask all particpants to place each of their four stickies into the appropriate place on the matrix based on their assessment of the impact and compexity the value statement it represents.
# Encourage discussion amongst players while placing their sticky notes.
# Once completed review what the group has assessed as the impact and challenge of adopting the value system implied by the Agile Manifesto 

!Debriefing
* Reinforces and drives meaningful discussion about the Values and Principles of Agile
* Facilitates the discussion about what Agile means to the team and organization.
* Set’s the stage for understanding the purpose and intent of Agile practices and techniques.

!Credits
Mike ~McCullough

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/07/the-problem-with-principles/
<<wikify [>img(%0,%1)[%2|%3]] 60% 40% title http://blog.hotdesign.com/wp-content/uploads/2009/02/marketing_treasure_map2.jpg>>
<<showtoc>>
!Overview
[[The Project Adventure Map]]: think about your project as a Big Adventure. You are trying to find a treasure. You are going to retrieve a stolen secret document. You are going to set the princess free. You have a goal.
Every project is a journey. It is never a straight line. You have to conquer obstacles, replan, regroup, rethink and change course.
Imagine your project as a map through unknown territory in search for The Goal.

!The Project Adventure Map
<script> return "<<tiddler [[The Project Adventure Map##Overview]]>>" </script> 

!Objectives
* Getting shared understanding of the goal and approach
* Geting acceptance and engagement, multiple point of views, and alignment if 
* to uncover junctions, change of directions

!Timing
2-4 h

!Audience
Group

!Materials
* a drawn map showing the expected project life cyle.

!Procedure
The map reflects the storyline of the project. The episodes of the project life cycle. The glory days of starting the project. 
The period in which the project was under attack by vicious [[stakeholders|Stakeholder]]. 
Discuss the days from before the project:
* //"What happened to the hero of the Big Adventure?"//
* //"What was the kingdom like (you may also talk about “organization” or “company”) before the Big Adventure?"//

And when the Big Adventure started, how did the group emerge? Bob came down the mountains to create databases. Where did the rest came from? Why did they join The Big Adventure?

Yes, you are introducing the [[team|Team]]. Yes, you are discussing the project goal and situation that has to be changed. Yes, you are aligning the shared view of the project history. Yes, you are creating a [[metaphor|Arbeit mit Metaphern]]. Yes, you are appealing to the international language of [[storytelling|Storytelling]]. Yes, you might even crack a smile upon your face.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.basdebaar.com/wp-content/uploads/2010/07/rsz_map.jpg>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}}
===


!See also
<<tiddler ShowTiddlerReferences>>
* [[Shared Vision]]
!Weblinks
* [[The Project Adventure Map| http://www.basdebaar.com/the-project-adventure-map-go-left-at-scope-creep-mountain-3539.html]]
* http://www.gantthead.com/blog/The-Project-Shrink/2295/
/%
|Name|The Project Management Game|
|URL|http://thatpmgame.com/|
|Description|The Project Management Game - a free project management game... |
|Author|Games by Robc|
%/
<data>{"abstract":"[[The Project Management Game]], a project management game... its free. To play just assign your staff to the various tasks in the schedule and hit the Start button. Its easy, its fast, and there is nothing to download."}</data>

!Objectives
* A project management game

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing
<data>{"abstract":"Der [[Themenbaum]] soll Früchte tragen - nämlich die Früchte der Arbeit und Lernbereitschaft der ~Kurs-Teilnehmer.   "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.chmoellmann.de/die_Bucher/Michael_Weber/baum.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Themenbaum","abstract") </script>

!Themenbaum
<script> return "<<tiddler [[Themenbaum##Overview]]>>" </script> 

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Der Seminarleiter zeichnet einen dicken Baumstamm aufs Flipchart. Die Teilnehmer werden aufgefordert, Stichworte zu nennen. 

Die Stichworte beziehen sich z.B. darauf, warum der Teilnehmer im Kurs ist, welche konkreten Schwierigkeiten er schon einmal mit dem ~PC-Programm hatte, das Gegenstand des Trainings ist oder es werden Begriffe gesammelt, denen man vielleicht schon einmal begegnet ist und unter denen man sich nichts vorstellen kann. 

Diese Stichworte schreibt der Seminarleiter in einen "Bereich" des Baumes - ich male meist einen wolkenartigen Umriss und setze den Begriff hier ein. Viele solcher Wolken über- und nebeneinander ergeben eine Baumkrone.

Nun werden die einzelnen Themen durchgegangen. Ist das Thema abgeschlossen, bekommt der entsprechende Bereich des Baumes eine Frucht (Apfel, Birne, Kirsche - je nach künstlerischer Begabung des Leiters) angehängt. So sehen alle Teilnehmer, was sie im Laufe des Trainings schon gelernt haben.

Der Themenbaum wird bei mir oft auch in Dateiform verwendet (eine Worddatei mit Autoformen, die Äpfel sind Grafiken, die zu Fußen des Baumstammes liegen und per Drag&Drop angehängt werden), davon erhält jeder Teilnehmer zum Schluss des Seminars einen Ausdruck. Persönlicher wird´s, wenn man die Kursbezeichnung, Datum, ~Teilnehmer-Namen etc. einfügt.

!Debriefing

!See also
* [[Prune the Product Tree]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Der+Themenbaum+%28cvw%29.html]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://business901.com/wp-content/uploads/2009/08/iStock_000008482342XSmall.jpg>>
<<showtoc>>
!Overview
The [[Theory of Constraints Dice Game]] is an interactive game illustrating the concepts of constraints behind Eli Goldratt's [[Theory of Constraints]].

!Theory of Constraints Dice Game
<<tiddler [[Theory of Constraints Dice Game##Overview]]>>

!Objectives
* illustrating the concepts of Eli Goldratt's [[Theory of Constraints]].

!Timing
10-15 min

!Materials
* 100+ Toothpicks (or something similar)
* At least one Die

!Audience
Group

!Procedure
# Participants line up in a row with a collection of toothpicks (or something similar) placed with the first participant. 
# The first participant rolls a die to determine how many toothpicks to pass to the next participant. 
# Each participant then takes turns rolling the die and passing the corresponding amount of toothpicks to the next player. 
# The final player creates a stack of toothpicks based on his/her roll and then passes the die back to the first participant to continue with the next round. 
# Play until it is obvious where the stacks are forming.

!Debriefing
* Even though all participants have the same odds, inventory still piles up. Tie this in to [[Value Streams]] and software.
* In software, requirements are your inventory. It is wasteful to process them all up front.

!Credits
The Goal, Dr. Eliyahu M. Goldratt, 1984

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/theory-of-constraints-dice-game/
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.pauldavidson.net/wp-content/themes/wfme/images/entries/Thumb.jpg>>
<<showtoc>>
!Overview
[[Thumb Wars]]: a simple children's game is used to illustrate the value of [[retrospectives|Agile Retrospective]], cooperation over competition, the value of specialization and scaling, as well as the lean concept of movement as waste ([[Muda]]).

!Thumb Wars
<<tiddler [[Thumb Wars##Overview]]>>

!Objectives
illustrate the 
* value of retrospectives, 
* value of cooperation over competition, 
* value of specialization and scaling, 
* lean concept of movement as waste ([[Muda]]).

!Timing
5 min per round. Ttypically run three or four rounds depending upon how quickly my class “gets it”.

!Materials
* Two people willing to play
* (Optional) Play money 

!Audience
Group

!Procedure
!!Preface
The central activity in this exercise is a game of “Thumb Wars”. This is the same game you played as a child, in which the object is to pin your opponent (partner’s) thumb to their fist.
~YouTube has many videos of this activity. A good example can be found here: http://www.youtube.com/watch?v=l649Ftx-0hM

When you run the game, some groups will figure out the messaging and techniques more quickly than others. Sometimes they never get it and you may have to walk them through it. Either way, it is very instructional and illustrates many lean and agile values.

!!Game Play
!!!Demonstration
# Ask the audience if they know how to play thumb wars. This question leads individuals to fond memories, anticipation and excitement. 
# Then invite a member of the class to the front and demonstrate the game.
# Ask people in class to pair off and tell them you will pay the person with the most wins a dollar for each win. (I have play money for this purpose)
# Instruct that they will have a minute to play the game. 
# Tell them that the object of the exercise is to “maximize gain”. 
# Give them the “ready, set … go” and time them for about a minute.
!!!Round 1 (Competition)
In the first round of this game, the class typically thumbs it out. In round one, it is normal that I “pay out” four to six dollars to the person with the most wins. To conclude the round, I revisit the goal of maximizing gain, then ask players to discuss this with their partner for a while, then give them the “ready, set … go”.
!!!Round 2 (Cooperation)
Round two is usually characterized by a couple agreeing to cooperate and exchange wins. This works just like it sounds. Person A lets Person B win, then the reverse, and so on for the minute. I generally pay out about $30 per person to the winning team because, since they alternate, they tie in wins. The debrief includes a discussion about the value of cooperation over competition when people share the same goal. I once again remind the team that the goal is to “maximize gain”, give them another minute to discuss it and then “ready, set … go”
!!!Round 3 (Specialization)
Some members of the class will realize that an individual does not have to “win” to gain. 
* The two people enter into a partnership in which Person A passively lays their thumb down onto their fist and Person B repeatedly taps it. 
* I usually pay out about $120 to $180 to person A at the end of this round and they split the money per agreement. (if people can actually count that fast). 
* The debrief discussion focuses on the value of role specialization and creativity in achieving gain. Sometimes we give the discussion a “lean” twist and talk about the waste associated with exchanging thumb positions in Round 2. 
* We discuss again the goal of maximizing gain, do a brief retrospective, then “ready, set, … go”.
!!!Round 4 (Scaling)
Once again, some members of the class will realize that the instructions were “a dollar per pin” and “maximize gain”. Nothing was said about the number of playing fields. So some teams will realize that they can apply the knowledge gained from round 3 with both hands. 
* Person A taps the thumb of person B with both their right and left thumbs and again as fast as possible, person A gets paid, then they split the money. 
* But, by this time in the game, people cannot count the number of “wins”, so we give up on money. But everyone understands that the number is nearing $200 – $300 per person.

After I’ve debriefed Round 4, then we have a discussion of the value of retrospectives in increasing gain from about $6 to about $300.

!Debriefing
* Collaboration and cooperation maximizes gain over competition in groups with shared goals. (Competitive situations exist between functional groups in the waterfall process)
* Process retrospectives pay big dividends
* There are many different ways to improve a process. Creativity can lead to more efficient ways to cooperate, specialize and scale. If you can achieve such fantastic results ($6 -> $300) with this silly game, think what you can do with a complex software development project.
* This whole game, from end to end, can be presented as an exercise in value stream mapping and waste elimination if the [[facilitator|Facilitator]] wishes to take that approach. 

!Credits
skillen.

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2010/01/thumb-wars/
/***
|Name|TidIDEPlugin|
|Source|http://www.TiddlyTools.com/#TidIDEPlugin|
|Documentation|http://www.TiddlyTools.com/#TidIDEPluginInfo|
|Version|1.8.5|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Description|TiddlyWiki Integrated Development Environment - tools for authors and plugin writers|
~TidIDE (//prounounced "Tie Dyed"//) - ''Tid''dlyWiki ''I''ntegrated ''D''evelopment ''E''nvironment - allows you to define a set of checkboxes to toggle a stack of 'tool panels' containing tools for TiddlyWiki authors to use when creating and debugging their TiddlyWiki documents.  Each tool is defined by a separate tiddler, allowing you to define any convenient set of tools simply by adding/removing tiddler references from the {{{<<tidIDE...>>}}} macro call.

In addition to presenting checkboxes/tool panels that are defined in separate tiddlers, the {{{<<tidIDE>>}}} macro can invoke an optional built-in "editor panel" that presents an alternative tiddler editor to create, modify, and manage the tiddlers in your document… and, if you have also installed [[PreviewPlugin]], the editor can automatically display a ''//formatted preview//'' of the current tiddler content that is updated ''live, key-by-key'' while you edit the tiddler source.
!!!!!Documentation
>see [[TidIDEPluginInfo]]
!!!!!Configuration
<<<
Number of rows to display in text input area <<option txtTidIDEMaxEditRows>> 
{{{usage: <<option txtTidIDEMaxEditRows>>}}}
^^//Note: if not specified here, default uses {{{<<option txtMaxEditRows>>}}} value (see [[AdvancedOptions]])//^^
<<<
!!!!!Revisions
<<<
2009.09.22 [1.8.5] added edit='tags' to tags input so {{{<<newTiddler tags:...>>}}} can init field
2009.08.27 [1.8.4] added 'tidIDEPanel' classname to container element (for custom css)
|please see [[TidIDEPluginInfo]] for additional revision details|
2006.04.15 [0.5.0] Initial ALPHA release. Converted from inline script.
<<<
!!!!!Code
***/
//{{{
version.extensions.TidIDEPlugin= {major: 1, minor: 8, revision: 5, date: new Date(2009,9,22)};

// settings
if (config.options.txtTidIDEMaxEditRows==undefined)
	config.options.txtTidIDEMaxEditRows=config.options.txtMaxEditRows

// shadow payload
config.shadowTiddlers['TidIDEPluginEditorPanel']=store.getTiddlerText('TidIDEPlugin##editorPanel');

config.macros.tidIDE = {
	versionMsg: "TidIDE v%0.%1.%2: ",
	datetimefmt: "0MM/0DD/YYYY 0hh:0mm",
	titleMsg: "Please enter a new tiddler title",
	isShadowMsg: "'%0' is a shadow tiddler and cannot be removed.",
	evalMsg: "Warning!! Processing '%0' as a systemConfig (plugin) tiddler may produce unexpected results! Are you sure you want to proceed?",
	evalCompletedMsg: "Processing completed",
	toolsDef: "<html><a href='javascript:config.macros.tidIDE.set(\"%0\",\"%1\");'>edit %1...</a></html>",
	editorLabel: "TiddlerEditor"
};

config.macros.tidIDE.handler= function(place,macroName,params) {
	var here=story.findContainingTiddler(place);
	var selectors="";
	var panels="";
	var showsys=false;
	var title="";
	var id=""; if (here) id=here.getAttribute("tiddler").replace(/ /g,"_");
	var p=params.shift();
	if (!p) p="edit:here"; // default to editor if no params
	var openpanels=[];
	var panelcount=0;
	while (p) {
		var defOpen=(p.substr(0,1)=="+"); if (defOpen) p=p.substr(1);
		if (p.substr(0,3)=="id:")
			{ id=p.substr(3); }
		else if (p.substr(0,4)=="edit") {
			panelcount++;
			defOpen=defOpen || (!params[0] && panelcount==1); // if only one panel to show, default to open
			var toolname=this.editorLabel;
			if (p.indexOf('|')!=-1) toolname=p.substr(0,p.indexOf('|'));
			selectors+=this.html.editorchk.replace(/%toolname%/mg,toolname);
			selectors=selectors.replace(/%showpanel%/mg,defOpen?"CHECKED":"");
			panels+=store.getTiddlerText('TidIDEPluginEditorPanel');
			// editor panel setup…
			panels=panels.replace(/%showpanel%/mg,defOpen?"block":"none");
			panels=panels.replace(/%maxrows%/mg,config.options.txtTidIDEMaxEditRows);
			panels=panels.replace(/%disabled%/mg,readOnly?"DISABLED":"");
			panels=panels.replace(/%readonlychk%/mg,readOnly?"CHECKED":"");
			panels=panels.replace(/%minoredits%/mg,config.options.chkForceMinorUpdate&&!readOnly?"":"DISABLED");
			panels=panels.replace(/%minorchk%/mg,config.options.chkForceMinorUpdate?"CHECKED":"");
			var tiddlers=store.getTiddlers("title"); var tiddlerlist=""; 
			for (var t=0; t<tiddlers.length; t++)
				tiddlerlist+='<option value="'+tiddlers[t].title+'">'+tiddlers[t].title+'</option>';
			for (var t in config.shadowTiddlers)
				if (!store.tiddlerExists(t)) tiddlerlist+="<option value='"+t+"'>"+t+" (shadow)</option>";
			panels=panels.replace(/%tiddlerlist%/mg,tiddlerlist);
			var tags = store.getTags(); var taglist="";
			for (var t=0; t<tags.length; t++)
				taglist+="<option value='"+tags[t][0]+"'>"+tags[t][0]+"</option>";
			panels=panels.replace(/%taglist%/mg,taglist);
			if (p.substr(0,5)=="edit:") { 
				title=p.substr(5); 
				if (here && title=="here") title=here.id.substr(7);
			}
		}
		else {
			panelcount++;
			defOpen=defOpen || (!params[0] && panelcount==1); // if only one panel to show, default to open
			var toolid=toolname=p;
			if (p.indexOf('|')!=-1)
				{ toolname=p.substr(0,p.indexOf('|')); toolid=p.substr(p.indexOf('|')+1); }
			selectors+=this.html.toolschk.replace(/%toolid%/mg,toolid).replace(/%toolname%/mg,toolname);
			selectors=selectors.replace(/%showpanel%/mg,defOpen?"CHECKED":"");
			panels+=this.html.toolspanel.replace(/%toolid%/mg,toolid);
			panels=panels.replace(/%showpanel%/mg,defOpen?"block":"none");
			if (defOpen) openpanels.push(toolid);
		}
		p=params.shift(); // next param
	}
	var html=this.html.framework;
	if (panelcount<2)
		html=html.replace(/%version%/mg,'').replace(/%selector%/mg,''); // omit header/selectors if just one panel to display
	else {
		var v=version.extensions.TidIDEPlugin;
		html=html.replace(/%version%/mg, this.versionMsg.format([v.major,v.minor,v.revision]));
		html=html.replace(/%selector%/mg,selectors+"<hr style='margin:0;padding:0'>");
	}
	html=html.replace(/%panels%/mg,panels);
	html=html.replace(/%id%/mg,id);
	var newIDE=createTiddlyElement(place,"span",null,"tidIDEPanel");
	newIDE.innerHTML=html;
	if (title.length) this.set(id,title);  // pre-load tiddler editor values (if needed)
	if (openpanels.length) for (i=0;i<openpanels.length;i++) { config.macros.tidIDE.loadPanel(id,openpanels[i]); }
	// see [[TextAreaPlugin]] for extended ctrl-F/G (search/search again)and TAB handler definitions
	if (window.addKeyDownHandlers!=undefined) {
		var elems=newIDE.getElementsByTagName("textarea");
		for (var i=0;i<elems.length;i++) window.addKeyDownHandlers(elems[i]);
	}
	var prev=document.getElementById(id+'_previewpanel');
	if (config.macros.preview && prev)  // add previewer to editor (if installed)
		config.macros.preview.handler(prev,"preview",["text","15"]);
}
//}}}

// // CUSTOM PANEL FUNCTIONS 
//{{{
config.macros.tidIDE.loadPanel=function(id,toolid) {
	var place=document.getElementById(id+"_"+toolid+"_panel"); if (!place) return;
	var t=store.getTiddlerText(toolid,"");
	place.innerHTML=""; 
	if (t) wikify(t,place); else place.innerHTML=this.toolsDef.format([id,toolid]);
}
//}}}

// // EDITOR PANEL FUNCTIONS
//{{{
config.macros.tidIDE.set=function(id,title) {
	var place=document.getElementById(id+"_editorpanel"); if (!place) return;
	var f=document.getElementById(id+"_editorform");
	if (f.dirty && !confirm(config.commands.cancelTiddler.warning.format([f.current]))) return;
	// reset to form defaults
	f.dirty=false;
	f.current="";
	f.created.value=f.created.defaultValue;
	f.modified.value=f.modified.defaultValue;
	f.author.value=f.author.defaultValue;
	f.content.value=f.content.defaultValue;
	f.tags.value=f.tags.defaultValue;
	f.size.value=f.size.defaultValue;
	if (!title.length) return;
	f.current=title;
	// values for new/shadow tiddlers
	var cdate=new Date();
	var mdate=new Date();
	var modifier=config.options.txtUserName;
	var text=config.views.editor.defaultText.format([title]);
	var tags="";
	// adjust values for shadow tiddlers
	if (store.isShadowTiddler(title))
		{ modifier=config.views.wikified.shadowModifier; text=store.getTiddlerText(title) }
	// get values for specified tiddler (if it exists)
	var t=store.getTiddler(title);
	if (t)	{ var cdate=t.created; var mdate=t.modified; var modifier=t.modifier; var text=t.text; var tags=t.getTags(); }
	if (!t && !store.isShadowTiddler(title)) f.tiddlers.options[f.tiddlers.options.length]=new Option(title,title,false,true); // add item to list
	f.tiddlers.value=title; // select current title (just in case it wasn't already selected)
	f.created.value=cdate.formatString(this.datetimefmt);
	f.modified.value=mdate.formatString(this.datetimefmt);
	f.author.value=modifier;
	f.content.value=text;
	f.tags.value=tags;
	f.minoredits.checked=config.options.chkForceMinorUpdate&&!readOnly;
	f.size.value=f.content.value.length+" bytes";
}

config.macros.tidIDE.add=function(id) {
	var place=document.getElementById(id+"_editorpanel"); if (!place) return;
	var f=document.getElementById(id+"_editorform");
	if (f.dirty && !confirm(config.commands.cancelTiddler.warning.format([f.current]))) return;
	var title=prompt(this.titleMsg,config.macros.newTiddler.title);
	while (title && store.tiddlerExists(title) && !confirm(config.messages.overwriteWarning.format([title])))
		title=prompt(this.titleMsg,config.macros.newTiddler.title);
	if (!title || !title.trim().length) return; // cancelled by user
	f.dirty=false; // suppress unneeded confirmation message
	this.set(id,title);
}

config.macros.tidIDE.remove=function(id) {
	var place=document.getElementById(id+"_editorpanel"); if (!place) return;
	var f=document.getElementById(id+"_editorform");
	if (!f.current.length) return;
	if (!store.tiddlerExists(f.current) && store.isShadowTiddler(f.current)) { alert(this.isShadowMsg.format([f.current])); return; }
	if (config.options.chkConfirmDelete && !confirm(config.commands.deleteTiddler.warning.format([f.current]))) return;
	if (store.tiddlerExists(f.current)) {
		story.closeTiddler(f.current);
		store.removeTiddler(f.current);
		store.setDirty(true);
		if(config.options.chkAutoSave) saveChanges();
	}
	f.tiddlers.options[f.tiddlers.selectedIndex]=null; // remove item from list
	f.dirty=false; // suppress unneeded confirmation message
	this.set(id,""); // clear form controls
}

config.macros.tidIDE.save=function(id,saveAs) {
	var place=document.getElementById(id+"_editorpanel"); if (!place) return;
	var f=document.getElementById(id+"_editorform");
	var title=f.current;
	if (!title || !title.trim().length || saveAs) { // get a new title
		title=prompt(this.titleMsg,config.macros.newTiddler.title);
		while (title && store.tiddlerExists(title) && !confirm(config.messages.overwriteWarning.format([title])))
			title=prompt(this.titleMsg,config.macros.newTiddler.title);
		if (!title || !title.trim().length) return; // cancelled by user
		f.tiddlers.options[f.tiddlers.options.length]=new Option(title,title,false,true); // add item to list
		f.current=title;
	}
	var author=config.options.txtUserName;
	var mdate=new Date();
	var content=f.content.value;
	var tags=f.tags.value;
	var tiddler=store.saveTiddler(title,title,content,author,mdate,tags);
	if (f.minoredits.checked) {
		var author=f.author.value;
		var mdate=new Date(f.modified.value);
		var cdate=new Date(f.created.value);
		tiddler.assign(null,null,author,mdate,null,cdate);
	}
	store.setDirty(true);
	if(config.options.chkAutoSave) saveChanges();
	story.refreshTiddler(title,null,true);
	f.dirty=false;
}
//}}}

// // HTML DEFINITIONS
//{{{
config.macros.tidIDE.html = { };
config.macros.tidIDE.html.framework = " \
	<html> %version% <form style='display:inline;margin:0;padding:0;'>%selector%</form> %panels% </html> \
";
//}}}
//{{{
config.macros.tidIDE.html.editorchk = " \
	<input type=checkbox name=editor \
		style='display:inline;width:auto;margin:1px;' \
		title='add/delete/modify tiddlers' %showpanel% \
		onclick='document.getElementById(\"%id%_editorpanel\").style.display=this.checked?\"block\":\"none\";'>%toolname% \
";
config.macros.tidIDE.html.toolschk = " \
	<input type=checkbox name=tools \
		style='display:inline;width:auto;margin:1px;' \
		title='' %showpanel% \
		onclick='document.getElementById(\"%id%_%toolid%_panel\").style.display=this.checked?\"block\":\"none\"; \
			if (this.checked) config.macros.tidIDE.loadPanel(\"%id%\",\"%toolid%\");'>%toolname% \
";
//}}}
//{{{
config.macros.tidIDE.html.toolspanel = " \
	<div id='%id%_%toolid%_panel' style='display:%showpanel%;margin:0;margin-top:0.5em'> \
	</div> \
";
//}}}
/***
//{{{
!editorPanel
<div id='%id%_editorpanel' style='display:%showpanel%;margin:0;margin-top:0.5em'>
<form id='%id%_editorform' style='display:inline;margin:0;padding:0;'>

<!-- tiddler editor list and buttons -->
<select size=1 name=tiddlers style='display:inline;width:44%;'
	onchange='config.macros.tidIDE.set("%id%",this.value); this.value=this.form.current;'>
<option value=''>select a tiddler...</option>
%tiddlerlist%
</select><!--

--><input name=add type=button style='display:inline;width:8%'
	value='new' title='create a new tiddler'
	onclick='config.macros.tidIDE.add("%id%")' %disabled%><!--
--><input name=remove type=button style='display:inline;width:8%'
	value='remove' title='delete this tiddler'
	onclick='config.macros.tidIDE.remove("%id%")' %disabled%><!--
--><input name=save type=button style='display:inline;width:8%'
	value='save' title='save changes to this tiddler'
	onclick='config.macros.tidIDE.save("%id%")' %disabled%><!--
--><input name=saveas type=button style='display:inline;width:8%'
	value='save as' title='save changes to a new tiddler'
	onclick='config.macros.tidIDE.save("%id%",true)' %disabled%><!--
--><input name=view type=button style='display:inline;width:8%'
	value='open' title='open this tiddler for regular viewing'
	onclick='if (!this.form.current.length) return;	story.displayTiddler(null,this.form.current)'><!--
--><input name=run type=button style='display:inline;width:8%'
	value='run' title='evaluate this tiddler as a javascript "systemConfig" plugin'
	onclick='if (!confirm(config.macros.tidIDE.evalMsg.format([this.form.current]))) return false;
		try { window.eval(this.form.content.value); displayMessage(config.macros.tidIDE.evalCompletedMsg); }
		catch(e) { displayMessage(config.messages.pluginError.format([err])); }'><!--
--><input name=previewbutton type=button style='display:inline;width:8%;'
	value='preview' title='show "live" preview display'
	onclick='if (!config.macros.preview) { alert("Please install PreviewPlugin"); return false; }
		this.form.preview.checked=!this.form.preview.checked;
		document.getElementById("%id%_previewpanel").style.display=this.form.preview.checked?"block":"none";
		if (this.form.freeze) this.form.freeze.checked=!this.form.preview.checked;
		if (this.form.preview.checked) config.macros.preview.render(this.form.content.id,this.form.content.getAttribute("previewid"));'><!--

hidden field for preview show/hide state:
--><input name=preview type=checkbox style='display:none;'>

<!-- tiddler content edit -->
<div><textarea id='%id%_content' name='content' edit='text' cols=60 rows=%maxrows%
	style='width:100%;'
	onkeyup='var f=this.form; f.dirty=true; f.size.value=this.value.length+" bytes";'></textarea></div>

<!-- tag edit and droplist -->
<table width='100%' style='border:0;padding:0;margin:0'><tr style='border:0;padding:0;margin:0'>
<td style='border:0;padding:0;margin:0'>
	<input type=text name=tags edit='tags' size=60 style='width:100%;' value=''
		onchange='this.form.dirty=true' %disabled%>
</td><td width='1' style='border:0;padding:0;margin:0;'>
	<select size=1 name=taglist
		onchange='this.form.dirty=true; this.form.tags.value+=" "+this.value' %disabled%>
	<option value=''>select tags...</option>
	%taglist%
	</select>
</td></tr></table>

<!-- created/modified dates, author, current tiddler size -->
<div style='float:right;'>
	created <input type=text name=created size=15
		style='display:inline;;text-align:center;padding:0;' value=''
		onchange='this.form.dirty=true' %minoredits%>
	modified <input type=text name=modified size=15
		style='display:inline;text-align:center;padding:0;' value=''
		onchange='this.form.dirty=true;' %minoredits%>
	by <input type=text name=author size=15
		style='display:inline;padding:0;' value=''
		onfocus='this.select()' onchange='this.form.dirty=true' %minoredits%>
	<input type=text name=size size=10
		style='display:inline;text-align:center;padding:0;' value=''
		onfocus='this.blur()' onkeydown='return false' DISABLED>
</div>

<!-- toggles: read-only, minor edit -->
<span style='white-space:nowrap'>
<input type=checkbox name=readonly
	style='display:inline;width:auto;margin:1px;' %readonlychk%
	title='do not allow tiddler changes to be saved'
	onclick='readOnly=config.options.chkHttpReadOnly=this.checked;saveOptionCookie("chkHttpReadOnly");
		var f=this.form; f.minoredits.disabled=f.tags.disabled=f.taglist.disabled=this.checked;
		f.add.disabled=f.remove.disabled=f.save.disabled=f.saveas.disabled=this.checked;
		f.created.disabled=f.modified.disabled=f.author.disabled=this.checked||!f.minoredits.checked;'>readonly
<input type=checkbox name=minoredits
	style='display:inline;width:auto;margin:1px;' %disabled% %minorchk%
	title='check: save datestamps/author as entered, uncheck: auto-update modified/author'
	onclick='this.form.created.disabled=this.form.modified.disabled=this.form.author.disabled=!this.checked;
		config.options.chkForceMinorUpdate=this.checked;saveOptionCookie("chkForceMinorUpdate");'>minor edits
</span>

<!-- tiddler preview display -->
<div id='%id%_previewpanel' style='display:none;white-space:nowrap'></div>
!end
//}}}
***/
 
/***
|Name|TiddlerIconsPlugin|
|Source|http://www.TiddlyTools.com/#TiddlerIconsPlugin|
|Version|2.1.0|
|Author|[[EricShulman]] - 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||
|Options|##Configuration|
|Description|display icons next to tiddler title, based on tiddler's attributes (tags, fields, slices, etc)|
!!!!!Usage
<<<
{{{<<tiddlerIcons>>}}} - shows icons for the current tiddler
or
{{{<<tiddlerIcons =TiddlerName>>}}} - shows icons for the specified tiddler
or
{{{<<tiddlerIcons iconID>>}}} - shows a specific icon
<<<
!!!!!Examples
<<<
{{{
icons for current tiddler: <<tiddlerIcons>>
}}}
icons for current tiddler: <<tiddlerIcons>>
{{{
icons for [[Welcome]] tiddler: <<tiddlerIcons =Welcome>>
}}}
icons for [[Welcome]] tiddler: <<tiddlerIcons =Welcome>>
{{{
All icons:
<<tiddlerIcons recent>> <<tiddlerIcons changed>> <<tiddlerIcons unsaved>> <<tiddlerIcons Trash>>
<<tiddlerIcons tag>> <<tiddlerIcons core>> <<tiddlerIcons systemConfig>> <<tiddlerIcons css>>
<<tiddlerIcons html>> <<tiddlerIcons template>> <<tiddlerIcons script>> <<tiddlerIcons attachment>>
<<tiddlerIcons settings>> <<tiddlerIcons pluginInfo>> <<tiddlerIcons faq>> <<tiddlerIcons task>>
}}}
All icons:
<<tiddlerIcons recent>> <<tiddlerIcons changed>> <<tiddlerIcons unsaved>> <<tiddlerIcons Trash>> <<tiddlerIcons tag>> <<tiddlerIcons core>> <<tiddlerIcons systemConfig>> <<tiddlerIcons css>> <<tiddlerIcons html>> <<tiddlerIcons template>> <<tiddlerIcons script>> <<tiddlerIcons attachment>> <<tiddlerIcons settings>> <<tiddlerIcons pluginInfo>> <<tiddlerIcons faq>> <<tiddlerIcons task>>
<<<
!!!!!Configuration
<<<
You can add extra icons definitions based on matching tag values.  First, import or create a tiddler called [[TiddlerIconsPluginConfig]] and tag is with<<tag systemConfig>>
Then, in that tiddler, use the following code format to //merge// your additional icon definitions into the default {{{config.macros.tiddlerIcons.map}}} object.
{{{
merge(config.macros.tiddlerIcons.map,{
	tagvalue: ["tooltip","imagefile"],
	tagvalue: ["tooltip","imagefile"],
	…
	tagvalue: ["tooltip","imagefile"]   // note: no comma after last definition
}
}}}
<<<
!!!!!Revisions
<<<
2008.10.02 [2.1.0] added "=TiddlerName" param (shows icons for specified tiddler)
2007.08.01 [2.0.0] converted from inline script
2007.05.28 [1.0.0] initial release (as inline script)
<<<
!!!!!Code
***/
//{{{
version.extensions.TiddlerIconsPlugin= {major: 2, minor: 1, revision: 0, date: new Date(2008,10,2)};
config.macros.tiddlerIcons = {
	unknown: "unknown tiddler icon: %0",
	map: {
		recent: ["this tiddler was UPDATED within the last 10 days","asterisk_yellow.png"],
		changed: ["this tiddler was UPDATED after your last visit","star.png"],
		unsaved: ["this tiddler has UNSAVED CHANGES","exclamation.png"],
		tag: ["this is a TAG tiddler","tag_blue.png"],
		html: ["this is an HTML MARKUP tiddler","html.png"]
	},
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var img="[img[%0|%1]]";
		var imgs=[]; // collected set of applicable images
		var p=params[0]; // abbrev

		// if icon keyword was supplied, just show one icon and exit…
		if (p&&p.substr(0,1)!="=") {
			wikify(this.map[p]?img.format(this.map[p]):this.unknown.format([p]),place);
			return;
		}

		// if TiddlerName was supplied, use that tiddler, otherwise use current tiddler
		var here=story.findContainingTiddler(place);
		if (!p && !here) return; // not in a tiddler
		var title=p?p.substr(1):here.getAttribute('tiddler');
		var tid=store.getTiddler(title); if (!tid) return; // tiddler not found

		// add 'tag' icon if this tiddler IS a tag
		var tags=store.getTags();
		for (i=0;i<tags.length;i++) if (tags[i][0]==title) imgs.push(img.format(this.map["tag"]));
		if (!tid) { wikify(imgs.join(""),place); return; }

		// add 'unsaved', 'changed', or 'recent' icon based on tiddler vs. document date
		// (uses config.options.lastSaved, updated by [[UnsavedChangesPlugin]])
		if (tid.modified > (config.options.lastSaved?config.options.lastSaved:document.lastModified))
			imgs.push(img.format(this.map["unsaved"]));
		else {
			// add 'changed' icon if tiddler has been modified since last visit
			// (uses config.lastVisit, updated by [[VisitCounterPlugin]])
			// truncate seconds from last visit timestamp for comparison with tiddler modification timestamp
			if (config.lastVisit)
				var last=new Date((new Date(config.lastVisit).getTime())-(new Date(config.lastVisit).getSeconds()*1000));
			if (tid.modified >= last)
				imgs.push(img.format(this.map["changed"]));
			else if (tid.modified >= (new Date()).getTime()-86400000*10)
				imgs.push(img.format(this.map["recent"])); // add 'recent' icon if tiddler has been modified in last 10 days
		}
		if (title.substr(0,6)=="Markup")
			imgs.push(img.format(this.map["html"]));

		// add 'type' icons based on tag(s)... see TiddlerIconsPluginConfig for icon map definitions
		// sort tags for consistent icon display order 
		var tags=[]; for (i=0;i<tid.tags.length;i++) tags.push(tid.tags[i]); tags.sort();
		for (var t=0; t<tags.length; t++)
			if (this.map[tags[t]]) imgs.push(img.format(this.map[tags[t]]));
		wikify(imgs.join(""),place);
	}
};
//}}}
/***
|Name|TiddlerIconsPluginConfig|
|Source|http://www.TiddlyTools.com/#TiddlerIconsPluginConfig|
|Version|2.0.0|
|Author|[[EricShulman]]|
|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|TiddlerIconsPlugin|
|Overrides||
|Description|configure additional icons for TiddlerIconsPlugin, based on containing tiddler's tags|

!!!!!Usage
<<<
This plugin configuration tiddler can be used to add extra icon definitions, based on matching tag values, using the following code format:
{{{
merge(config.macros.tiddlerIcons.map, {
	tagvalue: ["tooltip","imagefile"],
	tagvalue: ["tooltip","imagefile"],
	…
	tagvalue: ["tooltip","imagefile"]   // note: no comma after last definition
}
}}}
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
TiddlerIconsPlugin, TiddlerIconsPluginConfig
<<<
!!!!!Revision History
<<<
''2007.08.01 [2.0.0]'' converted from inline script
<<<
!!!!!Credits
<<<
This feature was developed by Eric L Shulman / ELS Design Studios
<<<
!!!!!Code
***/
//{{{
merge(config.macros.tiddlerIcons.map, {
	Trash:                  ["this tiddler has been tagged as TRASH","bin.png"],
	core:                    ["this is a CUSTOMIZED core tiddler","application_add.png"],
        notes:                   ["this is a comment/notes tiddler","comment.png"],
	systemConfig:       ["this is a PLUGIN tiddler","plugin.png"],
	systemTiddler:      ["this is a DEFAULT tiddler","cog.png"],
	css: 			["this is a css STYLESHEET tiddler","css.png"],
	template: 	       ["this is a layout TEMPLATE","layout.png"],
        transclusion:      ["this is a TRANSCLUSION","cog_add.png"],
	newTemplate: 	   ["this is a tiddler generation TEMPLATE","layout_content.png"],
	script:                   ["this is an INLINE SCRIPT tiddler","script_code.png"],

	attachment:           ["this is a binary file ATTACHMENT","disk.png"],
	feature:                 ["this tiddler contains FEATURE description","eye.png"],
	setting:                  ["this is an SETTING/OPTION tiddler","wrench.png"],

	glossary:  ["this tiddler contains GLOSSARY information","page_white_text.png"],

	info: ["this tiddler contains GENERAL INFORMATION","information.png"],
	help:  ["this tiddler contains HELP inforamtion","help.png"],
	doc:   ["this tiddler contains additional DOCUMENTATION","comment.png"],
	faq: ["this tiddler contains a FAQ/HOW-TO article","lightbulb.png"],
	bookmark: ["this tiddler contains a BOOKMARK URL","anchor.png"],

	todo:                 ["this tiddler is UNDERCONSTRUCTION/TODO","exclamation.png"],
	void:                 ["this tiddler is EMPTY SKELETON/TODO","exclamation.png"],
	reminder:          ["this is an REMINDER tiddler","calendar_view_day.png"],
        package:  ["this is a PACKAGE tiddler","package.png"],
	task: ["this is a TASK tiddler","clock.png"]
});
//}}}
/***
|Name|TiddlerListMacro|
|Version|2.0.10|
|~CoreVersion|1.8+|
|Source|http://jackparke.googlepages.com/jtw.html#TiddlerListMacro|
|Author|[[JackParke]]|
|Type|Plugin|
|Documentation|http://jackparke.googlepages.com/jtw.html#TiddlerListMacroDocumentation|
|Description|The TiddlerListMacro lists tiddlers with SQL-Like features|

!Usage
{{{<<tiddlerList parameter1:"value1" parameter2:"value2" ...>>}}}
See [[TiddlerListMacroDocumentation|http://jackparke.googlepages.com/jtw.html#TiddlerListMacroDocumentation]] and [[TiddlerListMacroExamples| http://jackparke.googlepages.com/jtw.html#TiddlerListMacroExamples]]

{{{<<tiddlerList parameter1:"value1" parameter2:"value2" ...>>}}}
!Examples
List all tiddlers tagged with "Plugin"
{{{<<tiddlerList tags:Plugin>>}}}
List newest 3 plugins which are not templates:
{{{<<tiddlerList tags:"Plugin,-Template" top:3 order:"-created">>}}}
List all tiddlers containing "Jack" in their title or text (last modified first):
{{{<<tiddlerList search:"Jack" order:"-modified">>}}}
List all tiddlers starting with "T" in a table:
{{{<<tiddlerList title:"^T" format:"table" header:"Tiddlers beginning with T" footer:"%count items listed">>}}}
Group tiddlers by first letter
{{{<<tiddlerList top:"15" group:"tiddler.title.substr(0,1)" groupTemplate:"''%group''">>}}}
Show a list of all tiddlers with creation date (overrides default item template)
{{{<<tiddlerList itemTemplate:"* %link (%created)\n">>}}}
Show all tiddlers that have the host's tiddler title in their tag list
{{{<<tiddlerList filter:"tiddler.tags.contains(currentTiddler.title)">>}}}
!Parameters
|!Parameter|!Type|!Meaning|!Example|
|top|Integer|Number of tiddlers to display|"10"|
|tags|String|List tiddlers with matching tags (AND Logic). Leading - to exclude.|"~ToDo,Urgent,-Done"|
|title|~RegEx|List tiddlers with matching title|"^[Pp]"|
|text|~RegEx|List tiddlers with matching text|"Searchtext"|
|search|~RegEx|List tiddlers with matching title OR text|"Problem"|
|filter*|~JavaScript|List tiddlers according to boolean expression)|"tiddler.title.length<4 && tiddler.tags.contains('Idea')"|
|format|String (fixed list)|HTML formatting of list. list (ul, default), nlist (ol), span, stack (div), csv, table.|"list"|
|order|String|Sort order of tiddlers. - is descending, + ascending|"-created"|
|group*|~JavaScript|Grouping field|tiddler.title.substr(0,1)|
|customParameter*|~JavaScript|Custom parameter to be evalled for use in the itemTemplate|tiddler.text.match(/Version: (.*)/)[1]|
|header|String|Top caption|"Tiddlers beginning with T"|
|footer|String|Bottom caption|"End of list"|
|itemTemplate|~WikiTemplate|~WikiText with %placeholders|"%link\n%abstract\n%modified"|
|groupTemplate|~WikiTemplate|~WikiText with %placeholders for the start of each group|"!!%group"|
|groupFooterTemplate|~WikiTemplate|~WikiText with %placeholders for the end of each group|"----\n"|
|dateFormat|String|Date formatting string when displaying dates|~YYYY-MM-DD|
|separator|String|Define a string or character to be inserted between items listed|" "|
|debug|Boolean|Set to 1 or true for debug mode where only wikitext will be output|debug:1|
{{{*}}} Parameter will be evalled (do not pass with {{{{{ }} }}} unless you want it evalled twice!)
!Template Placeholders
Placeholder values for itemTemplate parameter
|!Placeholder|!Field|
|%item|List item number|
|%link|Link to Tiddler {{{[[MyTiddler]]}}}|
|%title|Tiddler Name {{{MyTiddler}}}|
|%nolink|Unlinked Tiddler Title {{{~MyTiddler}}}|
|%abstract|First 100 chars of tiddler text|
|%text|All tiddler text|
|%tags|Tags separated by space|
|%created|Creation date|
|%modified|Modified date|
|%modifier|Last modifier|
|%group|Name of group field|
|%custom|The result of your evalled customParameter|
|%count|Number of items listed (footer only)|
!Variables
{{{{{currentTiddler}} }}}refers to the current (host) tiddler in function scope (i.e. within the filter or group parameters)
{{{{{gCurrentTiddler}} }}}refers to the current (host) tiddler in global scope (i.e. within{{{ {{}} }}}evalled parameters. Example:
{{{<<tiddlerList tags:{{gCurrentTiddler.title}}>>}}}
!Style
No styles are pre-assigned to the lists. Use {{{@@}}} notation to define custom styles in the header, footer, groupTemplate and itemTemplate parameters.

!Code
***/
//{{{
version.extensions.tiddlerList = {major: 2, minor: 0, revision: 10, date: new Date("May 2, 2006")};
// template = [header, item, separator, group, footer]
config.macros.tiddlerList={
 formats : {list:true, nlist:true, span:true, stack:true, csv:true, table:true},
 templates : {
 list : [ "%0\n", "* %0\n", "", "%group\n", "%0\n"],
 nlist : [ "%0", "# %0\n", "", "%group\n", "%0\n"],
 span : [ "%0", "%0", " ", "%group", "%0"],
 stack : [ "%0", "%0", "\n", "%group", "%0"],
 csv : [ "%0", "%0", ", ", "%0", "%0\n"],
 table : ["|!%0|\n", "|%0|\n", "", "|%group|\n", "|%0|\n"]
 },
 dateFormat : "DD MMM YYYY"
}

if (typeof gCurrentTiddler == 'undefined')
 var gCurrentTiddler;

config.macros.tiddlerList.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
 // Some globals
 var count=0, groupCount=0, theGroup="", lastGroup="";
 var currentTiddler = tiddler;
 gCurrentTiddler = tiddler;
 var listWikiText="";
 var formats = this.formats;
 
 // SQL-Like parameters
 var parameters = paramString.parseParams("name",null,true);
 var pTags = parameters[0]["tags"]?parameters[0]["tags"][0].split(","):[];
 var pOrder = parameters[0]["order"]?parameters[0]["order"][0]:"title";
 var pTop = parameters[0]["top"]?parameters[0]["top"][0]:-1;
 var pText = parameters[0]["text"]?parameters[0]["text"][0]:"";
 var pTitle = parameters[0]["title"]?parameters[0]["title"][0]:"";
 var pSearch = parameters[0]["search"]?parameters[0]["search"][0]:"";
 var pFilter = parameters[0]["filter"]?parameters[0]["filter"][0]:"";
 var pHeader = parameters[0]["header"]?paramFormat(parameters[0]["header"][0]):"";
 var pFooter = parameters[0]["footer"]?paramFormat(parameters[0]["footer"][0]):"";
 var pGroup = parameters[0]["group"]?parameters[0]["group"][0]:"";
 var pDateFormat = parameters[0]["dateFormat"]?parameters[0]["dateFormat"][0]:this.dateFormat;
 var pCustomParameter = parameters[0]["customParameter"]?parameters[0]["customParameter"][0]:"";
 var pFormat = parameters[0]["format"]?parameters[0]["format"][0]:"list";
 pFormat = formats[pFormat]?pFormat:"list"
 
 // Separator
 var pSeparator = parameters[0]["separator"]?paramFormat(parameters[0]["separator"][0]):(parameters[0]["seperator"]?paramFormat(parameters[0]["seperator"][0]):this.templates[pFormat][2])

 // Template for group
 var pGroupTemplate = this.templates[pFormat][3];
 if (parameters[0]["groupTemplate"])
 pGroupTemplate = paramFormat(parameters[0]["groupTemplate"][0])
 pGroupTemplate = pGroupTemplate.replace("$))", ">>")
 
 // Template for group footer
 var pGroupFooterTemplate = "";
 if (parameters[0]["groupFooterTemplate"])
 pGroupFooterTemplate = paramFormat(parameters[0]["groupFooterTemplate"][0])
 pGroupFooterTemplate = pGroupFooterTemplate.replace("$))", ">>")
 
 // Template for item
 var pItemTemplate = this.templates[pFormat][1];
 if (parameters[0]["itemTemplate"])
 pItemTemplate = paramFormat(parameters[0]["itemTemplate"][0])
 pItemTemplate = pItemTemplate.replace("$))", ">>").replace("%link", "%0").replace("%item", "%1").replace("%abstract", "%2").replace("%text", "%3").replace("%created", "%4").replace("%modified", "%5").replace("%modifier", "%6").replace("%group", "%7").replace("%title", "%8").replace("%tags", "%9").replace("%nolink", "%10").replace("%custom", "%11")
 // Template for footer
 var pFooterTemplate = this.templates[pFormat][4].replace("%count", "%1")

 // Get all tiddlers
 var tiddlers = store.reverseLookup("tags","excludeLists",false);

 // Sorting
 if(!pOrder)
 pOrder = "title";
 if (pOrder.match(/^\-/i)) {
 pOrder = pOrder.substr(1)
 var sortDesc = true;
 }
 if (sortDesc)
 tiddlers.sort(function (a,b) {if(a[pOrder] == b[pOrder]) return(0); else return (a[pOrder] > b[pOrder]) ? -1 : +1; });
 else
 tiddlers.sort(function (a,b) {if(a[pOrder] == b[pOrder]) return(0); else return (a[pOrder] < b[pOrder]) ? -1 : +1; });

 // Header
 if (pHeader)
 listWikiText += formatItem(this.templates[pFormat][0], [pHeader], pFormat)
 
 for(var t=0; t<tiddlers.length; t++) {
 tiddler = tiddlers[t];
 if (pTop==-1 || count<pTop) {
 if (pText=="" || tiddler.text.match(pText)) {
 if (pTitle=="" || tiddler.title.match(pTitle)) {
 if (pSearch=="" || (tiddler.title.match(pSearch) || tiddler.text.match(pSearch))) {
 if (pFilter=="" || eval(pFilter)) {
 if (pTags.length==0 || compareArrays(tiddler.tags, pTags, "all")) {
 count++;
 // Grouping
 if (pGroup) {
 theGroup = eval(pGroup);
 if(theGroup != lastGroup) {
 groupCount++;
 if (pGroupFooterTemplate && groupCount>1)
 listWikiText += pGroupFooterTemplate.replace("%group", theGroup)
 listWikiText += pGroupTemplate.replace("%group", theGroup)
 lastGroup = theGroup;
 }
 }
 // Separators
 if (count>1) listWikiText += pSeparator;
 //Plaintext title
 var noLink = tiddler.title.match(config.textPrimitives.wikiLink)?"~" + tiddler.title:tiddler.title;
 // Custom parameter
 if (pCustomParameter)
 var custom="";
 try {
 custom = eval(pCustomParameter)
 } catch (e) {}
 // List individual tiddler
 listWikiText += formatItem(pItemTemplate,["[[" + tiddler.title + "]]",count,tiddler.text.substr(0,100),tiddler.text,tiddler.created.formatString(pDateFormat),tiddler.modified.formatString(pDateFormat),tiddler.modifier,theGroup,tiddler.title,tiddler.tags.join(" "),noLink,custom], pFormat)
 }
 }
 }
 }
 }
 }
 }
 
 // Last group footer
 if (pGroup && pGroupFooterTemplate && count>0)
 listWikiText += pGroupFooterTemplate.replace("%group", theGroup)

 // Footer
 if (pFooter) {
 pFooter = pFooter.replace("%count", count)
 listWikiText += formatItem(pFooterTemplate, [pFooter], pFormat)
 }
 
 // Render result
 if (!parameters[0]["debug"])
 wikify(listWikiText,place, null, currentTiddler)
 else
 place.innerHTML = "<textarea style=\"width:100%;\" rows=30>" + listWikiText + "</textarea>"
 
 
 // Local functions
 
 function paramFormat(param) {
 // Allow "\n" in non evalled parameters
 return param.replace(/\\n/g, "\n");
 }
 
 function formatItem(template, values, format) {
 // Fill template with values (depending on list format)
 if (format.match(/table/) && values[0].match(/\|/))
 return ("%0\n").format(values)
 else
 return template.format(values)
 }
 
 function compareArrays(array, values, logic) {
 // Compare items in array with AND("all") or OR("any") logic
 var matches=0;
 for(var v=0; v<values.length; v++)
 if(values[v].match(/^\-/) && !array.contains(values[v].substr(1)))
 matches++;
 else if (array.contains(values[v]))
 matches++;
 return ((logic=="all" && matches==values.length) || (logic!="all" && matches>0))
 }
 
}

String.prototype.prettyTrim = function(len,prefix,postfix) {
 var result = this.trim().replace(/\r\n/g,' ').replace(/\n/g,' ');
 if (!prefix) prefix = '';
 if (!postfix) postfix = '';
 if (result.length > len - 3)
 return prefix + result.substr(0,len) + '...' + postfix;
 else if (result.length > 0)
 return prefix + result + postfix;
 else
 return result;
}

//}}}
/%
ABC:/%%/ <<tiddler TiddlerMap##Col with: A B C>>

/%
DEF:/%%/ <<tiddler TiddlerMap##Col with: D E F>>

/%
GHI:/%%/ <<tiddler TiddlerMap##Col with: G H I>>

/%
JKL:/%%/ <<tiddler TiddlerMap##Col with: J K L>>

/%
MNO:/%%/ <<tiddler TiddlerMap##Col with: M N O>>

/%
PQR:/%%/ <<tiddler TiddlerMap##Col with: P Q R>>

/%
STU:/%%/ <<tiddler TiddlerMap##Col with: S T U>>

/%
VW:/%%/ <<tiddler TiddlerMap##Col2 with: V W>>

/%
XYZ:/%%/ <<tiddler TiddlerMap##Col with: X Y Z>>

/%
0to9:/%%/ <<tiddler TiddlerMap##Col with: '0-3' '4-6' '7-9'>>

/%
!!!Col
{{dp33{''$1''<<list noCase title '[$1]'>>}}} {{dp33{''$2''<<list noCase title '[$2]'>>}}} {{dp33{''$3''<<list noCase title '[$3]'>>}}}
{{dp100{<br>}}}

!!!Col1
<hr>
@@$1@@
<<list noCase title '[$1]'>>
<hr>
!!!end

!!!Col2
{{dp50{''$1''<<list noCase title '[$1]'>>}}} {{dp50{''$2''<<list noCase title '[$2]'>>}}}
{{dp100{<br>}}}
!!!end

*Col3 
!!!Col3
{{dp33{''$1''<<list noCase title '[$1]'>>}}} {{dp33{''$2''<<list noCase title '[$2]'>>}}} {{dp33{''$3''<<list noCase title '[$3]'>>}}}
{{dp100{<br>}}}

!!!ColAZ3
{{dp33{''$1''-[$2]
<<list noCase title '$1[$2]'>>}}} {{dp33{''$1''-[$3]
<<list noCase title '$1[$3]'>>}}} {{dp33{''$1''-[$4]
<<list noCase title '$1[$4]'>>}}}
{{dp100{<br>}}}
!!!end

!!!ColAZ4
{{dp25{''$1''-[$2]
<<list noCase title '$1[$2]'>>}}} {{dp25{''$1''-[$3]
<<list noCase title '$1[$3]'>>}}} {{dp25{''$1''-[$4]
<<list noCase title '$1[$4]'>>}}} {{dp25{''$1''-[$5]
<<list noCase title '$1[$5]'>>}}}
{{dp100{<br>}}}
!!!end

!!!Col0to9
{{dp33{''$1''<<list noCase title '[$1]'>>}}} {{dp33{''$2''
<<list noCase title '[$2]'>>}}} {{dp33{''$3''
<<list noCase title '[$3]'>>}}}
{{dp100{<br>}}}
!!!end
%/
/%
A:/%%/ <<tiddler TiddlerMap##Col1 with: A>>
/%
B:/%%/ <<tiddler TiddlerMap##Col1 with: B>>
/%
C:/%%/ <<tiddler TiddlerMap##Col1 with: C>>
/%
D:/%%/ <<tiddler TiddlerMap##Col1 with: D>>
/%
E:/%%/ <<tiddler TiddlerMap##Col1 with: E>>
/%
F:/%%/ <<tiddler TiddlerMap##Col1 with: F>>
/%
G:/%%/ <<tiddler TiddlerMap##Col1 with: G>>
/%
H:/%%/ <<tiddler TiddlerMap##Col1 with: H>>
/%
I:/%%/ <<tiddler TiddlerMap##Col1 with: I>>
/%
J:/%%/ <<tiddler TiddlerMap##Col1 with: J>>
/%
K:/%%/ <<tiddler TiddlerMap##Col1 with: K>>
/%
L:/%%/ <<tiddler TiddlerMap##Col1 with: L>>
/%
M:/%%/ <<tiddler TiddlerMap##Col1 with: M>>
/%
N:/%%/ <<tiddler TiddlerMap##Col1 with: N>>
/%
O:/%%/ <<tiddler TiddlerMap##Col1 with: O>>
/%
P:/%%/ <<tiddler TiddlerMap##Col1 with: P>>
/%
Q:/%%/ <<tiddler TiddlerMap##Col1 with: Q>>
/%
R:/%%/ <<tiddler TiddlerMap##Col1 with: R>>
/%
S:/%%/ <<tiddler TiddlerMap##Col1 with: S>>
/%
T:/%%/ <<tiddler TiddlerMap##Col1 with: T>>
/%
U:/%%/ <<tiddler TiddlerMap##Col1 with: U>>
/%
V:/%%/ <<tiddler TiddlerMap##Col1 with: V>>
/%
W:/%%/ <<tiddler TiddlerMap##Col1 with: W>>
/%
X:/%%/ <<tiddler TiddlerMap##Col1 with: X>>
/%
Y:/%%/ <<tiddler TiddlerMap##Col1 with: Y>>
/%
Z:/%%/ <<tiddler TiddlerMap##Col1 with: Z>>
/%
0:/%%/ <<tiddler TiddlerMap##Col1 with: 0>>
/%
1:/%%/ <<tiddler TiddlerMap##Col1 with: 1>>
/%
2:/%%/ <<tiddler TiddlerMap##Col1 with: 2>>
/%
3:/%%/ <<tiddler TiddlerMap##Col1 with: 3>>
/%
4:/%%/ <<tiddler TiddlerMap##Col1 with: 4>>
/%
5:/%%/ <<tiddler TiddlerMap##Col1 with: 5>>
/%
6:/%%/ <<tiddler TiddlerMap##Col1 with: 6>>
/%
7:/%%/ <<tiddler TiddlerMap##Col1 with: 7>>
/%
8:/%%/ <<tiddler TiddlerMap##Col1 with: 8>>
/%
9:/%%/ <<tiddler TiddlerMap##Col1 with: 9>>
{{tiddlerMapSlider{
<<slider chkA [[TiddlerMapCol1::A]] A 'display tiddler'>>/%
%/<<slider chkB [[TiddlerMapCol1::B]] B 'display tiddler'>>/%
%/<<slider chkC [[TiddlerMapCol1::C]] C 'display tiddler'>>/%
%/<<slider chkD [[TiddlerMapCol1::D]] D 'display tiddler'>>/%
%/<<slider chkE [[TiddlerMapCol1::E]] E 'display tiddler'>>/%
%/<<slider chkF [[TiddlerMapCol1::F]] F 'display tiddler'>>/%
%/<<slider chkG [[TiddlerMapCol1::G]] G 'display tiddler'>>/%
%/<<slider chkH [[TiddlerMapCol1::H]] H 'display tiddler'>>

<<slider chkI [[TiddlerMapCol1::I]] I 'display tiddler'>>/%
%/<<slider chkJ [[TiddlerMapCol1::J]] J 'display tiddler'>>/%
%/<<slider chkK [[TiddlerMapCol1::K]] K 'display tiddler'>>/%
%/<<slider chkL [[TiddlerMapCol1::L]] L 'display tiddler'>>/%
%/<<slider chkM [[TiddlerMapCol1::M]] M 'display tiddler'>>/%
%/<<slider chkN [[TiddlerMapCol1::N]] N 'display tiddler'>>/%
%/<<slider chkO [[TiddlerMapCol1::O]] O 'display tiddler'>>/%
%/<<slider chkP [[TiddlerMapCol1::P]] P 'display tiddler'>>

<<slider chkQ [[TiddlerMapCol1::Q]] Q 'display tiddler'>>/%
%/<<slider chkR [[TiddlerMapCol1::R]] R 'display tiddler'>>/%
%/<<slider chkS [[TiddlerMapCol1::S]] S 'display tiddler'>>/%
%/<<slider chkT [[TiddlerMapCol1::T]] T 'display tiddler'>>/%
%/<<slider chkU [[TiddlerMapCol1::U]] U 'display tiddler'>>/%
%/<<slider chkV [[TiddlerMapCol1::V]] V 'display tiddler'>>/%
%/<<slider chkW [[TiddlerMapCol1::W]] W 'display tiddler'>>/%
%/<<slider chkX [[TiddlerMapCol1::X]] X 'display tiddler'>>

<<slider chkY [[TiddlerMapCol1::Y]] Y 'display tiddler'>>/%
%/<<slider chkZ [[TiddlerMapCol1::Z]] Z 'display tiddler'>>

<<slider chk0 [[TiddlerMapCol1::0]] 0 'display tiddler'>>/%
%/<<slider chk1 [[TiddlerMapCol1::1]] 1 'display tiddler'>>/%
%/<<slider chk2 [[TiddlerMapCol1::2]] 2 'display tiddler'>>/%
%/<<slider chk3 [[TiddlerMapCol1::3]] 3 'display tiddler'>>/%
%/<<slider chk4 [[TiddlerMapCol1::4]] 4 'display tiddler'>>

<<slider chk5 [[TiddlerMapCol1::5]] 5 'display tiddler'>>/%
%/<<slider chk6 [[TiddlerMapCol1::6]] 6 'display tiddler'>>/%
%/<<slider chk7 [[TiddlerMapCol1::7]] 7 'display tiddler'>>/%
%/<<slider chk8 [[TiddlerMapCol1::8]] 8 'display tiddler'>>/%
%/<<slider chk9 [[TiddlerMapCol1::9]] 9 'display tiddler'>>}}}
/***
|Name|TiddlerNotesPlugin|
|Description|Add notes to tiddlers without modifying the original content|
|Author|[[SaqImtiaz]] ( lewcid@gmail.com )|
|Source|http://tw.lewcid.org/#TiddlerNotesPlugin|
|Code Repository|http://tw.lewcid.org/svn/plugins|
|Version|2.1|
|Date|26/10/07|
|License|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|~CoreVersion|2.2.3|

!!Concept:
*The TiddlerNotesPlugin allows you to add notes to tiddlers, without needing to edit the original tiddler. This means that your original content will remain unaltered, and if you update it in the future, you won�t lose your notes. Notes are stored in separate tiddlers, but can be viewed and edited from within the original tiddler.
*For a tiddler titled "~MySlide", the notes are by default saved in a tiddler titled "~MySlide-Notes" and is given a tag of "Notes". The suffix and tags of the notes tiddlers are customizable. You can have one or multiple notes per tiddlers. So it is possible to have for example, teacher's notes and student's notes in the same file.
*Notes can be configured to start off blank, or pre-filled with the contents of the original tiddler.

!!Usage:
*{{{<<notes>>}}} is the simplest usage form.
* additional optional parameters include:
**{{{heading:}}} the heading to use for the notes box
**{{{tag:}}} the tag to be given to the notes tiddler
**{{{suffix:}}} the suffix to be used when naming the notes tiddler
* a full macro call could look like: {{{<<notes heading:"My Notes" tag:"NoteTiddlers" suffix:"Comments">>}}}
* To avoid adding {{{<<notes>>}}} to each tiddler you want notes for, you could add the macro call to the ViewTemplate
** below the line {{{<div class='viewer' macro='view text wikified'></div>}}} add the following line: <br> {{{<div class='viewer' macro='notes'></div>}}}
** Used in combination with the ~HideWhenPlugin or ~PublisherPlugin, you could have notes be shown only for tiddlers with specific tags. The ~PublisherPlugin would allow you for instance to only have the ~TeachersNotes visible to the teacher, and the ~StudentsNotes for the same tiddler visible to the Student.

!!Configuration
*<<option chkPrefillNotes>> Enable to pre-fill notes with the original tiddler's contents

!!Demo:
* [[MySlide]]

***/
// /%
//!BEGIN-PLUGIN-CODE

if (!config.options.chkPrefillNotes)
	config.options.chkPrefillNotes = false;
	
function createTiddlyElement(theParent,theElement,theID,theClass,theText,attribs)
{
	var e = document.createElement(theElement);
	if(theClass != null)
		e.className = theClass;
	if(theID != null)
		e.setAttribute("id",theID);
	if(theText != null)
		e.appendChild(document.createTextNode(theText));
	if(attribs){
		for(var n in attribs){
			e.setAttribute(n,attribs[n]);
		}
	}
	if(theParent != null)
		theParent.appendChild(e);
	return e;
}

function createTiddlyButton(theParent,theText,theTooltip,theAction,theClass,theId,theAccessKey,attribs)
{
	var theButton = document.createElement("a");
	if(theAction) {
		theButton.onclick = theAction;
		theButton.setAttribute("href","javascript:;");
	}
	if(theTooltip)
		theButton.setAttribute("title",theTooltip);
	if(theText)
		theButton.appendChild(document.createTextNode(theText));
	if(theClass)
		theButton.className = theClass;
	else
		theButton.className = "button";
	if(theId)
		theButton.id = theId;
	if(attribs){
		for(var n in attribs){
			e.setAttribute(n,attribs[n]);
		}
	}
	if(theParent)
		theParent.appendChild(theButton);
	if(theAccessKey)
		theButton.setAttribute("accessKey",theAccessKey);
	return theButton;
}

config.macros.notes={
	
	cancelWarning: "Are you sure you want to abandon changes to your notes for '%0'?",
	editLabel: "edit notes",
	editTitle: "double click to edit",
	saveLabel: "save notes",
	saveTitle: "double click to save",
	cancelLabel: "cancel",
	heading: "Notes",
	suffix: "Notes",
	tag: "Notes",
	
	saveNotes: function(ev){
		e = ev? ev : window.event;
		var theTarget = resolveTarget(e);
		if (theTarget.nodeName.toLowerCase() == "textarea")
			return false;
		var title = story.findContainingTiddler(theTarget).getAttribute("tiddler");
		story.setDirty(title,false);
		var box = document.getElementById("notesContainer"+title);
		var textarea = document.getElementById("notesTextArea"+title);
		if(textarea.getAttribute("oldText")!=textarea.value && !hasClass(theTarget,"cancelNotesButton")){
			var suffix = box.getAttribute("suffix");
			var t = store.getTiddler(title+"-"+suffix);
			store.saveTiddler(title+"-"+suffix,title+"-"+suffix,textarea.value,config.options.txtUserName,new Date(),t?t.tags:box.getAttribute("tag"),t?t.fields:{});
		}
		story.refreshTiddler(title,1,true);
		autoSaveChanges(true);
		return false;
	},
	
	editNotes: function(box,tiddler){
		removeChildren(box);
		story.setDirty(tiddler,true);
		box.title = this.saveTitle;
		box.ondblclick = this.saveNotes;
		createTiddlyButton(box,this.cancelLabel,this.cancelLabel,this.saveNotes,"cancelNotesButton");
		createTiddlyButton(box,this.saveLabel,this.saveLabel,this.saveNotes,"saveNotesButton");
		wikify("!!"+box.getAttribute("heading")+"\n",box);
		addClass(box,"editor");
		var wrapper1 = createTiddlyElement(null,"fieldset",null,"fieldsetFix");
		var wrapper2 = createTiddlyElement(wrapper1,"div");
		var e = createTiddlyElement(wrapper2,"textarea","notesTextArea"+tiddler);
		var v = store.getValue(tiddler+"-"+box.getAttribute("suffix"),"text");
		if(!v) 
			v = config.options.chkPrefillNotes? store.getValue(tiddler,"text"):'';
		e.value = v;
		e.setAttribute("oldText",v);
		var rows = 10;
		var lines = v.match(/\n/mg);
		var maxLines = Math.max(parseInt(config.options.txtMaxEditRows),5);
		if(lines != null && lines.length > rows)
			rows = lines.length + 5;
		rows = Math.min(rows,maxLines);
		e.setAttribute("rows",rows);
		box.appendChild(wrapper1);
	},
	
	editNotesButtonOnclick: function(e){
		var title = story.findContainingTiddler(this).getAttribute("tiddler");
		var box = document.getElementById("notesContainer"+title);
		config.macros.notes.editNotes(box,title);
		return false;
	},
	
	ondblclick : function(ev){
		e = ev? ev : window.event;
		var theTarget = resolveTarget(e);
		var title = story.findContainingTiddler(theTarget).getAttribute("tiddler");
		var box = document.getElementById("notesContainer"+title);
		config.macros.notes.editNotes(box,title);
		e.cancelBubble = true;
		if(e.stopPropagation) e.stopPropagation();
		return false;
	},
	
	handler : function(place,macroName,params,wikifier,paramString,tiddler){
		
		params = paramString.parseParams("anon",null,true,false,false);
		var heading = getParam(params,"heading",this.heading);
		var tag = getParam(params,"tag",this.tag);
		var suffix = getParam(params,"suffix",this.suffix);
		var box = createTiddlyElement(place,"div","notesContainer"+tiddler.title,"TiddlerNotes",null,{"source":tiddler.title,params:paramString,heading:heading,tag:tag,suffix:suffix});
		createTiddlyButton(box,this.editLabel,this.editLabel,this.editNotesButtonOnclick,"editNotesButton");
		wikify("!!"+heading+"\n",box);
		box.title=this.editTitle;
		box.ondblclick = this.ondblclick;
		wikify("<<tiddler [["+tiddler.title+"-"+suffix+"]]>>",box);
	}		
};

Story.prototype.old_notes_closeTiddler = Story.prototype.closeTiddler;
Story.prototype.closeTiddler = function(title,animate,unused){
	if(story.isDirty(title)) {
		if(!confirm(config.macros.notes.cancelWarning.format([title])))
			return false;
	}
	return this.old_notes_closeTiddler.apply(this,arguments);
}

setStylesheet(".TiddlerNotes {\n"+ " background:#eee;\n"+ " border:1px solid #ccc;\n"+ " padding:10px;\n"+ " margin:15px;\n"+ "}\n"+ "\n"+ ".cancelNotesButton,.editNotesButton, .saveNotesButton {\n"+ " float:right;\n"+ " border:1px solid #ccc;\n"+ " padding:2px 5px;\n"+ "}\n"+ "\n"+ ".saveNotesButton{\n"+ " margin-right:0.5em;\n"+ "}\n"+ "\n"+ ".TiddlerNotes.editor textarea{\n"+ " border:1px solid #ccc;\n"+ "}","NotesPluginStyles");
//!END-PLUGIN-CODE
// %/
/***
|Name|TiddlerPasswordPlugin|
|Source|http://www.TiddlyTools.com/#TiddlerPasswordPlugin|
|Version|1.1.3|
|Author|[[EricShulman]] - 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|block viewing of tiddler content by prompting for a password before content is displayed|

This plugin blocks viewing of specific tiddler content by prompting for a NON-SECURE, UNENCRYPTED password before the tiddler is displayed.  If the correct password is not entered, the tiddler is automatically closed.  The process does not prevent tiddler content from being viewed directly from the TiddlyWiki source file's storeArea, nor does it encrypt the tiddler content in any way.  Because it is relatively simple to bypass and/or disable the password prompting process, this macro should be thought of as a "latch" rather than a "lock" on a given tiddler.
!!!!!Usage
<<<
in tiddler content:
>{{{<<getTiddlerPassword>>}}} 
>{{{<<getTiddlerPassword password>>}}}
>{{{<<getTiddlerPassword password "prompt message">>}}}
>{{{<<getTiddlerPassword - "prompt message">>}}}
in ViewTemplate or EditTemplate:
>{{{<span macro='getTiddlerPassword ...'></span>}}}

Place the {{{<<getTiddlerPassword>>}}} or {{{<span macro='getTiddlerPassword ...'></span>}}} macro at the beginning of your tiddler content, ViewTemplate and/or EditTemplate.  The macro prompts for a password until either A) the correct password is entered or B) the user presses the cancel button from the prompt box, in which case the tiddler is automatically closed so it cannot be viewed/edited.  If a valid password is input, it will be remembered only until the user closes the tiddler.  Each time the tiddler is opened, the password must be re-entered.

The optional ''password'' parameter provides a "user-level" password for the tiddler in which the macro occurs.  If no user password is provided, then only the admin-level password (see below) will be accepted.  

By default, the prompt message reads: "Please enter a password to view '%0'" (where the %0 is automatically replaced by the name of the tiddler in which the macro occurs)  To change this text, enter an additional macro parameter, following the user password.
>Note: because the prompt text is likely to contain spaces, you should always enclose it in quotes (or use {{{[[...]]}}} if it contains quotes).  In addition, to enter an alternative prompt without providing a user-level password, use "-" as a //placeholder// for the password parameter.

Notes:
* You can set a hard-coded admin password (see below) to define a "universal passkey" that will grant access to all tiddlers protected by this script, regardless of the individual password used on each protected tiddler.
* If you embed one or more password-protected tiddlers within another tiddler (by using the {{{<<tiddler TiddlerName>>}}} macro) the user will be prompted to provide the appropriate password for the EACH protected tiddler contained in the tiddler being rendered.
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''TiddlerPasswordPlugin'' (tagged with <<tag systemConfig>>)

''As soon as you have installed this plugin, you should change the default admin password in [[TiddlerPasswordPluginConfig]].''  Note: the configuration tiddler is password-protected to prevent the admin password from being viewed (and/or modified) unless the current password is provided.  By default, the admin password is set to "admin".
<<<
!!!!!Revision History
<<<
''2007.09.13 [1.1.3]'' adjusted wording of "cancelMsg" text so it can apply to either view-mode or edit-mode activities, and documented usage in ViewTemplate/EditTemplate.
''2007.05.06 [1.1.2]'' changed admin password tiddler name from TiddlerPasswordConfig to TiddlerPasswordPluginConfig so it will be processed AFTER the plugin's default initialization
''2007.02.22 [1.1.1]'' updated documentation for using custom prompt text
''2007.01.01 [1.1.0]'' added optional param for using custom prompt text 
''2006.12.03 [1.0.1]'' handler() uses passed-in 'tiddler.title' (if any), so that title of included protected tiddlers can be correctly displayed (instead of showng title of containing tiddler)
''2006.12.02 [1.0.0]'' initial release - converted from GetTiddlerPassword inline script
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]
<<<
!!!!!Code
***/
//{{{
version.extensions.getTiddlerPassword= {major: 1, minor: 1, revision: 3, date: new Date(2007,9,13)};

config.macros.getTiddlerPassword = {
	msg: "Please enter a password to view '%0'",
	defaultText: "enter password here",
	retryMsg: "'%0' is not the correct password for '%1'.  Please try again:",
	cancelMsg: "Sorry, you cannot access '%0' without a valid password.",
	thanksMsg: "Thank you, your password has been accepted.",
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var here=story.findContainingTiddler(place); if (!here) return;
		var title=tiddler?tiddler.title:here.getAttribute("tiddler");
		var who=here.getAttribute("logID");
		var userPass=params[0]?params[0]:""; if (userPass=='-') userPass="";
		var msg=params[1]?params[1]:this.msg;
		if (who==userPass||who==this.adminPass) return; // already 'logged in'?
		var who=prompt(msg.format([title]),this.defaultText); // ask for ID
		while (who && who!=userPass && who!=this.adminPass) // not correct ID?
			who=prompt(this.retryMsg.format([who,title]),this.defaultText); // ask again
		if (who==userPass||who==this.adminPass) // correct ID? mark tiddler logged in…
			{ here.setAttribute("logID",who); alert(this.thanksMsg); }
		else // incorrect ID (e.g., entry cancelled by user)...
			{ story.closeTiddler(here.getAttribute("tiddler")); alert(this.cancelMsg.format([title])); }
	}
}
// default admin password (may be overridden in TiddlerPasswordPluginConfig)
if (config.macros.getTiddlerPassword.adminPass==undefined)
	config.macros.getTiddlerPassword.adminPass="admin";
//}}}
/***
|Name|TiddlerPreviewsPlugin|
|Source|http://tw.lewcid.org/sandbox/#TiddlerPreviewsPlugin|
|Version||
|Author|[[SaqImtiaz]]|
|License|http://creativecommons.org/licenses/by-sa/2.5/|
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description|replace default tiddler tooltips with stylish excerpts of the tiddler text.<<br>>Changed by MichaelTarnowski to toggle TiddlerPreview mode in AdvancedOptions.|
***/
//{{{
// based on Sweet Titles (c) Creative Commons 2005
// http://creativecommons.org/licenses/by-sa/2.5/
// Author: [[DustinDiaz]] | http://www.dustindiaz.com
// Adapted to TW for tiddler previews by Saq Imtiaz

var opts = {chkTiddlerPreview:true};
for (var n in opts) 
	if (config.options[n] == undefined) config.options[n] = opts[n];

config.linkPreview ={
      tiddlyLinkPreview : config.options.chkTiddlerPreview,
      externalLinkPreview : false,
      customTiddlerPreview : true
}

if (config.linkPreview.customTiddlerPreview)
    {
    Tiddler.prototype.getSubtitle = function()
        {
        return (this.text.length>0 ? this.text.substr(0,110) : "(no text)");
        }
    }

if (config.linkPreview.tiddlyLinkPreview)
    {
    old_tiddlerPreview_createTiddlyButton=createTiddlyButton;
    window.createTiddlyButton = function (theParent,theText,theTooltip,theAction,theClass,theId,theAccessKey)
        {
        var theButton =  old_tiddlerPreview_createTiddlyButton.apply(this,arguments);
        if (theButton.className.indexOf('tiddlyLink')!=-1)
            {
            theButton = setLinkPreview(theButton);
            }
        return theButton;
        }
    }

function setLinkPreview (theButton)
{
     theButton.setAttribute("tip",theButton.getAttribute("title"));
     addEvent(theButton,'mouseover',sweetTitles.tipOver);
     addEvent(theButton,'mouseout',sweetTitles.tipOut);
     theButton.setAttribute("title","");
     return theButton;
}

if (config.linkPreview.externalLinkPreview)
    {
    old_tiddlerPreview_createExternalLink=createExternalLink;
    window.createExternalLink =  function(place,url)
        {
	    var theLink = old_tiddlerPreview_createExternalLink(place,url);
        theLink = setLinkPreview(theLink);
	    return(theLink);
        }
    }

window.old_lewcid_pt_restart = restart;
restart = function()
{
 window.old_lewcid_pt_restart();
 sweetTitles.init();
};

window.refreshTiddlyLink = function(e,title)
{
	var i = getTiddlyLinkInfo(title,e.className);
	e.className = i.classes;
        if (!e.getAttribute('tip'))
	      e.title = i.subTitle;
}

setStylesheet("body div#toolTip { position:absolute;z-index:1000;width:220px;background:#319aad;border:2px double #fff;text-align:left;padding:5px;min-height:1em;-moz-border-radius:5px; }\n body div#toolTip p { margin:0;padding:2px;color:#000;font:11px/12px  verdana,arial,sans-serif; font-weight:normal;  word-break:normal;display:block;overflow:hidden;}","linkPreviewStyles");

var sweetTitles = { 
	xCord : 0,				// @Number:  x pixel value of current cursor position
	yCord : 0,				// @Number:  y pixel value of current cursor position
	tipElements : ['a','abbr','acronym'],	// @Array:   Allowable elements that can have the toolTip
	obj : Object,				// @Element: That of which you're hovering over
	tip : Object,				// @Element: The actual toolTip itself
	active : 0,				// @Number:  0: Not Active || 1: Active
	init : function() {
        this.tip = createTiddlyElement(document.getElementsByTagName('body')[0],"div","toolTip");
		this.tip.style.top = '0';
		this.tip.style.visibility = 'hidden';
	},
	updateXY : function(e) {
        var theTarget = resolveTarget(e);
	    sweetTitles.xCord = findPosX(theTarget);
	    sweetTitles.yCord = findPosY(theTarget);
	},
	tipOut: function() {
		if ( window.tID ) {
			clearTimeout(tID);
		}
		if ( window.opacityID ) {
			clearTimeout(opacityID);
		}
		sweetTitles.tip.style.visibility = 'hidden';
	},
	tipOver : function(e) {
		sweetTitles.obj = this;
		tID = window.setTimeout("sweetTitles.tipShow()",500);
		sweetTitles.updateXY(e);
	},
	tipShow : function() {		
		var scrX = Number(this.xCord);
		var scrY = Number(this.yCord);
		var tp = parseInt(scrY+15);
		var lt = parseInt(scrX+10);
		var anch = this.obj;
		this.tip.innerHTML = "<p>"+anch.getAttribute('tip')+"<em></em></p>";
        this.tip.style.left = ( parseInt(findWindowWidth()+findScrollX()) < parseInt(this.tip.offsetWidth+lt) )?  parseInt(lt-(this.tip.offsetWidth))+'px' : this.tip.style.left = lt+'px';
        this.tip.style.top =  ( parseInt(findWindowHeight()+findScrollY()) < parseInt(this.tip.offsetHeight+tp) ) ? parseInt(tp-(this.tip.offsetHeight+15))+'px': this.tip.style.top = tp+5+'px';
		this.tip.style.visibility = 'visible';
		this.tip.style.opacity = '.1';
		this.tipFade(10);
	},
	tipFade: function(opac) {
		var passed = parseInt(opac);
		var newOpac = parseInt(passed+10);
		if ( newOpac < 80 ) {
			this.tip.style.opacity = '.'+newOpac;
			this.tip.style.filter = "alpha(opacity:"+newOpac+")";
			opacityID = window.setTimeout("sweetTitles.tipFade('"+newOpac+"')",20);
		}
		else { 
			this.tip.style.opacity = '.80';
			this.tip.style.filter = "alpha(opacity:80)";
		}
	}
};
//}}}
/***
|Name|TiddlerStatsPlugin|
|Version|13|
|~CoreVersion|2.0+|
|Source|http://thePettersons.org/tiddlywiki.html#TiddlerStatsPlugin |
|Author|[[PaulPetterson]] |
|Type|Macro Extension |
|Requires|TiddlyWiki 2.0.0 or higher |
|Description|Want to know how big your TW really is? Want to see how big your biggest tiddler is? TiddlerStats is the answer.|

!Description
Want to know how big your TW really is? Want to see how big your biggest tiddler is? TiddlerStats is the answer!

Finds and displays the number of and size of all tiddlers, the biggest, smallest, and average size. Even draws up a sparkline with that info in it!

!Sample
{{{<<tiddlerStats>>}}}
<<tiddlerStats>>

!Known issues
* Sparkline isn't showing up if you embed this macro in a tiddler that's displayed via a slider. This doesn't look like an issue with the macro yet…

!Todo
* Add support for # of tiddlers changed in last 1..7, 14, 30 days

!Revision history
$History: PaulsNotepad.html $
 * 
 * ***************** Version 5 *****************
 * User: paulpet Date: 3/02/06 Time: 12:17p
 * Updated in $/PaulsNotepad3.0.root/PaulsNotepad3.0/PaulsPlugins/systemConfig
 * fixed firefox 1.5.0.1 crash //bug//
 * 
 * ***************** Version 4 *****************
 * User: paulpet Date: 2/26/06 Time: 8:48a
 * Updated in $/PaulsNotepad3.0.root/PaulsNotepad3.0/PaulsPlugins/systemConfig
 * 
 * ***************** Version 3 *****************
 * User: paulpet Date: 2/26/06 Time: 8:47a
 * Updated in $/PaulsNotepad3.0.root/PaulsNotepad3.0/PaulsPlugins/systemConfig
 * 
 * ***************** Version 2 *****************
 * User: paulpet Date: 2/22/06 Time: 3:41p
 * Updated in $/PaulsNotepad3.0.root/PaulsNotepad3.0/PaulsPlugins/systemConfig
 * Ported to TW2.0 fixed standard deviation problem

!Code
***/
//{{{
Tiddler.prototype.tiddlerSize = function() {
 var x = 0 ;
 if ( this.title ) x += this.title.length;
 if ( this.text ) x += this.text.length;
 if ( this.modifier) x += this.modifier.length;
 if ( this.modified) x+= this.modified.convertToYYYYMMDDHHMM().length;
 if ( this.created ) x+= this.created.convertToYYYYMMDDHHMM().length;
 if ( this.tags ) {
 var allTags = this.tags.join();
 x += allTags.length;
 }
 return x;
}

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

config.macros.tiddlerStats = {
doStats: function( stats ) {
 stats.average = stats.size / stats.count ;

 var ts = 0 ;
 store.forEachTiddler( function( title, tiddler ) {
 var x = tiddler.tiddlerSize() ;
 var t = x - stats.average ;
 ts += Math.pow( t, 2 );
 });
 stats.sdev = Math.sqrt( ts / stats.count ) ;

 stats.data = [] ;
 var bucket = parseInt( stats.max / stats.sdev ) + 1;
 for( var i = 0 ; i < bucket; i++ ) 
 stats.data[i] = 0 ;

 stats.incontrol = 0 ;
 store.forEachTiddler( function( title, tiddler ) {
 var x = tiddler.tiddlerSize() ;
 if (((stats.average - stats.sdev) < x) && (x < (stats.average + stats.sdev))) stats.incontrol++ ;
 bucket = parseInt( x / stats.sdev ) ;
 stats.data[bucket]++ ;
 });
 
 return stats ;
},

showStats: function( place, stats ) {
 createTiddlyElement( place, "li", null, null, stats.count + " Tiddlers" ) ;
 createTiddlyElement( place, "li", null, null, stats.size + " bytes (total content size)" ) ;
 createTiddlyElement( place, "li", null, null, stats.average + " is the average tiddler size" ) ;
 createTiddlyElement( place, "li", null, null, stats.sdev + " is the standard deviation" ) ;
 createTiddlyElement( place, "li", null, null, stats.incontrol + " within 1 standard deviation of the average" ) ;
 var li = createTiddlyElement( place, "li", null, null, stats.min + " is the smallest tiddler size " ) ;
 createTiddlyLink( li, stats.smallest, true ) ;
 li = createTiddlyElement( place, "li", null, null, stats.max + " is the largest tiddler size " ) ;
 createTiddlyLink( li, stats.largest, true ) ;
},

showSparkle: function( place, stats ) {
 var li = createTiddlyElement( place, "li", null, null, null ) ;
 config.macros.sparkline.handler( li, "sparkline?", stats.data ) ;
},

showTable: function( place, stats ) {
 var tbl = createTiddlyElement(place,"table",null,null,"");
 var tb = createTiddlyElement( tbl, "tbody", null, null );
 var tr ;
 for( var i = 0; i < stats.data.length ; i++ ) {
 if ( stats.data[i] > 0 ) {
 tr = createTiddlyElement( tb, "tr", null, null, null );
 createTiddlyElement(tr,"td",null,null, i );
 createTiddlyElement(tr,"td",null,null, (i * stats.sdev) + " < " + ((i+1) * stats.sdev) );
 createTiddlyElement(tr,"td",null,null, stats.data[i] );
 }
 }
},

handler: function( place, macroName, params ) {
 var stats = new Object() ;
 stats.count = 0 ;
 stats.size = 0 ;
 stats.min = 99999;
 stats.max = 0 ;
 stats.smallest = 0;
 stats.largest = 0;
 stats.xsquared = 0 ;
 
 store.forEachTiddler(function(title,tiddler) {
 stats.count++ ;
 var x = tiddler.tiddlerSize() ;
 stats.size += x ;
 stats.xsquared += (x^2) ;
 if ( stats.min > x ) {
 stats.min = x ;
 stats.smallest = tiddler.title ;
 }
 if ( stats.max < x ) { 
 stats.max = x ;
 stats.largest = tiddler.title ;
 }
 return x;
 });
 
 stats = this.doStats( stats ) ;

 createTiddlyElement( place, "b", null, null, "TiddlyWiki usage statistics" ) ;
 var ul = createTiddlyElement( place, "ul", null, null, null ) ;
 this.showStats( ul, stats ) ;
 this.showSparkle( ul, stats ) ;
 this.showTable( place, stats ) ;
}};
//}}}
/***
This plugin is released under the [[Creative Commons Attribution 2.5 License|http://creativecommons.org/licenses/by/2.5/]]
***/
/***
|Name|TiddlerTemplatesMacro|
|Version|1.0|
|Source|http://www.kultofbubb.net/tiddlywiki, http://www.tiddlywiki.com/#NewTiddlerMacro|
|Author|[[RichCarrillo]]|
|Type|plugin, macros|
|Required|[[TiddlyWiki|http://www.tiddlywiki.com]] 2.0+|
|~CoreVersion|2.0+|
|License||
|Documentation|TiddlerTemplatesMacroDocumentation|
|Description|TiddlerTemplatesMacro is a collection macros that allow you to easily create new tiddlers using existing tiddlers as templates.|

!Code
***/
//{{{
// Drop down indicator for pop-up menu buttons
var dropdownchar = (document.all?"▼":"▾") // the fat one is the only one that works in IE

version.extensions.TiddlerTemplatesMacro = {
 major: 0, minor: 9, revision: 0,
 date: new Date(2006, 2, 21), 
 type: 'macro',
 source: "http://www.kultofbubb.net/tiddlywiki/index.html#TiddlerTemplatesMacro"
};

// shadow tiddler to provide basic syntax and link to full documentation
config.shadowTiddlers.TiddlerTemplatesMacroDocumentation = "[[Full Documentation|http://www.kultofbubb.net/tiddlywiki/index.html#TiddlerTemplatesMacroDocumentation]]\n"; 

config.macros.newFromTemplate = {}
config.macros.newFromTemplatePopup = {}
config.macros.newFromTemplateButton = {}

// The tiddlerTemplatesMacro object just holds default settings, messages and common functions used by the other macros
config.macros.tiddlerTemplatesMacro = {
 // messages
 label: "New...",
 tooltip: "Create a tiddler from a Template",
 titlePrefix: "New",
 errorNoTemplates: "No templates found! Add the tag '%0' to a tiddler you would like to use as a template",
 errorNoTemplateTiddler: "The template tiddler: '%0', could not be found.",
 errorMissingRequiredParam: "Missing a required parameter: %0 ",
 errorTiddlerAlreadyExists: "The tiddler: %0 already exists!",

 // default settings
 templateTag: "Templates",

 // common functions used by other macros
 myReadMacroParams: function(paramString){
 var regexpMacroParam = new
 RegExp("(?:\\s*)(?:(?:\"((?:(?:\\\\\")|[^\"])*)\")|(?:'((?:(?:\\\\\')|[^'])*)')|(?:\\[\\[([^\\]]*)\\]\\])|([^\"'\\s][^\"'\\s]*))","mg");
 var params = [];
 do {
 var match = regexpMacroParam.exec(paramString);
 if(match){
 if(match[1]) // Double quoted
 params.push(match[1]);
 else if(match[2]) // Single quoted
 params.push(match[2]);
 else if(match[3]) // Double-square-bracket quoted
 params.push(match[3]);
 else if(match[4]) // Unquoted
 params.push(match[4]);
 }
 } while(match);
 return params;
 }, // closes myReadMacroParams function definition

 reparseParams: function( params ) {
 var s = params.join(" ");
 var re = /([^:\s]*):["]([^"]*)["]/g ;
 var ret = new Array() ;
 var m ;
 while( (m = re.exec( s )) != null ) ret[ m[1] ] = m[2] ;
 return ret ;
 }, // closes reparseParams function definition

 getTiddlerEditField: function(title,field){
 var tiddler = document.getElementById(story.idPrefix + title);
 if(tiddler != null){
 var children = tiddler.getElementsByTagName("*")
 var e = null;
 for (var t=0; t<children.length; t++){
 var c = children[t];
 if(c.tagName.toLowerCase() == "input" || c.tagName.toLowerCase() == "textarea"){
 if(!e) {e = c;}
 if(c.getAttribute("edit") == field){e = c;}
 }
 }
 if(e){return e;}
 }
 }, // closes getTiddlerEditField function definition

 newFromTemplate: function(event){
 var title = this.getAttribute("templateTitle");
 if (this.getAttribute("tagToAdd")) {var tagToAdd = this.getAttribute("tagToAdd");}
 if (this.getAttribute("tagToStrip")) {var tagToStrip = this.getAttribute("tagToStrip");}

 // get the template and extract its info
 var template = store.getTiddler(title);
 var newTitle = config.macros.tiddlerTemplatesMacro.titlePrefix+template.title;
 var newText = template.text;
 var newTags = template.getTags();
 
 // if a tiddler by this name already exists, show an error message and quit
 if (store.getTiddler(newTitle)) {
 displayMessage(config.macros.tiddlerTemplatesMacro.errorTiddlerAlreadyExists.format([newTitle]));
 story.displayTiddler(null,newTitle,DEFAULT_VIEW_TEMPLATE);
 return;
 }
 // create new tiddler
 story.displayTiddler(null,newTitle,DEFAULT_EDIT_TEMPLATE);

 // grab the new Tiddlers text edit box
 var tiddlerTextArea = config.macros.tiddlerTemplatesMacro.getTiddlerEditField(newTitle,"text");
 var tiddlerTagArea = config.macros.tiddlerTemplatesMacro.getTiddlerEditField(newTitle,"tags");

 // Stuff template info into newly created tiddler
 tiddlerTextArea.value=newText;
 if (tagToAdd){newTags += " " + String.encodeTiddlyLink(tagToAdd);}
 tiddlerTagArea.value=newTags;
 if (tagToStrip) {story.setTiddlerTag(newTitle,tagToStrip,-1);}
 story.focusTiddler(newTitle,"title");
 return false; //why false?
 } // closes newFromTemplate function definition
}; // closes tiddlerTemplateMacros object definition

config.macros.newFromTemplatePopup.handler = function(place,macroName,params,wikifier,paramString,callingTiddler){
 var makeTemplateList = function(event) {
 if (!event) var event = window.event;
 var templateTag = this.getAttribute("templateTag");
 if (this.getAttribute("tagToAdd")){var tagToAdd = this.getAttribute("tagToAdd");}

 var templateList = store.getTaggedTiddlers(templateTag);
 var popup = Popup.create(templateButton);

 // pull the titles out of the tiddlers retured by getTaggedTiddlers
 var templateTitles = [];
 var li,r;
 for(r=0;r<templateList.length;r++)
 if(templateList[r].title != templateTitles){templateTitles.push(templateList[r].title);}

 // for each one of the titles create a new TiddlyButton in the popup
 for(r=0; r<templateTitles.length; r++){
 var templateListItem = createTiddlyButton(createTiddlyElement(popup,"li"),templateTitles[r],null,config.macros.tiddlerTemplatesMacro.newFromTemplate);
 templateListItem.setAttribute("templateTitle",templateTitles[r]);
 templateListItem.setAttribute("tagToStrip",templateTag);
 if (tagToAdd){templateListItem.setAttribute("tagToAdd",tagToAdd);}
 }

 Popup.show(popup,true);
 event.cancelBubble = true;
 if (event.stopPropagation) event.stopPropagation();
 return false; // why false?
 } // closes makeTemplateList function definition

 // process params
 var paramsToParse = params;
 var input = config.macros.tiddlerTemplatesMacro.reparseParams( paramsToParse ) ;
 var templateTag = input["templateTag"]?input["templateTag"].trim():config.macros.tiddlerTemplatesMacro.templateTag ;
 var label = input["label"]?input["label"].trim():config.macros.tiddlerTemplatesMacro.label ;
 label = label.replace(/<arrow>/g, dropdownchar) 
 var tooltip = input["tooltip"]?input["tooltip"].trim():config.macros.tiddlerTemplatesMacro.tooltip ;

 // user can only use hereMode if callingTiddler was passed to the macro
 var hereMode; 
 if (input["hereMode"] && callingTiddler) {hereMode = callingTiddler.title;}
 else {hereMode = null;}

 // error out if no tiddlers are tagged as templates
 var templateList = store.getTaggedTiddlers(templateTag);
 if(templateList == "") {
 createTiddlyError(place,config.messages.macroError.format([macroName]),config.macros.tiddlerTemplatesMacro.errorNoTemplates.format([templateTag]));
 return;
 }

 var templateButton = createTiddlyButton(place,label,tooltip,makeTemplateList);
 templateButton.setAttribute("templateTag",templateTag);
 if (hereMode){templateButton.setAttribute("tagToAdd",hereMode);}
}; // closes newFromTemplatePopup handler definition


config.macros.newFromTemplateButton.handler = function(place,macroName,params,wikifier,paramString,callingTiddler){

 // process params
 var paramsToParse = params;
 var input = config.macros.tiddlerTemplatesMacro.reparseParams( paramsToParse ) ;
 var templateTiddler = input["templateTiddler"]?input["templateTiddler"].trim():null ;
 var templateTag = input["templateTag"]?input["templateTag"].trim():null ;
 var label = input["label"]?input["label"].trim():config.macros.tiddlerTemplatesMacro.label ;
 var tooltip = input["tooltip"]?input["tooltip"].trim():config.macros.tiddlerTemplatesMacro.tooltip ;

 // user can only use hereMode if callingTiddler was passed to the macro
 var hereMode; 
 if (input["hereMode"] && callingTiddler) {hereMode = callingTiddler.title;}
 else {hereMode = null;}

 // error out if template tiddler was not specified or if it does not exist
 if (templateTiddler == null){
 createTiddlyError(place,config.messages.macroError.format([macroName]),config.macros.tiddlerTemplatesMacro.errorMissingRequiredParam.format(["templateTiddler"]));
 return;
 } // ends if templateTiddler == null (not in params)

 var templateTiddlerObj = store.getTiddler(templateTiddler);
 if(templateTiddlerObj == null) {
 createTiddlyError(place,config.messages.macroError.format([macroName]),config.macros.tiddlerTemplatesMacro.errorNoTemplateTiddler.format([templateTiddler]));
 return;
 } // ends if templateTiddlerObj == null (not in store)

 var templateButton = createTiddlyButton(place,label,tooltip,config.macros.tiddlerTemplatesMacro.newFromTemplate);
 templateButton.setAttribute("templateTitle",templateTiddlerObj.title);
 if (hereMode){templateButton.setAttribute("tagToAdd",hereMode);}
 if (templateTag){templateButton.setAttribute("tagToStrip",templateTag);}

}; // closes newFromTemplateButton handler definition

// This macro only in here for backward compatibility. I'll problably drop it from the next release
config.macros.newFromTemplate.handler = function(place,macroName,params,wikifier,paramString,callingTiddler){

 // juggle params around since this macro does NOT use named parameters and newFromTemplatePopup does
 if (params[0] != null) {paramString = 'templateTag:\"'+paramString+'\"';}
 var paramsToPass = paramString.readMacroParams();
 config.macros.newFromTemplatePopup.handler(place,macroName,paramsToPass, wikifier,paramString, callingTiddler);

}; // closes newFromTemplate handler definition

//}}}
/***
|Name|TiddlerTweakerPlugin|
|Source|http://www.TiddlyTools.com/#TiddlerTweakerPlugin|
|Version|2.4.5|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|select multiple tiddlers and modify author, created, modified and/or tag values|
~TiddlerTweaker is a 'power tool' for TiddlyWiki authors.  Select multiple tiddlers from a listbox and 'bulk modify' the creator, author, created, modified and/or tag values of those tiddlers using a compact set of form fields.  The values you enter into the fields simultaneously overwrite the existing values in all tiddlers you have selected.
!!!!!Usage
<<<
{{{<<tiddlerTweaker>>}}}
{{smallform{<<tiddlerTweaker>>}}}
By default, any tags you enter into the TiddlerTweaker will //replace// the existing tags in all the tiddlers you have selected.  However, you can also use TiddlerTweaker to quickly filter specified tags from the selected tiddlers, while leaving any other tags assigned to those tiddlers unchanged:
>Any tag preceded by a '+' (plus) or '-' (minus), will be added or removed from the existing tags //instead of replacing the entire tag definition// of each tiddler (e.g., enter '-excludeLists' to remove that tag from all selected tiddlers.  When using this syntax, care should be taken to ensure that //every// tag is preceded by '+' or '-', to avoid inadvertently overwriting any other existing tags on the selected tiddlers.  (note: the '+' or '-' prefix on each tag value is NOT part of the tag value, and is only used by TiddlerTweaker to control how that tag value is processed)
Important Notes:
* TiddlerTweaker is a 'power user' tool that can make changes to many tiddlers at once.  ''You should always have a recent backup of your document (or 'save changes' just *before* tweaking the tiddlers), just in case you accidentally 'shoot yourself in the foot'.''
* The date and author information on any tiddlers you tweak will ONLY be updated if the corresponding checkboxes have been selected.  As a general rule, after using TiddlerTweaker, always ''//remember to save your document//'' when you are done, even though the tiddler timeline tab may not show any recently modified tiddlers.
* Selecting and updating all tiddlers in a document can take a while.  Your browser may warn about an 'unresponsive script'.  Usually, if you allow it to continue, it should complete the processing... eventually.  Nonetheless, be sure to save your work before you begin tweaking lots of tiddlers, just in case something does get stuck.
<<<
!!!!!Revisions
<<<
2011.01.21 2.4.5 auto-selection: use "-" for untagged tiddlers.  Also, added 'opened', 'invert'
2009.09.15 2.4.4 added 'edit' button. moved html definition to separate section
2009.09.13 2.4.3 in settiddlers(), convert backslashed chars (\n\b\s\t) in replacement text
2009.06.26 2.4.2 only add brackets around tags containing spaces
2009.06.22 2.4.1 in setFields(), add brackets around all tags shown tweaker edit field
2009.03.30 2.4.0 added 'sort by modifier'
2009.01.22 2.3.0 added support for text pattern find/replace
2008.10.27 2.2.3 in setTiddlers(), fixed Safari bug by replacing static Array.concat(...) with new Array().concat(...)
2008.09.07 2.2.2 added removeCookie() function for compatibility with [[CookieManagerPlugin]]
2008.05.12 2.2.1 replace built-in backstage tweak task with tiddler tweaker control panel (moved from BackstageTweaks)
2008.01.13 2.2.0 added 'auto-selection' links: all, changed, tags, title, text
2007.12.26 2.1.0 added support for managing 'creator' custom field (see [[CoreTweaks]])
2007.11.01 2.0.3 added config.options.txtTweakerSortBy for cookie-based persistence of list display order preference setting.
2007.09.28 2.0.2 in settiddlers() and deltiddlers(), added suspend/resume notification handling (improves performance when operating on multiple tiddlers)
2007.08.03 2.0.1 added shadow definition for [[TiddlerTweaker]] tiddler for use as parameter references with {{{<<tiddler>>, <<slider>> or <<tabs>>}}} macros.
2007.08.03 2.0.0 converted from inline script
2006.01.01 1.0.0 initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.TiddlerTweakerPlugin= {major: 2, minor: 4, revision: 5, date: new Date(2011,1,21)};

// shadow tiddler
config.shadowTiddlers.TiddlerTweaker='<<tiddlerTweaker>>';

// defaults
if (config.options.txtTweakerSortBy==undefined) config.options.txtTweakerSortBy='modified';

// backstage task
if (config.tasks) { // for TW2.2b3 or above
	config.tasks.tweak.tooltip='review/modify tiddler internals: dates, authors, tags, etc.';
	config.tasks.tweak.content='{{smallform small groupbox{<<tiddlerTweaker>>}}}';
}

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

config.macros.tiddlerTweaker = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var span=createTiddlyElement(place,'span');
		span.innerHTML=store.getTiddlerText('TiddlerTweakerPlugin##html');
		this.init(span.getElementsByTagName('form')[0],config.options.txtTweakerSortBy);
	},
	init: function(f,sortby) { // set form controls
		if (!f) return; // form might not be rendered yet...
		while (f.list.options[0]) f.list.options[0]=null; // empty the list
		var tids=store.getTiddlers(sortby);
		if (sortby=='size') // descending order
			tids.sort(function(a,b) {return a.text.length > b.text.length ? -1 : (a.text.length == b.text.length ? 0 : +1);});
		var who='';
		for (i=0; i<tids.length; i++) { var t=tids[i];
			var label=t.title; var value=t.title;
			switch (sortby) {
				case 'modified':
				case 'created':
					var t=tids[tids.length-i-1]; // reverse order
					var when=t[sortby].formatString('YY.0MM.0DD 0hh:0mm ');
					label=when+t.title;
					value=t.title;
					break;
				case 'size':
					label='['+t.text.length+'] '+label;
					break;
				case 'modifier':
				case 'creator':
					if (who!=t[sortby]) {
						who=t[sortby];
						f.list.options[f.list.length]=new Option('by '+who+':','',false,false);
					}
					label='\xa0\xa0\xa0'+label; // indent
					break;
			}
			f.list.options[f.list.length]=new Option(label,value,false,false);
		}
		f.title.value=f.who.value=f.creator.value=f.tags.value='';
		f.cm.value=f.cd.value=f.cy.value=f.ch.value=f.cn.value='';
		f.mm.value=f.md.value=f.my.value=f.mh.value=f.mn.value='';
		f.stats.disabled=f.set.disabled=f.del.disabled=f.edit.disabled=f.display.disabled=true;
		f.settitle.disabled=false;
		config.options.txtTweakerSortBy=sortby;
		f.sortby.value=sortby; // sync droplist
		if (sortby!='modified') saveOptionCookie('txtTweakerSortBy');
		else removeCookie('txtTweakerSortBy');
	},
	enablefields: function(here) { // enables/disables inputs based on #items selected
		var f=here.form; var list=f.list;
		var c=0; for (i=0;i<list.length;i++) if (list.options[i].selected) c++;
		if (c>1) f.title.disabled=true;
		if (c>1) f.settitle.checked=false;
		f.set.disabled=(c==0);
		f.del.disabled=(c==0);
		f.edit.disabled=(c==0);
		f.display.disabled=(c==0);
		f.settitle.disabled=(c>1);
		f.stats.disabled=(c==0);
		var msg=(c==0)?'select tiddlers':(c+' tiddler'+(c!=1?'s':'')+' selected');
		here.previousSibling.firstChild.firstChild.nextSibling.innerHTML=msg;
		if (c) clearMessage(); else displayMessage('no tiddlers selected');
	},
	setfields: function(here) { // set fields from first selected tiddler
		var f=here.form;
		if (!here.value.length) {
			f.title.value=f.who.value=f.creator.value=f.tags.value='';
			f.cm.value=f.cd.value=f.cy.value=f.ch.value=f.cn.value='';
			f.mm.value=f.md.value=f.my.value=f.mh.value=f.mn.value='';
			return;
		}
		var tid=store.getTiddler(here.value); if (!tid) return;
		f.title.value=tid.title;
		f.who.value=tid.modifier;
		f.creator.value=tid.fields['creator']||''; // custom field - might not exist
		f.tags.value=tid.tags.map(function(t){return String.encodeTiddlyLink(t)}).join(' ');
		var c=tid.created; var m=tid.modified;
		f.cm.value=c.getMonth()+1;
		f.cd.value=c.getDate();
		f.cy.value=c.getFullYear();
		f.ch.value=c.getHours();
		f.cn.value=c.getMinutes();
		f.mm.value=m.getMonth()+1;
		f.md.value=m.getDate();
		f.my.value=m.getFullYear();
		f.mh.value=m.getHours();
		f.mn.value=m.getMinutes();
	},
	selecttiddlers: function(here,callback) {
		var f=here; while (f&&f.nodeName.toLowerCase()!='form')f=f.parentNode;
		for (var t=f.list.options.length-1; t>=0; t--)
			f.list.options[t].selected=callback(f.list.options[t]);
		config.macros.tiddlerTweaker.enablefields(f.list);
		return false;
	},
	settiddlers: function(here) {
		var f=here.form; var list=f.list;
		var tids=[];
		for (i=0;i<list.length;i++) if (list.options[i].selected) tids.push(list.options[i].value);
		if (!tids.length) { alert('please select at least one tiddler'); return; }
		var cdate=new Date(f.cy.value,f.cm.value-1,f.cd.value,f.ch.value,f.cn.value);
		var mdate=new Date(f.my.value,f.mm.value-1,f.md.value,f.mh.value,f.mn.value);
		if (tids.length>1 && !confirm('Are you sure you want to update these tiddlers:\n\n'+tids.join(', '))) return;
		store.suspendNotifications();
		for (t=0;t<tids.length;t++) {
			var tid=store.getTiddler(tids[t]); if (!tid) continue;
			var title=!f.settitle.checked?tid.title:f.title.value;
			var who=!f.setwho.checked?tid.modifier:f.who.value;
			var text=tid.text;
			if (f.replacetext.checked) {
				var r=f.replacement.value.replace(/\\t/mg,'\t').unescapeLineBreaks();
				text=text.replace(new RegExp(f.pattern.value,'mg'),r);
			}				
			var tags=tid.tags;
			if (f.settags.checked) { 
				var intags=f.tags.value.readBracketedList();
				var addtags=[]; var deltags=[]; var reptags=[];
				for (i=0;i<intags.length;i++) {
					if (intags[i].substr(0,1)=='+')
						addtags.push(intags[i].substr(1));
					else if (intags[i].substr(0,1)=='-')
						deltags.push(intags[i].substr(1));
					else
						reptags.push(intags[i]);
				}
				if (reptags.length)
					tags=reptags;
				if (addtags.length)
					tags=new Array().concat(tags,addtags);
				if (deltags.length)
					for (i=0;i<deltags.length;i++)
						{ var pos=tags.indexOf(deltags[i]); if (pos!=-1) tags.splice(pos,1); }
			}
			if (!f.setcdate.checked) cdate=tid.created;
			if (!f.setmdate.checked) mdate=tid.modified;
			store.saveTiddler(tid.title,title,text,who,mdate,tags,tid.fields);
			if (f.setcreator.checked) store.setValue(tid.title,'creator',f.creator.value); // set creator
			if (f.setcdate.checked) tid.assign(null,null,null,null,null,cdate); // set create date
		}
		store.resumeNotifications();
		this.init(f,f.sortby.value);
	},
	displaytiddlers: function(here,edit) {
		var f=here.form; var list=f.list;
		var tids=[];
		for (i=0; i<list.length;i++) if (list.options[i].selected) tids.push(list.options[i].value);
		if (!tids.length) { alert('please select at least one tiddler'); return; }
		story.displayTiddlers(story.findContainingTiddler(f),tids,edit?DEFAULT_EDIT_TEMPLATE:null);
	},
	deltiddlers: function(here) {
		var f=here.form; var list=f.list;
		var tids=[];
		for (i=0;i<list.length;i++) if (list.options[i].selected) tids.push(list.options[i].value);
		if (!tids.length) { alert('please select at least one tiddler'); return; }
		if (!confirm('Are you sure you want to delete these tiddlers:\n\n'+tids.join(', '))) return;
		store.suspendNotifications();
		for (t=0;t<tids.length;t++) {
			var tid=store.getTiddler(tids[t]); if (!tid) continue;
			if (tid.tags.contains('systemConfig')) {
				var msg=tid.title+' is tagged with systemConfig.'
					+'\n\nRemoving this tiddler may cause unexpected results.  Are you sure?';
				if (!confirm(msg)) continue;
			}
			store.removeTiddler(tid.title);
			story.closeTiddler(tid.title);
		}
		store.resumeNotifications();
		this.init(f,f.sortby.value);
	},
	stats: function(here) {
		var f=here.form; var list=f.list; var tids=[]; var out=''; var tot=0;
		var target=f.nextSibling;
		for (i=0;i<list.length;i++) if (list.options[i].selected) tids.push(list.options[i].value);
		if (!tids.length) { alert('please select at least one tiddler'); return; }
		for (t=0;t<tids.length;t++) {
			var tid=store.getTiddler(tids[t]); if (!tid) continue;
			out+='[['+tid.title+']] '+tid.text.length+'\n'; tot+=tid.text.length;
		}
		var avg=tot/tids.length;
		out=tot+' bytes in '+tids.length+' selected tiddlers ('+avg+' bytes/tiddler)\n<<<\n'+out+'<<<\n';
		removeChildren(target);
		target.innerHTML="<hr><font size=-2><a href='javascript:;' style='float:right' "
			+"onclick='this.parentNode.parentNode.style.display=\"none\"'>close</a></font>";
		wikify(out,target);
		target.style.display='block';
	}
};
//}}}
/***
//{{{
!html
<style>
.tiddlerTweaker table,
.tiddlerTweaker table tr,
.tiddlerTweaker table td
	{ padding:0;margin:0;border:0;white-space:nowrap; }
</style><form class='tiddlerTweaker'><!--
--><table style="width:100%"><tr valign="top"><!--
--><td style="text-align:center;width:99%;"><!--
	--><font size=-2><div style="text-align:left;"><span style="float:right"><!--
	-->&nbsp; <a href="javascript:;" 
		title="select all tiddlers"
		onclick="return config.macros.tiddlerTweaker.selecttiddlers(this,function(opt){
			return opt.value.length;
		});">all</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="select tiddlers currently displayed in the story column"
		onclick="return config.macros.tiddlerTweaker.selecttiddlers(this,function(opt){
			return story.getTiddler(opt.value);
		});">opened</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="select tiddlers that are new/changed since the last file save"
		onclick="var lastmod=new Date(document.lastModified);
			return config.macros.tiddlerTweaker.selecttiddlers(this,function(opt){
				var tid=store.getTiddler(opt.value);
				return tid&&tid.modified>lastmod;
			});
		">changed</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="select tiddlers with at least one matching tag"
		onclick="var t=prompt('Enter space-separated tags (match one or more).  Use \x22-\x22 to match untagged tiddlers');
			if (!t||!t.length) return false;
			var tags=t.readBracketedList();
			return config.macros.tiddlerTweaker.selecttiddlers(this,function(opt){
				var tid=store.getTiddler(opt.value);
				return tid&&tags[0]=='-'?!tid.tags.length:tid.tags.containsAny(tags);
			});
		">tags</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="select tiddlers whose titles include matching text"
		onclick="var t=prompt('Enter a title (or portion of a title) to match');
			if (!t||!t.length) return false;
			return config.macros.tiddlerTweaker.selecttiddlers(this,function(opt){
				return opt.value.indexOf(t)!=-1;
			});
		">titles</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="select tiddlers containing matching text"
		onclick="var t=prompt('Enter tiddler text (content) to match');
			if (!t||!t.length) return false;
			return config.macros.tiddlerTweaker.selecttiddlers(this,function(opt){
				var tt=store.getTiddlerText(opt.value,'');
				return tt.indexOf(t)!=-1;
			});
		">text</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="reverse selection of all list items"
		onclick="return config.macros.tiddlerTweaker.selecttiddlers(this,function(opt){
			return !opt.selected;
		});">invert</a><!--
	--></span><span>select tiddlers</span><!--
	--></div><!--
	--></font><select multiple name=list size="11" style="width:99.99%" 
		title="use click, shift-click and/or ctrl-click to select multiple tiddler titles" 
		onclick="config.macros.tiddlerTweaker.enablefields(this)" 
		onchange="config.macros.tiddlerTweaker.setfields(this)"><!--
	--></select><br><!--
	-->show<input type=text size=1 value="11" 
		onchange="this.form.list.size=this.value; this.form.list.multiple=(this.value>1);"><!--
	-->by<!--
	--><select name=sortby size=1 
		onchange="config.macros.tiddlerTweaker.init(this.form,this.value)"><!--
	--><option value="title">title</option><!--
	--><option value="size">size</option><!--
	--><option value="modified">modified</option><!--
	--><option value="created">created</option><!--
	--><option value="modifier">modifier</option><!--
	--></select><!--
	--><input type="button" value="refresh" 
		onclick="config.macros.tiddlerTweaker.init(this.form,this.form.sortby.value)"<!--
	--> <input type="button" name="stats" disabled value="totals..." 
		onclick="config.macros.tiddlerTweaker.stats(this)"><!--
--></td><td style="width:1%"><!--
	--><div style="text-align:left"><font size=-2>&nbsp;modify values</font></div><!--
	--><table style="width:100%;"><tr><!--
	--><td style="padding:1px"><!--
		--><input type=checkbox name=settitle unchecked 
			title="allow changes to tiddler title (rename tiddler)" 
			onclick="this.form.title.disabled=!this.checked">title<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=title size=35 style="width:98%" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=setcreator unchecked 
			title="allow changes to tiddler creator" 
			onclick="this.form.creator.disabled=!this.checked">created by<!--
	--></td><td style="padding:1px;"><!--
		--><input type=text name=creator size=35 style="width:98%" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=setwho unchecked 
			title="allow changes to tiddler author" 
			onclick="this.form.who.disabled=!this.checked">modified by<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=who size=35 style="width:98%" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=setcdate unchecked 
			title="allow changes to created date" 
			onclick="var f=this.form;
				f.cm.disabled=f.cd.disabled=f.cy.disabled=f.ch.disabled=f.cn.disabled=!this.checked"><!--
		-->created on<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=cm size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> / <input type=text name=cd size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> / <input type=text name=cy size=4 style="width:3em;padding:0;text-align:center" disabled><!--
		--> at <input type=text name=ch size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> : <input type=text name=cn size=2 style="width:2em;padding:0;text-align:center" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=setmdate unchecked 
			title="allow changes to modified date" 
			onclick="var f=this.form;
				f.mm.disabled=f.md.disabled=f.my.disabled=f.mh.disabled=f.mn.disabled=!this.checked"><!--
		-->modified on<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=mm size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> / <input type=text name=md size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> / <input type=text name=my size=4 style="width:3em;padding:0;text-align:center" disabled><!--
		--> at <input type=text name=mh size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> : <input type=text name=mn size=2 style="width:2em;padding:0;text-align:center" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=replacetext unchecked
			title="find/replace matching text" 
			onclick="this.form.pattern.disabled=this.form.replacement.disabled=!this.checked">replace text<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=pattern size=15 value="" style="width:40%" disabled 
			title="enter TEXT PATTERN (regular expression)"> with<!--
		--><input type=text name=replacement size=15 value="" style="width:40%" disabled 
			title="enter REPLACEMENT TEXT"><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=settags checked 
			title="allow changes to tiddler tags" 
			onclick="this.form.tags.disabled=!this.checked">tags<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=tags size=35 value="" style="width:98%" 
			title="enter new tags or use '+tag' and '-tag' to add/remove tags from existing tags"><!--
	--></td></tr></table><!--
	--><div style="text-align:center"><!--
	--><nobr><input type=button name=display disabled style="width:24%" value="display" 
		title="show selected tiddlers"
		onclick="config.macros.tiddlerTweaker.displaytiddlers(this,false)"><!--
	--> <input type=button name=edit disabled style="width:23%" value="edit" 
		title="edit selected tiddlers"
		onclick="config.macros.tiddlerTweaker.displaytiddlers(this,true)"><!--
	--> <input type=button name=del disabled style="width:24%" value="delete" 
		title="remove selected tiddlers"
		onclick="config.macros.tiddlerTweaker.deltiddlers(this)"><!--
	--> <input type=button name=set disabled style="width:24%" value="update" 
		title="update selected tiddlers"
		onclick="config.macros.tiddlerTweaker.settiddlers(this)"></nobr><!--
	--></div><!--
--></td></tr></table><!--
--></form><span style="display:none"><!--content replaced by tiddler "stats"--></span>
!end
//}}}
***/
 
/***
|Name|TiddlersBarPlugin|
|Source|http://visualtw.ouvaton.org/VisualTW.html|
|Version|1.0.4|
|Author|[[PascalCollin]]|
|License||
|~CoreVersion|2.x|
|Type|plugin|
|Requires||
|Overrides||
|Browsers|Firefox 2.0.x, IE 6.0+, others|
|Description|A bar to switch between tiddlers through tabs (like browser tabs bar).|

!Demo:
* On [[homepage|http://visualtw.ouvaton.org/VisualTW.html]], open several tiddlers to use the tabs bar.
* See also http://groups.google.com/group/TiddlyWiki/msg/98992b8611d064ab where was posted a link to a "stand alone version" that you can use to test this plugin in any TW pages (by copying and pasting the code in the browser address bar).
!Installation:
*import this tiddler from [[homepage|http://visualtw.ouvaton.org/VisualTW.html]] (tagged as systemConfig)
*add a div named ''tiddlersBar'' in PageTemplate (optionally, adds ondblclick event handler to create new tiddler on this action).
*save and reload
*optionally, adjust StyleSheetTiddlersBar
!Configuration options :
<<option chkDisableTabsBar>> Disable the tabs bar (to print, by example).
<<option chkHideTabsBarWhenSingleTab >> Automatically hide the tabs bar when only one tiddler is displayed. 
<<option txtSelectedTiddlerTabButton>> Optional ''selected'' tab button (as in command bar). Example : editTiddler
!Code
***/
//{{{
config.options.chkDisableTabsBar = config.options.chkDisableTabsBar ? config.options.chkDisableTabsBar : false;
config.options.chkHideTabsBarWhenSingleTab  = config.options.chkHideTabsBarWhenSingleTab  ? config.options.chkHideTabsBarWhenSingleTab  : false;
config.options.txtSelectedTiddlerTabButton = config.options.txtSelectedTiddlerTabButton ? config.options.txtSelectedTiddlerTabButton : "";
config.macros.tiddlersBar = {
	tooltip : "see ",
	tooltipClose : "click here to close this tab",
	promptRename : "Enter tiddler new name",
	currentTiddler : "",
	previousState : false,
	handler: function(place,macroName,params) {
		if (config.macros.tiddlersBar.isShown())
			story.forEachTiddler(function(title,e){
				if (title==config.macros.tiddlersBar.currentTiddler){
					var d = createTiddlyElement(null,"nobr",null,"tab tabSelected");
					if (config.options.txtSelectedTiddlerTabButton && config.commands[config.options.txtSelectedTiddlerTabButton]) {
						var btn = createTiddlyButton(d, title, config.commands[config.options.txtSelectedTiddlerTabButton].tooltip ,config.macros.tiddlersBar.onSelectedTabButtonClick);
						btn.setAttribute("tiddler", title);
					}
					else
						createTiddlyText(d,title);
				}
				else {
					var d = createTiddlyElement(place,"nobr",null,"tab tabUnselected");
					var btn = createTiddlyButton(d,title,config.macros.tiddlersBar.tooltip + title,config.macros.tiddlersBar.onSelectTab);
					btn.setAttribute("tiddler", title);
				}
				var c = createTiddlyButton(d,"x",config.macros.tiddlersBar.tooltipClose,config.macros.tiddlersBar.onTabClose,"tabCloseButton");
				c.setAttribute("tiddler", title);
				if (place.childNodes) {
					place.insertBefore(document.createTextNode(" "),place.firstChild); // to allow break line here when many tiddlers are open
					place.insertBefore(d,place.firstChild); 
				}
				else place.appendChild(d);
			})
	}, 
	refresh: function(place,params){
		removeChildren(place);
		config.macros.tiddlersBar.handler(place,"tiddlersBar",params);
		if (config.macros.tiddlersBar.previousState!=config.macros.tiddlersBar.isShown()) {
			story.refreshAllTiddlers();
			if (config.macros.tiddlersBar.previousState) story.forEachTiddler(function(t,e){e.style.display="";});
			config.macros.tiddlersBar.previousState = !config.macros.tiddlersBar.previousState;
		}
	},
	isShown : function(){
		if (config.options.chkDisableTabsBar) return false;
		if (!config.options.chkHideTabsBarWhenSingleTab) return true;
		var cpt=0;
		story.forEachTiddler(function(){cpt++});
		return (cpt>1);
	},
	selectNextTab : function(){  //used when the current tab is closed (to select another tab)
		var previous="";
		story.forEachTiddler(function(title){
			if (!config.macros.tiddlersBar.currentTiddler) {
				story.displayTiddler(null,title);
				return;
			}
			if (title==config.macros.tiddlersBar.currentTiddler) {
				if (previous) {
					story.displayTiddler(null,previous);
					return;
				}
				else config.macros.tiddlersBar.currentTiddler=""; 	// so next tab will be selected
			}
			else previous=title;
			});		
	},
	onSelectTab : function(e){
		var t = this.getAttribute("tiddler");
		if (t) story.displayTiddler(null,t);
		return false;
	},
	onTabClose : function(e){
		var t = this.getAttribute("tiddler");
		if (t) {
			if(story.hasChanges(t) && !readOnly) {
				if(!confirm(config.commands.cancelTiddler.warning.format([t])))
				return false;
			}
			story.closeTiddler(t);
		}
		return false;
	},
	onSelectedTabButtonClick : function(event,src,title) {
		var t = this.getAttribute("tiddler");
		if (t && config.options.txtSelectedTiddlerTabButton && config.commands[config.options.txtSelectedTiddlerTabButton])
			config.commands[config.options.txtSelectedTiddlerTabButton].handler(event, src, t);
	},
	onTiddlersBarAction: function(event) {
		var source = event.target ? event.target.id : event.srcElement.id; // FF uses target and IE uses srcElement;
		if (source=="tiddlersBar") story.displayTiddler(null,'New Tiddler',DEFAULT_EDIT_TEMPLATE,false,null,null);
	}
}

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

story.closeTiddler = function(title,animate,unused) {
	if (title==config.macros.tiddlersBar.currentTiddler)
		config.macros.tiddlersBar.selectNextTab();
	story.coreCloseTiddler(title,animate,unused);
	var e=document.getElementById("tiddlersBar");
	if (e) config.macros.tiddlersBar.refresh(e,null);
}

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

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

config.shadowTiddlers.StyleSheetTiddlersBar = "/*{{{*/\n" + "#tiddlersBar .button {border:0}\n" + "#tiddlersBar {padding : 1em 0.5em 0 0.5em}\n"+ "/*}}}*/";
store.addNotification("StyleSheetTiddlersBar", refreshStyles); 

//}}}
/***
|''Name''|TiddlyChartsPlugin|
|''Description''|Translates tables to bar charts, pie charts and line charts|
|''Author''|Jon Robson|
|''Version''|0.6.4|
|''Source''||
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''Requires''|g.pie.js|
!Usage
{{{
<<PieChart TiddlerTitle>>
<<BarChart TiddlerTitle>>
<<LineChart TiddlerTitle>>
Where TiddlerTitle is a tiddler with an html table in it (which can be produced by wiki markup)
}}}
!Parameters
dataView:col
read vertically - headings are the first column
dataView:row
read horizontally - headings are the first row
width:400 height:400
set width and height
!Code
***/
//{{{
(function($) {
	
var macro = config.macros.Chart = {
	handler: function() {
		//not yet
	},
	getData: function(title,options){
		if(options && options.dataView && options.dataView == "col") {
			return macro.getDataColumns(title);
		} else {
			return macro.getDataRows(title);		
		}
	},
	getDataRows: function(title) {
		var data = store.getTiddlerText(title);
		if(!data) {
			throw "There is no tiddler called %0 so unable to access rows.".format([title]);
		}
		var temp =$("<div />")[0];
		wikify(data, temp);
		var rows = $("tr", temp);
		return rows;
	},
	getDataColumns: function(title) {
		var data = store.getTiddlerText(title);
		if(!data) {
			throw "There is no tiddler called %0 so unable to access columns.".format([title]);
		}
		var temp =$("<div />")[0];
		wikify(data, temp);
		var rows = $("tr", temp);
		var columns = [];
		$(rows).each(function(i, rowEl) {
			var columnEls = $("td", rowEl);
			$(columnEls).each(function(j, colEl) {
				if(!columns[j]) {
					var parent = document.createElement("tr");
					columns.push(parent);
				}
				columns[j].appendChild(colEl)
			});
		});
		return $(columns);
	},
	getOptions: function(paramString) {
		var userParams = paramString.parseParams("anon",null,true,false,false)[0];
		var defaults = {
			axis: "0 0 1 1",
			legendpos: "east",
			nostroke: false,
			smooth: true,
			symbol: "x",
			width: 320,
			height: 240,
			barEdges: "smooth",
			dataView: "row"
		};
		var options = merge({}, defaults);
		for(var i in userParams) {
			var val = userParams[i][0];
			if(val == "no") {
				val = false;
			}
			options[i] = val;
		}
		if(userParams.smooth && userParams.smooth[0]) {
			barEdges = "smooth";
		}
		return options;
	},
	createCanvas: function(place, options) {
		var container = $('<div class="chart" />').appendTo(place)[0];
		var r = Raphael(container, options.width, options.height);
		return r;
	}
};
var pieMacro = config.macros.PieChart = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var options = macro.getOptions(paramString);
		var data = pieMacro.getData(params[0], options);
		var r = macro.createCanvas(place, options);
		var halfWidth = options.width/2;
		var halfHeight = options.height/2;
		var radius = halfWidth > halfHeight ? halfHeight : halfWidth;
		radius -= 50;
		var pie = r.g.piechart(halfWidth - 50, halfHeight -50, radius, data.values, {legend: data.legend, legendpos: options.legendpos});
		pie.hover(function () {
			this.sector.stop();
			this.sector.scale(1.1, 1.1, this.cx, this.cy);
			if (this.label) {
			 this.label[0].stop();
			 this.label[0].scale(1.5);
			 this.label[1].attr({"font-weight": 800});
			}
		}, function () {
			this.sector.animate({scale: [1, 1, this.cx, this.cy]}, 500, "bounce");
			if (this.label) {
				this.label[0].animate({scale: 1}, 500, "bounce");
				this.label[1].attr({"font-weight": 400});
			}
		});
	},
	getData: function(title, options) {
		var rows = macro.getData(title, options);
		if(rows.length > 2) {
			throw "Unknown table of data: Looking for 2 rows/columns. Try dataView:col parameter";
		}
		var headingRow = rows[0]; 
		var dataRow = rows[1];
		var values = [], headings = [];
		$("td", $(headingRow)).each(function(i, el) {
			headings.push($(el).text());
		});

		$("td", dataRow).each(function(i, el) {
			values.push(parseFloat($(el).text()));
		});
		return {values: values, legend: headings};
	}
};

var lineMacro = config.macros.LineChart = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var options = macro.getOptions(paramString);
		var r = macro.createCanvas(place, options);
		var data = lineMacro.getData(params[0], options);
		var chart = r.g.linechart(50, 50, options.width - 50, options.height - 100,data.xValues, data.yValues, {nostroke: options.nostroke, axis: options.axis, symbol: options.symbol, smooth: options.smooth});
		if(options.symbol) {
			chart.hoverColumn(
				function () {
					this.tags = r.set();
					for (var i = 0, ii = this.y.length; i < ii; i++) {
						this.tags.push(r.g.tag(this.x, this.y[i], this.values[i], 160, 10).insertBefore(this).attr([{fill: "#fff"}, {fill: this.symbols[i].attr("fill")}]));
					}
				}, 
				function () {
					this.tags && this.tags.remove();
				}
			);
		}
	},
	getData: function(title, options) {
		var rows = macro.getData(title, options);
		var rowsData = [];
		var headings = [];
		var xValues = [];
		$(rows).each(function(i, el) {
			$("td", el).each(function(j, col) {
				var val = $(col).text();
				if(i == 0) { // first row contains headings	
					headings.push(val);
				} else if(j == 0) { // x value
					var x = parseFloat(val);
					if(isNaN(x)) {
						x = i -1;
					}
					xValues.push(x);
				} else { // have a y value
					if(!rowsData[j-1]) {
						rowsData.push([]);
					}
					var y = parseFloat(val);
					if(isNaN(y)) {
						throw "invalid y value %0 in table".format(val);
					}
					rowsData[j-1].push(y);
				}
			});
		});
		var data =[[], []];
		for(var i=0; i < rowsData.length; i++){
			data[0].push(xValues);
			data[1].push(rowsData[i]);
		}
		return {legend: headings, xValues: data[0], yValues: data[1]};
	}
};

var barMacro = config.macros.BarChart = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var options = macro.getOptions(paramString);
		var data = pieMacro.getData(params[0], options);
		var r = macro.createCanvas(place, options);
		var chart = r.g.barchart(50, 50, options.width - 50, options.height - 50, [data.values], {stacked: true, type: options.barEdges});
		chart.label(data.legend);
		chart.hover(function() {
        // Create a popup element on top of the bar
        this.flag = r.g.popup(this.bar.x, this.bar.y, (this.bar.value  || "0")).insertBefore(this);
    }, function() {
        // hide the popup element with an animation and remove the popup element at the end
        this.flag.animate({opacity: 0}, 300, function () {this.remove();});
    });
		
	}
};


})(jQuery);
//}}}
/***
|Name|TiddlyLockPlugin|
|Source|http://www.minormania.com/tiddlylock/tiddlylock.html|
|Version|1.0.4|
|TiddlyWiki Core Version|2.2.4|
|Author|Richard Hobbis|
|License|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|Type|plugin|
|Overrides|config.macros.newTiddler.onClickNewTiddler()<<br>>config.commands.cancelTiddler.handler()<<br>>config.commands.deleteTiddler.handler<<br>>config.commands.editTiddler.handler()<<br>>config.commands.saveTiddler.handler()<<br>>saveChanges()<<br>>checkUnsavedChanges()|
|Description|Automatically locks and unlocks the TiddlyWiki as required, allowing multiple users to edit the TiddlyWiki without fear of overwriting other users' changes.|
!!!Usage
<<<
Simply import TiddlyLockPlugin into your TiddlyWiki!
<<<
!!!Installation
<<<
Import (or copy/paste) ''this tiddler'' into your TiddlyWiki and make sure it's tagged with <<tag systemConfig>>. Reload your TiddlyWiki to enable TiddlyLock.
<<<
!!!Configuration
<<<
None required!
<<<
!!!Revision History
<<<
''2007.06.22 [1.0.4]'' Added locking on 'new tiddler' which also traps 'new journal'. Tweaked messages.
''2007.06.20 [1.0.3]'' Fixed an issue that occurred when a user navigated away from the TiddlyWiki without saving outstanding changes.
''2007.05.10 [1.0.2]'' Implemented a timestamp to track the last update time. This fixes the multi-browser edit issue and also removes the need for a password.
''2007.05.08 [1.0.1]'' Function overrides are now done using apply() ensuring clean upgrades (thanks Martin!)
''2007.05.01 [1.0.0]'' Initial Release
<<<
!!!Known Issues
<<<
*Monkey Pirate TiddlyWiki (MPTW) adds a ''disable'' button to the toolbar for systemConfig tiddlers. This button is available even when the TW is marked as readOnly and therefore it's possible for two users to disable/enable plugins at the same time. In this case, whoever saves the TW last will 'win' and their changes will be saved. Note that this is only an issue if there are no other unsaved changes in both browsers - TiddlyLock still handles all other changes.
<<<
!!!Credits
<<<
This feature was developed by Richard Hobbis (rhobbis [at] hotmail [dot] com).
<<<
!!!Code
***/

//{{{
// Convert a date to UTC YYYYMMDDHHMMSSMMM string format
// This is the same as the builtin function convertToYYYYMMDDHHMMSSMMM() but
// without the '.' in the middle - this allows simple date comparisons
Date.prototype.TLConvertToYYYYMMDDHHMMSSMMM = function()
{
  return(String.zeroPad(this.getUTCFullYear(),4)
    + String.zeroPad(this.getUTCMonth()+1,2)
    + String.zeroPad(this.getUTCDate(),2)
    + String.zeroPad(this.getUTCHours(),2)
    + String.zeroPad(this.getUTCMinutes(),2)
    + String.zeroPad(this.getUTCSeconds(),2)
    + String.zeroPad(this.getUTCMilliseconds(),4));
}

// namespace for TiddlyLock
TiddlyLock = {};

// Load/Last Update timestamp
TiddlyLock.TimeStamp = new Date().TLConvertToYYYYMMDDHHMMSSMMM();

// Lockfile
TiddlyLock.LockPath = '';
TiddlyLock.OldLockData = '';
TiddlyLock.LockData = '';

// define messages
TiddlyLock.Msg = {
  Locked: 'File locked',
  Unlocked: 'File unlocked',
  LockFailed: 'Failed to lock file',
  UnlockFailed: 'Failed to unlock file',
  ReadOnly: 'Now in Read-Only mode.',
  Changed: 'This file has been changed by someone else.',
  Reload: 'Reload this file before editing.'};

// create/update the lock file
function TLSave(timeStamp,lockedBy)
{
  var lockedText='';
  if (lockedBy!='')
  {
    lockedText=timeStamp+'##'+lockedBy;
  }
  else lockedText=timeStamp+'##';
    var lockSave=saveFile(TiddlyLock.LockPath,lockedText);
  TiddlyLock.TimeStamp = timeStamp;
  return false;
}


// Create/update the lock file to prevent other users from editing the TW
function TLLock()
{
  clearMessage();
  lockSave = TLSave(new Date().TLConvertToYYYYMMDDHHMMSSMMM(),config.options.txtUserName);
  displayMessage(TiddlyLock.Msg.Locked,'');
  return false;
}


// Clear the lock file if necessary, but only if I have it locked, setting the
// timestamp in the lockfile to the specified value
function TLUnlock(timeStamp)
{
  if ((store && store.isDirty && !store.isDirty())
    && (story && story.areAnyDirty && !story.areAnyDirty())
    && TLIsLocked()
    && TLIsLockedByMe())
  {
    lockSave=TLSave(timeStamp,'','');
    displayMessage(TiddlyLock.Msg.Unlocked,'');
    TiddlyLock.OldLockData = TiddlyLock.LockData;
  }
  return false;
}

// Get the contents of the lock file, if it exists
function TLLockPath()
{
  var lockPath,p;
  var originalPath=document.location.toString();
  var localPath=getLocalPath(originalPath);
  if((p=localPath.lastIndexOf('.')) != -1)
    lockPath=localPath.substr(0,p) + '.lck';
  else lockPath=localPath + '.lck';
    return lockPath;
}


// Get the contents of the lock file, if it exists
function TLLockData()
{
  TiddlyLock.LockPath = TLLockPath();
  return loadFile(TiddlyLock.LockPath);
}

// Get the contents of the lock file, if it exists
function TLIsLocked()
{
  TiddlyLock.LockData = TLLockData();
  if (TiddlyLock.LockData
      && ( TLLockedBy(TiddlyLock.LockData)!='' // someone has it locked
         || TiddlyLock.TimeStamp < TLLockedTimeStamp(TiddlyLock.LockData) // changed by someone else but not currently locked
         )
     )
    return true;
  else
    return false;
}


// check if locked by me
function TLIsLockedByMe()
{
  if(TiddlyLock.LockData == TiddlyLock.TimeStamp+'##' + config.options.txtUserName)
    return true;
  else
    return false;
}


// returns just the timestamp portion of the supplied lock file contents
function TLLockedTimeStamp(lockData)
{
  if(lockData)
    return lockData.split('##')[0];
  else
    return '';
}


// returns just the username portion of the supplied lock file contents
function TLLockedBy(lockData)
{
  if(lockData)
    return lockData.split('##')[1];
  else
    return '';
}

// display a message if locked or changed
function TLChangesAllowed()
{
  if(TLIsLocked() && !TLIsLockedByMe())
  {
//    if(!readOnly)
    {
      readOnly=true;
      if(TLLockedBy(TiddlyLock.LockData))
      {
        displayMessage(TiddlyLock.Msg.Locked+' by '+TLLockedBy(TiddlyLock.LockData));
        alert(TiddlyLock.Msg.Locked+' by '+TLLockedBy(TiddlyLock.LockData)+'. '+TiddlyLock.Msg.ReadOnly);
      }
      else
      {
        displayMessage(TiddlyLock.Msg.Changed+' '+TiddlyLock.Msg.Reload);
        alert(TiddlyLock.Msg.Changed+' '+TiddlyLock.Msg.Reload);
      }
    }
    return false;
  }
  else
    return true;
}


//*********************************************
// OVERRIDE STANDARD FUNCTIONS
//*********************************************

//
// OVERRIDE onClickNewTiddler()
//
TiddlyLock.onClickNewTiddler = config.macros.newTiddler.onClickNewTiddler;
config.macros.newTiddler.onClickNewTiddler = function(event,src,title)
{
  if (TLChangesAllowed())
  {
    TiddlyLock.OldLockData = TiddlyLock.LockData;
    TLLock();
    var ret = TiddlyLock.onClickNewTiddler.apply(this,arguments);
    return ret;
  }
}

//
// OVERRIDE checkUnsavedChanges()
//
TiddlyLock.checkUnsavedChanges = checkUnsavedChanges;
checkUnsavedChanges = function(event,src,title)
{
  var ret = TiddlyLock.checkUnsavedChanges.apply(this,arguments);
  if(TLIsLocked() && TLIsLockedByMe())
    lockSave=TLSave(TLLockedTimeStamp(TiddlyLock.OldLockData),'','');
  return ret;
}


//
// OVERRIDE cancelTiddler()
//
TiddlyLock.cancelTiddler = config.commands.cancelTiddler.handler;
config.commands.cancelTiddler.handler = function(event,src,title)
{
  var ret = TiddlyLock.cancelTiddler.apply(this,arguments);
  TLUnlock(TLLockedTimeStamp(TiddlyLock.OldLockData));
  return ret;
}

//
// OVERRIDE deleteTiddler()
//
TiddlyLock.deleteTiddler = config.commands.deleteTiddler.handler;
config.commands.deleteTiddler.handler = function(event,src,title)
{
  if (TLChangesAllowed())
  {
    TiddlyLock.OldLockData = TiddlyLock.LockData;
    TLLock();
    var ret = TiddlyLock.deleteTiddler.apply(this,arguments);
    return ret;
  }
}

//
// OVERRIDE editTiddler()
//
TiddlyLock.editTiddler = config.commands.editTiddler.handler;
config.commands.editTiddler.handler = function(event,src,title)
{
  if (TLChangesAllowed())
  {
    TiddlyLock.OldLockData = TiddlyLock.LockData;
    TLLock();
  }
  var ret = TiddlyLock.editTiddler.apply(this,arguments);
  return ret;
}

//
// OVERRIDE saveChanges()
//
TiddlyLock.saveChanges = saveChanges;
saveChanges = function(onlyIfDirty)
{
  if(TLChangesAllowed())
  {
    var ret = TiddlyLock.saveChanges.apply(this,arguments);
    TLUnlock(new Date().TLConvertToYYYYMMDDHHMMSSMMM());
    return ret;
  }
  else
    return false;
}

//
// OVERRIDE saveTiddler()
//
TiddlyLock.saveTiddler= config.commands.saveTiddler.handler;
config.commands.saveTiddler.handler=function(event,src,title)
{
  var ret = TiddlyLock.saveTiddler.apply(this,arguments);
  TLUnlock(new Date().TLConvertToYYYYMMDDHHMMSSMMM());
  return ret;
}

//}}}
/***
|Name|TiddlyPodPlugin|
|Source|http://www.TiddlyTools.com/#TiddlyPodPlugin|
|Version|1.4.4|
|Author|[[EricShulman]]|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires|TiddlyPodList|
|Overrides||
|Description|autoplay music randomly selected from playlist using embedded player|
!!!!!Usage
<<<
{{{
<<tiddlyPod autoplay loop verbose track:... width:... height:... size:... @TiddlerName>>
}}}
where:
* ''autoplay'' / ''noautoplay'' (keyword, default=''autoplay'')<br>the selected item will play immediately, without pressing the PLAY button.
* ''loop'' / ''noloop'' (keyword, default=''noloop'')<br>the current item is repeatedly played until you press the stop button.
* ''verbose'' (keyword, default=//none//)<br>a message will be displayed whenever an item is selected.
* ''track:...'' (number, default=//last played//)<br>the index into the playlist for the initial item to load into the player.  If no item is specified, the last one played is re-loaded (tracked in a browser cookie).  If no cookie exists (i.e., the first time you play after installing, or after clearing cookies, etc.), then the first item in the playlist is used.
* ''width:...'' and ''height:...'' (default=115x15 for QuickTime or, if using Internet Explorer, 90x44 for Windows Media Player)<br>specify a non-default width/height dimensions for the embedded player (using pixels).
* ''size:xxxx'' (default="auto")<br>a fixed height for the playlist popup container itself (using css measurement units, e.g., "px", "em", "cm", "in", etc.).  If the items in the list overflow this height, then a scrollbar is automatically added to the popup list.  "auto" shows //all// playlist entries without scrolling, using a variable height popup.
* ''@~TiddlerName'' (default=[[TiddlyPodList]])<br>specifies a tiddler containing the list of items to play.  Entries in the list are separated by "----", and each entry consist of two lines: the first line is the location (or URL) of the media file to be played.  The second line is a title to be displayed when that item is playing.
<<<
!!!!!Examples
<<<
{{{<<tiddlyPod noautoplay loop track:1 @TiddlyPodList>>}}}
<<tiddlyPod noautoplay loop track:1 @TiddlyPodList>>
<<<
!!!!!Revisions
<<<
2008.03.22 [1.4.4] added [[TiddlyPod]] shadow definition.
2008.03.21 [1.4.3] removed {{{pluginspage="http://www.apple.com/quicktime/download/"}}} param from HTML {{{<embed>}}}, so that FireFox (and other browsers) don't //prefer// QuickTime over other installed media players.  ''It is still up to the browser to determine which player to use.''.
2007.11.09 [1.4.2] in handler(), corrected default initialization of chkTiddlyPodAutoPlay and chkTiddlyPodLoopPlay.
2007.06.12 [1.4.1] in play(), don't call removeChildren(), since browser will clean up objects when assignment to innerHTML is made
2007.02.23 [1.4.0] added support for using 'attachment tiddlers' (see AttachFilePlugin) for self-contained playback.  This seems to work well with QuickTime.  Other embedded players may vary in support for the data:// URI.  Note: IE6/7 does NOT support data:// URI.  Attachments should always have local and/or remote fallbacks defined.
2007.02.23 [1.3.1] added support for scrollbar to playlist popup.  Use size:xxx to set the length of the playlist, where 'xxx' is any valid css measurement.  Use "auto" to show all playlist items without scrolling.  Also, added popup items for controlling autoplay/loopplay preferences.
2007.02.21 [1.3.0] added playlist popup and rewrote getPod() and play() to use innerHTML instead of wikify().  Eliminates all dependency on InlineJavascriptPlugin when rendering output.
2007.02.20 [1.2.1] added optional 'track:#' parameter to specify initial track, instead of starting with a random track
2007.02.20 [1.2.0] added optional 'loop' parameter to trigger looping playback
2007.02.20 [1.1.0] removed link for "edit playlist" to reduce clutter and provide a 'playback only' interface.  When changing the play list is appropriate, a link to [[TiddlyPodList]] (or any alternative playlist tiddler) can be directly added to surrounding tiddler content as needed.
2007.02.19 [1.0.0] initial release (converted from inline script)
<<<
!!!!!Code
***/
//{{{
version.extensions.TiddlyPodPlugin= {major: 1, minor: 4, revision: 4, date: new Date(2008,3,22)};

config.shadowTiddlers['TiddlyPod']='<<tiddlyPod>>';

config.macros.tiddlyPod= {
	verbose: false, // set to true to display messages
	playlist: "TiddlyPodList", // tiddler containing list of tunes
	size: "auto", // maximum length (using css) of playlist to show before adding a scrollbar
	width: config.browser.isIE?90:115, // width of embedded player (IE w/WinMedia vs FireFox w/QuickTime)
	height: config.browser.isIE?44:15, // height of embedded player (IE w/WinMedia vs FireFox w/QuickTime)
	getPlayer: function(src,w,h,auto,loop) {
		var out='';
		out+='<EMBED WIDTH="'+w+'" HEIGHT="'+h+'" ';
		out+='	style="height:'+h+'px;width:'+w+'px;margin:0;padding:0;" ';
		out+='	src="'+src+'" ';
		out+='	autostart="'+(auto?'true':'false')+'" autoplay="'+(auto?'true':'false')+'" ';
		out+='	loop="'+(loop?'true':'false')+'" ';
		out+='	controller="show" volume="100" EnableJavaScript="true" ';
		out+='	showtracker="1" showpositioncontrols="0" showaudiocontrols="0" ';
		out+='	showdisplay="0" showstatusbar="0" showgotobar="0"> ';
		out+='</EMBED>';
		return out;
	},
	getPod: function(playlist,which) {
		var txt=store.getTiddlerText(playlist); if (!txt) return;
		var songs=txt.split("\n----\n");
		var first=0;
		var last=songs.length-1;
		if (which===undefined) which=config.options.txtTiddlyPodNowPlaying;
		if (which<first) which=first; if (which>last) which=last;
		var next=(which-1)+2; if (next>last) next=last;
		var prev=which-1; if (prev<first) prev=first;
		var src=songs[which].split("\n")[0];
		var descr=songs[which].split("\n")[1];

		// if src is a tiddlername, check for attachment
		if (config.macros.attach!=undefined) // if AttachFilePlugin is installed
			if ((tid=store.getTiddler(src))!=null && tid.isTagged("attachment")) // if src is attachment tiddler title
				src=config.macros.attach.getAttachment(src); // replace TiddlerTitle with attachment-expanded src URL

		var out='';
		var tip=config.messages.externalLinkTooltip.format([src]); // use core defined tooltip
		out+='<div><a href="'+src+'" target="_blank" class="button" title="'+tip+'" style="white-space:normal">'+descr+'</a></div>';
		out+=this.getPlayer(src,this.width,this.height,config.options.chkTiddlyPodAutoPlay,config.options.chkTiddlyPodLoopPlay);
		out+='<div class="small">';
		out+='<a href="javascript:;" class="button" title="[first] track '+(first+1)+' - '+songs[first].split("\n")[1]+'" ';
		out+='	onclick="config.macros.tiddlyPod.play(this.parentNode.parentNode,'+first+'); return false;">&lt;&lt;</a>';
		out+='&nbsp;';
		out+='<a href="javascript:;" class="button" title="[previous] track '+(prev+1)+' - '+songs[prev].split("\n")[1]+'" ';
		out+='	onclick="config.macros.tiddlyPod.play(this.parentNode.parentNode,'+prev+'); return false;">&nbsp;&lt;&nbsp;</a>';
		out+='&nbsp;';
		out+='<a href="javascript:;" class="button" title="[playlist]" ';
		out+='	onclick="config.macros.tiddlyPod.showpopup(this,event); return false;">...</a>';
		out+='&nbsp;';
		out+='<a href="javascript:;" class="button" title="[next] track '+(next+1)+' - '+songs[next].split("\n")[1]+'" ';
		out+='	onclick="config.macros.tiddlyPod.play(this.parentNode.parentNode,'+next+'); return false;">&nbsp;&gt;&nbsp;</a>';
		out+='&nbsp;';
		out+='<a href="javascript:;" class="button" title="[last] track '+(last+1)+' - '+songs[last].split("\n")[1]+'" ';
		out+='	onclick="config.macros.tiddlyPod.play(this.parentNode.parentNode,'+last+'); return false;">&gt;&gt;</a>';
		out+='</div>';

		if (this.verbose) displayMessage('now playing… track '+(which+1)+' - "'+descr+'"');
		return out;
	},
	play: function(target,which) {
		if (which==undefined) which=config.options.txtTiddlyPodNowPlaying; // if not specified, use most recently played item
		if (which==undefined) which=0; // default to first item in playlist if no previous item
		target.innerHTML=this.getPod(this.playlist,which);
		config.options.txtTiddlyPodNowPlaying=which;
		saveOptionCookie("txtTiddlyPodNowPlaying");
		return;
	},
	showpopup: function(place,event) {
		var popup=Popup.create(place); if (!popup) return;
		var txt=store.getTiddlerText(this.playlist); if (!txt) return;
		var songs=txt.split("\n----\n");
		config.macros.tiddlyPod.target=place.parentNode.parentNode;
		createTiddlyButton(createTiddlyElement(popup,'li'),
			"play a randomly selected track", "shuffle play",
			function(){
				var t=config.options.chkTiddlyPodAutoPlay;
				config.options.chkTiddlyPodAutoPlay=true; // force autoplay
				config.macros.tiddlyPod.play(config.macros.tiddlyPod.target,Math.floor(Math.random()*songs.length));
				config.options.chkTiddlyPodAutoPlay=t;
				return false;
			});
		createTiddlyElement(popup,"hr");
		createTiddlyButton(createTiddlyElement(popup,'li'),
			(config.options.chkTiddlyPodAutoPlay?"[x]":"[_]")+" auto play",
			"automatically play tune when selected (if off, press PLAY button to start)",
			function(){
				config.options.chkTiddlyPodAutoPlay=!config.options.chkTiddlyPodAutoPlay;
				saveOptionCookie("chkTiddlyPodAutoPlay");
				config.macros.tiddlyPod.play(config.macros.tiddlyPod.target,config.options.txtTiddlyPodNowPlaying);
				return false;
			});
		createTiddlyButton(createTiddlyElement(popup,'li'),
			(config.options.chkTiddlyPodLoopPlay?"[x]":"[_]")+" repeat play",
			"when playback is finished, repeat the current selection again",
			function(){
				config.options.chkTiddlyPodLoopPlay=!config.options.chkTiddlyPodLoopPlay;
				saveOptionCookie("chkTiddlyPodLoopPlay");
				config.macros.tiddlyPod.play(config.macros.tiddlyPod.target,config.options.txtTiddlyPodNowPlaying);
				return false;
			});
		createTiddlyElement(popup,"hr");
		var playlist=createTiddlyElement(popup,"div",null,"fine"); // uses 'fine' css class to set font size
		playlist.style.padding="2px"; // room for dotted 'focus' indicator (prevent horizontal scrollbar from appearing)
		playlist.style.height=config.macros.tiddlyPod.size;
		playlist.style.overflow="auto";
		for (var s=0; s<songs.length; s++) {
			var src=songs[s].split("\n")[0];
			var descr=(s+1)+" - "+songs[s].split("\n")[1];
			var a=createTiddlyButton(createTiddlyElement(playlist,'li'), descr, src,
				function(){
					var t=config.options.chkTiddlyPodAutoPlay;
					config.options.chkTiddlyPodAutoPlay=true; // force autoplay
					config.macros.tiddlyPod.play(config.macros.tiddlyPod.target,this.getAttribute("which"));
					config.options.chkTiddlyPodAutoPlay=t;
					return false;
				});
			a.setAttribute("which",s); // song index
			if (s==config.options.txtTiddlyPodNowPlaying) a.style.fontWeight="bold";
		}
		createTiddlyElement(popup,"hr");
		createTiddlyButton(createTiddlyElement(popup,'li'), 'edit playlist...', '',
			function(){story.displayTiddler(null,config.macros.tiddlyPod.playlist,2);return false;});
		Popup.show(popup,false);
		if (!event) var event=window.event;
		if (event) event.cancelBubble = true;
		if (event && event.stopPropagation) event.stopPropagation();
	},
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		if (config.options.chkTiddlyPodAutoPlay==undefined)
			config.options.chkTiddlyPodAutoPlay=true; // default enable auto play
		if (config.options.chkTiddlyPodLoopPlay==undefined)
			config.options.chkTiddlyPodLoopPlay=false; // default disable loop play
		if (config.options.chkTiddlyPodNowPlaying==undefined)
			config.options.chkTiddlyPodNowPlaying=0; // default to first item in playlist
		while (p=params.shift()) {
			if (p=="autoplay")
				config.options.chkTiddlyPodAutoPlay=true; // enable auto play
			if (p=="noautoplay")
				config.options.chkTiddlyPodAutoPlay=false; // disable auto play
			else if (p=="loop")
				config.options.chkTiddlyPodLoopPlay=true; // enable loop play
			else if (p=="noloop")
				config.options.chkTiddlyPodLoopPlay=false; // disable loop play
			else if (p=="verbose")
				this.verbose=true; // enable message display
			else if (p.substr(0,1)=="@")
				this.playlist=p.substr(1); // alternative playlist tiddler 
			else if (p.substr(0,6)=="track:")
				config.options.txtTiddlyPodNowPlaying=p.substr(6)-1; // initial playlist index (0-based, e.g. track #1=index 0)
			else if (p.substr(0,6)=="width:")
				this.width=p.substr(6); // width of embedded player controls
			else if (p.substr(0,7)=="height:")
				this.height=p.substr(7); // height of embedded player controls
			else if (p.substr(0,11)=="size:")
				this.size=p.substr(11); // height of playlist in popup
		}
		this.play(createTiddlyElement(place,"span"),config.options.txtTiddlyPodNowPlaying);
	}
}
//}}}
/***
|''Name''|TiddlyTagMindMap2|
|''Requires''|excanvas jit-yc|
|''Version''|2.0.2|
!Parameters
There are lots of cool parameters to discover:
* ''vizType'' (string) [hypertree OR rgraph]
* ''width'' (string) the width you want the mind map to be (in pixels)
* ''height'' (string) the height you want the mind map to be (in pixels)
* ''nodeType'': (string) - what shape the nodes should be. [‘circle’, ‘rectangle’, ‘square’, ‘ellipse’, ‘triangle’, ‘star’]
* ''nodeSize'' (string) sets the width/height of the node.
* ''nodeColor'': what color they should be
* ''centerOn'' specify which node in the graph should be centered on.
* ''edgeColor:'' edge color
* ''directed'' if set to "yes" edges are arrows
* ''edgeType'': set the edge type to be either hyperline, line or arrow
* ''edgeWidth'': 1.5,
* ''filter'': only show tiddlers in the map which match the given filter.
* ''maxNodeNameLength": (number) if any node labels are more than this length they will be shortened and suffixed with ...
* ''labelDepth''  (number) hide any nodes more than a certain depth away from the node centered on
* "exclude": (string) exclude all tiddlers tagged with this value from the visualization.
* fieldType
!StyleSheet
.ttmm {
	overflow: hidden;
	position: relative;
	height: 200px;
}
.ttmm .node {
	cursor: pointer;
	font-size: 0.7em;
}

.nodeMissing {
	color: #ccc;
}

.nodeVisited {
	color: Purple;
}

.depth0 {
	border: solid 1px black;
}
!Todo
* html labels have id of the node. This is really bad and should be fixed in the jit core.
***/
//{{{
(function($){

var tiddler = {title: "TiddlyTagMindMap2Plugin"};
var name = "StyleSheetTiddlyTagMindMap";
config.shadowTiddlers[name] = store.getTiddlerText(tiddler.title +
"##StyleSheet");
store.addNotification(name, refreshStyles);
config.shadowTiddlers.TiddlyTagMindMapNodeTemplate = "<<view title text>>";
var macro = config.macros.TiddlyTagMindMap = {
	
	rootNode: "TiddlyTagMindMapRootNode",
	defaultOptions: {
		id: null,
		rootNode: null,
		field: [ "tags" ], // dictates the parent node
		fieldsAreList: true,
		levelDistance: 90,
		width: null,
		height: null,
		nodeType: "square",
		nodeColor: "#ddeeff",
		nodeSize: 4,
		centerOn: false,
		edgeColor: '#C17878',
		directed: false,
		edgeType: null,
		edgeWidth: 1.5,
		template: "TiddlyTagMindMapNodeTemplate",
		filter: false,
		maxNodeNameLength: false,
		labelDepth: false,
		exclude: "excludeLists",
		orientation: null, // left, top, right or bottom
		vizType: "radial",
		animate: true, //*
		ignoreLoneNodes: true, //*
		caseSensitive: false, //*
		hideRoot: true,
		valuePrefix: false,
		nodeHoverColor: "#ddeeff",
		nodeClickColor: "#ddeeff"
	},
	init: function() {
		macro._active = {};
		var _displayTiddler = Story.prototype.displayTiddler;
		Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,unused,customFields,toggle,animationSrc) {
			var el = _displayTiddler.apply(this, arguments);
			var id = typeof(tiddler) == 'string' ? tiddler : tiddler.title;
			macro.centerAll(id);
			return el;
		};
		
		var _saveTiddler = TiddlyWiki.prototype.saveTiddler;
		TiddlyWiki.prototype.saveTiddler = function(title, newTitle, newBody, modifier,
				modified, tags, fields, clearChangeCount, created, creator) {
			var tid = _saveTiddler.apply(this, arguments);
			try {
				macro.updateAllGraphs();
			} catch(e) {};
			return tid;
		};
		var _removeTiddler = TiddlyWiki.prototype.removeTiddler;
		TiddlyWiki.prototype.removeTiddler = function(title) {
			var tid = store.getTiddler(title);
			var flag = _removeTiddler.apply(this, arguments);
			try {
				macro.updateAllGraphs(title);
			} catch(e) {};
			return flag;
		};
	},
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		var options = macro.getOptions(place, paramString);
		var data = macro.getData(options);
		var id = options.id || "ttmm2_%0".format([Math.random()]);
		if(macro._active[id]) {
			$(document.getElementById(id)).empty();
		}
		var container = $("<div />").addClass("ttmm").attr("id", id).
			css({width: options.width, height: options.height}).appendTo(place)[0];
		$(container).dblclick(function(ev) {
			ev.stopPropagation();
		});
		macro.renderGraph(container, data, options);
	},
	getNodeLabelId: function(containerId,id) {
		return "node-%0-%1".format([containerId, id])
	},
	updateAllGraphs: function(changed) {
			for(var i in macro._active) {
				var el = document.getElementById(i);
				if(el) {
					var cache = macro._active[i];
					var deleted = document.getElementById(macro.getNodeLabelId(i, changed));
					if(cache) {
						var options = cache.options;
						var viz = cache.viz;
						var data = macro.getData(options);
						macro._refresh(viz, data, options);
						viz.refresh();
						$(deleted).remove();
					}
				} else {
					macro._active[i] = false;
				}
			}
	},
	centerAll: function(id) {
		for(var i in macro._active) {
			var el = document.getElementById(i);
			if(el) {
				var cache = macro._active[i];
				if(cache) {
					var viz = cache.viz;
					if(viz.graph.hasNode(id)) {
						viz.onClick(id);
					}
				}
			} else {
				macro._active[i] = false;
			}
		}
	},
	renderGraph: function(container, data, options) {
		if(options.vizType == "hypertree") {
			macro._renderHypertree(container, data, options);
		} else if(options.vizType == "spacetree") {
			macro._renderSpaceTree(container, data, options);
		} else if(options.vizType == "sunburst") {
			macro._renderSunburst(container, data, options);
		} else {
			macro._renderRGraph(container, data, options);
		}
	},
	_getViz: function(type, container, options) {
		var containerId = $(container).attr("id");
		var _events = {}, _tips = {}, _edge = {}, _navigation = {};
		if(options.vizType != "sunburst") {
			_navigation = {
				enable: true,
				panning: true
			};
			if(options.vizType != "spacetree") {
				_navigation.zooming = 10;
			}
			_edge = {
				color: options.edgeColor,
				lineWidth: options.edgeWidth,
				type: options.edgeType,
				overridable: true,
				dim: 15
			};
		}
		var viz = new $jit[type]({ 
			injectInto: containerId,
			Navigation: _navigation,
			duration: 800,
			width: options.width,
			height: options.height,
			transition: options.vizType == "spacetree" ? $jit.Trans.Quart.easeInOut : null,
			NodeStyles: {
				enable: true,
				type: "Native",
				stylesClick: {
					color: options.nodeClickColor
				},
				stylesHover: {
					color: options.nodeHoverColor
				}
			},
			levelDistance: options.levelDistance,
			Label: {
				type: "HTML"
			},
			Tree: {
				orientation: options.orientation
			},
			Node: {
				color: options.nodeColor,
				type: options.nodeType,
				overridable: true,
				width: options.nodeWidth ? options.nodeWidth : options.nodeSize,
				dim: options.nodeSize,
				height: options.nodeHeight ? options.nodeHeight : options.nodeSize
			},
			Edge: _edge,
			onCreateLabel: function(domElement, node){
				var el = $(domElement).empty();
				if(!options.maxNodeNameLength) {
					var ctx = store.tiddlerExists(node.id) ? store.getTiddler(node.id) : new Tiddler(node.id);
					var template = store.getTiddlerText(options.template);
					template = template ? template : store.getTiddlerText("TiddlyTagMindMapNodeTemplate");
					wikify(template, domElement, null, ctx);
				} else {
					var text = el.text();
					var maxLength = options.maxNodeNameLength;
					if(maxLength) {
						if(text.length > maxLength) {
							var diff = (text.length - maxLength);
							text = "%0...".format([text.slice(0, text.length - diff)]);
						}
					}
					el.text(text);
				}
				el.attr("id", macro.getNodeLabelId(containerId, node.id));
				var rgraph = this;
				var wasClick = false;
				$(domElement).click(function(ev){
					wasClick = true;
					window.setTimeout(function() {
						if(wasClick) {
							var cache = macro._active[containerId];
							if(cache && cache.visitedNodes) {
								cache.visitedNodes[node.id] = true;
							}
							options.centerOn = node.id;
							if(viz.onClick) {
								viz.onClick(node.id);
							}
						}
					}, 300);
				});
				$(domElement).dblclick(function(ev) {
					wasClick = false;
					story.displayTiddler(ev.target, node.id);
					ev.stopPropagation();
					return false;
				});
			},
			onPlaceLabel: function(domElement, node){
				var el = $(domElement);
				var depth = node._depth;
				if(options.labelDepth && depth > options.labelDepth) {
					el.hide();
					return;
				}
				el.show();
				var existingDepth = el.attr("node-depth");
				if(existingDepth) {
					el.removeClass("depth%0".format([existingDepth]));
				}
				el.attr("node-depth", depth);
				el.addClass("depth%0".format([depth]));
				if(options.hideRoot && node.data.root) {
					el.hide();
				}
				if(node.data.missing) {
					el.addClass("nodeMissing");
					if(options.missingColor) {
						el.css({ color: "#ccc" });
					}
				}
				var cache = macro._active[containerId];
				if(cache && cache.visitedNodes && cache.visitedNodes[node.id]) {
					el.addClass("nodeVisited");
				}
			}
		});
		return viz;
	},
	_refresh: function(viz, data, options) {
		viz.loadJSON(data);
		if(options.vizType == "spacetree") {
			viz.compute();
			viz.geom.translate(new $jit.Complex(-200, 0), "current");
			viz.onClick(viz.root);
		} else {
			viz.labels = false; // hack
			//compute positions and plot.
			try {
				viz.refresh();
			} catch(e) {}
		}
		if(options.centerOn) {
			viz.onClick(options.centerOn);
		}
		if(options.orientation) {
			viz.switchPosition(options.orientation, "animate");
		}
	},
	_patch: function(viz) {
		// customisations
		var _plotLine = viz.constructor.Plot.prototype.plotLine;
		var _plotNode = viz.constructor.Plot.prototype.plotNode;
		viz.constructor.Plot.prototype.plotLine = function(adj, canvas, animating) {
			if(adj.nodeFrom.id != macro.rootNode && adj.nodeTo.id != macro.rootNode) {
				_plotLine.apply(this, arguments);
			}
		}
		viz.constructor.Plot.prototype.plotNode = function(node, canvas, animating) {
			if(node.id != macro.rootNode) {
				_plotNode.apply(this, arguments);
			}
		};
	},
	_renderHypertree: function(container, data, options) {
		var ht = macro._getViz("Hypertree", container, options);
		macro._patch(ht);
		var id = $(container).attr("id");
		macro._active[id] = {
			data: data,
			viz: ht,
			options: options,
			visitedNodes: {}
		};
		macro._refresh(ht, data, options);
		//end
		ht.controller.onAfterCompute();
	},
	_renderSpaceTree: function(container, data, options) {
		var viz = macro._getViz("ST", container, options);
		var id = $(container).attr("id");
		macro._active[id] = {
			data: data,
			viz: viz,
			options: options,
			visitedNodes: {}
		};
		macro._refresh(viz, data, options);
	},
	_renderSunburst: function(container, data, options) {
		var sunburst = macro._getViz("Sunburst", container, options);
		//load JSON data
		var id = $(container).attr("id");
		macro._active[id] = {
			data: data,
			viz: sunburst,
			options: options,
			visitedNodes: {}
		};
		macro._refresh(sunburst, data, options);
	},
	_renderRGraph: function(container, data, options) {
		var rgraph = macro._getViz("RGraph", container, options);
		macro._patch(rgraph);
		//load JSON data
		var id = $(container).attr("id");
		macro._active[id] = {
			data: data,
			viz: rgraph,
			options: options,
			visitedNodes: {}
		};
		macro._refresh(rgraph, data, options);
	},
	refresh: function(container) {
		var id = $(container).attr("id");
		var cache = macro._active[id];
		if(cache) {
			var data = cache.data;
			var options = cache.options;
			var rgraph = cache.viz;
		}
	},
	getData: function(options) {
		var root = options.rootNode || macro.rootNode;
		options = options ? options : macro.defaultOptions;
		options._tiddlers = options.filter ? store.filterTiddlers(options.filter) : store.getTiddlers(null, options.exclude);
		return macro._createNode(root, options);
	},
	getOptions: function(container, paramString) {
		var listOptions = ["field"]; // will be saved as lists
		var numberOptions = ["labelDepth", "width", "height", "levelDistance", "edgeWidth", "nodeWidth", "nodeHeight", "nodeSize"];
		var args = paramString.parseParams("name", null, true, false, true)[0];
		var options = {};
		merge(options, macro.defaultOptions);
		for(var id in args) {
			if(true) {
				var p = args[id];
				if(listOptions.contains(id)) {
					options[id] = p;
				} else if(numberOptions.contains(id)){
					options[id] = parseFloat(p[0]);
				} else {
					options[id] = p[0];
				}
			}
		}
		options.fieldsAreList = options.fieldType && options.fieldType == "string" ? false : true; 
		options.width = options.width ? parseInt(options.width) : $(container).width();
		options.height = options.height ? parseInt(options.height) : $(container).height();
		options.edgeType = options.directed ? "arrow" : options.edgeType;
		options.hideRoot = options.hideRoot && options.hideRoot == "no" ? false : true;
		// note hyperline doesn't work for RGraph
		var defaultEdgeType = options.vizType == "hypertree" ? "hyperline" : "line";
		if(!options.edgeType) {
			options.edgeType = defaultEdgeType;
		} else {
			options.edgeType = options.edgeType == "hyperline" && options.vizType != "hypertree" ? "line" : options.edgeType;
		}
		if(options.vizType == "sunburst") {
			options.nodeType = "gradient-multipie"; //"multipie";
			options.nodeSize = false;
		}
		return options;
	},
	lookupFieldValue: function(tiddler, options) {
		var allValues = [];
		for(var i = 0; i < options.field.length; i++) {
			var fieldName = options.field[i];
			var values = tiddler[fieldName] ? tiddler[fieldName] : tiddler.fields[fieldName];
			if(options.fieldsAreLists) {
				values = typeof(values) == "string" ? values.readBracketedList() : values;
			} else {
				values = typeof(values) == "string" ? [ values ] : values;
			}
			if(values) {
				for(var j = 0; j < values.length; j++) {
					allValues.pushUnique(values[j]);
				}
			}
		}
		return allValues;
	},
	lookupTiddlers: function(tiddlers, value, options) {
		var matches = [];
		for(var i = 0; i < tiddlers.length; i++) {
			var tiddler = tiddlers[i];
			var values = macro.lookupFieldValue(tiddler, options);
			if(values && values.indexOf(value) > -1) {
				matches.push(tiddler);
			}
		}
		return matches;
	},
	_getChildNodes: function(title, options) {
		var children = [];
		var tiddlers = options._tiddlers;
		if(title == macro.rootNode) { // get all tiddlers with no tags
			var tags = {};
			for(var i = 0; i < tiddlers.length; i++) {
				var tiddler = tiddlers[i];
				var values = macro.lookupFieldValue(tiddler, options);
				if(values.length === 0) {
					var node = macro._createNode(tiddler.title, options);
					node.data.orphan = true;
					if(node) {
						children.push(node);
					}
				} else {
					for(var j = 0; j < values.length; j++) {
						var value = values[j];
						var tiddler = store.getTiddler(value);
						if(!tiddler) {
							var node = macro._createNode(value, options);
							if(node) {
								node.data.orphan = true;
								children.push(node);
							}
						}
					}
				}
			}
		} else {
			var lookup = options.valuePrefix ? "%0%1".format([options.valuePrefix, title]) : title;
			var matches = macro.lookupTiddlers(tiddlers, lookup, options);
			if(matches) {
				// TODO: support strings to array
				for(var i = 0; i < matches.length; i++) {
					var node = macro._createNode(matches[i].title, options);
					if(node) {
						children.push(node);
					}
				}
			}
		}
		return children;
	},
	_createNode: function(title, options) {
		var children = macro._getChildNodes(title, options);
		var node = {
			id: title,
			name: title,
			data: {
				missing: store.tiddlerExists(title) ? false : true,
				visited: false,
				root: title == macro.rootNode,
				weight: children.length,
				size: 200,
				"$angularWidth": 7490
			},
			children: children
		};
		return node;
	}
};
})(jQuery);
//}}}
/***
|Name|TiddlyTagMindMap|
|Description|Bring your tiddlers to life in a radial graph which displays all your tiddlywiki tiddlers and the relationships between them. (A bit like The Brain)|
|Icon|<...>|
|Author|[[JonRobson]]|
|Contributors|Nicolas Garcia Belmonte|
|Version|1.3|
|Date|22 Oct 2008|
|Status|@@experimental@@;|
|Source|<...>|
|CodeRepository|<...>|
|Copyright|<...>|
|License|<...>|
|CoreVersion|<...>|
|Requires|<...>|
|Overrides|<...>|
|Feedback|<...>|
|Documentation|<...>|
|Keywords|data visualisation, mindmap, The Brain, Mind Manager, FreeMind,tag relationships,graph|
!Description
Bring your TiddlyWiki to life!
!Notes
To install you will need to paste a line of text into your Theme {{{ <div id="tagmindmap"></div>}}} in the location where you would like to see the visualisation.

Currently we are unable to support this working in internet explorer.. we are working on it however.. sorry! :(
!Usage
{{{
<<ToggleTagMindMap>> (toggle graph on/off)
<<LoadMindMap>> (load all nodes into mind map)
<<ZoomMindMapIn>> (zoom into the map (expand the structure as if it was a balloon))
<<ZoomMindMapOut>> (zoom out of the map (let air out of the structure as if it was a balloon))

There are a variety of configuration options in the backstage area under tweak. They all begin with TiddlyTagMindMapPlugin: 
}}}
!!Parameters
None taken (currently)
!!Examples
See usage hopefully self explanatory.
!Configuration Options
<...>
!Revision History
Coming soon..
*Integration with TagClouds
*Ability to set meta-data on nodes (eg. colouring)
*Working version in IE
!To Do
<...>
!Code
***/
//

/***
!Layer 1: TiddlyWiki Specific
***/

{{{
//load defaults
if(!config.options.txtTTMM_canvasWidth)config.options.txtTTMM_canvasWidth = 800;
if(!config.options.txtTTMM_canvasHeight)config.options.txtTTMM_canvasHeight = 200;
if(!config.options.txtTTMM_inflation)config.options.txtTTMM_inflation = 80;

if(config.options.txtTTMM_inflation <=0) config.options.txtTTMM_inflation = 10;
if(!config.options.txtTTMM_maxNodeNameLength)config.options.txtTTMM_maxNodeNameLength = 25;
if(config.options.chkTTMM_ignoreLoneNodes == null) config.options.chkTTMM_ignoreLoneNodes = false;
if(config.options.chkTTMM_leaveRedBreadCrumbTrail == null) config.options.chkTTMM_leaveRedBreadCrumbTrail = true;
if(!config.options.txtTTMM_excludeNodeList) config.options.txtTTMM_excludeNodeList= 'excludeLists';

var ttmm_loadOnStart = false; //load all nodes on start

//set descriptions
merge(config.optionsDesc,{
txtTTMM_canvasWidth: "TiddlyTagMindMapPlugin : Width of  visualisation. You will need to refresh the page to see the change."
,txtTTMM_canvasHeight: "TiddlyTagMindMapPlugin : Height of visualisation. You will need to refresh the page to see the change."
,txtTTMM_inflation: "TiddlyTagMindMapPlugin : The visualisation can be inflated and deflated to allow you to see the structure from above or close up. This value allows you to set a start inflation."
,txtTTMM_maxNodeNameLength:"TiddlyTagMindMapPlugin : maximum length of a tiddler name. Any tiddlers with names longer than this will be abbrieviated using '...'. Set to zero to make labels disappear altogether and rely completely on tooltips."
,chkTTMM_ignoreLoneNodes: "TiddlyTagMindMapPlugin : any lone tiddlers/nodes (ie. tiddlers that are not tagged with any data) will be ignored in the visualisation. This cleans up the visualisation greatly."
,txtTTMM_excludeNodeList: "TiddlyTagMindMapPlugin :Anything tagged with this will be ignored in the visualisation. Eventually this will allow multiple tags but I am currently being lazy. Sorry.."
,chkTTMM_leaveRedBreadCrumbTrail: "TiddlyTagMindMapPlugin : When you visit a node it will be coloured red leaving a breadcrumb trail of where you have been."
}
);

}}}

{{{

/*MACROS*/
var canvasID ="infovis";

/* Zooming TagMindMap (zoom in) */

config.macros.ZoomMindMapIn = {};
merge(config.macros.ZoomMindMapIn,{
	label: "Expand",
	prompt: "Expand the tag mind map"});
	
config.macros.ZoomMindMapIn.handler = function (place,macroName,params,wikifier,paramString,tiddler) {
createTiddlyButton(place,this.label,this.prompt,this.onClick);	
};

config.macros.ZoomMindMapIn.onClick = function(e)
{
config.options.txtTTMM_inflation = tiddlytagmindmapobject.zoom(10);
if(tiddlytagmindmapobject)tiddlytagmindmapobject.computeThenPlot();
}

/* Zooming TagMindMap (zoom out) */

config.macros.ZoomMindMapOut = {};
merge(config.macros.ZoomMindMapOut,{
	label: "Shrink",
	prompt: "shrink the tag mind map"});
	
config.macros.ZoomMindMapOut.handler = function (place,macroName,params,wikifier,paramString,tiddler) {
createTiddlyButton(place,this.label,this.prompt,this.onClick);	
};

config.macros.ZoomMindMapOut.onClick = function(e)
{
config.options.txtTTMM_inflation =tiddlytagmindmapobject.zoom(-10);
saveOptionCookie("txtTTMM_inflation");
if(tiddlytagmindmapobject)tiddlytagmindmapobject.computeThenPlot();
}

/*Load All Tiddlers into TagMindMap Macro */

config.macros.LoadMindMap = {};
merge(config.macros.LoadMindMap,{
	label: "Load TagMindMap",
	prompt: "load all tiddlers into tag mind map"});
	
config.macros.LoadMindMap.handler = function (place,macroName,params,wikifier,paramString,tiddler) {
createTiddlyButton(place,this.label,this.prompt,this.onClick);	
};

config.macros.LoadMindMap.onClick = function(e)
{
var list = store.getTiddlers();
for (var t=0; t<list.length; t++) { 
	tiddlytagmindmapobject.createNodeFromJSON(createJSON(list[t].title));
	
}

tiddlytagmindmapobject.computeThenPlot();

}
/*Toggler Macro */

config.macros.ToggleTagMindMap = {};
merge(config.macros.ToggleTagMindMap,{
	label: "Toggle TagMindMap",
	prompt: "Toggle on or off the tag mind map"});

config.macros.ToggleTagMindMap.handler = function(place)
{
	createTiddlyButton(place,this.label,this.prompt,this.onClick);
};

config.macros.ToggleTagMindMap.onClick = function(e)
{
  if(document.getElementById('tagmindmap').style.display== "none"){
    document.getElementById('tagmindmap').style.display=  "";

}
  else{
    document.getElementById('tagmindmap').style.display=  "none";
  }
};


var tiddlytagmindmapobject;
var ttmm_loadedStatus = true;
/* Init TagMindMap macro */


function ttmm_setupHTMLElements(){
		
		/*setup the divs */
		var wrapper = document.getElementById("tagmindmap");

		if(!wrapper) {
			var theme;
			theme = config.options.txtTheme;
			if(theme == '') theme = "[[PageTemplate]]";
			else theme = "[["+theme+"]]"
			
			if(ttmm_loadedStatus){
				ttmm_loadedStatus = false;
				alert("TiddlyTagMindMapPlugin: please insert code <div id='tagmindmap'></div> into " + 	theme + " and your TagMindMapPlugin will be ready to go!");return;
			
			}
			return;
		}
		wrapper.style.width = config.options.txtTTMM_canvasWidth+"px";
		wrapper.style.height = config.options.txtTTMM_canvasHeight+"px";
		var labelContainer = document.createElement("div");
		labelContainer.id="label_container";
	
		var canvas = document.createElement("canvas");
		canvas.id = canvasID;
		canvas.width = config.options.txtTTMM_canvasWidth;
		canvas.height = config.options.txtTTMM_canvasHeight;

		
		wrapper.onmousedown = function (event){		

			var targ;
			if (!event)var event = window.event;
			if (event.target) targ = event.target;
			else if (event.srcElement) targ = event.srcElement;
			if (targ.nodeType == 3)  targ = targ.parentNode;
			var tname;
			tname=targ.tagName +"";
			
			//check if a node was clicked on, if so bail out! :)
			if(tname == "SPAN")return;
			
		
			if(tiddlytagmindmapobject){
				//console.log("clicked at " + event.clientX + " " + event.clientY);
				tiddlytagmindmapobject.canvas.setPosition();
				var canvasPos = tiddlytagmindmapobject.canvas.getPosition();
				var myX= event.clientX;

				var myY =  event.clientY;
				//console.log("clicked at " + myX + " "+myY);
		
				var canvasSize = tiddlytagmindmapobject.canvas.getSize();

				var centerY = canvasPos.y+ (canvasSize.y / 2);;
				var centerX = canvasPos.x + (canvasSize.x / 2);
				//console.log("center is at " + centerX + " " + centerY);
				offsetY= centerY -myY;
				offsetX= centerX -myX;
			//console.log("offset " + offsetX + " " + offsetY);
				//console.log("below:" + below + "right" + right + "center: " +centerX + ","+centerY + "mouse" + X + ","+Y);
				tiddlytagmindmapobject.rgraph.offsetCenter(offsetX,offsetY);
			
				tiddlytagmindmapobject.rgraph.plot();
			}

			return false;
		}
		
		wrapper.appendChild(labelContainer);
		wrapper.appendChild(canvas);
		if(config.browser.isIE && G_vmlCanvasManager) G_vmlCanvasManager.init_(document);

}

function ttmm_setupJavascriptElements(){
		if(Tagmindmap){
				
				try{
			   	 var clickF = function(node){
				      story.displayTiddler(null, node.id);
				    };
	
					tiddlytagmindmapobject= new Tagmindmap(canvasID,
									null,null,
								function(A){
									story.displayTiddler(null,A.id);
									   }
										);
										
					var excludeLists = config.options.txtTTMM_excludeNodeList
					tiddlytagmindmapobject.excludeNodeList = getParents(excludeLists);

					tiddlytagmindmapobject.userCanDeleteNodes = false;
					tiddlytagmindmapobject.nodeToolBar = false;
					Config['levelDistance'] = config.options.txtTTMM_inflation;
					tiddlytagmindmapobject.ignoreLoneNodes = config.options.chkTTMM_ignoreLoneNodes;
					
					tiddlytagmindmapobject.maxNodeNameLength = config.options.txtTTMM_maxNodeNameLength;
					
					if(ttmm_loadOnStart) config.macros.LoadMindMap.onClick();
					
				}
				catch(e){console.log("exception thrown:"+e);}
			   }
}
config.macros.tiddlytagmindmap = {};
config.macros.tiddlytagmindmap.handler = function (place,macroName,params,wikifier,paramString,tiddler) {
var offsetInc = 30;

	if(!tiddlytagmindmapobject){ 
		ttmm_setupHTMLElements();
		ttmm_setupJavascriptElements();
	}
};

}}}

{{{
	
/*Colouring Functions */
function doColouring(currentNode){

if(config.options.chkTTMM_leaveRedBreadCrumbTrail)colorNode(currentNode, "red");

/*below coming soon */
//colorNode("TiddlyTagMindMap for Everyone","green");
//colorChildrenOf("TiddlyTagMindMap for Developers","blue");
//colorParentsOf("TiddlyTagMindMap for Developers","white");
}


function getParents(a){ 
  if(store.getTaggedTiddlers(a)){
    var tags = store.getTaggedTiddlers(a);
    if(tags.length == 0) return [];

    var a = new Array();
    for (var t=0; t<tags.length; t++) { 
	a.push(tags[t].title);
    }
    return a;
}
  else
    return []; 
} 

function getChildren(a){
  if(store.getTiddler(a)){
    return store.getTiddler(a).tags;
  }
  else
    return [];
}

function colorNode(nodename,color){
  var divName = canvasID + "_"+nodename; 
  var elem = document.getElementById(divName); 
  if(elem)elem.style.color = color; 
}

function colorParentsOf(node,color){ 
  var tags = getParents(node); 
  for (var t=0; t<tags.length; t++) { 
    colorNode(tags[t].title,color);
  } 
} 

function colorChildrenOf(node,color){ 
  var tags = getChildren(node); 
  for (var t=0; t<tags.length; t++) { 
    colorNode(tags[t],color);
  } 
} 

var createJSONTagMindMapNode = function(id){ 
	return "{\"id\":\"" + id+ "\", \"name\": \"" + id+ "\", \"data\":{}}";
	};
var createJSONTagMindMapNodes  = function(mylist) { 
									var res=""; 
                                    for (var t=0; t<mylist.length; t++){
										if(t != 0) res+= ",";
										res += createJSONTagMindMapNode(mylist[t]);

									} 
									return res;
								};
	
var createJSON = function(nodeid){
	if(!nodeid) return "{}";
    var children = getChildren(nodeid);
    var parents = getParents(nodeid);
    var json = "{ 'node': " + createJSONTagMindMapNode(nodeid) + ", ";
	json += "'children':[" + createJSONTagMindMapNodes(children)+ "],";
 	json += "'parents' :[ "+ createJSONTagMindMapNodes(parents)+ "]";
	json += "}";

	var myjson = eval("("+json+")");
	return myjson;
}


Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,unused,customFields,toggle)
{

if(!tiddlytagmindmapobject) config.macros.tiddlytagmindmap.handler();
	var title = (tiddler instanceof Tiddler)? tiddler.title : tiddler;
	var tiddlerElem = this.getTiddler(title);
	

if(tiddlytagmindmapobject){
	try{
	var res = tiddlytagmindmapobject.createNodeFromJSON(createJSON(title));
	if(res && tiddlytagmindmapobject.rgraph){
		tiddlytagmindmapobject.centerOnNode(title);
		tiddlytagmindmapobject.computeThenPlot();
	}
	}
	catch(e){
		console.log("exception: " + e);
	}
	
}
	if(tiddlerElem) {
		if(toggle)
			this.closeTiddler(title,true);
		else
			this.refreshTiddler(title,template,false,customFields);
	} else {
		var place = this.getContainer();
		var before = this.positionTiddler(srcElement);
		tiddlerElem = this.createTiddler(place,before,title,template,customFields);
	}
	if(srcElement && typeof srcElement !== "string") {
		if(config.options.chkAnimate && (animate == undefined || animate == true) && anim && typeof Zoomer == "function" && typeof Scroller == "function")
			anim.startAnimating(new Zoomer(title,srcElement,tiddlerElem),new Scroller(tiddlerElem));
		else
			window.scrollTo(0,ensureVisible(tiddlerElem));
	}


//if(store.getTiddlerText(title) == null) allowed = false; 

doColouring(title);
};

}}}

config.commands.newChild ={};

merge(config.commands.newChild,{
	text: "add child",
	tooltip: "Add child tiddler"});
	
config.commands.newChild.handler = function(event,src,title){
	
	clearMessage();
	var newTitle = prompt("Please name a child of this tiddler");
		if(!newTitle) return;
	var tags = [title];
	story.displayTiddler(null,newTitle,DEFAULT_EDIT_TEMPLATE,false,null,null);
	for(var t=0;t<tags.length;t++)
		story.setTiddlerTag(newTitle,tags[t],+1);
	story.focusTiddler(newTitle,config.options.txtEditorFocus||"text");
	
	return false;
};


config.commands.newParent ={};

merge(config.commands.newParent,{
	text: "add parent",
	tooltip: "Name and thus associate a parent with this tiddler"});
	
config.commands.newParent.handler = function(event,src,title){
	clearMessage();

	var newTitle = prompt("Please name a parent of this tiddler");
	
	if(!newTitle) return;
	var tags = [newTitle];
	
	/*update existing tiddler */
	config.commands.editTiddler.handler(event,src,title);
	var tiddlerElem = story.getTiddler(title);
	for(var t=0;t<tags.length;t++){
		story.setTiddlerTag(title,tags[t],+1);
	}
	config.commands.saveTiddler.handler(event,src,title);
	
	/*allowing editing of this new tiddler */
	if(story.getTiddler(newTitle) == null);
		story.displayTiddler(null,newTitle,null,false,null,null);
		
	config.commands.editTiddler.handler(event,src,newTitle);
	
	return false;

}



/***
!Layer 2: DynamicInteract: Extension of RGraph
***/
{{{

//tag mindmap constructor
var Tagmindmap = function(cid,ajaxURL,editNodeURL,clickFunction){

/*Generic  properties */
this.canvasID = cid; //the canvas object you want to load the graph into
this.graph_showCirclesFlag = false; //shows circles in the mind map
Config['levelDistance'] = 80; //in pixel
this.excludeNodeList = [];
this.ignoreLoneNodes = true;

/*individual Node properties and toolbar */
this.useDHTML = true;
this.nodeToolBar = true;
this.maxNodeNameLength = 0;

this.linkimg = "images/linkTo.gif"; //default link image

/*NODE options toolbar */
this.editNodeImageURL = "./images/edit.gif";
this.editNodeURL = editNodeURL;	
this.userCanDeleteNodes = true;	
this.toolbarDeleteImage = "./images/Close_24.gif";
this.toolbarDeleteFunction  = this.name + ".deleteNode";
this.labelContainer = "label_container";

		
/* AJAX CONFIGURATION */
this.ajaxURL=ajaxURL; //the ajax url to call when a user clicks a node
this.ajaxLoadingLabelID =Config.nodeLabelPrefix + Config.nodeLabelPrefix + "ajax";
this.ajaxLoadingContent = "loading.. "; 

						   
if(clickFunction)
  this.callWhenClickOnNode = clickFunction; //function taking one parameter node name
else
  this.callWhenClickOnNode = function(n){return};

/*define the function that will retrieve new nodes here! */
this.getNodeParentsAndChildren = function(nodeid){
                                 
								this.ajaxGetLatestNodes(nodeid);
								};

this.visualisationType = "RGRAPH"; //coming soon
this.defineGraphUtil();
//this.graph_index = {}; //allows you to look up a node id from its name
//this.graphloaded = false; //stores whether the graph has been loaded

this.thehiddenbridge = "RGRAPHTREEBRIDGE"; //a hidden node which bridges all dislocated nodes.
Config.nodeLabelPrefix = cid +"_";//labelIDPrefix; //allows 2 mind maps on same page, by making sure all divs use unique names


};

//tagmindmap class body
Tagmindmap.prototype = {
_toggleAjaxLoadingOn: function(){
var obj = document.getElementById(this.ajaxLoadingLabelID);

if(obj)
obj.style.display='';
},

_toggleAjaxLoadingOff: function(){
	var obj = document.getElementById(this.ajaxLoadingLabelID);
	
	if(obj)
	obj.style.display='none';
},

_createxmlhttp: function(){
   var xmlHttpReq = false;var self = this;

    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
       	/* if (self.xmlHttpReq.overrideMimeType) {
    		self.xmlHttpReq.overrideMimeType('text/xml');
    	} */
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }

    
return self.xmlHttpReq;
},



zoom: function(inc){
	Config['levelDistance'] = parseInt(Config['levelDistance']);
 	Config['levelDistance']+= inc;
	if(Config['levelDistance'] <= 0) Config['levelDistance']= 1;
	return Config['levelDistance'];
	
},	

_findItemInArray: function(item, arr) {

	for(i=0;i< arr.length;i++){
	  if(arr[i] == item) return true;
	}
	
	return false;
},

/*given a list of adjacencies removes any adjacencies that exist in graph for the node with nodeid that are not in the list*/
_purgeAllDeletedNodes: function(nodeid,expectedAdjacencies){
expectedAdjacencies.push(this.thehiddenbridge); //don't delete bridge here
	var fromNode = GraphUtil.getNode(this.graph,nodeid);
	for(var i = 0; i < fromNode.adjacencies.length; i++){
		var thisAdjacence = fromNode.adjacencies[i];
		if(thisAdjacence.nodeTo){
			
			if(!this._findItemInArray(thisAdjacence.nodeTo.id,expectedAdjacencies)){ //then adjacency should be removed
			this.deleteAdjacency(nodeid,thisAdjacence.nodeTo.id);
			//alert("deleted " + nodeid + "to " + thisAdjacence.nodeTo.id+" from " + expectedAdjacencies)
			}
		}

	}


},

createNodeFromJSON: function(json){

  if(json == {}) return;
var temp = false;
var res = false;
  var allNodeAdjacencies = new Array();
  
  var node1= json['node'];
						 if(json['parents']){ 
							  for(var i=0; i < json['parents'].length; i++){
							    var parent = json['parents'][i];
								//alert("draw " + parent['id'] + " to " + node1['id']);
								temp = this.drawEdge(parent['id'],node1['id'],parent['name'],node1['name'],parent['data'],node1['data']);
								res = temp | res;
								allNodeAdjacencies.push(parent['id']);
							  }
						  }

						if(json['children']){
							for(var i=0; i < json['children'].length; i++){
						    	var child = json['children'][i];
								temp = this.drawEdge(node1['id'],child['id'],node1['name'],child['name'],node1['data'],child['data']);
								allNodeAdjacencies.push(child['id']);
								res = temp | res;
						  	}
						}


	//is it an orphan with no kids?
	/* 
	this._fix_if_orphan(node1);
	*/
	if(json['children'] && json['parents']){
	 if(!this.ignoreLoneNodes && json['children'].length ==0 && json['parents'].length == 0)
	   temp = this.drawEdge(this.thehiddenbridge, node1['id'],null,node1['name'],null,node1['data']);
	res = temp | res;
	 }

return res;
},


									
performAjax: function(url,ajaxType, ajaxParams, on200,sync){

if(url.indexOf("?") > -1) url += "&stopCachingRandomNumber=" + Math.random();

if(!sync) sync = true;

	var obj = this;
	if(obj.ajaxfocusResultDIV) 	document.getElementById(obj.ajaxfocusResultDIV).innerHTML = "";	

				try{
				  
					obj._toggleAjaxLoadingOn();
					var xmlhttp = this._createxmlhttp();
					 xmlhttp.open(ajaxType, url ,sync); 
					
					 if(ajaxType == "POST"){
						xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
						xmlhttp.setRequestHeader("Content-length", ajaxParams.length);
						xmlhttp.setRequestHeader("Connection", "close");	
					}

					 xmlhttp.onreadystatechange=function() {

							  if (xmlhttp.readyState==4) {			  
						
									on200(xmlhttp.responseText,xmlhttp.status); 
									obj._toggleAjaxLoadingOff();
						 	  }
					};
					 xmlhttp.send(ajaxParams);
					if(!sync) {
					  on200(xmlhttp.responseText,xmlhttp.status);
					  obj._toggleAjaxLoadingOff();
					
					}
					
				}
				catch(e){
					alert(e);
					if(sync) obj._toggleAjaxLoadingOff();
				}
				


},


/*retrieves new nodes from database */
ajaxGetLatestNodes: function (id_no_prefix,sync){

	var obj = this;
	if(obj.ajaxURL){
		url = obj.ajaxURL+id_no_prefix;
	  
		var f = function(response){
			if(response != "{}") {				   
				var json= {};
				try{
					json= eval("("+response+")");
					obj.createNodeFromJSON(json);
					if(obj.ajaxURL !=null)
	     				obj.computeThenPlot();

				}
				catch(e){}
			}
								    			
		  };
	  
		this.performAjax(url,"GET",null,f,sync);
		
	}	

},

/* Allows you to add data to the mind map */
ajaxPost: function (params, url){


var obj = this;
var f =  function(response){
		};
this.performAjax(url,"POST",params,f,false);
obj.getNodeParentsAndChildren(obj.getCurrentNodeID());

},



centerOnNode:function(id){

	if(this.getCurrentNodeID() == id) return;

	/* 
	this.rgraph.unflagRoot();
	
	try{
	this.rgraph.flagRoot(id);
	
	}catch(e){
	}*/
	var oldId = this.rgraph_currentNode;
	this.rgraph_currentNode = id;
	//
	
	
	try{
	this.rgraph.onClick(id);
	
	}
	catch(e){
	this.rgraph_currentNode = oldId;
	}



},

getCurrentNodeID: function(){
if(this.rgraph_currentNode == this.thehiddenbridge) return "";
else return this.rgraph_currentNode;
},

setNodeURL: function(nodeid, url){
this.graph.nodes[nodeid].data.url = url;

},


getNodeName: function(nodeid){
	if(this.graph.nodes[nodeid])
		return this.graph.nodes[nodeid].name;
	else
		return "";
},


setNodeName: function(nodeid,newName){
if(this.graph.nodes[nodeid].name != newName){
this.graph.nodes[nodeid].name = newName;

if(this.thehiddenbridge != nodeid && this.graph_index) this.graph_index[newName] = nodeid;
 
//this.computeThenPlot();
}
},

getNodeData: function(id,data){
return this.graph.nodes[id].data;
},

setNodeData: function(id,data){
this.graph.nodes[id].data = data;
},

_nodeInExcludeList: function(id){
	return this._findItemInArray(id,this.excludeNodeList);
},

drawEdge: function(id_a,id_b,name_a,name_b,data_a,data_b){

if(this._nodeInExcludeList(id_a) || this._nodeInExcludeList(id_b)) return;
plotNeeded=false;


if(id_a != "" && id_b != ""){

  plotNeeded = this._make_connection(id_a,id_b,name_a);

  if(name_a){this.setNodeName(id_a,name_a);}
  if(name_b){this.setNodeName(id_b,name_b);}

	
  if(data_a) {this.setNodeData(id_a,data_a); }
  if(data_b) {this.setNodeData(id_b,data_b);}

}  

//if(plotNeeded)
  //this.computeThenPlot();
return plotNeeded;
},

_fix_if_orphan: function(node){
	var obj = this;
	var bridge = this.thehiddenbridge;
	var parents = this.graphUtil.getParents(this.graph,node);
	//var children = GraphUtil.getChildren(this.graph,node);
	//if(parents.length == 0) //it is orphaned
	
	//basically should always have at least one parent even if a bridge..
	obj.drawEdge(bridge,node.id);	
},

_clearAdjacency: function(node, adj){
	//clear from
	
var fromNode = GraphUtil.getNode(this.graph,node);

	if(fromNode){
		var newAdj = new Array();
		//something going wrong here!

		//look at adjacencies for the node
		for(var i = 0; i < fromNode.adjacencies.length; i++){
		var thisAdjacence = fromNode.adjacencies[i];
		//Graph.Adjacence object = thisAdjacence
			if(thisAdjacence.nodeTo){
			  	if(thisAdjacence.nodeTo.id != adj){ //then adjacency is okay.
				  newAdj.push(fromNode.adjacencies[i]);
				}
			}

		  }
		fromNode.adjacencies = newAdj;
		//alert(node.adjacencies.toSource());
		
		//alert(this.graph.nodes[node.id].toSource());

		this._fix_if_orphan(fromNode);
	}	  
	},

deleteAdjacency: function(from,to){

if(from && to){
	this._clearAdjacency(from,to);
	this._clearAdjacency(to,from);
	//this.computeThenPlot(); 
}

},

deleteNode: function(a){
var obj = this;
var bridge = this.thehiddenbridge;
var newCenter = null;

nodeToDelete = a;

this.graphUtil.eachNode(this.graph, function(node){
  
	  obj._clearAdjacency(node, a);
	  newCenter = node.id;
	  obj._fix_if_orphan(node);

});
//delete this.graph.nodes[nodeToDelete];

if(newCenter == null)
	this.rgraph_currentNode = newCenter;
else
	obj.rgraph_currentNode = this.thehiddenbridge;
	
delete this.graph.nodes[nodeToDelete];

document.getElementById(Config.nodeLabelPrefix +nodeToDelete).style.display = 'none'; //disable the item holding this

//this.computeThenPlot();

},

_make_connection: function(a,b){

  this._setupMapIfNeeded(a);

  //in here make sure you check that the edge doesn't already exist.
  var node1, node2; 
  var drawn = false;

  node1 = this.graphUtil.getNode(this.graph,a)  
  node2 = this.graphUtil.getNode(this.graph,b)  
 
  //check if adjacent
  if(node1 != null && node2 !=null){
	if(node1.adjacentTo(node2)) {return false;}

  }
  

  //if neither node is currently in tree, then we need to create a "bridge" to connect the trees
  if(node1 == null && node2 == null) {this._make_connection(this.thehiddenbridge,a);

  }

  if(node1 == null) {node1= new Graph.Node(a,a,[]);drawn= true; }
  if(node2 == null) {node2= new Graph.Node(b,b,[]);drawn= true; }
  
  //node1.drawn =true;
  //node2.drawn = true;
  //create the link
  if(!node1.adjacentTo(node2)){
	this.graph.addAdjacence(node1,node2);
	this._disconnectFromBridgeWhereRequired();
	return true;
 }

  


},
computeThenPlot: function(){
var ajaxload = document.getElementById(this.ajaxLoadingLabelID);
var labels = document.getElementById(this.labelContainer);
labels.style.display = "block";
var loadNotInProgress = true;

/*
if(ajaxload){
	if(ajaxload.style.display != "none") loadNotInProgress = false;
}
*/

if(loadNotInProgress){
  this.rgraph.compute();;
  this.rgraph.plot(); //problem in plot…
 }
},

_trimNodeName: function(node_name){
	if(this.maxNodeNameLength ==0) return "<span>&nbsp;&nbsp;&nbsp;</span>";
	if(this.maxNodeNameLength){
		var nlength = this.maxNodeNameLength;

		  if(node_name.length > nlength)
		    return node_name.substr(0,nlength/2) + "..." + node_name.substr(node_name.length-nlength/2,node_name.length);
		  else
		    return node_name;
	}
	return node_name;
},

_getController: function(){

  var tagmindmapobj = this;
    var effectHash = {};
  var controller =  {
  	onBeforeCompute: function(node) {
		
  	},

  	getName: function(node1, node2) {
  		for(var i=0; i<node1.data.length; i++) {
  			var dataset = node1.data[i];
  			if(dataset.key == node2.name) return dataset.value;
  		}
  		
		for(var i=0; i<node2.data.length; i++) {
  			var dataset = node2.data[i];
  			if(dataset.key == node1.name) return dataset.value;
  		}
  	},
  	
	
  //Add a controller to assign the node's name to the created label.	
  	onCreateLabel: function(domElement, node) {
		if(node.id != this.thehiddenbridge)
			tagmindmapobj.rgraph_currentNode = node.id;	
			
		var clickfunction = function(e){
						tagmindmapobj.rgraph.onClick(node.id);
				  	  	if(node.id != this.thehiddenbridge){
						  tagmindmapobj.rgraph_currentNode = node.id;	 
						}  
				
		  };

	//define on click event
	
	    if(domElement.addEvent){
		//dblclick
			domElement.addEvent('click',clickfunction);
		}
		else {
		  domElement.onclick = clickfunction;

		}

  	},
  	
  	//Take off previous width and height styles and
  	//add half of the *actual* label width to the left position
  	// That will center your label (do the math man). 
  	onPlaceLabel: function(domElement, node) {
	
		domElement.innerHTML = '';
 
			if(node.id != tagmindmapobj.thehiddenbridge){
			
				if(node.data){
				var img;
					if(node.data.linkimg) img = node.data.linkimg;
					else img = tagmindmapobj.linkimg;

						
					if(node.data.url){
						var tooltip =node.data.url;
						if(node.data.tooltip)
							tooltip = node.data.tooltip;
					  if(tagmindmapobj.useDHTML)
					    linky = "<a href=\"#\" onClick=\"openmypage('"+node.name + "', '" + node.data.url + "'); return false\"><img src='"+img+"' border='0' alt='(link)'></a>";
					  else
					    linky = "<a href=\"" + node.data.url + "\"><img src='"+img+"' border='0' title='" + tooltip+ "'></a>";
	    			  //linky = " <a href='" + node.data.url + "' target='"+tagmindmapobj.linktarget+"'><img src='"+img+"' border='0' alt='(link)'></a>"
		     		}
		     		else
					  linky = "";
					 
					if(tagmindmapobj.userCanDeleteNodes)
						linky += "<a href=\"javascript:" + tagmindmapobj.toolbarDeleteFunction + "('" + node.id+"');\"><img src='" + tagmindmapobj.toolbarDeleteImage + "' alt='delete' border='0'></a>";
					
					if(tagmindmapobj.nodeToolBar){
					  editURL =tagmindmapobj.editNodeURL + node.id ;
					  linky += "&nbsp;<a href=\"#\" onClick=\"openmypage('Edit: "+node.name + "', '" + editURL+"'); return false\"><img src='"+ tagmindmapobj.editNodeImageURL + "' alt='edit this node' border='0'></a>";
					}

				}
				if(node.data.color) domElement.style.color = node.data.color;
				if(node.data.weight) domElement.style.fontSize = node.data.weight;
					  
				var trimmedName = tagmindmapobj._trimNodeName(node.name);

				domElement.innerHTML = "<span title='" + node.name +"'>" + trimmedName + "</span>" + linky;
				
				
				
			}
			else domElement.style.display = "none";

			
			var left = parseInt(domElement.style.left);
			domElement.style.width = '';
			domElement.style.height = '';
			var w = domElement.offsetWidth;
			domElement.style.left = (left - w /2) + 'px';


	},
	
	onAfterCompute: function() {
 
						  if(tagmindmapobj.rgraph_currentNode != tagmindmapobj.thehiddenbridge){
						    tagmindmapobj.callWhenClickOnNode(tagmindmapobj.rgraph.graph.nodes[tagmindmapobj.rgraph_currentNode]);
						  }
		if(tagmindmapobj.ajaxfocusResultDIV){
		document.getElementById(tagmindmapobj.ajaxfocusResultDIV).innerHTML = "Please wait while node details are loaded...";
		}
		tagmindmapobj.getNodeParentsAndChildren(tagmindmapobj.getCurrentNodeID());


	},
	
	onBeforePlotLine: function(adj){
	//alert("!");
	  lineW = tagmindmapobj.canvas.getContext().lineWidth;  
      nodeid = adj.nodeFrom.id;
	  nodeid2 = adj.nodeTo.id;
	  if(nodeid == tagmindmapobj.thehiddenbridge || nodeid2 == tagmindmapobj.thehiddenbridge){tagmindmapobj.canvas.getContext().lineWidth = "0";}
	  else tagmindmapobj.canvas.getContext().lineWidth = "1";

	},
	
	onAfterPlotLine: function(adj){
	
	}
  	
  };
  
  return controller;

},

//if the map needs to be setup, the first node will be created with id and name given in parameters
_setupMapIfNeeded: function(lastOpenNode){

var isST = false, isHypertree=false, isRGRAPH = false;
if(this.visualisationType =="ST") isST = true;
else if(this.visualisationType =="HYPERTREE") isHypertree = true;
else isRGRAPH = true;		

var ctx = document.getElementById(this.canvasID).getContext;
if(!ctx) {console.log("no context available! Bad IE bad!");}

if(this.graphloaded) return;
this.graphloaded = true;
this.rgraph_currentNode =lastOpenNode;


   var json = {"id":this.thehiddenbridge, "name":this.thehiddenbridge, "children":[{"id":lastOpenNode,"name":lastOpenNode, "data":[], "children":[]}],"data":[]};
		
	//Create canvas instance with canvas id, fill and stroke colors.

          this.canvas= new Canvas(this.canvasID, '#ccddee', '#772277'); 
		  controller = this._getController();
		
         
		 
		  /*
		  if(isST){
		  this.rgraph = new ST(this.canvas,controller)
		  this.graph = eval(json.toSource()); 
		  this.graph_nodes = this.rgraph.graph.nodes;
		  }*/
		this.rgraph= new RGraph(this.canvas, controller);
		this.graph = this.rgraph.graph;	  

		  
	 Config['drawConcentricCircles'] = this.graph_showCirclesFlag;
	 


  
  
  //load graph from tree data.
  this.rgraph.loadTreeFromJSON(json);

  this.rgraph.root = lastOpenNode;
//	this.rgraph.onClick(lastOpenNode);
  //this.centerOnNode(lastOpenNode);
  
  //this.rgraph.controller.onBeforeCompute(this.graphUtil.getNode(this.graph, this.rgraph.root));
  //this.rgraph.controller.onAfterCompute();
  this.createAjaxDiv();


},

createAjaxDiv: function(){
  ajaxtag = document.createElement('div');
  var container = document.getElementById(Config.labelContainer);
  container.appendChild(ajaxtag);
  
  ajaxtag.id = this.ajaxLoadingLabelID;
  ajaxtag.innerHTML = this.ajaxLoadingContent;
  ajaxtag.style.display = "none";

},



colorNode: function(nodeid,color){

  if(this.graph.nodes[nodeid]){
  this.graph.nodes[nodeid].data.color = color; 
  //var elem = document.getElementById(getFriendlyName(divName)); 
  //if(elem)elem.style.color = color; 
  }
},

drawExampleTree: function(){


this.drawEdge('earth','europe',null,null,{'url':'http://www.google.co.uk', 'weight':'24px','color':'blue', 'linkimg':'images/linkTo.gif'});

this.drawEdge('earth','asia');


this.drawEdge('europe','uk',null,null,{'url':'http://www.yahoo.co.uk', 'weight':'24px','color':'red', 'linkimg':'images/linkTo.gif'});
this.drawEdge('europe','france');
this.drawEdge('europe','spain');
this.drawEdge('europe','germany');
this.drawEdge('europe','russia');

this.drawEdge('asia','russia');
this.drawEdge('asia','vietnam');
this.drawEdge('asia','china');
this.drawEdge('asia','india');

this.drawEdge('france','lille');
this.drawEdge('france','paris');

this.centerOnNode('earth');
},

_disconnectFromBridgeWhereRequired: function(){
    //check the bridge doesn't connect to things it shouldn't to any more
	//this.thehiddenbridge;
	var bridge = this.graph.nodes[this.thehiddenbridge];

	for(var i = 0; i < bridge.adjacencies.length; i++){
			var id = bridge.adjacencies[i];
			var node = this.graph.nodes[id];
			if(node){
				var parents = this.graphUtil.getParents(this.graph,node);
				if(parents.length > 1) {//it has more parents then just the bridge
					this.deleteAdjacency(this.thehiddenbridge,node.id);	
				}
			}
	}


},
clear: function(){
var labels = document.getElementById(this.labelContainer);
labels.style.display ="none";
this.canvas.clear();
//this.rgraph.graph.nodes = {};
//this.graphloaded = false;

},

defineGraphUtil: function(){
var obj = this;
this.graphUtil = GraphUtil;

}



};

}}}

/***
!Layer 3: RGraph (JIT)
***/
{{{
	
/*
 * File: RGraph.js
 * 
 * Author: Nicolas Garcia Belmonte
 * 
 * Copyright: Copyright 2008 by Nicolas Garcia Belmonte.
 * 
 * License: BSD License
 * 
 * * Copyright (c) 2008, Nicolas Garcia Belmonte
 * All rights reserved.
 *
 * 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 the [[organization|Organisation]] 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 Nicolas Garcia Belmonte ``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 Nicolas Garcia Belmonte 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.
 * 
 * Homepage: <http://thejit.org>
 * 
 * Version: 1.0a
 */

/*
   Object: $_

   Provides some common utility functions.
*/
var $_ = {
	fn: function() { return function() {}; },

	merge: function(){
		var mix = {};
		for (var i = 0, l = arguments.length; i < l; i++){
			var object = arguments[i];
			if (typeof object != 'object') continue;
			for (var key in object){
				var op = object[key], mp = mix[key];
				mix[key] = (mp && typeof op == 'object' && typeof mp == 'object') ? this.merge(mp, op) : this.unlink(op);
			}
		}
		return mix;
	},

	unlink: function (object){
		var unlinked = null;
		
		switch (typeof object){
			case 'object':
				unlinked = {};
				for (var p in object) unlinked[p] = this.unlink(object[p]);
			break;
			case 'array':
				unlinked = [];
				for (var i = 0, l = object.length; i < l; i++) unlinked[i] = this.unlink(object[i]);
			break;
			default: return object;
		}
		
		return unlinked;
	}
} ;


/*
   Class: Canvas

   A multi-purpose Canvas object decorator.
*/

/*
   Constructor: Canvas

   Canvas initializer.

   Parameters:

      canvasId - The canvas tag id.
      fillStyle - (optional) fill color style. Default's to black
      strokeStyle - (optional) stroke color style. Default's to black

   Returns:

      A new Canvas instance.
*/
var Canvas= function (canvasId, fillStyle, strokeStyle) {
	//browser supports canvas element
		this.canvasId= canvasId;
		this.fillStyle = fillStyle;
		this.strokeStyle = strokeStyle;
		//canvas element exists
		if((this.canvas= document.getElementById(this.canvasId)) 
			&& this.canvas.getContext) {
		      this.ctx = this.canvas.getContext('2d');
		      this.ctx.fillStyle = fillStyle || 'black';
		      this.ctx.strokeStyle = strokeStyle || 'white';
			  this.setPosition();
			  this.translateToCenter();
		
		} else {
			throw "RGraph canvas: Canvas object could not initialize.";
		}
	
};


Canvas.prototype= {
	/*
	   Method: getContext

	   Returns:
	
	      Canvas context handler.
	*/
	getContext: function () {
		return this.ctx;
	},

	/*
	   Method: setPosition
	
	   Calculates canvas absolute position on HTML document.
	*/	
	setPosition: function() {
		var obj= this.canvas;
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			curleft = obj.offsetLeft
			curtop = obj.offsetTop
			while (obj = obj.offsetParent) {
				curleft += obj.offsetLeft
				curtop += obj.offsetTop
			}
		}
		this.position= { x: curleft, y: curtop };
	},

	/*
	   Method: getPosition

	   Returns:
	
	      Canvas absolute position to the HTML document.
	*/
	getPosition: function() {
		return this.position;
	},

	/*
	   Method: clear
	
	   Clears the canvas object.
	*/		
	clear: function () {
		this.ctx.clearRect(-this.getSize().x / 2, -this.getSize().x / 2, this.getSize().x, this.getSize().x);
	},

	/*
	   Method: drawConcentricCircles
	
	   Draws concentric circles. Receives an integer specifying the number of concentric circles.
	*/		
	drawConcentricCircles: function (elem) {
		var config = Config;
		var times = elem || 6;
		var c = this.ctx;
		c.strokeStyle = config.concentricCirclesColor;
		var pi2 = Math.PI*2;
		for(var i=1; i<=times; i++) {
		    c.beginPath();
		  	c.arc(0, 0, (i*config.levelDistance), 0, pi2, true);
		  	c.stroke();
			c.closePath();
		}
		c.strokeStyle = this.strokeStyle;
	},
	
	/*
	   Method: translateToCenter
	
	   Translates canvas coordinates system to the center of the canvas object.
	*/
	translateToCenter: function() {
		this.ctx.translate(this.canvas.width / 2, this.canvas.height / 2);
	},
	

	/*
	   Method: getSize

	   Returns:
	
	      An object that contains the canvas width and height.
	      i.e. { x: canvasWidth, y: canvasHeight }
	*/
	getSize: function () {
		var width = this.canvas.width;
		var height = this.canvas.height;
		return { x: width, y: height };
	},
	
	/*
	   Method: path
	   
	  Performs a _beginPath_ executes _action_ doing then a _type_ ('fill' or 'stroke') and closing the path with closePath.
	*/
	path: function(type, action) {
		this.ctx.beginPath();
		action(this.ctx);
		this.ctx[type]();
		this.ctx.closePath();
	}
	
};


/*
   Class: Complex
	
	 A multi-purpose Complex Class with common methods.

*/


/*
   Constructor: Complex

   Complex constructor.

   Parameters:

      re - A real number.
      im - An real number representing the imaginary part.


   Returns:

      A new Complex instance.
*/
var Complex= function() {
	if (arguments.length > 1) {
		this.x= arguments[0];
		this.y= arguments[1];
		
	} else {
		this.x= null;
		this.y= null;
	}
	
}

Complex.prototype= {
	/*
	   Method: clone
	
	   Returns a copy of the current object.
	
	   Returns:
	
	      A copy of the real object.
	*/
	clone: function() {
		return new Complex(this.x, this.y);
	},

	/*
	   Method: toPolar
	
	   Transforms cartesian to polar coordinates.
	
	   Returns:
	
	      A new <Polar> instance.
	*/
	
	toPolar: function() {
		var rho = this.norm();
		var atan = Math.atan2(this.y, this.x);
		if(atan < 0) atan += Math.PI * 2;
		return new Polar(atan, rho);
	},
	/*
	   Method: norm
	
	   Calculates the complex norm.
	
	   Returns:
	
	      A real number representing the complex norm.
	*/
	norm: function () {
		return Math.sqrt(this.squaredNorm());
	},
	
	/*
	   Method: squaredNorm
	
	   Calculates the complex squared norm.
	
	   Returns:
	
	      A real number representing the complex squared norm.
	*/
	squaredNorm: function () {
		return this.x*this.x + this.y*this.y;
	},

	/*
	   Method: add
	
	   Returns the result of adding two complex numbers.
	   Does not alter the original object.

	   Parameters:
	
	      pos - A Complex initialized instance.
	
	   Returns:
	
	     The result of adding two complex numbers.
	*/
	add: function(pos) {
		return new Complex(this.x + pos.x, this.y + pos.y);
	},

	/*
	   Method: prod
	
	   Returns the result of multiplying two complex numbers.
	   Does not alter the original object.

	   Parameters:
	
	      pos - A Complex initialized instance.
	
	   Returns:
	
	     The result of multiplying two complex numbers.
	*/
	prod: function(pos) {
		return new Complex(this.x*pos.x - this.y*pos.y, this.y*pos.x + this.x*pos.y);
	},

	/*
	   Method: conjugate
	
	   Returns the conjugate por this complex.

	   Returns:
	
	     The conjugate por this complex.
	*/
	conjugate: function() {
		return new Complex(this.x, -this.y);
	},


	/*
	   Method: scale
	
	   Returns the result of scaling a Complex instance.
	   Does not alter the original object.

	   Parameters:
	
	      factor - A scale factor.
	
	   Returns:
	
	     The result of scaling this complex to a factor.
	*/
	scale: function(factor) {
		return new Complex(this.x * factor, this.y * factor);
	},

	/*
	   Method: $add
	
	   Returns the result of adding two complex numbers.
	   Alters the original object.

	   Parameters:
	
	      pos - A Complex initialized instance.
	
	   Returns:
	
	     The result of adding two complex numbers.
	*/
	$add: function(pos) {
		this.x += pos.x; this.y += pos.y;
		return this;	
	},
	
	/*
	   Method: $prod
	
	   Returns the result of multiplying two complex numbers.
	   Alters the original object.

	   Parameters:
	
	      pos - A Complex initialized instance.
	
	   Returns:
	
	     The result of multiplying two complex numbers.
	*/
	$prod:function(pos) {
		var x = this.x, y = this.y
		this.x = x*pos.x - y*pos.y;
		this.y = y*pos.x + x*pos.y;
		return this;
	},
	
	/*
	   Method: $conjugate
	
	   Returns the conjugate for this complex.
	   Alters the original object.

	   Returns:
	
	     The conjugate for this complex.
	*/
	$conjugate: function() {
		this.y = -this.y;
		return this;
	},
	
	/*
	   Method: $scale
	
	   Returns the result of scaling a Complex instance.
	   Alters the original object.

	   Parameters:
	
	      factor - A scale factor.
	
	   Returns:
	
	     The result of scaling this complex to a factor.
	*/
	$scale: function(factor) {
		this.x *= factor; this.y *= factor;
		return this;
	},
	
	/*
	   Method: $div
	
	   Returns the division of two complex numbers.
	   Alters the original object.

	   Parameters:
	
	      pos - A Complex number.
	
	   Returns:
	
	     The result of scaling this complex to a factor.
	*/
	$div: function(pos) {
		var x = this.x, y = this.y;
		var sq = pos.squaredNorm();
		this.x = x * pos.x + y * pos.y; this.y = y * pos.x - x * pos.y;
		return this.$scale(1 / sq);
	}
};

/*
   Class: Polar

   A multi purpose polar representation.

*/

/*
   Constructor: Polar

   Polar constructor.

   Parameters:

      theta - An angle.
      rho - The norm.


   Returns:

      A new Polar instance.
*/

var Polar = function(theta, rho) {
	this.theta = theta;
	this.rho = rho;
};

Polar.prototype = {
	/*
	   Method: clone
	
	   Returns a copy of the current object.
	
	   Returns:
	
	      A copy of the real object.
	*/
	clone: function() {
		return new Polar(this.theta, this.rho);
	},

	/*
	   Method: toComplex
	
	    Translates from polar to cartesian coordinates and returns a new <Complex> instance.
	
	   Returns:
	
	      A new Complex instance.
	*/
	toComplex: function() {
		return new Complex(Math.cos(this.theta), Math.sin(this.theta)).$scale(this.rho);
	},

	/*
	   Method: add
	
	    Adds two <Polar> instances.
	
	   Returns:
	
	      A new Polar instance.
	*/
	add: function(polar) {
		return new Polar(this.theta + polar.theta, this.rho + polar.rho);
	},
	
	/*
	   Method: scale
	
	    Scales a polar norm.
	
	   Returns:
	
	      A new Polar instance.
	*/
	scale: function(number) {
		return new Polar(this.theta, this.rho * number);
	},
	
	/*
	   Method: $add
	
	    Adds two <Polar> instances affecting the current object.
	
	   Returns:
	
	      The changed object.
	*/
	$add: function(polar) {
		this.theta = this.theta + polar.theta; this.rho += polar.rho;
		return this;
	},

	/*
	   Method: $madd
	
	    Adds two <Polar> instances affecting the current object. The resulting theta angle is modulo 2pi.
	
	   Returns:
	
	      The changed object.
	*/
	$madd: function(polar) {
		this.theta = (this.theta + polar.theta) % (Math.PI * 2); this.rho += polar.rho;
		return this;
	},

	
	/*
	   Method: $scale
	
	    Scales a polar instance affecting the object.
	
	   Returns:
	
	      The changed object.
	*/
	$scale: function(number) {
		this.rho *= number;
		return this;
	},
	
	/*
	   Method: interpolate
	
	    Calculates a polar interpolation between two points at a given delta moment.
	
	   Returns:
	
	      A new Polar instance representing an interpolation between _this_ and _elem_
	*/
	interpolate: function(elem, delta) {
		var pi2 = Math.PI * 2;
		var ch = function(t) {
			return (t < 0)? (t % pi2) + pi2 : t % pi2;
		};
		var tt = ch(this.theta) , et = ch(elem.theta);
		var sum;
		if(Math.abs(tt - et) > Math.PI) {
			if(tt - et > 0) {
				sum =ch((et + ((tt - pi2) - et)* delta)) ;
			} else {
				sum =ch((et - pi2 + (tt - (et - pi2))* delta));
			}
			
		} else {
				sum =ch((et + (tt - et)* delta)) ;
		}
		var  t = (sum);
		var r = (this.rho - elem.rho) * delta + elem.rho;
		return new Polar(t, r);
	}
};




/*
   Object: Config

   <RGraph> global configuration object. Contains important properties to enable customization and proper behavior for the <RGraph>.
*/

var Config= {
		//Property: labelContainer
		//Id for label container. The label container is a div dom element that must be explicitly added to your page in order to enable the RGraph.
		labelContainer: 'label_container',
		
		nodeLabelPrefix: "rgraph_",
		//Property: drawConcentricCircles
		//show/hide concentricCircles
		drawConcentricCircles: true,
		
		//Property: concentricCirclesColor
		//The color of the concentric circles
		concentricCirclesColor: '#444',

		//Property: levelDistance
		//The actual distance between levels
		levelDistance: 200,
		
		//Property: nodeRadius
		//The radius of the nodes displayed
		nodeRadius: 4,
		
		//Property: allowVariableNodeDiameters
		//Set this to true if you want your node diameters to be proportional to you first dataset object value property (i.e _data[0].value_).
		//This will allow you to represent weighted tree/graph nodes.
		allowVariableNodeDiameters: false,
		
		//Property: nodeRangeDiameters
		//Diameters range. For variable node weights.
		nodeRangeDiameters: {
			min: 10,
			max: 35
		},
			
		//Property: nodeRangeValues
		// The interval of the values of the first object of your dataSet.
		// A superset of the values can also be specified.
		nodeRangeValues: {
			min: 1,
			max: 35
		},

		//Property: fps
		//animation frames per second
		fps:35,
		
		//Property: animationTime
		animationTime: 1500,
		
		//Property: interpolation
		interpolation: 'other'
};

/*
   Object: GraphUtil

   A multi purpose object to do graph traversal and processing.
*/

var GraphUtil = {
	/*
	   Method: eachNode
	
	   Iterates over graph nodes performing an action.
	*/
	eachNode: function(graph, action) {
		for(var i in graph.nodes) action(graph.nodes[i]);
	},
	
	/*
	   Method: getNode
	
	   Returns a node from a specified id.
	*/
	getNode: function(graph, id) {
		return graph.nodes[id];
	},
	
	/*
	   Method: eachAdjacency
	
	   Iterates over a _node_ adjacencies applying the _action_ function.
	*/
	eachAdjacency: function(graph, node, action) {
		for(var i=0, adjs = node.adjacencies; i<adjs.length; i++) action(adjs[i], i);
	},

	/*
	   Method: eachBFS
	
	   Performs a BFS traversal of a graph beginning by the node of id _id_ and performing _action_ on each node.
	*/
	eachBFS: function(graph, id, action) {
		var that = this;
		GraphUtil.clean(graph);
		var queue = [this.getNode(graph, id)];
		while(queue.length != 0) {
			var node = queue.pop();
			node._flag = true;
			action(node, node._depth);
			for(var i=0, adj = node.adjacencies; i<adj.length; i++) {
				var n = adj[i].nodeTo;
				if(n._flag == false) {
					n._depth = node._depth + 1;
					queue.unshift(n);
				}
			}
		}
	},
	
	/*
	   Method: eachSubnode
	
	   After a BFS traversal the _depth_ property of each node has been modified. Now the graph can be traversed as a tree. This method iterates for each subnode that has depth larger than the specified node.
	*/
	eachSubnode: function(graph, node, action) {
		var d = node._depth;
		for(var i=0, ad = node.adjacencies; i<ad.length; i++) {
			var n = ad[i].nodeTo;
			if(n._depth > d) action(n);
		}
	},

	/*
	   Method: getParents
	
	   Returns all nodes having a depth that is less than the node's depth property.
	*/
	getParents: function(graph, node) {
		var adj = node.adjacencies;
		var ans = new Array();
		for(var i=0; i<adj.length; i++) {
			var n = adj[i].nodeTo;
			if(n._depth < node._depth) ans.push(n);
		}
		return ans;
	},
	
	/*
	   Method: clean
	
	   Cleans flags from nodes (by setting the _flag_ property to false).
	*/
	clean: function(graph) { this.eachNode(graph, function(elem) { elem._flag = false; }); }
	
};

/*
   Object: GraphPlot

   An object that performs specific radial layouts for a generic graph structure.
*/
var GraphPlot = {
	//Property: labelsHidden
	//A flag value indicating if node labels are being displayed or not.
	labelsHidden: false,
	displacement: {'x':0, 'y':0},

	/*
	   Method: hideLabels
	
	   Hides all labels.
	*/
	hideLabels: function (hide) {
		var container = document.getElementById(Config.labelContainer);
		if(hide) container.style.display = 'none';
		else container.style.display = '';
		this.labelsHidden = hide;
	},

	/*
	   Method: animate
	
	   Animates the graph mantaining a radial layout.
	*/
	animate: function(graph, id, canvas, controller) {
		var that = this;
		this.hideLabels(true);
		var comp = function(from, to, delta){ return (to.$add(from.scale(-1))).$scale(delta).$add(from); };
		var compPolar = function(from, to, delta){ 
			var p = to.interpolate(from, delta);
			return p;
		};
		//can also interpolate polar coordinates.
		var interpolate = function(elem, delta) {
			if(Config.interpolation == 'polar') {
				var from = elem.startPos;
				var to = elem.endPos;
				elem.pos = compPolar(from, to, delta);
			} else {
				var from = elem.startPos.toComplex();
				var to = elem.endPos.toComplex();
				elem.pos = comp(from, to, delta).toPolar();
			}

		};
		var animationController = {
			compute: function(delta) {
				canvas.clear();
				if(Config.drawConcentricCircles) canvas.drawConcentricCircles(Config.drawConcentricCircles);
				GraphUtil.eachNode(graph, function(node) { interpolate(node, delta); });
				that.plot(graph, id, canvas, controller);
			},
			
			complete: function() {
				that.hideLabels(false);
				GraphUtil.eachNode(graph, function(elem) {elem.startPos = elem.pos});
				that.plot(graph, id, canvas, controller);
				controller.onAfterCompute();
			}		
		};
		var that = this;
		Animation.controller = animationController;
		Animation.start();
	},

	/*
	   Method: plot
	
	   Plots a Graph.
	*/
	plot: function(graph, id, canvas, controller) {
		var aGraph = graph;
		var that = this;
		canvas.clear();
		if(Config.drawConcentricCircles) canvas.drawConcentricCircles();
		GraphUtil.clean(graph);
		GraphUtil.eachBFS(aGraph, id, function(node) {
			GraphUtil.eachAdjacency(aGraph, node, function(adj) {
				if(!adj.nodeTo._flag) {
					controller.onBeforePlotLine(adj);
					that.plotLine(adj, canvas);
					controller.onAfterPlotLine(adj);
				}
			});
			that.plotNode(node, canvas);
	 		if(!that.labelsHidden) that.plotLabel(canvas, node, controller);
			node._flag = true;
		});
	},
	
	
	/*
	   Method: plotNode
	
	   Plots a graph node.
	*/
	plotNode: function(node, canvas) {
		var pos = node.pos.toComplex();
		var dx = this.displacement.x; var dy = this.displacement.y;
		try{
		canvas.path('fill', function(context) {
	  		//jon add
	  		context.arc(pos.x +dx, pos.y +dy, node._radius, 0, Math.PI*2, true);	

		});

			  		}
	  		catch(e){console.log(e);}		
	},
	
	/*
	   Method: plotLine
	
	   Plots a line connecting _node_ and _child_ nodes.
	*/
	plotLine: function(adj, canvas) {
		
		var dx = this.displacement.x; var dy = this.displacement.y; //jon hack
		var node = adj.nodeFrom, child = adj.nodeTo;
		var pos = node.pos.toComplex();
		var posChild = child.pos.toComplex();
		canvas.path('stroke', function(context) {
			context.moveTo(pos.x+dx, pos.y+dy);
		  	context.lineTo(posChild.x+dx, posChild.y+dy);
		});
	},
	
	/*
	   Method: plotLabel
	
	   Plots a label for a given node.
	*/
	plotLabel: function(canvas, node, controller) {
		
		var dx = this.displacement.x; var dy = this.displacement.y;
		
		//canvas.setPosition();
		var size = node._radius;
		var id = Config.nodeLabelPrefix + node.id;
		var tag = false;
		if(!(tag = document.getElementById(id))) {
			tag = document.createElement('div');
			var container = document.getElementById(Config.labelContainer);
			container.style.position= 'relative';
			container.appendChild(tag);
			controller.onCreateLabel(tag, node);
		}
		var pos = node.pos.toComplex();
		var radius= canvas.getSize();
		var labelPos= {
			x: Math.round((pos.x  + radius.x/2 - size /2) +dx),
			y: Math.round((pos.y + radius.y/2 - size /2) +dy)
		};
		tag.id = id;
		tag.className = 'node';
		tag.style.position = 'absolute';
		tag.style.width = size + 'px';
		tag.style.height = size + 'px';
		tag.style.left = labelPos.x + 'px';
		tag.style.top = labelPos.y  + 'px';
		if(this.fitsInCanvas(labelPos, canvas)) tag.style.display = '';
		else tag.style.display = 'none';
		controller.onPlaceLabel(tag, node);
	},
	
	/*
	   Method: fitsInCanvas
	
	   Returns _true_ or _false_ if the label for the node is contained on the canvas dom element or not.
	*/
	fitsInCanvas: function(pos, canvas) {
		//canvas.setPosition();
	    var size = canvas.getSize();
		var offset1 = parseInt(size.x);
		var offset2 = parseInt(size.y);
		if(pos.x <  0 || pos.x > offset1 || pos.y < 0 || pos.y > offset2) return false;
		else
		  return true;						
	}
	

};

/*
   Class: RGraph

	An animated Graph with radial layout.

	Go to <http://blog.thejit.org> to know what kind of JSON structure feeds this object.
	
	Go to <http://blog.thejit.org/?p=8> to know what kind of controller this class accepts.
	
	Refer to the <Config> object to know what properties can be modified in order to customize this object. 

	The simplest way to create and layout a RGraph is:
	
	(start code)

	  var canvas= new Canvas('infovis', '#ccddee', '#772277');
	  var rgraph= new RGraph(canvas, controller);
	  rgraph.loadTreeFromJSON(json);
	  rgraph.compute();
	  rgraph.plot();

	(end code)

	A user should only interact with the Canvas, RGraph and Config objects/classes.
	By implementing RGraph controllers you can also customize the RGraph behavior.
*/

/*
 Constructor: RGraph

 Creates a new RGraph instance.
 
 Parameters:

    canvas - A <Canvas> instance.
    controller - _optional_ a RGraph controller <http://blog.thejit.org/?p=8>
*/
var RGraph = function(canvas, controller) {
	var innerController = {
		onBeforeCompute: $_.fn(),
		onAfterCompute:  $_.fn(),
		onCreateLabel:   $_.fn(),
		onPlaceLabel:    $_.fn(),
		onCreateElement: $_.fn(),
		onComplete:      $_.fn(),
		onBeforePlotLine: $_.fn(),
		onAfterPlotLine: $_.fn(),
		request:         false
	};
	
	this.controller = $_.merge(innerController, controller);
	this.graph = new Graph();
	this.json = null;
	this.canvas = canvas;
	this.root = null;
	
	Animation.duration = Config.animationTime;
	Animation.fps = Config.fps;
	
};

RGraph.prototype = {
	/*
	 Method: loadTree
	
	 Loads a Graph from a json tree object <http://blog.thejit.org>
	 
	*/
	loadTree: function(json) {
		var ch = json.children;
		this.graph.addNode(json);
		for(var i=0; i<ch.length; i++) {
			this.graph.addAdjacence(json, ch[i]);
			this.loadTree(ch[i]);
		}
	},

	/*
	 Method: loadGraph
	
	 Loads a Graph from a json graph object <http://blog.thejit.org>
	 
	*/
	loadGraph: function(json) {
		var getNode = function(id) {
			for(var w=0; w<json.length; w++) if(json[w].id == id) return json[w];
		};
		
		for(var i=0; i<json.length; i++) {
			this.graph.addNode(json[i]);
			for(var j=0, adj = json[i].adjacencies; j<adj.length; j++) {
				var node = adj[j], data;
				if(typeof adj[j] != 'string') {
					data = node.data; node = node.nodeTo;
				}
				
				this.graph.addAdjacence(json[i], getNode(node), data);
			}
		}
	},
	
	/*
	 Method: flagRoot
	
	 Flags a node specified by _id_ as root.
	*/
	flagRoot: function(id) {
		this.unflagRoot();
		this.graph.nodes[id]._root = true;
	},

	/*
	 Method: unflagRoot
	
	 Unflags all nodes.
	*/
	unflagRoot: function() {
		GraphUtil.eachNode(this.graph, function(elem) {elem._root = false;});
	},

	/*
	 Method: getRoot
	
	 Returns the node flagged as root.
	*/
	getRoot: function() {
		var root = false;
		GraphUtil.eachNode(this.graph, function(elem){ if(elem._root) root = elem; });
		return root;
	},
	
	/*
	 Method: loadTreeFromJSON
	
	 Loads a RGraph from a _json_ object <http://blog.thejit.org>
	*/
	loadTreeFromJSON: function(json) {
		this.json = json;
		this.loadTree(json);
		this.root = json.id;
	},
	
	/*
	 Method: loadGraphFromJSON
	
	 Loads a RGraph from a _json_ object <http://blog.thejit.org>
	*/
	loadGraphFromJSON: function(json, i) {
		this.json = json;
		this.loadGraph(json);
		this.root = json[i? i : 0].id;
	},
	
	/*jon hack */
	offsetCenter: function(x,y){
		
		GraphPlot.displacement.x += x;
		GraphPlot.displacement.y += y;
	},
	
	/*
	 Method: plot
	
	 Plots the RGraph
	*/
	plot: function() {
		GraphPlot.plot(this.graph, this.root, this.canvas, this.controller);
	},
	
	/*
	 Method: compute
	
	 Computes the graph nodes positions and stores this positions on _property_.
	*/
	compute: function(property) {
		var prop = property || ['pos', 'startPos'];
		var node = GraphUtil.getNode(this.graph, this.root);
		node._depth = 0;
		this.flagRoot(this.root);
		this.computeAngularWidths();
		this.computePositions(prop);
	},
	
	/*
	 Method: computePositions
	
	 Performs the main algorithm for computing node positions.
	*/
	computePositions: function(property) {
		var propArray = (typeof property == 'array' || typeof property == 'object')? property : [property];
		var aGraph = this.graph;
		var root = GraphUtil.getNode(this.graph, this.root);

		for(var i=0; i<propArray.length; i++)
			root[propArray[i]] = new Polar(0, 0);
		
		root.angleSpan = {
			begin: 0,
			end: 2 * Math.PI
		};
		root._rel = 1;
		
		GraphUtil.eachBFS(this.graph, this.root, function (elem) {
			var angleSpan = elem.angleSpan.end - elem.angleSpan.begin;
			var rho = (elem._depth + 1) * Config.levelDistance;
			var angleInit = elem.angleSpan.begin;
			var totalAngularWidths = (function (element){
				var total = 0;
				GraphUtil.eachSubnode(aGraph, element, function(sib) {
					total += sib._treeAngularWidth;
				});
				return total;
			})(elem);
			
			GraphUtil.eachSubnode(aGraph, elem, function(child) {
				if(!child._flag) {
					child._rel = child._treeAngularWidth / totalAngularWidths;
					var angleProportion = child._rel * angleSpan;
					var theta = angleInit + angleProportion / 2;
					for(var i=0; i<propArray.length; i++)
						child[propArray[i]] = new Polar(theta, rho);

					child.angleSpan = {
						begin: angleInit,
						end: angleInit + angleProportion
					};
					angleInit += angleProportion;
				}
			});
		});
	},
	
	/*
	 Method: setAngularWidthForNodes
	
	 Sets nodes angular widths.
	*/
	setAngularWidthForNodes: function() {
		var rVal = Config.nodeRangeValues, rDiam = Config.nodeRangeDiameters, nr = Config.nodeRadius; 
		var diam = function(value) { return (((rDiam.max - rDiam.min)/(rVal.max - rVal.min)) * (value - rVal.min) + rDiam.min) };
		GraphUtil.eachBFS(this.graph, this.root, function(elem, i) {
			var dataValue = (Config.allowVariableNodeDiameters && elem.data && elem.data.length > 0)? elem.data[0].value : nr;
			var diamValue = diam(dataValue);
			var rho = Config.levelDistance * i;
			elem._angularWidth = diamValue / rho;
			elem._radius = diamValue / 2;
		});
	},
	
	/*
	 Method: setSubtreesAngularWidths
	
	 Sets subtrees angular widths.
	*/
	setSubtreesAngularWidth: function() {
		var that = this;
		GraphUtil.eachNode(this.graph, function(elem) {
			that.setSubtreeAngularWidth(elem);
		});
	},
	
	/*
	 Method: setSubtreeAngularWidth
	
	 Sets the angular width for a subtree.
	*/
	setSubtreeAngularWidth: function(elem) {
		var that = this, nodeAW = elem._angularWidth, sumAW = 0;
		GraphUtil.eachSubnode(this.graph, elem, function(child) {
			that.setSubtreeAngularWidth(child);
			sumAW += child._treeAngularWidth;
		});
		elem._treeAngularWidth = Math.max(nodeAW, sumAW);
	},
	
	/*
	 Method: computeAngularWidths
	
	 Computes nodes and subtrees angular widths.
	*/
	computeAngularWidths: function () {
		this.setAngularWidthForNodes();
		this.setSubtreesAngularWidth();
	},
	
	/*
	 Method: getNodeAndParentAngle
	
	 Returns the _parent_ of the given node, also calculating its angle span.
	*/
	getNodeAndParentAngle: function(id) {
		var theta = false;
		var n  = GraphUtil.getNode(this.graph, id);
		var ps = GraphUtil.getParents(this.graph, n);
		var p  = (ps.length > 0)? ps[0] : false;
		if(p) {
			var posParent = p.pos.toComplex(), posChild = n.pos.toComplex();
			var newPos    = posParent.add(posChild.scale(-1));
			theta = (function(pos) {
				var t = Math.atan2(pos.y, pos.x);
				if(t < 0) t = 2 * Math.PI + t;
				
				return t;
			})(newPos);
		}
		return {_parent: p, theta: theta};
		
	},
	
	/*
	 Method: onClick
	
	 Performs all calculations and animation when clicking on a label specified by _id_. The label id is the same id as its homologue node.
	*/
	onClick: function(id) {
		if(this.root != id) {
			GraphPlot.displacement.x =0;
			GraphPlot.displacement.y = 0;
			//we apply first constraint to the algorithm
			var obj = this.getNodeAndParentAngle(id);
			this.root = id;
			this.controller.onBeforeCompute(GraphUtil.getNode(this.graph, id));
			this.compute('endPos');
			var thetaDiff = obj.theta - obj._parent.endPos.theta;
			GraphUtil.eachNode(this.graph, function(elem) {
				elem.endPos = elem.endPos.add(new Polar(thetaDiff, 0));
			});
			
			GraphPlot.animate(this.graph, id, this.canvas, this.controller);
		}		
	}
};

/*
 Class: Graph

 A generic Graph class.
 
*/	

/*
 Constructor: Graph

 Creates a new Graph instance.
 
*/	
var Graph= function()  {
	//Property: nodes
	//graph nodes
	this.nodes= {};
};
	
	
Graph.prototype= {
	/*
	 Method: addAdjacence
	
	 Connects nodes specified by *obj* and *obj2*. If not found, nodes are created.
	 
	 Parameters:
	
	    obj - a <Graph.Node> object.
	    obj2 - Another <Graph.Node> object.
	*/	
  addAdjacence: function (obj, obj2, weight) {
  	if(!this.hasNode(obj.id)) this.addNode(obj);
  	if(!this.hasNode(obj2.id)) this.addNode(obj2);
	obj = this.nodes[obj.id]; obj2 = this.nodes[obj2.id];
	
  	for(var i in this.nodes) {
  		if(this.nodes[i].id == obj.id) {
  			if(!this.nodes[i].adjacentTo(obj2)) {
  				this.nodes[i].addAdjacency(obj2, weight);
  			}
  		}
  		
  		if(this.nodes[i].id == obj2.id) {	
  			if(!this.nodes[i].adjacentTo(obj)) {
  				this.nodes[i].addAdjacency(obj, weight);
  			}
  		}
  	}
 },

	/*
	 Method: addNode
	
	 Adds a node.
	 
	 Parameters:
	
	    obj - A <Graph.Node> object.
	*/	
  addNode: function(obj) {
  	if(!this.nodes[obj.id]) {
	  	this.nodes[obj.id] = new Graph.Node(obj.id, obj.name, obj.data);
  	}
  	return this.nodes[obj.id];
  },


	/*
	 Method: hasNode
	
	 Returns a Boolean instance indicating if node belongs to graph or not.
	 
	 Parameters:
	
	    id - Node id.

	 Returns:
	  
	 		A Boolean instance indicating if node belongs to graph or not.
	*/	
  hasNode: function(id) {
  	for(var index in this.nodes) {
  		if (index== id) {
  			return true;
  		}
  	}
  	return false;	
  }
};
/*
   Class: Graph.Node
	
	 Behaviour of the <Graph> node.

*/
/*
   Constructor: Graph.Node

   Node constructor.

   Parameters:

      id - The node *unique identifier* id.
      name - A node's name.
      data - Place to store some extra information (can be left to null).


   Returns:

      A new <Graph.Node> instance.
*/
Graph.Node = function(id, name, data) {
	//Property: id
	this.id= id;
	//Property: name
	this.name = name;
	//Property: data
	//The dataSet object <http://blog.thejit.org/?p=7>
	this.data = data;
		
	//Property: drawn
	//Node flag
	this.drawn= false;

	//Property: angle span
	//allowed angle span for adjacencies placement
	this.angleSpan= {
		begin:0,
		end:0
	};

	//Property: pos
	//node position
	this.pos= new Polar(0, 0);
	
	//Property: startPos
	//node from position
	this.startPos= new Polar(0, 0);
	
	//Property: endPos
	//node to position
	this.endPos= new Polar(0, 0);
	
	//Property: adjacencies
	//node adjacencies
	this.adjacencies= new Array();
	
}

Graph.Node.prototype= {
	
		/*
	   Method: adjacentTo
	
	   Indicates if the node is adjacent to the node indicated by the specified id

	   Parameters:
	
	      id - A node id.
	
	   Returns:
	
	     A Boolean instance indicating whether this node is adjacent to the specified by id or not.
	*/
	adjacentTo: function(node) {
		for(var index=0; index<this.adjacencies.length; index++) {
			if(node.id == this.adjacencies[index].nodeTo.id) {
				return true;
			}
		}
		return false;
	},

		/*
	   Method: addAdjacency
	
	   Connects the node to the specified by id.

	   Parameters:
	
	      id - A node id.
	*/	
	addAdjacency: function(node, data) {
		var adj = new Graph.Adjacence(this, node, data);
		this.adjacencies.push(adj);
	}
};
/*
   Class: Graph.Adjacence
	
	 Creates a new <Graph> adjacence.

*/
Graph.Adjacence = function(node, node2, data) {
	this.nodeFrom = node;
	this.nodeTo    = node2;
	this.data     = data;
};

/*
   Object: Trans
	
	 An object containing multiple type of transformations. Based on the mootools library <http://mootools.net>.

*/
var Trans = {
	linear: function(p) { return p;	},
	Quart: function(p) {
		return Math.pow(p, 4);
	},
	easeIn: function(transition, pos){
		return transition(pos);
	},
	easeOut: function(transition, pos){
		return 1 - transition(1 - pos);
	},
	easeInOut: function(transition, pos){
		return (pos <= 0.5) ? transition(2 * pos) / 2 : (2 - transition(2 * (1 - pos))) / 2;
	}
};

/*
   Object: Animation
	
	 An object that performs animations. Based on Fx.Base from Mootools.

*/

var Animation = {

	duration: Config.animationTime,
	fps: Config.fps,
	transition: function(p) {return Trans.easeInOut(Trans.Quart, p);},
	//transition: Trans.linear,
	controller: false,
	
	getTime: function() {
		var ans = (Date.now)? Date.now() : new Date().getTime();
		return ans;
	},
	
	step: function(){
		var time = this.getTime();
		if (time < this.time + this.duration){
			var delta = this.transition((time - this.time) / this.duration);
			this.controller.compute(delta);
		} else {
			this.timer = clearInterval(this.timer);
			this.controller.compute(1);
			this.controller.complete();
		}
	},

	start: function(){
		this.time = 0;
		this.startTimer();
		return this;
	},


	startTimer: function(){
		if (this.timer) return false;
		this.time = this.getTime() - this.time;
		this.timer = setInterval((function () { Animation.step(); }), Math.round(1000 / this.fps));
		return true;
	}
};
}}}

// Copyright 2006 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.


// Known Issues:
//
// * Patterns are not implemented.
// * Radial gradient are not implemented. The VML version of these look very
//   different from the canvas one.
// * Clipping paths are not implemented.
// * Coordsize. The width and height attribute have higher priority than the
//   width and height style values which isn't correct.
// * Painting mode isn't implemented.
// * Canvas width/height should is using content-box by default. IE in
//   Quirks mode will draw the canvas using border-box. Either change your
//   doctype to HTML5
//   (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype)
//   or use Box Sizing Behavior from WebFX
//   (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html)
// * Non uniform scaling does not correctly scale strokes.
// * Optimize. There is always room for speed improvements.

// Only add this code if we do not already have a canvas implementation
if (!document.createElement('canvas').getContext) {

(function() {

  // alias some functions to make (compiled) code shorter
  var m = Math;
  var mr = m.round;
  var ms = m.sin;
  var mc = m.cos;
  var max = m.max;
  var abs = m.abs;
  var sqrt = m.sqrt;

  // this is used for sub pixel precision
  var Z = 10;
  var Z2 = Z / 2;

  /**
   * This funtion is assigned to the <canvas> elements as element.getContext().
   * @this {HTMLElement}
   * @return {CanvasRenderingContext2D_}
   */
  function getContext() {
    return this.context_ ||
        (this.context_ = new CanvasRenderingContext2D_(this));
  }

  var slice = Array.prototype.slice;

  /**
   * Binds a function to an object. The returned function will always use the
   * passed in {@code obj} as {@code this}.
   *
   * Example:
   *
   *   g = bind(f, obj, a, b)
   *   g(c, d) // will do f.call(obj, a, b, c, d)
   *
   * @param {Function} f The function to bind the object to
   * @param {Object} obj The object that should act as this when the function
   *     is called
   * @param {*} var_args Rest arguments that will be used as the initial
   *     arguments when the function is called
   * @return {Function} A new function that has bound this
   */
  function bind(f, obj, var_args) {
    var a = slice.call(arguments, 2);
    return function() {
      return f.apply(obj, a.concat(slice.call(arguments)));
    };
  }

  var G_vmlCanvasManager_ = {
    init: function(opt_doc) {
      if (/MSIE/.test(navigator.userAgent) && !window.opera) {
        var doc = opt_doc || document;
        // Create a dummy element so that IE will allow canvas elements to be
        // recognized.
        doc.createElement('canvas');
        doc.attachEvent('onreadystatechange', bind(this.init_, this, doc));
      }
    },

    init_: function(doc) {
      // create xmlns
      if (!doc.namespaces['g_vml_']) {
        doc.namespaces.add('g_vml_', 'urn:schemas-microsoft-com:vml');
      }

      // Setup default css.  Only add one style sheet per document
      if (!doc.styleSheets['ex_canvas_']) {
        var ss = doc.createStyleSheet();
        ss.owningElement.id = 'ex_canvas_';
        ss.cssText = 'canvas{display:inline-block;overflow:hidden;' +
            // default size is 300x150 in Gecko and Opera
            'text-align:left;width:300px;height:150px}' +
            'g_vml_\\:*{behavior:url(#default#VML)}';
      }

      // find all canvas elements
      var els = doc.getElementsByTagName('canvas');
      for (var i = 0; i < els.length; i++) {
        this.initElement(els[i]);
      }
    },

    /**
     * Public initializes a canvas element so that it can be used as canvas
     * element from now on. This is called automatically before the page is
     * loaded but if you are creating elements using createElement you need to
     * make sure this is called on the element.
     * @param {HTMLElement} el The canvas element to initialize.
     * @return {HTMLElement} the element that was created.
     */
    initElement: function(el) {
      if (!el.getContext) {

        el.getContext = getContext;

        // do not use inline function because that will leak memory
        el.attachEvent('onpropertychange', onPropertyChange);
        el.attachEvent('onresize', onResize);

        var attrs = el.attributes;
        if (attrs.width && attrs.width.specified) {
          // TODO: use runtimeStyle and coordsize
          // el.getContext().setWidth_(attrs.width.nodeValue);
          el.style.width = attrs.width.nodeValue + 'px';
        } else {
          el.width = el.clientWidth;
        }
        if (attrs.height && attrs.height.specified) {
          // TODO: use runtimeStyle and coordsize
          // el.getContext().setHeight_(attrs.height.nodeValue);
          el.style.height = attrs.height.nodeValue + 'px';
        } else {
          el.height = el.clientHeight;
        }
        //el.getContext().setCoordsize_()
      }
      return el;
    }
  };

  function onPropertyChange(e) {
    var el = e.srcElement;

    switch (e.propertyName) {
      case 'width':
        el.style.width = el.attributes.width.nodeValue + 'px';
        el.getContext().clearRect();
        break;
      case 'height':
        el.style.height = el.attributes.height.nodeValue + 'px';
        el.getContext().clearRect();
        break;
    }
  }

  function onResize(e) {
    var el = e.srcElement;
    if (el.firstChild) {
      el.firstChild.style.width =  el.clientWidth + 'px';
      el.firstChild.style.height = el.clientHeight + 'px';
    }
  }

  G_vmlCanvasManager_.init();

  // precompute "00" to "FF"
  var dec2hex = [];
  for (var i = 0; i < 16; i++) {
    for (var j = 0; j < 16; j++) {
      dec2hex[i * 16 + j] = i.toString(16) + j.toString(16);
    }
  }

  function createMatrixIdentity() {
    return [
      [1, 0, 0],
      [0, 1, 0],
      [0, 0, 1]
    ];
  }

  function matrixMultiply(m1, m2) {
    var result = createMatrixIdentity();

    for (var x = 0; x < 3; x++) {
      for (var y = 0; y < 3; y++) {
        var sum = 0;

        for (var z = 0; z < 3; z++) {
          sum += m1[x][z] * m2[z][y];
        }

        result[x][y] = sum;
      }
    }
    return result;
  }

  function copyState(o1, o2) {
    o2.fillStyle     = o1.fillStyle;
    o2.lineCap       = o1.lineCap;
    o2.lineJoin      = o1.lineJoin;
    o2.lineWidth     = o1.lineWidth;
    o2.miterLimit    = o1.miterLimit;
    o2.shadowBlur    = o1.shadowBlur;
    o2.shadowColor   = o1.shadowColor;
    o2.shadowOffsetX = o1.shadowOffsetX;
    o2.shadowOffsetY = o1.shadowOffsetY;
    o2.strokeStyle   = o1.strokeStyle;
    o2.globalAlpha   = o1.globalAlpha;
    o2.arcScaleX_    = o1.arcScaleX_;
    o2.arcScaleY_    = o1.arcScaleY_;
    o2.lineScale_    = o1.lineScale_;
  }

  function processStyle(styleString) {
    var str, alpha = 1;

    styleString = String(styleString);
    if (styleString.substring(0, 3) == 'rgb') {
      var start = styleString.indexOf('(', 3);
      var end = styleString.indexOf(')', start + 1);
      var guts = styleString.substring(start + 1, end).split(',');

      str = '#';
      for (var i = 0; i < 3; i++) {
        str += dec2hex[Number(guts[i])];
      }

      if (guts.length == 4 && styleString.substr(3, 1) == 'a') {
        alpha = guts[3];
      }
    } else {
      str = styleString;
    }

    return [str, alpha];
  }

  function processLineCap(lineCap) {
    switch (lineCap) {
      case 'butt':
        return 'flat';
      case 'round':
        return 'round';
      case 'square':
      default:
        return 'square';
    }
  }

  /**
   * This class implements CanvasRenderingContext2D interface as described by
   * the WHATWG.
   * @param {HTMLElement} surfaceElement The element that the 2D context should
   * be associated with
   */
  function CanvasRenderingContext2D_(surfaceElement) {
    this.m_ = createMatrixIdentity();

    this.mStack_ = [];
    this.aStack_ = [];
    this.currentPath_ = [];

    // Canvas context properties
    this.strokeStyle = '#000';
    this.fillStyle = '#000';

    this.lineWidth = 1;
    this.lineJoin = 'miter';
    this.lineCap = 'butt';
    this.miterLimit = Z * 1;
    this.globalAlpha = 1;
    this.canvas = surfaceElement;

    var el = surfaceElement.ownerDocument.createElement('div');
    el.style.width =  surfaceElement.clientWidth + 'px';
    el.style.height = surfaceElement.clientHeight + 'px';
    el.style.overflow = 'hidden';
    el.style.position = 'absolute';
    surfaceElement.appendChild(el);

    this.element_ = el;
    this.arcScaleX_ = 1;
    this.arcScaleY_ = 1;
    this.lineScale_ = 1;
  }

  var contextPrototype = CanvasRenderingContext2D_.prototype;
  contextPrototype.clearRect = function() {
    this.element_.innerHTML = '';
    this.currentPath_ = [];
  };

  contextPrototype.beginPath = function() {
    // TODO: Branch current matrix so that save/restore has no effect
    //       as per safari docs.
    this.currentPath_ = [];
  };

  contextPrototype.moveTo = function(aX, aY) {
    var p = this.getCoords_(aX, aY);
    this.currentPath_.push({type: 'moveTo', x: p.x, y: p.y});
    this.currentX_ = p.x;
    this.currentY_ = p.y;
  };

  contextPrototype.lineTo = function(aX, aY) {
    var p = this.getCoords_(aX, aY);
    this.currentPath_.push({type: 'lineTo', x: p.x, y: p.y});

    this.currentX_ = p.x;
    this.currentY_ = p.y;
  };

  contextPrototype.bezierCurveTo = function(aCP1x, aCP1y,
                                            aCP2x, aCP2y,
                                            aX, aY) {
    var p = this.getCoords_(aX, aY);
    var cp1 = this.getCoords_(aCP1x, aCP1y);
    var cp2 = this.getCoords_(aCP2x, aCP2y);
    bezierCurveTo(this, cp1, cp2, p);
  };

  // Helper function that takes the already fixed cordinates.
  function bezierCurveTo(self, cp1, cp2, p) {
    self.currentPath_.push({
      type: 'bezierCurveTo',
      cp1x: cp1.x,
      cp1y: cp1.y,
      cp2x: cp2.x,
      cp2y: cp2.y,
      x: p.x,
      y: p.y
    });
    self.currentX_ = p.x;
    self.currentY_ = p.y;
  }

  contextPrototype.quadraticCurveTo = function(aCPx, aCPy, aX, aY) {
    // the following is lifted almost directly from
    // http://developer.mozilla.org/en/docs/Canvas_tutorial:Drawing_shapes

    var cp = this.getCoords_(aCPx, aCPy);
    var p = this.getCoords_(aX, aY);

    var cp1 = {
      x: this.currentX_ + 2.0 / 3.0 * (cp.x - this.currentX_),
      y: this.currentY_ + 2.0 / 3.0 * (cp.y - this.currentY_)
    };
    var cp2 = {
      x: cp1.x + (p.x - this.currentX_) / 3.0,
      y: cp1.y + (p.y - this.currentY_) / 3.0
    };

    bezierCurveTo(this, cp1, cp2, p);
  };

  contextPrototype.arc = function(aX, aY, aRadius,
                                  aStartAngle, aEndAngle, aClockwise) {
    aRadius *= Z;
    var arcType = aClockwise ? 'at' : 'wa';

    var xStart = aX + mc(aStartAngle) * aRadius - Z2;
    var yStart = aY + ms(aStartAngle) * aRadius - Z2;

    var xEnd = aX + mc(aEndAngle) * aRadius - Z2;
    var yEnd = aY + ms(aEndAngle) * aRadius - Z2;

    // IE won't render arches drawn counter clockwise if xStart == xEnd.
    if (xStart == xEnd && !aClockwise) {
      xStart += 0.125; // Offset xStart by 1/80 of a pixel. Use something
                       // that can be represented in binary
    }

    var p = this.getCoords_(aX, aY);
    var pStart = this.getCoords_(xStart, yStart);
    var pEnd = this.getCoords_(xEnd, yEnd);

    this.currentPath_.push({type: arcType,
                           x: p.x,
                           y: p.y,
                           radius: aRadius,
                           xStart: pStart.x,
                           yStart: pStart.y,
                           xEnd: pEnd.x,
                           yEnd: pEnd.y});

  };

  contextPrototype.rect = function(aX, aY, aWidth, aHeight) {
    this.moveTo(aX, aY);
    this.lineTo(aX + aWidth, aY);
    this.lineTo(aX + aWidth, aY + aHeight);
    this.lineTo(aX, aY + aHeight);
    this.closePath();
  };

  contextPrototype.strokeRect = function(aX, aY, aWidth, aHeight) {
    // Will destroy any existing path (same as FF behaviour)
    this.beginPath();
    this.moveTo(aX, aY);
    this.lineTo(aX + aWidth, aY);
    this.lineTo(aX + aWidth, aY + aHeight);
    this.lineTo(aX, aY + aHeight);
    this.closePath();
    this.stroke();
    this.currentPath_ = [];
  };

  contextPrototype.fillRect = function(aX, aY, aWidth, aHeight) {
    // Will destroy any existing path (same as FF behaviour)
    this.beginPath();
    this.moveTo(aX, aY);
    this.lineTo(aX + aWidth, aY);
    this.lineTo(aX + aWidth, aY + aHeight);
    this.lineTo(aX, aY + aHeight);
    this.closePath();
    this.fill();
    this.currentPath_ = [];
  };

  contextPrototype.createLinearGradient = function(aX0, aY0, aX1, aY1) {
    return new CanvasGradient_('gradient');
  };

  contextPrototype.createRadialGradient = function(aX0, aY0,
                                                   aR0, aX1,
                                                   aY1, aR1) {
    var gradient = new CanvasGradient_('gradientradial');
    gradient.radius1_ = aR0;
    gradient.radius2_ = aR1;
    gradient.focus_.x = aX0;
    gradient.focus_.y = aY0;
    return gradient;
  };

  contextPrototype.drawImage = function(image, var_args) {
    var dx, dy, dw, dh, sx, sy, sw, sh;

    // to find the original width we overide the width and height
    var oldRuntimeWidth = image.runtimeStyle.width;
    var oldRuntimeHeight = image.runtimeStyle.height;
    image.runtimeStyle.width = 'auto';
    image.runtimeStyle.height = 'auto';

    // get the original size
    var w = image.width;
    var h = image.height;

    // and remove overides
    image.runtimeStyle.width = oldRuntimeWidth;
    image.runtimeStyle.height = oldRuntimeHeight;

    if (arguments.length == 3) {
      dx = arguments[1];
      dy = arguments[2];
      sx = sy = 0;
      sw = dw = w;
      sh = dh = h;
    } else if (arguments.length == 5) {
      dx = arguments[1];
      dy = arguments[2];
      dw = arguments[3];
      dh = arguments[4];
      sx = sy = 0;
      sw = w;
      sh = h;
    } else if (arguments.length == 9) {
      sx = arguments[1];
      sy = arguments[2];
      sw = arguments[3];
      sh = arguments[4];
      dx = arguments[5];
      dy = arguments[6];
      dw = arguments[7];
      dh = arguments[8];
    } else {
      throw Error('Invalid number of arguments');
    }

    var d = this.getCoords_(dx, dy);

    var w2 = sw / 2;
    var h2 = sh / 2;

    var vmlStr = [];

    var W = 10;
    var H = 10;

    // For some reason that I've now forgotten, using divs didn't work
    vmlStr.push(' <g_vml_:group',
                ' coordsize="', Z * W, ',', Z * H, '"',
                ' coordorigin="0,0"' ,
                ' style="width:', W, ';height:', H, ';position:absolute;');

    // If filters are necessary (rotation exists), create them
    // filters are bog-slow, so only create them if abbsolutely necessary
    // The following check doesn't account for skews (which don't exist
    // in the canvas spec (yet) anyway.

    if (this.m_[0][0] != 1 || this.m_[0][1]) {
      var filter = [];

      // Note the 12/21 reversal
      filter.push('M11=', this.m_[0][0], ',',
                  'M12=', this.m_[1][0], ',',
                  'M21=', this.m_[0][1], ',',
                  'M22=', this.m_[1][1], ',',
                  'Dx=', mr(d.x / Z), ',',
                  'Dy=', mr(d.y / Z), '');

      // Bounding box calculation (need to minimize displayed area so that
      // filters don't waste time on unused pixels.
      var max = d;
      var c2 = this.getCoords_(dx + dw, dy);
      var c3 = this.getCoords_(dx, dy + dh);
      var c4 = this.getCoords_(dx + dw, dy + dh);

      max.x = max(max.x, c2.x, c3.x, c4.x);
      max.y = max(max.y, c2.y, c3.y, c4.y);

      vmlStr.push('padding:0 ', mr(max.x / Z), 'px ', mr(max.y / Z),
                  'px 0;filter:progid:DXImageTransform.Microsoft.Matrix(',
                  filter.join(''), ", sizingmethod='clip');")
    } else {
      vmlStr.push('top:', mr(d.y / Z), 'px;left:', mr(d.x / Z), 'px;');
    }

    vmlStr.push(' ">' ,
                '<g_vml_:image src="', image.src, '"',
                ' style="width:', Z * dw, ';',
                ' height:', Z * dh, ';"',
                ' cropleft="', sx / w, '"',
                ' croptop="', sy / h, '"',
                ' cropright="', (w - sx - sw) / w, '"',
                ' cropbottom="', (h - sy - sh) / h, '"',
                ' />',
                '</g_vml_:group>');

    this.element_.insertAdjacentHTML('BeforeEnd',
                                    vmlStr.join(''));
  };

  contextPrototype.stroke = function(aFill) {
    var lineStr = [];
    var lineOpen = false;
    var a = processStyle(aFill ? this.fillStyle : this.strokeStyle);
    var color = a[0];
    var opacity = a[1] * this.globalAlpha;

    var W = 10;
    var H = 10;

    lineStr.push('<g_vml_:shape',
                 ' filled="', !!aFill, '"',
                 ' style="position:absolute;width:', W, ';height:', H, ';"',
                 ' coordorigin="0 0" coordsize="', Z * W, ' ', Z * H, '"',
                 ' stroked="', !aFill, '"',
                 ' path="');

    var newSeq = false;
    var min = {x: null, y: null};
    var max = {x: null, y: null};

    for (var i = 0; i < this.currentPath_.length; i++) {
      var p = this.currentPath_[i];
      var c;

      switch (p.type) {
        case 'moveTo':
          c = p;
          lineStr.push(' m ', mr(p.x), ',', mr(p.y));
          break;
        case 'lineTo':
          lineStr.push(' l ', mr(p.x), ',', mr(p.y));
          break;
        case 'close':
          lineStr.push(' x ');
          p = null;
          break;
        case 'bezierCurveTo':
          lineStr.push(' c ',
                       mr(p.cp1x), ',', mr(p.cp1y), ',',
                       mr(p.cp2x), ',', mr(p.cp2y), ',',
                       mr(p.x), ',', mr(p.y));
          break;
        case 'at':
        case 'wa':
          lineStr.push(' ', p.type, ' ',
                       mr(p.x - this.arcScaleX_ * p.radius), ',',
                       mr(p.y - this.arcScaleY_ * p.radius), ' ',
                       mr(p.x + this.arcScaleX_ * p.radius), ',',
                       mr(p.y + this.arcScaleY_ * p.radius), ' ',
                       mr(p.xStart), ',', mr(p.yStart), ' ',
                       mr(p.xEnd), ',', mr(p.yEnd));
          break;
      }


      // TODO: Following is broken for curves due to
      //       move to proper paths.

      // Figure out dimensions so we can do gradient fills
      // properly
      if (p) {
        if (min.x == null || p.x < min.x) {
          min.x = p.x;
        }
        if (max.x == null || p.x > max.x) {
          max.x = p.x;
        }
        if (min.y == null || p.y < min.y) {
          min.y = p.y;
        }
        if (max.y == null || p.y > max.y) {
          max.y = p.y;
        }
      }
    }
    lineStr.push(' ">');

    if (!aFill) {
      var lineWidth = this.lineScale_ * this.lineWidth;

      // VML cannot correctly render a line if the width is less than 1px.
      // In that case, we dilute the color to make the line look thinner.
      if (lineWidth < 1) {
        opacity *= lineWidth;
      }

      lineStr.push(
        '<g_vml_:stroke',
        ' opacity="', opacity, '"',
        ' joinstyle="', this.lineJoin, '"',
        ' miterlimit="', this.miterLimit, '"',
        ' endcap="', processLineCap(this.lineCap), '"',
        ' weight="', lineWidth, 'px"',
        ' color="', color, '" />'
      );
    } else if (typeof this.fillStyle == 'object') {
      var focus = {x: '50%', y: '50%'};
      var width = max.x - min.x;
      var height = max.y - min.y;
      var dimension = width > height ? width : height;

      focus.x = mr(this.fillStyle.focus_.x / width * 100 + 50) + '%';
      focus.y = mr(this.fillStyle.focus_.y / height * 100 + 50) + '%';

      var colors = [];

      // inside radius (%)
      if (this.fillStyle.type_ == 'gradientradial') {
        var inside = this.fillStyle.radius1_ / dimension * 100;

        // percentage that outside radius exceeds inside radius
        var expansion = this.fillStyle.radius2_ / dimension * 100 - inside;
      } else {
        var inside = 0;
        var expansion = 100;
      }

      var insidecolor = {offset: null, color: null};
      var outsidecolor = {offset: null, color: null};

      // We need to sort 'colors' by percentage, from 0 > 100 otherwise ie
      // won't interpret it correctly
      this.fillStyle.colors_.sort(function(cs1, cs2) {
        return cs1.offset - cs2.offset;
      });

      for (var i = 0; i < this.fillStyle.colors_.length; i++) {
        var fs = this.fillStyle.colors_[i];

        colors.push(fs.offset * expansion + inside, '% ', fs.color, ',');

        if (fs.offset > insidecolor.offset || insidecolor.offset == null) {
          insidecolor.offset = fs.offset;
          insidecolor.color = fs.color;
        }

        if (fs.offset < outsidecolor.offset || outsidecolor.offset == null) {
          outsidecolor.offset = fs.offset;
          outsidecolor.color = fs.color;
        }
      }
      colors.pop();

      lineStr.push('<g_vml_:fill',
                   ' color="', outsidecolor.color, '"',
                   ' color2="', insidecolor.color, '"',
                   ' type="', this.fillStyle.type_, '"',
                   ' focusposition="', focus.x, ', ', focus.y, '"',
                   ' colors="', colors.join(''), '"',
                   ' opacity="', opacity, '" />');
    } else {
      lineStr.push('<g_vml_:fill color="', color, '" opacity="', opacity,
                   '" />');
    }

    lineStr.push('</g_vml_:shape>');

    this.element_.insertAdjacentHTML('beforeEnd', lineStr.join(''));
  };

  contextPrototype.fill = function() {
    this.stroke(true);
  }

  contextPrototype.closePath = function() {
    this.currentPath_.push({type: 'close'});
  };

  /**
   * @private
   */
  contextPrototype.getCoords_ = function(aX, aY) {
    var m = this.m_;
    return {
      x: Z * (aX * m[0][0] + aY * m[1][0] + m[2][0]) - Z2,
      y: Z * (aX * m[0][1] + aY * m[1][1] + m[2][1]) - Z2
    }
  };

  contextPrototype.save = function() {
    var o = {};
    copyState(this, o);
    this.aStack_.push(o);
    this.mStack_.push(this.m_);
    this.m_ = matrixMultiply(createMatrixIdentity(), this.m_);
  };

  contextPrototype.restore = function() {
    copyState(this.aStack_.pop(), this);
    this.m_ = this.mStack_.pop();
  };

  contextPrototype.translate = function(aX, aY) {
    var m1 = [
      [1,  0,  0],
      [0,  1,  0],
      [aX, aY, 1]
    ];

    this.m_ = matrixMultiply(m1, this.m_);
  };

  contextPrototype.rotate = function(aRot) {
    var c = mc(aRot);
    var s = ms(aRot);

    var m1 = [
      [c,  s, 0],
      [-s, c, 0],
      [0,  0, 1]
    ];

    this.m_ = matrixMultiply(m1, this.m_);
  };

  contextPrototype.scale = function(aX, aY) {
    this.arcScaleX_ *= aX;
    this.arcScaleY_ *= aY;
    var m1 = [
      [aX, 0,  0],
      [0,  aY, 0],
      [0,  0,  1]
    ];

    var m = this.m_ = matrixMultiply(m1, this.m_);

    // Get the line scale.
    // Determinant of this.m_ means how much the area is enlarged by the
    // transformation. So its square root can be used as a scale factor
    // for width.
    var det = m[0][0] * m[1][1] - m[0][1] * m[1][0];
    this.lineScale_ = sqrt(abs(det));
  };

  /******** STUBS ********/
  contextPrototype.clip = function() {
    // TODO: Implement
  };

  contextPrototype.arcTo = function() {
    // TODO: Implement
  };

  contextPrototype.createPattern = function() {
    return new CanvasPattern_;
  };

  // Gradient / Pattern Stubs
  function CanvasGradient_(aType) {
    this.type_ = aType;
    this.radius1_ = 0;
    this.radius2_ = 0;
    this.colors_ = [];
    this.focus_ = {x: 0, y: 0};
  }

  CanvasGradient_.prototype.addColorStop = function(aOffset, aColor) {
    aColor = processStyle(aColor);
    this.colors_.push({offset: 1 - aOffset, color: aColor});
  };

  function CanvasPattern_() {}

  // set up externs
  G_vmlCanvasManager = G_vmlCanvasManager_;
  CanvasRenderingContext2D = CanvasRenderingContext2D_;
  CanvasGradient = CanvasGradient_;
  CanvasPattern = CanvasPattern_;

})();

} // if
/***
|Name|TiddlyWikiDebugger |
|Version|1.0.1 |
|Source|http://thePettersons.org/tiddlywiki.html#TiddlyWikiDebugger|
|Author|[[PaulPetterson]] |
|Type|Developer/Hacker Extension |
|Requires|TiddlyWiki 1.2.35 or higher |
|Description|The TWDebugger //hijacks// a function, replacing it with a custom function that traces it's arguments and return status.|
!Description
The TWDebugger //hijacks// a function, replacing it with a custom function that traces it's arguments and return status. If multiple functions are traced, then a pseudo call stack is built showing what functions were called, in what order, and by what functions.  You hijack functions, restore them (un-hijack?) and show the simulated call stacks all  using ''macros''!

@@color(red):This should only be used in controlled circumstances where it's important to see a simulated stack trace of the functions.  Don't tag it with systemConfig unless you're going to use it, remember to use {{{<<stop>>}}} at the end of your tiddler, and if you hit an error that prevents {{{<<stop>>}}} from running, then put it in another tiddler to run it!.@@

The following Macros are used to control setting up the method tracing, and display the results of the traced execution.

''Usage:'' 
To use the TWDebugger you will typically setup a special testing tiddler for your experiments, in this tiddler you will set ''watches'' on a macro and a set of functions the macro will call. After the interesting functions have watches set on them, call the macro. Finally show the results and stop ''watching'' the methods.

''Example:'' Get a real detailed picture of how the list orphans macro works…
!Step 1: Setup all the watches.
{{{<<watchMacro list>>}}}
{{{<<watchMethod config.macros.list.all handler>>}}}
{{{<<watchMethod store reverseLookup>>}}}
{{{<<watchMethod store getOrphans>>}}}
{{{<<watchMethod store getReferringTiddlers>>}}}
{{{<<watchMethod window createTiddlyLink>>}}}

!Step 2. Run the macro
{{{<<list orphans>>}}}

!Step 3. Stop watching & Show the results
{{{<<stop>>}}}
{{{<<showStack>>}}}

See TWDebuggerSample for an example of how this really looks.

!The TiddlyWikiDebugger Macros

!! Watch Macro
The {{{watchMacro}}} hijacks a macro's handler method and traces when it is called including the parameters it is called with. Macros typically have no return value in tiddlywiki so don't expect to see much there…

Call with only the name of the macro.

''Examples:''
* {{{<<watchMacro list>>}}} -- will display the parameters passed to the list macro.
* {{{<<watchMacro tabs>>}}}

***/
//{{{
config.macros.watchMacro = {
twd: new TWDebug() ,
handler: function(place,macroName,params) {
 if ( !params[0] ) throw ("must pass in name of macro to watch...") ;
 
 var o ;
 eval("o = config.macros." + params[0] ) ;
 this.twd.trace( o, "handler" ) ;
}}
//}}}
/***

!! Watch Method
The {{{watchMethod}}} macro hijacks a method and traces when it called, including what parameters it's called with, and traces when it returns, along with it's return value.

Call with an object and a method name.

''Examples:''
* {{{<<watchMethod config.macros.list.all handler>>}}} - a macro, or sub-macro method handler
* {{{<<watchMethod store getReferringTiddlers>>}}} - a method from the TiddlyWiki store
* {{{<<watchMethod window createTiddlyLink>>}}} - a //global// method

***/
//{{{
config.macros.watchMethod = {
twd: config.macros.watchMacro.twd,
handler: function(place,macroName,params) {
 if ( !params[0] ) throw ("must pass in object & method to watch...") ;
 if ( !params[1] ) throw ("must pass in object & method to watch...") ;
 
 var o ;
 eval("o = " + params[0] ) ;
 this.twd.trace( o, params[1] ) ;
}}
//}}}
/***

!! Show Stack
The {{{showStack}}} macro dumps an emulated //call stack// like view of methods called and returned. If a method is called while another method is executing, the new method's call will be indented under the origional method's call.

{{{showStack}}} also clears the log. THis is usefull when executing multiple macros, you can display the call stack right after each call, and the won't be all run together.

''Example:''
{{{<<showStack>>}}}

''Note:'' the showStack calls the ''wikify'' function, which in turn calls lots and lots of other methods. It is possible to get stuck in a loop here if you trace something like ''createTiddlyLink'' and one of the statements in the call-stack is a tiddly link. If you run into this, use the ''stop'' macro before calling ''showStack''.
***/
//{{{
config.macros.showStack = {
twd: config.macros.watchMacro.twd,
handler: function(place,macroName,params) {
 this.twd.log.paused = true ;
 wikify( this.twd.log.dump(), place ) ;
 this.twd.log.paused = false ;
 this.twd.log.reset() ;
}}
//}}}
/***

!! Stop
The {{{stop}}} macro stops all tracing, and restores all the methods, returning them to their origional methods.

***/
//{{{
config.macros.stop = {
twd: config.macros.watchMacro.twd,
handler: function(place,macroName,params) {
 this.twd.stop() ;
}}

//}}}
/***
----

! Aspect & Object Code
***/
//{{{
// testing code
function showVar( v ) {
 if ( ! v ) return "null" ;
 var tov = typeof( v ) ;
 var sret = "" ;
 var verbose = false ;
 
 switch( tov ) {
 case "number": case "boolean":
 sret = v ;
 break ;
 case "string":
 sret = "'" + v + "'" ;
 break ;
 case "function":
 sret = "function()" ;
 break ;
 case "object" :
 if ( v.join ) { // this is an array!
 sret = "[" ;
 for( var i=0; i<v.length; i++ )
 sret += ((i==0)?"":", ") + showVar( v[i] ) ;
 sret += "]" ;
 } else {
 var sep = "" ;
 sret = "{" ;
 if ( verbose ) {
 for( var key in v ) {
 sret += sep + key + "(" + typeof( v[key] ) + "): " ;//+ showVar( v[i] ) ;
 sep = ", " ;
 }
 } else {
 if ( v.constructor == TiddlyWiki ) sret += "store" ;
 else if ( v.constructor == wikify ) sret += "wikify" ;
 else if ( v.constructor == Wikifier ) sret += "Wikifier" ;
 else if ( v.constructor == Tiddler ) sret += "Tiddler:'" + v.title + "'" ;
 else if ( v.constructor == Animator ) sret += "Animator" ;
 else if ( v.parentNode ) sret += "DOMObject" ;
 else sret += "?" ;
 }
 sret += "}" ;
 }
 break ;
 default:
 sret = "<b>typeof(" + tov + ")</b>" ;
 break ;
 }
 return sret ;
}

function showArgs( args ) {
 var sargs = "";
 var sep = "" ;
 
 for( var i = 0; i<args.length ; i++ ) {
 sargs += sep + showVar( args[i] ) ;
 sep = ", " ;
 }
 return sargs ;
}

function Logger() {
 this.log = ['new Logger()'] ;
 this.depth = 1 ;
 this.starStr = "**********" ;
 this.paused = false ;
 this.stars = function() { return this.starStr.substr(0,(this.depth>10?10:this.depth)); } ;
 return this ;
}

Logger.prototype.logMsg = function( str ) {
 if ( this.paused ) return str ;
 this.log.push( this.stars() + " " + str ) ;
 return str ;
}

Logger.prototype.call = function( fn, args ) {
 if ( this.paused ) return args ;

 this.log.push( this.stars() + " Calling: " + fn + "( " + showArgs( args ) + " )" ) ;
 this.depth++ ;
 return args ;
}

Logger.prototype.ret = function( fn, results ) {
 if ( this.paused ) return results ;
 this.depth-- ;
 this.log.push( this.stars() + " Returning: " + fn + " = " + showVar( results )) ;
 return results ;
}

Logger.prototype.dump = function() {
 var s = this.log.join("\n") ;
 return s ;
}

Logger.prototype.reset = function() {
 this.log = ['Logger reset'] ;
 this.depth = 1 ;
}


function TWDebug() {
 this.log = new Logger() ;
 this.methodStore = new Array() ;
 return this ;
}

TWDebug.prototype.storeMethod = function( obj, fn ) {
 this.methodStore.push( { object:obj, method:fn, ptr:obj[fn] } ) ;
}

// Trace method - replaces existing method with one that logs arguments, calls method, logs result
TWDebug.prototype.trace = function( obj, fn ) {
 var log = this.log ;
 this.storeMethod( obj, fn ) ;
 var old = obj[fn] ;
 obj[fn] = function() { 
 try {
 return log.ret( fn, old.apply( this, log.call( fn, arguments ))) ;
 } catch( e ) {
 log.logMsg( "Function: " + fn + " threw an exception: " + e.toString() ) ;
 throw( e ) ;
 }
 } 
 this.writeLog( "Started tracing: " + fn ) ;
}

TWDebug.prototype.stop = function() {
 var m;
 while( (m = this.methodStore.pop()) != null ) {
 var obj = m.object ; 
 var fn = m.method ; 
 try { obj[fn] = m.ptr ; } catch(e) { this.writeLog( "error on stop: " + e.description ); }
 this.writeLog( "Stopped tracing: " + fn ) ;
 }
}

// Add additional information in the call stack history
TWDebug.prototype.writeLog = function( str ) { 
 if ( this && this.log ) this.log.logMsg( str ); 
}
//}}}
/%
!info
|Name|ToggleLeftSidebar|
|Source|http://www.TiddlyTools.com/#ToggleLeftSidebar|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|transclusion|
|Description|show/hide left sidebar (MainMenu)|
Usage
<<<
{{{
<<tiddler ToggleLeftSidebar>>
<<tiddler ToggleLeftSidebar with: label tooltip>>
}}}
Try it: <<tiddler ToggleLeftSidebar##show
	with: {{config.options.chkShowLeftSidebar?'◄':'►'}}>>
<<<
Configuration:
<<<
{{{
config.options.chkShowLeftSidebar (true)
config.options.txtToggleLeftSideBarLabelShow (►)
config.options.txtToggleLeftSideBarLabelHide (◄)
}}}
<<<
!end
!show
<<tiddler {{
	var co=config.options;
	if (co.chkShowLeftSidebar===undefined) co.chkShowLeftSidebar=true;
	var mm=document.getElementById('mainMenu');
	var da=document.getElementById('displayArea');
	if (mm) {
		mm.style.display=co.chkShowLeftSidebar?'block':'none';
		da.style.marginLeft=co.chkShowLeftSidebar?'':'1em';
	}
'';}}>><html><nowiki><a href='javascript:;' title="$2"
onmouseover="
	this.href='javascript:void(eval(decodeURIComponent(%22(function(){try{('
	+encodeURIComponent(encodeURIComponent(this.onclick))
	+')()}catch(e){alert(e.description?e.description:e.toString())}})()%22)))';"
onclick="
	var co=config.options;
	var opt='chkShowLeftSidebar';
	var show=co[opt]=!co[opt];
	var mm=document.getElementById('mainMenu');
	var da=document.getElementById('displayArea');
	if (mm) {
		mm.style.display=show?'block':'none';
		da.style.marginLeft=show?'':'1em';
	}
	saveOptionCookie(opt);
	var labelShow=co.txtToggleLeftSideBarLabelShow||'&#x25BA;';
	var labelHide=co.txtToggleLeftSideBarLabelHide||'&#x25C4;';
	if (this.innerHTML==labelShow||this.innerHTML==labelHide) 
		this.innerHTML=show?labelHide:labelShow;
	this.title=(show?'hide':'show')+' left sidebar';
	var sm=document.getElementById('storyMenu');
	if (sm) config.refreshers.content(sm);
	return false;
">$1</a></html>
!end
%/<<tiddler {{
	var src='ToggleLeftSidebar';
	src+(tiddler&&tiddler.title==src?'##info':'##show');
}} with: {{
	var co=config.options;
	var labelShow=co.txtToggleLeftSideBarLabelShow||'&#x25BA;';
	var labelHide=co.txtToggleLeftSideBarLabelHide||'&#x25C4;';
	'$1'!='$'+'1'?'$1':(co.chkShowLeftSidebar?labelHide:labelShow);
}} {{
	var tip=(config.options.chkShowLeftSidebar?'hide':'show')+' left sidebar';
	'$2'!='$'+'2'?'$2':tip;
}}>>
/%
!info
|Name|ToggleRightSidebar|
|Source|http://www.TiddlyTools.com/#ToggleRightSidebar|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|transclusion|
|Description|show/hide right sidebar (SideBarOptions)|
Usage
<<<
{{{
<<tiddler ToggleRightSidebar>>
<<tiddler ToggleRightSidebar with: label tooltip>>
}}}
Try it: <<tiddler ToggleRightSidebar##show
	with: {{config.options.chkShowRightSidebar?'►':'◄'}}>>
<<<
Configuration:
<<<
copy/paste the following settings into a tiddler tagged with <<tag systemConfig>> and then modify the values to suit your preferences:
{{{
config.options.chkShowRightSidebar=true;
config.options.txtToggleRightSideBarLabelShow="◄";
config.options.txtToggleRightSideBarLabelHide="►";
}}}
<<<
!end
!show
<<tiddler {{
	var co=config.options;
	if (co.chkShowRightSidebar===undefined) co.chkShowRightSidebar=true;
	var sb=document.getElementById('sidebar');
	var da=document.getElementById('displayArea');
	if (sb) {
		sb.style.display=co.chkShowRightSidebar?'block':'none';
		da.style.marginRight=co.chkShowRightSidebar?'':'1em';
	}
'';}}>><html><nowiki><a href='javascript:;' title="$2"
onmouseover="
	this.href='javascript:void(eval(decodeURIComponent(%22(function(){try{('
	+encodeURIComponent(encodeURIComponent(this.onclick))
	+')()}catch(e){alert(e.description?e.description:e.toString())}})()%22)))';"
onclick="
	var co=config.options;
	var opt='chkShowRightSidebar';
	var show=co[opt]=!co[opt];
	var sb=document.getElementById('sidebar');
	var da=document.getElementById('displayArea');
	if (sb) {
		sb.style.display=show?'block':'none';
		da.style.marginRight=show?'':'1em';
	}
	saveOptionCookie(opt);
	var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
	var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
	if (this.innerHTML==labelShow||this.innerHTML==labelHide) 
		this.innerHTML=show?labelHide:labelShow;
	this.title=(show?'hide':'show')+' right sidebar';
	var sm=document.getElementById('storyMenu');
	if (sm) config.refreshers.content(sm);
	return false;
">$1</a></html>
!end
%/<<tiddler {{
	var src='ToggleRightSidebar';
	src+(tiddler&&tiddler.title==src?'##info':'##show');
}} with: {{
	var co=config.options;
	var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
	var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
	'$1'!='$'+'1'?'$1':(co.chkShowRightSidebar?labelHide:labelShow);
}} {{
	var tip=(config.options.chkShowRightSidebar?'hide':'show')+' right sidebar';
	'$2'!='$'+'2'?'$2':tip;
}}>>
/***
|Name:|ToggleTagPlugin|
|Description:|Makes a checkbox which toggles a tag in a tiddler|
|Version:|6.1.2|
|Date:|20-Oct-2006|
|Source:|http://tiddlyspot.com/mptw/#ToggleTagMacro|
|Author:|[[SimonBaird]]|
|License:|[[BSD open source license]]|
|CoreVersion:|2.1|
!Usage
{{{<<toggleTag }}}//{{{TagName TiddlerName LabelText}}}//{{{>>}}}
* TagName - the tag to be toggled, default value "checked"
* TiddlerName - the tiddler to toggle the tag in, default value the current tiddler
* LabelText - the text (gets wikified) to put next to the check box, default value is '{{{[[TagName]]}}}' or '{{{[[TagName]] [[TiddlerName]]}}}'
(If a parameter is '.' then the default will be used)

Examples:

|Code|Description|Example|h
|{{{<<toggleTag>>}}}|Toggles the default tag (checked) in this tiddler|<<toggleTag>>|
|{{{<<toggleTag TagName>>}}}|Toggles the TagName tag in this tiddler|<<toggleTag TagName>>|
|{{{<<toggleTag TagName TiddlerName>>}}}|Toggles the TagName tag in the TiddlerName tiddler|<<toggleTag TagName TiddlerName>>|
|{{{<<toggleTag TagName TiddlerName 'click me'>>}}}|Same but with custom label|<<toggleTag TagName TiddlerName 'click me'>>|
|{{{<<toggleTag . . 'click me'>>}}}|dot means use default value|<<toggleTag . . 'click me'>>|
(Note if TiddlerName doesn't exist it will be silently created)

!Known issues
* Doesn't smoothly handle the case where you toggle a tag in a tiddler that is current open for editing. Should it stick the tag in the edit box?

***/
//{{{

merge(config.macros,{

	toggleTag: {

		doRefreshAll: true,
		createIfRequired: true,
		shortLabel: "[[%0]]",
		longLabel: "[[%0]] [[%1]]",

		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			var tag = (params[0] && params[0] != '.') ? params[0] : "checked";
			var title = (params[1] && params[1] != '.') ? params[1] : tiddler.title;
			var defaultLabel = (title == tiddler.title ? this.shortLabel : this.longLabel);
			var label = (params[2] && params[2] != '.') ? params[2] : defaultLabel;
			var theTiddler =  title == tiddler.title ? tiddler : store.getTiddler(title);
			var cb = createTiddlyCheckbox(place, label.format([tag,title]), theTiddler && theTiddler.isTagged(tag), function(e) {
				if (!store.tiddlerExists(title)) {
					if (config.macros.toggleTag.createIfRequired) {
						var content = store.getTiddlerText(title); // just in case it's a shadow
						store.saveTiddler(title,title,content?content:"",config.options.txtUserName,new Date(),null);
					}
					else 
						return false;
				}
				//store.suspendNotifications(); 
				store.setTiddlerTag(title,this.checked,tag);
				//refreshDisplay(); 
				//store.resumeNotifications();
				return true;
			});
		}
	}
});

//}}}
|~ViewToolbar|collapseTiddler collapseOthers closeTiddler closeOthers +editTiddler > fields syncing permalink references jump deleteTiddler|
|~EditToolbar|+saveTiddler -cancelTiddler copyTiddler deleteTiddler|
/***
|Name|ToolbarIconsPlugin|
|Author|[[SaqImtiaz]]|
|Source|http://tw.lewcid.org/#ToolbarIconsPlugin|
|Version|1.1|
|Requires|~TW2.x|
|Description:|Replace toolbar buttons with icons.|
***/
//{{{
//replaces toolbar buttons with icons.
//for each command that you want to use an icon, add a line like the following in a systemConfig tiddler, specifying the icon image location:
//config.commands.editTiddler.imgLoc= "jump.bmp";
//No need to edit the ViewTemplate! If an image location is specified, then the icon will be used for that command!

config.macros.toolbar.createCommand = function(place,commandName,tiddler,theClass)
{
	if(typeof commandName != "string")
		{
		var c = null;
		for(var t in config.commands)
			if(config.commands[t] == commandName)
				c = t;
		commandName = c;
		}
	if((tiddler instanceof Tiddler) && (typeof commandName == "string"))
		{
		var title = tiddler.title;
		var command = config.commands[commandName];
		var ro = tiddler.isReadOnly();
		var shadow = store.isShadowTiddler(title) && !store.tiddlerExists(title);
		var text = ro && command.readOnlyText ? command.readOnlyText : command.text;
		var tooltip = ro && command.readOnlyTooltip ? command.readOnlyTooltip : command.tooltip;
		if((!ro || (ro && !command.hideReadOnly)) && !(shadow && command.hideShadow))
		    {
			    var btn = createTiddlyButton(null,text,tooltip,this.onClickCommand);
			    btn.setAttribute("commandName", commandName);
			    btn.setAttribute("tiddler", title);
			    if(theClass)
				            addClass(btn,theClass);
                             place.appendChild(btn);
                            if(command.imgLoc)
                                   btn.innerHTML = "<img src='"+command.imgLoc+"'>";

		     }
       }
}

setStylesheet(".toolbarImg {vertical-align: middle; cursor:pointer;}\n","commandIconStyles"); 
//}}}
<data>{"abstract":"[[Totenbettübung]], Sie glauben nicht an Hellseherei? Manchmal aber kann sie ganz nützlich sein, z.B. vor dem Start eines Projektes. Wäre doch nicht schlecht, wenn man wüsste, woran es [[scheitern|Archäologie des Scheiterns]] kann, oder?"}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.ceryx.de/sprache/metapher.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Totenbettübung","abstract") </script>

!Totenbettübung
<script> return "<<tiddler [[Totenbettübung##Overview]]>>" </script> 
Die Zahl gescheiterter Projekte ist groß, da lohnt es sich schon, im Vorfeld einmal darüber nachzudenken, woran ein Projekt am Ende zugrunde gehen könnte. 

!Objectives

!Timing

!Audience
Group / Individual

!Materials
* 

!Procedure
Dazu bittet der Projektleiter die Teammitglieder, einmal in eine - imaginäre - Kristallkugel zu schauen und sechs Monate in die [[Zukunft zu blicken|Zukunfts-Szenarien]]. 
Sie lesen in der Kugel schlechte Nachrichten, die besagen, dass das Projekt gescheitert ist, nun soll sich jedes Teammitglied drei Minuten lang die Schlagzeilen vorzustellen und dann die Gründe aufschreiben, die zum Scheitern führten. 

Diese "Hellseherei" bewirkt, dass die Teilnehmer das ausdrücken können, was sie wirklich denken, ohne befürchten zu müssen, dass sie als Pessimisten oder Nörgler dastehen. 

Anschließend werden die potenziellen Fallstricke aufgelistet und nach Gemeinsamkeiten sortiert. Die Liste hilft, wachsam zu sein, auftauchende Probleme rascher zu identifizieren und rechtzeitig anzugehen.

!Debriefing

!Quelle
Toolbox: Übung: Probleme vorhersehen, wirtschaft & weiterbildung 8/2001, S.25

!See also
* [[Organizational Change Management]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Totenbett%FCbung+%28jt%29&db=3]]
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://www.doof.me.uk/wp-content/uploads/2009/05/screenshot_mountain.png>>
<<showtoc>>
!Overview
The [[Train Game]] is an interactive game illustrating the efficiency of iterative and incremental development.

!Train Game
<<tiddler [[Train Game##Overview]]>>

!Objectives
* illustrating the efficiency of iterative and incremental development.

!Timing
20 min

!Materials
* 2 equal sets of wooden train track with some complexities (bridges, tunnels, etc)
* Create a set of requirements and put a score on each (Different degrees of complexity and value are important)
* Test the event yourself to get a sense of time

!Audience
Group

!Procedure
# Split into at least two groups
# Split the groups into the “big release” and “iterative” groups
# Tell them that their customer is a parent who want to “buy” a product to keep their child entertained
# Explain that you are willing to pay higher amounts for more requirements being met, for example:
** A train track with no dead ends is worth $25
** Bridges that go over track (instead of nothing) are worth $10 each
** Track that isn’t tense and has some wiggle in it is worth $5 (keeps it from being forced and broken)
** If every piece can be reached without lifting the train, that is $25
** If every piece can be reached and crossed in both directions without lifting the train, that is $25
# Tell the “big release” group that they will go until they decide to ship their product
# Tell the iterative group that they should strive to ship a product at the end of every minute (you tell them when they have 10 sec to go)
# Go!
# Every minute, take a snapshot and determine how much money the iterative group would make if they shipped their product at that moment
# When the “big release” group meets all the requirements or calls it quits, stop the game.
** In theory the iterative group will have banked money over each iteration and made multiple times the amount of money the big bang group would have made. Talk about how long it will take the iterative group before they have to match the other group’s requirements. Talk about how this would play out in real life if each minute was equal to a week of work.

!Debriefing
* Understand how sprints affect delivery
* Delivering business value sooner is more profitable
** Have a shippable product each sprint to do so
* You can retain customers by giving them something simpler and working to the “real” goal over time
** would the customer have waited for the “big bang” group to deliver the full product or appeased the crying child with the iterative groups earlier solution (remember… minutes equaled weeks of dev. time)

!Credits
[[Kevin Schlabach|http://agile-commentary.blogspot.com/]]

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/the-train-game/
<data>{"abstract":"[[Training - Spiel - Transfer]], eine Übung, die den [[Transfer|Praxistransfer]] des im Seminar Gelernten auf den beruflichen Alltag der Teilnehmer sichern hilft."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://is.blick.ch/img/gen/t/p/HBtpfG7o_Pxgen_r_450x340.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Training - Spiel - Transfer","abstract") </script>

!Training - Spiel - Transfer
<script> return "<<tiddler [[Training - Spiel - Transfer##Overview]]>>" </script> 
[[Spiele in Trainings|Games for Advanced Training]] - das ist inzwischen Standard. Nachvollziehbar, denn beim Spiel sind die Beteiligten sofort mittendrin. Und 80% des Erlebten bleibt haften, wohingegen [[Lernen|learning]] durch Lesen und Hören allerhöchstens 50% Nachhaltigkeit erreicht wird. 
Jedoch merken kritische Stimmen an: Spielen - schön und gut. Wie aber das im Spiel Erlebte nun schnell und für die Teilnehmenden sinnfällig mit der eigenen Situation verbinden? Und wie ist der Transfer nicht nur herzustellen, sondern auch zu sichern?

!Objectives
* [[Praxistransfer]]

!Timing


!Audience
Group

!Materials
* 2 Pinnwände
* Moderationskarten

!Procedure
Zwei nebeneinandergestellte Pinwände: eine Spielwand links und eine Transferwand rechts. Die linke Spielwand nimmt Moderationskarten mit den Spielerlebnissen der Teilnehmenden auf. Spielrollen oder Spielverlauf geben hierzu ein Strukturmuster. 

Wenn zum Spiel alles gesagt und notiert ist, beginnt die Transferarbeit mit der Frage : Was vom gerade Erlebten kennen Sie aus Ihrem Alltag? An welche markanten Szenen und Situationen fühlten Sie sich erinnert?

Nun kommt die rechte Transferwand ins Spiel. Zu jeder wiedererkannten oder erinnerten Szene gehören Moderationskarten auf der Spielwand. Diese werden nun auf die rechte Transferwand - eben - transferiert. So entsteht eine Agenda von markanten Szenen, bei denen die Teilnehmenden selbst die alten Verhaltensmuster und ihre im Spiel erlebten neuen Handlungsmöglichkeiten ermitteln und ggfs. im [[Rollenspiel|Improvisationstheater]] festigen.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Training+-+Spiel+-+Transfer+%28eh%29]]
/%
|Name|Training Games|
|URL|http://www.thiagi.com/freebies-and-goodies.html|
|Description|More than 150 ready-to-use training games: Tipps und Vorlagen für Spiele, Übungen und interaktive Vorlesungen|
|Author|xxxxx|

!Objectives
* More than 150 ready-to-use training games.

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

%/
<data>{"abstract":"[[Transferwatcher]], ärgerlich, wenn Seminarteilnehmer nach der Veranstaltung nicht so recht wissen, warum sie eigentlich dort waren. Mit den richtigen [[Zielen|Ziel]] und der richtigen  [[Bewertung]]  nach dem Seminar müsste ein Bildungscontrolling doch möglich sein.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.greatnorthroad.org/bboard/images/0204/race-watcher.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Transferwatcher","abstract") </script>

!Transferwatcher
<script> return "<<tiddler [[Transferwatcher##Overview]]>>" </script> 
Immer wieder kehren Seminarteilnehmer zurück und sind der Meinung, auf der falschen Veranstaltung gewesen zu sein. Sei es, dass sie hingeschickt wurden oder sich selbst gemeldet hatten, das Resultat ist Frust und rausgeworfenes Geld.

Anlass genug für die Technische Fortbildung der BASF Ludwigshafen, das Bildungscontrolling [[Transferwatcher]] zu entwickeln. 

!Objectives
* [[Praxistransfer]]

!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Dieser besteht darin, daß die [[Mitarbeiter]] selbst vor der Seminarteilnahme ihre Arbeitsziele formulieren (was wollen sie nach dem Seminar können bzw. in die Praxis umsetzen), die [[Kosten]] überschlagen (Seminarkosten, Arbeitsausfall und Spesen) und einen Maßstab definieren, an dem erkennbar wird, was sie lernen wollen. 

Ein halbes Jahr nach der Maßnahme bewerten die Teilnehmer den [[Arbeitszielerreichungsgrad| http://content.grin.com/data/20/46852.pdf]] (AZE) in Prozent, wobei es darauf ankommt, was sie von dem Seminar bis dahin in die Praxis haben umsetzen können. Dieser wird der ausrichtenden Fortbildungsabteilung mitgeteilt, mit der Konsequenz, daß Maßnahmen mit einem regelmäßig niedrigem AZE aus dem Angebot entfernt werden. 

Für [[Vorgesetzte|Führung]], wenn sie das Instrument nutzen, auch eine nützliche Geschichte, denn sie geben damit die [[Verantwortung]] für die eigene Weiterbildung an die [[Mitarbeiter]] weiter und können durch eine transparente Handhabung dafür sorgen, daß jeder bei allen Kollegen und auch beim Chef sehen kann, an welchen Weiterbildungen er oder sie teilgenommen hat und welche Arbeitsziele erreicht worden sind.

!Debriefing

!Quelle
S. Schütte: Erfolge messen mit "Transferwatcher", Wirtschaft und Weiterbildung 6/1998 S.80-84

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Fortgeschrittene Seminarbausteine]<<tiddlerList tags:"advanced_training,-newTemplate" header:"Übungen Fortgeschrittene Seminarbausteine">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Transferwatcher+%28jt%29]]
<<emptyTrash>>
/***
|Name:|TrashPlugin|
|Version:|1.2.0|
|Source:|http://www.TiddlyTools.com/#TrashPlugin|
|Author:|[[EricShulman]]|
|OriginalSource:|http://ido-xp.tiddlyspot.com/#TrashPlugin|
|OriginalAuthor:|Ido Magal (idoXatXidomagalXdotXcom)|
|License:|[[BSD open source license]]|
|CoreVersion:|2.1.0|
|Description|add 'Trash' tag to tiddlers instead of deleting them|
!!!!!Documentation
<<<
When TrashPlugin is installed and you click on the 'delete' command in the tiddler toolbar, rather than directly removing the tiddler from the system, it will be tagged with the following tags:
{{{
Trash excludeLists excludeMissing excludeSearch systemConfigDisable
}}}
As a result, although the tiddler still exists within the document, it is ''hidden from view and will not be searched or invoked as a plugin.''
*{{block{
To view a list of all tiddlers tagged with {{{Trash}}}, simply open the [[Trash]] tiddler (aka, the "trash can").}}}
*{{block{
To reclaim a tiddler from the [[Trash]], click on a title in the trash can to open that tiddler.  Then, edit it to remove the Trash tag (as well as the other tags noted above).}}}
*{{block{
To empty the trash can (i.e. actually //delete// the tiddlers), click on the ''//"empty trash"//'' button that appears in the [[Trash]] tiddler.  You can also add this button to your [[SideBarOptions]] or any other desired location by using the following macro:
{{{
<<emptyTrash>>
}}}
}}}
*{{block{
To ''bypass the trash can'' and use the normal delete handling (with the usual confirmation messages, if chkConfirmDelete is enabled), hold CTRL while clicking 'delete'}}}
*{{block{
To ''bypass both the trash can //and// the confirmation message'' and //immediately delete// the tiddler without any further interaction, hold CTRL+SHIFT while clicking 'delete'}}}
<<<
!!!!!Revisions
<<<
2009.05.20 [1.2.0] documentation rewrite and code cleanup/reduction
2009.05.12 [1.1.0.5] refactored code to add entry point: {{{config.commands.deleteTiddler.sendToTrash(title)}}}
2008.11.14 [1.1.0.4] added SHIFT-CLICK = bypass trash and delete immediately WITHOUT CONFIRMATION
2008.10.14 [1.1.0.3] return FALSE from emptyTrash() handler (fixes IE page transition error)
2008.05.18 [1.1.0.2] when creating the Trash tiddler, pass an empty tags array [] instead of a null value, so other plugins (e.g., InstantTimestampPlugin) won't fail
2006.12.21 [1.1.0.1] only call setDirty() when actually removing tiddlers from trash
2006.12.12 [1.1.0.0] added movedMsg (feedback when tiddler is tagged as Trash).   Make sure tiddler actually exists before tagging it with 'Trash'.  Fetch correct tiddler before checking for 'systemConfig' tag
2006.12.11 [1.0.3.1] Don't create Trash tiddler until needed. Remove Trash tiddler when no trash remains. Don't tag Trash tiddler with 'TrashPlugin'. Moved all user-visible strings to variables so they can be translated by 'lingo' plugins. Use displayMessage() instead of alert()
2006.12.11 [1.0.3] Fixed broken reference to core deleteTiddler. Now storing reference to core deleteTiddler in emptyTrash macro. Reduced deleteTiddler hijacking to only the handler.
2006.12.11 [1.0.2] EmptyTrash now uses removeTiddler instead of deleteTiddler. Supports trashing systemConfig tiddlers (adds systemConfigDisable tag).
2006.12.10 [1.0.1] Replaced TW version with proper Core reference. Now properly hijacking deleteTiddler command.
2006.12.10 [1.0.0] First draft.
<<<
!!!!!Code
***/
//{{{
version.extensions.TrashPlugin= {major: 1, minor: 2, revision: 0, date: new Date(2009,5,20)};
//}}}
//{{{
config.macros.emptyTrash = {
	tag: 'Trash',
	movedMsg: "'%0' has been tagged as %1",
	label: 'empty trash',
	tooltip: 'Delete all items tagged as %0',
	tooltipOlder: 'Delete items tagged as %0 that are older than %1 days old',
	emptyMsg: 'The trash is empty',
	noneToDeleteMsg: 'There are no items in the trash older than %0 days',
	confirmMsg: "The following tiddlers will be deleted:\n\n'%0'\n\nOK to proceed?",
	deletedMsg: "Deleted '%0'",
	handler: function ( place,macroName,params,wikifier,paramString,tiddler ) {
		var namedParams = (paramString.parseParams(daysOld))[0];
		var daysOld = namedParams['daysOld'] ? namedParams['daysOld'][0] : 0; // default
		var buttonTitle = namedParams['title'] ? namedParams['title'][0] : this.label;
		var buttonTip=this.tooltip.format([this.tag])
		if (daysOld) buttonTip=this.tooltipOlder.format([this.tag,daysOld])
		var b=createTiddlyButton(place,buttonTitle,buttonTip,this.emptyTrash);
		b.setAttribute('daysOld',daysOld);
	},
	emptyTrash: function() {
		var cme=config.macros.emptyTrash; // abbrev
		var daysOld=this.getAttribute('daysOld');
		var compareDate=new Date(); compareDate.setDate(compareDate.getDate()-daysOld);
		var collected=[];
		store.forEachTiddler(function(title,tiddler) {
			if (tiddler.isTagged(cme.tag) && tiddler.modified<compareDate)
				collected.push(title);
		});
		if (!collected.length)
			displayMessage(daysOld ? cme.noneToDeleteMsg.format([daysOld]) : cme.emptyMsg);
		else if (confirm(cme.confirmMsg.format([collected.join("', '")]))) {
			for (var i=0;i<collected.length;i++) {
				store.removeTiddler(collected[i]);
				store.setDirty(true);
				displayMessage(cme.deletedMsg.format([collected[i]]));
			}
		}
		if (!store.getTaggedTiddlers(cme.tag).length) // remove Trash if empty
			{ story.closeTiddler(cme.tag,true,false); store.removeTiddler(cme.tag); }
		else
			story.refreshTiddler(cme.tag,false,true); // refresh Trash if visible
		return false;
	}
}
//}}}
// // hijack delete command
//{{{
config.commands.deleteTiddler.orig_handler=config.commands.deleteTiddler.handler;
config.commands.deleteTiddler.handler=function(event,src,title) {
	// BYPASS TRASH: CTRL=normal delete, CTRL+SHIFT=without confirmation
	if (event.ctrlKey) {
		if (event.shiftKey) { var temp=config.options.chkConfirmDelete; config.options.chkConfirmDelete=false; }
		config.commands.deleteTiddler.orig_handler.apply(this,arguments);
		if (event.shiftKey) config.options.chkConfirmDelete=temp;
		story.refreshTiddler(config.macros.emptyTrash.tag,false,true);
		return false;
	}
	config.commands.deleteTiddler.sendToTrash(title);
	return false;
};

config.commands.deleteTiddler.sendToTrash = function(title) {
	var cme=config.macros.emptyTrash; // abbrev
	if (!store.tiddlerExists(title)) return; // make sure tiddler actually exists
	if (!store.tiddlerExists(cme.tag)) // make sure Trash tiddler exists
		store.saveTiddler(cme.tag,cme.tag,'<<emptyTrash>>','TrashPlugin',new Date(),[],{});
	store.setTiddlerTag(title,1,cme.tag);
	store.setTiddlerTag(title,1,'excludeLists');
	store.setTiddlerTag(title,1,'excludeMissing');
	store.setTiddlerTag(title,1,'excludeSearch');
	if (store.getTiddler(title).isTagged('systemConfig'))
		store.setTiddlerTag(title,1,'systemConfigDisable');
	story.closeTiddler(title,true);
	if(config.options.chkAutoSave) saveChanges();
	displayMessage(cme.movedMsg.format([title,cme.tag]));
	story.refreshTiddler(cme.tag,false,true);
};
//}}}
<data>{"abstract":"[[Triangel]], eine Variante des [[Seilquadrat]], bei der es ein //Produktionsteam// und ein //Steuerungsteam// gibt, wobei die [[Kommunikation]] auch noch beeinträchtigt ist. Gar nicht so ungewöhnlich…  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.bumerang-sport.de/katalog/bilder/dreieck.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Triangel","abstract") </script>

!Triangel
<script> return "<<tiddler [[Triangel##Overview]]>>" </script> 

!Objectives
* [[Führung]]
* Kooperation
* [[Kommunikation]]

!Timing
60 min

!Audience
Group

!Materials
* Seil 10m lang

!Procedure
In dieser Übung ist der Trainer der Kunde, der einem Unternehmen den Auftrag gibt, aus einem Seil von 10m Länge ein gleichseitiges Dreieck zu formen (vgl. [[Seilquadrat]]). Dazu muss das Seil an den Enden verknüpft werden, die drei Ecken sind mit Wäscheklammern zu markieren, die Toleranz der Seitenlängen beträgt 10cm. Eine einfache Aufgabe?

Schon, wenn die zwei- bis dreiköpfige Produktionsgruppe nicht blind wäre als Folge der Augenbinden, die ihre Mitglieder tragen. Dazu kommt, dass der Trainer nur mit einer Steuerungsgruppe verhandelt, die wiederum keinen direkten Kontakt zum Produktionsteam hat. 
Sie bekommt den Auftrag vom Trainer geschildert, darf sich drei Minuten besprechen und kann dann wiederum nicht direkt mit dem Produktionsteam kommunizieren, sondern nur mit einer Koordinationsgruppe. Erschwerend kommt hinzu, dass sie mit dieser Gruppe nur nonverbal kommunizieren darf. Für die Umsetzung des Auftrages hat die Gesamtgruppe nur 15 Minuten zur Verfügung. 

Während die Steuerungsgruppe noch diskutiert, geht der Trainer zu der Produktionsgruppe - von der die Steuerungsgruppe räumlich getrennt sein muss -, bittet sie, die Augen zu verbinden und legt dort auf die vorgegebene Arbeitsfläche das Seil und die drei Klammern ab, wobei er auf Fragen der Produktionsgruppe und der Koordinationsgruppe, die den Vorgang beobachten darf, nicht reagiert. 

Er ist Kunde und redet nur mit dem Steuerungsteam. Zu diesem kehrt er sodann zurück, beantwortet etwaige Fragen und startet dann die Zeit. Ab dann interveniert er nur noch, wenn die Steurungsgruppe anfängt zu sprechen oder eine Gruppe ihr Arbeitsfeld verlässt.

Wenn er es besonders realistisch halten möchte, geht der Trainer kurz vor Ablauf der Zeit noch einmal beim Steuerungsteam vorbei und bemerkt, dass er Zweifel hat, ob sein Auftrag rechtzeitig fertig wird. Nach Ablauf der Zeit wird fragt er bei der Steuerungsgruppe nach, ob der Auftrag wie gefordert erfüllt wurde und ob die Toleranzen eingehalten wurden. Wehe dem [[Team]], das gar nicht so recht weiß, wie weit seine Produzenten gekommen sind. Diese wiederum sind immer noch blind und harren der Dinge, die da kommen. Der Trainer vermisst das Produkt und verkündet das Ergebnis. Erst dann ist das Spiel beendet.

Eine feine Sache, um [[Führungskräfte|Führung]] in die Rolle der Produzenten, [[Mitarbeiter]] in die Rolle der Koordinatoren oder Steuerungsgruppe schlüpfen und am eigenen Leib spüren zu lassen, wie das ist, wenn man wenige oder keine Informationen erhält oder völlig vergisst, dass der andere viel weniger weiß als man selbst. Wichtig dabei: Bei mehr als neun Teilnehmern nehmen die verbleibenden eine Beobachterrolle ein und können nachher prima Rückmeldung geben.

!Debriefing


!Quelle
Bernd Heckmair: Schaubühne für Teamarbeit, managerSeminare 1/2001 S.62-68

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Triangel+%28jt%29]]
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.bountifulknight.com/images/StoreCornucopiaPreviews/BK_PegTriangleGame_16_0_imgM.jpg>>
<<showtoc>>
!Overview
This game illustrates the benefits of self-organization – among other things
Introduce this simply as a warm-up or on-your-feet exercise, to avoid pre-conceptions.
All participants stand up and spread out around the room. Ask people not to speak. Each person silently picks two people (not those standing close by) to be their partners.

!Triangle Game
<<tiddler [[Triangle Game##Overview]]>>

!Objectives
* Benefits of self-organization – among other things

!Timing
* 5 minutes the game. 
* Debrief may be 5-10 minutes.

!Materials
* none

!Audience
Group

!Procedure
* Ask each person to move to a positon in the room so that they form an equilateral triangle with their partners.
* If the two partners do not move this is an easy thing to do, but of course they do move because they are also trying to create equilateral triangles with their own partners. This movement to create the triangles will not come to rest. (see note #1)
* After a minute or two has elapsed and people are still milling about, give the instruction: “Now resolve this.”

!Debriefing
What happens? Well different things with different groups. Sometimes they begin asking the facilitator questions: Can we talk now? Can we change partners? Can the triangles overlap/interlock? Sometimes a ‘dominant male’ will take over: You do this, you do that… In all cases resolution will occur very quickly.
What happened? What was your experience, what was hard/easy/annoying/good/etc. How did it feel to reach resolution? All kinds of parallels with software projects have been expressed, e.g. “the requirements were unclear”, “communication was the key to the solution”, “once we understood the parameters the execution was simple”. You may also hear “who put [dominant_male] in charge?” or other questions of that kind. The group should of course, answer these themselves. Try not to have expectations of responses. This exercise continues to suprise me in the way that participants see parallels with many different aspects of an Agile software development process.

!Notes
The triangles will not come to rest, except in a few extremely rare cases where partner choices do not cross over. The larger the group, the less likely this is to happen. Should it occur… adapt! Maybe ask the group how this worked out, would it always work out? What if they did it again? Try it a second time…

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://agilethinking.net/agile2005/TriangleGame.html
* http://agilethinking.net/agile2005/AgileThinkingWorkshop.html
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://t1.gstatic.com/images?q=tbn:FS9VG18qQ4JdjM:http://www.facebook.com/profile/pic.php%3Fuid%3DAAAAAQAQyuf4JacJJgC58tcjhsaXTAAAAAom1OkT4JKy2Vn9QfeBGCQ2>>
<<showtoc>>
!Overview
[[Triple Nickels]], the aim is to have as many ideas as possible. If the team is smaller than 7 - 8 people, do it in a single team. Write feelings, events, important reactions and moments that have happened during the last sprint.


!Triple Nickels
<<tiddler [[Triple Nickels##Overview]]>>

!Objectives
* Get as many ideas as possible.
* Gather Data, Generate Insights in a [[retrospective|Agile Retrospectives]]

!Timing
20 min

!Audience
Group

!Materials
* flipchart
* index cards / sticky notes 

!Procedure
* Form groups — for pairing use [[Gruppenpuzzle]] or [[Hör gut hin!]].
* Each member has five minutes to annotate improvement actions in a piece of paper (say sticky note). 
* Then, pass the note to the member on his/her right. 
* In the end, gather all the notes and share them with the rest of the team. 

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* 
/***
Contains the stuff you need to use Tiddlyspot.com
Note you must also have [[UploadPlugin|http://tiddlylab.bidix.info/#Upload]] installed
***/
//{{{

// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'http://home.arcor/michael.tarnowski/mtWiki/mt_wiki.html';

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

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

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

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

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

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

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

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

});
//}}}
<<upload http://apm-plugins.tiddlyspot.com/store.cgi index.html . .  apm-plugins>><html><a href='http://apm-plugins.tiddlyspot.com/download' class='button'>download</a></html>
<data>{"abstract":"[[Turbo-Retrospektive]], eine einfache und effektive Übung zur Aktivierung nachlassender Energien im Seminar.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://polpix.sueddeutsche.com/polopoly_fs/1.148511.1273508793!/image/image.jpg_gen/derivatives/180x135/image.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Turbo-Retrospektive","abstract") </script>

!~Turbo-Retrospektive
<script> return "<<tiddler [[Turbo-Retrospektive##Overview]]>>" </script> 

!Objectives
* Aktivierung nachlassender Energien.
* Abfragen von Seminarwissen

!Timing
15min

!Audience
Group

!Materials
* Stoppuhr

!Procedure
# Die Seminarteilnehmer erhalten den Auftrag, sich das für sie wichtigste Wort der letzten Arbeitseinheit in Erinnerung zu rufen. 
# Wenn alle ein Wort gefunden haben, fragt der Trainer diese Worte mit der Stoppuhr in der Hand der Reihe nach ab. Sodann nennt er ihnen die benötigte Zeit. 
# In einem zweiten Durchgang wird die Gruppe aufgefordert, die erste Zeit zu übertreffen, es folgt ein dritter und vierter Durchgang, bis alle überzeugt sind, eine schnellere Zusammenfassung des Seminarabschnittes sei nicht möglich. 

!Debriefing



!Quelle
A. Rachow: Der Spieler, managerSeminare 2/99 S.87


!See also
* [[Agile Retrospective]]
* [[Sprint Retrospective]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Die+Turbo-Retrospektive+%28jt%29]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.dernordverbund.de/images/Kompetenzfeststellung_Turmbau.jpg>>
<<showtoc>>
!Overview
[[Turmbau mit verteilten Rollen]]: dass Teilnehmer gemeinsam eine Aufgabe lösen, ist ein klassisches Element von Teamtrainings. Hier bauen sie einen Turm - und zwar mit klar getrennten Rollen, was die Teamdynamik interessanter macht. Eine aktivierende Übung, um Hierarchien und Teamrollen herauszuarbeiten.

!Turmbau mit verteilten Rollen
<<tiddler [[Turmbau mit verteilten Rollen##Overview]]>>

Halbzeit im Seminar: Die Teilnehmer haben schon viel Input erhalten, Konzentration und Energie lassen dagegen nach. Mit der ~Turmbau-Übung können Trainer neuen Schwung in die Gruppe bringen. Bei dieser klassischen gruppendynamischen Übung lernen die Teilnehmer auf spielerische Art etwas über die Prinzipien guter Zusammenarbeit und haben in der Regel zudem jede Menge Spaß. Ihre Aufgabe ist es, einen Turm zu bauen. Zwei Teams wetteifern dabei um den Preis für die beste Konstruktion.

!Objectives
* Hierarchien und Teamrollen entdecken
* Prinzipien guter Zusammenarbeit entdecken

!Timing
180 min 
* 10 min Instruktion
* 60 min Turmbau 
* mind. 10 min Präsentation und Siegerehrung
* 60 min Reflexion

!Materials
* ein großer Bogen Pinnwandpapier
* zwei ~Flipchart-Papierbögen
* mehrere Moderationskarten und Stifte in verschiedenen Farben und Formen
* eine Schere
* ein Lineal
* eine Flasche Klebstoff
* zwei Luftballons (optional)

!Audience
Group (mind. 18 TN)

!Procedure
Das Material, das die Teilnehmer für den Turmbau zur Verfügung haben, verteilt der Trainer gleichmäßig auf zwei Tischen im Seminarraum. Es ist identisch für jedes Team.

Zu Beginn der Übung wird die Seminargruppe, die idealerweise aus mindestens 18 Teilnehmern besteht, in zwei Gruppen aufgeteilt. Der Trainer kann die Teams zufällig zusammenstellen, indem er einfach durchzählt. Die Teilnehmer können sich aber auch selbstständig aufteilen. Dritte Möglichkeit: Der Trainer legt zwei unterschiedliche, aber ähnliche Puzzles bereit, sortiert vorab Teile in Anzahl der Teilnehmer aus und lässt die Teilnehmer ihre Gruppe 'erpuzzeln'. Erst nachdem die Teams eingeteilt sind, weist der Trainer darauf hin, dass sie gleich gegeneinander antreten werden.

!Debriefing

!Credits
* Literaturtipp: Die Übung stammt aus dem Buch 'Teamtrainings erfolgreich leiten'


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.umweltbildung.bayern.de/partner/ust_mobilspiel/pic/turmbau.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.spiel-ideen.ch/shop-spiel-ideen/Media/Shop/172-cuboro_pic.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.abendblatt.de/multimedia/archive/00567/Tarragona_Turmbau_5_567041b.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://7monate.files.wordpress.com/2009/11/02a-der-turmbau-zu-babel-fing-wohl-mal-genau-so-an.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.baukid.de/beide_turmbau_2.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.abendblatt.de/multimedia/archive/00567/Tarragona_Turmbau_2_567038b.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.trainings-shop.com/images/content/Turmbau_260309.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://i.ytimg.com/vi/ng07TMgulLs/0.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://t2.gstatic.com/images?q=tbn:ANd9GcTYH7McFRDnzMm-UZtUoRu55uHGzc_Vg6Ymxc2DQNyQKLGCTyRgJCIUIO1->> /%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>> %/
---- }}}
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Turmbau mit verteilten Rollen — managementSeminar| http://www.managerseminare.de/ta_Artikel/Serie-Seminarbausteine-Turmbau-mit-verteilten-Rollen,209053]]
<data>{"abstract":"Die [[Turmbauübung]] ist eine klassische gruppendynamische Übung zum Thema „[[Kommunikation]] in [[Gruppen|Team]]”: Die Teilnehmer müssen in Teams eine Aufgabe gemeinsam bewältigen und anschließend die Erfahrungen zur Zusammenarbeit reflektieren. Sie lernen spielerisch etwas über die Prinzipien guter Zusammenarbeit und haben in der Regel eine Menge Spaß dabei."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.gs-clausen-donsieders.de/images/turmbau.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Turmbauübung","abstract") </script>

!Turmbauübung
<script> return "<<tiddler [[Turmbauübung##Overview]]>>" </script> 
Kleingruppen von mindestens 8 Mitglieder. Dazu bekommt jede Gruppe 2 Beobachter, deren Aufgabe darin besteht, später im Plenum möglichst genau über die Vorgänge in der Gruppe während der Übung zu berichten.

!Objectives
* Prinzipien guter Zusammenarbeit
* Kommunikation im Team
* Überprüfung der Zusammenarbeit innerhalb einer Gruppe. 
* Bildung von Gruppenidentität und Wettbewerbsgeist. 
* Verdeutlichung der Wirkung verschiedener Organisationsmodelle auf das Funktionieren einer Gruppe.
* Kooperation innerhalb einer Gruppe bei Konkurrenz zwischen den Gruppen

!Timing
2 Stunden und 15 Minuten 
* 15mim Plenum
* 60min Arbeitszeit
* 15min Jury/Pause
* 40min Plenum

!Audience
Group

!Materials
* 0,2 l Wasserglas (Prüfmittel)
Pro Gruppe:
* Hilfsmittel (nicht zu verbauen):
** 1 Schere
** 1 Lineal (30 cm lang)
** 1 Stift
** Papier für Notizen
* Baumaterial:
** 20 Blatt ~DINA4 – Papier
** einen Streifen Tesafilm (1–1,5 Meter)

!Procedure
!!Baubedingungen
Der Turm muß auf einem Fundament ohne andere Unterstützung stehen können, mit einer Standfestigkeit, ein volles 0,2 l Wasserglas tragen zu können. 
Die Jury wird von den Beobachtern gebildet. Sieger ist die Gruppe, deren Turm die höchste Bewertung von den Beobachtern bekommen hat.
Die Gruppen dürfen sich bei der Arbeit nicht sehen.

!!Wettbewerb
Die Gruppen stehen untereinander im Wettbewerb. Die Beurteilung des besten Turms durch die Jury erfolgt nach folgenden Kriterien:
# Höhe des Turms
# Standfestigkeit
# Originalität
Die Jury besteht aus je einem Mitglied jeder Gruppe, das je nach Struktur gewählt oder ernannt wird. Die Jury-Mitglieder verlassen die Gruppen sofort und treffen sich, um die drei erwähnten Kriterien zu präzisieren.
!!Auswertung
Nach 60min Arbeitszeit müssen die Türme anonym der Jury zur Beurteilung zur Verfügung gestellt werden, nach weiteren 15min (Beurteilung durch die Jury) Treffen aller zur Diskussion im Plenum.

!!Instruktionen für die Arbeitsgruppen
* Bauen Sie in dem Ihnen zugewiesenen Raum einen Turm, der ausschließlich aus dem Material, das Ihnen zur Verfügung gestellt worden ist, konstruiert werden soll:
{{indent{
4 Bögen Kartonpapier
1 große Flasche Klebestoff
1 Schere
1 Lineal
4 Bögen Papier (nur zum Entwerfen)}}}
* Die Türme müssen auf ihrem eigenen Fundament stehen können. Sie dürfen also nicht auf einer Unterlage aufgeklebt, gegen die Wand gelehnt etc. sein.
* Sie können Ihr Material in jeder beliebigen Art und Weise, wie es Ihre Gruppe möchte, zuschneiden, biegen, kleben, zusammenfügen usw. 
* Es darf kein Papierstück benutzt werden, das größer als das Lineal ist.
* Die Türme müssen standfest genug sein, um ein volles 0,2 l Wasserglas tragen zu können. 
* Die Türme müssen transportabel sein.
* Der Bau muß in einer Stunde fertig sein. <br>Danach wird der Turm anonym bei der Jury zur Beurteilung abgegeben. <br>Nach weiteren 15min findet eine abschließende Plenumssitzung statt.
* Die Türme werden von der Jury nach drei Kriterien beurteilt: 1. Höhe, 2. Standfestigkeit und 3. Originalität.


!Debriefing
* Wie hat sich die Gruppe für die Arbeit organisiert?
** War eine Struktur vorhanden?
** Welche?
** Wie ist die Gruppe bei der Strukturierung vorgegangen?
** Wie haben die Gruppenmitglieder darauf reagiert?
** Konnten Änderungen in dieser Hinsicht beobachtet werden, wenn ja welche?
* Wie war das Arbeitsklima? – freundlich, verbissen, gelassen ...?
** Konnten einzelne Vorschläge berücksichtigt werden?
** Wurden einige Teilnehmer übergangen?
** Haben sich alle Teilnehmer an der Arbeit aktiv beteiligt?
* Sind während der Arbeit Spannungen aufgetreten?
* Wurde viel herumdiskutiert? 
* Wer half der Gruppe am besten bei der Arbeit? 
* War das Ziel der Übung klar? 
** Wer machte die meisten, wer die besten Vorschläge?
* Erfolgte eine Rollenverteilung, wurde jemand zu Leiter ernannt?
** Wie wurden Entscheidungen gefällt? 
** Wer hat die wichtigsten Entscheidung getroffen?
* Sonstiges


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] 80% auto title http://www.heiligenlexikon.de/Fotos/Turmbau_Babel.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.bravissimo-das-studio.de/Turmbau%20zu%20Babel.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] 80% auto title http://www.partner-fuer-schule.nrw.de/dev/udata/pics/279_Turmbau_im_WBZ.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.rain.de/jubilaeum/09-27-turmbau-zu-babel.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.geo-reisecommunity.de/bild/journeyView/3023/Turmbau-zu-Babel.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.umweltbildung.bayern.de/partner/ust_mobilspiel/pic/turmbau.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.schulen.duesseldorf.de/hs-weberstr/assets/images/Turmbau0809.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.dernordverbund.de/images/Kompetenzfeststellung_Turmbau.jpg>> /%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>> %/
---- }}} 
===


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Diverse Teamspiele - PDF| http://www.region-online.de/bildung/semi/projekte/spiele.pdf]]
<data>{"abstract":"[[Umbrella-Technik]], wenn die Diskussion einmal feststeckt und sich die Gegner verrannt haben, kann der Moderator mit dieser Technik für eine Auflösung sorgen.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://adriansauer.com/images/allg/rain.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Umbrella-Technik","abstract") </script>

!~Umbrella-Technik
<script> return "<<tiddler [[Umbrella-Technik##Overview]]>>" </script> 

!Objectives


!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Zwei Teilnehmer vertreten unterschiedliche Meinungen, der Prozess steckt fest. 

//"Die Idee ist völlig unrealistisch, das wird der Lenkungsausschuss sofort ablehnen." - "Wir sollten auch mal etwas Neues vorschlagen, sonst bleibt ja doch immer alles beim alten!"// 

Der Moderator schlägt ein gemeinsames Oberthema, einen Oberbegriff vor, unter dem sich beide wiederfinden. 
Mögliche Oberthemen: //"Wie überzeugt man einen Lenkungsausschuss?"// oder //"[[Veränderungen|Organizational Change]] realisieren".//

!Debriefing

!Quelle
[[M. Schmidt-Tanger: Veränderungscoaching, Junfermann 1998, S.144| http://www.amazon.de/gp/product/3873873982?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3873873982]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Übungen Konfliktloesungen]<<tiddlerList tags:"conflict_resolution,-newTemplate" header:"Übungen Konfliktloesungen">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Umbrella-Technik+%28jt%29]]
<data>{"abstract":"Wenn das [[Brainstorming]] abgeschlossen ist, bleiben in der Regel etliche [[Ideen|Ideenmanagement]] übrig, die nicht zu verwenden sind. Oder doch? "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://static.howstuffworks.com/gif/recycling-3.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Umnutzen","abstract") </script>

!Umnutzen
<script> return "<<tiddler [[Umnutzen##Overview]]>>" </script> 
Mit Hilfe dieser kleinen Übung lassen sich mitunter völlig verrückte [[Ideen|Ideenmanagement]] doch noch "umnutzen". 

!Objectives


!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Dazu erstellt man eine kleine Tabelle mit drei Spalten. In die erste kommmen die verrücktesten Ideen. Die 3. Spalte ist mit dem eigentlichen Thema überschrieben, die zweite mit dem Titel "Hilfsaufhänger".

Nun geht es in der Gruppe darum, zunächst die Verbindung zwischen der "Schrottidee" und dem eigentlichen Thema herzustellen, dies wird in der 2. Spalte vermerkt. Dann werden aus dieser Verbindung in der 3. Rubrik neue [[Ideen|Ideenmanagement]] entwickelt.

Am besten führt man dies erst einmal in der Gesamtgruppe durch, ehe man weitere [[Ideen|Ideenmanagement]] in Kleingruppen erarbeitet.
Das Verfahren lässt sich in Kreativitätstrainings, Präsentationstrainings, Ideenfindungsworkshops etc. einsetzen.


!Debriefing


!Quelle
Carmen Thomas in: [[Amelie Funcke: Vorstellbar, managerSeminare, 2006, S. 233-234| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FVorstellbar-Methoden-Schauspielern-Regisseuren-normalen%2Fdp%2F3936075441%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214446177%26sr%3D8-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://www.mwonline.de/db/topics/themenentry.php4?to_parebene=Umnutzen+%28jt%29&db=3]]
/***
|Name|UnformattedTextPlugin|
|Source|http://www.TiddlyTools.com/#UnformattedTextPlugin|
|Version|1.1.0|
|Author|[[EricShulman]]|
|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||

Add //extended quotes// around specific tiddler content to prevent any embedded formatting syntax from being processed by TiddlyWiki's rendering engine, so the content will appear exactly as entered into the tiddler (i.e., "raw text"), even when it contains character sequences that would normally be treated as TiddlyWiki formatting instructions.
!!!!!Usage
<<<
This plugin adds new wiki syntax for surrounding tiddler content so that it can be excluded from the TiddlyWiki formatting rules when it is rendered.
//{{{
"""content goes here"""
//}}}
or
//{{{
<nowiki>content goes here</nowiki>
//}}}
where:
* {{{"""}}} //(three double-quote characters)// (or {{{<nowiki>}}} and {{{</nowiki>}}})^^
marks the start and end of the unformatted content^^
<<<
!!!!!Examples
<<<
Content containing TiddlyWiki formatting syntax can be shown with the syntax unchanged:
{{{
"""this text is //not italic// and <<not a macro>> and [[not a link]]"""
<nowiki>this text is //not italic// and <<not a macro>> and [[not a link]]</nowiki>
}}}
"""this text is //not italic// and <<not a macro>> and [[not a link]]"""
<nowiki>this text is //not italic// and <<not a macro>> and [[not a link]]</nowiki>

Note that, although formatting syntax contained ''within'' the quoted content does not affect the style of the output, any formatting syntax ''surrounding'' the quoted content will still be applied.  For example, the following unformatted output will be underlined:
{{{
__"""this text is //not italic// and <<not a macro>> and [[not a link]], but it IS underlined"""__
}}}
__"""this text is //not italic// and <<not a macro>> and [[not a link]], but it IS underlined"""__
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''UnformattedTextPlugin'' (tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
''2006.09.21 [1.1.0]'' added alternative syntax: {{{<nowiki>...</nowiki>}}}
''2005.11.07 [1.0.0]'' initial release
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]
<<<
!!!!!Code
***/
//{{{
version.extensions.unformattedText = {major: 1, minor: 1, revision: 0, date: new Date(2006,9,21)};

config.formatters.push( {
	name: "rawText",
	match: "(?:\\\"{3}|<nowiki>)",
	lookahead: "(?:\\\"{3}|<nowiki>)((?:.|\\n)*?)(?:\\\"{3}|</nowiki>)",
	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 e = createTiddlyElement(w.output,"span",null,null,lookaheadMatch[1]);
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
			}
		}
	}
)
//}}}
<data>{"abstract":"[[Unlösbare Aufgaben]], Übung, um einem [[Team]] deutlich zu machen, dass es keine grundlegende Wahrheit oder eine einzig richtige Lösung gibt.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://matheplanet.com/matheplanet/nuke/html/uploads/5/1781_unloesbare_sudokus2_42666.png>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Unlösbare Aufgaben","abstract") </script>

!Unlösbare Aufgaben
<script> return "<<tiddler [[Unlösbare Aufgaben##Overview]]>>" </script>
Eine echte Herausforderung: Wie geht ein [[Team]] mit einer unlösbaren Aufgabe um? Die Übung stammt von den amerikanischen Trainern David Schmaltz und Amy Schwab. 

!Objectives
* [[Problemlösung]] im Team: es gibt keine einzig richtige Lösung... 

!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Sie bilden aus den Teilnehmern eines Workshops kleinere [[Teams|Team]] und geben ihnen Aufgaben, die unlösbar sind, z.B.: //"Jedes Teammitglied soll gleichzeitig die beiden gegenüberliegenden (mehrere Meter auseinanderliegende) Wände des Raumes mit seinen Händen berühren."//


!Debriefing
Das Besondere daran ist, dass die Aufgaben tatsächlich nicht lösbar sind. Aber das interessiert die Trainer bei der Auswertung gar nicht. Es geht auch nicht darum, welche Lösung gefunden wurde (z.B. dass sich die Teammitglieder vorstellen, sie würden die Wände berühren), und erst recht nicht um die "richtige" Lösung. 

Die Frage am Ende lautet: //"Sind alle Teammitglieder zufrieden mit der Lösung?"//

Wer eine Übung sucht, um einem [[Team]] deutlich zu machen, dass es keine grundlegende Wahrheit oder eine einzig richtige Lösung gibt, hat hier eine Alternative.

!Quelle
Karin von Schumann: Coaching der Zukunft - pragmatisch, praktisch, gut. managerSeminare 1/2005 S. 66

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Unl%F6sbare+Aufgaben+%28jt%29.html]]
/***
|Name|UnsavedChangesPlugin|
|Source|http://www.TiddlyTools.com/#UnsavedChangesPlugin|
|Version|3.3.3|
|Author|[[EricShulman]] - 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|TiddlyWiki.prototype.setDirty,store.saveTiddler,store.removeTiddler|
|Description|show droplist of tiddlers that have changed since the last time the document was saved|
Display a list of tiddlers that have been changed since the last time the document was saved.  The list includes all new/modified tiddlers as well as those changed with "minor edits" enabled and any tiddlers that you import during the session, regardless of their modification date.
!!!!!Usage
<<<
{{{
<<unsavedChanges panel>> or <<unsavedChanges>>
}}}
{{indent{
the ''panel'' keyword displays a 'control panel' interface containing a droplist of unsaved tiddlers and a 'goto' button, along with a command link to 'save changes'.  Depending upon what other plugins are installed, several additional elements will also be displayed: When [[NestedSlidersPlugin]] is installed, the entire control panel is contained within a ''SLIDER''.  When [[LoadTiddlersPlugin]] is installed, a ''REVERT'' button is added.  When [[SaveAsPlugin]] is installed, a ''SAVE AS'' link is added.  When [[UploadPlugin]] is installed, an ''UPLOAD'' (or ''save to web'') link is added.  When [[TrashPlugin]] is installed and there are tiddlers tagged with<<tag Trash>>, an ''EMPTY TRASH'' link is added.
}}}
{{{
<<unsavedChanges list separator>>
}}}
{{indent{
the ''list'' keyword displays a simple space-separated list of unsaved tiddlers without any other command links.  You can specify an optional ''separator'' value that can be used in place of the default space character.  For example, you can specify {{{"<br>"}}} as the separator in order to display each link, one per line.
}}}
{{{
<<unsavedChanges command label tip>>
}}}
{{indent{
the ''command'' keyword displays a single 'command link' that, when clicked, displays a ~TiddlyWiki popup containing the list of unsaved tiddlers, the 'save changes' command and, depending upon what other plugins are installed, additional commands for 'save as', 'upload', and 'empty trash' (similar to the panel display described above).

You can specify optional ''label'' and ''tip'' parameters in the macro to customize the command link text and tooltip.  The default label for the command link is: "There %1 %0 unsaved tiddler%2...", where:
* %0 is automatically replaced with the number of unsaved changes
* %1 is either "is" (if changes=1) or "are" (if changes>1)
* %2 is either blank (if changes=1) or "s" (if changes>1)
resulting in the text: //"There is 1 unsaved tiddler...", "There are 2 unsaved tiddlers...", etc.//
}}}
<<<
!!!!!Examples
<<<
^^//note: the following examples will not display any output unless you have already created/modified tiddlers in the current document.//^^
{{{<<unsavedChanges>>}}}
<<unsavedChanges>>
----
{{{<<unsavedChanges command>>}}}
<<unsavedChanges command>>
----
{{{<<unsavedChanges list>>}}}
<<unsavedChanges list>>
----
{{{<<unsavedChanges list "<br>">>}}}
<<unsavedChanges list "<br>">>
<<<
!!!!!Revisions
<<<
2009.03.02 [3.3.3] fix handling for titles that contain HTML special chars (lt,gt,quot,amp)
2008.09.02 [3.3.2] cleanup popup list output generation and added timestamps/sizes to popup display
2008.08.23 [3.3.1] added optional custom 'label' and 'tip' params to 'command' mode and defined default values for mode, label, tip, and separator as object properties for I18N/L10N-readiness.
2008.08.21 [3.3.0] complete re-write of rendering and refresh processing to support multiple instances and automatic self-refresh (no longer depends upon core refresh notifications)
2008.08.21 [3.2.0] added 'command' option for link+popup as alternative to 'control panel' interface
2008.04.22 [3.1.2] use SaveAsPlugin instead of obsolete NewDocumentPlugin to add "save as" link
2007.12.22 [3.1.1] hijack removeTiddler() instead of low-level deleteTiddler() to correct tracking and refresh handling issues.  in saveTiddler(), check for 'tiddler rename' (title!=newtitle) and adjust list accordingly.
2007.12.21 [3.1.0] added support for {{{<<unsavedChanges list separator>>}}} usage to unsaved tiddlers as a simple list of links, embedded in tiddler content (e.g., [[MainMenu]])
2007.12.20 [3.0.0] rewrite to track ALL changed tiddlers, including imports and minor edits, regardless of saved modification dates.  Also, rewrote display logic to directly refresh macro output instead of triggering a page refresh.  The entire process is MUCH more efficient now.
2007.08.02 [2.0.0] converted from inline script
2007.01.01 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.UnsavedChangesPlugin= {major: 3, minor: 3, revision: 3, date: new Date(2009,3,2)};

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

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

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

// hijack store.setDirty() function to reset change list after file save
// note: do NOT hijack the prototype function.  This hijack should only be applied to
// the main 'store' instance only (i.e., don't refresh when loading temporary store
// as part of ImportTiddlers processing)
if (store.showUnsaved_setDirty==undefined) {
	store.showUnsaved_setDirty=store.setDirty;
	store.setDirty = function(flag) {
		var refresh=this.isDirty() && !flag; // 'dirty' to 'clean', force a refresh…
		this.showUnsaved_setDirty.apply(this,arguments); // but change the flag first.
		if (refresh) {
			config.macros.unsavedChanges.changed=[]; // clear changed list
			config.macros.unsavedChanges.refresh();
		}
	}
}
//}}}
/***
|Name|UntaggedListHandler|
|Version||
|Source|http://www.checkettsweb.com/Oldindex.cgi#%5B%5BUntagged%20list%20handler%5D%5D|
|Author|[[ClintChecketts]]|
|Type|plugin|
|~CoreVersion|2.x|
|Required||
|Description|lists untagged tiddlers.|
|Usage|{{{<<list untagged>>}}}|
***/
// // ''Installation:''
// // Copy this tiddler to your TiddlyWiki (copy the text in edit mode).
// // Also copy the TabMore and TabMoreUntagged tiddlers.

// // ''Code:''
//{{{
config.macros.list["untagged"] = {prompt: "Tiddlers that are not tagged"};

config.macros.list.untagged.handler = function(params)
{
 var results = [];

 store.forEachTiddler(function (title,tiddler) {
 if(!tiddler.tags || tiddler.tags.length == 0){
 results.push(title);
 }
 });
 results.sort();
 return results;
}
//}}}
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.sportpaedagogik-online.de/leicht/tigerba1.gif>>/%
http://www.welt.de/multimedia/archive/00577/korrupt2_DW_Wirtsch_577679p.jpg>> %/
<data>{"abstract":"[[Unternehmensalltag]], eine Übung, die in verschiedenen Phasen eines Seminares vor allem zur Aktivierung der Teilnehmer, z.B. nach einer Mittagspause, eingesetzt werden kann, die aber auch einige Auswertungsmöglichkeiten zum [[Problemlösungsverhalten|Problemlösung]] des [[Teams|Team]] bietet.  "}</data>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Unternehmensalltag","abstract") </script>

!Unternehmensalltag
<script> return "<<tiddler [[Unternehmensalltag##Overview]]>>" </script>

!Objectives
* Aktivierung der (Seminar)Teilnehmer
* [[Problemlösungsverhalten|Problemlösung]] von [[Teams|Team]] 

!Timing


!Audience
Group


!Materials
* 1 Stoppuhr
* 2 Bälle
* 1 Flasche

!Procedure
Die Teilnehmer stellen sich im Kreis auf. 
In der ersten Runde wird ein Ball von einem Teilnehmer zum nächsten geworfen. Jeder merkt sich, von wem er den Ball erhalten hat und wem er ihn weitergereicht hat. Wer den Ball schon hatte, verschränkt die Arme, bis der letzte den Ball erhalten hat.

In der zweiten Runde simulieren die Teilnehmer den "normalen Unternehmensalltag", indem sie sich den Ball in der "gewohnten" Reihenfolge zuwerfen. Nach einer Zeit führt der Trainer den "Dienstweg" ein. Während sich die Teilnehmer also den Ball zuwerfen, lassen sie eine Flasche im Kreis herumgehen.
Wenn sich das eingespielt hat, kommen "Sonderaufgaben" hinzu, d.h. der Trainer gibt einen größeren Ball in die Runde, der in einer nicht festgelegten Reihenfolge zugeworfen wird - bei Beibehalten des normalen Unternehmensalltages und des Dienstweges.

In der dritten Runde nun wird "umstrukturiert". Klatscht ein Teilnehmer in die Hände, wechseln alle Männer (Schwarzhaarigen etc.) die Plätze, wobei die Wurfreihenfolge aus Runde 1 beibehalten werden muss.

Zur weiteren "Verschärfung" kann nun noch der Wettbewerb hinzugenommen werden. Der Trainer behauptet, die Konkurrenz würde den Arbeitsalltag aus Runde 1 deutlich schneller bewältigen und fordert die Runde auf, sich etwas einfallen zu lassen, um den Ball schneller in der vorgegebenen Reihenfolge wandern zu lassen. Mit Hilfe einer Stoppuhr kann der Druck erhöht werden.


!Debriefing
Eine Übung, die einige Ansatzpunkte zur Auswertung z.B. zum [[Problemlösungsverhalten|problem_solving]] der Gruppe bietet.

!Quelle
toolbox. Tipps für ~Weiterbildungs-Professionals, wirtschaft & weiterbildung 11/12.2002 S.25.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Unternehmensalltag+%28jt%29.html]]
/***
|Name|UpdateRelationshipsPlugin|
|Source|http://mattreimer.com/tiddly.html#UpdateRelationshipsPlugin|
|Version|1.0.1|
|Author|Matt Reimer|
|~CoreVersion|2.1|
|Type|plugin|
|Description|when changing the name of a tiddly update all bracketed link references to that name|
~UpdateRelationshipsPlugin will update all links to a tiddler when you change its name. Nothing too fancy and I hope someday that it will be in the core but for now here it is. //Note: This only handles bracketed links.// 
!!!!!Configuration
<<option chkPromptUpdateReferences>> ''Ask before updating references'' (unchecked means do it automatically).
!!!!!Installation
Just install the plugin the same way you would any other TiddlyWiki plugin.
!!!!!Revisions
None so far.
!!!!!Code
***/
//{{{
version.extensions.UpdateRelationshipsPlugin= {major: 1, minor: 0, revision: 1, date: new Date(2010,8,17)};


//get the value from the checkbox
config.options.chkPromptUpdateReferences=true;
if (config.options.chkPromptUpdateReferences===undefined)
	config.options.chkPromptUpdateReferences=false;

(function() { // closure to create local scope for backup


// backup original function
var saveTiddler_orig = TiddlyWiki.prototype.saveTiddler;

// override original function
window.TiddlyWiki.prototype.saveTiddler = function(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created,creator)
{	
	if (newTitle != title){
		//Get the references to the current tiddler
		var references = store.getReferringTiddlers(title);
		var refNames = [];
		var c = false;
		if (references.length > 0) {
			
			//collect the names of the references
			for(var r=0; r<references.length; r++) {
				if(references[r].title != title) {
					c = true;
					refNames.push(references[r].title);
				}
			}
		var refMsg = "This tiddler is referenced in " + refNames.length + " other tidlers. Update all references?";

		}
		var goAhead=true;
		if (c && config.options.chkPromptUpdateReferences){
			goAhead = confirm(refMsg); 		
		}		

		//Do the substitutions if there are any references that need to be updated AND
		// 1. The user selected "ok" on the prompt or 
		// 2. The user doesn't want to be prompted
		if (c && goAhead){
			for (rt=0; rt<refNames.length; rt++){
				//one-by-one go through the references and make the replacements
				var tid=store.getTiddler(refNames[rt]); if (!tid) continue;
				var text=tid.text;
				
				//Replace Bracketed Links
				var oldTidTitle = new RegExp("\\[\\[(.*?)(\\|?)(" + title + ")\\]\\]","mg");
				var newTidTitle = "[[$1$2" + newTitle + "]]";
				text=text.replace(oldTidTitle, newTidTitle);
				store.saveTiddler(tid.title,tid.title,text,tid.modifier,tid.modified,tid.tags,tid.fields,true,tid.created,tid.creator);
			}
			
		}
	}
	return saveTiddler_orig.apply(this, arguments);
}



})();
//}}}
/***
!Licence and Copyright
You are free to use this however you like.  I place this code into the public domain.
***/
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 21/05/2012 15:44:29 | MichaelTarnowski | [[GamesTW.html|file:///P:/mtWiki/GamesTW.html#PasswordOptionPlugin%20GettingStarted]] | [[store.cgi|http://apm-plugins.tiddlyspot.com/store.cgi]] | . | [[index.html | http://apm-plugins.tiddlyspot.com/index.html]] | . |
| 21/05/2012 15:44:35 | MichaelTarnowski | [[GamesTW.html|file:///P:/mtWiki/GamesTW.html#PasswordOptionPlugin%20GettingStarted]] | [[store.cgi|http://apm-plugins.tiddlyspot.com/store.cgi]] | . | [[index.html | http://apm-plugins.tiddlyspot.com/index.html]] | . |
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.3|
|''Date:''|Feb 24, 2008|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 3,
	date: new Date("Feb 24, 2008"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0'
};

//
// Environment
//

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

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

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

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

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

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

//
// uploadOptions Macro
//

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

//
// upload functions
//

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

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

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

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

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

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

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

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

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

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

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

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

//
// Utilities
// 

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

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

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

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

//
// Initializations
//

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

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

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

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


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


//}}}
// null logger : no more UploadLog and no upload logging
// BidiX - 2006/11/8
//{{{
config.macros.upload.UploadLog = function() {return this;};
config.macros.upload.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir,  backupDir) {};
config.macros.upload.UploadLog.prototype.endUpload = function() {};
//}}}
<data>{"abstract":"[[Vernissage]], eine hilfreiche Übung zur [[Wahrnehmung]] des [[Teams]], für die man kein künstlerisches Talent benötigt.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.m-art-in.cc/blog/wp-content/uploads/2007/01/Vernissage06_1.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Vernissage","abstract") </script>

!Vernissage
<script> return "<<tiddler [[Vernissage##Overview]]>>" </script> 
Offenheit ist ein Grundprinzip bei der [[Teamentwicklung|Teamentwicklung / Teambuilding]], allerdings sollte sie nie erzwungen werden. Jeder übernimmt selbst [[Verantwortung]] dafür, wie offen er sein möchte.

!Objectives


!Timing


!Audience
Group


!Materials
* 


!Procedure
Eine möglicher Schritt in Richtung Offenheit ist, dass jedes Gruppenmitglied ein Bild zeichnet mit dem Titel "Wie ich mein [[Team]] wahrnehme". Anschließend werden die Bilder in einer Vernissage vorgestellt. Darauf aufbauen kann eine Themensammlung "Was läuft gut in unserer Zusammenarbeit, was läuft weniger gut".

Eine hilfreiche Übung zur [[Wahrnehmung]] des Teams, für die man kein künstlerisches Talent benötigt.

!Debriefing

!Quelle
Günther Domitter: Kick-off zur Teamentwicklung, Interview in Wirtschaft und Weiterbildung 5/1999 S.26/27.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Vernissage+%28jt%29]]
/%
|Name|Video: Speed Boat — Innovation Game|
|URL|http://www.youtube.com/v/xwVbcioYvdM|
|Description|''[[Speed Boat]]: Innovation Games at Munich Scrum Gathering''<br>Tobias Mayer does a great job of describing "Speed Boat" - one of Luke Hohmann's popular "Innovation Games" we played at the Scrum Gathering in Munich. Facilitated by Paul Culling with tremendous help from Tobias, this game aimed to identify "anchors" or things that were slowing down the Scrum Alliance as an organization.|
|Video|<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/xwVbcioYvdM&hl=de&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/xwVbcioYvdM&hl=de&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>|
%/
<script> return "{{center{<<tiddler [["+tiddler.title+"::Video]]>>}}}" </script>

!Description
<script> return "<<tiddler [["+tiddler.title+"::Description]]>>" </script>

!See also
<<tiddler ShowTiddlerReferences>>

!Weblinks
* <script> return "<<tiddler [["+tiddler.title+"::URL]]>>" </script>
<data>{"abstract":"[[Vier Ecken hat der Raum]], eine Übung, die [[Teammitglieder|Team]] einander näher bringt und ein tieferes Verständnis füreinander ermöglicht.  "}</data>
/%<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.lehrer.uni-karlsruhe.de/~za1098/isit/4eckmeth.jpg>>%/
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.juimka.de/assets/images/Kissen162.JPG>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Vier Ecken hat der Raum","abstract") </script>

!Vier Ecken hat der Raum
<script> return "<<tiddler [[Vier Ecken hat der Raum##Overview]]>>" </script> 
Vier Grundstrebungen der menschlichen Persönlichkeit, die auch als vier "Stammspieler" des Inneren Teams aufgefasst werden können, sind Nähe - Distanz und Dauer - Wechsel (vier Pole nach Riemann 1969). 
Sie können in unterschiedlichen Situationen in unterschiedlichen "Mannschaftsaufstellungen" auftreten. Ein und derselbe Mensch kann auch zu verschiedenen Lebensthemen (Geld, Sexualität, Sterben etc) verschiedene Formationen zur Geltung bringen.

!Objectives


!Timing


!Audience
Group


!Materials
* 

!Procedure
Eine Übung hierzu heißt [[Vier Ecken hat der Raum]]. Dabei beschreibt der Trainer zu verschiedenen Lebensthemen jeweils vier Stellungnahmen, die für Nähe, Distanz, Dauer und Wechsel stehen, und ordnet sie den vier Ecken des Raumes zu. Die Teilnehmer wählen sich entsprechend eine Ecke, die ihnen am ehesten am Herzen liegt. Dort treffen sie "Wesensverwandte" und tauschen sich aus. Welche Pole nach Riemann dahinter stehen, gibt der Trainer erst nach der Übung bekannt. 
Die Teilnehmer können am Ende selbst auswerten, wo sie wie oft gestanden haben und wen sie dort getroffen haben.

!Debriefing

!Quelle
[[Schulz von Thun: Miteinander reden Teil 3, rororo 1998, Seite 271-272|  http://www.amazon.de/gp/product/3499605457?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3499605457]].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Vier+Ecken+hat+der+Raum+%28jt%29]]
<data>{"abstract":"Eine ziemlich witzige Art, in ein Seminar einzusteigen - und gleichzeitig ein spannendes Spiel mit [[Vorurteilen|Vier Kategorien]]. Ausprobieren!  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.lichtblick99.de/stig-man8.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Vier Kategorien","abstract") </script>

!Vier Kategorien
<script> return "<<tiddler [[Vier Kategorien##Overview]]>>" </script> 
Den richtigen Einstieg in ein Seminar zu finden, ist eine Herausforderung für jeden Trainer. Eine reizvolle Version des Kennenlernens und gleichzeitig ein Spiel mit Vorurteilen und [[Ideen|Ideenmanagement]] ist das Spiel [[Vier Kategorien]]. 

!Objectives


!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Dabei stehen alle Teilnehmer (bis zu 40) in der Mitte des Raumes, der Trainer erklärt die Spielregeln. Den vier Ecken des Raumes werden Begriffe, Sprüche etc. zugeordnet, sodann sucht jeder Teilnehmer die Ecke auf, der er sich am ehesten hingezogen fühlt. 
Dort schaut man sich die Kollegen an, die den gleichen Begriff gewählt haben, dann geht es zurück in die Mitte. 
Der Spielleiter nennt weitere Begriffe, die Teilnehmer positionieren sich neu.

Witzige Beispiele für Begriffe sind
# Pizza/ Gyros/ Currywurst/ Bic Mac
# Mercedes/ VW/ Toyota/ Ferrari
# Frust/ Lust/ Streß/ Freude
# sonnig/ nebelig/ verregnet/ stürmisch
# Ich kann nicht/ Ich will nicht/ Ich möchte/ Ich muß
# Aufblicken/ Herabschauen/ Auge in Auge/ Sonstiges
# Vollmilch/ Zartbitter/ Noisette/ ~Trauben-Nuß


!Debriefing
Der Reiz liegt in den Begriffen, der Phantasie des Trainers sind keine Grenzen gesetzt. Natürlich sind auch Fachspezifische Begriffe möglich. Ergänzt werden kann die Übung natürlich auch: Die Teilnehmer können kurz befragt werden, warum sie sich so entschieden haben, die Teilnehmer können sich in den Ecken über ihre Entscheidung austauschen, die letzte Kombination kann zugleich der Einstieg in eine Gruppenarbeit sein usw.

!Quelle
Axel Rachow: Lebendig einsteigen: Vier Kategorien, Wirtschaft und Weiterbildung 1/1999, S.18-19.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Vier+Kategorien+%28jt%29]]
<data>{"abstract":"Wenn in einer [[Organisation]] gravierende Veränderungen anstehen, gilt es, die [[Mitarbeiter]] für das Neue zu gewinnen. Dazu führt man sie durch die vier Zimmer der Veränderung."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.leipziggrafik.de/anker05/pics/zimmer.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Vier Zimmer der Veränderung","abstract") </script>

!Vier Zimmer der Veränderung
Wenn in einer [[Organisation]] gravierende [[Veränderungen|Organizational Change]] anstehen, gilt es, die [[Mitarbeiter]] für das Neue zu gewinnen. Die vier Zimmer sind im Rahmen eines Kick-off-Workshops eine geeignete Methode, um die Verantwortlichen auf das Kommende vorzubereiten, Verständnis für die [[Widerstände|Change Resistance]] zu wecken und die eigene Haltung zu reflektieren.


!Objectives
* Motivation f. [[Organizational Change]]
* Abbau von [[Widerständen|Change Resistance]] 

!Timing

!Materials
* Stellwände oder 4 getrennte Räume
* Pfeilmarkierung auf dem Boden zur Laufrichtungsanzeige
* in jedem "Raum" Plakate mit "typischen Aussagen" für die jeweilige Phase.

!Audience
Group

!Procedure
# Im Raum werden durch Stellwände vier "Zimmer" abgetrennt, Pfeile auf dem Boden zeigen die Richtung an, in denen sie durchwandert werden. 
# In jedem Zimmer hängen Plakate mit "typischen Aussagen" für die jeweilige Phase. Der Moderator leitet den Rundgang ein mit dem Hinweis, dass die vier Zimmer ein Modell dafür sind, wie Menschen mit [[Veränderungen|Organizational Change Model]] umgehen. Dabei macht er deutlich, dass diese vier Phasen immer durchlaufen werden und keine übersprungen werden kann.
# ''Rundgang durch die Zimmer:''
** Das erste Zimmer ist das Zimmer der Zufriedenheit mit Sprüchen wie //"Läuft doch alles gut - Zu viel Veränderung schadet nur - Neue [[Ideen|Ideenmanagement]] kommen und gehen..."//
** Das zweite Zimmer heißt das Zimmer der Verleugnung. Hier wird so getan, als sei alles in Ordnung: //"Kann gar nicht sein - Das betrifft mich nicht - Ohne mich!..."//
** Zimmer Nr. 3 ist das Zimmer der Verwirrung. Hier herrscht Unsicherheit und Angst, weil klar ist, dass es kein Zurück mehr gibt: //"Verändern ja, aber doch nicht so - Alles Theorie - Da sollte man mal Leute mit Erfahrung fragen..."//
** Das vierte Zimmer ist das "Zimmer der Erneuerung", hier wird das Neue in die Tat umgesetzt: //"Ist einen Versuch wert - Daran müssen wir noch arbeiten - In Ordnung, bloß wie?..."//
# ''Einschätzung der Ist-Situation'' <br>       Hier können die Teilnehmer ihre Sicht der Situation schildern, angeleitet mit Fragen wie:
** //In welchem Zimmer befindet sich das Projekt?//
** //In welchem Zimmer befinden sich die [[Führungskräfte|Führung]]?//
** //In welchem Zimmer befinden sich die [[Mitarbeiter]]?//
** //In welchem Zimmer befindet sich das ganze Unternehmen?//

!Debriefing
# ''Diskussion der Ergebnisse im Plenum.'' <br>       Hier werden Hypothesen gesammelt, warum wohl die einzelnen Gruppen sich in unterschiedlichen "Zimmern" befinden und welche Auswirkungen das auf den ganzen Prozess hat.
# ''Klärung gegenseitiger Erwartungen'' <br>       In Kleingruppen werden nun die Erwartungen an die einzelnen Beteiligten im Prozess und an sich selbst formuliert. Typische Fragen sind:
** //Was benötige ich von den anderen für den weiteren Prozessverlauf?//
** //Was will ich für einen erfolgreichen Prozessverlauf beitragen?// 

!Quelle
Alfred Tschönhens und Elmar Bisseger, aus:
[[Arnim Rohm: Change-Tools. Erfahrene Prozessberater präsentieren wirksame Workshop-Interventionen. managerSeminare GmbH, 2006.| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FChange-Tools-Erfahrene-Prozessberater-pr%25C3%25A4sentieren-Workshop-Interventionen%2Fdp%2F3936075395%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214936596%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Vier+Zimmer+der+Ver%E4nderung+%28jt%29.html]]
/***
|''Name:''|Jon Robson's VismoLibrary|
|''Description:''|An opensource library of javascript code designed to create clickable graphics in canvas with VML alternative for Internet Explorer browsers. The purpose of this is to provide hackable, extendable graphics based plugins without being locked in to consumer products such as Flash.|
|''Author:''|JonRobson (http://www.jonrobson.me.uk/Vismo)|
|''CodeRepository:''|http://svn.tiddlywiki.org/Trunk/contributors/JonRobson/Library/Vismo/|
|''Version:''|0.9 |
|''Dependencies:''| Requires jQuery|
|''Comments:''|Please raise questions and make comments at http://groups.google.co.uk/group/TiddlyWikiDev |
|''License:''|[[BSD License|http://www.opensource.org/licenses/bsd-license.php]] |
|''Usage:''|
Not much good on it's own - it provides some nice functions to create graphicsy plugins.
Currently provides horsepower to the following plugins amongst others:
GeoTiddlyWiki (http://www.jonrobson.me.uk/workspaces/tiddlers/GeoTiddlyWiki/), ImageTaggingPlugin, TiddlyTagMindMap (http://tiddlytagmindmap.tiddlyspot.com)
!Wouldn't have been possible without..
http://spatialreference.org/ref/sr-org/google-projection/ for help with google projection hack
***/
var VismoOptimisations = {
    minradius:5,
	packCoordinates: function(coordlist){
		var res = [];
		for(var i=0; i < coordlist.length-1; i+=2){
			res.push([coordlist[i],coordlist[i+1]]);
		}
		
		return res;
	}
	,unpackCoordinates: function(coordlist){
		var res = [];
		for(var i=0; i < coordlist.length; i+=1){
			res.push(coordlist[i][0]);
			res.push(coordlist[i][1]);
		}
		return res;	
	}
	//coords in form [[x1,y1],[x2,y2]]
	,douglasPeucker: function(coords,tolerance, start,end){
		var results = [];

		if(!start) start = 0;
		if(!end) end = coords.length - 1;
		if(start >= coords.length || end >= coords.length || start == end -1){
			return [];
		}	
		var midpoint = {};
	
	
		midpoint.x = (coords[end][0] + coords[start][0]) /2;
		midpoint.y = (coords[end][1] + coords[start][1]) /2;
		
		var bestPoint = {distance:-1, index:-1};
		for(var i=start+1; i < end; i++){
			var x = coords[i][0];
			var y = coords[i][1];
			var deltax = midpoint.x - x;
			var deltay= midpoint.y - y;
			
			var perpendicular_d = Math.sqrt((deltax * deltax ) + (deltay *deltay)); //this is not perpendicular distancd.. i think!
			if(perpendicular_d > bestPoint.distance){
				bestPoint.index = i;
				bestPoint.distance = perpendicular_d;
			}
		}
	
		if(bestPoint.index ==-1 || bestPoint.distance<tolerance){
			var res = [];
			res.push(coords[start]);
			//res.push(coords[end])
			return res; //none of these points are interesting except last
		}
		else{
			results.push(coords[start]);
			var ref = bestPoint.index;
			var splice1 = VismoOptimisations.douglasPeucker(coords,tolerance,start+1,ref);
			var splice2 = VismoOptimisations.douglasPeucker(coords,tolerance,ref,end);
			results = results.concat(splice1);
			results = results.concat(splice2);
			results.push(coords[end]);
			return results;
		}
		
	}
  
	,vismoShapeIsInVisibleArea: function(vismoShape,canvas,transformation){
	    var t1= new Date();
		var left = 0,top = 0;
		var right =  parseInt(canvas.width) + left; 
		var bottom = parseInt(canvas.height) + top;
		var topleft =  VismoClickingUtils.undotransformation(left,top,transformation);
		var bottomright =  VismoClickingUtils.undotransformation(right,bottom,transformation);				
		var frame = {};
		frame.top = topleft.y;
		frame.bottom = bottomright.y;
		frame.right = bottomright.x;
		frame.left = topleft.x;
		var g = vismoShape.getBoundingBox();
		var t2 = new Date();
        VismoTimer["shape_visiblearea"] += (t2-t1);
           
		if(g.x2 < frame.left) {
			return false;}
		if(g.y2 < frame.top) {
			return false;}
		if(g.x1 > frame.right){
			return false;
		}
		if(g.y1 > frame.bottom){
			return false;	
		}
		
		return true;
	}
	
	,vismoShapeIsTooSmall: function(vismoShape,transformation){
	    VismoTimer.start("VismoOptimisations.vismoShapeIsTooSmall");

		if(!transformation ||!transformation.scale) {
		    VismoTimer.end("VismoOptimisations.vismoShapeIsTooSmall");
		    return false;
		}
		var g = vismoShape.getBoundingBox();
		var s = transformation.scale;
		var t1 = (g.width) * s.x;
		var t2 =(g.height) * s.y;

       
		if(t2 < this.minradius&& t1 < this.minradius) 
			{
			  VismoTimer.end("VismoOptimisations.vismoShapeIsTooSmall");
                    return true;}//too small
		else{
		   VismoTimer.end("VismoOptimisations.vismoShapeIsTooSmall");
			return false;
		}
		VismoTimer.end("VismoOptimisations.vismoShapeIsTooSmall");
	}

};window.onbeforeunload =function(){
    try{
        VismoUtils.scrubNodes(window.documentElement);
        
        if (window.CollectGarbage) {
    	    window.CollectGarbage();
        }
    }
    catch(e){
        //get over it
    }
};

Array.prototype.contains = function(item)
{
	return this.indexOf(item) != -1;
};
Array.prototype.clone = function () {var a = new Array(); for (var property in this) {a[property] = typeof (this[property]) == 'object' ? this[property].clone() : this[property]} return a};

if(!Array.indexOf) {
	Array.prototype.indexOf = function(item,from)
	{
		if(!from)
			from = 0;
		for(var i=from; i<this.length; i++) {
			if(this[i] === item)
				return i; 
		}
		return -1;
	};
}

var VismoShapeUtils ={
    randomColor: function(alpha){
       var r = parseInt(Math.random() * 255);
       var g = parseInt(Math.random() * 255);
       var b = parseInt(Math.random() * 255);
       var a;
       if(alpha) var a = parseInt(Math.random() * 255);
       else a = 1;
       return "rgba("+r+","+g+","+b+","+a+")";
    }
    ,_isCoordinate: function(c){
        if(c == "M" || c == "q" || c== 'c') return false;
        else {
            if(typeof(c)== 'number') return true;
        }
    }
    
    ,toHex: function(rgba){
        if(rgba.indexOf("rgba") == 0){
            rgba = rgba.replace("rgba(","");
            rgba = rgba.replace(")","");
        }
        else if(rgba.indexOf("rgb")==0){
             rgba = rgba.replace("rgb(","");
        }
        
        rgba = rgba.replace(")","");
        rgba = rgba.split(",");
        return "#"+this._tohexadecimal(rgba[0])+this._tohexadecimal(rgba[1]) +this._tohexadecimal(rgba[2]);
    }
    ,_tohexadecimal: function(N){
        if (N==null) return "00";
        N=parseInt(N); if (N==0 || isNaN(N)) return "00";
        N=Math.max(0,N); N=Math.min(N,255); N=Math.round(N);
        return "0123456789ABCDEF".charAt((N-N%16)/16)
             + "0123456789ABCDEF".charAt(N%16);
        
    }
    ,opacityFrom: function(rgba){
 
        var rgbcode = rgba.replace("rgba(","");
	    rgbcode = rgbcode.replace(")","");
	    rgbcode = rgbcode.split(",");
	    var opvalue = 0;
	    if(rgbcode.length < 4) opvalue = 1;
	    else opvalue =rgbcode[3];
	    
	    return opvalue;
    }
    ,toRgb: function(hex_rgba,opacity){
        var rgb = {};
        if(hex_rgba.indexOf("#") == 0 && hex_rgba.indexOf(",") == -1){ //hex code argument
            var hex = hex_rgba;
			var hexcode = hex.substring(1);
			rgb.red = this._hexToR(hexcode);
			rgb.blue = this._hexToB(hexcode);
			rgb.green = this._hexToG(hexcode);
		}
		else if(hex_rgba.indexOf("rgba") != -1){
		    var rgbcode = hex_rgba.replace("rgba(","");
		    rgbcode = rgbcode.replace(")","");
		    rgbcode = rgbcode.split(",");
		    rgb.red =rgbcode[0];
		    rgb.green =rgbcode[1];
		    rgb.blue =rgbcode[2];
		    opacity = rgbcode[3];
		}
		return {rgb:"rgb("+rgb.red+","+ rgb.green +","+ rgb.blue+")",opacity:opacity};
	}    
    ,toRgba: function(hex,opacity){
        var rgb = {};
        if(hex.indexOf("#") == 0 && hex.indexOf(",") == -1){ //hex code argument
			var hexcode = hex.substring(1);
			rgb.red = this._hexToR(hexcode);
			rgb.blue = this._hexToB(hexcode);
			rgb.green = this._hexToG(hexcode);
		}
		if(!opacity) opacity = "1.0";
		return "rgba("+rgb.red+","+ rgb.green +","+ rgb.blue+"," + opacity+")";
    }
	/* thank you http://www.javascripter.net/faq/hextorgb.htm*/
	,_cutHex: function(h) {return (h.charAt(0)=="#") ? h.substring(1,7):h}
	,_hexToR:function(h){return parseInt((this._cutHex(h)).substring(0,2),16)}
	,_hexToG: function (h) {return parseInt((this._cutHex(h)).substring(2,4),16)}
	,_hexToB:function(h) {return parseInt((this._cutHex(h)).substring(4,6),16)}

};
var VismoUtils = {
	userAgent: navigator.userAgent.toLowerCase(),
	clone: function(obj){

        if(!obj) return obj;
        if(obj.appendChild) return obj;
	    if(obj == null || typeof(obj) != 'object')return obj;

	    var temp = new obj.constructor(); // changed (twice)

	    for(var key in obj){
	        //console.log(key);
	        temp[key] = VismoUtils.clone(obj[key]);
	        //console.log(temp[key])
	    }

	    return temp;

	}
	,invertYCoordinates: function(coords){
		var res = [];
		for(var i=0; i < coords.length; i++){
			var x = coords[i][0];
			var y = coords[i][1];
			res.push([x,-y]);
		}
		return res;
	},
	scrubNode: function(e)
    {
    	if(!VismoUtils.browser.isIE)
    		return;
    	var att = e.attributes;
    	if(att) {
    		for(var t=0; t<att.length; t++) {
    			var n = att[t].name;
    			if(n !== "style" && (typeof e[n] === "function" || (typeof e[n] === "object" && e[n] != null))) {
    				try {
    					e[n] = null;
    				} catch(ex) {
    				}
    			}
    		}
    	}
    	var c = e.firstChild;
    	while(c) {
    		 VismoUtils.scrubNode(c);
    		c = c.nextSibling;
    	}
    }
    
    ,mergejsons: function(prop1,prop2){
	    
	    var res = {};
	    var i;
	    for(i in prop1){
	        res[i] = prop1[i];
	    }
	    for(i in prop2){
	        res[i] = prop1[i];
	    }
	    return res;
	    
	}
};

VismoUtils.browser= {
		isIE: VismoUtils.userAgent.indexOf("msie") != -1 && VismoUtils.userAgent.indexOf("opera") == -1,
		isGecko: VismoUtils.userAgent.indexOf("gecko") != -1,
		ieVersion: /MSIE (\d.\d)/i.exec(VismoUtils.userAgent), // config.browser.ieVersion[1], if it exists, will be the IE version string, eg "6.0"
		isSafari: VismoUtils.userAgent.indexOf("applewebkit") != -1,
		isBadSafari: !((new RegExp("[\u0150\u0170]","g")).test("\u0150")),
		firefoxDate: /gecko\/(\d{8})/i.exec(VismoUtils.userAgent), // config.browser.firefoxDate[1], if it exists, will be Firefox release date as "YYYYMMDD"
		isOpera: VismoUtils.userAgent.indexOf("opera") != -1,
		isLinux: VismoUtils.userAgent.indexOf("linux") != -1,
		isUnix: VismoUtils.userAgent.indexOf("x11") != -1,
		isMac: VismoUtils.userAgent.indexOf("mac") != -1,
		isWindows: VismoUtils.userAgent.indexOf("win") != -1
	};

if(VismoUtils.browser.isIE && VismoUtils.browser.ieVersion[1] == "6.0"){
VismoUtils.browser.isIE6 = true;

}

if(VismoUtils.browser.isIE){
	if (!document.namespaces['vismoShapeVml_']) {
	        document.namespaces.add('vismoShapeVml_', 'urn:schemas-microsoft-com:vml'/*,"#default#VML"*/);
	        
	}
	document.namespaces.add('xmlns', 'http://www.w3.org/1999/xhtml');
	document.namespaces.add('svg', 'http://www.w3.org/2000/svg');
	document.namespaces.add('xlink', 'http://www.w3.org/1999/xlink');

	  // Setup default CSS.  Only add one style sheet per document
	 if (!document.styleSheets['vismoShape']) {
	        var ss = document.createStyleSheet();
	        ss.owningElement.id = 'vismoShape';
	        ss.cssText = 'canvas{display:inline;overflow:hidden;' +
	            'text-align:left;}' +
	            'vismoShapeVml_\\: * {behavior:url(#default#VML);}';
	}
}
VismoUtils.svgSupport = function(){
        if(VismoUtils.browser.isIE){
                try {
                 var asv = new ActiveXObject("Adobe.SVGCtl");
                 return true;
                }
                catch(e){ }
        }
        else if(document.implementation) {
                if(VismoUtils.browser.isSafari) return true;
                return document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Shape", "1.0");
        }



        return true;
};
/* 
Creates primitive shapes that can be rendered across most browsers
I am not very happy with the code that follows. It is not of the best standard and needs much improvement
coordinates are a string consisting of floats and move commands (M)
*/

var VismoShape = function(properties,coordinates){
    this._isVismoShape = true;
    this.options = {pointsize:5};
    if(!coordinates) {
        coordinates = properties.coordinates;
        delete properties["coordinates"];
    }
    this._optimise_cache = {};
    
	this.coordinates = {
		projected: false,
		normal: [],
		optimised: {},
		optimisedandprojected:{}
	};
	this.grid = {};
	this.width = 0;
	this.height =0;
	this.properties = {};
	this.setProperties(properties);
	if(coordinates[0] && coordinates[0].length == 2){
		coordinates = VismoOptimisations.unpackCoordinates(coordinates);	
	}
	
	this._construct(properties,coordinates);
	this.browser =false;
	this.currentResolution = false;
	this.vml = false;
	this.unique_id = Math.random() + "_" + this.properties.id;
    this.scale = {x:1,y:1};
};



VismoShape.prototype={
    isCommand: function(i){
        if(i == 'M' || i =='b'){
            return true;
        }
        else{
            return false;
        }
    }
    ,clone: function(){
                var coords = this.getCoordinates("normal");
                var props = this.getProperties();
                var p = VismoUtils.clone(props);
                p.coordinates = coords;
                try{
                    //console.log(p);
                    return new VismoShape(p);
                }
                catch(e){
                    throw e;
                }
    }
    ,translate: function(x,y){
  	    var c = this.getCoordinates("normal");

  	    var newc = [];
  	    for(var i=0; i < c.length; i+=2){
  	         if(this.isCommand(c[i])) i+=1;
  	         var newx,newy;

  	        newx = c[i] + x;
  	        newy = c[i+1] + y;
  	        newc.push(newx);
  	        newc.push(newy);
  	    }

  	    this.setCoordinates(newc);
      }

  	,scale: function(x,y){
  	    this._scale.x = x;
  	    this._scale.y = y;
  	    var c = this.getCoordinates("normal");

  	    var newc = [];
  	    for(var i=0; i < c.length; i+=2){
  	        if(this.isCommand(c[i])) i+=1;
  	        var newx,newy;

  	        newx = c[i] * x;
  	        newy = c[i+1] * y;
  	        newc.push(newx);
  	        newc.push(newy);
  	    }

  	    this.setCoordinates(newc);
  	    return true;
  	}
	,resize: function(x,y){
	    var bb = this.getBoundingBox();
	    var newWidth = x *bb.width;
	    var newHeight = y * bb.height;
	    var offsetx = (bb.center.x * x) - bb.center.x;
	    var offsety = (bb.center.y * y)- bb.center.y;
	    this.scale.x = x;
	    this.scale.y = y;
	    var c = this.getCoordinates("normal");

	    var newc = [];
	    for(var i=0; i < c.length; i+=2){
	        var newx,newy;
	        
	        newx = c[i] * x;
	        newy = c[i+1] * y;
	        newx -= offsetx;
	        newy -= offsety;
	        newc.push(newx);
	        newc.push(newy);
	    }
	  
	    this.setCoordinates(newc);
	    return true;
	}
	,moveTo: function(x,y){
	    var st = this.properties.shape;
	    var dim = this.getDimensions();
	 
	    if(st == "point" || st == 'circle'){
	        this.setCoordinates([x,y,dim.width/2, dim.height/2]);
	    }
	    else if(st == 'polygon' ||st == 'path'){
	        var bb = this.getBoundingBox();
	        var movex = x - bb.center.x;
	        var movey = y - bb.center.y;
	        
	        var c = this.getCoordinates("normal");
	        var newc = [];
	        for(var i=0; i < c.length; i+=2){
	            if(this.isCommand(c[i])) i +=1;
	            newc.push(c[i]+movex);
	            newc.push(c[i+1]+movey);
	        }
	        this.setCoordinates(newc);
	    }
	}
	,getShape: function(){
		return this.getProperty("shape");
    }
	,setProperties: function(properties){
	    var newprops = VismoUtils.clone(properties);
		var i;
		for(i in newprops){
		        this.setProperty(i,newprops[i]);
		}
		if(!newprops["z-index"]){
		    this.setProperty("z-index","0");
		}
		if(!newprops.stroke){
			this.setProperty("stroke",'#000000');		
		}
		
	}
	,getBoundingBox: function(){ /* returns untransformed bounding box */
	    return this.grid;
	}
	,setPointSize: function(pointsize){
	    VismoTimer.start("VismoShape.setPointSize");
	    var st = this.properties.shape;
	    if(st != "point") return;
	    if(pointsize) {
		    this.options.pointsize = pointsize;
		    var bb= this.getBoundingBox();
		    this.setCoordinates([bb.center.x,bb.center.y,pointsize/2,pointsize/2]);
		}
		VismoTimer.end("VismoShape.setPointSize");
	}
	,render: function(canvas,transformation,projection,optimisations, browser,pointsize){
	    VismoTimer.start("VismoShape.render");
        this.setPointSize(pointsize); 
		var mode = this.getRenderMode(canvas);
		if(mode == 'ie'){
		     this.render_ie(canvas,transformation,projection,optimisations, browser);    
		}
		else{	
	        this.render_canvas(canvas,transformation,projection,optimisations, browser);
	        //this.render = this.render_canvas;
		}
		 VismoTimer.end("VismoShape.render");	
	}
	,render_ie: function(canvas,transformation,projection,optimisations, browser){
	    
	    VismoTimer.start("VismoShape.render_ie");
	    if(this.properties.hidden){
		        if(this.vml)this.vml.clear();
		        return;
		}
	    if(this.vml===false){ //not created
            this.vml = new VismoVector(this,canvas);
            this.donevml = true;
            
        }
        
           

		this.vml.render(canvas,transformation,projection);
        VismoTimer.end("VismoShape.render_ie");
        return;
	}
	,render_canvas: function(canvas,transformation,projection,optimisations, browser){
		VismoTimer.start("VismoShape.render_canvas");
		var c;
		if(this.properties.hidden) {
		    return;
    	}
    	var vismoShape = this;
    	var ctx = canvas.getContext('2d');
		if(!ctx) return;
		ctx.save();
		if(transformation){
			var o = transformation.origin;
			var tr = transformation.translate;
			var s = transformation.scale;
			var r = transformation.rotate;
			if(o && s && tr){
				ctx.translate(o.x,o.y);
				ctx.scale(s.x,s.y);
				ctx.translate(tr.x,tr.y);
			}
			if(r && r.x)ctx.rotate(r.x);
		}

		VismoCanvasRenderer.renderShape(canvas,vismoShape);
		ctx.restore();
		VismoTimer.end("VismoShape.render_canvas");
	}
	,getTransformation: function(){
	    var transform= this.getProperty("transformation");
	   
	    if(!transform) transform = {translate:false,scale:false};
   		if(!transform.translate)transform.translate = {x:0,y:0};
   		if(!transform.translate.x)transform.translate.x = 0;
   		if(!transform.translate.y)transform.translate.y = 0;
   		if(!transform.scale)transform.scale= {x:1,y:1};
   		if(!transform.scale.x)transform.scale.x = 1;
   		if(!transform.scale.y)transform.scale.y = 1;
	       
	       return transform;
	}
	
    ,setTransformation: function(transformation){
	    this.setProperty("transformation",transformation);
	    this._calculateBounds();
	}
	,setCoordinates: function(coordinates,type){
	    if(this.properties.shape == 'circle' || this.properties.shape == 'point'){
	        if(coordinates.length == 2 && this.coordinates.normal){
	            coordinates.push(this.coordinates.normal[2]);
	            coordinates.push(this.coordinates.normal[3]);
	        }
	    }	        
        var good = [];
        for(var i=0; i < coordinates.length; i++){
            if(coordinates[i] +"" !='NaN')
            {good.push(coordinates[i]);}
        }
     
        if(good.length < 2) {
                throw "cannot set coordinates for VismoShape not enough good coordinates given (coordinates may contain non-number elements)" + coordinates.toString();
        }
        coordinates = good;
                
                
		if(type == 'projected'){ 
		    this.coordinates.projected = coordinates;return;}
		
		this.coordinates.normal = coordinates;
	
		if(this.vml)this.vml.coordinatesHaveChanged();
		this.coordinates.projected= false;
		var i;
		for(i in this.coordinates_optimised){
			delete this.coordinates_optimised[i];
		}
		var j;
		for(j in this.coordinates.optimisedandprojected){
			delete this.coordinates.optimisedandprojected[j];
		}		
		this.grid = {}; //an enclosing grid
		
		if(this.vml) this.vml.path = false; //reset path so recalculation will occur
		var st = this.getShape();
		if(st== 'circle' || st == 'point'){
		    
		    if(coordinates[2] && coordinates[3]) this.setRadius(coordinates[2],coordinates[3]);
		    else this.setDimensions(this.options.pointsize,this.options.pointsize);
		}
		this._calculateBounds();

	}
	,getCoordinates: function(type){
		if(type == 'normal') return this.coordinates.normal;
	    if(type == 'projected') return this.coordinates.projected;
		
		var resolution = this.currentResolution;
		if(this.coordinates.projected) {
			if(this.browser != 'ie' && resolution){
				return this._simplifyCoordinates(resolution,this.coordinates.projected);
				var opt=this.coordinates.optimisedandprojected;
				if(!opt[resolution]) opt[resolution] =  this._simplifyCoordinates(resolution,this.coordinates.projected);
				
				return opt[resolution];
			}		
			return this.coordinates.projected;
		}
		else{
			if(this.browser != 'ie' && resolution){
				var opt=this.coordinates.optimised;
				if(!opt[resolution]) opt[resolution] =  this._simplifyCoordinates(resolution,this.coordinates.normal);
				
				return opt[resolution];
			}	
			return this.coordinates.normal;
		}
	}
	,getProperties: function(){
	    return this.properties;
	}
	,getRenderMode: function(canvas){
	    VismoTimer.start("VismoShape.getRenderMode");
	    if(!this.browser){
		    if(!canvas.getContext) {				
		                this.browser = "ie";
			}
				
			else 	this.browser = "good";
		}
		VismoTimer.end("VismoShape.getRenderMode");
		return this.browser;
	}
	
	,setProperty: function(name,value){
		this.properties[name] = value;
		 //console.log("Reset",name,this);
		 if(this.vml) {
		    this.vml.nochange = false;
	       
	    }
	    if(name == 'z-index'){ //organise a re-sort for the z-index property to kick in
	      if(Vismo.store.Canvas[this._canvasref]){
	        Vismo.store.Canvas[this._canvasref].needsSort = true;
	      }
	    }
	}
	,getProperty: function(name){
		return this.properties[name];
	}

	,_calculateBounds: function(coords){
	    VismoTimer.start("VismoShapes._calculateBounds");
	    var that = this;
		var st = this.getShape();
		var transform = this.getTransformation();

        
		if(st == 'path'){
			this.grid = {x1:0,x2:1,y1:0,y2:1,center:{x:0,y:0}};
			return;
		}
		else if(st == 'point' || st == 'circle' | st == 'image' | st == 'domElement'){
				var coords = this.getCoordinates("normal").clone();
				var x = coords[0]; var y = coords[1]; 
				var dim = this.getDimensions();
				this.grid.center = {};
				this.grid.center.x = x;
				this.grid.center.y = y;
				
				if(transform){
				        if(transform.translate){
				                var tran_x = transform.translate.x;
				                var tran_y =  transform.translate.y;
				                
				                this.grid.center.x += tran_x;
				                this.grid.center.y += tran_y;
				        }
				        if(transform.scale){
				                dim.width *= transform.scale.x;
				                dim.height *= transform.scale.y;
				        }
				}
				var newx = this.grid.center.x;
				var newy = this.grid.center.y;
				var radiusw = dim.width / 2;
				var radiush = dim.height / 2;
				this.grid ={x1: newx -radiusw ,x2: newx + radiusw, y1: newy - radiush, y2: newy + radiush,center:{x:newx,y:newy},width: dim.width,height:dim.height};	

				
				//console.log(this.grid.center.x,this.coordinates.normal,this.properties.transformation);
				return;
		}
		
		if(!coords) coords = this.getCoordinates();
		if(coords.length < 2) return;
		this.grid.x1 = coords[0];
		this.grid.y1 = coords[1];
		this.grid.x2 = coords[0];
		this.grid.y2 = coords[1];
		
		this._deltas = []
		var d = this._deltas;

		var lastX, lastY;
		var index = 0;
	
		lastX = coords[0];
		lastY = coords[1];
		for(var i=0; i < coords.length-1; i+=2){
			var xPos = parseFloat(coords[i]); //long
			var yPos = parseFloat(coords[i+1]); //lat
			var deltax =xPos - lastX;
			var deltay= yPos - lastY;
			if(deltax < 0) deltax = - deltax;
			if(deltay < 0) deltay = -deltay;
			d.push(deltax);
			d.push(deltay);
			if(xPos < this.grid.x1) this.grid.x1 = xPos;
			if(yPos < this.grid.y1) this.grid.y1 = yPos;	
			if(xPos > this.grid.x2) this.grid.x2 = xPos;
			if(yPos > this.grid.y2) this.grid.y2 = yPos;
			
			lastX = xPos;
			lastY = yPos;
		}
		
		//this.grid.x2 *= transform.scale.x;
		//this.grid.y2 *= transform.scale.y;
		this.grid.width = (this.grid.x2 - this.grid.x1);
		this.grid.height = (this.grid.y2 - this.grid.y1);
		/*var transform = this.getTransformation();
		if(transform && transform.scale){
		        var scale = transform.scale;
		        this.grid.width *= scale.x;
		        this.grid.height *= scale.y;
		        
		}*/
		this.grid.center = {};
		this.grid.center.x = (this.grid.x2 - this.grid.x1) / 2 + this.grid.x1;
		this.grid.center.y = (this.grid.y2 - this.grid.y1) / 2 + this.grid.y1;
		
		//recalculate based on scaling
		this.grid.width *= transform.scale.x;
		this.grid.height *= transform.scale.y;
		this.grid.center.x += transform.translate.x;
		this.grid.center.y += transform.translate.y;
		
		var halfw = this.grid.width / 2;
		var halfh = this.grid.height /2;
		this.grid.x1 = this.grid.center.x - halfw;
		this.grid.x2 = this.grid.center.x + halfw;
		this.grid.y1 = this.grid.center.y - halfh;
		this.grid.y2 = this.grid.center.y + halfh;
		
/*		if(transform && transform.translate){
		        var trans = transform.translate;
		        this.grid.center.x += trans.x;
		        this.grid.center.y += trans.y;
		}
*/
		this.grid.x1 = this.grid.center.x - (this.grid.width / 2);
		this.grid.x2 = this.grid.center.x + (this.grid.width /2);
		this.grid.y1 = this.grid.center.y - (this.grid.height/2);
		this.grid.y2 = this.grid.center.y +(this.grid.height/2);
		
		VismoTimer.end("VismoShapes._calculateBounds");
		//if(st == 'path') console.log(this,this.grid);
	}

    ,getCanvas: function(){
        return this.vismoCanvas;
    }
	,setRadius: function(rx,ry){
	    if(!ry) ry = rx;
		this.setDimensions(rx*2,ry*2);
	}
	,getRadius: function(){
		if(this.width) return this.width /2;
	    else{
	        var bb = this.getBoundingBox();
		    return bb.width / 2;
		}
		
	}
	,setDimensions: function(width,height){
		this.width = width;
		this.height = height;
		if(this.properties.shape == 'point'){
		    this.options.pointsize = width;
		}
		this._calculateBounds();
	    
	}
	,getDimensions: function(){
		return {width: this.width, height: this.height};
	}
	
	,_construct: function(properties, coordinates){
	    VismoTimer.start("VismoShapes._construct");
		var shapetype =properties.shape; 
		if(!shapetype) shapetype = 'polygon';
		if(shapetype == 'point' || shapetype == 'circle'){
			var radiusw,radiush;
			if(coordinates[2]) radiusw = coordinates[2];
			else radiusw = this.options.pointsize/2;
			
			if(coordinates[3]) radiush= coordinates[3];
			else radiush = radiusw;
			
			this.setDimensions(radiusw*2,radiush*2);
			this.setCoordinates([coordinates[0],coordinates[1],radiusw,radiush]);
			
		}
		else if(shapetype == 'polygon' || shapetype == 'path')
		{
			this.setCoordinates(coordinates);
		}
		else if(shapetype == 'domElement'){
					       
		        var w = jQuery(this.getProperty("element")).width(); 
		        var h = jQuery(this.getProperty("element")).height(); 
		        this.setDimensions(w,h);
		        this.setCoordinates(coordinates);

		}
		else if(shapetype == 'image'){
			var src = this.getProperty("src");
			if(!src) throw "all images must carry a property src at minimum";
			var image = new Image();
			image.src= src;
			this.image = image;
			var vismoShape = this;
			var w = vismoShape.getProperty("width"); h=  vismoShape.getProperty("height");
			if(coordinates.length > 2){
				w = coordinates[2]; h = coordinates[3];
			}
			image.onload = function(){
				if(!w && !h){
					vismoShape.setDimensions(w,h);
					vismoShape.setCoordinates([coordinates[0],coordinates[1]]);
				}
				vismoShape.ready = true;
			};
			if(image.complete)vismoShape.ready = true;
		
			vismoShape.setDimensions(w,h);
			vismoShape.setCoordinates([coordinates[0],coordinates[1]]);	
			
		}
		else{
			console.log("don't know how to construct basic shape " + properties.shape);
		}		
		VismoTimer.end("VismoShapes._construct");	
		
	}	

	,_applyProjection: function(projection,transformation){
	    VismoTimer.start("VismoShapes._applyProjection");
		var c = this.getCoordinates('normal');
	
		if(!projection || !projection.xy) return c;
	
		if(projection.init) projection.init();
		var newc = [];
		for(var i=0; i < c.length-1; i+=2){
			var moved = false;
			if(!VismoShapeUtils._isCoordinate(c[i])){
				i+= 1;
			}
			var x = parseFloat(c[i]);
			var y = parseFloat(c[i+1]);
			var newx,newy;
			var projectedCoordinate = projection.xy(c[i],c[i+1],transformation);
			if(projectedCoordinate.x && projectedCoordinate.y){
				newx= projectedCoordinate.x;
				newy= projectedCoordinate.y;
			
				if(projectedCoordinate.move){
					moved  =true;
				}
			
				cok = true;
				//check we haven't wrapped around world (For flat projections sss)
				if(!projection.nowrap){
					var diff;
					if(newx > x) diff = newx - x;
					if(x > newx) diff = x - newx;
					if(diff > 100) cok = false; //too extreme change
				}
			
				if(cok){
					if(VismoShapeUtils._isCoordinate(x) && VismoShapeUtils._isCoordinate(y)){
						if(moved){
							newc.push("M");
						}
						newc.push(newx);
						newc.push(newy);
					}

				}
			}	
		}	
		if(newc.length < 2) return;
		this.setCoordinates(newc,"projected");
		this._calculateBounds(newc);
		VismoTimer.end("VismoShapes._applyProjection");
		return newc;
	}


	
	,optimise: function(canvas,transformation,projection,justcompute){
	    VismoTimer.start("VismoShapes.optimise");
	    var ocache = this._optimise_cache;

	    
	    var cid = transformation["cache"]["id1"];
	    var cid2 =transformation["cache"]["id2"];
	    
	    if(this.scale.x > 1){
	        var newx,newy;
	        newx = this.scale.x  * transformation.scale.x;
	        newy = this.scale.y  * transformation.scale.y;
	        cid = newx + ","+newy;
	    }
	    if(!ocache[cid]) ocache[cid] = {};
	    
        if(typeof(ocache[cid][cid2]) != "undefined"){
	        return ocache[cid][cid2];
        }
	    
	    var shapetype = this.properties.shape;
	    if(shapetype == "path") {
	        ocache[cid][cid2] = true;
	        VismoTimer.end("VismoShapes.optimise");
	        return true;
		}
		if(transformation && transformation.scale) {
		    this.currentResolution = Math.min(transformation.scale.x, transformation.scale.y);
		}
		if(projection) {this._applyProjection(projection,transformation);}
		
		if(shapetype != 'point' && shapetype != 'path' && shapetype !="domElement"){ //check if worth drawing				
			if(VismoOptimisations.vismoShapeIsTooSmall(this,transformation)) {
				if(!justcompute && this.vml)this.vml.clear();
				ocache[cid][cid2] = false;
				VismoTimer.end("VismoShapes.optimise");
				return false;	
			}	
		}
		
		if(!VismoOptimisations.vismoShapeIsInVisibleArea(this,canvas,transformation)){
			if(!justcompute && this.vml)this.vml.clear();
			ocache[cid][cid2] = false;
			VismoTimer.end("VismoShapes.optimise");
			return false;	
		}
		ocache[cid][cid2] = true;
		VismoTimer.end("VismoShapes.optimise");
		return true;
	}
	,optimise_ie: function(canvas,transformation,projection){	
	    VismoTimer.start("VismoShape.optimise_ie");
	    var ocache = this._optimise_cache;
	    var cid = transformation["cache"]["id1"];
        if(typeof(ocache[cid]) != "undefined"){
	        return ocache[cid];
        }
        VismoOptimisations.minradius = 6;
	    var sh = this.properties.shape;
		if(sh == 'path' || sh == 'point') {
		        ocache[cid] =true;
               return true;
        }
        
		if(VismoOptimisations.vismoShapeIsTooSmall(this,transformation)) {
				if(this.vml)this.vml.clear();
                VismoTimer.end("VismoShape.optimise_ie");
				ocache[cid] =false;
				return false;		
		}
        ocache[cid] =true;
        VismoTimer.end("VismoShape.optimise_ie");
		return true;
	}
	
	,_simplifyCoordinates: function(scaleFactor,coordinates){// **
		VismoTimer.start("VismoShapes._simplifyCoordinates");
		if(this.getProperty("shape") == 'path') return coordinates;
		/*will use http://www.jarno.demon.nl/polygon.htm#ref2 */
		if(!coordinates) throw "give me some coordinates!";
		var originals =coordinates;
		var tolerance;
		var bb = this.getBoundingBox();
		
		var d;
		if(bb.width < bb.height) d = bb.width;
		else d = bb.height;
		tolerance = (d/4) / scaleFactor;
		
		coordinates = VismoOptimisations.packCoordinates(coordinates);
		coordinates = VismoOptimisations.douglasPeucker(coordinates,tolerance);
		
		coordinates = VismoOptimisations.unpackCoordinates(coordinates);	
		
		var diff = originals.length - coordinates.length;
		
		VismoTimer.end("VismoShapes._simplifyCoordinates");
		if(diff < 10) return originals;
		else 
		return coordinates;	
	}


};/*
A package for rendering geojson polygon and point features easily to create maps
*/
var GeoTag = function(longitude,latitude,properties){
	var geo = {};
	geo.type = "feature";
	geo.geometry = {};
	geo.geometry.type = "point";
	geo.geometry.coordinates = [longitude,latitude];
	geo.properties = properties;
	return geo;	
};

var VismoMap = function(wrapper,options){  
    
    if(wrapper.length){ //for jquery
        var result = [];
        for(var i=0; i < wrapper.length; i++){
            var x = new VismoMap(wrapper[i],options);
            result.push(x);
        }
        return x;
    }
    
	if(typeof wrapper == 'string') wrapper = document.getElementById(wrapper);
	else wrapper = wrapper;
		
	this.wrapper = wrapper;
	wrapper.vismoMap = this;
	//wrapper.style.position = "relative";
	var that = this;
	this.settings = {};
	var w= jQuery(wrapper).width();
	var h= jQuery(wrapper).height();
	jQuery(wrapper).css({width:w,height:h});
	
	this.feature_reference = {};
	if(!options) options = {};


	var that = this;
	var handler = function(t){
	    that.transform(t);
	}
	//if(!options.vismoController) options.vismoController = {};
	if(options.vismoController)options.vismoController.handler = handler;

	this.vismoCanvas = new VismoCanvas(wrapper,options);
	this.controller = this.vismoCanvas.vismoController;
	
	//run stuff
	if(this.controller)this.transform(this.controller.transformation); //set initial transformation
	this._fittocanvas = true;
	this.geofeatures = {};
	this.features = [];
	this.clear();
	
	var proj = options.projection;
	var eMap = this;
	this._hijackMouseFunctions();
	if(options.tooltip){
	    this.vismoCanvas.addTooltip(function(el,s){
	        if(s){
	        el.innerHTML = s.getProperty("name");
            }
	    });
	    
	}
		this.mouse({down:options.mousedown,up:options.mouseup,move:options.move,dblclick:options.dblclick,keypress:options.keypress});
	
	var eMap = this;
	if(proj){
		if(proj == 'globe' || proj == 'spinnyglobe'){
			eMap = new VismoGlobe(this);
			if(proj == 'spinnyglobe'){
				eMap.toggleSpin();
			}
		}
		if(proj == 'google'){
			eMap.settings.projection = VismoSlippyMap.prototype.getGoogleMercatorProjection();
		}
		else if(proj == 'slippystaticmap'){
			eMap = new VismoSlippyMap(this);					
		}
		
	}
	
	if(options.geojson){
	    this.drawFromGeojson(options.geojson,options.fullscreen);
	}
	else if(options.georss){
	    this.drawFromGeojson(VismoConversion.geoRssToGeoJson(options.georss),options.fullscreen);
	}
	else if(options.kml){
	    this.drawFromGeojson(VismoConversion.kmlToGeoJson(options.kml),options.fullscreen);
	}
	return eMap;
};  
VismoMap.prototype = {
	setTransparency: function(args){
	    var alpha = arguments[0];
		this.vismoCanvas.setTransparency(alpha);
	}
	,getVismoShapes: function(args){
		return this.vismoCanvas.getMemory();
	}
	,resize: function(args){
	    var width = arguments[0];
	    var height = arguments[1];
		this.wrapper.style.width = width+"px";
		this.wrapper.style.height = height +"px";
		var  t=this.getTransformation();
		t.origin.x = width / 2;
		t.origin.y = height / 2;
		this.setTransformation(t);
		this.vismoCanvas.resize(width,height);

		this.clear();

	}
	,getProjection: function(args){
		return this.settings.projection;
	}
	,setProjection: function(args){
	    var projection = arguments[0];
		this.settings.projection = projection;

	}
	,clear: function(args){ /* does this work in IE? */
		var deleteMemory = arguments[0];
		this.vismoCanvas.clear(deleteMemory);
	},
	
	drawFromGeojson: function(args){
        var geojson = arguments[0];
        var autosize = arguments[1];
			if(typeof geojson == 'string'){
				geojson = eval('(' +geojson+ ')');
			}
							
			this._lastgeojson = geojson;
			if(autosize){
			 	var t = VismoMapUtils.fitgeojsontocanvas(geojson,this.wrapper);

				var p =this.getProjection();
				if(p && p.name == "GLOBE") {
					t.translate = {x:0,y:0};
				}
					
				this.controller.setTransformation(t);
			}
		
			var type =geojson.type.toLowerCase();		
	 
			if(type == "featurecollection"){
				var features = geojson.features;
				this.drawGeoJsonFeatures(features);
			}  else if(type =='feature') {
				this.drawGeoJsonFeature(geojson);
			} else {
				console.log("only feature collections currently supported");
			}

			this.render();
			
	},
	drawFromGeojsonFile: function(args){
	    var file = arguments[0];
		var that = this;
		var callback = function(status,params,responseText,url,xhr){
		
			that.drawFromGeojson(responseText);
		};
		VismoFileUtils.loadRemoteFile(file,callback);
	}

	,getTransformation: function(args){
		if(!this.transformation){
			return false;
		}
		else
			return this.transformation;
	}
	,setTransformation: function(args){
	    var transformation = arguments[0];
		if(typeof transformation.translate.x != 'number'||typeof transformation.translate.y != 'number') throw "bad transformation translate given ";
		if(typeof transformation.scale.x != 'number'||typeof transformation.scale.y != 'number') throw "bad transformation scale given ";
		
		this.controller.setTransformation(transformation);
	}
	,moveTo: function(args){
	    var longitude= arguments[0];
	    var latitude = arguments[1];
	    var zoom = arguments[2];
		var newt = {translate:{},scale:{}};
		var transformation =this.getTransformation();
		
		var newxy={};
		newxy.x = parseFloat(longitude);
		newxy.y = parseFloat(latitude);
		
		if(this.settings.projection){
		 	newxy = this.settings.projection.xy(newxy.x,newxy.y,transformation);
		}
		newt.translate.x = - newxy.x;
		newt.translate.y = newxy.y;
		
		if(!zoom){
			zoom =transformation.scale.x;
		}
		else{
			zoom = parseFloat(zoom);
		}
		newt.scale.x = zoom;
		newt.scale.y = zoom;
		this.controller.setTransformation(newt)
		
	}

	,redraw: function(args){
		this.render();	

	    //alert("average VML render"+ VismoVector.rstats);
	    //alert("total average VML render time"+ VismoVector.rstats * VismoVector.rnum);
	},
		
	transform: function(args){
	    var transformation = arguments[0];
		//console.log(arguments);
		var w =parseInt(this.wrapper.style.width);
		var h = parseInt(this.wrapper.style.height);
		var t =transformation.translate;
		var s = transformation.scale;
	
		this.transformation = transformation;
		/*if(!transformation.origin){
			this.transformation.origin = {};
			var origin = this.transformation.origin;
			origin.x =w / 2;
			origin.y =h / 2;
		}*/
		
		if(s.x < 0.5) s.x = 0.5;
		if(s.y < 0.5) s.y = 0.5;
		
		if(t.x > 180) t.x = 180; //t.x=Math.min(t.x, 180)
		if(t.x < -180) t.x = -180;
		
		if(t.y > 85.0511) t.y = 85.0511;
		if(t.y < -85.0511) t.y = -85.0511;
		
		if(!this.transformation.rotate){
				this.transformation.rotate = {x:0,y:0,z:0};
		}
			
		
		var that = this;
		var f = function(args){
		    that.vismoCanvas.setTransformation(that.transformation);
		    that.redraw();
		}
		window.setTimeout(f,0);

	},


	/*onmouseup and ove are functions with following parameters:
		e,shape,mouse,longitude_latitude,feature
		
	*/
	mouse: function(args){
 	    if(!args){
	        return {up: this.onmouseup, down: this.onmousedown, move: this.onmousemove, dblclick: this.ondblclick,keypress:this.onkeypress};
	    }
			if(args.move)this.onmousemove =args.move;
			if(args.up)this.onmouseup = args.up;
			if(args.down)this.onmouseup = args.down;
			if(args.keypress) this.onkeypress = args.keypress;
			if(args.dblclick) this.ondblClick = args.dblclick;
	}

	,_hijackMouseFunctions: function(args){
	        var eMap = this;
	        var getParameters = function(e){
			var result = {};
			var code;
			if (e.which) code =e.which;
			else if (e.keyCode) code = e.keyCode;
			var character;
			if(code) character = String.fromCharCode(code);	
			var t = VismoClickingUtils.resolveTargetWithVismo(e);
			if(t && t.getAttribute("class") == 'vismoControl') return false;
			var shape = eMap.vismoCanvas.getShapeAtClick(e);
			if(shape) {
				result.shape = shape;
				result.feature = eMap.geofeatures[eMap.vismoCanvas.getMemoryID(shape)];
			}
		
			
			var pos = VismoClickingUtils.getMouseFromEvent(e);
			var x =pos.x;
			var y = pos.y;
			result.mouse = pos;
			result.longitude_latitude = VismoMapUtils.getLongLatFromMouse(x,y,eMap);
			result.event = e;
			result.keypressed = character;
			return result;
			
		};
		
		 var md = function(e,s){
	                var r = getParameters(e);
	                if(eMap.onmousedown) eMap.onmousedown(e,s,r.mouse,r.longitude_latitude,r.feature,r.key,eMap);
	        };
	        
	        var mu = function(e,s){
	                var r = getParameters(e);
	                if(eMap.onmouseup) eMap.onmouseup(e,s,r.mouse,r.longitude_latitude,r.feature,r.key,eMap);
	        };
	        var mm = function(e,s){
	            
	                var r = getParameters(e);
	                if(eMap.onmousemove) eMap.onmousemove(e,s,r.mouse,r.longitude_latitude,r.feature,r.key,eMap);	                
	        };
	        var dbl = function(e,s){
	                var r = getParameters(e);
        	        if(eMap.ondblClick) eMap.ondblClick(e,s,r.mouse,r.longitude_latitude,r.feature,r.key,eMap);
	        };
	        var key = function(e,s){
	                var r = getParameters(e);
                        if(eMap.onkeypress) eMap.onkeypress(e,s,r.mouse,r.longtitude_latitude,r.feature,r.key,eMap);
	        }
	        this.vismoCanvas.mouse({mousedown:md,mouseup:mu,mousemove:mm,dblclick:dbl,keypress:key});
	}

	,render: function(args){
	    var d1 = new Date();
	    var flag = arguments[0];
		var tran =this.transformation;

		var that = this;

		this.vismoCanvas.render(this.settings.projection);
		if(this.settings.afterRender) {
			this.settings.afterRender(tran);
			
		}
		var t = document.getElementById(that.wrapper.id + "_statustext");
		if(t) {
			t.parentNode.removeChild(t);	
		}
		var d2 = new Date();
		var id="mapRender";
		if(!VismoTimer[id]) VismoTimer[id] = 0;
		VismoTimer[id] += (d2 - d1);
		
		
		
	
	},
	
	getFeatures: function(args){
	       if(arguments[0] && this.features[arguments[0]]) return this.features[arguments[0]];
	       return this.features;
	}
	,drawGeoJsonFeature: function(args){
	    var featuredata = arguments[0];
	    var props = arguments[1];
		var feature = new VismoMap.Feature(featuredata,props);		
		var s = feature.getVismoShapes();		
		for(var i=0; i < s.length; i++){
			this.vismoCanvas.add(s[i]);
			//this.geofeatures[this.vismoCanvas.getMemoryID(s[i])] = feature;
		}	
         this.features.push(feature);
	},
	drawGeoJsonFeatures: function(args){
	    var features = arguments[0];
			var avg1 = 0;
				
			for(var i=0; i < features.length; i++){
			
				this.drawGeoJsonFeature(features[i],{featureid:i});
			}

	}
	,getVismoCanvas: function(args){
	        return this.vismoCanvas;
	}
};


VismoMap.Feature = function(feature,props){
	this.init(feature,props);
};

VismoMap.Feature.prototype = {
	init: function(args){
	    var feature = arguments[0];
	    if(arguments[1])extra_properties = arguments[1];
	    else extra_properties = {};
		this.properties = feature.properties;
		this.geometry = feature.geometry;
		this.outers = [];
		this.vismoShapes = [];
		var geometry = this.geometry;
		var type =geometry.type.toLowerCase();

		if(type == 'multipolygon'){
			this._drawGeoJsonMultiPolygonFeature(feature.geometry.coordinates,feature);
		}
		else if(type == 'linestring' || type=='multilinestring' || type == 'multipoint' || type=='geometrycollection'){
			console.log(type + " not supported yet");
		}

		else if(type == 'polygon'){
			this._drawGeoJsonPolygonFeature(feature.geometry.coordinates,feature);
		}
		else if(type == 'point'){
			this._drawGeoJsonPointFeature(feature.geometry.coordinates,feature);				
		}
		else {	
			console.log("unsupported geojson geometry type " + geometry.type);
		}		
        var x = this.getVismoShapes();
        var f;
  
        for(f in extra_properties){
    
             for(var i=0; i < x.length; i++){
                x[i].setProperty(f,extra_properties[f]);
            }
        }
	}
	,addOuterVismoShape: function(args){
		var shape = arguments[0];
		this.outers.push(shape);
	}
	,getOuterVismoShapes: function(args){
		return this.outers;
	}
	,addVismoShape: function(args){
	    var vismoShape = arguments[0];
		this.vismoShapes.push(vismoShape);
	}
	,getVismoShapes: function(args){
		return this.vismoShapes;
	}
	,_drawGeoJsonMultiPolygonFeature: function(args){
	    var coordinates=  arguments[0];
	    var feature = arguments[1];
		var outer;
		
		for(var i=0; i < coordinates.length; i++){ //it's a list of polygons!
			var s = this._drawGeoJsonPolygonFeature(coordinates[i],feature,i);
			
		}
		
	},	
	_drawGeoJsonPolygonFeature: function(args){
        var coordinates=  arguments[0];
	    var feature = arguments[1];
	    var featureid = arguments[2];
		var p = feature.properties;
		p.shape = 'polygon';
		//console.log(coordinates[0]);
		
		var outer = false;
		for(var j=0; j< coordinates.length; j++){//identify and create each polygon
			var coords =coordinates[j];	
			coords = VismoUtils.invertYCoordinates(coords);
			var s = new VismoShape(p,coords);
			s.properties.geometryid = featureid;
			s.properties.geometryid2 = j;
			this.addVismoShape(s);
		}
		return outer;		
		
	},
	_drawGeoJsonPointFeature: function(args){
	    var coordinates=  arguments[0];
	    var feature = arguments[1];

		var p = feature.properties;
		p.shape = 'point';
		coordinates[1] = -coordinates[1];
		var s = new VismoShape(p,coordinates);
		this.addVismoShape(s);
	}
	,setProperty: function(args){
	    var id = arguments[0];
	    var val = arguments[1];
	    var shapes = this.getVismoShapes();
	    for(var i=0; i < shapes.length;i++){
	        shapes[i].setProperty(id,val);
	    }
	}
};
/*Extends VismoMaps to provide tiled background */
var VismoGlobe=  function(eMap){
	var i;
	for(i in VismoGlobe.prototype){
		eMap[i] = VismoGlobe.prototype[i];
	}	
	
	eMap.setGlobeProjection("GLOBE");
	return eMap;
	
};

VismoGlobe.prototype = {
	setGlobeProjection: function(){
		var vismomap = this;
		vismomap._fittocanvas = false;
		this.settings.beforeRender = function(t){
				vismomap._createGlobe(vismomap.getProjection().getRadius(t.scale));
		};
		
		this.settings.projection= {
				name: "GLOBE",
				nowrap:true,
				radius: 10,
				direction: 0
				,init: function(){
					this.direction = 0;
				}
				,getRadius: function(){
					return this.radius;
				}
				,inversexy: function(x,y,t){
						var radius =this.getRadius(t.scale);
						var res = VismoMapUtils._undospherify(x,y,t,radius);
						return res;
				}
				,xy: function(x,y,t){
					
					var radius =this.getRadius(t.scale);
					if(!radius || !x || !y || !t) return {x:x,y:y};
					var res = VismoMapUtils._spherifycoordinate(x,y,t,radius);
					/*
					if(res.movedNorth && this.direction >= 0){
						this.direction = -1;
						res.move= true;
					}
					else if(res.movedSouth && this.direction <= 0){
						this.direction = 1;
						res.move = true;
					}
					
					if(res.y > radius - 10 || res.y < 10-radius){
						
						res.y = false;
					}*/
					return res;
				}
		};
		
		var heightR = parseInt(vismomap.wrapper.style.height)  /2;
		var widthR= parseInt(vismomap.wrapper.style.width) /2;
		if(widthR > heightR){
			this.settings.projection.radius = heightR;
		}
		else{
			this.settings.projection.radius = widthR;
		}
		
	
		
	}
	,toggleSpin: function(){
		var eMap = this;
		var f = function(){
			var t = eMap.controller.transformation;
			if(!t.rotate) t.rotate = {};
			if(!t.rotate.z) t.rotate.z  = 0;
		
			t.rotate.z += 0.3;
			eMap.controller.setTransformation(t);
			window.setTimeout(f,600);
		};
		f();
	}
	,_createGlobe: function(radius){
		if(VismoUtils.browser.isIE) {return;}
		var ctx = this.vismoClicking.canvas.getContext('2d');
		if(!ctx) return;
		var t =this.controller.transformation;
		var tr =t.translate;
		var s = t.scale;
		var o = t.origin;
		ctx.save();	
		ctx.translate(o.x,o.y);
		ctx.scale(s.x,s.y);
		ctx.translate(tr.x,tr.y);
	
	
		var radgrad = ctx.createRadialGradient(0,0,10,0,0,radius);

		radgrad.addColorStop(0,"#AFDCEC");
		radgrad.addColorStop(0.5, '#00C9FF');
		radgrad.addColorStop(1, '#00B5E2');
		radgrad.addColorStop(1, 'rgba(0,201,255,0)');

		ctx.beginPath();
		ctx.arc(0, 0, radius, 0, Math.PI*2, true);
		ctx.closePath();
		ctx.fillStyle = radgrad;
		ctx.fill();
		ctx.restore();

	}
};



var VismoSlippyMap = function(vismoMap){	
	//vismoMap.resize(512,512);
	this.loadedurls = {};
	this.setupSlippyStaticMapLayer(vismoMap);

        vismoMap.oldDrawFromGeojson = vismoMap.drawFromGeojson
         vismoMap.drawFromGeojson = function(geojson,autosize){
                vismoMap.oldDrawFromGeojson(geojson,false);
        };
        
	return vismoMap;
};

VismoSlippyMap.prototype = {
	getGoogleMercatorProjection: function(vismomap){
		
		var p = {};
		p.source = new Proj4js.Proj('WGS84');//
		p.dest = new Proj4js.Proj('GOOGLE');
		p.resultCache = {};
		var that = this;
		p.getTileServerUrl = function(){
		        return that.tileserverurl;
		}
		p.tilesize = 256;
		p.googleHack = 1/((2 * Math.PI * 6378137) /p.tilesize);
		p.inversexy = function(x,y){
			x /= this.googleHack;
			y /= this.googleHack;
			var pointSource = new Proj4js.Point(x ,y);
			var pointDest = Proj4js.transform(p.dest,p.source, pointSource);

			return pointDest;
		}

		p.calculatescalefactor= function(vismomapscale,res){
			
			if(!res){ 
				if(vismomapscale <= 1){
					return 0;
				}
				else{
					res = 0;
				}
			}
			
			if(vismomapscale <= 1){
				return res;
			}
			else{
				var news = vismomapscale / 2;
				res +=1 ;
				return this.calculatescalefactor(news,res);
			}
		};
		p.xy = function(x,y,t){
			
				if(this.resultCache[x+"|"+y]) {
					return this.resultCache[x+"|"+y];
				}
				var pointSource = new Proj4js.Point(x,y);
				var pointDest = Proj4js.transform(p.source,p.dest, pointSource);


				var newx =pointDest.x;
				var newy = pointDest.y;
				newx *= this.googleHack;
				newy *= this.googleHack;
				
				this.resultCache[x+"|"+y] = {x:newx , y:newy};
				return this.resultCache[x+"|"+y];
				
		}
		return p;
	}
	,setupSlippyStaticMapLayer: function(eMap){
		/*Filename(url) format is /zoom/x/y.png */
		
		var projection = this.getGoogleMercatorProjection(eMap);
		//var projection = {};
		eMap.setTransparency(0.7);
		eMap.settings.projection = projection;
		var that = this;
		
		var mapheight =parseInt(eMap.wrapper.style.height);
		var mapwidth =parseInt(eMap.wrapper.style.width);
		var tileGridDimension = {x:mapwidth/projection.tilesize + 1,y:(mapheight/projection.tilesize) + 1};
		var tiles = this._createTiles(eMap,tileGridDimension.x,tileGridDimension.y);
		var eMap = eMap;
		
		eMap.settings.afterRender = function(transformation){
		        var origin = transformation.origin;
			jQuery(that.tilesWrapper).css({top: origin.y, left: origin.x});
			var zoomOut = false;
			if(eMap.settings.lastScale > transformation.scale.x)
				zoomOut = true;
			eMap.settings.lastScale = transformation.scale.x;
			var x =0,y =0,lo,la, translate= transformation.translate,scale= transformation.scale;
		
			eMap.wrapper.style.backgroundImage = "none";
			var zoomL = projection.calculatescalefactor(scale.x);	
	
				
			var mapheight =parseInt(eMap.wrapper.style.height);
			var mapwidth =parseInt(eMap.wrapper.style.width);
			
			var tile = tiles["main"];
			var left = (scale.x * translate.x);
			var top = (scale.y * translate.y);
			top += (origin.y - 128);
			left += (origin.x - 128);
			tile.style.top = top + "px";
			tile.style.left = left + "px";
			if(zoomL == 0){
				var i;
				for(i in tiles){
					tiles[i].style.backgroundImage ="none";
				}
				zoomL = 0;
				tilex = 0;tiley=0;
				var slippyurl =projection.getTileServerUrl()+zoomL +"/"+tilex+"/"+tiley+".png";
				that.renderTile(slippyurl,zoomL,tilex,tiley,tile);					
			}
			else{
				
				tiles.main.style.backgroundImage = "none";
				var temp ={x: (translate.x),y:(translate.y)};
				temp.x *= scale.x;
				temp.y *= scale.y;				
				temp.x += (origin.x);
				temp.y += (origin.y);
				var tlleft = temp.x;
				var tltop =temp.y;
				//brtop = brtop%(256);
				tlleft= temp.x % 256;
				tltop =  temp.y % 256;
                                if(tltop > 0) tltop -= 256;
                                if(tltop < -256) tltop += 256;
                                if(tlleft < -256) tlleft += 256;
		                if(tlleft > 0) tlleft -= 256;
				var lola;
				
				lola = VismoMapUtils.getLongLatAtXY(tlleft+128,tltop+128,eMap);
			
				var tltilexy =VismoMapUtils.getSlippyTileNumber(lola.longitude,lola.latitude,zoomL,eMap);
				
				for(var idX=0; idX < tileGridDimension.x; idX++){
					for(var idY=0; idY < tileGridDimension.y; idY++){
						var leftShift = idX;
						var upShift = idY;
						var index = idX + "|"+idY;
						var tile = tiles[index];
						var top = tltop + (256 * idY);
						var left = tlleft + (256 *idX);
						var tilex = tltilexy.x + idX;
						var tiley = tltilexy.y + idY;

						
						var numtiles = Math.pow(2,zoomL);
						if(tilex <  0) tilex = numtiles + tilex;
						if(tiley < 0) tiley = numtiles + tiley;
						if(tilex >= numtiles) tilex -= numtiles;
						if(tiley >= numtiles) tiley -= numtiles;
					
						tile.style.left = left +"px";
						tile.style.top = top + "px";
						tile.title = zoomL+"/"+tilex + "/" + tiley;
						var slippyurl ="http://tile.openstreetmap.org/"+zoomL +"/"+tilex+"/"+tiley+".png";
						that.renderTile(slippyurl,zoomL,tilex,tiley,tile);
						
					}

				}
			
		
			}

		};
		
		
	}
	,renderTile: function(weburl,zoomlevel,x,y,tile){
		var that = this;
		var renderTile = function(dest){
			tile.style.backgroundImage = "none";
			var style ="url('"+dest+"')";
			if(style == tile.style.backgroundImage) return;
			tile.style.backgroundImage = style;
			//var numtiles = Math.pw(2,zoomL);

		};
		var renderTileWeb = function(url){
			var style ="url('"+url+"')";
			tile.style.backgroundImage = "none";
			if(style == tile.style.backgroundImage) return;
			tile.style.backgroundImage = style;

		};
		try{	
			var localurl = zoomlevel+ "_"+ x + "_" + y + ".png";
			if(localurl != tile.style.backgroundImage){
				if(that.loadedurls[localurl]){
					renderTile(localurl);
				}
				else{
					tile.style.backgroundImage = "none";
					VismoFileUtils.saveImageLocally(weburl,localurl,renderTile,renderTileWeb);
					that.loadedurls[localurl] = true;
				}
			}
		}
		catch(e){
			tile.style.backgroundImage = "none";
			//console.log("unable to cache static image for this map view. ("+e+")")
		}
	}
	,_createTiles: function(eMap,numtilesx,numtilesy){
		var res = {};
		var tiles = document.createElement("div");
		tiles.style.overflow = "hidden";
		tiles.className = "VismoTileWrapper"
		tiles.style.position= "absolute";
		tiles.style.width = eMap.wrapper.style.width;
		tiles.style.height = eMap.wrapper.style.height;
		var maintile = document.createElement("div");
		maintile.style.position = "absolute";
		maintile.style.width = "256px";
		maintile.style.height = "256px";
		tiles.appendChild(maintile);
		
		for(var y = 0; y < numtilesy; y++){
			for(var x = 0; x < numtilesx; x++){
				var tile = document.createElement("div");
				tile.className = "tile_"+x+ "_"+y;
				tile.style.position = "absolute";
				tile.style.width = "256px";
				tile.style.height = "256px";
				//if(x == 0 && y == 0) tile.style.border = "solid 1px black";
				var index =x+"|"+y;
				tiles.appendChild(tile);
				res[index] = tile;
			}
		}
		
		eMap.wrapper.appendChild(tiles);
		
		res['main'] = maintile;
		return res;
		

		
	}
	
};/*requires VismoShapes
Adds controls such as panning and zooming to a given dom element.

Mousewheel zooming currently not working as should - should center on location where mousewheel occurs
Will be changed to take a handler parameter rather then a targetjs
 */


var VismoController = function(elem,options){ //elem must have style.width and style.height etM  
   
    if(elem.length){ //for jquery
        var result = [];
        for(var i=0; i < elem.length; i++){
            var x = new VismoController(elem[i],options);
            result.push(x);
        }
        return x;
    }
     
    if(!options)options = {};
        if(elem.vismoController) throw "this already has a vismo controller!"
        elem.vismoController = true;// this;              
	this.enabledControls = [];

	if(typeof elem == 'string') elem= document.getElementById(elem);
	this.setLimits({});
	
	//jQuery(elem).css()
	//if(!elem.style || !elem.style.position) elem.style.position = "relative";
	this.wrapper = elem; //a dom element to detect mouse actions
	this.handler = options.handler; //a js object to run actions on (with pan and zoom functions)	
	this.defaultCursor = "";
	var md = elem.onmousedown;
	var mu = elem.onmouseup;
	var mm = elem.onmousemove;
	for(var i=0; i < elem.childNodes.length; i++){
		var child = elem.childNodes[i];
	    try{
		child.onmousedown = function(e){if(md)md(e);}
		child.onmouseup = function(e){if(mu)mu(e);}
		child.onmousemove = function(e){if(mm)mm(e);}
		}
		catch(e){
		    
		}
	}
        
	controlDiv = document.createElement('div');
	controlDiv.style.position = "absolute";
	controlDiv.style.top = "0";
	controlDiv.style.left = "0";
	controlDiv.className = 'vismoControls';
	jQuery(controlDiv).css({'z-index':10000, height:"120px",width:"60px"});
	this.wrapper.appendChild(controlDiv);
	this.controlDiv = controlDiv;
        this.controlCanvas = new VismoCanvas(this.controlDiv);
	//this.controlDiv.vismoController = this;
	var vismoController = this;
	var preventDef = function(e){
                if (e && e.stopPropagation) //if stopPropagation method supported
                 e.stopPropagation()
                else
                 e.cancelBubble=true
          return false;      
	};
	var that = this;
	var f = function(e,s){
	        var vismoController = that;
	        vismoController._panzoomClickHandler(e,s,vismoController);
	        return preventDef(e);
	};
	this.controlCanvas.mouse({up:preventDef,down:f,dblclick:preventDef});

	//this.wrapper.vismoController = this;
	
	

	this.transformation = {'translate':{x:0,y:0}, 'scale': {x:1, y:1},'rotate': {x:0,y:0,z:0},origin:{}};	
	             
	             
	
	this.transformation.origin.x = jQuery(elem).width() / 2;
	this.transformation.origin.y = jQuery(elem).height() / 2;
        var t = this.transformation;

	//looks for specifically named function in targetjs
	if(!this.handler) {
	    alert("no transform handler function defined");
	}
	//this.wrapper.vismoController = this;
	this.enabled = true;


	if(!options) options = {};
	if(!options.controls)options.controls =['pan','zoom','mousepanning','mousewheelzooming'];
	this.options = options;
	this.addControls(this.options.controls);
	this.limits = {scale:{}};
	if(this.options.maxZoom) {
	    this.limits.scale.x =this.options.maxZoom;
	    this.limits.scale.y = this.options.maxZoom;
    }
    if(this.options.minZoom){
        
        this.limits.scale.minx =this.options.minZoom;
         this.limits.scale.miny =this.options.minZoom;
    }

    this.pansensitivity =100;
    if(this.options.pansensitivity){
        this.pansensitivity =this.options.pansensitivity;
    }


};
VismoController.prototype = {
	setLimits: function(transformation){
	        this.limits = transformation;
	}
	,getHandler: function(){
	    return this.handler;
	}
	,setHandler: function(handler){
	    this.handler = handler;
	    handler(this.transformation);
	}
	,getEnabledControls: function(){
	        return this.enabledControls;
	}
	,_addEnabledControl: function(controlName){
	        this.enabledControls.push(controlName);      
	}
	,applyLayer: function(){
	        var that = this;
	        var hidebuttons = function(){
	               var shapes = that.controlCanvas.getMemory();
	                for(var i=0; i < shapes.length; i++){
	                        shapes[i].setProperty("hidden",true);
	                }

	                that.controlCanvas.render();
	        };	        
	        this.controlCanvas.render();
	        if(this.options.hidebuttons){
	                hidebuttons();
	                return;
	        }
	        
	       	       
	        if(VismoUtils.browser.isIE6) return;
	        var enabled = this.getEnabledControls();
	        var pan,zoom;
	        if(enabled.contains("pan")) pan = true;
	        if(enabled.contains("zoom")) zoom = true;
                var callback = function(response){
                        if(!response)return;
                        if(!VismoUtils.svgSupport())return;
                        
                        var shape;
                        if(false == true){
                                //return;
                                shape = document.createElement("div");
                                shape.innerHTML = response;
                        }
                        else{
                                shape = document.createElement('object');
                                
                                shape.setAttribute('codebase', 'http://www.adobe.com/svg/viewer/install/');
                                if(VismoUtils.browser.isIE)shape.setAttribute('classid', '15');
                                shape.setAttribute('style',"overflow:hidden;position:absolute;z-index:0;width:60px;height:120px;");
                                shape.setAttribute('type',"image/svg+xml");
                                var dataString = 'data:image/svg+xml,'+ response;
                                shape.setAttribute('data', dataString); // the "<svg>...</svg>" returned from Ajax call                                      
                                jQuery(shape).css({width:60,height:120})
                        }
                        that.controlDiv.appendChild(shape);
                        jQuery(that.controlDiv).css({"background-image":"none"});
                        hidebuttons();
                };
	        if(pan && zoom) callback(this.panzoomcontrolsSVG);

        	
	}
	,getTransformation: function(){ 
		return this.transformation;
	}
	,translate: function(x,y){
	        var t= this.getTransformation();
	        t.translate.x = x;
	        t.translate.y = y;
	        this.transform();
	},
	addMouseWheelZooming: function(){ /*not supported for internet explorer*/
                var that = this;
	        this._addEnabledControl("mousewheelzooming");
	
		this.crosshair = {lastdelta:false};
		this.crosshair.pos = {x:0,y:0};

		var t = this.getTransformation();

		var mw = this.wrapper.onmousewheel;
		

		var that = this;
		var mm = this.wrapper.onmousemove;
		

        var doingmw = false;
        var mwactive = false;
        
        var cancelMouseZoomCursor = function(){
            if(VismoUtils.browser.isIE6)that.wrapper.style.cursor = "";
            else jQuery(that.wrapper).removeClass("zooming");
        }
        jQuery(this.wrapper).mousedown(function(e){
            mwactive = true;
            if(VismoUtils.browser.isIE6)this.style.cursor = "crosshair";
            else {
                if(!jQuery(that.wrapper).hasClass("panning")){
                jQuery(that.wrapper).addClass("zooming");
                }
            }
            window.setTimeout(cancelMouseZoomCursor,2000);
        });
        jQuery(this.wrapper).mouseout(function(e){
            var newTarget;
            
            if(e.toElement) newTarget = e.toElement;
            else newTarget = e.relatedTarget;
            
            if(jQuery(newTarget,that.wrapper).length == 0){ //if not a child turn off
                mwactive = false;

            }
            cancelMouseZoomCursor();
        });
        var domw = function(e){
            if(!that.enabled) return;
			/* thanks to http://adomas.org/javascript-mouse-wheel */
			var delta = 0;

                        
			if(!that.goodToTransform(e)) {
			    doingmw = false;
			    return false;
			}
			var t = VismoClickingUtils.resolveTargetWithVismo(e);
		        t= el;

                       if(t != that.wrapper && t.parentNode !=that.wrapper) return false;
	       	 	if (e.wheelDelta) { /* IE/Opera. */
		                delta = e.wheelDelta/120;
		                /** In Opera 9, delta differs in sign as compared to IE.
		                 */
		                if (window.opera)
		                        delta = -delta;
		        } else if (e.detail) { /** Mozilla case. */
		                /** In Mozilla, sign of delta is different than in IE.
		                 * Also, delta is multiple of 3.
		                 */
		                delta = -e.detail/3;
		        }
	
			var sensitivity = 0.4;
			var transform = that.getTransformation();
			var scale =transform.scale;
			var origin = transform.origin;


			var mousepos = VismoClickingUtils.getMouseFromEvent(e);
	
			var w = parseInt(that.wrapper.style.width) / 2;
			var h = parseInt(that.wrapper.style.height) / 2;
			var translation =  VismoTransformations.undoTransformation(mousepos.x,mousepos.y,that.transformation);
			transform.translate= {x: -translation.x, y: -translation.y};
			//{x: -mousepos.x + w,y: -mousepos.y + h};
			transform.origin = {
											x: mousepos.x,
											y: mousepos.y
										};
			



			if(delta > that.crosshair.lastdelta + sensitivity || delta < that.crosshair.lastdelta - sensitivity){	
				var newx,newy;
				if(delta > 0){
					newx = parseFloat(scale.x) * 2;
					newy = parseFloat(scale.y) * 2;					
				}
				else{
					newx = parseFloat(scale.x) / 2;
					newy = parseFloat(scale.y) / 2;
				}

				if(newx > 0 && newy > 0){
					scale.x = newx;
					scale.y = newy;
					that.setTransformation(transform);					
				}

			}
			that.crosshair.lastdelta = delta;	
			

            doingmw = false;
            return false;
        };
		var onmousewheel = function(e){	
		    if(!VismoUtils.browser.isIE){
		        jQuery(that.wrapper).addClass("zooming");	
		    }
		    if(e.preventDefault){e.preventDefault();}
		    if (e && e.stopPropagation) {
                e.stopPropagation();
            }
             e.cancelBubble=true;
            
		    if(!mwactive) return false;
			if(!doingmw) {
			    var f = function(){
			        domw(e);
                    return false;
			    };
			    window.setTimeout(f,50);
			    doingmw = true;
            }


			return false;

		};

		
		var element = this.wrapper;
            if(VismoUtils.browser.isIE) {
		        document.onmousewheel = function(e){
		                if(!e)e = window.event;
		            
		                var el = e.target;
		                
		                //var el =  e.srcElement;
		                if(!el) return;
		                while(el != element){
		                        
		                        if(el == element) {
		                                onmousewheel(e); 
		                                
		                                return false;    
		                        }
		                        el = el.parentNode;
		                }
		                return;
		        };
		        window.onmousewheel = document.onmousewheel;
		        return;
		}
		else if (element.addEventListener){

			element.onmousewheel = onmousewheel; //safari
		    element.addEventListener('DOMMouseScroll', onmousewheel, false);/** DOMMouseScroll is for mozilla. */
		
		}
		else if(element.attachEvent){ 	
			element.attachEvent("onmousewheel", onmousewheel); //safari
		}
		else{ //it's ie.. or something non-standardised. do nowt
		//window.onmousewheel = document.onmousewheel = onmousewheel;	
		}

		
	}
	,disable: function(){
        jQuery(".vismoControls",this.wrapper).css({display:"none"});	    
		this.enabled = false;
	}
	,enable: function(){
		this.enabled = true;
		jQuery(".vismoControls",this.wrapper).css({display:""});
	}
	
	,goodToTransform: function(e){
		var t =  VismoClickingUtils.resolveTarget(e);

		switch(t.tagName){
			case "INPUT":
				return false;
			case "SELECT":
				return false;
			case "OPTION":
				return false;
		}
		
		if(t && t.getAttribute("class") == "vismoControl") return false;
		
		return true;
		
	}
	,addMousePanning: function(){
	       
	    this._addEnabledControl("mousepanning");
		var that = this;
		
		var el = that.wrapper;
		var md = el.onmousedown;
		var mu = el.onmouseup;	
		var mm = el.onmousemove;
		var panning_status = false;	
		//alert('here');
		//jQuery(document).mouseup(function(e){alert("cool");}); //doesn't work?!
		var cancelPanning = function(e){
			panning_status = false;
			that.transform();
			if(!VismoUtils.browser.isIE6){jQuery(that.wrapper).removeClass("panning");}
			//style.cursor= that.defaultCursor;
			that.wrapper.onmousemove = mm;
			return false;
		};
		jQuery(that.controlDiv).mousedown(function(e){

		    cancelPanning();
		});
		var onmousemove = function(e){
		    if(e && e.shiftKey) {return false;}
			if(mm){mm(e);}
			if(!that.enabled) {return;}
			if(!panning_status) {
				return;
			}
			if(!VismoUtils.browser.isIE && !jQuery(that.wrapper).hasClass("panning")){
			    jQuery(that.wrapper).addClass("panning")
			}
			if(!that.goodToTransform(e)) {return;}
			var pos =  VismoClickingUtils.getMouseFromEventRelativeToElement(e,panning_status.clickpos.x,panning_status.clickpos.y,panning_status.elem);		
			if(!pos){return;}
			
			var t = that.getTransformation();
			//if(this.transformation) t = this.transformation;
			var sc = t.scale;

			/* work out deltas */
			var xd =parseFloat(pos.x /sc.x);
			var yd = parseFloat(pos.y / sc.y);
			t.translate.x = panning_status.translate.x + xd;
			t.translate.y =panning_status.translate.y +yd;
            if(!VismoUtils.browser.isIE6){
                jQuery(that.wrapper).removeClass("zooming");
                that.transform();
            }
			that.transform();
			
			if(pos.x > 5  || pos.y > 5) panning_status.isClick = false;
			if(pos.x < 5|| pos.y < 5) panning_status.isClick = false;
			return false;	
		};
     
		jQuery(this.wrapper).mousedown(function(e){
		    var jqw = jQuery(that.wrapper);
			if(panning_status){
				return;
			}
			
			if(md) {md(e);}
			if(!that.enabled) return;
			if(!VismoUtils.browser.isIE6){
			    jqw.addClass("panning");
			}
			var target =  VismoClickingUtils.resolveTarget(e);
			target = el;
			if(!target) return;

			
			var t = that.transformation.translate;
			var sc =that.transformation.scale; 
			
			var realpos = VismoClickingUtils.getMouseFromEvent(e);
			if(!realpos) return;
			//this.vismoController = that;

			var element = VismoClickingUtils.resolveTargetWithVismo(e);
			element = el;
			panning_status =  {clickpos: realpos, translate:{x: t.x,y:t.y},elem: element,isClick:true};
			that.wrapper.onmousemove = onmousemove;
				
		});
			
		jQuery(document).mouseup(function(e){
			if(panning_status.isClick && mu){
			    mu(e);
			};
			
			if(panning_status){
			    cancelPanning(e);
            }
		});
		
		jQuery(document).mousemove(function(e){
			if(panning_status){
			        onmousemove(e);
			        var parent= e.target;
			        while(parent.parentNode){
			                parent = parent.parentNode;
			                if(parent == that.wrapper) return;
			        }
				
				//if(parent != that.wrapper)cancelPanning(e); (not a good idea for tooltips)
			}
		});
	
	},

	setTransformation: function(t){
        if(this.limits){
            if(this.limits.scale){
            if(t.scale.x > this.limits.scale.x){ t.scale.x = this.limits.scale.x;}
            if(t.scale.y > this.limits.scale.y){ t.scale.y = this.limits.scale.y; }
            
            if(t.scale.x < this.limits.scale.minx){ t.scale.x = this.limits.scale.minx;}
            if(t.scale.y < this.limits.scale.miny){ t.scale.y = this.limits.scale.miny;}     
            }    
        }
        if(!t.origin){
                var w = jQuery(this.wrapper).width();
                var h = jQuery(this.wrapper).height();
                t.origin = {x: w/2, y: h/2};

        }
		if(this.enabled){
			if(!t.scale && !t.translate && !t.rotate) alert("bad transformation applied - any call to setTransformation must contain translate,scale and rotate");
			this.transformation = t;
			
			this.handler(t);
		}
		//console.log("transformation set to ",t);
	},
	createButtonLabel: function(r,type,offset){
		var properties=  {'shape':'path', stroke: '#000000',lineWidth: '1'};
		properties.actiontype = type;
		var coords=[];
		if(type == 'E'){
			coords =[r,0,-r,0,'M',r,0,0,-r,"M",r,0,0,r];
		}
		else if(type =='W'){
			coords =[-r,0,r,0,'M',-r,0,0,r,"M",-r,0,0,-r]; 
		}
		else if(type == 'S'){
			coords =[0,-r,0,r,'M',0,r,-r,0,"M",0,r,r,0];	
		}
		else if(type == 'N'){
			coords =[0,-r,0,r,'M',0,-r,r,0,"M",0,-r,-r,0];	
		}
		else if(type == 'in'){
			coords =[-r,0,r,0,"M",0,-r,0,r];
		}
		else if(type == 'out'){
			coords = [-r,0,r,0];
		}
		for(var i=0; i < coords.length; i+=2 ){
		        if(coords[i] == "M") i+=1;
		        coords[i] += offset.x;
		        coords[i+1] += offset.y;
		}
		return new VismoShape(properties,coords);
	},	
	createButton: function(width,direction,offset,properties) {
	        var canvas = this.controlCanvas;
	        if(!canvas) throw "no canvas to create on..";
		if(!width) width = 100;
		var r = width/2;

		offset = {
			x: offset.x || 0,
			y: offset.y || 0
		};
		var coords = [
			offset.x, offset.y,
			offset.x + width, offset.y,
			offset.x + width, offset.y + width,
			offset.x, offset.y + width
		];
		properties.shape = 'polygon';
		properties.fill ='rgba(150,150,150,0.7)';
		var button = new VismoShape(properties,coords);
		var bb = button.getBoundingBox();
		buttoncenter = {x:bb.center.x,y:bb.center.y}; 
		var label = this.createButtonLabel(r,properties.actiontype,buttoncenter);
	        canvas.add(label);
		canvas.add(button);
		return button;
	},
	addControls: function(list){
		for(var i= 0; i < list.length; i++){
			this.addControl(list[i]);
		}
	}
	,addControl: function(controlType) {
		switch(controlType) {
			//case "zoom":
			case "pan":
				this.addPanningActions();
				break;
			case "zoom":
				this.addZoomingActions();
				break;
			case "mousepanning":
				this.addMousePanning();
				break;
			case "mousewheelzooming":
				this.addMouseWheelZooming();
				break;
			case "rotation":
		
				this.addRotatingActions();
				break;
			default:
				break;
		}
	
	},
	
	addPanningActions: function(controlDiv){
	        this._addEnabledControl("pan");
		this.createButton(10,180,{x:-6,y:-54},{'actiontype':'N','name':'pan north','buttonType': 'narrow'});
		this.createButton(10,270,{x:10,y:-38},{'actiontype':'E','name':'pan east','buttonType': 'earrow'});
		//this.createButton(10,90,{x:16,y:16},{'actiontype':'O','name':'re-center','buttonType': ''});
		this.createButton(10,90,{x:-22,y:-38},{'actiontype':'W','name':'pan west','buttonType': 'warrow'});
		this.createButton(10,0,{x:-6,y:-20},{'actiontype':'S','name':'pan south','buttonType': 'sarrow'});			
		this.applyLayer();		

	},
	addRotatingActions: function(){
		/*
		var rotateCanvas = this.controlCanvas.getDomElement();
		this.createButton(rotateCanvas,10,180,{x:16,y:2},{'actiontype':'rotatezup','name':'pan north','buttonType': 'narrow'});
		this.createButton(rotateCanvas,10,0,{x:16,y:30},{'actiontype':'rotatezdown','name':'pan south','buttonType': 'sarrow'});			
			
		this.createButton(rotateCanvas,10,270,{x:30,y:16},{'actiontype':'rotatezright','name':'rotate to right','buttonType': 'earrow'});
		this.createButton(rotateCanvas,10,90,{x:2,y:16},{'actiontype':'rotatezleft','name':'rotate to left','buttonType': 'warrow'});
		rotateCanvas.onmouseup = this._panzoomClickHandler;*/

	},	
	addZoomingActions: function(){
	        this._addEnabledControl("zoom");
		this.createButton(10,180,{x:-6,y:12},{'actiontype':'in','name':'zoom in','buttonType': 'plus'});		
		this.createButton(10,180,{x:-6,y:42},{'actiontype':'out','name':'zoom out','buttonType': 'minus'});	
	        this.applyLayer();
	}	
	    ,zoom: function(x,y){
	         var t = this.getTransformation();
	         t.scale.x = x;
	         if(!y) y=  x;
	         t.scale.y = y;
	         this.setTransformation(t);
	    }
        ,panTo: function(x,y){
                //if(!this.enabled) return;
                var t = this.getTransformation();
                
                var finalX = -x;
                var finalY = -y;
                var thisx,thisy;
                var direction = {};
                var difference = {};
                
                thisx = t.translate.x;
                thisy = t.translate.y;
                
                difference.x=  thisx - finalX;
                difference.y = thisy - finalY;
                
                direction.x = -difference.x / 5;
                direction.y = -difference.y / 5;

                var change = true;
                
                var that = this;
                var f = function(){
                   
                        change= {x: false,y:false};
                        if(thisx > finalX && thisx + direction.x > finalX) {thisx += direction.x;change.x=true;}
                        else if(thisx < finalX && thisx + direction.x < finalX) {thisx += direction.x;change.x=true;}
                        else{
                                t.translate.x = finalX;
                        }
                
                        if(thisy > finalY && thisy + direction.y > finalY) {thisy += direction.y;change.y=true;}
                        else if(thisy < finalY && thisy + direction.y < finalY) {thisy += direction.y;change.y=true;}
                        else{
                                change.x = true;
                                t.translate.y =finalY;
                        }
                
                        if(change.x){
                                t.translate.x = thisx;
                        }
                        else{
                                t.translate.x = finalX;
                        }
                        if(change.y){
                                t.translate.y = thisy;
                        }
                        else{
                                t.translate.y = finalY;
                        }
    
                        if(t.translate.x != finalX && t.translate.y != finalY){
                                that.setTransformation(t); 
                                window.setTimeout(f,5);
                        }
                        else{
                                that.setTransformation(t);
                        }
  
                };
                
                f();
                                       
               

                //window.setTimeout(pan,200);
        }
	,transform: function(){
		if(this.enabled){
			var t = this.getTransformation();
			var s = t.scale;
			var tr = t.translate;
			if(s.x <= 0) s.x = 0.1125;
			if(s.y <= 0) s.y = 0.1125;

                        var ok = true;
                        var lim = this.limits;
                        if(lim.scale){
                                if(s.y < lim.scale.miny) t.scale.y = lim.scale.miny;
                                if(s.x < lim.scale.minx) t.scale.x = lim.scale.minx;
                                
                                if(s.y > lim.scale.y) t.scale.y = lim.scale.y;
                                if(s.x > lim.scale.x) t.scale.x = lim.scale.x;
		        }
		        //remove origin?
		        //var translatex = t.origin.x+ (t.translate.x * t.scale.x);
                //var translatey = t.origin.y+ (t.translate.y *t.scale.y);
		        this.handler(this.transformation);

		}
	},
	_panzoomClickHandler: function(e,hit,controller) {
	
	    	if(!hit) return;
	   
		var pan = {};
		var t =controller.getTransformation();
		if(!t.scale) t.scale = {x:1,y:1};
		if(!t.translate) t.translate = {x:0,y:0};
		if(!t.rotate) t.rotate = {x:0,y:0,z:0};
		
		var scale =t.scale;
		
		pan.x = parseFloat(this.pansensitivity / scale.x);
		pan.y = parseFloat(this.pansensitivity / scale.y);
	
		switch(hit.getProperty("actiontype")) {
			case "W":
				t.translate.x += pan.x;
				break;
			case "O":
				t.translate.x = 0;
				t.translate.y = 0;
				break;

			case "E":
				t.translate.x -= pan.x;
				break;
			case "N":
				t.translate.y += pan.y;
				break;
			case "S":
				t.translate.y -= pan.y;
				break;
			case "in":
				scale.x *= 2;
				scale.y *= 2;
				break;
			case "out":
				scale.x /= 2;
				scale.y /= 2;			
				break;
			case "rotatezright":
				if(!t.rotate.z) t.rotate.z = 0;
				//console.log("right",t.rotate.z);
				t.rotate.z -= 0.1;
				var left =6.28318531;
				
				if(t.rotate.z <0 )t.rotate.z =left;
				break;
			case "rotatezup":
				if(!t.rotate.y) t.rotate.y = 0;
				t.rotate.y += 0.1;
				break;
			case "rotatezdown":
				if(!t.rotate.y) t.rotate.y = 0;
				t.rotate.y -= 0.1;
				break;
			case "rotatezleft":
				if(!t.rotate.z) t.rotate.z = 0;
				t.rotate.z += 0.1;
				break;
			default:
				break;
		}
		controller.transform();
                //console.log("done",controller);
		return false;
	}
};
/*VismoController.prototype.panzoomcontrolsSVG ="<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><!-- Created with Inkscape (http://www.inkscape.org/) --><svg   xmlns:dc=\"http://purl.org/dc/elements/1.1/\"   xmlns:cc=\"http://creativecommons.org/ns#\"   xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"   xmlns:svg=\"http://www.w3.org/2000/svg\"   xmlns=\"http://www.w3.org/2000/svg\"   xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\"   xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"   width=\"60px\"   height=\"120px\"   id=\"svg3820\"   sodipodi:version=\"0.32\"   inkscape:version=\"0.46\"   sodipodi:docname=\"panzoomcontrols.svg\"   inkscape:output_extension=\"org.inkscape.output.svg.inkscape\">  <defs     id=\"defs3\">    <linearGradient       id=\"linearGradient3735\">      <stop         style=\"stop-color:#ffffff;stop-opacity:1;\"         offset=\"0\"         id=\"stop3737\" />      <stop         style=\"stop-color:#0000f0;stop-opacity:1;\"         offset=\"1\"         id=\"stop3739\" />    </linearGradient>    <linearGradient       id=\"linearGradient3745\">      <stop         style=\"stop-color:#000000;stop-opacity:1;\"         offset=\"0\"         id=\"stop3747\" />      <stop         style=\"stop-color:#ffffef;stop-opacity:0;\"         offset=\"1\"         id=\"stop3749\" />    </linearGradient>    <inkscape:perspective       sodipodi:type=\"inkscape:persp3d\"       inkscape:vp_x=\"0 : 526.18109 : 1\"       inkscape:vp_y=\"6.123234e-14 : 1000 : 0\"       inkscape:vp_z=\"744.09448 : 526.18109 : 1\"       inkscape:persp3d-origin=\"372.04724 : 350.78739 : 1\"       id=\"perspective3826\" />  </defs>  <sodipodi:namedview     inkscape:document-units=\"mm\"     id=\"base\"     pagecolor=\"#ffffff\"     bordercolor=\"#666666\"     borderopacity=\"1.0\"     inkscape:pageopacity=\"0.0\"     inkscape:pageshadow=\"2\"     inkscape:zoom=\"4\"     inkscape:cx=\"14.379355\"     inkscape:cy=\"60.049799\"     inkscape:current-layer=\"layer1\"     showgrid=\"true\"     inkscape:window-width=\"1440\"     inkscape:window-height=\"776\"     inkscape:window-x=\"-84\"     inkscape:window-y=\"22\" />  <metadata     id=\"metadata4\">    <rdf:RDF>      <cc:Work         rdf:about=\"\">        <dc:format>image/svg+xml</dc:format>        <dc:type           rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />      </cc:Work>    </rdf:RDF>  </metadata>  <g     inkscape:label=\"Layer 1\"     inkscape:groupmode=\"layer\"     id=\"layer1\">    <rect       style=\"opacity:1;fill:#fafafa;fill-opacity:1;stroke:#000000;stroke-width:1.25095212000000000;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"       id=\"rect4374\"       width=\"3.036346\"       height=\"29.855259\"       x=\"26.456741\"       y=\"77.110023\" />    <path       sodipodi:type=\"arc\"       style=\"opacity:0;fill:#ffc100;fill-opacity:0.18999999;fill-rule:evenodd;stroke:#00d300;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.98500001\"       id=\"path2811\"       sodipodi:cx=\"36.681629\"       sodipodi:cy=\"40.457794\"       sodipodi:rx=\"22.848825\"       sodipodi:ry=\"23.466362\"       d=\"M 59.530455,40.457794 A 22.848825,23.466362 0 1 1 13.832804,40.457794 A 22.848825,23.466362 0 1 1 59.530455,40.457794 z\"       transform=\"translate(-10.077156,-13.286926)\" />    <path       sodipodi:type=\"star\"       style=\"fill:#ffffff\"       id=\"path2817\"       sodipodi:sides=\"5\"       sodipodi:cx=\"21.984276\"       sodipodi:cy=\"13.286215\"       sodipodi:r1=\"0.34933102\"       sodipodi:r2=\"0.17466551\"       sodipodi:arg1=\"-0.78539816\"       sodipodi:arg2=\"-0.15707963\"       inkscape:flatsided=\"false\"       inkscape:rounded=\"0\"       inkscape:randomized=\"0\"       d=\"M 22.23129,13.0392 L 22.156791,13.258891 L 22.295532,13.444808 L 22.063572,13.441843 L 21.929628,13.631245 L 21.860769,13.409722 L 21.639246,13.340862 L 21.828648,13.206918 L 21.825683,12.974959 L 22.0116,13.1137 L 22.23129,13.0392 z\"       transform=\"translate(-2.9137398,-0.9362086)\" />    <path       sodipodi:type=\"arc\"       style=\"fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.99893030000000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;opacity:1\"       id=\"path3847\"       sodipodi:cx=\"113.64216\"       sodipodi:cy=\"108.12209\"       sodipodi:rx=\"23.233507\"       sodipodi:ry=\"20.960665\"       d=\"M 136.87567,108.12209 A 23.233507,20.960665 0 1 1 90.408651,108.12209 A 23.233507,20.960665 0 1 1 136.87567,108.12209 z\"       transform=\"matrix(0.9778731,0,0,-1.0598112,-84.661617,141.94941)\" />    <path       style=\"fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"       d=\"M 39.621219,21.031683 L 47.389849,26.975113 L 39.969679,33.117243 L 41.484209,27.164163 L 39.621219,21.031683 z\"       id=\"north\"       inkscape:label=\"north\"       sodipodi:nodetypes=\"ccccc\" />    <path       style=\"fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"       d=\"M 20.231889,13.770245 L 26.175319,6.0016174 L 32.317449,13.421792 L 26.364359,11.907259 L 20.231889,13.770245 z\"       id=\"path3757\"       inkscape:label=\"north\"       sodipodi:nodetypes=\"ccccc\" />    <path       style=\"fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"       d=\"M 20.048989,40.437803 L 25.992419,48.206433 L 32.134549,40.786253 L 26.181459,42.300793 L 20.048989,40.437803 z\"       id=\"path3761\"       inkscape:label=\"north\"       sodipodi:nodetypes=\"ccccc\" />    <path       style=\"fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"       d=\"M 12.629649,33.160653 L 4.8610222,27.217223 L 12.281197,21.075093 L 10.766664,27.028173 L 12.629649,33.160653 z\"       id=\"path3765\"       inkscape:label=\"north\"       sodipodi:nodetypes=\"ccccc\" />    <path       sodipodi:type=\"arc\"       style=\"fill:#ff0000;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"       id=\"path3849\"       sodipodi:cx=\"114.65231\"       sodipodi:cy=\"133.62845\"       sodipodi:rx=\"0\"       sodipodi:ry=\"2.5253813\"       d=\"M 114.65231,133.62845 A 0,2.5253813 0 1 1 114.65231,133.62845 A 0,2.5253813 0 1 1 114.65231,133.62845 z\" />    <path       sodipodi:type=\"arc\"       style=\"fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3.29227274000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;opacity:1\"       id=\"path4600\"       sodipodi:cx=\"113.64216\"       sodipodi:cy=\"108.12209\"       sodipodi:rx=\"23.233507\"       sodipodi:ry=\"20.960665\"       d=\"M 136.87567,108.12209 A 23.233507,20.960665 0 1 1 90.408651,108.12209 A 23.233507,20.960665 0 1 1 136.87567,108.12209 z\"       transform=\"matrix(0.3044572,0,0,-0.3133744,-6.349179,108.99488)\" />    <path       sodipodi:type=\"arc\"       style=\"fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3.29227274000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;opacity:1\"       id=\"path4602\"       sodipodi:cx=\"113.64216\"       sodipodi:cy=\"108.12209\"       sodipodi:rx=\"23.233507\"       sodipodi:ry=\"20.960665\"       d=\"M 136.87567,108.12209 A 23.233507,20.960665 0 1 1 90.408651,108.12209 A 23.233507,20.960665 0 1 1 136.87567,108.12209 z\"       transform=\"matrix(0.3044572,0,0,-0.3133744,-6.5991733,140.49488)\" />    <path       style=\"fill:#dcdcdc;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1\"       d=\"M 29.344931,79.34136 L 26.693281,79.164583 L 26.870057,76.336156 L 22.804193,76.159379 L 23.157747,73.330952 L 26.870057,73.507729 L 26.870057,70.856078 L 29.875261,71.032855 L 29.875261,73.684505 L 33.587572,74.038059 L 33.587572,76.512933 L 29.521708,76.336156 L 29.344931,79.34136 z\"       id=\"path3299\" />    <path       style=\"fill:#dcdcdc;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1\"       d=\"M 26.781669,107.80241 L 22.715805,107.62563 L 23.069359,104.79721 L 26.781669,104.97398 L 29.786873,105.15076 L 33.499184,105.50431 L 33.499184,107.97919 L 29.43332,107.80241 L 26.781669,107.80241 z\"       id=\"path3301\"       sodipodi:nodetypes=\"ccccccccc\" />  </g></svg>";*/

/*
Some common utils used throughout package 
*/
var VismoMapUtils = {
	googlelocalsearchurl: "http://ajax.googleapis.com/ajax/services/search/local?v=1.0&q="
	
	,optimiseForIE6: function(geojson){
      	var newf = [];
        for(var i=0; i < geojson.features.length;i++){
            var f = geojson.features[i];
            var coordinates = f.geometry.coordinates;


            var newc = [];
            
            var good = false;
            
            if(coordinates.length <2){
                good = true;
            }
            for(var j=0; j < coordinates.length; j++){
                var c1 = coordinates[j];
                
            }
            
            var bb = f.geometry.bbox;
            if(bb){
                var dx = bb[2] - bb[0]; var dy= bb[3]- bb[1]; if(dy<0)dy =-dy;if(dx<0)dx =-dx;
                if(dx < 1 || dy < 1){
                    good =false;
                }
            }
            
            if(good){
                newf.push(f);
            }
        }
        geojson.features= newf;
        return geojson;
	
	}
	,addBoundingBoxes: function(geojson){ //currently MultiPolygon only..
		var geojsonbb = geojson;
		for(var i=0; i < geojson.features.length; i++){
			var f = geojson.features[i];

			var g = f.geometry;
			var c = g.coordinates;

			
			if(g.type.toLowerCase() == 'multipolygon'){
				var x1,y1,x2,y2;
				
				var horizontal = {belowzero:0,abovezero:0};
				var vertical = {belowzero:0,abovezero:0};
			
				for(var j=0; j < c.length; j++){
					for(var k=0; k < c[j].length; k++){
						
						for(var l=0; l < c[j][k].length; l++){
							var x = c[j][k][l][0];
							var y = c[j][k][l][1];
							/*if(x < 0 && horizontal.abovezero > horizontal.belowzero){
								x = 180;
							}
							else if(x > 0 && horizontal.abovezero < horizontal.belowzero){
								x = -180;
							}*/
							if(!x1) x1= x;
							if(!x2) x2 =x;
							if(!y1) y1 = y;
							if(!y2) y2 = y;
							if(y > y2) y2 = y;
							if(y < y1) y1 = y;
							if(x < x1) x1 = x;
							if(x > x2) x2= x;
							
							if(x > 0){
								horizontal.abovezero +=1;
							}
							else{
								horizontal.belowzero +=1;
							}
							
							if(y > 0){
								vertical.abovezero +=1;
							}
							else{
								vertical.belowzero +=1;
							}
							
									
										
						}
					}
				}
				
				//if(f.properties.name == "RUSSIAN FEDERATION")
				//console.log(x1,x2);
	
				g.bbox = [];
				g.bbox.push(x1);
				g.bbox.push(y1);
				g.bbox.push(x2);
				g.bbox.push(y2);
				x1 = false; x2=false;y1=false;y2=false;
			}
			
		}
		return geojsonbb;
	}
	 ,tile2long: function(x,z) {
	  	return (x/Math.pow(2,z)*360-180);
	 }
	 ,tile2lat: function(y,z) {
	  	var n=Math.PI-2*Math.PI*y/Math.pow(2,z);
	  	return (180/Math.PI*Math.atan(0.5*(Math.exp(n)-Math.exp(-n))));
	 }
	,getLongLatAtXY: function(x,y,eMap){
		
		var res = VismoMapUtils.getLongLatFromMouse(x,y,eMap);
	
		
		return res;
	}
	,getSlippyTileNumber: function(lo,la,zoomL,eMap){
		var n = Math.pow(2,zoomL);
		var x = lo;

		var tilex = ((lo + 180)/360) *n;

		tilex = Math.floor(tilex);
		tiley =(Math.floor((1-Math.log(Math.tan(la*Math.PI/180) + 1/Math.cos(la*Math.PI/180))/Math.PI)/2 *Math.pow(2,zoomL)));		
		return {x: tilex, y:tiley};
	}
	,getLocationsFromQuery: function(query,callback){
		var that = this;
		var fileloadedcallback = function(status,params,responseText,url,xhr){
				var response = eval("("+responseText+")");

				if(response.responseStatus == 200){
					var results = response.responseData.results;
					callback(results);
					
					return;
				}

		};
			
	
		VismoFileUtils.loadRemoteFile(that.googlelocalsearchurl+query,fileloadedcallback);
	}
	,getLongLatFromMouse: function(x,y,vismoMap){
		var t =vismoMap.getTransformation();
		var pos = VismoClickingUtils.undotransformation(x,y,t);	
		
		if(vismoMap.settings.projection) {
			pos = vismoMap.settings.projection.inversexy(pos.x,pos.y,t);
		}

		var lo = pos.x;
		var la = -pos.y;
		
		
		/*if(la > 85.0511) la = -la%85.0511;
		if(la < -85.0511) la = -la%85.0511;
		if(lo < -180) lo = -lo%180;
		if(lo > 180) lo = - lo%180;
		*/
		return {latitude: la, longitude: lo};
	}
	,_radToDeg: function(rad){
		return rad / (Math.PI /180);
	},
	_degToRad: function(deg) {
		//return ((deg + 180)/360) ;
		
		return (deg * Math.PI) / 180.0;
	},
	fitgeojsontocanvas: function(json,canvas){ /*canvas must have style width and height properties, returns an VismoTransformation*/
		var view ={};
		var f =json.features;
		for(var i=0; i < f.length; i++){
			var c = f[i].geometry.coordinates;
											
			for(var j=0; j < c.length; j++ ){
				for(var k=0; k < c[j].length; k++){
					

					for(var l=0; l < c[j][k].length;l++){
						
		
						var x =c[j][k][l][0];
						var y = c[j][k][l][1];
						if(!view.x1 || x <view.x1) {
							view.x1 = x;
						}
						else if(!view.x2 || x >view.x2) {
							view.x2 = x;
						}
						
						if(!view.y1 || y <view.y1) {
							view.y1 = y;
						}
						else if(!view.y2 || y >view.y2) {
							view.y2 = y;
						}
						

					}
						
				}
				
			}
		}
		if(!json.transform) json.transform ={};
		if(!json.transform.scale) json.transform.scale = {x:1, y:1};
		if(!json.transform.translate) json.transform.translate = {x:0,y:0};
		
		var canvasx =		parseFloat(canvas.style.width);
		var canvasy =parseFloat(canvas.style.height);
		view.center = {};
		view.width = (view.x2 - view.x1);
		view.height = (view.y2 - view.y1)
		view.center.x = view.x2 - (view.width/2);
		view.center.y = view.y2 - (view.height/2);
		//console.log(view.center.y, view.height);
		var scale = 1,temp;
		var tempx = parseFloat(canvasx/view.width);
		var tempy = parseFloat(canvasy/view.height);

		if(tempx < tempy) temp = tempx; else temp = tempy;
		
		var transform = {scale:{},translate:{}};
		transform.scale.x = temp;
		transform.scale.y = temp;

		transform.boundingBox = view;

		transform.translate.x = -view.center.x;
		transform.translate.y = view.center.y;//view.center.y;	
		return transform;
	},
	/*does not yet support undoing rotating */
	_testCanvas: function(ctx){
		ctx.beginPath();
		ctx.arc(75,75,50,0,Math.PI*2,true); // Outer circle
		ctx.moveTo(110,75);
		ctx.arc(75,75,35,0,Math.PI,false);   // Mouth (clockwise)
		ctx.moveTo(65,65);
		ctx.arc(60,65,5,0,Math.PI*2,true);  // Left eye
		ctx.moveTo(95,65);
		ctx.arc(90,65,5,0,Math.PI*2,true);  // Right eye
		ctx.stroke();

	},	
	_undospherify: function (x,y,transformation,radius){
		var pos= this._spherifycoordinate(x,y,transformation);
		var latitude = Math.asin(y / radius);
		var longitude = Math.asin(parseFloat(x / radius) / Math.cos(latitude));

				
	
		//if(transformation.rotate.z && longitude != 'NaN')longitude -= transformation.rotate.z;
		//longitude = longitude % (6.28318531);
		//if(longitude < 0) longitude = longitude 

		if(transformation.rotate) {
			var r =transformation.rotate.z;
			//console.log("from",longitude);
			longitude +=r;
		
			//longitude =longitude% (6.28318531);
			
		}
		var lon = VismoMapUtils._radToDeg(longitude);
		var lat = VismoMapUtils._radToDeg(latitude);
		//console.log("to",longitude,r,lon);
		return {x:lon,y:lat};
	},
	_spherifycoordinate: function(lon,lat,transformation,radius){
		//http://board.flashkit.com/board/archive/index.php/t-666832.html
		var utils = VismoMapUtils;
		var res = {};
		
		var longitude = VismoMapUtils._degToRad(lon);
		var latitude = VismoMapUtils._degToRad(lat);
 		var wraplat = false;
 		// assume rotate values given in radians
		if(transformation && transformation.rotate){
			//latitude += transformation.rotate.x;
			
			var rotation =transformation.rotate.z;
			//rotation = transformation.translate.x;
			if(rotation){
				var r =parseFloat(rotation);
			
				var newl =parseFloat(longitude+r);
			
				//console.log(longitude,"->",newl,longitude,r,transformation.rotate.z);
			
				longitude +=r;
			}
			if(transformation.rotate.y){
				latitude += parseFloat(transformation.rotate.y);
				/*var limit =VismoMapUtils._degToRad(85);
				if(latitude <-limit){
					latitude += (2 * limit);
					res.movedNorth = true;
					
				}
				
				if(latitude > limit){
					latitude -= (2 * limit);
					res.movedSouth = true;
					
					
				}
				*/	
				
				//latitude = latitude % 6.28318531;
				
			} 
		}
		// latitude is 90-theta, where theta is the polar angle in spherical coordinates
		// cos(90-theta) = sin(theta)
		// sin(90-theta) = cos(theta)
		// to transform from spherical to cartesian, we would normally use radius*Math.cos(theta)
		//   hence in this case we use radius*Math.sin(latitude)
		// similarly longitude is phi-180, where phi is the azimuthal angle
		// cos(phi-180) = -cos(phi)
		// sin(phi-180) = -sin(phi)
		// to transform from spherical to cartesian, we would normally use radius*Math.sin(theta)*Math.cos(phi)
		//   we must exchange for theta as above, but because of the circular symmetry
		//   it does not matter whether we multiply by sin or cos of longitude	
	
		longitude = longitude % 6.28318531; //360 degrees		
	
		
		
		
		res.y = (radius) * Math.sin(latitude);	
		//console.log(latitude);
		//if(wraplat) res.y = ["M",res.y];
		/*
		
		if(latitude > 85.0511){
			res.y = (-radius) * Math.sin(latitude);	
		}
		else{
		res.y = (radius) * Math.sin(latitude);		
		}
		*/
		
		//if(latitude > 85.0511)
		
		
		if(longitude < 1.57079633 || longitude > 4.71238898){//0-90 (right) or 270-360 (left) then on other side 
			res.x = (radius) * Math.cos(latitude) * Math.sin(longitude);		
		}
		else{
			//console.log(longitude,"bad",transformation.rotate.z);
			res.x = false;
		}
	
		return res;
	}

};Array.prototype.contains = function(item)
{
	return this.indexOf(item) != -1;
};


function mozillaSaveFile(filePath,content)
{
	if(window.Components) {
		try {
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
			var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
			file.initWithPath(filePath);
			if(!file.exists())
				file.create(0,0664);
			var out = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
			out.init(file,0x20|0x02,00004,null);
			out.write(content,content.length);
			out.flush();
			out.close();
			return true;
		} catch(ex) {
			return false;
		}
	}
	return null;
}


var VismoFileUtils= {
	saveFile: function(fileUrl,content)
	{
		mozillaSaveFile(fileUrl,content); return;
		jQuery.file.save({fileUrl:fileUrl,content:content});
	}	
	,convertUriToUTF8:function(uri,charSet)
	{
		if(window.netscape == undefined || charSet == undefined || charSet == "")
			return uri;
		try {
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
			var converter = Components.classes["@mozilla.org/intl/utf8converterservice;1"].getService(Components.interfaces.nsIUTF8ConverterService);
		} catch(ex) {
			return uri;
		}
		return converter.convertURISpecToUTF8(uri,charSet);
	}
	
	,getLocalPath:function(origPath)
	{
		var originalPath = VismoFileUtils.convertUriToUTF8(origPath,"UTF-8");
		
		// Remove any location or query part of the URL
		var argPos = originalPath.indexOf("?");
		if(argPos != -1)
			originalPath = originalPath.substr(0,argPos);
		var hashPos = originalPath.indexOf("#");
		if(hashPos != -1)
			originalPath = originalPath.substr(0,hashPos);
		// Convert file://localhost/ to file:///
		if(originalPath.indexOf("file://localhost/") == 0)
			originalPath = "file://" + originalPath.substr(16);
		// Convert to a native file format
		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 if(originalPath.indexOf("http") == 0){ //jon hack for online

			var end =originalPath.lastIndexOf("/");
			localPath = unescape(originalPath.substr(0,end+1));
		}
		else // pc network file
			localPath = "\\\\" + unescape(originalPath.substr(7)).replace(new RegExp("/","g"),"\\");
		return localPath;
	}

	,loadRemoteFile: function(url,callback,params,headers,data,contentType,username,password,allowCache)
	{
		//callback parameters: status,params,responseText,url,xhr
		return this._httpReq("GET",url,callback,params,headers,data,contentType,username,password,allowCache);
	}
	/*currently doesnt work with jpg files - ok formats:gifs pngs*/
	,saveImageLocally: function(sourceurl,dest,dothiswhensavedlocally,dothiswhenloadedfromweb) {
		
		var localPath = VismoFileUtils.getLocalPath(document.location.toString());
	
		var savePath;
		if((p = localPath.lastIndexOf("/")) != -1) {
			savePath = localPath.substr(0,p) + "/" + dest;
		} else {
			if((p = localPath.lastIndexOf("\\")) != -1) {
				savePath = localPath.substr(0,p) + "\\" + dest;
			} else {
				savePath = localPath + "/" + dest;
			}
		}
		
		var onloadfromweb = function(status,params,responseText,url,xhr){
			try{
				if(dothiswhenloadedfromweb){
					dothiswhenloadedfromweb(url);
				}
				//console.log("VismoFileUtil.saveFile doesnt work for iamges it might seem",savePath);
				VismoFileUtils.saveFile(savePath,responseText);
		
			}
			catch(e){
				console.log("error saving locally.."+ e);
			}

		};
		
		var onloadlocally = function(responseText,url,xhr){		
		
				if(dothiswhensavedlocally){
					dothiswhensavedlocally(dest);
				}
			
		};
		

		try{
			var r = jQuery.get(dest,null,onloadlocally);
			if(r.status == 404) throw "404 error";
		
		}
		catch(e){//couldnt load probably doesn't exist!
			VismoFileUtils.loadRemoteFile(sourceurl,onloadfromweb,null,null,null,null,null,null,true);		
		}

		
		
	}
	,_httpReq: function (type,url,callback,params,headers,data,contentType,username,password,allowCache)
	{
		var x = null;
		try {
			x = new XMLHttpRequest(); //# Modern
		} catch(ex) {
			try {
				x = new ActiveXObject("Msxml2.XMLHTTP"); //# IE 6
			} catch(ex2) {
			}
		}
		if(!x)
			return "Can't create XMLHttpRequest object";
		x.onreadystatechange = function() {
			try {
				var status = x.status;
			} catch(ex) {
				status = false;
			}
			if(x.readyState == 4 && callback && (status !== undefined)) {
				if([0, 200, 201, 204, 207].contains(status))
					callback(true,params,x.responseText,url,x);
				else{
					callback(false,params,null,url,x);
			
				}
				x.onreadystatechange = function(){};
				x = null;
			}
		};
		try {
			if(window.Components && window.netscape && window.netscape.security && document.location.protocol.indexOf("http") == -1)
			window.netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
			
			if(!allowCache)
				url = url + (url.indexOf("?") < 0 ? "?" : "&") + "nocache=" + Math.random();
			else{
				url = url + (url.indexOf("?") < 0 ? "?" : "&");
			}
			x.open(type,url,true,username,password);
			if(data)
				x.setRequestHeader("Content-Type", contentType || "application/x-www-form-urlencoded");
			if(x.overrideMimeType)
				x.setRequestHeader("Connection", "close");
			if(headers) {
				for(var n in headers)
					x.setRequestHeader(n,headers[n]);
			}
		//	x.setRequestHeader("X-Requested-With", "TiddlyWiki " + formatVersion());
		x.overrideMimeType('text/plain; charset=x-user-defined');
			x.send(data);
		} catch(ex) {
			//console.log(ex);
			//throw ex;
		}
		return x;
	},
	

	_getXML:function(str) {
		if(!str)
			return null;
		var errorMsg;
		try {
			var doc = new ActiveXObject("Microsoft.XMLDOM");
			doc.async="false";
			doc.loadXML(str);
		}
		catch(e) {
			try {
				var parser=  new DOMParser();
				var doc = parser.parseFromString(str,"text/xml");
			}
			catch(e) {
				return e.message;
			}
		}

		return doc;	
	}

	,getChildNodeValue: function(ofThisNode){
		var value= "";
		if(ofThisNode.childNodes){
			
			for(var k=0; k < ofThisNode.childNodes.length; k++){
			
				if(ofThisNode.childNodes[k].nodeValue){
					value += ofThisNode.childNodes[k].nodeValue;
				}
			}
		}
		return value;
	}
};/*some conversion functions that convert to geojson */
var VismoConversion ={
	niaveGeoJsonFlatten: function(geojson,niaveness){
		
		var newdata = geojson;
		var coordsDropped = 0;
		for(var i=0; i < newdata.features.length; i++){
			var g = newdata.features[i].geometry;
		
			if(g.type == 'MultiPolygon'){
				for(var ij =0; ij < g.coordinates.length; ij++){
					for(var j=0; j < g.coordinates[ij].length; j++){
		
						var bettercoords = [];
						var every = 0;
						if(g.coordinates[ij][j].length > 50){
							for(var k=0; k < g.coordinates[ij][j].length; k++){

								var c = g.coordinates[ij][j][k];
							
								if(every == 0){
									var x = parseFloat(c[0]);
									var y = parseFloat(c[1]);
									bettercoords.push([x,y]);
									every= niaveness;
								}
								else{
									every -= 1;
								}	
			
							}
							coordsDropped += (g.coordinates[ij][j].length - bettercoords.length);
							g.coordinates[ij][j] = bettercoords;
						}
					}
				}
			}
		}
		console.log(coordsDropped,"dropped");
		return newdata;
	}
	,svgToGeoJson: function(svg,canvas){
		var svgxml = VismoFileUtils._getXML(svg);
		var res = VismoMapSVGUtils.convertSVGToMultiPolygonFeatureCollection(svgxml);
		
		
		//res = VismoMapUtils.fitgeojsontocanvas(res,canvas);
		//console.log(res.boundingBox);
		//res
		//work out here where origin should be (half of the maximum width of the svg coordinate space should be 0)
		return res;
	},
	_kmlPolygonToFeature: function(xmlNode,feature){
		var geocoordinates = [];
		var polyChildren =xmlNode.childNodes;
		
		for(var k=0; k < polyChildren.length; k++){
			var fail = true;
			if(polyChildren[k].tagName =='outerBoundaryIs'){
				
				var outerChildren =polyChildren[k].childNodes;
				for(var l=0; l < outerChildren.length; l++){
					if(outerChildren[l].tagName == 'LinearRing'){
						
						var ringChildren =outerChildren[l].childNodes;
						for(var m=0; m < ringChildren.length; m++){
							if(ringChildren[m].tagName == 'coordinates'){
							
								
								var geometry = VismoFileUtils.getChildNodeValue(ringChildren[m]);
								geometry = geometry.trim();
						
								
								var coords = geometry.split(" "); //\n?
								for(var n=0; n < coords.length; n+= 1){
									var values = coords[n].split(",");
									var longitude= parseFloat(values[0]);
									var latitude = parseFloat(values[1]);
									var altitude = parseFloat(values[2]);
									geocoordinates.push([longitude,latitude]);
								
								}
								if(coords.length ==0){
									return false;
								}
								else{
									fail = false;
								}
								feature.geometry.coordinates.push([geocoordinates]);			
								
							}	
						}
					}
				}

                                                
			}
		}
		if(!feature){
			fail  = true;
		}
		else if(feature.geometry.coordinates[0].length == 0){
			fail = true;
		}
		else if(feature.geometry.coordinates[0][0].length == 1){
			fail = true;
		}
	
		if(fail) {
			return false;
		}
		else{
				
			return feature;
		}
	}
	,kmlToGeoJson: function(kml){
		var geojson = {type:"FeatureCollection", features:[]};
		
		var xml =VismoFileUtils._getXML(kml);
		var items = xml.getElementsByTagName("Placemark");
		
		for(var i=0; i < items.length; i++){
	
			var feature = {type:'Feature', geometry:{type:'MultiPolygon', coordinates:[]},properties:{'name':'georss'}};
						
			
			var att = items[i].childNodes;
			
			for(var j=0; j < att.length; j++){
				var fail = false;
				
				if(att[j].tagName == 'name' && att[j].firstChild){
					feature.properties.name =att[j].firstChild.nodeValue;
				}
				
				if(att[j].tagName == 'Polygon'){
					
					var succeeded = this._kmlPolygonToFeature(att[j],feature);

					if(succeeded){
						feature = succeeded;
					}
					else{
						fail = true;
					}
				}
				if(att[j].tagName == 'MultiGeometry'){
					
					var children = att[j].childNodes;
					for(var k=0; k < children.length; k++){
						if(children[k].tagName == 'Polygon'){

							var succeeded = this._kmlPolygonToFeature(children[k],feature);
						
							if(succeeded){
								feature = succeeded;
							}
							else{
								fail = true;
							}
						}	
					}
				}
				
			}
			//console.log("ere",fail);
			//if(!fail)
	//console.log(feature.geometry.coordinates.length);
			if(!fail && feature && feature.geometry.coordinates.length > 0) {
					geojson.features.push(feature);
			}
		}
	
		return geojson;
	}
	
	,geoRssToGeoJson : function (georss){
	
		var geojson = {type:"FeatureCollection", features:[]};
		var xml =VismoFileUtils._getXML(georss);
		var items = xml.getElementsByTagName("item");
		
		for(var i=0; i < items.length; i++){
			
			var feature = {type:'Feature', geometry:{type:'MultiPolygon', coordinates:[]},properties:{'name':'georss'}};
						
			var fail = false;
			var att = items[i].childNodes;
			for(var j=0; j < att.length; j++){

				
				if(att[j].tagName == 'title' && att[j].firstChild){
					feature.properties.name =att[j].firstChild.nodeValue;
				}
				if(att[j].tagName == 'description' && att[j].firstChild){
					feature.properties.description =att[j].firstChild.nodeValue;
				}
				
				if(att[j].tagName == 'georss:polygon'){
					var geocoordinates = [];
					//console.log(att[j].innerHTML,att[j].firstChild,"inner");

					var geometry = VismoFileUtils.getChildNodeValue(att[j]);
					geometry = geometry.trim();
					geometry = geometry.replace(/  +/g, " ");
					geometry = geometry.replace(/\n/g, "");
					var values = geometry.split(" ");
				
					if(values[0] != values[values.length-2] |values[1] != values[values.length-1]){
						values.push(values[0]);
						values.push(values[1]);
					}
					for(var k=0; k < values.length - 1; k+= 2){
						var latitude = parseFloat(values[k]);
						var longitude= parseFloat(values[k+1]);
						geocoordinates.push([longitude,latitude]);
					}
					feature.geometry.coordinates.push([geocoordinates]);
				}
				
			}
			if(!fail){
				geojson.features.push(feature);
			}
			else{
				
				//console.log("Unable to construct feature " +feature.properties.name+". Invalid georss coordinates: first and last coordinates should be same. ");
			}
		}
		
		return geojson;
	}

};var VismoClickingUtils = {
        //to be implemented..
        inVisibleArea: function(vismoCanvas,vismoShape){
                var bb = vismoShape.getBoundingBox();
                return true;
        }
        ,scrollXY: function(){
          var scrOfX = 0, scrOfY = 0;
          if( typeof( window.pageYOffset ) == 'number' ) {
            //Netscape compliant
            scrOfY = window.pageYOffset;
            scrOfX = window.pageXOffset;
          } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
            //DOM compliant
            scrOfY = document.body.scrollTop;
            scrOfX = document.body.scrollLeft;
          } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
            //IE6 standards compliant mode
            scrOfY = document.documentElement.scrollTop;
            scrOfX = document.documentElement.scrollLeft;
          }
          return {x: scrOfX,y: scrOfY};
        }
	,getRealXYFromMouse: function(e,t){
		var newpos =VismoClickingUtils.getMouseFromEvent(e);
		newpos = VismoClickingUtils.undotransformation(newpos.x,newpos.y,t);
		return newpos;
	}
	
	,undotransformation: function(x,y,transformation){ //porting to VismoTransformations?
		return VismoTransformations.undoTransformation(x,y,transformation);
	}	
	,resolveTarget:function(e)
	{
		if(!e) e = window.event;
		var obj;
		
		if(e && e.srcElement){
			obj = e.srcElement;
		}
	        else if(e.target)
        	        obj = e.target;
        	else{
	                obj = false;
	        }
	        try{
                        var x = obj.parentNode;
                }catch(e){return false;}
                /*
		if(obj && obj.nodeType && obj.nodeType == 3) // defeat Safari bug
			obj = obj.parentNode;
			*/
			
			/*try{
                                var x = obj.parentNode;
                        }
                        catch(e){return false;};*/
	        return obj;

		//return obj;
	}
	
	
	,getMouseFromEvent : function(e,target){
			if(!e) e = window.event;
			
			if(!target){
			       
			        var target = this.resolveTargetWithVismo(e);
			        if(!target)return false;
                        }
                        
			var offset = jQuery(target).offset();
               
                        var i;
          
			if(typeof(offset.left) != 'number') return false;
		
		        var scroll = this.scrollXY(e);
			x = e.clientX + scroll.x;
			y = e.clientY + scroll.y;
			//alert(x +"/"+y);
			x -= offset.left;
			y-=  offset.top;
			
			return {'x':x, 'y':y};		
			
	}
	,getMouseFromEventRelativeToTarget : function(e,target){
			if(!e) e = window.event;
			if(!target)return false;

			var offset = jQuery(target).offset();

			
			if(!offset.left) return false;
			var scroll = this.scrollXY();
			x = e.clientX + scroll.x - offset.left;
			y = e.clientY + scroll.y - offset.top;
			return {'x':x, 'y':y};		
			
	}

	,resolveTargetWithVismo: function(e)
	{
		var node = VismoClickingUtils.resolveTarget(e);
                

                
		if(!node)return false;
		var hasVismo = false;
     
                
		while(!hasVismo && node != document && node.parentNode && node.parentNode != document){
		        
		        if(node.vismoCanvas || node.vismoController || node.vismoClicking){
		                hasVismo = true;
			}
			else{
			        node= node.parentNode;
			}
		}
		
		if(!node) return false;
		return node;
	}
	,getMouseFromEventRelativeToElement: function (e,x,y,target){
		if(!e) e = window.event;

		var offset = jQuery(target).offset();
		if(!offset.left) return false;
		
		var scroll = this.scrollXY();
		oldx = e.clientX + scroll.x - offset.left;
		oldy = e.clientY + scroll.y - offset.top;
		var pos = {'x':oldx, 'y':oldy};

		if(!pos) return false;
		pos.x -= x;
		pos.y -= y;
		

		return pos;
		
	}

	,getMouseFromEventRelativeTo: function (e,x,y){
	
		var pos = this.getMouseFromEvent(e);
		if(!pos) return false;
		pos.x -= x;
		pos.y -= y;

		return pos;
	
	}
	,getMouseFromEventRelativeToElementCenter: function(e){ /*redundant?? */
		var w,h;
		var target = this.resolveTargetWithVismo(e);
		if(!target)return;
		if(target.style.width)
			w = parseInt(target.style.width);
		else if(target.width)
			w =parseInt(target.width);

		if(target.style.height)
			h = parseInt(target.style.height);
		else if(target.height)
			h = parseInt(target.height);
	
		if(!w || !h) throw "target has no width or height (vismomaputils)";
	
		return this.getMouseFromEventRelativeTo(e,w/2,h/2);
	}	
	

};

var VismoTransformations= {
	clone: function(transformation){
	
		var t = {};
		t.translate = {x:0,y:0};
		t.scale = {x:1,y:1};

		if(transformation.translate && transformation.translate.x){
			t.translate.x = transformation.translate.x;
			t.translate.y = transformation.translate.y;
		}
		
		if(transformation.scale && transformation.scale.x){
			t.scale.x = transformation.scale.x;
			t.scale.y = transformation.scale.y;		
		}
		
		return t;
	}
	,applyTransformation: function(x,y,t){

		var res= {};
		res.x = x;
		res.y = y;



		if(t.translate){
			res.x +=  t.translate.x;
			res.y += t.translate.y;
		}
		if(t.scale){
			res.x *= t.scale.x;
			res.y *= t.scale.y;
		}

		if(t.origin){
			res.x += t.origin.x;
			res.y += t.origin.y;
		}
		return res;
		
	}
	,mergeTransformations: function(a,b){
		if(!b) return a;
		if(!a) return b;
		
		var result = {};
		var i;
		for(i in a){
			result[i] = a[i];
		}
		
		for(i in b){
			if(result[i]){
				var oldt = result[i];
				var newt = b[i];
				
				result[i].x = oldt.x + newt.x;
				result[i].y = oldt.y + newt.y;
			}
			else{
				result[i] = b[i];
			}
		}
		return result;
	}
	,undoTransformation: function(x,y,transformation){
		var pos = {};
		var t =transformation;
		var tr =t.translate;
		var s = t.scale;
		var o = t.origin;
		if(s ===false || o ===false || tr ===false) return false;
		
		if(x ===false || y ===false)return false;
		pos.x = x - o.x;
		pos.y = y -o.y;
		//pos.x -= x;
		//pos.y += y;
		
		if(pos.x !== 0)
			pos.x /= s.x;
		
		if(pos.y !== 0)
			pos.y /= s.y;
			
		pos.x -= tr.x;
		pos.y -= tr.y;			
		return pos;	
	}
	,getXY: function(e,t){
		var pos =VismoClickingUtils.getMouseFromEvent(e);
		return this.undoTransformation(pos.x,pos.y,t);
	}
	,create: function(options){
	    var transformation= {};
	    var i;
	    for(i in options){
	        transformation[i] = options[i];
	    }
	    var s = transformation.scale;
	    var t = transformation.translate;
	    transformation["cache"] = {id1:[s.x,",",s.y].join(""),id2:[t.x,",",t.y].join("")};
	    
	    return transformation;
	    
	}
};var Vismo = {store:{Canvas:{}}};
var VismoCanvas = function(element,options){
    this._referenceid = Math.random();
    Vismo.store.Canvas[this._referenceid] = this;
    this._lastTransformation = {scale:{}};

    if(element.length){ //for jquery
        var result = [];
        for(var i=0; i < element.length; i++){
            var x = new VismoCanvas(element[i],options);
            result.push(x);
        }
        return x;
    }
    this.className = "VismoCanvas";
    this._idtoshapemap = {};
    if(!options) options = {};
	if(typeof element == 'string') element= document.getElementById(element);
	if(!element) throw "Element doesn't exist!";
	
	var canvaswidth = jQuery(element).width();
	var canvasheight = jQuery(element).height();
	element.style.width = canvaswidth;
	element.style.height = canvasheight;
	if(element.vismoClicking) {
		var update = element.vismoClicking;
		return update;
	}
	if(!options.pointsize){
        options.pointsize = 5;
    }	

	this.options = options;

	var wrapper = element;
	
	this.settings = {};
	this.settings.browser = !VismoUtils.browser.isIE ? 'good' : 'ie'
	this.settings.globalAlpha = 1;
	var canvas;
	var hideoverflow;
	if(this.settings.browser =='good'){
	    canvas = document.createElement('canvas');
	    canvas.className = "VismoCanvasRenderer";
	    hideoverflow = canvas;
	}    
	else
	{
	    hideoverflow = document.createElement("div");
	    canvas = document.createElement('div');
	    canvas.className = "VismoIECanvas VismoCanvasRenderer";
	    
	    canvas.style.setAttribute('cssText', 'position:absolute;left:0px;top:0px;', 0);
	    
	    hideoverflow.appendChild(canvas);
	    
	}
	
	
	//.VismoIECanvas
	var width =parseInt(wrapper.style.width);
	var height =parseInt(wrapper.style.height);
	canvas.width = width;
	canvas.height = height;
	
	this.setTransformation({translate:{x:0,y:0},scale:{x:1,y:1},origin:{x:canvaswidth/2, y:canvasheight/2}});
	if(!element.className)element.className = "VismoCanvas";
	jQuery(canvas).css({width:width, height:height,'z-index':1,position:'absolute'});        
	element.appendChild(hideoverflow);
	jQuery(hideoverflow).css({width:width, height:height,position:"absolute",overflow:"hidden",left:"0px",top:"0px"});
	var labels =  document.createElement("div");
    jQuery(labels).css({position:"absolute","z-index":9});      
    labels.className = "VismoLabels";
    wrapper.appendChild(labels);
    this.labelHolder = labels;
    this.labels = [];
	this.canvas = canvas;

	this.memory = [];
	
	element.vismoClicking = true;//this;//true;//this
    jQuery(this.canvas).mousedown(function(e){e.preventDefault();});

	this.wrapper = wrapper;

	this._setupMouse();

    var vc = this;
	if(options.vismoController){
	    if(!options.vismoController.handler){
	        options.vismoController.handler = function(t){
	            vc.transform(t);
	        }
	    }
	    this.vismoController = new VismoController(this.getDomElement(),options.vismoController);
	}
	
	this.mouse({down:options.mousedown,up:options.mouseup,move:options.move,dblclick:options.dblclick,keypress:options.keypress});
	var tooltipfunction;
	if(options.tooltipfunction){
	    if(typeof options.tooltipfunction == 'boolean'){
	        tooltipfunction = function(el,s){
	            if(s){
	                el.innerHTML = "cool"+s.getProperty("id");}
	            }
	    }
	    else{
	        tooltipfunction = options.tooltipfunction;
	    }
	    this.addTooltip(tooltipfunction)
	}

	if(options.shapes) {
		for(var i=0; i < options.shapes.length; i++){
	        
			this.add(options.shapes[i]);
		
		}
		this.render();
	}
	
	var x = window.onbeforeunload;
	var that = this;

	window.onbeforeunload =function(){
	    that.teardown();
	    x();
    };

};

VismoCanvas.prototype = {
    teardown: function(){
        VismoUtils.scrubNode(this.canvas);
        VismoUtils.scrubNode(this.wrapper);
        VismoUtils.scrubNode(this.labelHolder); 
       jQuery(this.canvas).unbind("mousedown");
       this.wrapper.onmouseout = null;
       this.wrapper.onmouseover = null;
      
        
    }
	,getDomElement: function(args){
		return this.wrapper;
	}
	,addTooltip: function(args){
	    var addContent = arguments[0];
	    var wrapper = this.wrapper;
	        if(addContent) this.tooltipAddContent = addContent;
	        if(!this.tooltip){
	                var tooltip =  document.createElement("div");
                        jQuery(tooltip).css({position:"absolute","z-index":1000,display:"none"});      
                        tooltip.className = "VismoTooltip";
                        
                        jQuery(tooltip).mousedown(function(e){e.preventDefault();if(wrapper && wrapper.onmousedown)wrapper.onmousedown(e);});
                        jQuery(tooltip).mousemove(function(e){e.preventDefault();});
                        jQuery(this.wrapper).parent().append(tooltip);
                        this.tooltip = tooltip;
                        
        		                       
                }
                if(!this.tooltipAdded){
                        var move= this.onmousemove;
                        var that = this;
                        var lastshape;
        		var newmove = function(e,shape){
        		        if(!e) e = window.event;
        		        if(!that.tooltip) return;     
                                jQuery(that.tooltip).html("");
                        
                        if(shape && lastshape != shape){
                                var bb = shape.getBoundingBox();
                           	    //var pos = VismoClickingUtils.getMouseFromEvent(e);
                		        if(that.tooltipAddContent)that.tooltipAddContent(that.tooltip,shape);
                		        var pos = VismoTransformations.applyTransformation(bb.x2,bb.y1,that.getTransformation())
                		        //var pos= {x: bb.center.x, y:bb.center.y};
                		        var w = jQuery(that.wrapper).width();
                		        var h = jQuery(that.wrapper).height();
                		        var off = jQuery(that.wrapper).offset();
                		        if(pos.x > off.left + w) pos.x = off.left + w;
                		        
                		        //jQuery(that.tooltip).css({top:0, right:0});             
                                }
        		        if(that.tooltipAddContent && shape){
        		                that.tooltipAddContent(that.tooltip,shape);
        		                lastshape = shape;
        		                jQuery(that.tooltip).css({display:""});
        		        }
        		        else{
     		                  jQuery(that.tooltip).css({display:"none"});
        		        }     
        		        if(move)move(e,shape);
        		        
        		};
        		this.onmousemove = newmove;
                        this.tooltipAdded = true;
                }
	}
	,getXYWindow: function(args){
	    var e = arguments[0];
	       var t = this.getTransformation();
	       var pos = this.getXY(e);
	       return  VismoTransformations.applyTransformation(pos.x,pos.y,t);
	}
	,getXY: function(args){
	    var e = arguments[0];
		return VismoTransformations.getXY(e,this.getTransformation());
	}
	,mouse: function(args){
	  
	    if(!args){
	        return {up: this.onmouseup, down: this.onmousedown, move: this.onmousemove, dblclick: this.ondblclick,keypress:this.onkeypress};
	    }
	    else{
	        var args = arguments[0];
	        
	        if(args.down)this.onmousedown = args.down;
    		if(args.up)this.onmouseup = args.up;
    		if(args.move)this.onmousemove=  args.move;
    		if(args.dblclick) this.ondblclick = args.dblclick;
    		if(args.keypress) this.onkeypress = args.keypress;

    		//if(this.madeMoveable) this.makeMoveable();
    		//if(this.tooltipAdded) this.addTooltip();	        
	    }
	}

	,_setupMouse: function(args){
		var that = this;
		this.onmousedown = function(e,s,pos){};
		this.onmouseup = function(e,s,pos){};
		this.onmousemove = function(e,s,pos){};
		this.ondblclick = function(e,s,pos){};
		this.onkeypress = function(e){};
	

		this._applyMouseBehaviours(this.wrapper);
		for(var i =0; i < this.wrapper.childNodes.length; i++){
			var child = this.wrapper.childNodes[i];
			//this._applyMouseBehaviours(child);
		}
	
	}
	,_applyMouseBehaviours: function(args){
	    var el = arguments[0];
	    var that = this;
	        
		var newbehaviour = function(e){
				//var t = VismoClickingUtils.resolveTargetWithVismo(e);              
				//if(t && t.getAttribute("class") == 'vismoControl') return false;
				var shape = that.getShapeAtClick(e,el);
				return shape;
			
		};
	    var applymice = function(el){
	        var down = el.onmousedown;
    		var up = el.onmouseup;
    		var mv = el.onmousemove;
    		var dblclick =el.ondblclick;
    		this.initialKeyPress = window.onkeypress;
    		//el.oncontextmenu=function(args) {  return false}; 		
    		el.onmouseover = function(e){

    				if(!that.keypressactive) {

    					that.keypressactive =  true;
    					window.onkeypress =function(e){
    					    that.onkeypress(e);
    					    if(that.initialKeyPress)that.initialKeyPress(e);
    					}
    					document.onkeypress = function(e){if(!e) e= window.event;if(that.initialKeyPress)that.initialKeyPress(e);if(!e) e= window.event;var s = newbehaviour(e); 
    					        if(that.onkeypress)that.onkeypress(e,s)
    					       
    					};
    				}
    		};
    		el.onmouseout = function(e){if(!e) e= window.event;that.keypressactive = false;};
	    
	    
    		jQuery(el).mousedown(function(e){
    		    //console.log("md",el);
    			var s = newbehaviour(e); 
    			if(s){
    				if(s.getProperty("onmousedown")){
    				        s.getProperty("onmousedown")(e,s);	
    				        if(that.onmousedown)that.onmousedown(e,s);

    				}
    				else{
    				    if(that.onmousedown)that.onmousedown(e,s);
    				}
    			}
    			else {
    			    //console.log("ic");
    			        if(that.onmousedown)that.onmousedown(e,s);
    			        if(down)down(e,s);
    			}

    		});

            jQuery(el).dblclick(function(e){
    			if(!e) e= window.event;
    			var s = newbehaviour(e); 				
    			if(s) {

    				if(s.getProperty("ondblclick")){
    				        s.getProperty("ondblclick")(e,s);
    				}
    				else if(that.ondblclick){
            			        that.ondblclick(e,s);
            			}
            			else{


            			}
    			}
    			else {
    				if(that.ondblclick){
            			        that.ondblclick(e,s);
            			}
    				if(dblclick){
    				        dblclick(e,s);
                                    }
    			}
    		});
            jQuery(el).mouseup(function(e){ 
                //console.log("mu",el);
                    var s = newbehaviour(e);
                    if(s){
    		                if(s.getProperty("onmouseup")){
    		                        s.getProperty("onmouseup")(e,s);
    		                        if(that.onmouseup)that.onmouseup(e,s);

    		                }
    		                else{
    		                    if(that.onmouseup)that.onmouseup(e,s);
    		                }


    		        }
    		        else{
    		                if(that.onmouseup)that.onmouseup(e,s);
    		                if(up)up(e,s);
    		        }
    		});
    		var defaultCursor;
    		jQuery(el).mousemove(function(e){ if(!e) e= window.event;var s = newbehaviour(e);

    		        if(!VismoUtils.browser.isIE){
    		                if(jQuery(el).hasClass("overVismoShape")) jQuery(el).removeClass("overVismoShape");
    		        }
    		        if(!VismoUtils.browser.isIE){

    		                if(jQuery(el).hasClass("overVismoPoint"))jQuery(el).removeClass("overVismoPoint");
    		        }

    		        if(s && !s.getProperty("unclickable")){


            		        if(that.ondblclick || that.onmousedown || that.onmouseup) {
            		                var sh;
                    		        if(s){
                    		               sh  = s.getShape();
                    		               if(!VismoUtils.browser.isIE  &&sh == "point") jQuery(el).addClass("overVismoPoint");
                    		        }
            		                if(!VismoUtils.browser.isIE && !jQuery(el).hasClass("panning") && !jQuery(el).hasClass("zooming"))jQuery(el).addClass("overVismoShape");
            	                }

    		                if(s.getProperty("onmousemove"))s.getProperty("onmousemove")(e,s);
    		        }
    		        else{
    		                //el.style.cursor = defaultCursor;
    		        }
    		        if(that.onmousemove)that.onmousemove(e,s); 
    		        if(mv)mv(e,s);
    		});       	

        };
        applymice(el);
		


	}
	,getDimensions: function(args){
		return {width: this.width() , height: this.height()};
	}
	,height: function(){
	    return parseInt(this.canvas.style.height);
	},
	width: function(){
	    return parseInt(this.canvas.style.width);
	}
	,resize: function(args){
		var width = arguments[0]; var height=arguments[1];
		if(this.canvas.getAttribute("width")){
			this.canvas.width = width;
			this.canvas.height = height;
		}
		jQuery(this.hideoverflow).css({height:height,width:width});
		jQuery(this.wrapper).css({height:height,width:width});
		jQuery(this.canvas).css({height:height,width:width});
	}
	,setTransparency: function(args){	
	    var alpha = arguments[0];
		this.settings.globalAlpha = alpha
	}
	,_setupCanvasEnvironment: function(args){
		if(VismoUtils.browser.isIE) return;
		var ctx = this.canvas.getContext('2d');
		var s =this.getTransformation().scale;
		if(s && s.x)ctx.lineWidth = (0.5 / s.x);
		ctx.globalAlpha = this.settings.globalAlpha;
		ctx.clearRect(0,0,this.canvas.width,this.canvas.height);
		ctx.lineJoin = 'round'; //miter or bevel or round	
	}
	,clear: function(args){
	    var deleteMemory = arguments[0];
		if(deleteMemory){
			this.clearMemory();
		}
		this._maxX = 0;
		this._maxY = 0;
        
		
		if(!this.canvas.getContext) {
			return;
		}
		var ctx = this.canvas.getContext('2d');
		ctx.clearRect(0,0,this.canvas.width,this.canvas.height);		
		
	}	
	
	
	,ie_render: function(args){
	    var projection= arguments[0];
	    VismoTimer.start("VismoCanvas.ie_render");
	    //this.render = this.ie_render;
	    var that = this;
		var transformation = this.getTransformation();
		if(this.options.beforeRender) this.options.beforeRender(this);	
		if(transformation.scale.x) sc = transformation.scale.x; else sc = 1;
		
		//determine point size
		var ps = this.options.pointsize / parseFloat(sc);
			
		tran = transformation;
        var o = tran.origin,t = tran.translate, s = tran.scale;
        jQuery(this.canvas).css({left:o.x+(t.x*s.x),top:o.y +(s.y*t.y),zoom:s.x});
        
		var mem =that.memory;
        var firstTime = false;
	    var appendTo;
	    if(that.canvas.childNodes.length == 0){
	        firstTime = true;
	        appendTo  = document.createElement("div");
	    }
	    else{
	        appendTo = that.canvas;
	    }
	    var lastT = this._lastTransformation.scale;
	    var shapes = this._lastTransformation.shapes;
	    if(lastT.x  ===s.x && lastT.y === s.y && this.memory.length == shapes){
	        tran = false; //stop a transformation from being applied we've covered it here
	    }

	    var globalAlpha =that.settings.globalAlpha; 
		for(var i=0; i < mem.length; i++){
            var vs =mem[i];
		    var st = vs.properties.shape
	        //if(vs.optimise(appendTo,transformation,projection)){
		        
			    if(st == 'domElement')tran = transformation;
				vs.render(that.canvas,tran,projection,true,that.settings.browser,ps);        
				if(vs.vmlfill && !vs.vmlfill.opacity && globalAlpha) {
					vs.vmlfill.opacity =globalAlpha;
				}
			
				
			//}
			/*
			var lookahead = function(){
			    var newtransformation = VismoUtils.clone(transformation);
			    newtransformation.scale.x *=2;
			    newtransformation.scale.y *= 2;
			    vs.optimise(appendTo,newtransformation,projection,true);
			};
			window.setTimeout(lookahead,1000);
		    */
		}
	    
		this._lastTransformation = {scale:{x:s.x,y:s.y},shapes:this.memory.length};
		if(firstTime){
		    that.canvas.appendChild(appendTo.cloneNode(true));
		}
		VismoTimer.end("VismoCanvas.ie_render");
	    
        
	}
	,canvas_render: function(args){
	    	    //console.log(this.getDomElement(),this.transformation);
	    var projection = arguments[0];
	    this.render = this.canvas_render;
	    var that = this;
		var transformation = this.getTransformation();
		if(this.options.beforeRender) this.options.beforeRender(this);	
		if(transformation.scale.x) sc = transformation.scale.x; else sc = 1;
		//determine point size
		var ps = this.options.pointsize / parseFloat(sc);
	
			
		
		var appendTo;
	    var mem =that.getMemory();
	    this._setupCanvasEnvironment();
	    var ctx = that.canvas.getContext('2d');
		ctx.save();
		tran = false;

		if(transformation){
			
			var o = transformation.origin;
			var tr = transformation.translate;
			var s = transformation.scale;
			var r = transformation.rotate;
			if(o && s && tr){
				ctx.translate(o.x,o.y);
				ctx.scale(s.x,s.y);
				ctx.translate(tr.x,tr.y);
			}
			if(r && r.x)ctx.rotate(r.x);
		}
	
		appendTo = that.canvas;
		
		for(var i=0; i < mem.length; i++){
		    var st = mem[i].getShape();
	        if(mem[i].optimise(that.canvas,transformation,projection)){
			    if(st == 'domElement')tran = transformation;
				mem[i].render(that.canvas,tran,projection,true,that.settings.browser,ps);        
				if(mem[i].vmlfill && that.settings.globalAlpha) {
					mem[i].vmlfill.opacity =that.settings.globalAlpha;
				}
			}
		}
	    if(ctx)ctx.restore();
	}
	,render: function(args){
	    var projection = arguments[0];

		if(this.settings.browser == 'good'){
            this.canvas_render(projection);
		}
		else{
	        this.ie_render(projection);
		}
			
	}
	,getTransformation: function(args){
		if(!this.transformation) {
		var ox = parseInt(this.canvas.style.width);
		var oy = parseInt(this.canvas.style.height);
		this.transformation = {scale:{x:1,y:1},translate:{x:0,y:0},origin:{x: ox/2, y: oy/2}};
		//this.transformation = VismoTransformation.getBlankTransformation(this.canvas);
		}
		return this.transformation;
	}
	
	,setTransformation: function(args){
	    var transformation = arguments[0];
	        //console.log(transformation.origin.x,transformation.translate.x,transformation.translate.y);
	        if(!transformation.origin){
	                transformation.origin = {};
	                transformation.origin.x = jQuery(this.wrapper).width() / 2;
	                transformation.origin.y = jQuery(this.wrapper).height() / 2;
	        }
	      
		if(transformation) this.transformation = transformation;
		var t = transformation.translate, s = transformation.scale;	
	    transformation.cache = {id1:[s.x,",",s.y].join(""),id2:[t.x,",",t.y].join("")};
	    
	}

    ,centerOn: function(x,y){
        
        var t=  this.getTransformation();
        t.translate.x = -x;
        t.translate.y = -y;
        if(this.vismoController){
            this.vismoController.setTransformation(t);
        }
        else{
            this.setTransformation(t);
        }
        this.render();
    }
	,remove: function(args){
        var vismoShape = arguments[0];
       var shapes = this.getMemory();
       
     
       for(var i=0; i < shapes.length; i++){
            if(shapes[i] == vismoShape){
                this.memory.splice(i,1);
            }
       }
       if(vismoShape.vml)vismoShape.vml.scrub();
       
	    var id = vismoShape.properties.id;
   	    delete this._idtoshapemap[id]
	       
	}
	,add: function(args){
	    var vismoShape = arguments[0];
	    this.needsSort = true;
	    if(!vismoShape._isVismoShape){
	        vismoShape = new VismoShape(vismoShape);
	    
	    }
	    if(vismoShape.properties.shape =='point'){
	        
            vismoShape.setDimensions(this.options.pointsize,this.options.pointsize);
        }
		if(!this.memory) this.memory = [];
		
		vismoShape.vismoCanvas = this;
		if(!vismoShape.getProperty("id")){
		    var newid  = this.memory.length +"_" + Math.random();
		    vismoShape.setProperty("id",newid);
		}
		vismoShape._canvasref = this._referenceid;
		var id = vismoShape.properties.id;
		this.memory.push(vismoShape);
		
		
		this._idtoshapemap[id] = vismoShape;
		vismoShape._vismoClickingID = id;


		return vismoShape;
	}
	,addLabel:function(args){
	    var domElement = arguments[0];
	    var x=  arguments[1];
	    var y = arguments[2];
	        this.labelHolder.appendChild(domElement);
	        var properties = {element: domElement,shape:"domElement"};
	  
	        var coords = [];
	        coords.push(x);
	        coords.push(y);
	        var shape = new VismoShape(properties,coords);
	        this.add(shape);
	              //console.log(shape);
	        return {element: domElement ,vismoshape: shape};
	}
	,transform: function(args){
	    var t = arguments[0];
		this.setTransformation(t);
		this.render();

	}
	,clearMemory: function(args){
		for(var i=0; i < this.memory.length; i++){
			if(this.memory[i].vml){
				this.memory[i].vml.scrub();
			}
		}
		this._idtoshapemap = {};
		this.memory = [];

	},
	getMemory: function(args){
        if(this.needsSort){
          
    	    this.memory =this.memory.sort(function(a,b){
    	        var z1 = a.getProperty("z-index");
    	        var z2 =b.getProperty("z-index");
    	        if(z1 < z2) return -1;
    	        else if(z1 == z2){
    	            return 0;
    	        }
    	        else{
    	            return 1;
    	        }
    	        });
	        this.needsSort = false;
	    }
	        
	    return this.memory;
	}
	,getMemoryID: function(args){
	    var vismoShape = arguments[0];
		if(vismoShape && vismoShape._vismoClickingID)
			return vismoShape._vismoClickingID;
		else{
			return false;
		}
	}
	,getShapeWithID: function(args){
	    var id = arguments[0];
	    var mem = this.getMemory();
	    if(this._idtoshapemap[id]) return this._idtoshapemap[id];
	    else return false;
	}
	,getShapeAtClick: function(args){
	    var e = arguments[0];
	    var el = arguments[1]; //the dom element the behaviour occurred o
		if(!e) {
			e = window.event;
		}
	
		var node = VismoClickingUtils.resolveTarget(e);
		//alert(node.tagName);
		if(node && node.tagName) { //vml vismoShape
		    if(node.tagName.toUpperCase() == 'SHAPE'){
		        if(node._vismoClickingID){
		            
		            var shape = this.getShapeWithID(node._vismoClickingID);
		            if(shape) return shape;
		        }
		        
			}
			
		}

		var target = VismoClickingUtils.resolveTargetWithVismo(e);
	    target =el;
		if(!target) return;
		
		var offset = jQuery(target).offset();

                var xy= VismoClickingUtils.scrollXY();
		x = e.clientX + xy.x - offset.left;
		y = e.clientY + xy.y - offset.top;

		if(this.memory.length > 0){
			var shape = false;
			
			if(target.vismoClicking){
			    var pos =  VismoTransformations.undoTransformation(x,y,this.transformation);
    			x = pos.x;
    			y = pos.y;
			    shape = this.getShapeAtPosition(x,y);
			}
			else{
			    //shape = false;
			}
			return shape;
		} else{
			return false;
		}
	},
	getShapeAtPosition: function(args) {
	    /* x and y should be in VismoShape coordinate world*/
	    var x= arguments[0];
	    var y=  arguments[1];
		var shapes = this.memory;

		var hitShapes = [];
		for(var i=0; i < shapes.length; i++){
			var shape = shapes[i];
			if(!shape.getProperty("unclickable"))
	                {		
	                        var st = shape.getShape();
				var g = shape.getBoundingBox();
			
				if(x >= g.x1 && x <= g.x2 && y >=  g.y1 && y <=g.y2){
					hitShapes.push(shapes[i]);
				}
			}

		}
		
		if(hitShapes.length > 0){
		    
		        var res = this._findNeedleInHaystack(x,y,hitShapes);
			return res;
		
		}
	        else return false;
	
		// var shapesInsideBox = _findShapesInsideBoundingBox(shapes, ..) TODO RENAME
		// var points = _findPointsInsideShapes(..)
		

	},
	_findNeedleInHaystack: function(args){
		var x= arguments[0];
	    var y=  arguments[1];
	    var shapes = arguments[2];
	    var hits = [];
		
		for(var i=0; i < shapes.length; i++){
			var st = shapes[i].getShape();
			var itsahit = false;
			if(st == 'polygon'){
				itsahit = this._inPoly(x,y,shapes[i]);
			}
			else if(st == 'path'){
			    //itsahit = this._onPath(x,y,shapes[i]);
			    itsahit = false; 
			}
			else if(st == 'image'){
				itsahit = true;
			}
			else if(st == 'point' || st == 'circle'){
				itsahit = this._inCircle(x,y,shapes[i]);
			}
			if(itsahit) {
				hits.push(shapes[i]);
			}
			
		}

		if(hits.length == 0){
			return false;
		}
		else if(hits.length == 1) 
			return hits[0];
		else {//the click is in a polygon which is inside another polygon
		    var bestZindex = {s:[],z:0};
		    for(var i=0; i < hits.length; i++){
		        var zin = hits[i].getProperty("z-index"); 
		        if(zin > bestZindex.z){
		            bestZindex.s = [hits[i]];
		            bestZindex.z = zin;
		        }  
		        else if(zin == bestZindex.z){
		            bestZindex.s.push(hits[i]);
		        }
	        }
	        if(bestZindex.s.length == 1) return bestZindex.s[0];
		    
			var g = bestZindex.s[0].getBoundingBox();
			var mindist = Math.min(g.x2 - x,x - g.x1,g.y2 - y,y - g.y1);
			var closerEdge = {id:0, closeness:mindist};
			for(var i=1; i < bestZindex.s.length; i++){
				var g = bestZindex.s[i].getBoundingBox();
				var mindist = Math.min(g.x2 - x,x - g.x1,g.y2 - y,y - g.y1);
			
				if(closerEdge.closeness > mindist) {
					closerEdge.id = i; closerEdge.closeness = mindist;
				}
				
			}
			return bestZindex.s[closerEdge.id];
		
		}

	}
	,_inCircle: function(args){
	    var x= arguments[0];
	    var y=  arguments[1];
	    var vismoShape = arguments[2];
		  var bb = vismoShape.getBoundingBox();
        var transform = vismoShape.getTransformation();

		if(transform){
		        var newpos = VismoTransformations.applyTransformation(x,y,transform);
		        x= newpos.x;
		        y = newpos.y;
	    }
	    
		var a =((x - bb.center.x)*(x - bb.center.x)) + ((y - bb.center.y)*(y - bb.center.y));
		var dim = vismoShape.getDimensions();
		
		var w = dim.width;
		var h = dim.height;
		
		var inCircleOne;
		var inCircleTwo;
		
		if(transform && transform.scale) {
		    w *= transform.scale.x;
		    h *= transform.scale.y;
		}
		w *= w;
		h *=h;
		
		if (a <= w) inCircleOne= true;
		else inCircleOne = false;
		
		if (a <= h) inCircleTwo= true;		
		else inCircleTwo = false;
		

    		//console.log(bb.center.x,bb.center.y,x,y,vismoShape.properties.id,a,w,h,inCircleOne,inCircleTwo);
    		
		if(inCircleOne && inCircleTwo) return true;
		else return false;
	
	}
	,_onPath: function(args){
	    var x= arguments[0];
	    var y=  arguments[1];
	    var vismoShape = arguments[2];
	    return false;
	}
	,_inPoly: function(args) {
	    var x= arguments[0];
	    var y=  arguments[1];
	    var vismoShape = arguments[2];
		/* _inPoly adapted from inpoly.c
		Copyright (c) 1995-1996 Galacticomm, Inc.  Freeware source code.
		http://www.visibone.com/inpoly/inpoly.c.txt */
		var coords;
		coords = vismoShape.getCoordinates();
		var transform = vismoShape.getTransformation();
		
		if(transform){
		        var newpos = VismoTransformations.applyTransformation(x,y,transform);
		        x = newpos.x;
		        y = newpos.y;
		}
		
		var npoints = coords.length;
		if (npoints/2 < 3) {
			//points don't describe a polygon
			return false;
		}
		var inside = false;
		var xold = coords[npoints-2];
		var yold = coords[npoints-1];
		var x1,x2,y1,y2,xnew,ynew;
		for (var i=0; i<npoints; i+=2) {
			xnew=coords[i];
			ynew=coords[i+1];
			if (xnew > xold) {
				x1=xold;
				x2=xnew;
				y1=yold;
				y2=ynew;
			} else {
				x1=xnew;
				x2=xold;
				y1=ynew;
				y2=yold;
			}
			if ((xnew < x) == (x <= xold)
				&& (y-y1)*(x2-x1) < (y2-y1)*(x-x1)) {
				   inside=!inside;
				}
			xold=xnew;
			yold=ynew;
		 }
		 return inside;
	}

    ,isOverlap: function(shape1,shape2){
        return false;
    }


};
var VismoCanvasRenderer = {
	renderShape: function(canvas,vismoShape){
	    var ctx = canvas.getContext('2d');
		var shapetype =vismoShape.properties.shape;
		if(vismoShape.properties["lineWidth"]){
			ctx.lineWidth = vismoShape.getProperty("lineWidth");
		}
		
		ctx.save();
                
		ctx.beginPath();
		if(shapetype == 'point' || shapetype =='circle'){
			this.renderPoint(ctx,vismoShape);
		}
		else if(shapetype =='image'){
			this.renderImage(ctx,vismoShape);
		}
		else if(shapetype == "path"){
            this.renderPath(ctx,vismoShape);
		}
		else{	
			this.renderPath(ctx,vismoShape,true);	
			ctx.closePath();
		        
		}
		
		ctx.strokeStyle = vismoShape.getProperty("stroke")
		if(typeof vismoShape.getProperty("fill") == 'string') 
			fill = vismoShape.getProperty("fill");
		else
			fill = "#ffffff";


		ctx.stroke();
		if(shapetype != 'path') {
			ctx.fillStyle = fill;
			ctx.fill();
		}
	        ctx.restore();
                
                
	        
	}
	,renderPath: function(ctx,vismoShape,join){
		var move = true,quadraticCurve = false,bezierCurve = false;
		var c = vismoShape.getCoordinates();
		var t =vismoShape.getProperty("transformation");
		if(!t) t= {};
		//ctx.save(); //issue with this in safari..
		if(!t.translate)t.translate = {x:0,y:0};
		if(!t.scale) t.scale = {x:1,y:1};
		    

		//ctx.scale(t.scale.x,t.scale.y);
		if(!t.translate.y) t.translate.y = 0;
		if(!t.translate.x) t.translate.x = 0;
		if(!t.scale.x) t.scale.x = 1;
		if(!t.scale.y) t.scale.y = 1;

		var bb = vismoShape.grid;
		if(bb.center){
		    ctx.translate(bb.center.x-(bb.center.x*t.scale.x),bb.center.y-(bb.center.y*t.scale.y));
            ctx.scale(t.scale.x,t.scale.y);	
            ctx.translate(t.translate.x,t.translate.y);
        }
		var bb = vismoShape.grid;
		for(var i=0; i < c.length-1; i+=2){
            var isCoord =VismoShapeUtils._isCoordinate(c[i]);
			if(!isCoord){

				if(c[i] == "M"){
				    move=true;
			    }
			    else if(c[i] == "q"){
			        quadraticCurve = true;
			    }
			    else if(c[i] == "c"){
			        bezierCurve = true;
			    }
			    i+=1;
			}
			var x = parseFloat(c[i]);
			var y = parseFloat(c[i+1]);	
			
			if(move){ 
				ctx.moveTo(x,y);
			
				move = false;
			}
			else if(quadraticCurve){
			    var x2 = parseFloat(c[i+2]);
			    var y2 = parseFloat(c[i+3]);

			    i+= 2;
			    ctx.quadraticCurveTo(x,y,x2,y2);
			}
			else if(bezierCurve){
			    var x2 = parseFloat(c[i+2]);
			    var y2 = parseFloat(c[i+3]);
                var x3 = parseFloat(c[i+4]);
                var y3 = parseFloat(c[i+5]);
			    i+= 4;
			    ctx.bezierCurveTo(x,y,x2,y2,x3,y3);			    
			}
			else{
			       
				ctx.lineTo(x,y);
			}			
				
				
		}
	
		//ctx.restore(); //issue with this in safari..
	}
	,renderPoint: function(ctx,vismoShape){
	        //ctx.restore();
		//ctx.save();
		var bb =vismoShape.getBoundingBox();
		var dim =vismoShape.getDimensions();
		var radiusx = dim.width / 2;
		var radiusy = dim.height/2;
		
		var transform = vismoShape.getTransformation();
		if(transform && transform.scale) radiusx*= transform.scale.x;
		//ctx.save();
		if(radiusx > radiusy) {
		    //ctx.scale(radiusx/radiusy,1)
		}
		else if(radiusy > radiusx){
		    //
		    //ctx.scale(1,radiusy/radiusx)
		    //ctx.restore();
		}
		ctx.arc(bb.center.x, bb.center.y, radiusx, 0, Math.PI*2,true);
	    
	}
	,renderImage: function(ctx,vismoShape){
		var c = vismoShape.getCoordinates();
		var bb = vismoShape.getBoundingBox();
		var draw = function(){
		        if(vismoShape.ready)ctx.drawImage(vismoShape.image,bb.x1,bb.y1,bb.width,bb.height);
		        else window.setTimeout(draw,100);
		};
                draw();

	}
};


var VismoGraph = function(properties){
    this._nodes = {};
    this._children = {};
    this._parents = {};
    this._orphans = {};
    this._spouses = {};
	if(properties.nodes){
    	for(var i=0; i < properties.nodes.length; i++){
    	    this.addNode(properties.nodes[i]);
    	}
	}
	if(properties.edges){
	    var edges = properties.edges;
	    for(var i=0; i < edges.length; i++){
	        var a = edges[i][0];
	        var b = edges[i][1]; 
    	    this.addEdge(a,b);
    	}
	}
};

VismoGraph.prototype = {
    getNode: function(id){
        return this._nodes[id];
    }
    ,depth: function(id,depthsofar){
       if(!depthsofar && depthsofar !== 0)depthsofar =0;
       var kids = this.getChildren(id);
       if(kids.length == 0) return depthsofar;
       
       var maxdepth = 0;
       for(var i=0; i < kids.length;i++){
           var depth = this.depth(kids[i],depthsofar+1)
           if(depth > maxdepth) maxdepth = depth;
       }
       return maxdepth;
    }
    /* a spouse shares the same children as another node*/
    ,isSpouse: function(id1,id2){
        if(id1 == id2) return false;
        var childrenX = this.getChildren(id1);
        var childrenY = this.getChildren(id2);
        var allchildren = childrenX.concat(childrenY);
        for(var i=0; i < allchildren.length; i++){
            // if the child also has y as a parent..
            var child = allchildren[0];
            if(this._parents[child].indexOf(id2) != -1 && this._parents[child].indexOf(id1) != -1) return true;
        }
        return false;
    }
    ,getSpouses: function(id){
        var n = this.getNodes();
        var spouses = [];
        for(var i=0; i < n.length;i++){
            
            if(this.isSpouse(id,n[i].id)){
                spouses.push(n[i].id);
            }
        }
        return spouses;
    }
    ,getNodes: function(){
        var nodes = [];
        for(var i in this._nodes){
            nodes.push(this._nodes[i]);
        }
        return nodes;
    }
    ,getChildren: function(id){
        if(typeof(id) != 'string'){
	        var done = {};
	        var allchildren = [];
	        for(var i=0; i < id.length;i++){
	            var parentid = id[i];
	            var children = this.getChildren(parentid);
	            for(var j=0; j < children.length;j++){
	                var childid = children[j];
	                if(!done[childid]){
	                    allchildren.push(childid);
	                    done[childid] = true;
	                }
	            }
	        }
	        return allchildren;
	        
	        
	    }
	    
        var children = this._children[id];

        if(!children){
            return [];
        }
        else {
            return children;
        }
    }
    ,isOrphan: function(id){
        if(!this._parents[id] || this._parents[id].length == 0){
            return true;
        }
        else{
            return false;
        }
    }
    ,getParents: function(id){
        var p = this._parents[id];

        if(!p){
            return [];
        }
        else {
            return p;
        }
    }
    ,getOrphans: function(){ 
        var orphans = [];
       var nodes = this.getNodes();
       for(var i=0; i < nodes.length; i++){
           var id = nodes[i].id;
           if(this.isOrphan(id)){
               orphans.push(id);
            }
        }
    
        return orphans;
    } 
    ,addNode: function(nodejson){
        var id = nodejson.id;
        if(!nodejson.properties){
            nodejson.properties = {};
        }
        this._nodes[id] = nodejson;
        this._orphans[id] = true;
    }
    ,addEdge: function(a,b){
        if(!this._children[a]) this._children[a] = [];
        if(!this._parents[b]) this._parents[b] = [];
        
        this._children[a].push(b);
        this._parents[b].push(a);
        
        if(!this._orphans[a])this._orphans[a] = true;
        this._orphans[b] = false;
        
    }
};

var VismoGraphRenderer = function(place,options){
    if(!options.algorithm){
        throw "GraphRenderer requires an option called algorithm which is a function. This will take two parameters graph and root and should set XPosition and YPosition on every node.";
    }
    
    this.algorithm = options.algorithm; 
    if(!options.nodeWidth) options.nodeWidth= 5;
    if(!options.nodeHeight) options.nodeHeight = 5; 
    this.options = options;
    this._edgeShapeCoordinates = [];
    this._graph = options.graph;

 
    
    var canvasopts = {vismoController:{}};
    if(options.move)canvasopts.move = options.move;
    if(options.dblclick)canvasopts.dblclick = options.dblclick;
    this._canvas = new VismoCanvas(place,canvasopts);

    if(options.root){
        this.compute(options.root);  
    }
     
};

VismoGraphRenderer.prototype = {
    clear: function(){
        this._canvas.clear(true);
        this._edgeShapeCoordinates = [];
    }

    ,compute: function(root){
        var graph = this._graph;
        if(this.options.root != root) this.clear();
        if(root)this.options.root = root;
        this.algorithm.compute(graph,this.options);
        
        this.plot(root);
        if(this._edgeShapeCoordinates.length > 0){
            this._canvas.add(new VismoShape({shape:"path",coordinates:this._edgeShapeCoordinates}));
        }
        this._canvas.render();

        var node = graph.getNode(root);
        var half_height = this._canvas.height() /2;
        this._canvas.centerOn(node.XPosition,node.YPosition + half_height);

    }
    ,plot: function(id){
        var node = this._graph.getNode(id);
        var y = -node.YPosition;
        var x = node.XPosition;
        this.plotNode(id,{x:x,y:y});
        var children = this._graph.getChildren(id);
        for(var i=0; i < children.length; i++){
            var parentpos = {x:x,y:y};
            var ch =children[i];
            var childxy = this.plot(ch);
            if(parentpos && childxy){
                this._edgeShapeCoordinates=this._edgeShapeCoordinates.concat(["M",parentpos.x,parentpos.y,childxy.x,childxy.y]);
            }
        }
        return {x: x,y:y};
    }
    
    ,plotNode: function(id,pos){
        var exists = this._canvas.getShapeWithID(id);
        if(!exists){
            var st,coords;
            st= "polygon";
            var hr = this.options.nodeWidth /2;
            var vr=this.options.nodeHeight /2;
            coords = [pos.x-hr,pos.y-vr,pos.x+hr,pos.y-vr,pos.x+hr,pos.y+vr,pos.x-hr,pos.y+vr];
            
            var node= this._graph.getNode(id);
            node.properties.shape = st;
            node.properties.coordinates = coords;
            var shape= new VismoShape(node.properties);
            this._canvas.add(shape);          
        }
        else{
            var b = exists.getBoundingBox();
            pos = b.center;
        } 
        return pos;
        
    }

 };var VismoVector = function(vismoShape,canvas){
	
  VismoTimer.start("VismoVector.init");
	this._iemultiplier = 10; //since vml doesn't accept floats you have to define the precision of your points 100 means you can get float coordinates 0.01 and 0.04 but not 0.015 and 0.042 etc..
	this.vismoShape=  vismoShape;

	this.cache = {};
	this.maxResolution_id_x = 1;
	this._oldproperties = {};
	this.initShape(vismoShape,canvas);
    
    
	vismoShape.vml = this;
	VismoTimer.end("VismoVector.init");		
};

VismoVector.prototype = {
	scrub: function(){
	     VismoTimer.start("VismoVector.scrub");
	     if(this.el){
	    this.el.parentNode.removeChild(this.el);
	    this.el = false;
	    }
	    VismoTimer.end("VismoVector.scrub");
	}
	,initShape: function(vismoShape,canvas){
	    VismoTimer.start("VismoVector.initShape");
	    this.coordinatesHaveChanged();
	    this.el = false;
	    var isVML;
    	var shapetype =vismoShape.properties.shape;       
        this.initialshapetype= shapetype;
        
		if(shapetype == 'point' || shapetype == 'circle'){
    		this._initArc(vismoShape,canvas);
    		isVML = false;
    	}
    	else if(shapetype == 'image'){
    		this._initImage(vismoShape,canvas);
    	}
    	else if(shapetype == 'domElement'){
    	        //this.haveAppended = true;
    	        this.el = vismoShape.getProperty("element");
    	        this.el.style.position = "absolute";
    	        var el = this.el;
    	   
    	        
    	        return;
    	}
    	else{
    		this._initPoly(vismoShape,canvas);
    		isVML = true;
    	}
    	if(isVML && canvas){
    	    var w,h;
    	    if(!canvas){
    	        throw " i need a canvas to do my magic!";
    	    }
    	    if(canvas.width){
    	        w= canvas.width;
    	    } 
    	    else{
    	        w = jQuery(canvas).width();
    	        canvas.width = w;
    	    }
    	    if(canvas.height){
    	        h= canvas.height;
    	    } 
    	    else{
    	        h = jQuery(canvas).height();
    	        canvas.height= h;
    	    }
            
    	    
            	var xspace = parseInt(w);
            	xspace *=this._iemultiplier;
            	var yspace =parseInt(h);
            	yspace *= this._iemultiplier;
            	coordsize = xspace +"," + yspace;
            	this.el.coordsize = coordsize;
    	}
            if(this.vismoShape && this.el){
                //this.el.vismoShape = this.vismoShape;
    	        var nclass= "vismoShape";			
    	        if(shapetype == 'path'){ nclass= "vismoShapePath";}
    	        this.el.setAttribute("class", nclass);
    	        this.style();
    	}
    	var that= this;
	    //jQuery(window).bind("unload", function(){that.el= null;});
		 VismoTimer.end("VismoVector.initShape");
	}
	,_initImage: function(vismoShape,canvas){

		var that = this;
		var dim = vismoShape.getDimensions();
		var setup = function(){
			var shape = document.createElement("img");
			
			that.el = shape;
			shape.src = vismoShape.getProperty("src");	
			
			jQuery(shape).css({"height": dim.height, "width": dim.width,"position":"absolute","z-index":4});		

		};

		var image = new Image();
		image.src = vismoShape.getProperty("src");
		image.onload = function(e){
			setup();
		};
		if(image.complete){
			setup();
		}
		
	}
	,_initArc: function(vismoShape,canvas){
		var shape = document.createElement("vismoShapeVml_:arc");
		shape.startAngle = 0;
		shape.endAngle = 360;
		var bb = vismoShape.getBoundingBox();
		this.el = shape;	
		var diameterx = bb.width;
		var radiusx = bb.width/ 2;
		var diametery =  bb.height;
		var radiusy= bb.height/  2;
		
		jQuery(this.el).css({"height": diametery, left:bb.center.x-radiusx, top: bb.center.y-radiusy,"width":diametery,"position":"absolute","z-index":4});			
	}
	,_initPoly: function(vismoShape,canvas){
		VismoTimer.start("VismoVector._initPoly");
		var shape = document.createElement("vismoShapeVml_:shape");
		
		this.el = shape;
		this.el.name=vismoShape.properties.name;
		//var css = jQuery(canvas).css();
		var w =canvas.width;// css.width;
		var h = canvas.height;//css.height;

		
		jQuery(this.el).css({"height": h,"width": w,"position":"absolute","z-index":4});
		
		VismoTimer.end("VismoVector._initPoly");
	}
	,getVMLElement: function(){
		return this.el;
	}
	,_createvmlpathstring: function(transformation,projection){ //mr bottleneck
	    VismoTimer.start("VismoVector.createvmlpathstring");
		var vml = this.el;
		var o,t,s;
		if(transformation){
		    o = transformation.origin;
		    t = transformation.translate;
		    s = transformation.scale;
		}
		else{
		    o = {x:0,y:0};
		    t = {x:0,y:0};
		    s = {x:1,y:1};
		}
		var cindex;
		if(!s || (!s.x && !s.y)){
		    cindex = "1,1";
		}else{
		     cindex= s.x+","+s.y;
		}
		
		if(!this.cache) {this.cache = {};}
	    if(!this.cache[cindex]){ this.cache[cindex] = {};}
	
		if(!this.cache[cindex]["pathstring"]){
		    var path;
		    var buffer = [];
		    var c;
		    if(this.vismoShape.coordinates.normal){
		        c = this.vismoShape.coordinates.normal;
    		}
    		else{
    		    c =this.vismoShape.getCoordinates("normal");
	        }
    		if(projection){
    			c = this.vismoShape._applyProjection(projection,transformation);
    		}
		
    		if(c.length < 2) return;

    		var x,y;
    		x = c[0];
    		y =c[1];		
    		x *=this._iemultiplier;
    		y *= this._iemultiplier;
    		x = parseInt(x);
    		y = parseInt(y);

    		//path = "M";
    		buffer.push("M");
    		//path+= x + "," +y + " L";
    		buffer.push([x,",",y].join(""))
    		var lineTo = false,quadraticCurveTo = false,bezierCurveTo = false;
    		for(var i =2; i < c.length; i+=2){
    			if(c[i] == 'M') {
    				//path += " M";
    				buffer.push(" M");
    				lineTo = false;
    				i+=1;
    			}
    			else if(c[i] == 'z'){
    			    buffer.push(" XE");
    			}
    			else if(c[i] == "q"){
    			    quadraticCurveTo = true;
    			    i += 1;
    			}
    			else if(c[i] == "c"){
    			    bezierCurveTo = true;
    			    i+=1;
    			}
    			else if(!lineTo) {
    				//path += " L";
    				buffer.push(" L");
    				lineTo = true;
    			}
    			else if(lineTo){
    				//path += " ";
    				buffer.push(" ");
    			}
    			var x =parseInt(c[i] * this._iemultiplier);
    			var y =parseInt(c[i+1] * this._iemultiplier);

			
    			if(quadraticCurveTo){
    			    var x2 =parseInt(c[i+2] * this._iemultiplier);
        			var y2 =parseInt(c[i+3] * this._iemultiplier);
    			    buffer.push([" c ",x,",",y,",",x2,",",y2,",",x2,",",y2,""].join(""));
    			    i += 2;
    			    quadraticCurveTo = false;
    			}
    			else if(bezierCurveTo){
    			    var x2 =parseInt(c[i+2] * this._iemultiplier);
        			var y2 =parseInt(c[i+3] * this._iemultiplier);
        			var x3 = parseInt(c[i+4] * this._iemultiplier);
        			var y3 = parseInt(c[i+5] * this._iemultiplier);
    			    buffer.push([" c ",x,",",y,",",x2,",",y2,",",x3,",",y3,""].join(""));
    			    i += 4;
    			    bezierCurveTo = false;
    			}
    			else{
    			    buffer.push([x,",",y].join(""));
    			}
    			//path += x +"," + y;
			
    			//if(i < c.length - 2) path += "";
		    }
        
		    if(this.vismoShapeProperties.shape != "path"){buffer.push(" XE");}
		    this.cache[cindex]["pathstring"] = buffer.join("");
		//console.log(buffer.join(""));
	    }
        
	
	
        VismoTimer.end("VismoVector.createvmlpathstring");
		return this.cache[cindex]["pathstring"];
	
	}

	,transformDomElement: function(transformation,projection){
	    VismoTimer.start("VismoVector.transformDomElement");
		/*var o = transformation.origin, t = transformation.translate,s = transformation.scale;
		*/
		var shape = this.vismoShape;
		var el = this.el;
		var top,left,width,height;
		var bb = shape.getBoundingBox();
		dx = bb.x1;
		dy = bb.y1;
        jQuery(this.el).css({left:dx,top:dy});
        VismoTimer.end("VismoVector.transformDomElement");
	}
	
	,coordinatesHaveChanged: function(){
	    this.coordinatesChanged = true;
	
	}
	
	,_cacheStyle: function(t,s,o){
	    VismoTimer.start("VismoVector._cacheStyle");
	    var vml = this.el;
		if(!this.initialStyle) { //remember original placement
			var initTop = parseInt(vml.style.top);
			if(!initTop) initTop = 0;
			var initLeft = parseInt(vml.style.left);
			if(!initLeft) initLeft = 0;
			var w =parseInt(vml.style.width);
			var h = parseInt(vml.style.height)
			this.initialStyle = {width: w, height: h};
		}
		var initialStyle= this.initialStyle;

		var newwidth = initialStyle.width * s.x;
		var newheight = initialStyle.height * s.y; 	
			
 
		 VismoTimer.end("VismoVector._cacheStyle");
		return { width:newwidth+"px",height:newheight+"px"};
	}
	,_cssTransform: function(transformation,projection){
	   
		VismoTimer.start("VismoVector._cssTransform");
	
		var vml = this.el;
		var st = this.vismoShapeProperties.shape;
	
		if(st == 'circle' || st == 'img' || st == 'domElement'){
		   
			this.transformDomElement(transformation,projection);
			VismoTimer.end("VismoVector._cssTransform");
			return;
		}
		if(!transformation) return;
		var ckey_1, ckey_2;
		if(transformation.cache){
		    ckey_1 = transformation.cache.id1;
		    ckey_2 = transformation.cache.id2;
		}
		else{
		    ckey_1 = "1,1";
		    ckey_2 = "0,0";
		}
		if(!this.cache[ckey_1]) this.cache[ckey_1] = {};

	
        var s =  transformation.scale;
		if(!this.cache[ckey_1][ckey_2]){
		    var o = transformation.origin, t = transformation.translate;
			this.cache[ckey_1][ckey_2] = this._cacheStyle(t,s,o);
		}
	    var style = this.cache[ckey_1][ckey_2];
	    //jQuery(this.el).css(style); //jon
		VismoTimer.end("VismoVector._cssTransform");
	}
	,clear: function(){
			VismoTimer.start("VismoVector.clear");
			var el = this.el;
			
			try{
			        if(el)jQuery(el).css({display:"none"});
			}catch(e){
			};
			VismoTimer.end("VismoVector.clear");
	}
	,render: function(canvas,transformation,projection){
	    VismoTimer.start("VismoVector.render");
        var that = this;
        var shape = this.el;
        this.vismoShapeProperties = this.vismoShape.properties;
        if(!shape){ //try again later
                var f= function(){
                        that.render(canvas,transformation);
                }
                window.setTimeout(f,50);
                return;
        }
        if(!this.haveAppended){ //append element to dom
		    shape._vismoClickingID = this.vismoShapeProperties.id;
		}
	
		if(this.coordinatesChanged) {
		    this._cssTransform(transformation,projection);
			shape.path = this._createvmlpathstring(transformation,projection);//causes slow down..	
			this.coordinatesChanged = false;
			
		}
		
		
			
		var shtype= this.vismoShapeProperties.shape;
		if(this.initialshapetype != shtype){ //shape type has changed force restart
		   this.scrub();
		   this.initShape(this.vismoShape,canvas);
		   this.haveAppended = false;
		}
		if(shtype!="domElement")shape.style.display = "";
		
		if(!this.haveAppended){ //append element to dom
		    if(transformation)this._cssTransform(transformation,projection);
			canvas.appendChild(shape);
			if(shtype == 'domElement'){
    			var vismoShape = this.vismoShape;
                var c = vismoShape.getCoordinates();
                var rw = jQuery(el).width()/2;
                var rh = jQuery(el).height()/2;
          
                jQuery(el).css({position:"absolute",left:c[0],top:c[1]-rh});            	     
			}
			this.haveAppended = true;
		}
		this.style();
        VismoTimer.end("VismoVector.render");
	}
	,style: function(){
        
        VismoTimer.start("VismoVector.style");
        if(!this.vismoShapeProperties){
             this.vismoShapeProperties = this.vismoShape.properties;
         }
        if(this.vismoShapeProperties.hidden){
            jQuery(this.el).css({display:"none"});
        }
         if(this.nochange){
	       
	     	VismoTimer.end("VismoVector.style");
	        return;
	    }
	     jQuery("#log").append("Exiting");
	     this.nochange = true;
	    //if(this.el.className =='label')alert("!");
        
        
 

	    if(this.el.style.display == 'none') this.el.style.display =""
	    
	    
		var shapetype = this.vismoShapeProperties.shape;

		var shape = this.el;
		shape.stroked = "t";

		
		if(this.vismoShapeProperties["z-index"]){
		    shape.style.zIndex = this.vismoShapeProperties["z-index"];
		}
		if(this.vismoShapeProperties.lineWidth) {
			shape.strokeweight =this.vismoShapeProperties.lineWidth + "em";
		}
		else {
			shape.strokeweight = "1em";
		}
	
	
	    var strokergba = this.vismoShapeProperties.stroke;
        if(strokergba.indexOf("#") == 0 || strokergba.indexOf("rgb(") == 0){
		            shape.strokecolor = strokergba;
				}
				else{
		    		if(!this.vmlstroke){
    					this.vmlstroke =document.createElement("vismoShapeVml_:stroke");
    					shape.appendChild(this.vmlstroke); 
    				}
				
            		if(strokergba){
            		    var stroke;
            		    if(strokergba.indexOf("rgba") != -1 &&strokergba.match(/rgba\([0-9]*,[0-9]*,[0-9]*,(.*)\)/)){
            		        var match =strokergba.match(/(rgb)a(\([0-9]*,[0-9]*,[0-9]*),(.*)\)/);

        					if(match[3]){
        						stroke = match[1] + match[2] +")";
        						this.vmlstroke.opacity = match[3];
        					}
            		    }
            		    else{
            		        stroke = strokergba;
            		    }
            		    this.vmlstroke.color = stroke;
            		}
            		else{
            		    this.vmlstroke.color = "rgb(0,0,0)";
            		}
    		    }
    		    	
		if(!this.vismoShapeProperties["fill"] || shapetype == 'path'){
		    shape.filled = "f";
                    VismoTimer.end("VismoVector.style");
					return;
		}
	
		
		var fill = this.vismoShapeProperties["fill"];
		shape.filled = "t";
		if(fill.indexOf("#") == 0 || fill.indexOf("rgb(") == 0){
	        shape.fillcolor = this.vismoShapeProperties.fill;
	    
	    }
	    else{
	        if(!this.vmlfill && shape){
				this.vmlfill =document.createElement("vismoShapeVml_:fill");
				shape.appendChild(this.vmlfill); 
		    }	
			//look for rgba fill for transparency
			if(fill.indexOf("rgba") != -1 &&fill.match(/rgba\([0-9]*,[0-9]*,[0-9]*,(.*)\)/)){

				var match =fill.match(/(rgb)a(\([0-9]*,[0-9]*,[0-9]*),(.*)\)/);

				if(match[3]){
					fill = match[1] + match[2] +")";
					this.vmlfill.opacity = match[3];
				}
			}
			this.vmlfill.color = fill;
			
	        
	    }
	    this._oldproperties = VismoUtils.clone(this.vismoShapeProperties);
		VismoTimer.end("VismoVector.style");
		this.nochange = true;
	}

};


var VismoTimer = {
    startsAt:{},
    timed: {},
    clear: function(){
     
     var i;
     for(i in this.timed){
         this.timed[i] = 0;
     }   
    }
    ,start: function(id){
        if(!this.timed[id]) this.timed[id] = 0;
        this.startsAt[id] = new Date();
    },
    end: function(id){
        var d = new Date();
        this.timed[id] += (d-this.startsAt[id]);
    },
    summarise: function(selector){
        var text ="";
        for(i in this.timed){
             text += i +": " + this.timed[i] .toString() +"\n";
               
        }
        jQuery(selector).val(text);
    }
    ,blankf: function(){}
};
VismoTimer.start = VismoTimer.blankf;
VismoTimer.end = VismoTimer.blankf;
<data>{"abstract":"[[Von der Hierarchie zur Gruppe]], die Einführung von [[Teamarbeit]] stößt immer wieder an die klassischen Grenzen der Hierarchie. Diese etwas umfangreichere Übung zeigt, wie tief verwurzelt hierarchische Gepflogenheit sind. Beeindruckend."}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.tvprogramm.sf.tv/img/pool/3/b/9/c/3b9cfd07-c9b4-478e-947b-3cf21170b3fa_detail.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Von der Hierarchie zur Gruppe","abstract") </script>

!Von der Hierarchie zur Gruppe
<script> return "<<tiddler [[Von der Hierarchie zur Gruppe##Overview]]>>" </script> 
Eine recht komplexe, aber hoch aufschlussreiche Übung für Veranstaltungen zur Vorbereitung von Gruppen- und Teamarbeit oder [[Teamentwicklung|Teamentwicklung / Teambuilding]]. 

!Objectives
* Aufzeigen Verwurzelung hierarchischer Gepflogenheiten
* Vorbereitung von Gruppen- und [[Teamarbeit]] oder [[Teamentwicklung|Teamentwicklung / Teambuilding]]. 

!Timing
* 290-360 min


!Audience
Group: zwischen 10 und 20


!Materials
* Papier, Kleber, Scheren, Stifte, Liniale, Büroklammern...
* getrennte Räume pro Gruppe

!Procedure
Die Teilnehmer (zwischen 10 und 20) stehen zu Beginn vor einer Sammlung der unterschiedlichsten Materialien (Papier, Kleber, Scheren, Stifte, Liniale, Büroklammern...). 
Die Anweisung lautet: 

{{indent{
//"Sie sind [[Mitarbeiter]] eines Unternehmens, das Büromaterial produziert. Da die Absätze zurückgehen, ist man auf der Suche nach neuen Produkten (zur Abwechslung mal nicht nach Einsparmöglichkeiten). Die Marketingexperten haben festgestellt, daß der Spielzeugmarkt noch aufnahmefähig ist. Sie als [[Mitarbeiter]] sind aufgefordert, neue Produkte zu entwickeln."//
}}}

In einer ersten ~Kreativ-Sitzung (60-90 Min.) werden sodann [[Ideen|Ideenmanagement]] gesammelt und diese der Geschäftsführung (der Seminarleitung) präsentiert. 
Die Geschäftsleitung entscheidet sich für eine oder mehrere [[Ideen|Ideenmanagement]] und beauftragt sodann drei Kleingruppen, einen Prototypen zu produzieren und diesen der Geschäftsführung zu präsentieren (90-120 min.). 
Wieder entscheidet die Geschäftsführung, welcher Prototyp in die Serienproduktion geht und legt sodann die [[Organisation]] für die Produktion, die zu produzierenden Mengen und die zur Verfügung stehende Arbeitszeit fest (120 - 150 Min.). 
Es werden wiederum drei Gruppen gebildet, wobei die erste Gruppe die Aufgabe hat, die Einzelteile vorzubereiten (ausmessen, anzeichnen etc.) und an die zweite Gruppe weiterzuleiten. Diese stellt die Einzelteile her (ausschneiden, falten etc.) und reicht sie an die dritte Gruppe weiter, die die Einzelteile montiert.

Die Gruppen arbeiten in getrennten Räumen. Außerdem wird in jeder Gruppe ein Leiter ernannt sowie ein Gesamtverantwortlicher (Betriebsleiter) festgelegt. 
Die Entscheidung über die Form der Zusammenarbeit (Pausen, Aufgabenverteilung etc) liegt bei den "[[Führungskräften|Führung]]", die Geschäftsführung muß lediglich gefragt werden, wenn personelle Veränderungen oder Veränderungen am Produkt vorgenommen werden sollen. 

!Debriefing
Die Auswertung geschieht zwischen den drei Runden sowie am Ende, wobei besonders die Unterschiede in den Phasen ohne und mit vorgegebener Hierarchie herausgearbeitet werden.

!Quelle
[[Thönneßen, J.: Macher oder Team-Manager, Campus 1996, S.175-180| http://www.amazon.de/gp/product/3453122925?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3453122925]]

!See also
* [[Organizational Change Management]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Von+der+Hierarchie+zur+Gruppe+%28jt%29&db=3]]
//synonym://
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!Voodoo-Puppen
<<tiddler [[Voodoo-Puppen##Overview]]>>


!Objectives

!Timing

!Materials
*

!Audience
Group / Individual

!Procedure

!Debriefing

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Mit kreativen Impulsen emotionale Probleme lösen| http://www.business-wissen.de/index.php?id=7882]]
<data>{"abstract":"Wie wäre es, statt der üblichen Abfragerunde zu Beginn des Seminars die Teilnehmer sich bitten, sich in einer Reihe [[vor-zustellen|Vor-Stellung]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.bym.de/job/arbeiten/05/vorstellen_450.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Vor-Stellung","abstract") </script>

!~Vor-Stellung
<script> return "<<tiddler [[Vor-Stellung##Overview]]>>" </script> 

!Objectives
* Aufwärmen
* Kennenlernen
* Vorstellungsrunde 

!Timing


!Audience
Group


!Materials
* 

!Procedure
Die Anleitung hierzu lautet sinngemäß:
Bitte stellen Sie sich im Raum alphabetisch, entsprechend Ihrem Nachnamen auf. Nach kurzer Zeit haben sich die Teilnehmer sortiert, erste Kontakte geknüpft und sich schon mal bewegt. Damit ist diese Runde gleichzeitig ein Warming up.

Weitere Kriterien zur Aufstellung können sein: 
# Alter
# Betriebszugehörigkeit
# Erfahrung als Führungskraft
# Hobby (alphabetisch)
# Beruf (alphabetisch)

!Variation
Eine interessante Variante ist die Erfahrungsreihe (z.B. erfasst nach Betriebszugehörigkeit oder [[Führungserfahrung|Führung]]). 
Wenn die Teilnehmer in der Reihe stehen, fragen Sie die Anzahl der Jahre ab und schreiben sie auf ein Flipchart. Meist erzielt man damit einen netten ~Aha-Effekt: Die gesammelte [[Erfahrung]] kann durchaus mehrere 100 Jahre betragen. Das lässt sich prima als Übergang zum eigentlich Thema nutzen.

!Debriefing

!Quelle
Paul Diebel: Alles andere als Theater, managerSeminare 3/2003 S. 73.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Vor-Stellung+%28jt%29.html]]
<data>{"abstract":"[[Vorstellung mit verbundenen Augen]], eine Vorstellungsübung für kleine Seminargruppen, verblüffend anders…  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto  auto title http://www.fh-landshut.de/uploads/xj/am/xjamF1Q9_7zpQxahjH-G3w/fuehrung0068int.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Vorstellung mit verbundenen Augen","abstract") </script>

!Vorstellung mit verbundenen Augen
<script> return "<<tiddler [[Vorstellung mit verbundenen Augen##Overview]]>>" </script> 
Diese kleine, aber sehr schöne Übung, eignet sich als Einstieg in ein Seminar und gleichzeitig, um das Zuhören zu trainieren.

!Objectives
* Kennenlernen
* Vorstellungsrunde 
* Aufwärmen

!Timing


!Audience
Group


!Materials
* 

!Procedure
Die Mitglieder einer neuen Seminargruppe schließen die Augen (oder bekommen die Augen verbunden) und stellen sich den anderen Gruppenmitgliedern vor. Sie selbst sehen nichts und alle anderen können sich nur auf die Stimme konzentrieren. Hinterher kann man noch raten lassen, "wer wer" ist, das funktioniert aber nur bei kleineren Gruppen.
Interessant ist nicht nur das, was man hört, sondern auch die Art, wie man sich vorstellt: verblüffend anders!


!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Vorstellung+mit+verbundenen+Augen+%28aw%29]]
<data>{"abstract":"[[Vorwurfsmühle]], es kommt immer wieder vor, dass wir mit Angriffen, Vorwürfen und den berüchtigten [[Killersätzen|Killerphrase]] konfrontiert werden. Mit dieser Übung trainieren wir, uns dagegen zur Wehr zu setzen.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.bergedorfer-muehle.de/templates/muehle/images/muehle1.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Vorwurfsmühle","abstract") </script>

!Vorwurfsmühle
<script> return "<<tiddler [[Vorwurfsmühle##Overview]]>>" </script>

!Objectives
* [[Widerstand|Widerstände]] gegen [[Killerphrasen|Killerphrase]]

!Timing
20min

!Audience
Group


!Materials
* 3 leere Moderationskarten pro Teilnehmer
* 10 beschriftete Moderationskarten ("Reaktionskarten"):
** //"Das verletzt mich. Wie lösen wir das nun?"//
** //"Das würde ich gern verstehen. Was meinen Sie genau?"//
** Nicken. Warten.
** //"Verstehe ich das richtig? Sie sind mit dem, was ich gesagt habe, nicht einverstanden?"//
** Schweigen
** Lachen
** //"Ich merke, dass Sie verärgert sind."//
** //"Das enttäuscht mich sehr. Pfui, sage ich."//
** …
** (und dazu noch, als spezielle Variante, der Gegenangriff: //"Lernen Sie erst mal richtig Deutsch!"//) 
* 2 Stühle

!Procedure
# Die Teilnehmer erhalten jeweils drei leere Karten, auf die sie die schlimmsten [[Killersätze|Killerphrase]], die sie kennen, notieren (//"Sie verstehen überhaupt nichts von der Sache!"// - //"Da zeigt sich mal wieder Ihre gesammelte Inkompetenz!"//...)
# In der Mitte stehen zwei Stühle, der Täter- und der Opferstuhl. 
# Jeweils ein "Opfer" und ein "Täter" nehmen darauf Platz. 
# Der Täter startet seine Angriffe, das Opfer reagiert entweder mit einer Anwort, die ihm dazu einfällt (er soll sich ruhig Zeit hierfür nehmen) oder er wählt eine Antwort von den Reaktionskarten. 

Auf diese Weise kommt jeder einmal in die Angreifer und die Opferrolle ([[Drama-Dreieck]]) und kann ausprobieren, welche Reaktionen ihm liegen und welche eher nicht.

!Debriefing
In der Auswertung wird allgemein diskutiert, welche Antworten angemessen sind, wie sie wirken und welche Alternativen es gibt. Auch können die Reaktionskarten weiter entwickelt werden.

!Quelle
Eva Neumann / Sabine Heß: Mit Rollen spielen, managerSeminare 2005, S. 82-84.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Präsentation]<<tiddlerList tags:"presentation,-newTemplate" header:"Übungen Präsentation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Vorwurfsm%FChle+%28jt%29]]
/***
|Name|W3counterPlugin|
|Source|http://fire.atspace.org/|
|Version||
|Author||
|License||
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description|[[W3counter|http://www.w3counter.com/stats/getcode/7755]]|
***/
//{{{
version.extensions.counter= {major: 0, minor: 1, revision: 0};
config.macros.counter = {
	handler: function(place) {
var data, p;
var agt=navigator.userAgent.toLowerCase();
p='http';
if((location.href.substr(0,6)=='https:')||(location.href.substr(0,6)=='HTTPS:')) {p='https';} data = '&r=' + escape(document.referrer) + '&n=' + escape(navigator.userAgent) + '&p=' + escape(navigator.userAgent)
if(navigator.userAgent.substring(0,1)>'3') {data = data + '&sd=' + screen.colorDepth + '&sw=' + escape(screen.width+ 'x'+screen.height)};
var link = createTiddlyElement(place,"a",null,null,null);
link.href = "http://www.w3counter.com/stats/7755";
link.target = "_blank";
var img = createTiddlyElement(link,"img",null,null,null);
img.style.border = 0;
img.src = "http://www.w3counter.com/counter.php?i=7755" + data;
}
};
//}}}
<data>{"abstract":"[[Wahrnehmung schärfen]], wie oft behandeln wir andere in einer bestimmten Art und Weise, weil wir ein ganz bestimmtes Bild von ihnen haben? Wahrscheinlich häufiger als uns lieb ist, und leider überprüfen wir unsere [[Wahrnehmung]] auch nur selten. Diese kleine Übung könnte helfen, sie zu schärfen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.jgs-impuls.de/Bilder/e4.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Wahrnehmung schärfen","abstract") </script>

!Wahrnehmung schärfen
<script> return "<<tiddler [[Wahrnehmung schärfen##Overview]]>>" </script> 

!Objectives


!Timing


!Audience
Group


!Materials
* 

!Procedure
Zwei Seminarteilnehmer sitzen sich Knie an Knie gegenüber. Sie beobachten sich schweigend wenige Minuten lang. Danach werden sie aufgefordert, sich gegenseitig einzuschätzen:
Ist der andere eher reserviert oder offen? Ist er aggressiv oder friedfertig? Ist er optimistisch oder pessimistisch?...

!Debriefing
Bei der Auswertung kommt es nicht darauf an, ob die Aussagen stimmen, sondern darauf, warum der Beurteiler zu seinen Schlussfolgerungen gekommen ist. 
Auf diese Weise lernt er zu erkennen, welche Rückschlüsse er bei anderen Menschen zieht und möglicherweise auch, wieso (z.B. weil ihn jemand an jemand anderen erinnert...). Dies könnte ihm helfen, in Zukunft seine [[Wahrnehmung]] zu überprüfen und sogar zu schärfen.

!Quelle
Christian Schlesiger: Ängste nehmen, Wirtschaftswoche 13/2007, S. 129)

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Wahrnehmung+sch%E4rfen+%28jt%29.html]]
<data>{"abstract":"Die [[Walt Disney Kreativitätsstrategie]] soll Probleme zu einer kreativen Lösung führen, d.h. sie soll [[Ziele|Ziel]] und Visionen konkretisieren und alltagstauglich gestalten. Die Methode geht im Ursprung tatsächlich auf Walt Disney zurück und wurde von dem Amerikaner Robert Dilts als [[Walt Disney Circle]] weiterentwickelt."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 20% auto title http://www.creajour.de/images/s2dlogo.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Walt Disney Kreativitätsstrategie","abstract") </script>

!Walt Disney Kreativitätsstrategie
<script> return "<<tiddler [[Walt Disney Kreativitätsstrategie##Overview]]>>" </script> 
Diese Kreativitätsstrategie ist mehr als eine effektive Methode zur Entwicklung neuer Ideen. Es ist eine besondere Art zu denken, das heißt sich Aufgaben anzuschauen und genau hinzuhören. Die im folgenden beschriebene Strategie ist nach Walt Disney benannt, der angeblich für jede Sichtweise bzw. Stimme einen eigenen Raum hatte: 
* Den „Träumer Raum” — hier werden Visionen geboren
* Den „Kritiker Raum” — hier wird hinterfragt, auseinandergenommen und zusammengesetzt
* Den „Macher Raum” — hier werden Quellen für die Umsetzung gefunden

Sie wird häufig im Rahmen des [[Neuro-Linguistische-Programmierung]]s eingesetzt und vor allem in ~NLP-Ausbildungen gelehrt. Diese Methode kann sowohl von einer Einzelperson, als auch von einer Gruppe angewandt werden.

Für die Erarbeitung seiner [[Ziele|Ziel]] und Lösungen durchlief der Gründer und Namensgeber einen eigenen kreativen Prozess, [[Walt Disney Circle]], von drei verschiedenen Phasen: dem Träumen, dem Planen und der Kritik.

!Objectives


!Timing


!Audience
Group


!Materials
* 

!Procedure
Die [[Walt Disney Kreativitätsstrategie]] folgt diesem Modell. Die Teilnehmer schlüpfen dabei nacheinander in drei verschiedene Rollen. Jede der drei Phasen steht dabei gleichberechtigt neben den anderen und trägt in gleichem Maße zur erfolgreichen Lösung einer Aufgabe bei. Für jede der drei Positionen sollte ein Platz gefunden werden, der die Teilnehmer darin unterstützt, einen günstigen Denk- und Gefühlszustand für die jeweilige Rolle zu erlangen.
Denn es ist nicht immer leicht, und anfangs sehr ungewohnt, völlig in die verschiedenen Rollen zu schlüpfen. Ein Ortswechsel erleichtert dies ungemein. Ziel der Walt-Disney-Strategie ist es, die Anteile des Träumers, des Realisten und des Kritikers in ein Gleichgewicht zu bringen, um zu einer erfolgreichen Lösungsstrategie zu gelangen.

<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://comas.offeneslernen.de/Media/app/4/Bilder-Test/traeumerin.bmp>>
!Der Träumer (Visionär, Ideenlieferant) 
Der Träumer entwickelt Fiktionen. Er träumt in Bildern und greift auch gerne die Träume anderer auf. Er sieht große Visionen, die sich wie in einem Film zusammensetzen. Killerphrasen und Regeln hindern ihn daran nicht. 
* Was wünsche ich mir? 
* Wovon träume ich? Was ist der beste Fall?

<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://comas.offeneslernen.de/Media/app/4/Bilder-Test/kritikquer.bmp>>
!Der Realisierer (Planer, Macher) 
Der Realisierer hat die Aufgabe, die [[Ideen|Ideenmanagement]] des Träumers zu testen, bevor sie vom Kritiker geprüft werden. Der Realisierer konzentriert sich auf das konkrete und gegenwärtige praktische Tun. Er stellt sich möglichst realistisch die Umsetzung der [[Ideen|Ideenmanagement]] des Träumers vor und stellt sich Fragen wie
* Wie kann ich das umsetzen? 
* Was muss ich tun oder sagen? 
* Was benötige ich dazu (Menschen, Wissen, Fähigkeiten, Material)? 
* Wie fühle ich mich dabei? 
* Was ist bereits vorhanden? 

Daraus wird ein vollständiger Plan erarbeitet: Maßnahmen werden notiert, die notwendig sind, um das Ziel zu erreichen. Es werden Mittel und Möglichkeiten aufgelistet, die bereits vorhanden sind und die noch benötigt werden. Wichtige Kontakte, alle Ressourcen, notwendige Qualifikationen, fehlende Inputs, etc. gehört weiterhin in den Plan der Realisierung. 

<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://comas.offeneslernen.de/Media/app/4/Bilder-Test/Realist.bmp>>
!Der Kritiker (~Qualitäts-Manager, Fragensteller) 
Die Aufgabe des Kritikers ist es, konstruktive Fragen zu stellen. Die Basis ist die Analyse der Umsetzung des Realisierers. Der Kritiker sucht nach [[Fehlern|Fehler]] und Schwachpunkten im Plan. Er ist sehr kritisch und will nicht nett sein. Was hält er für möglich? Was kann gar nicht funktionieren? Was ist einfach Träumerei? Er stellt sich selbst Fragen (innerer Dialog) wie
* Was könnte verbessert werden? 
* Was sind die Chancen und Risiken? 
* Was wurde übersehen? 
* Wie denke ich über den Vorschlag? 

und formuliert aus den Ergebnissen die Fragen, die er an den Träumer weitergibt.

Der Träumer macht weiter und erarbeitet aus den bisherigen Ergebnissen neue Visionen. Er nimmt sich die Kritik Punkt für Punkt vor und erweitert sein Ziel, bis sich die Kritik auflöst. Wenn der Kritiker anmerkte, dass die vorhandene Zeit nicht ausreicht, dann könnte die Vision um [[Mitarbeiter]] zur Unterstützung erweitert werden. Wenn der Platz dafür in Haus oder Unternehmen nicht ausreicht, dann…

Dies wiederholt sich so lange, bis der "Kritiker" keine relevanten Fragen mehr stellen kann und keine Kritik mehr anbringen kann. Dann liegt ein originelles oder einmaliges, funktionelles Ergebnis vor.

Der Auftrag, in verschiedene Rollen zu schlüpfen und der jeweiligen Aufgabe zu entsprechen, ermöglicht ein optimales, hilfreiches [[Feedback]]. Denn Feedback wird so nicht als persönliche Kritik aufgefasst. Die Walt-Disney-Methode kann mit oder ohne Moderator durchgeführt werden. Er sorgt dafür, dass die einzelnen Personen ihre jeweilige Rolle, Träumer, Realisierer oder Kritiker, nicht verlassen. Denn beim Träumen wird häufig bereits an die Umsetzbarkeit gedacht und beim Planen denkt man an die viele Arbeit und an die Kritik anderer. Bei einem eingespielten und darin erfahrenen [[Team]] ist ein Moderator nicht zwingend nötig.

!Debriefing

!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.ipa-consulting.de/images/Grafik_Disney_Lexikon_fertig.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.inntal-institut.de/onw/lepr/disneyablauf.gif>>
---- }}} 
===


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* http://comas.offeneslernen.de/lerno/MPX_content.php?PHPSESSID=&content_id=1094
* http://hrpedia.springweb.org/index.php?title=Walt-Disney-Methode&redirect=no
<<wikify [>img(%0,%1)[%2|%3]] 40% 40% title http://my.myblog.de/lost-angel-of-nirvana/img/thumb-Why1.jpg>>/%http://www.chrischona-reinach.ch/jalow/images/stories/illustrationen/warum.jpg>>%/
<data>{"abstract":"Das [[Warum-Warum-Diagramm]] ist ähnlich dem [[Ishikawa-Diagramm]]. "}</data>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Warum-Warum-Diagramm","abstract") </script>

!Warum-~Warum-Diagramm
Das [[Warum-Warum-Diagramm]] ist ähnlich dem dargestellten [[Ishikawa-Diagramm]]. Diesmal wird an den linken Rand das [[Problem]] geschrieben, von dort gehen Äste ab, die zu möglichen Ursachen des Problems führen (Warum). Jede dieser Ursachen wird erneut mit der Frage "warum" beleuchtet, die Antworten werden in der zweiten ~Warum-Spalte aufgeführt. So hangelt man sich von Entscheidungsast zu Entscheidungsast, der Weg durch die verschiedenen Ebenen wird stets durch die Frage "warum" gesteuert.
Beispiel:
[img(70%,auto)[Warum-Warum-Diagramm| http://www.mwonline.de/Images/Problem.GIF]]

(nach [[James M. Higgins und Gerold G. Wiese: Innovationsmanagement: Kreativitätstechniken für den unternehmerischen Erfolg, Springer 1996, S. 61/62| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FInnovationsmanagement-Kreativit%25C3%25A4tstechniken-f%25C3%25BCr-unternehmerischen-Erfolg%2Fdp%2F354060572X%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214710579%26sr%3D1-2&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]])


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* 
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://i129.photobucket.com/albums/p232/UnknownParasite/Random/Party-Time.gif>>
<<showtoc>>
!Overview
We're Having a Party is an interactive game illustrating the advantages of single-piece-flow over batch-and-queue.

!We're Having a Party
<<tiddler [[We're Having a Party##Overview]]>>


!Objectives
* By taking a smaller set of requirements all the way to completion, you get something to the customer faster. Conversely, if all the requirements are processed at the same time, changes later in the cycle become more costly.
* Single piece flow is often faster then batch and queue. This is due to the fact that each cross-functional participant can take ownership of a module all the way to completion, reducing overall task-switching and hand-offs.

!Timing
30 mins.

!Materials
* At least 10 pages (8.5’ X 11’) per participant
* 1 marker per participant
* Stickers

!Audience
Group

!Procedure
We are having a party, and we need to enlist everybody in the room to create invitation cards (3 per person). Begin by showing an example of what the finished card should look like:
# fold page in half
# draw a happy face on the front,
# write a message on the inside,
# sign the card,
# stamp the back (sticker) and,
# mail the card by dropping it in a box.

# Once everybody is comfortable with all of the steps, start the timer and have participants build 3 cards each by completing each step to completion before moving on to the next step; this is known as batch & queue. 
# Stop production about half way through and ask everybody what would happen if we decided to change the color of the paper. How much wasted effort would there be? How does this map to software? 
# Let production continue and note the time when the first card is delivered to the customer and again when all cards are complete. 
# Run the process again. This time, have participants complete a card before moving on to the next; this is known as single piece flow. 
# Again, stop production about half way through and ask the same questions as before. 
# Let production continue and compare the times with the first method. 

!Debriefing
Obviously, the second method is much faster at getting something to the customer, but more surprisingly, the second method is also faster over all. Discuss why this is; if the participants say that it is because they have become more efficient, then run it again with the first method and challenge them to beat their time.

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://tastycupcakes.org/2009/06/were-having-a-party/
<data>{"abstract":"[[Wem folgt das Team?]], Übung für [[Trainings mit multikulturellen Teams|Teamentwicklung / Teambuilding]]. Sie dient dazu, die Bedeutung von Vertrauen in der Zusammenarbeit zu erleben."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.elgozo.ch/catalog/images/8286_IchMagDichBitteFolgen.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Wem folgt das Team?","abstract") </script>

!Wem folgt das Team?
<script> return "<<tiddler [[Wem folgt das Team?##Overview]]>>" </script>
Bedeutung von Vertrauen in die [[Führungskraft|Führung]], auch wenn diese nicht aus dem eigenen kulturellen Umfeld stammt

!Objectives
* Vertrauen in die [[Führungskraft|Führung]], auch wenn diese nicht aus dem eigenen kulturellen Umfeld stammt

!Timing
15min-20min

!Audience
Group / Individual


!Materials
* Augenbinden f. alle Teilnehmer
* Seil

!Procedure
# Bevor die Teilnehmer die Augenbinden anlegen, bilden sie eine Reihe, wobei jeder das Seil mit der rechten Hand anfasst. 
# Ein Freiwilliger erklärt sich bereit, die Gruppe anzuführen, er wird an den Anfang des Seils gestellt. Wichtig: Der letzte in der Reihe sollte einer anderen Nationalität entstammen.
# Sodann wird ein Ziel in etwa 150 m Entfernung ausgewählt, das sich alle einprägen. 
# Nachdem sich die Teilnehmer die Augen verbunden haben, tauscht der Trainer die Person an der letzten Stelle gegen den Führer aus, so dass ein anderer als von allen vermutet die Gruppe führt. 
# Am Ziel angekommen, werden die Augenbinden entfernt und die Gruppe erkennt, dass sie von jemand anderem angeführt wurde.
# In einem zweiten Durchgang wird dann "korrekt" gespielt, d.h. diesmal ist der Anführer auch der von der Gruppe ausgewählte. 

!Debriefing
Reflexionsfragen sind: 
* //"Wie habe ich die [[Führung]] empfunden?"// 
* //"War ich mir sicher, dass wir das Ziel erreichen?"// 
* //"Was habe ich empfunden, als ich merkte, dass ein anderer die Gruppe geführt hat?"//

!Quelle
Eva Kaminski: Mit Spiel zum Ziel, managerSeminare 11/12/2004, S. 59-60

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Outdoor]<<tiddlerList tags:"outdoor,-newTemplate" header:"Übungen Outdoor">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Wem+folgt+das+Team%253F+%28jt%29.html]]
<data>{"abstract":"[[Wer kommt zum Essen?]], Alternativen zur klassischen Vorstellungsübung bei einem Seminar sind willkommen. Diese hier eignet sich für Veranstaltungen, die mindestens zwei Tage dauern.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto  auto title http://ladyfi.files.wordpress.com/2008/12/dinner-for-one-posters.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Wer kommt zum Essen?","abstract") </script>

!Wer kommt zum Essen?
<script> return "<<tiddler [[Wer kommt zum Essen?##Overview]]>>" </script> 
Alternativen zur klassischen Vorstellungsübung bei einem Seminar sind willkommen. Diese hier eignet sich für Veranstaltungen, die mindestens zwei Tage dauern.

!Objectives
* Kennenlernen, Interesse wecken, Berührungsängste abbauen - insbesondere bei schnell gewachsenen [[Teams]].


!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Zu Beginn einer Veranstaltung füllen alle Teilnehmer anonym einen Fragebogen aus. Die Fragebogen sind je zur Hälfte mit A oder B gekenntzeichnet. Die Teilnehmer werden gebeten sich zu merken, ob sie A oder B sind. Fragen können sein: Hobbies, bester/schlechtester Job, eine Aufgabe in der Jugend, die erfolgreich erfüllt wurde u.ä.

Anschließend werden alle Fragebögen vom Trainer eingesammelt und auf einer Wäscheleine aufgehängt. Die Teilnehmer haben nun Zeit bis zum ersten Mittagessen, einen Fragebogen zu suchen (die As suchen Bs und umgekehrt), den sie interessant finden. Es suchen sich dann ein/e A seine/n B für das erste Mittagessen als Tischnachbar und die Bs ihren As für das zweite Mittagessen als Tischnachbar.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Wer+kommt+zum+Essen%253F+%28cmuehldorfer%29.html]]
//synonym://
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://impressyourkids.org/wp-content/uploads/2009/07/iyk-surprise-banner.jpg>>
<<showtoc>>
!Overview
[[We’re Having a Party]] is an interactive game illustrating the advantages of single piece flow over batch flow through a process. By taking a smaller set of requirements all the way to completion, you get something to the customer faster. Conversely, if all the requirements are processed at the same time, changes later in the cycle become more costly. Single piece flow is often faster then batch and queue. This is due to the fact that each cross-functional participant can take ownership of a module all the way to completion, reducing overall task-switching and hand-offs.

!We’re Having a Party
<<tiddler [[We’re Having a Party##Overview]]>>

!Objectives
* illustrating the advantages of single piece flow over batch flow through a process.

!Timing
30 min

!Materials
* At least 10 pages (8.5’ X 11’) per participant
* 1 marker per participant
* Stickers

!Audience
Group

!Procedure
!!Demonstration
We are having a party, and we need to enlist everybody in the room to create invitation cards (3 per person). Begin by showing an example of what the finished card should look like:
# fold page in half
# draw a happy face on the front,
# write a message on the inside,
# sign the card,
# stamp the back (sticker) and,
# mail the card by dropping it in a box.
!!Game Play
# Once everybody is comfortable with all of the steps, start the timer and have participants build 3 cards each by completing each step to completion before moving on to the next step; this is known as //batch & queue.//
# Stop production about half way through and ask everybody what would happen if we decided to change the color of the paper. <br> //How much wasted effort would there be? How does this map to software?// 
# Let production continue and note the time when the first card is delivered to the customer and again when all cards are complete. 
# Run the process again. 
# This time, have participants complete a card before moving on to the next; this is known as single piece flow. 
# Again, stop production about half way through and ask the same questions as before. 
# Let production continue and compare the times with the first method. 
# Obviously, the second method is much faster at getting something to the customer, but more surprisingly, the second method is also faster over all. 
# Discuss why this is; if the participants say that it is because they have become more efficient, then run it again with the first method and challenge them to beat their time.

!Debriefing
* By taking a smaller set of requirements all the way to completion, you get something to the customer faster. Conversely, if all the requirements are processed at the same time, changes later in the cycle become more costly.
* Single piece flow is often faster then batch and queue. This is due to the fact that each cross-functional participant can take ownership of a module all the way to completion, reducing overall task-switching and hand-offs.

!Credits
Michael ~McCullough

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/were-having-a-party/
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.impawards.com/2003/posters/lost_in_translation.jpg>>
<<showtoc>>
!Overview
[[What Were They Thinking?]]: what were they thinking illutrates the challenge with communicating software requirements. In software, we are rarely creating something that already exists. So we are forced to communicate in imperatives and metaphors and, quite often, much is lost in translation.

!What Were They Thinking?
<<tiddler [[What Were They Thinking?##Overview]]>>

!Objectives
* We are forced to communicate in imperatives and metaphors and, quite often, much is lost in translation.

!Timing
30 mins

!Materials
Supplies for each team:
* play dough, 
* pipe cleaners (chenille stems)

!Audience
Group

!Procedure
# Each team selects one Business Analyst (or [[Product Owner]]) to come to the front of the class to look at a picture of an item that the customer wants built. The BA’s are instructed to only use imperatives and similes (no ‘rhymes with’) and to not use certain words when describing the item to the rest of their team.
* In round 1, the item is something simple (such as a chair), but the BA must communicate only in writing. This should only take a few minutes for the team to create using the given supplies.
* In round 2, the item is something simple (a teapot), but the BA can speak with their team. This should show how much easier it is to communicate by speaking.
* In round 3, the BA is shown an item that isn’t as easy to communicate (a motor-cycle RV or a make-up kit built in to a computer mouse for instance). Since items like these are not common, it should be much harder to build.

//Note:// A quicker alternative to this game is to have teams draw the items instead of using the supplies.

!Debriefing
* In software, we are rarely creating something that already exists. So we are forced to communicate in imperatives and metaphors and, quite often, much is lost in translation.

!Credits
Michael ~McCullough

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/what-were-they-thinking/
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://rlv.zcache.com/white_elephant_gift_exchange_tshirt-p2356843249448833053gli_400.jpg>>
<<showtoc>>
!Overview
The [[White Elephant Sizing]] game is a quick, easy, and playful way to categorize user stories in an agile project based on relative size. 

!White Elephant Sizing
<<tiddler [[White Elephant Sizing##Overview]]>>
Note: If you haven’t heard of White Elephant Gift Exchanges before, read [[this|http://en.wikipedia.org/wiki/White_elephant_gift_exchange]].

!Objectives
* categorize user stories in an agile project based on relative size.

!Timing

!Materials
* Sizing board (a whiteboard or flip-chart or the like; divided into 5 columns: XS, S, M, L, XL)
* Timer
* A set of prepared stories
* A set of 5 X 3 cards
* Tape for attaching the cards to the board 

!Audience
Group

!Procedure
!!Game Play
# Have the team stand-up in a half circle facing their sizing board.
# Shuffle a deck of story cards and place them face down on a table in front of the sizing board. Place a timer next to the cards.
# The game begins when the [[facilitator|Facilitator]] starts the timer, which is the signal for the first member to perform the following steps:
** pick the top card off the deck
** attach a piece of tape to the card
** read the story on the card out loud
** assigns the card to one of the five columns on the board (XS, S, M, L. XL)
** provide a reason to the group
** start the timer for the next player {{block{
It is important assigning the card to one of the five columns has to be the player’s own decision, without any external interference. This is why the player should provide the reason for his or her decision after the card has been assigned. If the player does not assign the card within one minute, the card will be assigned to the column in the middle. The player then restarts the timer for the next player.}}}
# After sizing the card, the player presents his or her reason. The reason may be based on expert knowledge, from past experiences, or observations from other projects. It is essential that the rest of the team observes and listens carefully to understand the overall context and development of the board. 
# All other team members are therefore silent without discussions or judgment.
# After a few rounds, there should be enough cards on the board to give the team members the option to, on their turn, move an existing card on the board into a different column instead of picking a new card from the deck. 
# As before, the player reads the story out loud followed by a reason which supports the decision to re-size.
# Once all user story cards are on the board and sized, each team member, on their turn, can either continue moving cards between columns or simply “pass” if they are satisfied with the current results. If a player does not make a decision within the one-minute time-limit, it will be interpreted as a “pass”.
# The game ends when the pile of story cards is gone and every member of the team signals “pass”.

!!Challenges
The biggest challenge in the beginning is the lack of a reference story – the Chihuahua (see [[Doggy Planning]]). Because no card has been assigned yet, the first player will not have something to compare his or her story to. And since the cards will be shuffled, we won’t know if the first stories are really small, medium, or large until we uncover more stories. This is OK and and important lesson of the game. Every player will have the opportunity to change their mind in future rounds, so the important thing is to just get started. Remember, the game does not stop until all players signal “pass”.

It is quite typical that two or more players disagree about a few assignments, and the card may end up endlessly moving up and down the board. If this happens, just take the card and place it on the bottom of the deck. That way, the sizing can continue and the card should have more context after all the other cards have been sized.

!!Variations
* Play with 3 (S,M.L) columns instead of 5 (XS, S, M, L. XL)
* Begin with 3 columns until the team requests more granularity, then the moderator adds additional columns
* Assign the Fibonacci sequence to the columns (1,2,3,5,8) 

!Debriefing
* Group user stories according to their relative size/effort
* Reach a democratic consensus quickly
* Ensure that each team member has a say
* Learn how user stories are captured
* Actively collaborate in a fun way 

!Credits
[[Jochen Krebs|http://www.jochenkrebs.com/]]

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/09/sizing-game/
<data>{"abstract":"[[Who is who?]], eine Kennenlernübung für Seminare, in denen sich die Teilnehmer noch nicht kennen - und gleichzeitig eine kleine Erfahrung zum Thema //Vorurteile//."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.freiehonnefer.de/wp-content/themes/magazine/images/who_is_who.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Who is who?","abstract") </script>

!Who is who?
<script> return "<<tiddler [[Who is who?##Overview]]>>" </script> 

!Objectives


!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Die Teilnehmer werden aufgefordert, Vermutungen über Beruf, Alter und Herkunft anderer Teilnehmer anzustellen. Da kann der eine oder andere schon mal ganz heilsame [[Erfahrungen|Erfahrung]] machen, wenn er denn feststellt, dass sein Gegenüber dunklem Schnauzbart und goldener Brille doch kein Italiener ist und im Marketing arbeitet, sondern … 
Neben der etwas anderen Vorstellung hat man gleichzeitig einen ganz guten Einstieg in das Thema Vorurteile, Menschenkenntnis und Werte. 
Besonders interessant im interkulturellen Training.

!Debriefing

!Quelle
Bernhard / Heller: Kulturelle Vielfalt als Wettbewerbsfaktor, Wirtschaft und Weiterbildung Oktober 1999, S.24.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Who+is+who%3F+%28jt%29]]
<data>{"abstract":"[[Widersprüchliches Feedback]], häufig findet man in Unternehmen offizielle Regeln und Anweisungen, das tatsächliche Verhalten der [[Mitarbeiter]] jedoch sieht ganz anders aus. Eine Übung, mit dem man die Entstehung solchen Verhaltens simulieren kann.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://tomblog.de/tieflader/notiert/fussabdruck.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Widersprüchliches Feedback","abstract") </script>

!Widersprüchliches Feedback
<script> return "<<tiddler [[Widersprüchliches Feedback##Overview]]>>" </script> 
Häufig findet man in Unternehmen offizielle Regeln und Anweisungen, das tatsächliche Verhalten der [[Mitarbeiter]] jedoch sieht ganz anders aus. Eine Übung, mit dem man die Entstehung solchen Verhaltens simulieren und gleichzeitig zeigen kann, dass positive [[Rückmeldungen|Feedback]] motivierender sind als Anweisungen von oben.

!Objectives


!Timing


!Audience
Group / Individual


!Materials
* 

!Procedure
Ein Teilnehmer wird aus dem Raum geschickt. Die Gruppe entscheidet, zu welchem Verhalten sie ihn motivieren möchte (z.B. Hände hinter dem Kopf verschränken). Sodann wird der Teilnehmer wieder hereingeholt. Der Trainer erläutert, dass die Gruppe eine Beinbewegung festgelegt hat, die er ausführen soll. Mit "Ja" würde sie bestätigen, wenn er auf dem richtigen Weg sei. Tatsächlich ruft die Gruppe "Ja" aber nur, wenn er anfängt, die Arme in die richtige Richtung zu bewegen.

Zu Beginn wird dies bei dem Teilnehmer Verwirrung auslösen, nach kurzer Zeit aber wird er anfangen, die Arme zu bewegen. Der Trainer hält mit Anweisungen, doch nur die Beine zu bewegen, dagegen, was aber von dem Teilnehmer zunehmend ignoriert wird.

!Debriefing
Die Auswertung geschieht mit Hilfe von Fragen wie: 
* Wie reagiert man auf konkurrierendes [[Feedback]]? 
* Wo findet man im Unternehmensalltag solche Konkurrenz zwischen Anweisungen und Feedback? 
* Wie kann man Feedback stärker zur Unterstützung des gewünschten Verhaltens einsetzen?

!Quelle
toolbox. Tipps für Weiterbildungs-Professionals, wirtschaft & weiterbildung 11/12.2002 S.24.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Widerspr%FCchliches+Feedback+%28jt%29.html]]
<data>{"abstract":"[[Wie gefällt dir dein Platz?]], für Seminarsituationen nach der Pause oder wenn Bewegung angesagt ist - die Übung wird rasanter als man denkt...  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://www.gedanken.ch/mediation.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Wie gefällt dir dein Platz?","abstract") </script>

!Wie gefällt dir dein Platz?
<script> return "<<tiddler [[Wie gefällt dir dein Platz?##Overview]]>>" </script>
Aufpassen mit Bandscheibenvorfällen oder sonstigen körperlichen Gebrechen, die Übung wird rasanter als man denkt.

!Objectives
* Aufwärmen
* Lockerung

!Timing


!Audience
Group


!Materials
* ein Stuhl weniger als Teilnehmer

!Procedure
Die Teilnehmer sitzen auf ihren Stühlen im Kreis. 
Die Trainerin steht in der Mitte und fragt eine Teilnehmerin: //"Wie gefällt Ihnen Ihr Platz?"// 
Die Teilnehmerin hat drei Antwortvarianten, die drei unterschiedliche Aktionen der Gruppe nach sich ziehen: 
# //"Ausgezeichnet!"// - Dann passiert gar nichts.
# //"Geht so"// - Dann müssen die beiden Nachbarn zur Rechten und zur Linken des angesprochenen Teilnehmers die Plätze tauschen. Dabei versucht die Person in der Mitte einen Platz davon zu ergattern.
# //"Überhaupt nicht!"// - Dann müssen alle Teilnehmer ihren Platz tauschen.

Da ein Stuhl zu wenig da ist, bleibt eine Person im Kreis übrig und stellt nun ihrerseits die Frage an eine Person: //"Wie gefällt Dir Dein/ Ihnen Ihr Platz?"// 
Da niemand gerne im Mittelpunkt steht oder "übrig bleibt", wird das Spiel schnell, alle machen mit und es wird viel gelacht.


!Debriefing


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline|http://www.mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Wie+gef%E4llt+dir+dein+Platz%3F+%28ck%29]]
<data>{"abstract":"Eine Variante des [[Warum-Warum-Diagramms]], das lediglich das Warum durch ein Wie ersetzt. So nähert man sich schrittweise der Problemlösung. "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.tqm.com/mytqm/illustrationen/Fischgraetendiagramm.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Wie-Wie-Diagramm","abstract") </script>

!Wie-~Wie-Diagramm
Das Warum-Warum-Diagramm, vgl. [[Ishikawa-Diagramm]], lässt sich sinnvoll zur [[Problemlösung]] einsetzen. 

Dazu muss man lediglich die Fragen von "Warum" in "Wie" umwandeln, z.B.: "Wie können wir die Mitarbeiterzufriedenheit steigern: Neue Kantine, verbessertes Vorschlagswesen usw." Die nächste Stufe im Diagramm enthält dann Fragen wie: "Wie können wir ein Verbesserung des Vorschlagswesens erzielen?" usw. usw.


!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Problemloesung]<<tiddlerList tags:"problem_solving,-newTemplate" header:"Übungen Problemloesung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


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

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

config.macros.wikify={
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var fmt=params.shift();
		var values=[];
		var out="";
		if (!fmt.match(/\%[0-9]/g) && params.length) // format has no markers, just join all params with spaces
			out=fmt+" "+params.join(" ");
		else { // format param has markers, get values and perform substitution
			while (p=params.shift()) values.push(this.getFieldReference(place,p));
			out=fmt.format(values);
		}
		if (macroName=="wikiCalc") out=eval(out).toString();
		wikify(out.unescapeLineBreaks(),place,null,tiddler);
	},
	getFieldReference: function(place,p) { // "slicename::tiddlername" or "fieldname@tiddlername" or "fieldname"
		if (typeof p != "string") return p; // literal non-string value… just return it…
		var parts=p.split(config.textPrimitives.sliceSeparator);
		if (parts.length==2) {// maybe a slice reference?
			var tid=parts[0]; var slice=parts[1];
			if (!tid || !tid.length || tid=="here") { // no target (or "here"), use containing tiddler
				tid=story.findContainingTiddler(place);
				if (tid) tid=tid.getAttribute("tiddler")
				else tid="SiteSlices"; // fallback for 'non-tiddler' areas (e.g, header, sidebar, etc.)
			}
			var val=store.getTiddlerSlice(tid,slice);  // get tiddler slice value
		}
		if (val==undefined) {// not a slice, or slice not found, maybe a field reference?
			var parts=p.split("@");
			var field=parts[0];
			if (!field || !field.length) field="checked"; // missing fieldname, fallback: checked@tiddlername
			var tid=parts[1];
			if (!tid || !tid.length || tid=="here") { // no target (or "here"), use containing tiddler
				tid=story.findContainingTiddler(place);
				if (tid) tid=tid.getAttribute("tiddler")
				else tid="SiteFields"; // fallback for 'non-tiddler' areas (e.g, header, sidebar, etc.)
			}
			var val=store.getValue(tid,field);
		}
		// not a slice or field, or slice/field not found… return value unchanged
		return val===undefined?p:val;
	}
}
//}}}
//{{{
// define alternative macroName for triggering pre-rendering call to eval()
config.macros.wikiCalc=config.macros.wikify;
//}}}
<data>{"abstract":"Web resource for team building activities"}</data>
/%
|URL:|http://www.wilderdom.com/games|
|Description:|web resource for team building activities|

!Overview
<script> return DataTiddler.getData("Wilderdome Games for Teambuilding","abstract") </script>

!Wilderdome Games for Teambuilding
<script> return "<<tiddler [[Wilderdome Games for Teambuilding##Overview]]>>" </script> 

!Objectives
* team building activities

!Timing

!Materials
*

!Audience
Group

!Procedure

!Debriefing

%/
<data>{"abstract":"[[Wissensbaum]], wie stellt man das Wissen und die Fähigkeiten eines Mitarbeiters anschaulich dar, z.B. um sein Wissen seinem Nachfolger zur Verfügung zu stellen?  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://data68.sevenload.com/slcom/kk/qm/ijlfc/sfkhhmpggmh.jpg~/Maechtiger-Baum-mit-Blitzschlag.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Wissensbaum","abstract") </script>

!Wissensbaum
<script> return "<<tiddler [[Wissensbaum##Overview]]>>" </script> 

!Objectives
* [[Praxistransfer]]

!Timing

!Audience
Group


!Materials
* 

!Procedure
Das hier dargestellte "Instrument" nennt sich [[Wissensbaum]]. Eine Zeichnung in Form eines Baumes enthält alle Kompetenzen, über die ein Mitarbeiter zur Ausübung seiner Tätigkeit verfügt.

Die ''Wurzeln'' symbolisieren die Ursprünge, aus denen sich die Fähigkeiten entwickelten, z.B. Fortbildungen, Ausbildung, Umschulungen, Arbeitsplatz, Fachliteratur…
Der ''Stamm'' steht für die Kernkompetenzen einer Person, also seine beruflichen Fertigkeiten und Spezialisierungen wie Durchsetzungsfähigkeit, Zuverlässigkeit, Prozesskenntnisse, Produktkenntnisse…
Das ''Blätterwerk'' schließlich stellt die Ausformungen der Kompetenzen dar, ihre "Früchte", die das Unternehmen erntet. Gemeint sind die konkreten Tätigkeiten: Einteilung der Mitarbeiter, Steuerung von Arbeitsabläufen, Wartung von Maschinen… All das, was dem Unternehmen fehlen wird, wenn der Mitarbeiter ausscheidet.

Dieser Baum ist die Basis für die Einarbeitung des Nachfolgers.

!Debriefing

!Quelle
Kerstin Alms / Rüdiger Piorr / Peter Steinmann: Wissenstransfer beim Ausscheiden von Mitarbeitern, Zeitschrift Führung + Organisation 02/2007 S. 86-87.

!See also
* [[Prune the Product Tree]]
* [[Themenbaum]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Wissensmanagement]<<tiddlerList tags:"knowledge_management,-newTemplate" header:"Übungen Wissensmanagement">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Wissensbaum+(jt).html]]
<data>{"abstract":"Der eintägige Workshop [[Wissensmanagement]] verbessert die [[Wahrnehmung]] der Wissensbasis und von Informationsquellen. Wesentlicher Bestandteil ist das Spiel [[Wissenstausch]]."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.allofmedia.de/site/components/com_joomgallery/img_pictures/der_tausch_10/der_tausch_20090611_1223998774.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Wissenstausch","abstract") </script>

!Wissenstausch
<script> return "<<tiddler [[Wissenstausch##Overview]]>>" </script>

!Objectives
* Förderung der [[Wahrnehmung]] von Wissen und [[Informationsquellen|Information]]. 
* Verbesserung [[Wissenstausch]] zwischen [[Teams|Team]].


!Timing
1 Tag

!Audience
Group
* [[Mitarbeiter]] in Übergangs- und Umstrukturierungsprozessen
* Teams, bei denen Gruppenarbeit/Job Rotation eingeführt wird


!Materials
* Karten mit teamspezifischen Aussagen zu Bereichen der Tätigkeit (Anzahl der Karten: Teilnehmer mal 3)

!Procedure
Der Workshop Wissensmanagement hat zwei Teile:
# Überprüfung der Wissensstrategie des Teams.
# Austausch zwischen Teams.

Für beide Teile dient das Spiel [[Wissenstausch]]. 
Ich fertige je nach Kundensituation Karten mit teamspezifischen Aussagen zu Bereichen der Tätigkeit (Anzahl der Karten: Teilnehmer mal 3). 
Diese Wissenskarten sind konkret formuliert und bilden zusammen mit den übrigen Karten eine Art ~Informations-Puzzle, das in der Teamübung zusammengesetzt werden soll.

!Teil 1 - Überprüfung der Wissensstrategie des Teams
Die Teilnehmer werden in zwei [[Teams|Team]] geteilt. Die [[Teams|Team]] arbeiten getrennt und werden im Teil 2 zusammengeführt.
Die Karten werden verteilt mit dem Auftrag, die Karten nicht aus der Hand zu geben (Simulation des eigenen Wissens; Notwendigkeit guter Kommunikation). 
Auftrag: Relevantes gemeinsames Wissen identifizieren, strukturieren und darstellen.

!Teil 2 - Austausch zwischen Teams
Die beiden [[Teams|Team]] werden zusammengeführt und die Ergebnisse präsentiert. 
Posterdokumentation in "Ausstellungshalle": Vor den jeweiligen Postern stehen ~Team-Teilnehmer und erklären auf Nachfragen.
Vortrag und Fragen aus der anderen Gruppe, bis alles verstanden wurde. 
Dokumentation des Arbeitsprozesses: Struktur, Rolle der Teilnehmer, ~Aha-Effekte. Analyse der notwendigen Fragen:
* warum wurde diese Frage gestellt und welches war die Zielrichtung der Frage?
* wie wurde auf den befragten Themenkomplex in der Aufbereitung Rücksicht genommen?
* …

!Debriefing
In der Auswertung erhalten die Gruppen [[Feedback]] über ihr Herangehen an die Aufgabe und über die Strategie der Identifikation, Strukturierung, Darstellung. Wichtig: Rollen in den Gruppen identifizieren. Einzelfeedback möglich.

!Note
Bei der Formulierung der Karten beachten:
* muss für die konkrete Situation des Kunden - z.B. [[Mitarbeiter]] sozialer Einrichtungen, in denen Job Rotation eingeführt wird - passen
* muss mit den anderen Karten innerhalb jeder Gruppe stimmig sein


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Wissensmanagement]<<tiddlerList tags:"knowledge_management,-newTemplate" header:"Übungen Wissensmanagement">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Wissenstausch+%28kramer%29.html]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.psychologytoday.com/files/u45/letter_writing.jpg>>
<<showtoc>>
!Overview
[[Word at a Time Letter]]] is an Interactive game focussing on dealing with the uncertainty of planning on the horizon, [[rolling wave|Rolling Wave Planning]] and progressive elaboration.

!Word at a Time Letter
<<tiddler [[Word at a Time Letter##Overview]]>>

!Objectives
* dealing with the uncertainty of planning on the horizon, [[rolling wave|Rolling Wave Planning]] and progressive elaboration.

!Timing
15 min

!Materials
* Stop Watch

!Audience
Group / Individual

!Procedure
# Have participants pair up and sit side by side so they’re both facing the same direction. 
# Decide who will be partner A and who will be partner B.
# Tell them to write a letter together, one word at a time. 
# Partner A starts with the word “Dear.” 
# Partner B follows with the name of the recipient.” 
# Continue until they have completed writing the letter to the recipient. 
# If they finish the first letter before you call time, have them start another one and continue until notified to stop.

!Debriefing
* Agile development embraces uncertainty and the unknown. 
* The emotional experience of not knowing what is next is intended to quickly emulate the feeling and to setup a discussion about it.

!Credits
Agile Educator’s Toolkit (v1.7), Kert D. Peterson, Enterprise Agile Group, LLC

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/word-at-a-time-letter/
/***
|Name|WordCountMacro|
|Source|http://linktomemacro.tiddlyspot.com/|
|Version||
|Author|[[SimonBaird]]|
|License||
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description|a one-liner that displays a tiddler's word count|
!Note:
To use put this somewhere in your ViewTemplate:
{{{<div style="font-size:150%">(<span macro="wordCount"></span> words)</div>}}}
***/
//{{{
merge(config.macros,{
	wordCount: {
		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			createTiddlyText(place,tiddler&&tiddler.text?tiddler.text.match(/\w+/g).length:"0");
		}
	}
});
//}}}
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://static.photo.net/attachments/bboard/00L/00LGR7-36651884.jpg>>
<<showtoc>>
!Overview
Establish a set of [[working agreements|Working Agreements]] that will support the team in having productive disussions. Make the team members responsible for monitoring their interactions.

!Working Agreements
<<tiddler [[Working Agreements##Overview]]>>

!Objectives
* Set the Stage in a [[retrospective|Agile Retrospectives]]
* Establish guidelines for team interaction to support the team in having productive disussions. 
* Team members will be responsible for monitoring their interactions.

!Timing
30 min

!Audience
Group

!Materials
* flipchart
* index cards / sticky notes

!Procedure
Team members work together to generate ideas for effective behaviours at work then choose five to seven agreemenets to guide team interaction. The chosen agreements are published in the team room.
# Work in pairs or small groups to develop candidate working agreements.
# Ask each group for their most prominent agreement, and write it on a flip chart.
# The team choose five to seven agreements
# The [[facilitator|Facilitator]] publishes the chosen ones to the organization.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>/%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
* [[Sharing Values]]
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Sharing Values, a team building exercise| http://www.dhavalpanchal.com/sharing-values-a-team-building-exercise/]]
<data>{"abstract":"[[Workout]], ein Ritual, das aus dem Hause [[General Electric| http://de.wikipedia.org/wiki/General_Electric]] stammt, drei Tage dauert und dafür sorgt, dass die [[Ideen|Ideenmanagement]] der [[Mitarbeiter]] genutzt und rasch umgesetzt werden.   "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://www.ocregister.com/newsimages/opinion/Workout21706.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Workout","abstract") </script>

!Workout
<script> return "<<tiddler [[Workout##Overview]]>>" </script> 
Das folgende Ritual stammt aus dem Hause [[General Electric| http://de.wikipedia.org/wiki/General_Electric]] und dient dazu, das [[Lernen|learning]] der [[Mitarbeiter]] zu fördern, das Gelernte rasch umzusetzen und damit den entscheidenden Wettbewerbsvorteil zu sichern. 

!Objectives

!Timing

!Audience
Group

!Materials
* 

!Procedure
Die Idee: Die [[Mitarbeiter]] ziehen sich mit ihrem Manager und einem neutralen Moderator für drei Tage in ein Hotel zurück. Dort sollen sie Verbesserungsvorschläg für ihren Bereich erarbeiten, dem Vorgesetzten präsentieren, worauf dieser sofort [[Feedback]] geben muss. Der Ablauf ist durchaus nicht neu:

!!1. Tag
Der Abteilungsleiter gibt einen Überblick über die Strategie des Unternehmens und die Stärken und Schwächen des Bereiches aus seiner Sicht. Danach verabschiedet er sich. Die [[Mitarbeiter]] finden sich in Kleingruppen und suchen die Schwachpunkte ihrer Abteilung unter den Aspekten 
# [[Berichtswesen]], 
# [[Sitzungswesen|Sitzungsmanagement]], 
# Maßnahmeneffizienz, 
# Genehmigungswesen. 
Der [[Moderator|Moderation]] unterstützt sie dabei.

!!2. Tag
Hier werden Verbesserungsvorschläge erarbeitet und gewichtet nach den Kriterien "Aufwand der Umsetzung" und "Ertrag für das Unternehmen". Weiter verfolgt werden später zunächst die "Juwelen" (geringer Aufwand und hoher Ertrag), aber auch die "harten Nüsse" (hoher Aufwand und hoher Ertrag). Während die Vorschläge erarbeitet werden, stehen Experten aus dem Bereich Finanzen/Controlling zur Verfügung, die telefonisch Anfragen der Teilnehmer beantworten.

!!3. Tag
Der Vorgesetzte kommt wieder dazu und wird mit den Ergebnissen konfrontiert. Er muss unmittelbar Stellung beziehen, und zwar (1) der Umsetzung eines Vorschlages zustimmen oder (2) den Vorschlag ablehnen oder (3) um mehr [[Informationen|Information]] bitten und die Entscheidung verschieben. Jeder Vorschlag bekommt einen Paten, der für die zügige Umsetzung zuständig ist. Angeblich werden vier von fünf Vorschlägen sofort akzeptiert.

!Debriefing

!Quelle
Kerstin Gohl: "Ziele durchsetzen", wirtschaft & weiterbildung 1/2002, S.37.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Wissensmanagement]<<tiddlerList tags:"knowledge_management,-newTemplate" header:"Übungen Wissensmanagement">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Workout+%28jt%29]]
<data>{"abstract":"[[World Café]]: Sie möchten möglichst viele Menschen an einem [[Veränderungsprozess|Organizational Change Model]] beteiligen, ihr Wissen nutzen, sie miteinander bekannt machen, aus welchem Anlass auch immer?"}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://nibbenhagen.com/bilder/worldcafe_or.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("World Café","abstract") </script>

!World Café
<script> return "<<tiddler [[World Café##Overview]]>>" </script> 
Ein [[World Café]] kann eine Auftaktveranstaltung eines [[Veränderungsprozesses|Organizational Change Model]] sein, es kann in Kombination mit anderen Großgruppenveranstaltungen, wie [[Open Space]], eingesetzt werden, es eignet sich allerdings weniger, wenn man in kurzer Zeit schnelle Ergebnisse und konkrete Maßnahmenpläne entwickeln will.

!Objectives
* viele Menschen diskutieren über ein komplexes Thema
* Wissen vieler Menschen soll genutzt werden
* innovative Vorschläge 
* erschließen eines neuen Themas
* Vertiefung zwischenmenschlicher Beziehungen

!Timing
2h-2Tag

!Audience
Group: 20-1000 Teilnehmer

!Materials
* Tische für 5 Pers.

!Procedure
# Für 20 bis über 1000 Teilnehmer werden in einem entsprechenden Raum kleine Tische für jeweils fünf Personen nett gedeckt, 
# die Teilnehmer werden gebeten, sich an ihnen niederzulassen und eine vom Moderator vorgegebene Frage zu diskutieren. Dabei gibt es eine ~Café-Etikette:
** Fokus auf das Wichtige legen
* Eigene Sichtweisen beitragen
** Sprechen und Hören mit Herz und Verstand
** Hinhören, um wirklich zu verstehen
** [[Ideen|Ideenmanagement]] verbinden
** Neue Erkenntnisse und tiefergehende Fragen entdecken
** Auf die Tischdecke kritzeln
** Spaß haben
# Nach 20 bis 45 Minuten werden die Teilnehmer gebeten, sich einen neuen Tisch zu suchen. Nur einer bleibt als Gastgeber zurück und berichtet den Neuen, was bisher diskutiert wurde, dann geht es weiter. 
# Die mit ~Flipchart-Blättern bedeckten Tische werden mit Notizen gefüllt und an einer Wäscheleine an der Wand aufgehängt. 
# Zwischen den einzelnen Runden gibt es ~Plenums-Phasen, in denen wichtige Erkenntnisse vorgestellt und diskutiert werden. Weitere Fragen werden in die Runde gegeben und diskutiert. 

Solche Konferenzen können zwei Stunden bis zwei Tage dauern.

!Debriefing
Nicht zu unterschätzen ist die Vorbereitung: Es muss geklärt werden, ob die Auftraggeber überhaupt offen für Vorschläge sind und welche Fragen gestellt werden sollen. Von der Qualität der Fragen hängt nämlich ganz entscheidend ab, ob die Sache in Gang kommt.

!Quelle
[[Arnim Rohm: Change-Tools. Erfahrene Prozessberater präsentieren wirksame Workshop-Interventionen. managerSeminare GmbH, 2006.| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FChange-Tools-Erfahrene-Prozessberater-pr%25C3%25A4sentieren-Workshop-Interventionen%2Fdp%2F3936075395%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214936596%26sr%3D1-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]].


!Internet Images
+++*[Internet Images]> {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.theworldcafe.com/bank/principles.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.delawareonline.com/blogs/worldcafe.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.corridortribe.com/archive_2004/small_world/images/small_world_cafe_073004.JPG>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://de.academic.ru/pictures/dewiki/90/Zeichnung_world_cafe.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.edlec.com/images/PowerofconversionPic.jpg>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.one4change.de/wp-content/gallery/worldcafe/worldcafe-slide4.png>> /%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>> %/
---- }}}
===

!See also
* [[Organizational Change Management]]
* [[Open Space]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=World+Caf%E9+%28jt%29&db=3]]
* http://www.theworldcafe.com/
* http://de.wikipedia.org/wiki/World-Caf%C3%A9
<data>{"abstract":"[[Worte finden]], eine kleine Aktivierungsübung, für die Momente im Seminar, wenn die Konzentration nachlässt."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.rhetorik.ch/Hohl/worte.gif>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Worte finden","abstract") </script>

!Worte finden
<script> return "<<tiddler [[Worte finden##Overview]]>>" </script> 
Eine simple Übung für Trainer in Momenten, in denen sich Trägheit breit macht. 

!Objectives
* Aufwärmen
* Lockerung

!Timing
30 min

!Audience
Group


!Materials
* 


!Procedure
Die Teilnehmer rücken die Stühle zurück, so dass sie bequem aufstehen können. 
Der Trainer gibt Kategorien vor (z.B. Musikinstrument, Werkzeug, Baum etc), zu denen sich die Teilnehmer Worte ausdenken. 
Wer ein Wort gefunden hat, springt auf und setzt sich wieder hin. 
Wenn alle aufgesprungen sind, fragt der Trainer die Worte ab. 

!Debriefing
Der Effekt: Bewegung und eine Reihe witziger Einfälle zum Schmunzeln.

!Quelle
M. ~Meier-Maletz: Der Klassiker, managerSeminare 2/99 S.84

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Worte+finden+%28jt%29]]
<data>{"abstract":"[[Wortsalat]], Übung, in der Gruppen eine gemeinsame Aufgabe zu erledigen haben."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.augensound.de/data/preview/24/wortsalat.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Wortsalat","abstract") </script>

!Wortsalat
<script> return "<<tiddler [[Wortsalat##Overview]]>>" </script>

!Objectives
* Teambildung
* non-verbale Kommunikation

!Timing
15-20 min

!Audience
Group

!Materials
* Wortkarten: auf jeder Karte steht ein Wort in Großbuchstaben.

!Procedure
Die Teilnehmer werden in mehrere Gruppen zu je drei bis sechs aufgeteilt. 
Jede Gruppe erhält einen Satz "Wortkarten". Alle Karten zusammen ergeben einen Satz, z.B. 

{{indent{
//"Der Vorteil der Klugheit besteht darin, dass man sich dumm stellen kann. Das Gegenteil ist schon schwieriger."// (Kurt Tucholsky). 
Oder: "Ideale sind wie Sterne. Aber wie die Seefahrer auf dem Meer richten wir unseren Kurs nach ihnen." (Carl Schurz). 
}}}

Jede Gruppe erhält den gleichen Satz Karten, wobei der gewählte Satz sich am Seminarthema orientieren kann.

Aufgabe ist es nun, aus den Worten einen sinnvollen Satz zu bilden, wobei die Zeichensetzung ignoriert werden darf. 
Das Besondere: Die Gruppen dürfen sich weder verbal noch per Zeichensprache austauschen.


!Debriefing


!Quelle
König, Stefan: [[Warming-up in Seminar und Training, von Karin Göppel, Beltz 3. überarb. Aufl. 2007, S. 122-123| http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.de%2FWarming-up-Seminar-Training-Unterst%25C3%25BCtzung-Lernprozessen%2Fdp%2F3407364512%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1218004388%26sr%3D8-1&site-redirect=de&tag=michaeltarnow-21&linkCode=ur2&camp=1638&creative=6742]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Teamentwicklung]<<tiddlerList tags:"teambuilding,-newTemplate" header:"Übungen Teamentwicklung">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Wortsalat+%28jt%29.html]]
<data>{"abstract":"Bewegung im Seminar - hier das kleine, sehr bewegungsintensive [[Wäscheklammerspiel]], das keine Anspruch auf “höhere Ziele” hat, sondern allein der Aktivierung der Teilnehmer dient."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://de.academic.ru/pictures/dewiki/99/clothespins.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Wäscheklammerspiel","abstract") </script>

!Wäscheklammerspiel
<script> return "<<tiddler [[Wäscheklammerspiel##Overview]]>>" </script>
Voraussetzung ist, dass die Teilnehmer sich nicht “zu fein” für Kinderspiele sind. 

!Objectives
* Bewegung
* Energie aktivieren
* Energize

!Timing
10 min

!Audience
Group

!Materials
* 3 Wäscheklammern pro Teilnehmer

!Procedure
# Zunächst muss im Seminarraum Platz geschaffen werden. 
# Dann verteilt der Trainer drei Wäscheklammern an jeden Teilnehmer mit der Aufforderung, diese irgendwo sichtbar an der eigenen Kleidung zu befestigen. 
# Die Aufgabe lautet anschließend, so viele Wäscheklammern wir möglich zu ergattern. Dann eröffnet der Trainer selbst die Jagd.
# Nach ca. drei Minuten bricht er das Spiel ab. Es folgt die nächste Anleitung: //„Glückwunsch, wenn Sie viele Klammern ergattert haben. Wenn nicht, ist das nicht schlimm. Jetzt geht es darum, alle Klammern wieder loszuwerden und sie anderen anzuhängen.”//
# Erneut legt der Trainer als erster los.

!Debriefing

!Quelle
Thomas Schmidt: ~Konfliktmanagement-Trainings erfolgreich leiten, managerSeminare 2009, S. 285-286.


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[Unesco, freie Lernressourcen| www.opentrainingplatform.org]]
/***
|''Name:''|XCaseListPlugin|
|''Description:''|Adds a new command ''xCase'' to the core list macro|
|''Author:''|Mario Pietsch|
|''Version:''|0.3|
|''Date:''|2010.08.03|
|''Status:''|''beta''|
|''Source:''|http://apm-plugins.tiddlyspot.com/#XCaseListPlugin|
|''License''|[[MIT License]]|
|''CoreVersion:''|2.5.0|
|''Requires:''||
|''Documentation:''|this file|
|''Keywords:''|list, sort, not case sensitive, filter|

!Description
This plugin performs a alphabetical sort for tiddlers. Default it is not case sensitive. That means ab = AB = aB = Ab! And it does some little more filtering using the RegExp syntax. The RegExp Syntax can be a little bit tricky to read and configure. But the best description I have found is at [[regular-expressions.info]]

!!!Example
{{{
<<list xCase title '[m]'>>
}}}
< <list xCase title '[m]'>>

!Default Format
{{{
<<list xCase>>
}}}

!More Possibilities
<<<
!!!Reverse sort order
{{{
<<list xCase -title >>
}}}

!!!Some basic filtering
*Every tiddler title, that starts with a number from 0 to 9.
{{{
<<list xCase title '[0-9]'>>
}}}

*Every tiddler title, that starts with an ''"a"'' or ''"b"'' or ''"c"''.
{{{
<<list xCase title '[abc]'>>
}}}

*Every tiddler title, that starts with exactly ''abc''.
{{{
<<list xCase title 'abc'>>
}}}
<<<

!!!Some advanced filtering
<<<
*same as above but with a tagList for additional filtering.
*adding the tag filter will disable the "excludeLists" setting !!
**If you need excludeLists, than you have to define it with the expression.
*XCaseListPlugin should be compatible to [[MatchTagsPlugin]] from TiddlyTools!

{{{
<<list xCase title '[a]' "[tag[MyTag]]">>
}}}

!!!Global / Local Settings
|<<option chkXCaseListCaseSensitive>> Global sort case sensitive |Sets case sensitiv sort globally|
|<<option chkXCaseListCheckField>> Sortfield defines case sensitive |Ignores global setting. Evaluates sortField and sets the value everytime <br> {{{<<list xCase sortField ..>>}}} is executed.|

If sortField is eg: 'title' .. not case sensitive (default).
if sortField is eg: 'Title' or 'TITLE' .. case sesitive sort is active.

<<<

!Code
***/

/*{{{*/

if(!version.extensions.XCaseListPlugin) { //# ensure that the plugin is only installed once
version.extensions.XCaseListPlugin = { installed: true };

config.macros.list.xCase = {};
config.macros.list.xCase.handler = function(params){

	var lookupField = 'tags';
	var lookupValue = 'excludeLists';
	var lookupMatch = false;
	
	var sortField = params[1] || '+title';
	
	// global setting for case sensitive search
	var caseSensitive = config.options.chkXCaseListCaseSensitive || false;
	var chkSortField = config.options.chkXCaseListCheckField || false;

	// if this option is active the macro parameter sortField is parsed
	// global setting is ignored !!
	if (chkSortField) caseSensitive = (sortField != sortField.toLowerCase());	
	sortField = sortField.toLowerCase();

	// check if numberedText called this macro.
	// this parameter is used by <<list numberedText ..>> macro
	// if you directly use it, it will return an unsorted list !!!
	var numberedText = false;
	if (sortField.substr(0, 1)== '#') {
		numberedText = true;
		sortField = sortField.substr(1);
		caseSensitive = false;
	}

	// check for ascending or descending sort order		
	var asc = 1;
	switch (sortField.substr(0, 1)) {
		case "-":
			asc = -1;
		case "+":
			sortField = sortField.substr(1);
			break;
		default:	;
	}	
	
	var results = [];
	var tmpResults = [];
	
	// set the default for regExp filtering
	var regSnip = params[2] || '.';	
	var regExp = new RegExp('^' + regSnip, 'im');
	var match = null;

	// check if [tag[...]] is set
	var tagList = params[3] || '';		 
	var tagMatch = tagList.length != 0;		// if list is empty everything is valid.

	if (tagMatch) {
		tmpResults = store.filterTiddlers(params[3]);
		for (var i=0, max=tmpResults.length; i<max; i++){
//			match = tmpResults[i][sortField].match(regExp);
			match = tmpResults[i].title.match(regExp);
			if (match) results.push(tmpResults[i]);			
		}; // for ..
	}
	else {
		store.forEachTiddler(function(title, tiddler){
			var f = !lookupMatch;
			for (var lookup = 0; lookup < tiddler[lookupField].length; lookup++) {
				if (tiddler[lookupField][lookup] == lookupValue) {
					f = lookupMatch;
				}
			}; // for.. 
			if (f) {
//				match = tiddler[sortField].match(regExp);
				match = tiddler.title.match(regExp);
				if (match) results.push(tiddler);
			}; // if (f) ..
		}); // store.forEach ..
	}; // else ..
	
	if (TiddlyWiki.isStandardField(sortField)) {

		if (caseSensitive) {
			results.sort(function(a, b){
				return a[sortField] < b[sortField] ? -asc : a[sortField] == b[sortField] ? 0 : asc;
			}); // results.sort
		}
		else if (numberedText) {
			// do nothing, return the list, for further processing !	
		}
		else {
			results.sort(function(a, b){
				return a[sortField].toLowerCase() < b[sortField].toLowerCase() ? -asc : a[sortField].toLowerCase() == b[sortField].toLowerCase() ? 0 : asc;
			}); // results.sort
		}; // if
	}
	else {
		results.sort(function (a, b) {
			var aField = (a.fields[sortField]) ? a.fields[sortField] : 'zzz';
			var bField = (b.fields[sortField]) ? b.fields[sortField] : 'zzz';

			return aField.toLowerCase() < bField.toLowerCase() ? -asc : aField.toLowerCase() == bField.toLowerCase() ? 0 : +asc;
			});
	}
	return results;
}
} //# end of "install only once"

/*}}}*/
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.selfishprogramming.com/wp-content/uploads/2008/10/the-ones-sorting-things-out.jpg>>
<<showtoc>>
!Overview
The [[XP Game]] is a playful way to [[familiarize|Adopting Agile]] the players with some of the more difficult concepts of the XP Planning Game, like [[velocity|Velocity]], [[story estimation|Agile Estimation]], [[yesterday’s weather|Yesterday’s Weather]] and the cycle of life. Anyone can participate.
The goal is to make development and business people work together, they both play both [[roles|Rolle]]. It’s especially useful when a company starts adopting [[XP|Extreme Programming]].

!XP Game
<script> return "<<tiddler [[XP Game##Overview]]>>" </script>

!Objectives
* Familiarize with some of the more difficult concepts of the XP Planning Game, like [[velocity|Velocity]], [[story estimation|Agile Estimation]], [[yesterday’s weather|Yesterday’s Weather]] and the cycle of life.

!Timing
30min-60min

!Audience
Group


!Materials
*

!Procedure

!Debriefing


/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[XP game| http://www.xpgame.be]]
* [[The XP Game Explained - (PDF)| http://www.xp.be/html/explained.pdf]]
<<wikify [>img(%0,%1)[%2|%3]] auto auto title URL>>
<<showtoc>>
!Overview


!XP Game – Scrum variant
<script> return "<<tiddler [[XP Game – Scrum variant##Overview]]>>" </script>

!Objectives

!Timing

!Materials
*

!Audience
Group

!Procedure
{{center{<<wikify [img(%0,%1)[%2|%3][%3]] 90% auto title http://www.agilitrix.com/wp-content/uploads/2009/08/agile-scrum-project-cycle-1024x666.jpg>>}}}



!Debriefing


/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}} 
===
%/

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[Scrum Simulation Game (based on XPGame) |http://www.agilitrix.com/2009/08/scrum-simulation-xpgame/]]
<<wikify [>img(%0,%1)[%2|%3]] 50% auto title http://www.yellowbricksystems.com/resource/1269216589000/YBS_Site/YellowBrickRoad.gif>>
<<showtoc>>
!Overview
The [[Yellow Brick Road]] is the difficult path Dorothy takes towards the Emerald City to find the mysterious Wizard of Oz to help her get home. In this session, we will help you to tap into the resources you’ve always had but never realised to complete your quest for a more Agile organisation. 

!Yellow Brick Road
<script> return "<<tiddler [[Yellow Brick Road##Overview]]>>" </script>
Here’s a chance to swap your bit part for a major role in the Agile re-telling of “The Wizard of Oz” for your organisation. You will get the chance to work with peers in similar organisations and draw on a wealth of experiences to deal with real problems and select solutions to try.
You will get the chance to work with peers in similar organisations and draw on a wealth of experiences to deal with real problems and select solutions to try.

!Objectives
* Learn to become a more effective problem solver
* Practice listening without judgement
* Learn how to gather information more effectively
* Learn from the experience of others in similar organisations
* Gain a fresh perspective on your problems
* Identify actions to try in your organisation
* Gain a peer coach buddy to support you in your endeavours
* Developing Coaching Skills

!Timing
90 min 

!Audience
Group

!Materials
* [[Playing board, role descriptions, download material| http://www.agilefairytales.com/dist/The-Yellow-Brick-Road-2-0.zip]]

!Procedure
!!Process/Mechanics
* 00:00 - 00:10 - Speed Networking with Munchkins
* 00:10 - 00:15 - Agile Adoption human bubblesort and form triads with people from similar organisations
* 00:15 - 00:25 - Speed retelling of The Wizard of Oz
* 00:25 - 00:30 - Brainstorm problems you face as individuals
* 00:30 - 00:35 - Introduction to peer-coaching
* 00:35 - 00:45 - First round of peer-coaching
* 00:45 - 00:55 - Second round of peer-coaching
* 00:55 - 00:65 - Third round of peer-coaching
* 00:65 - 00:75 - Opt to find yourself a peer-coach buddy and do a bit of buddy bonding
* 00:75 - 00:90 - Session Retrospective

!!Roles
The 3 [[roles|Rolle]] are: Active Player, ~Peer-Coach and Observer. In each round a player adopts a different role than in the previous rounds.

!!What happes in a round?
* The Active Player states the problem.
* The ~Peer-Coach offers the Oz characters the Active Player can choose from.
* The Active Player chooses the Oz character card that best describes them in the current situation.
* The ~Peer-Coach helps the Active Player think through the problem from the perspective of the Oz character with special power granted by the Wizard.
* Both the ~Peer-Coach and the Active Player can then bring in additional Oz characters to view the problem from more perspectives.
* The Observer remains silent during the round and notes down the interactions between the Active Player and ~Peer-Coach. The observer also ensures the rules are being adhered to.
* At the end of the round, the Observer shares their observations with the rest of the triad.

!Debriefing


!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title http://www.selfishprogramming.com/wp-content/uploads/2009/12/Agile-FairyTales-Yellow-Brick-Road-1.0-FULL-HEADS-mini.png>> /%
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>%/
---- }}} 
===

!See also
<<tiddler ShowTiddlerReferences>>
!Weblinks
* [[The Yellow Brick Road - Download material| http://www.agilefairytales.com/dist/The-Yellow-Brick-Road-2-0.zip]]
* http://www.agilefairytales.com/games.html
//synonym://
<<wikify [>img(%0,%1)[%2|%3]] auto auto title http://www.adwebcat.com/wp-content/uploads/2009/04/papierflieger.jpg>>
<<showtoc>>
!Overview
[[You Are Not in Control]] is an interactive game illustrating the efficiencies of [[self organizing teams|Self-organizing Team]] and contrasting with [[Command and Control]]. 

!You Are Not in Control
<<tiddler [[You Are Not in Control##Overview]]>>

!Objectives
* illustrating the efficiencies of [[self organizing teams|Self-organizing Team]] 
* contrasting with [[Command and Control]]. 

!Timing
30-45 min

!Materials
* Four unique [[paper airplane instructions|http://www.papierfliegerei.de/]], one set for each team.
* A big stack of standard size white papers and a smaller stack of yellow papers.

!Audience
Group

!Procedure
In teams of 4 or more, have participants create as many paper airplanes as possible. When thrown from behind a table at one end of the room, airplanes must cross the room and touch the opposite wall.
The [[facilitator|Facilitator]], playing the role of the customer, can reject any planes that do not meet their quality standards.
Track the number of planes created/approved, time to get the first plane approved, time to absorb a new team member, time to incorporate a new requirement (first yellow plane).

!!First pass — Self organizing and cross functional teams
No roles or responsibilities. No prep time. Provide each team one paper airplane instruction, the same for all teams. Go!

!!Second pass — Command and control with specialists
Create new teams.
Team members may only perform one of the following functions:
* Folder: Can fold paper so that the surfaces remain in contact.
* Bender: Can bend the paper into a new angle, so long as the surfaces are not touching (this would be the job of the Folder).
* Pilot: May do final adjustments to elevators.

A team member may change their role; however they must leave for 1 minute to attend training. A Project Manager is in charge of overall quality. They must establish the steps and tasks for each team member. Give the team 5 minutes to prepare their process. Go!

Run exercise for 5-10 minutes for each pass. After two-four minutes, swap one team member from each team.
After three – six minutes, put in a special order for yellow planes. Offer bonus of ten points per yellow plane.

!Debriefing

!Credits

/%
!Internet Images
+++*[Internet Images]>  {{center{
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
----
<<wikify [img(%0,%1)[%2|%3][%3]] auto auto title URL>>
---- }}}
===
%/

!See also
* [[Papierflieger bauen]]
<<tiddler ShowTiddlerReferences>>
!Weblinks
* http://blog.tastycupcakes.com/2009/06/you-are-not-in-control/
/***
|''Name:''|YourSearchPlugin|
|''Version:''|2.1.6 (2012-04-19)|
|''Summary:''|Search your TiddlyWiki with advanced search features such as result lists, tiddler preview, result ranking, search filters, combined searches and many more.|
|''Source:''|http://tiddlywiki.abego-software.de/#YourSearchPlugin|
|''Twitter:''|[[@abego|https://twitter.com/#!/abego]]|
|''GitHub:''|https://github.com/abego/YourSearchPlugin|
|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|
|''License:''|[[BSD open source license|http://www.abego-software.de/legal/apl-v10.html]]|
!About YourSearch
YourSearch gives you a bunch of new features to simplify and speed up your daily searches in TiddlyWiki. It seamlessly integrates into the standard TiddlyWiki search: just start typing into the 'search' field and explore!

For more information see [[Help|YourSearch Help]].
!Compatibility
This plugin requires TiddlyWiki 2.1. 
Check the [[archive|http://tiddlywiki.abego-software.de/archive]] for ~YourSearchPlugins supporting older versions of TiddlyWiki.
!Source Code
***/
/***
This plugin's source code is compressed (and hidden). 
Use this [[link|http://tiddlywiki.abego-software.de/archive/YourSearchPlugin/2.1.6/YourSearchPlugin-2.1.6-src.js]] to get the readable source code.
***/
///%
if(!version.extensions.YourSearchPlugin){version.extensions.YourSearchPlugin={major:2,minor:1,revision:6,source:"http://tiddlywiki.abego-software.de/#YourSearchPlugin",licence:"[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]",copyright:"Copyright (c) abego Software GmbH, 2005-2012 (www.abego-software.de)"};if(!window.abego){window.abego={}}if(!Array.forEach){Array.forEach=function(c,e,d){for(var b=0,a=c.length;b<a;b++){e.call(d,c[b],b,c)}};Array.prototype.forEach=function(d,c){for(var b=0,a=this.length;b<a;b++){d.call(c,this[b],b,this)}}}abego.toInt=function(b,a){if(!b){return a}var c=parseInt(b);return(c==NaN)?a:c};abego.createEllipsis=function(a){var b=createTiddlyElement(a,"span");b.innerHTML="&hellip;"};abego.shallowCopy=function(b){if(!b){return b}var a={};for(var c in b){a[c]=b[c]}return a};abego.copyOptions=function(a){return !a?{}:abego.shallowCopy(a)};abego.countStrings=function(d,c){if(!c){return 0}var a=c.length;var f=0;var e=0;while(true){var b=d.indexOf(c,e);if(b<0){return f}f++;e=b+a}return f};abego.getBracedText=function(j,e,a){if(!e){e=0}var k=/\{([^\}]*)\}/gm;k.lastIndex=e;var d=k.exec(j);if(d){var l=d[1];var b=abego.countStrings(l,"{");if(!b){if(a){a.lastIndex=k.lastIndex}return l}var g=j.length;for(var f=k.lastIndex;f<g&&b;f++){var h=j.charAt(f);if(h=="{"){b++}else{if(h=="}"){b--}}}if(!b){if(a){a.lastIndex=f-1}return j.substring(d.index+1,f-1)}}};abego.select=function(d,c,b,a){if(!a){a=[]}d.forEach(function(e){if(c.call(b,e)){a.push(e)}});return a};abego.consumeEvent=function(a){if(a.stopPropagation){a.stopPropagation()}if(a.preventDefault){a.preventDefault()}a.cancelBubble=true;a.returnValue=true};abego.TiddlerFilterTerm=function(d,b){if(!b){b={}}var c=d;if(!b.textIsRegExp){c=d.escapeRegExp();if(b.fullWordMatch){c="\\b"+c+"\\b"}}var a=new RegExp(c,"m"+(b.caseSensitive?"":"i"));this.tester=new abego.MultiFieldRegExpTester(a,b.fields,b.withExtendedFields)};abego.TiddlerFilterTerm.prototype.test=function(a){return this.tester.test(a)};abego.parseNewTiddlerCommandLine=function(c){var a=/(.*?)\.(?:\s+|$)([^#]*)(#.*)?/.exec(c);if(!a){a=/([^#]*)()(#.*)?/.exec(c)}if(a){var d;if(a[3]){var b=a[3].replace(/#/g,"");d=b.parseParams("tag")}else{d=[[]]}var e=a[2]?a[2].trim():"";d.push({name:"text",value:e});d[0].text=[e];return{title:a[1].trim(),params:d}}else{return{title:c.trim(),params:[[]]}}};abego.parseTiddlerFilterTerm=function(queryText,offset,options){var re=/\s*(?:(?:\{([^\}]*)\})|(?:(=)|([#%!])|(?:(\w+)\s*\:(?!\/\/))|(?:(?:("(?:(?:\\")|[^"])+")|(?:\/((?:(?:\\\/)|[^\/])+)\/)|(\w+\:\/\/[^\s]+)|([^\s\)\-\"]+)))))/mg;var shortCuts={"!":"title","%":"text","#":"tags"};var fieldNames={};var fullWordMatch=false;re.lastIndex=offset;while(true){var i=re.lastIndex;var m=re.exec(queryText);if(!m||m.index!=i){throw"Word or String literal expected"}if(m[1]){var lastIndexRef={};var code=abego.getBracedText(queryText,0,lastIndexRef);if(!code){throw"Invalid {...} syntax"}var f=Function("tiddler","return ("+code+");");return{func:f,lastIndex:lastIndexRef.lastIndex,markRE:null}}if(m[2]){fullWordMatch=true}else{if(m[3]){fieldNames[shortCuts[m[3]]]=1}else{if(m[4]){fieldNames[m[4]]=1}else{var textIsRegExp=m[6];var text=m[5]?window.eval(m[5]):m[6]?m[6]:m[7]?m[7]:m[8];options=abego.copyOptions(options);options.fullWordMatch=fullWordMatch;options.textIsRegExp=textIsRegExp;var fields=[];for(var n in fieldNames){fields.push(n)}if(fields.length==0){options.fields=options.defaultFields}else{options.fields=fields;options.withExtendedFields=false}var term=new abego.TiddlerFilterTerm(text,options);var markREText=textIsRegExp?text:text.escapeRegExp();if(markREText&&fullWordMatch){markREText="\\b"+markREText+"\\b"}return{func:function(tiddler){return term.test(tiddler)},lastIndex:re.lastIndex,markRE:markREText?"(?:"+markREText+")":null}}}}}};abego.BoolExp=function(i,c,j){this.s=i;var h=j&&j.defaultOperationIs_OR;var e=/\s*\)/g;var f=/\s*(?:(and|\&\&)|(or|\|\|))/gi;var b=/\s*(\-|not)?(\s*\()?/gi;var a;var d=function(p){b.lastIndex=p;var l=b.exec(i);var o=false;var k=null;if(l&&l.index==p){p+=l[0].length;o=l[1];if(l[2]){var n=a(p);e.lastIndex=n.lastIndex;if(!e.exec(i)){throw"Missing ')'"}k={func:n.func,lastIndex:e.lastIndex,markRE:n.markRE}}}if(!k){k=c(i,p,j)}if(o){k.func=(function(m){return function(q){return !m(q)}})(k.func);k.markRE=null}return k};a=function(s){var n=d(s);while(true){var p=n.lastIndex;f.lastIndex=p;var k=f.exec(i);var o;var q;if(k&&k.index==p){o=!k[1];q=d(f.lastIndex)}else{try{q=d(p)}catch(r){return n}o=h}n.func=(function(t,m,l){return l?function(u){return t(u)||m(u)}:function(u){return t(u)&&m(u)}})(n.func,q.func,o);n.lastIndex=q.lastIndex;if(!n.markRE){n.markRE=q.markRE}else{if(q.markRE){n.markRE=n.markRE+"|"+q.markRE}}}};var g=a(0);this.evalFunc=g.func;if(g.markRE){this.markRegExp=new RegExp(g.markRE,j.caseSensitive?"mg":"img")}};abego.BoolExp.prototype.exec=function(){return this.evalFunc.apply(this,arguments)};abego.BoolExp.prototype.getMarkRegExp=function(){return this.markRegExp};abego.BoolExp.prototype.toString=function(){return this.s};abego.MultiFieldRegExpTester=function(b,a,c){this.re=b;this.fields=a?a:["title","text","tags"];this.withExtendedFields=c};abego.MultiFieldRegExpTester.prototype.test=function(b){var d=this.re;for(var a=0;a<this.fields.length;a++){var c=store.getValue(b,this.fields[a]);if(typeof c=="string"&&d.test(c)){return this.fields[a]}}if(this.withExtendedFields){return store.forEachField(b,function(e,g,f){return typeof f=="string"&&d.test(f)?g:null},true)}return null};abego.TiddlerQuery=function(b,a,d,c,e){if(d){this.regExp=new RegExp(b,a?"mg":"img");this.tester=new abego.MultiFieldRegExpTester(this.regExp,c,e)}else{this.expr=new abego.BoolExp(b,abego.parseTiddlerFilterTerm,{defaultFields:c,caseSensitive:a,withExtendedFields:e})}this.getQueryText=function(){return b};this.getUseRegExp=function(){return d};this.getCaseSensitive=function(){return a};this.getDefaultFields=function(){return c};this.getWithExtendedFields=function(){return e}};abego.TiddlerQuery.prototype.test=function(a){if(!a){return false}if(this.regExp){return this.tester.test(a)}return this.expr.exec(a)};abego.TiddlerQuery.prototype.filter=function(a){return abego.select(a,this.test,this)};abego.TiddlerQuery.prototype.getMarkRegExp=function(){if(this.regExp){return"".search(this.regExp)>=0?null:this.regExp}return this.expr.getMarkRegExp()};abego.TiddlerQuery.prototype.toString=function(){return(this.regExp?this.regExp:this.expr).toString()};abego.PageWiseRenderer=function(){this.firstIndexOnPage=0};merge(abego.PageWiseRenderer.prototype,{setItems:function(a){this.items=a;this.setFirstIndexOnPage(0)},getMaxPagesInNavigation:function(){return 10},getItemsCount:function(a){return this.items?this.items.length:0},getCurrentPageIndex:function(){return Math.floor(this.firstIndexOnPage/this.getItemsPerPage())},getLastPageIndex:function(){return Math.floor((this.getItemsCount()-1)/this.getItemsPerPage())},setFirstIndexOnPage:function(a){this.firstIndexOnPage=Math.min(Math.max(0,a),this.getItemsCount()-1)},getFirstIndexOnPage:function(){this.firstIndexOnPage=Math.floor(this.firstIndexOnPage/this.getItemsPerPage())*this.getItemsPerPage();return this.firstIndexOnPage},getLastIndexOnPage:function(){return Math.min(this.getFirstIndexOnPage()+this.getItemsPerPage()-1,this.getItemsCount()-1)},onPageChanged:function(a,b){},renderPage:function(a){if(a.beginRendering){a.beginRendering(this)}try{if(this.getItemsCount()){var d=this.getLastIndexOnPage();var c=-1;for(var b=this.getFirstIndexOnPage();b<=d;b++){c++;a.render(this,this.items[b],b,c)}}}finally{if(a.endRendering){a.endRendering(this)}}},addPageNavigation:function(c){if(!this.getItemsCount()){return}var k=this;var g=function(n){if(!n){n=window.event}abego.consumeEvent(n);var i=abego.toInt(this.getAttribute("page"),0);var m=k.getCurrentPageIndex();if(i==m){return}var l=i*k.getItemsPerPage();k.setFirstIndexOnPage(l);k.onPageChanged(i,m)};var e;var h=this.getCurrentPageIndex();var f=this.getLastPageIndex();if(h>0){e=createTiddlyButton(c,"Previous","Go to previous page (Shortcut: Alt-'<')",g,"prev");e.setAttribute("page",(h-1).toString());e.setAttribute("accessKey","<")}for(var d=-this.getMaxPagesInNavigation();d<this.getMaxPagesInNavigation();d++){var b=h+d;if(b<0){continue}if(b>f){break}var a=(d+h+1).toString();var j=b==h?"currentPage":"otherPage";e=createTiddlyButton(c,a,"Go to page %0".format([a]),g,j);e.setAttribute("page",(b).toString())}if(h<f){e=createTiddlyButton(c,"Next","Go to next page (Shortcut: Alt-'>')",g,"next");e.setAttribute("page",(h+1).toString());e.setAttribute("accessKey",">")}}});abego.LimitedTextRenderer=function(){var l=40;var c=4;var k=function(p,z,v){var q=p.length;if(q==0){p.push({start:z,end:v});return}var u=0;for(;u<q;u++){var w=p[u];if(w.start<=v&&z<=w.end){var o;var s=u+1;for(;s<q;s++){o=p[s];if(o.start>v||z>w.end){break}}var x=z;var y=v;for(var t=u;t<s;t++){o=p[t];x=Math.min(x,o.start);y=Math.max(y,o.end)}p.splice(u,s-u,{start:x,end:y});return}if(w.start>v){break}}p.splice(u,0,{start:z,end:v})};var d=function(n){var q=0;for(var p=0;p<n.length;p++){var o=n[p];q+=o.end-o.start}return q};var b=function(n){return(n>="a"&&n<="z")||(n>="A"&&n<="Z")||n=="_"};var f=function(p,r){if(!b(p[r])){return null}for(var o=r-1;o>=0&&b(p[o]);o--){}var q=o+1;var t=p.length;for(o=r+1;o<t&&b(p[o]);o++){}return{start:q,end:o}};var a=function(o,q,p){var n;if(p){n=f(o,q)}else{if(q<=0){return q}n=f(o,q-1)}if(!n){return q}if(p){if(n.start>=q-c){return n.start}if(n.end<=q+c){return n.end}}else{if(n.end<=q+c){return n.end}if(n.start>=q-c){return n.start}}return q};var j=function(r,q){var n=[];if(q){var u=0;do{q.lastIndex=u;var o=q.exec(r);if(o){if(u<o.index){var p=r.substring(u,o.index);n.push({text:p})}n.push({text:o[0],isMatch:true});u=o.index+o[0].length}else{n.push({text:r.substr(u)});break}}while(true)}else{n.push({text:r})}return n};var i=function(p){var n=0;for(var o=0;o<p.length;o++){if(p[o].isMatch){n++}}return n};var h=function(v,u,q,t,o){var w=Math.max(Math.floor(o/(t+1)),l);var n=Math.max(w-(q-u),0);var r=Math.min(Math.floor(q+n/3),v.length);var p=Math.max(r-w,0);p=a(v,p,true);r=a(v,r,false);return{start:p,end:r}};var m=function(r,y,o){var n=[];var v=i(r);var u=0;for(var p=0;p<r.length;p++){var x=r[p];var w=x.text;if(x.isMatch){var q=h(y,u,u+w.length,v,o);k(n,q.start,q.end)}u+=w.length}return n};var g=function(t,p,o){var n=o-d(p);while(n>0){if(p.length==0){k(p,0,a(t,o,false));return}else{var q=p[0];var v;var r;if(q.start==0){v=q.end;if(p.length>1){r=p[1].start}else{k(p,v,a(t,v+n,false));return}}else{v=0;r=q.start}var u=Math.min(r,v+n);k(p,v,u);n-=(u-v)}}};var e=function(p,x,w,n,o){if(n.length==0){return}var u=function(z,I,D,F,C){var H;var G;var E=0;var B=0;var A=0;for(;B<D.length;B++){H=D[B];G=H.text;if(F<E+G.length){A=F-E;break}E+=G.length}var y=C-F;for(;B<D.length&&y>0;B++){H=D[B];G=H.text.substr(A);A=0;if(G.length>y){G=G.substr(0,y)}if(H.isMatch){createTiddlyElement(z,"span",null,"marked",G)}else{createTiddlyText(z,G)}y-=G.length}if(C<I.length){abego.createEllipsis(z)}};if(n[0].start>0){abego.createEllipsis(p)}var q=o;for(var r=0;r<n.length&&q>0;r++){var t=n[r];var v=Math.min(t.end-t.start,q);u(p,x,w,t.start,t.start+v);q-=v}};this.render=function(p,q,o,t){if(q.length<o){o=q.length}var r=j(q,t);var n=m(r,q,o);g(q,n,o);e(p,q,r,n,o)}};(function(){function alertAndThrow(msg){alert(msg);throw msg}if(version.major<2||(version.major==2&&version.minor<1)){alertAndThrow("YourSearchPlugin requires TiddlyWiki 2.1 or newer.\n\nCheck the archive for YourSearch plugins\nsupporting older versions of TiddlyWiki.\n\nArchive: http://tiddlywiki.abego-software.de/archive")}abego.YourSearch={};var lastResults=undefined;var lastQuery=undefined;var setLastResults=function(array){lastResults=array};var getLastResults=function(){return lastResults?lastResults:[]};var getLastResultsCount=function(){return lastResults?lastResults.length:0};var matchInTitleWeight=4;var precisionInTitleWeight=10;var matchInTagsWeight=2;var getMatchCount=function(s,re){var m=s.match(re);return m?m.length:0};var standardRankFunction=function(tiddler,query){var markRE=query.getMarkRegExp();if(!markRE){return 1}var matchesInTitle=tiddler.title.match(markRE);var nMatchesInTitle=matchesInTitle?matchesInTitle.length:0;var nMatchesInTags=getMatchCount(tiddler.getTags(),markRE);var lengthOfMatchesInTitle=matchesInTitle?matchesInTitle.join("").length:0;var precisionInTitle=tiddler.title.length>0?lengthOfMatchesInTitle/tiddler.title.length:0;var rank=nMatchesInTitle*matchInTitleWeight+nMatchesInTags*matchInTagsWeight+precisionInTitle*precisionInTitleWeight+1;return rank};var findMatches=function(store,searchText,caseSensitive,useRegExp,sortField,excludeTag){lastQuery=null;var candidates=store.reverseLookup("tags",excludeTag,false);try{var defaultFields=[];if(config.options.chkSearchInTitle){defaultFields.push("title")}if(config.options.chkSearchInText){defaultFields.push("text")}if(config.options.chkSearchInTags){defaultFields.push("tags")}lastQuery=new abego.TiddlerQuery(searchText,caseSensitive,useRegExp,defaultFields,config.options.chkSearchExtendedFields)}catch(e){return[]}var results=lastQuery.filter(candidates);var rankFunction=abego.YourSearch.getRankFunction();for(var i=0;i<results.length;i++){var tiddler=results[i];var rank=rankFunction(tiddler,lastQuery);tiddler.searchRank=rank}if(!sortField){sortField="title"}var sortFunction=function(a,b){var searchRankDiff=a.searchRank-b.searchRank;if(searchRankDiff==0){if(a[sortField]==b[sortField]){return(0)}else{return(a[sortField]<b[sortField])?-1:+1}}else{return(searchRankDiff>0)?-1:+1}};results.sort(sortFunction);return results};var maxCharsInTitle=80;var maxCharsInTags=50;var maxCharsInText=250;var maxCharsInField=50;var itemsPerPageDefault=25;var itemsPerPageWithPreviewDefault=10;var yourSearchResultID="yourSearchResult";var yourSearchResultItemsID="yourSearchResultItems";var lastSearchText=null;var resultElement=null;var searchInputField=null;var searchButton=null;var lastNewTiddlerButton=null;var initStylesheet=function(){if(version.extensions.YourSearchPlugin.styleSheetInited){return}version.extensions.YourSearchPlugin.styleSheetInited=true;setStylesheet(store.getTiddlerText("YourSearchStyleSheet"),"yourSearch")};var isResultOpen=function(){return resultElement!=null&&resultElement.parentNode==document.body};var closeResult=function(){if(isResultOpen()){document.body.removeChild(resultElement)}};var closeResultAndDisplayTiddler=function(e){closeResult();var title=this.getAttribute("tiddlyLink");if(title){var withHilite=this.getAttribute("withHilite");var oldHighlightHack=highlightHack;if(withHilite&&withHilite=="true"&&lastQuery){highlightHack=lastQuery.getMarkRegExp()}story.displayTiddler(this,title);highlightHack=oldHighlightHack}return(false)};var adjustResultPositionAndSize=function(){if(!searchInputField){return}var root=searchInputField;var rootLeft=findPosX(root);var rootTop=findPosY(root);var rootHeight=root.offsetHeight;var popupLeft=rootLeft;var popupTop=rootTop+rootHeight;var winWidth=findWindowWidth();if(winWidth<resultElement.offsetWidth){resultElement.style.width=(winWidth-100)+"px";winWidth=findWindowWidth()}var popupWidth=resultElement.offsetWidth;if(popupLeft+popupWidth>winWidth){popupLeft=winWidth-popupWidth-30}if(popupLeft<0){popupLeft=0}resultElement.style.left=popupLeft+"px";resultElement.style.top=popupTop+"px";resultElement.style.display="block"};var scrollVisible=function(){if(resultElement){window.scrollTo(0,ensureVisible(resultElement))}if(searchInputField){window.scrollTo(0,ensureVisible(searchInputField))}};var ensureResultIsDisplayedNicely=function(){adjustResultPositionAndSize();scrollVisible()};var indexInPage=undefined;var currentTiddler=undefined;var pager=new abego.PageWiseRenderer();var MyItemRenderer=function(parent){this.itemHtml=store.getTiddlerText("YourSearchItemTemplate");if(!this.itemHtml){alertAndThrow("YourSearchItemTemplate not found")}this.place=document.getElementById(yourSearchResultItemsID);if(!this.place){this.place=createTiddlyElement(parent,"div",yourSearchResultItemsID)}};merge(MyItemRenderer.prototype,{render:function(pager,object,index,indexOnPage){indexInPage=indexOnPage;currentTiddler=object;var item=createTiddlyElement(this.place,"div",null,"yourSearchItem");item.innerHTML=this.itemHtml;applyHtmlMacros(item,null);refreshElements(item,null)},endRendering:function(pager){currentTiddler=null}});var refreshResult=function(){if(!resultElement||!searchInputField){return}var html=store.getTiddlerText("YourSearchResultTemplate");if(!html){html="<b>Tiddler YourSearchResultTemplate not found</b>"}resultElement.innerHTML=html;applyHtmlMacros(resultElement,null);refreshElements(resultElement,null);var itemRenderer=new MyItemRenderer(resultElement);pager.renderPage(itemRenderer);ensureResultIsDisplayedNicely()};pager.getItemsPerPage=function(){var n=(config.options.chkPreviewText)?abego.toInt(config.options.txtItemsPerPageWithPreview,itemsPerPageWithPreviewDefault):abego.toInt(config.options.txtItemsPerPage,itemsPerPageDefault);return(n>0)?n:1};pager.onPageChanged=function(){refreshResult()};var reopenResultIfApplicable=function(){if(searchInputField==null||!config.options.chkUseYourSearch){return}if((searchInputField.value==lastSearchText)&&lastSearchText&&!isResultOpen()){if(resultElement&&(resultElement.parentNode!=document.body)){document.body.appendChild(resultElement);ensureResultIsDisplayedNicely()}else{abego.YourSearch.onShowResult(true)}}};var invalidateResult=function(){closeResult();resultElement=null;lastSearchText=null};var isDescendantOrSelf=function(self,e){while(e!=null){if(self==e){return true}e=e.parentNode}return false};var onDocumentClick=function(e){if(e.target==searchInputField){return}if(e.target==searchButton){return}if(resultElement&&isDescendantOrSelf(resultElement,e.target)){return}closeResult()};var onDocumentKeyup=function(e){if(e.keyCode==27){closeResult()}};addEvent(document,"click",onDocumentClick);addEvent(document,"keyup",onDocumentKeyup);var myStorySearch=function(text,useCaseSensitive,useRegExp){lastSearchText=text;setLastResults(findMatches(store,text,useCaseSensitive,useRegExp,"title","excludeSearch"));abego.YourSearch.onShowResult()};var myMacroSearchHandler=function(place,macroName,params,wikifier,paramString,tiddler){initStylesheet();lastSearchText="";var searchTimeout=null;var doSearch=function(txt){if(config.options.chkUseYourSearch){myStorySearch(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch)}else{story.search(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch)}lastSearchText=txt.value};var clickHandler=function(e){doSearch(searchInputField);return false};var keyHandler=function(e){if(!e){e=window.event}searchInputField=this;switch(e.keyCode){case 13:if(e.ctrlKey&&lastNewTiddlerButton&&isResultOpen()){lastNewTiddlerButton.onclick.apply(lastNewTiddlerButton,[e])}else{doSearch(this)}break;case 27:if(isResultOpen()){closeResult()}else{this.value="";clearMessage()}break}if(String.fromCharCode(e.keyCode)==this.accessKey||e.altKey){reopenResultIfApplicable()}if(this.value.length<3&&searchTimeout){clearTimeout(searchTimeout)}if(this.value.length>2){if(this.value!=lastSearchText){if(!config.options.chkUseYourSearch||config.options.chkSearchAsYouType){if(searchTimeout){clearTimeout(searchTimeout)}var txt=this;searchTimeout=setTimeout(function(){doSearch(txt)},500)}}else{if(searchTimeout){clearTimeout(searchTimeout)}}}if(this.value.length==0){closeResult()}};var focusHandler=function(e){this.select();clearMessage();reopenResultIfApplicable()};var args=paramString.parseParams("list",null,true);var buttonAtRight=getFlag(args,"buttonAtRight");var sizeTextbox=getParam(args,"sizeTextbox",this.sizeTextbox);var txt=createTiddlyElement(null,"input",null,"txtOptionInput searchField",null);if(params[0]){txt.value=params[0]}txt.onkeyup=keyHandler;txt.onfocus=focusHandler;txt.setAttribute("size",sizeTextbox);txt.setAttribute("accessKey",this.accessKey);txt.setAttribute("autocomplete","off");if(config.browser.isSafari){txt.setAttribute("type","search");txt.setAttribute("results","5")}else{if(!config.browser.isIE){txt.setAttribute("type","text")}}var btn=createTiddlyButton(null,this.label,this.prompt,clickHandler);if(place){if(!buttonAtRight){place.appendChild(btn)}place.appendChild(txt);if(buttonAtRight){place.appendChild(btn)}}searchInputField=txt;searchButton=btn};var openAllFoundTiddlers=function(){closeResult();var results=getLastResults();var n=results.length;if(n){var titles=[];for(var i=0;i<n;i++){titles.push(results[i].title)}story.displayTiddlers(null,titles)}};var createOptionWithRefresh=function(place,optionParams,wikifier,tiddler){invokeMacro(place,"option",optionParams,wikifier,tiddler);var elem=place.lastChild;var oldOnClick=elem.onclick;elem.onclick=function(e){var result=oldOnClick.apply(this,arguments);refreshResult();return result};return elem};var removeTextDecoration=function(s){var removeThis=["''","{{{","}}}","//","<<<","/***","***/"];var reText="";for(var i=0;i<removeThis.length;i++){if(i!=0){reText+="|"}reText+="("+removeThis[i].escapeRegExp()+")"}return s.replace(new RegExp(reText,"mg"),"").trim()};var getShortCutNumber=function(){var i=indexInPage;return(i>=0&&i<=9)?(i<9?(i+1):0):-1};var limitedTextRenderer=new abego.LimitedTextRenderer();var renderLimitedText=function(place,s,maxLen){limitedTextRenderer.render(place,s,maxLen,lastQuery.getMarkRegExp())};var oldTiddlyWikiSaveTiddler=TiddlyWiki.prototype.saveTiddler;TiddlyWiki.prototype.saveTiddler=function(title,newTitle,newBody,modifier,modified,tags,fields){oldTiddlyWikiSaveTiddler.apply(this,arguments);invalidateResult()};var oldTiddlyWikiRemoveTiddler=TiddlyWiki.prototype.removeTiddler;TiddlyWiki.prototype.removeTiddler=function(title){oldTiddlyWikiRemoveTiddler.apply(this,arguments);invalidateResult()};config.macros.yourSearch={label:"yourSearch",prompt:"Gives access to the current/last YourSearch result",handler:function(place,macroName,params,wikifier,paramString,tiddler){if(params.length==0){return}var name=params[0];var func=config.macros.yourSearch.funcs[name];if(func){func(place,macroName,params,wikifier,paramString,tiddler)}},tests:{"true":function(){return true},"false":function(){return false},found:function(){return getLastResultsCount()>0},previewText:function(){return config.options.chkPreviewText}},funcs:{itemRange:function(place){if(getLastResultsCount()){var lastIndex=pager.getLastIndexOnPage();var s="%0 - %1".format([pager.getFirstIndexOnPage()+1,lastIndex+1]);createTiddlyText(place,s)}},count:function(place){createTiddlyText(place,getLastResultsCount().toString())},query:function(place){if(lastQuery){createTiddlyText(place,lastQuery.toString())}},version:function(place){var t="YourSearch %0.%1.%2".format([version.extensions.YourSearchPlugin.major,version.extensions.YourSearchPlugin.minor,version.extensions.YourSearchPlugin.revision]);var e=createTiddlyElement(place,"a");e.setAttribute("href","http://tiddlywiki.abego-software.de/#YourSearchPlugin");e.innerHTML='<font color="black" face="Arial, Helvetica, sans-serif">'+t+"<font>"},copyright:function(place){var e=createTiddlyElement(place,"a");e.setAttribute("href","http://www.abego-software.de");e.innerHTML='<font color="black" face="Arial, Helvetica, sans-serif">&copy; 2005-2008 <b><font color="red">abego</font></b> Software<font>'},newTiddlerButton:function(place){if(lastQuery){var r=abego.parseNewTiddlerCommandLine(lastQuery.getQueryText());var btn=config.macros.newTiddler.createNewTiddlerButton(place,r.title,r.params,"new tiddler","Create a new tiddler based on search text. (Shortcut: Ctrl-Enter; Separators: '.', '#')",null,"text");var oldOnClick=btn.onclick;btn.onclick=function(){closeResult();oldOnClick.apply(this,arguments)};lastNewTiddlerButton=btn}},linkButton:function(place,macroName,params,wikifier,paramString,tiddler){if(params<2){return}var tiddlyLink=params[1];var text=params<3?tiddlyLink:params[2];var tooltip=params<4?text:params[3];var accessKey=params<5?null:params[4];var btn=createTiddlyButton(place,text,tooltip,closeResultAndDisplayTiddler,null,null,accessKey);btn.setAttribute("tiddlyLink",tiddlyLink)},closeButton:function(place,macroName,params,wikifier,paramString,tiddler){createTiddlyButton(place,"close","Close the Search Results (Shortcut: ESC)",closeResult)},openAllButton:function(place,macroName,params,wikifier,paramString,tiddler){var n=getLastResultsCount();if(n==0){return}var title=n==1?"open tiddler":"open all %0 tiddlers".format([n]);var button=createTiddlyButton(place,title,"Open all found tiddlers (Shortcut: Alt-O)",openAllFoundTiddlers);button.setAttribute("accessKey","O")},naviBar:function(place,macroName,params,wikifier,paramString,tiddler){pager.addPageNavigation(place)},"if":function(place,macroName,params,wikifier,paramString,tiddler){if(params.length<2){return}var testName=params[1];var negate=(testName=="not");if(negate){if(params.length<3){return}testName=params[2]}var test=config.macros.yourSearch.tests[testName];var showIt=false;try{if(test){showIt=test(place,macroName,params,wikifier,paramString,tiddler)!=negate}else{showIt=(!eval(testName))==negate}}catch(ex){}if(!showIt){place.style.display="none"}},chkPreviewText:function(place,macroName,params,wikifier,paramString,tiddler){var elem=createOptionWithRefresh(place,"chkPreviewText",wikifier,tiddler);elem.setAttribute("accessKey","P");elem.title="Show text preview of found tiddlers (Shortcut: Alt-P)";return elem}}};config.macros.foundTiddler={label:"foundTiddler",prompt:"Provides information on the tiddler currently processed on the YourSearch result page",handler:function(place,macroName,params,wikifier,paramString,tiddler){var name=params[0];var func=config.macros.foundTiddler.funcs[name];if(func){func(place,macroName,params,wikifier,paramString,tiddler)}},funcs:{title:function(place,macroName,params,wikifier,paramString,tiddler){if(!currentTiddler){return}var shortcutNumber=getShortCutNumber();var tooltip=shortcutNumber>=0?"Open tiddler (Shortcut: Alt-%0)".format([shortcutNumber.toString()]):"Open tiddler";var btn=createTiddlyButton(place,null,tooltip,closeResultAndDisplayTiddler,null);btn.setAttribute("tiddlyLink",currentTiddler.title);btn.setAttribute("withHilite","true");renderLimitedText(btn,currentTiddler.title,maxCharsInTitle);if(shortcutNumber>=0){btn.setAttribute("accessKey",shortcutNumber.toString())}},tags:function(place,macroName,params,wikifier,paramString,tiddler){if(!currentTiddler){return}renderLimitedText(place,currentTiddler.getTags(),maxCharsInTags)},text:function(place,macroName,params,wikifier,paramString,tiddler){if(!currentTiddler){return}renderLimitedText(place,removeTextDecoration(currentTiddler.text),maxCharsInText)},field:function(place,macroName,params,wikifier,paramString,tiddler){if(!currentTiddler){return}var name=params[1];var len=params.length>2?abego.toInt(params[2],maxCharsInField):maxCharsInField;var v=store.getValue(currentTiddler,name);if(v){renderLimitedText(place,removeTextDecoration(v),len)}},number:function(place,macroName,params,wikifier,paramString,tiddler){var numberToDisplay=getShortCutNumber();if(numberToDisplay>=0){var text="%0)".format([numberToDisplay.toString()]);createTiddlyElement(place,"span",null,"shortcutNumber",text)}}}};var opts={chkUseYourSearch:true,chkPreviewText:true,chkSearchAsYouType:true,chkSearchInTitle:true,chkSearchInText:true,chkSearchInTags:true,chkSearchExtendedFields:true,txtItemsPerPage:itemsPerPageDefault,txtItemsPerPageWithPreview:itemsPerPageWithPreviewDefault};for(var n in opts){if(config.options[n]==undefined){config.options[n]=opts[n]}}config.shadowTiddlers.AdvancedOptions+="\n<<option chkUseYourSearch>> Use 'Your Search' //([[more options|YourSearch Options]]) ([[help|YourSearch Help]])// ";config.shadowTiddlers["YourSearch Help"]="!Field Search\nWith the Field Search you can restrict your search to certain fields of a tiddler, e.g only search the tags or only the titles. The general form is //fieldname//'':''//textToSearch// (e.g. {{{title:intro}}}). In addition one-character shortcuts are also supported for the standard fields {{{title}}}, {{{text}}} and {{{tags}}}:\n|!What you want|!What you type|!Example|\n|Search ''titles only''|start word with ''!''|{{{!jonny}}} (shortcut for {{{title:jonny}}})|\n|Search ''contents/text only''|start word with ''%''|{{{%football}}} (shortcut for {{{text:football}}})|\n|Search ''tags only''|start word with ''#''|{{{#Plugin}}} (shortcut for {{{tags:Plugin}}})|\n\nUsing this feature you may also search the extended fields (\"Metadata\") introduced with TiddlyWiki 2.1, e.g. use {{{priority:1}}} to find all tiddlers with the priority field set to \"1\".\n\nYou may search a word in more than one field. E.g. {{{!#Plugin}}} (or {{{title:tags:Plugin}}} in the \"long form\") finds tiddlers containing \"Plugin\" either in the title or in the tags (but does not look for \"Plugin\" in the text). \n\n!Boolean Search\nThe Boolean Search is useful when searching for multiple words.\n|!What you want|!What you type|!Example|\n|''All words'' must exist|List of words|{{{jonny jeremy}}} (or {{{jonny and jeremy}}})|\n|''At least one word'' must exist|Separate words by ''or''|{{{jonny or jeremy}}}|\n|A word ''must not exist''|Start word with ''-''|{{{-jonny}}} (or {{{not jonny}}})|\n\n''Note:'' When you specify two words, separated with a space, YourSearch finds all tiddlers that contain both words, but not necessarily next to each other. If you want to find a sequence of word, e.g. '{{{John Brown}}}', you need to put the words into quotes. I.e. you type: {{{\"john brown\"}}}.\n\nUsing parenthesis you may change the default \"left to right\" evaluation of the boolean search. E.g. {{{not (jonny or jeremy)}}} finds all tiddlers that contain neither \"jonny\" nor \"jeremy. In contrast to this {{{not jonny or jeremy}}} (i.e. without parenthesis) finds all tiddlers that either don't contain \"jonny\" or that contain \"jeremy\".\n\n!'Exact Word' Search\nBy default a search result all matches that 'contain' the searched text. E.g. if you search for {{{Task}}} you will get all tiddlers containing 'Task', but also '~CompletedTask', '~TaskForce' etc.\n\nIf you only want to get the tiddlers that contain 'exactly the word' you need to prefix it with a '='. E.g. typing '=Task' will find the tiddlers that contain the word 'Task', ignoring words that just contain 'Task' as a substring.\n\n!~CaseSensitiveSearch and ~RegExpSearch\nThe standard search options ~CaseSensitiveSearch and ~RegExpSearch are fully supported by YourSearch. However when ''~RegExpSearch'' is on Filtered and Boolean Search are disabled.\n\nIn addition you may do a \"regular expression\" search even with the ''~RegExpSearch'' set to false by directly entering the regular expression into the search field, framed with {{{/.../}}}. \n\nExample: {{{/m[ae][iy]er/}}} will find all tiddlers that contain either \"maier\", \"mayer\", \"meier\" or \"meyer\".\n\n!~JavaScript Expression Filtering\nIf you are familiar with JavaScript programming and know some TiddlyWiki internals you may also use JavaScript expression for the search. Just enter a JavaScript boolean expression into the search field, framed with {{{ { ... } }}}. In the code refer to the variable tiddler and evaluate to {{{true}}} when the given tiddler should be included in the result. \n\nExample: {{{ { tiddler.modified > new Date(\"Jul 4, 2005\")} }}} returns all tiddler modified after July 4th, 2005.\n\n!Combined Search\nYou are free to combine the various search options. \n\n''Examples''\n|!What you type|!Result|\n|{{{!jonny !jeremy -%football}}}|all tiddlers with both {{{jonny}}} and {{{jeremy}}} in its titles, but no {{{football}}} in content.|\n|{{{#=Task}}}|All tiddlers tagged with 'Task' (the exact word). Tags named '~CompletedTask', '~TaskForce' etc. are not considered.|\n\n!Access Keys\nYou are encouraged to use the access keys (also called \"shortcut\" keys) for the most frequently used operations. For quick reference these shortcuts are also mentioned in the tooltip for the various buttons etc.\n\n|!Key|!Operation|\n|{{{Alt-F}}}|''The most important keystroke'': It moves the cursor to the search input field so you can directly start typing your query. Pressing {{{Alt-F}}} will also display the previous search result. This way you can quickly display multiple tiddlers using \"Press {{{Alt-F}}}. Select tiddler.\" sequences.|\n|{{{ESC}}}|Closes the [[YourSearch Result]]. When the [[YourSearch Result]] is already closed and the cursor is in the search input field the field's content is cleared so you start a new query.|\n|{{{Alt-1}}}, {{{Alt-2}}},... |Pressing these keys opens the first, second etc. tiddler from the result list.|\n|{{{Alt-O}}}|Opens all found tiddlers.|\n|{{{Alt-P}}}|Toggles the 'Preview Text' mode.|\n|{{{Alt-'<'}}}, {{{Alt-'>'}}}|Displays the previous or next page in the [[YourSearch Result]].|\n|{{{Return}}}|When you have turned off the 'as you type' search mode pressing the {{{Return}}} key actually starts the search (as does pressing the 'search' button).|\n\n//If some of these shortcuts don't work for you check your browser if you have other extensions installed that already \"use\" these shortcuts.//";config.shadowTiddlers["YourSearch Options"]="|>|!YourSearch Options|\n|>|<<option chkUseYourSearch>> Use 'Your Search'|\n|!|<<option chkPreviewText>> Show Text Preview|\n|!|<<option chkSearchAsYouType>> 'Search As You Type' Mode (No RETURN required to start search)|\n|!|Default Search Filter:<<option chkSearchInTitle>>Title ('!')     <<option chkSearchInText>>Text ('%')     <<option chkSearchInTags>>Tags ('#')    <<option chkSearchExtendedFields>>Extended Fields<html><br><font size=\"-2\">The fields of a tiddlers that are searched when you don't explicitly specify a filter in the search text <br>(Explictly specify fields using one or more '!', '%', '#' or 'fieldname:' prefix before the word/text to find).</font></html>|\n|!|Number of items on search result page: <<option txtItemsPerPage>>|\n|!|Number of items on search result page with preview text: <<option txtItemsPerPageWithPreview>>|\n";config.shadowTiddlers.YourSearchStyleSheet="/***\n!~YourSearchResult Stylesheet\n***/\n/*{{{*/\n.yourSearchResult {\n\tposition: absolute;\n\twidth: 800px;\n\n\tpadding: 0.2em;\n\tlist-style: none;\n\tmargin: 0;\n\n\tbackground: #ffd;\n\tborder: 1px solid DarkGray;\n}\n\n/*}}}*/\n/***\n!!Summary Section\n***/\n/*{{{*/\n.yourSearchResult .summary {\n\tborder-bottom-width: thin;\n\tborder-bottom-style: solid;\n\tborder-bottom-color: #999999;\n\tpadding-bottom: 4px;\n}\n\n.yourSearchRange, .yourSearchCount, .yourSearchQuery   {\n\tfont-weight: bold;\n}\n\n.yourSearchResult .summary .button {\n\tfont-size: 10px;\n\n\tpadding-left: 0.3em;\n\tpadding-right: 0.3em;\n}\n\n.yourSearchResult .summary .chkBoxLabel {\n\tfont-size: 10px;\n\n\tpadding-right: 0.3em;\n}\n\n/*}}}*/\n/***\n!!Items Area\n***/\n/*{{{*/\n.yourSearchResult .marked {\n\tbackground: none;\n\tfont-weight: bold;\n}\n\n.yourSearchItem {\n\tmargin-top: 2px;\n}\n\n.yourSearchNumber {\n\tcolor: #808080;\n}\n\n\n.yourSearchTags {\n\tcolor: #008000;\n}\n\n.yourSearchText {\n\tcolor: #808080;\n\tmargin-bottom: 6px;\n}\n\n/*}}}*/\n/***\n!!Footer\n***/\n/*{{{*/\n.yourSearchFooter {\n\tmargin-top: 8px;\n\tborder-top-width: thin;\n\tborder-top-style: solid;\n\tborder-top-color: #999999;\n}\n\n.yourSearchFooter a:hover{\n\tbackground: none;\n\tcolor: none;\n}\n/*}}}*/\n/***\n!!Navigation Bar\n***/\n/*{{{*/\n.yourSearchNaviBar a {\n\tfont-size: 16px;\n\tmargin-left: 4px;\n\tmargin-right: 4px;\n\tcolor: black;\n\ttext-decoration: underline;\n}\n\n.yourSearchNaviBar a:hover {\n\tbackground-color: none;\n}\n\n.yourSearchNaviBar .prev {\n\tfont-weight: bold;\n\tcolor: blue;\n}\n\n.yourSearchNaviBar .currentPage {\n\tcolor: #FF0000;\n\tfont-weight: bold;\n\ttext-decoration: none;\n}\n\n.yourSearchNaviBar .next {\n\tfont-weight: bold;\n\tcolor: blue;\n}\n/*}}}*/\n";config.shadowTiddlers.YourSearchResultTemplate='<!--\n{{{\n-->\n<span macro="yourSearch if found">\n<!-- The Summary Header ============================================ -->\n<table class="summary" border="0" width="100%" cellspacing="0" cellpadding="0"><tbody>\n  <tr>\n\t<td align="left">\n\t\tYourSearch Result <span class="yourSearchRange" macro="yourSearch itemRange"></span>\n\t\t&nbsp;of&nbsp;<span class="yourSearchCount" macro="yourSearch count"></span>\n\t\tfor&nbsp;<span class="yourSearchQuery" macro="yourSearch query"></span>\n\t</td>\n\t<td class="yourSearchButtons" align="right">\n\t\t<span macro="yourSearch chkPreviewText"></span><span class="chkBoxLabel">preview text</span>\n\t\t<span macro="yourSearch newTiddlerButton"></span>\n\t\t<span macro="yourSearch openAllButton"></span>\n\t\t<span macro="yourSearch linkButton \'YourSearch Options\' options \'Configure YourSearch\'"></span>\n\t\t<span macro="yourSearch linkButton \'YourSearch Help\' help \'Get help how to use YourSearch\'"></span>\n\t\t<span macro="yourSearch closeButton"></span>\n\t</td>\n  </tr>\n</tbody></table>\n\n<!-- The List of Found Tiddlers ============================================ -->\n<div id="yourSearchResultItems" itemsPerPage="25" itemsPerPageWithPreview="10"></div>\n\n<!-- The Footer (with the Navigation) ============================================ -->\n<table class="yourSearchFooter" border="0" width="100%" cellspacing="0" cellpadding="0"><tbody>\n  <tr>\n\t<td align="left">\n\t\tResult page: <span class="yourSearchNaviBar" macro="yourSearch naviBar"></span>\n\t</td>\n\t<td align="right"><span macro="yourSearch version"></span>, <span macro="yourSearch copyright"></span>\n\t</td>\n  </tr>\n</tbody></table>\n<!-- end of the \'tiddlers found\' case =========================================== -->\n</span>\n\n\n<!-- The "No tiddlers found" case =========================================== -->\n<span macro="yourSearch if not found">\n<table class="summary" border="0" width="100%" cellspacing="0" cellpadding="0"><tbody>\n  <tr>\n\t<td align="left">\n\t\tYourSearch Result: No tiddlers found for <span class="yourSearchQuery" macro="yourSearch query"></span>.\n\t</td>\n\t<td class="yourSearchButtons" align="right">\n\t\t<span macro="yourSearch newTiddlerButton"></span>\n\t\t<span macro="yourSearch linkButton \'YourSearch Options\' options \'Configure YourSearch\'"></span>\n\t\t<span macro="yourSearch linkButton \'YourSearch Help\' help \'Get help how to use YourSearch\'"></span>\n\t\t<span macro="yourSearch closeButton"></span>\n\t</td>\n  </tr>\n</tbody></table>\n</span>\n\n\n<!--\n}}}\n-->\n';config.shadowTiddlers.YourSearchItemTemplate="<!--\n{{{\n-->\n<span class='yourSearchNumber' macro='foundTiddler number'></span>\n<span class='yourSearchTitle' macro='foundTiddler title'/></span>&nbsp;-&nbsp;\n<span class='yourSearchTags' macro='foundTiddler field tags 50'/></span>\n<span macro=\"yourSearch if previewText\"><div class='yourSearchText' macro='foundTiddler field text 250'/></div></span>\n<!--\n}}}\n-->";config.shadowTiddlers.YourSearch="<<tiddler [[YourSearch Help]]>>";config.shadowTiddlers["YourSearch Result"]="The popup-like window displaying the result of a YourSearch query.";config.macros.search.handler=myMacroSearchHandler;var checkForOtherHijacker=function(){if(config.macros.search.handler!=myMacroSearchHandler){alert("Message from YourSearchPlugin:\n\n\nAnother plugin has disabled the 'Your Search' features.\n\n\nYou may disable the other plugin or change the load order of \nthe plugins (by changing the names of the tiddlers)\nto enable the 'Your Search' features.")}};setTimeout(checkForOtherHijacker,5000);abego.YourSearch.getStandardRankFunction=function(){return standardRankFunction};abego.YourSearch.getRankFunction=function(){return abego.YourSearch.getStandardRankFunction()};abego.YourSearch.getCurrentTiddler=function(){return currentTiddler};abego.YourSearch.closeResult=function(){closeResult()};abego.YourSearch.getFoundTiddlers=function(){return lastResults};abego.YourSearch.getQuery=function(){return lastQuery};abego.YourSearch.onShowResult=function(useOldResult){highlightHack=lastQuery?lastQuery.getMarkRegExp():null;if(!useOldResult){pager.setItems(getLastResults())}if(!resultElement){resultElement=createTiddlyElement(document.body,"div",yourSearchResultID,"yourSearchResult")}else{if(resultElement.parentNode!=document.body){document.body.appendChild(resultElement)}}refreshResult();highlightHack=null}})()};
//%/
<data>{"abstract":"[[Zauberstab]], in jedem Seminar gibt es Situationen und Momente, in denen die Gruppe festgefahren, blockiert oder ausgelaugt erscheint. Eine Möglichkeit, aus diesem //Loch// wieder herauszukommen, ist der [[Zauberstab]].  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.zauberer-kabarettist.de/bilder%20logos/bilder/zauberstab-am-mund.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Zauberstab","abstract") </script>

!Zauberstab
<script> return "<<tiddler [[Zauberstab##Overview]]>>" </script> 
In jedem Seminar gibt es Situationen und Momente, in denen die Gruppe festgefahren, blockiert oder ausgelaugt erscheint. Eine Möglichkeit, aus diesem "Loch" wieder herauszukommen, ist der "Zauberstab".

!Objectives
* Energize
* Energie aktivitieren
* Eigenen Körper wahrnehmen

!Timing
5min

!Audience
Group

!Materials
* Zauberstab

!Procedure
# Hierzu bittet der Trainer die Teilnehmer, dass jeder die Körperhaltung beibehält, die er genau in diesem Moment einnimmt. Er wird also vom Zauberstab praktisch "eingefroren". 
# Dann bittet der Trainer darum zu beschreiben, was jeder Teilnehmer in seiner derzeitigen Körperhaltung über seinen momentanen seelischen Zustand erkennt. 
# Mitunter versuchen Teilnehmer, noch schnell ihre Haltung zu verändern, um mehr Interesse oder Gelassenheit zu signalisieren, was natürlich auch Anlass zu Beschreibungen gibt.

!Debriefing
Allein die Aufforderung, sich mit der eigenen Stimmung und Haltung auseinander zu setzen, genügt schon, um frischen Schwung ins Seminar zu bringen. Der Trainer kann noch mehr tun, indem er die Teilnehmer bittet, nun eine Körperhaltung einzunehmen, die dem Moment angemessener erscheint. In der Regel wird sich dann gedehnt und gestreckt, der Tiefpunkt ist damit meist überwunden.

!Quelle
[[Jörg Fengler: Feedback geben: Strategien und Übungen, Beltz 2002, S. 54-55| http://www.amazon.de/gp/product/3407364717?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3407364717]]

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/Zauberstab+%28jt%29.html]]
<data>{"abstract":"Wir glauben immer noch, dass unsere [[Wahrnehmung]] recht zuverlässig funktioniert - und wundern uns dann über die merkwürdigsten Missverständnisse. Ein simpler [[Zaubertrick]] zeigt uns die Schwächen auf."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.designerspiele.de/basteln_stadt/einwohner_haeuser/haus_hagen/zaubertricks/zaubertricks_karten/7_zaubertricks.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Zaubertrick","abstract") </script>

!Zaubertrick
<script> return "<<tiddler [[Zaubertrick##Overview]]>>" </script> 
Der Trick ist denkbar einfach, das ~Aha-Erlebnis garantiert. Alles was man benötigt ist ein einfaches Kartenspiel - das allerdings vorbereitet sein muss. Und zwar so, dass die obersten vier Karten Herz 8, Karo 7, Herz 7 und Karo 8 sind. Natürlich sind die Karten für die Teilnehmer nicht sichtbar. 

!Materials
* Kartenspiel - obersten vier Karten Herz 8, Karo 7, Herz 7 und Karo 8 für Teilnehmer nicht sichtbar

!Objectives
* Wahrnehmungstäuschung

!Timing
5min

!Audience
Group / Individual

!Procedure
# Nun kündigt der Trainer einen Zaubertrick an und bittet die Teilnehmer genau zu beobachten, wie er das anstellt. Es gilt dabei Sprechverbot. 
# Nun darf ein Teilnehmer die beiden obersten Karten vom Stapel nehmen und sie den anderen zeigen. Es sind Herz 8 und Karo 7. 
# Dann steckt der Teilnehmer die Karten irgendwo an verschiedenen Stellen in den Stapel. 
# Nun klopft der Trainer auf den Stapel und deckt nach einer kurzen Pause die beiden obersten Karten auf, nämlich Herz 7 und Karo 8.

!Debriefing
In der Regel ist die Verblüffung groß, weil jeder glaubt, die gleichen Karten zu erkennen, die vorher gezeigt wurden - obwohl es andere sind. Ein schönes Beispiel dafür, wie schnell Missverständnisse entstehen und wie wichtig es ist, sich bei [[Informationen|Information]] rückzuversichern, ob man auch alles richtig wahrgenommen hat.


!Quelle
Axel Rachow: Spielbares, managerSeminare 5/2000, S.50, Spiel von Günther Beyer)

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Der+Zaubertrick+%28jt%29&db=3]]
<data>{"abstract":"[[Zielorientierte Aktive Kooperative  Kleingruppenarbeit]], eine feine kleine Strukturierungshilfe zur Arbeit in Kleingruppen, die viele Möglichkeiten der Bearbeitung offen lässt und dabei ein zielgerichtetes Arbeiten fördert."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.icf-bern.ch/uploads/pics/Kleingroup.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Zielorientierte Aktive Kooperative  Kleingruppenarbeit","abstract") </script>

!Zielorientierte Aktive Kooperative  Kleingruppenarbeit
<script> return "<<tiddler [[Zielorientierte Aktive Kooperative  Kleingruppenarbeit##Overview]]>>" </script> 
Eine feine kleine Strukturierungshilfe zur Arbeit in Kleingruppen, die viele Möglichkeiten der Bearbeitung offen lässt und dabei ein zielgerichtetes Arbeiten fördert. Zugleich sorgt sie dafür, dass am Ende der Bearbeitung ein präsentationsfähiges Ergebnis vorliegt.

!Objectives

!Timing

!Audience
Group

!Materials
* 

!Procedure
Den Teilnehmern wird zunächst die Struktur als ~Powerpoint-Präsentation oder als vorbereitetes Flipchart vorgestellt.

{{center{<<wikify [img(%0,%1)[%2|%3]] auto auto title http://www.mwonline.de/Images/ZAKK.jpg>>}}}

In das Feld VN wird der Vor- und Zuname des für das Thema Verantwortlichen eingetragen, in die Mitte das Ziel, das die Gruppe verfolgt. Unter Output stehen die angestrebten, möglichst überprüfbaren Ergebnisse bzw. der gewünschte Nutzen, im Feld "Ressourcen" werden die benötigten Mittel aufgeführt, unter "Input" die Ursachen für das zu behandelnde [[Problem]] und schließlich unter "Schritte", welche Maßnahmen zum gewünschten Ergebnis führen sollen.

Jede Gruppe steht um ein Flipchart, auf dem diese Struktur aufgemalt wird. Ihnen stehen ~Post-its der Größe 12x7cm zur Verfügung, die in die jeweiligen Felder geklebt werden. Zunächst einigt sich die Gruppe auf einen Verantwortlichen und auf die Formulierung des Ziels. Dann beginnt die Gruppenarbeit, wobei alle Teilnehmer ihre Beiträge auf ~Post-its schreiben und in das jeweilige Feld heften.

Die Methodik lässt sich auch in Großgruppen einsetzen. Dann stehen im Raum verteilt eine Vielzahl an Flipcharts mit unterschiedlichen Themen. Die Teilnehmer wandern umher und steuern überall mit Post-its ihre [[Ideen|Ideenmanagement]] bei.

In das Feld VN wird der Vor- und Zuname des für das Thema Verantwortlichen eingetragen, in die Mitte das Ziel, das die Gruppe verfolgt. Unter Output stehen die angestrebten, möglichst überprüfbaren Ergebnisse bzw. der gewünschte Nutzen, im Feld "Ressourcen" werden die benötigten Mittel aufgeführt, unter "Input" die Ursachen für das zu behandelnde [[Problem]] und schließlich unter "Schritte", welche Maßnahmen zum gewünschten Ergebnis führen sollen.

Jede Gruppe steht um ein Flipchart, auf dem diese Struktur aufgemalt wird. Ihnen stehen Post-its der Größe 12x7cm zur Verfügung, die in die jeweiligen Felder geklebt werden. Zunächst einigt sich die Gruppe auf einen Verantwortlichen und auf die Formulierung des Ziels. Dann beginnt die Gruppenarbeit, wobei alle Teilnehmer ihre Beiträge auf Post-its schreiben und in das jeweilige Feld heften.

Die Methodik lässt sich auch in Großgruppen einsetzen. Dann stehen im Raum verteilt eine Vielzahl an Flipcharts mit unterschiedlichen Themen. Die Teilnehmer wandern umher und steuern überall mit Post-its ihre [[Ideen|Ideenmanagement]] bei.

!Debriefing

!Quelle
[[Bruch, W. und Müller, R.: Wirkungsvolle Tagungen und Großgruppen, Gabal 2007, S. 394-398| http://www.amazon.de/gp/product/389749678X?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=389749678X]], von Walter Bruch basierend auf dem ~Reateaming-Ansatz von Ben Furman


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbausteine]<<tiddlerList tags:"training,-newTemplate" header:"Übungen Seminarbausteine">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://www.mwonline.de/online/themen/3/Ideenfabrik/ZAKK+%28jt%29.html]]
/***
|Name|ZoomTextPlugin|
|Source|http://www.TiddlyTools.com/#ZoomTextPlugin|
|Version|2.1.0|
|Author|[[EricShulman]]|
|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.2|
|Type|plugin|
|Requires||
|Overrides||
|Description|display text with timer-based font animation to automatically grow/shrink text|

!!!!!Usage
<<<
{{{
<<zoomText "text to display" wait start stop duration cycles pause>>
or
<<zoomText @TiddlerName wait start stop duration cycles pause>>
}}}
<<<
!!!!!Configuration
<<<
<<option chkAnimate>> enable all animation
<<option chkZoomText>> enable text animation
<<<
!!!!!Examples
<<<
{{{
<<zoomText "text to display" 0 0 300 2500 2 1000>>
}}}
<<zoomText "text to display" 0 0 300 2500 2 1000>>
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
ZoomTextPlugin

//''Note: this plugin requires TiddlyWiki 2.2 or above''//
<<<
!!!!!Revision History
<<<
2007.08.03 [2.1.0] converted from inline script
2007.07.16 [2.0.0] added TW2.2-compatible Morpher handling for smoother animation on slower systems
2007.01.01 [1.0.0] initial release
<<<
!!!!!Credits
<<<
This feature was developed by Eric L Shulman / ELS Design Studios
<<<
!!!!!Code
***/
//{{{
version.extensions.zoomText= {major: 2, minor: 1, revision: 0, date: new Date(2007,8,3)};

if (config.options.chkZoomText==undefined) config.options.chkZoomText=true;

config.macros.zoomText = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var id=(new Date()).convertToYYYYMMDDHHMMSSMMM()+Math.random().toString(); // unique ID
		var content=params[0]; if (content.substr(0,1)=="@") content=store.getTiddlerText(content.substr(1));
		var target=createTiddlyElement(place,"span",id);
		target.style.lineHeight="100%";
		wikify(content,target);
		target.Wait=params[1]?parseInt(params[1]):0;
		target.Start=params[2]?parseInt(params[2]):1;
		target.Stop=params[3]?parseInt(params[3]):100;
		target.Duration=params[4]?parseInt(params[4]):config.animDuration;
		target.Cycle=params[5]?parseInt(params[5]):0
		target.Pause=params[6]?parseInt(params[6]):0;
		// if not animating and even # of cycles, apply ending size to text, otherwise, apply starting size
		var animate=config.options.chkAnimate && config.options.chkZoomText;
		if (!animate && !(target.Cycle % 2)) target.Start=target.Stop;
		target.style.fontSize=target.Start+"%";
		target.style.display=(target.Start<=0)?"none":"inline"; // hide text if size==0 (fixes IE rendering)
		if (animate) setTimeout("config.macros.zoomText.timer('"+target.id+"')",target.Wait);		
	},
	timer: function(id) {
		var target=document.getElementById(id); if (!target) return;
		var p = [{style: 'fontSize', start: target.Start, end: target.Stop, template: '%0%'}];
		var c = function(element,properties) {
			if (element.Cycle > 0) {
	 			element.Cycle--;
				var t=element.Start; element.Start=element.Stop; element.Stop=t;
				setTimeout("config.macros.zoomText.timer('"+element.id+"')",element.Pause);
			}
			else
				if (element.Stop<=0) element.style.display="none";  // hide text if size==0 (fixes IE rendering)
		};
		target.style.display="inline"; // show initial text
		anim.startAnimating(new Morpher(target,target.Duration,p,c));
	}
};
//}}}
<data>{"abstract":"[[Zufalleinstiegstechnik]], eine einfache Kreativitätstechnik, wenn es darum geht, neue Ansätze zu einem [[Problem]] zu finden, das man schon lange hin und herwälzt. Aber auch geeignet, um zu einem ganz neuen Thema erste Einfälle zu sammeln.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 25% auto title http://www.grafhp.ch/bilder/Illustration/Redaktions_Jobs/Brain_Fair_2003.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Zufalleinstiegstechnik","abstract") </script>

!Zufalleinstiegstechnik
<script> return "<<tiddler [[Zufalleinstiegstechnik##Overview]]>>" </script> 
Eine einfache [[Kreativitätstechnik|Kreativitätstechniken]], wenn es darum geht, neue Ansätze zu einem [[Problem]] zu finden, das man schon lange hin und herwälzt. Aber auch geeignet, um zu einem ganz neuen Thema erste Einfälle zu sammeln.

Auf den ersten Blick erscheint es unsinnig, nicht bei dem [[Problem]] selbst zu beginnen, sondern völlig außerhalb. 
Aber genau das ist die Idee: Wenn unser Denken in eingefahrenen Bahnen verläuft, müssen wir es sozusagen zu einem Abzweig zwingen. 

!Objectives

!Timing

!Audience
Group / Individual


!Materials
* 

!Procedure
Der Ablauf sieht so aus:
# Als erstes benennen Sie das Thema, zu dem Sie neue [[Ideen|Ideenmanagement]] suchen.
# Sie nehmen sich ein Zufallswort. Wie Sie daran kommen, ist völlig gleichgültig. Ob Sie mit dem Finger blind auf einen Text zeigen, eine Seitenzahl des Lexikons nennen und den ersten Begriff auf der Seite wählen oder sich vom Zufallsgenerator eines ~PCs ein Wort vorschlagen lassen. Je weniger es mit dem Thema zu tun hat, desto besser.
# Nun assoziieren Sie, welche Eigenschaft bzw. welches Merkmal Sie mit dem Begriff verbinden.
# Erst dann überlegen Sie, was Sie nun mit der Assoziation in Bezug auf Ihr Thema anfangen können.
# Nun überlegen Sie sich eine neue Eigenschaft des Zufallsbegriffes usw.

Wichtig dabei ist, dass das Zufallswort auch wirklich immer per Zufall entsteht und nicht ausgesucht wurde. Dann nämlich wird es bereits eine Beziehung zum Thema haben, entsprechend werden auch kaum neue [[Ideen|Ideenmanagement]] zu erwarten sein.

!Debriefing

!Quelle
[[Nowak, Andreas: Schöpferisch mit System, Sauer-Verlag 2001, S. 24-26| http://www.amazon.de/gp/product/3793872505?ie=UTF8&tag=michaeltarnow-21&linkCode=as2&camp=1638&creative=19454&creativeASIN=3793872505]].

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kreativitaet]<<tiddlerList tags:"creativity,-newTemplate" header:"Übungen Kreativitaet">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Zufalleinstiegstechnik+%28jt%29]]
<data>{"abstract":"[[Zuhörer-Rollen verteilen]], es wird immer wieder Phasen in einem Seminar geben, in denen auch längere Vorträge stattfinden. Dabei kann man die Teilnehmer durch die Verteilung von [[Rollen|Rolle]] zu mehr Aufmerksamkeit anregen.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://www.uni-koblenz.de/organ/umzug/photos/photos_1998_11_21/V_Zuhoerer.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Zuhörer-Rollen verteilen","abstract") </script>

!~Zuhörer-Rollen verteilen
<script> return "<<tiddler [[Zuhörer-Rollen verteilen##Overview]]>>" </script> 
Kommt es vor, dass Sie als Trainer längere Passagen vortragen? 

!Objectives

!Timing

!Audience
Group

!Materials
* 

!Procedure
Nicht, wenn Sie bessere Alternativen haben. Aber wenn es denn doch mal sein muss, bietet es sich an, vorab [[Zuhörer-Rollen|Rolle]] zu verteilen: 
* eine Gruppe könnte zum Beispiel auf Dinge, die sofort umgesetzt werden können, 
* eine zweite auf jene, die vertieft werden müssen, 
* die dritte auf Argumente, denen man widersprechen kann. 

Anschließend werden die Antworten zusammengetragen und diskutiert. Die Wahrscheinlichkeit, dass Teilnehmer sich besser konzentrieren, wenn sie eine konkrete Aufgabe habe, ist hoch.

!Debriefing

!Quelle
Claudia Monnet: In sechs Schritten Teilnehmer aktivieren, Wirtschaft und Weiterbildung 7/1999, S.31-32.

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Seminarbaustein]<<tiddlerList tags:"training_module,-newTemplate" header:"Übungen Seminarbaustein">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Zuh%F6rer-Rollen+verteilen+%28jt%29]]
<data>{"abstract":"[[Zukunftsfabrik]], eine Form der [[Großgruppenkonferenz|Open Space]], die im Rahmen von [[Veränderungsprojekten|Organizational Change Project]] sehr nützliche Dienste leistet, allerdings auch einen gewissen Aufwand darstellt."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://www.jesus.ch/www/lfiles/img/33665.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Zukunftsfabrik","abstract") </script>

!Zukunftsfabrik
<script> return "<<tiddler [[Zukunftsfabrik##Overview]]>>" </script> 
Grundvoraussetzung, damit [[Veränderungsprozesse|Organizational Change Model]] gelingen, ist das Einbeziehen aller [[Mitarbeiter]]. 
Eine Möglichkeit hierzu ist die [[Zukunftsfabrik]], eine Art Workshop mit siebzig und mehr Personen über zwei Tage. 

!Objectives

!Timing

!Audience
Group

!Materials
* 

!Procedure
Der Ablauf gliedert sich in fünf Schritte:

# Die Teilnehmer blicken in Kleingruppen zurück auf die letzten zwei oder drei Jahrzehnte des Unternehmens, Erinnerungen werden gesammelt, Erfolge und Mißerfolge noch einmal gemeinsam nachempfunden. Die [[Phase]] macht deutlich, daß bisher auch wichtige Schritte gemeinsam getan wurden, ein Gefühl von Gemeinschaft entsteht. <br><br> 
# Das Umfeld wird untersucht (aktuelle Entwicklungen und Ereignisse) und auf einem großen [[Mindmap|Mind Mapping]] dargestellt. Zwei Fragen werden beantwortet: Was ist unsere heutige Antwort auf diese Entwicklungen? Worauf sind wir stolz und was bedauern wir (in bezug auf unser eigenes Handeln). Hier werden die gemeinsamen Werte deutlich. <br><br> 
# Die Gruppen entwerfen das Bild einer Zukunft ihres Unternehmens, in dem sie gerne arbeiten würden, das strategisch in die Landschaft paßt und das ihren Werten entspricht. Dies ist der emotionale Höhepunkt des Workshops. <br><br> 
# Die Gemeinsamkeiten der Präsentationen und die Differenzen werden herausgearbeitet und im Plenum zusammengetragen. <br><br> 
# Die Aktivitäten werden geplant: Was wird kurz- und langfristig getan, um die gemeinsamen [[Ziele|Ziel]] zu erreichen. Am Ende verpflichtet sich jede Gruppe zu ihrem Programm.

!Debriefing

!Quelle
Haas, H. / Muthers, H.: Auf der Suche nach der Bank von morgen, Blick durch die Wirtschaft, 22.1.1998

!See also
* [[Organizational Change Management]]
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Organizational Change Management]<<tiddlerList tags:"ocm,-newTemplate" header:"Übungen Organizational Change Management">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Zukunftsfabrik+%28jt%29&db=3]]
<data>{"abstract":"Eine harmlose Gruppenübung, etwas zum Warmwerden, wobei Kooperation und [[Kommunikation]] funktionieren müssen.  "}</data>
<<wikify [>img(%0,%1)[%2|%3]] 40% auto title http://img.fotowelt.chip.de/imgserver/communityimages/390100/390129/1280x.jpg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Zusammengeschnürt","abstract") </script>

!Zusammengeschnürt
<script> return "<<tiddler [[Zusammengeschnürt##Overview]]>>" </script> 

!Objectives
* Abbau von Berührungsängsten 
* Aufwärmen
* Kooperation

!Timing
20 min

!Audience
Group

!Materials
* Seil

!Procedure
Die Mitglieder einer Gruppe werden mit einem Seil eng zusammengebunden. Anschließend sollen sie sich so schnell wie möglich von A nach B bewegen. 

!Debriefing
Damit werden einmal Berührungsängste abgebaut. Zum anderen sind hierbei Vorüberlegungen, Taktik und Abstimmung verlangt. Wer zu früh losmarschiert, wird den anderen mächtig auf die Füße steigen.

!Quelle
Bernhard Kuntz: Lernfeld Natur, managerSeminare, 6/1999, S.93


!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Outdoor]<<tiddlerList tags:"outdoor,-newTemplate" header:"Übungen Outdoor">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===


!Weblinks
* [[MWOnline| http://mwonline.de/db/topics/themenentry.php4?db=3&to_parebene=Zusammengeschn%FCrt+%28jt%29]]
<data>{"abstract":"[[Zwei wahr, eins gelogen]], eine Übung, die zum Nachdenken anregt und Spaß macht, gut einsetzbar in einem Kommunikations- oder Teamtraining. Allerdings sollten sich die Teilnehmer schon ein wenig kennen."}</data>
<<wikify [>img(%0,%1)[%2|%3]] 30% auto title http://data2.blog.de/media/228/779228_e0672a8eea_m.jpeg>>
<<showtoc>>
!Overview
<script> return DataTiddler.getData("Zwei wahr, eins gelogen","abstract") </script>

!Zwei wahr, eins gelogen
<script> return "<<tiddler [[Zwei wahr, eins gelogen##Overview]]>>" </script> 
Auch eine spannende [[Feedback]]-Übung.


!Objectives
* ~Feedback-Übung

!Timing


!Audience
Group

!Materials
* 

!Procedure
Die Mitglieder einer Gruppe, die sich allerdings schon ein wenig kennengelernt haben sollten, äußern jeweils drei Sätze (Meinungen, Eindrücke etc.) übereinander, z.B.: //"Ich halte Dich für besonders durchsetzungsfähig!"// 
Dabei sollen jeweils zwei der Sätze wahr und einer gelogen sein. Der ~Feedback-Empfänger äußert anschließend dann seine Vermutungen, welche der Sätze wahr und welcher gelogen ist.

!Debriefing

!See also
<<tiddler ShowTiddlerReferences>>

+++*[Übungen Kommunikation]<<tiddlerList tags:"communication,-newTemplate" header:"Übungen Kommunikation">>===

+++*[Weitere Übungen]<<tiddlerList tags:"exercises">>===

!Weblinks
* [[MWonline| http://mwonline.de/db/topics/themenentry.php3?to_parebene=Zwei+wahr%2C+eins+gelogen+%28mb%29&db=3]]
/***
|''Name''|g.bar|
|''Requires''|raphaeljs g.raphael|
!Notes
This fixes the issue at http://github.com/DmitryBaranovskiy/g.raphael/issues#issue/11
!Usage
!Code
***/
/*
 * g.Raphael 0.4.1hack - Charting library, based on Raphaël
 *
 * Copyright (c) 2009 Dmitry Baranovskiy (http://g.raphaeljs.com)
 * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
 */
Raphael.fn.g.barchart=function(C,A,a,d,O,u){u=u||{};var P={round:"round",sharp:"sharp",soft:"soft"}[u.type]||"square",n=parseFloat(u.gutter||"20%"),M=this.set(),v=this.set(),e=this.set(),r=this.set(),w=Math.max.apply(Math,O),N=[],c=this,B=0,F=u.colors||this.g.colors,q=O.length;if(this.raphael.is(O[0],"array")){w=[];B=q;q=0;for(var K=O.length;K--;){v.push(this.set());w.push(Math.max.apply(Math,O[K]));q=Math.max(q,O[K].length);}if(u.stacked){for(var K=q;K--;){var l=0;for(var J=O.length;J--;){l+=+O[J][K]||0;}N.push(l);}}for(var K=O.length;K--;){if(O[K].length<q){for(var J=q;J--;){O[K].push(0);}}}w=Math.max.apply(Math,u.stacked?N:w);}w=(u.to)||w;var D=a/(q*(100+n)+n)*100,b=D*n/100,g=u.vgutter==null?20:u.vgutter,t=[],k=C+b,f=(d-2*g)/w;if(!u.stretch){b=Math.round(b);D=Math.floor(D);}!u.stacked&&(D/=B||1);for(var K=0;K<q;K++){t=[];for(var J=0;J<(B||1);J++){var L=Math.round((B?O[J][K]:O[K])*f),m=A+d-g-L,H=this.g.finger(Math.round(k+D/2),m+L,D,L,true,P).attr({stroke:"none",fill:F[B?J:K]});if(B){v[J].push(H);}else{v.push(H);}H.y=m;H.x=Math.round(k+D/2);H.w=D;H.h=L;H.value=B?O[J][K]:O[K];if(!u.stacked){k+=D;}else{t.push(H);}}if(u.stacked){var I;r.push(I=this.rect(t[0].x-t[0].w/2,A,D,d).attr(this.g.shim));I.bars=this.set();var o=0;for(var E=t.length;E--;){t[E].toFront();}for(var E=0,p=t.length;E<p;E++){var H=t[E],z,L=(o+H.value)*f,G=this.g.finger(H.x,A+d-g-!!o*0.5,D,L,true,P,1);I.bars.push(H);o&&H.attr({path:G});H.h=L;H.y=A+d-g-!!o*0.5-L;e.push(z=this.rect(H.x-H.w/2,H.y,D,H.value*f).attr(this.g.shim));z.bar=H;z.value=H.value;o+=H.value;}k+=D;}k+=b;}r.toFront();k=C+b;if(!u.stacked){for(var K=0;K<q;K++){for(var J=0;J<(B||1);J++){var z;e.push(z=this.rect(Math.round(k),A+g,D,d-g).attr(this.g.shim));z.bar=B?v[J][K]:v[K];z.value=z.bar.value;k+=D;}k+=b;}}M.label=function(y,S){y=y||[];this.labels=c.set();var T,h=-Infinity;if(u.stacked){for(var x=0;x<q;x++){var Q=0;for(var s=0;s<(B||1);s++){Q+=B?O[s][x]:O[x];if(s==B-1){var U=c.g.labelise(y[x],Q,w);T=c.g.text(v[s][x].x,A+d-g/2,U).insertBefore(e[x*(B||1)+s]);var R=T.getBBox();if(R.x-7<h){T.remove();}else{this.labels.push(T);h=R.x+R.width;}}}}}else{for(var x=0;x<q;x++){for(var s=0;s<(B||1);s++){var U=c.g.labelise(B?y[s]&&y[s][x]:y[x],B?O[s][x]:O[x],w);T=c.g.text(v[s][x].x,S?A+d-g/2:v[s][x].y-10,U).insertBefore(e[x*(B||1)+s]);var R=T.getBBox();if(R.x-7<h){T.remove();}else{this.labels.push(T);h=R.x+R.width;}}}}return this;};M.hover=function(i,h){r.hide();e.show();e.mouseover(i).mouseout(h);return this;};M.hoverColumn=function(i,h){e.hide();r.show();h=h||function(){};r.mouseover(i).mouseout(h);return this;};M.click=function(h){r.hide();e.show();e.click(h);return this;};M.each=function(j){if(!Raphael.is(j,"function")){return this;}for(var h=e.length;h--;){j.call(e[h]);}return this;};M.eachColumn=function(j){if(!Raphael.is(j,"function")){return this;}for(var h=r.length;h--;){j.call(r[h]);}return this;};M.clickColumn=function(h){e.hide();r.show();r.click(h);return this;};M.push(v,e,r);M.bars=v;M.covers=e;return M;};Raphael.fn.g.hbarchart=function(n,l,B,w,c,r){r=r||{};var e={round:"round",sharp:"sharp",soft:"soft"}[r.type]||"square",f=parseFloat(r.gutter||"20%"),u=this.set(),A=this.set(),h=this.set(),E=this.set(),M=Math.max.apply(Math,c),a=[],o=this,C=0,m=r.colors||this.g.colors,H=c.length;if(this.raphael.is(c[0],"array")){M=[];C=H;H=0;for(var G=c.length;G--;){A.push(this.set());M.push(Math.max.apply(Math,c[G]));H=Math.max(H,c[G].length);}if(r.stacked){for(var G=H;G--;){var p=0;for(var F=c.length;F--;){p+=+c[F][G]||0;}a.push(p);}}for(var G=c.length;G--;){if(c[G].length<H){for(var F=H;F--;){c[G].push(0);}}}M=Math.max.apply(Math,r.stacked?a:M);}M=(r.to)||M;var J=Math.floor(w/(H*(100+f)+f)*100),k=Math.floor(J*f/100),g=[],b=l+k,d=(B-1)/M;!r.stacked&&(J/=C||1);for(var G=0;G<H;G++){g=[];for(var F=0;F<(C||1);F++){var L=C?c[F][G]:c[G],I=this.g.finger(n,b+J/2,Math.round(L*d),J-1,false,e).attr({stroke:"none",fill:m[C?F:G]});if(C){A[F].push(I);}else{A.push(I);}I.x=n+Math.round(L*d);I.y=b+J/2;I.w=Math.round(L*d);I.h=J;I.value=+L;if(!r.stacked){b+=J;}else{g.push(I);}}if(r.stacked){var q=this.rect(n,g[0].y-g[0].h/2,B,J).attr(this.g.shim);E.push(q);q.bars=this.set();var v=0;for(var t=g.length;t--;){g[t].toFront();}for(var t=0,D=g.length;t<D;t++){var I=g[t],K,L=Math.round((v+I.value)*d),z=this.g.finger(n,I.y,L,J-1,false,e,1);q.bars.push(I);v&&I.attr({path:z});I.w=L;I.x=n+L;h.push(K=this.rect(n+v*d,I.y-I.h/2,I.value*d,J).attr(this.g.shim));K.bar=I;v+=I.value;}b+=J;}b+=k;}E.toFront();b=l+k;if(!r.stacked){for(var G=0;G<H;G++){for(var F=0;F<(C||1);F++){var K=this.rect(n,b,B,J).attr(this.g.shim);h.push(K);K.bar=C?A[F][G]:A[G];K.value=K.bar.value;b+=J;}b+=k;}}u.label=function(R,P){R=R||[];this.labels=o.set();for(var O=0;O<H;O++){for(var N=0;N<C;N++){var y=o.g.labelise(C?R[N]&&R[N][O]:R[O],C?c[N][O]:c[O],M);var Q=P?A[O*(C||1)+N].x-J/2+3:n+5,x=P?"end":"start",s;this.labels.push(s=o.g.text(Q,A[O*(C||1)+N].y,y).attr({"text-anchor":x}).insertBefore(h[0]));if(s.getBBox().x<n+5){s.attr({x:n+5,"text-anchor":"start"});}else{A[O*(C||1)+N].label=s;}}}return this;};u.hover=function(j,i){E.hide();h.show();i=i||function(){};h.mouseover(j).mouseout(i);return this;};u.hoverColumn=function(j,i){h.hide();E.show();i=i||function(){};E.mouseover(j).mouseout(i);return this;};u.each=function(s){if(!Raphael.is(s,"function")){return this;}for(var j=h.length;j--;){s.call(h[j]);}return this;};u.eachColumn=function(s){if(!Raphael.is(s,"function")){return this;}for(var j=E.length;j--;){s.call(E[j]);}return this;};u.click=function(i){E.hide();h.show();h.click(i);return this;};u.clickColumn=function(i){h.hide();E.show();E.click(i);return this;};u.push(A,h,E);u.bars=A;u.covers=h;return u;};
/***
|''Name''|g.dot|
|''Requires''|raphaeljs g.raphael|
!Usage
!Code
***/
/*
 * g.Raphael 0.4.1 - Charting library, based on Raphaël
 *
 * Copyright (c) 2009 Dmitry Baranovskiy (http://g.raphaeljs.com)
 * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
 */
Raphael.fn.g.dotchart=function(K,J,a,f,w,v,r,F){function Q(b){+b[0]&&(b[0]=c.g.axis(K+q,J+q,a-2*q,B,n,F.axisxstep||Math.floor((a-2*q)/20),2,F.axisxlabels||null,F.axisxtype||"t"));+b[1]&&(b[1]=c.g.axis(K+a-q,J+f-q,f-2*q,A,m,F.axisystep||Math.floor((f-2*q)/20),3,F.axisylabels||null,F.axisytype||"t"));+b[2]&&(b[2]=c.g.axis(K+q,J+f-q+E,a-2*q,B,n,F.axisxstep||Math.floor((a-2*q)/20),0,F.axisxlabels||null,F.axisxtype||"t"));+b[3]&&(b[3]=c.g.axis(K+q-E,J+f-q,f-2*q,A,m,F.axisystep||Math.floor((f-2*q)/20),1,F.axisylabels||null,F.axisytype||"t"));}F=F||{};var u=this.g.snapEnds(Math.min.apply(Math,w),Math.max.apply(Math,w),w.length-1),B=u.from,n=u.to,q=F.gutter||10,I=this.g.snapEnds(Math.min.apply(Math,v),Math.max.apply(Math,v),v.length-1),A=I.from,m=I.to,z=Math.max(w.length,v.length,r.length),t=this.g.markers[F.symbol]||"disc",G=this.set(),s=this.set(),D=F.max||100,p=Math.max.apply(Math,r),o=[],c=this,N=Math.sqrt(p/Math.PI)*2/D;for(var O=0;O<z;O++){o[O]=Math.min(Math.sqrt(r[O]/Math.PI)*2/N,D);}q=Math.max.apply(Math,o.concat(q));var C=this.set(),E=Math.max.apply(Math,o);if(F.axis){var l=(F.axis+"").split(/[,\s]+/);Q(l);var P=[],S=[];for(var O=0,H=l.length;O<H;O++){var T=l[O].all?l[O].all.getBBox()[["height","width"][O%2]]:0;P[O]=T+q;S[O]=T;}q=Math.max.apply(Math,P.concat(q));for(var O=0,H=l.length;O<H;O++){if(l[O].all){l[O].remove();l[O]=1;}}Q(l);for(var O=0,H=l.length;O<H;O++){if(l[O].all){C.push(l[O].all);}}G.axis=C;}var M=(a-q*2)/((n-B)||1),L=(f-q*2)/((m-A)||1);for(var O=0,H=v.length;O<H;O++){var e=this.raphael.is(t,"array")?t[O]:t,j=K+q+(w[O]-B)*M,h=J+f-q-(v[O]-A)*L;e&&o[O]&&s.push(this.g[e](j,h,o[O]).attr({fill:F.heat?this.g.colorValue(o[O],E):Raphael.fn.g.colors[0],"fill-opacity":F.opacity?o[O]/D:1,stroke:"none"}));}var d=this.set();for(var O=0,H=v.length;O<H;O++){var j=K+q+(w[O]-B)*M,h=J+f-q-(v[O]-A)*L;d.push(this.circle(j,h,E).attr(this.g.shim));F.href&&F.href[O]&&d[O].attr({href:F.href[O]});d[O].r=+o[O].toFixed(3);d[O].x=+j.toFixed(3);d[O].y=+h.toFixed(3);d[O].X=w[O];d[O].Y=v[O];d[O].value=r[O]||0;d[O].dot=s[O];}G.covers=d;G.series=s;G.push(s,C,d);G.hover=function(g,b){d.mouseover(g).mouseout(b);return this;};G.click=function(b){d.click(b);return this;};G.each=function(g){if(!Raphael.is(g,"function")){return this;}for(var b=d.length;b--;){g.call(d[b]);}return this;};G.href=function(k){var g;for(var b=d.length;b--;){g=d[b];if(g.X==k.x&&g.Y==k.y&&g.value==k.value){g.attr({href:k.href});}}};return G;};
/*
 * g.Raphael 0.4.2 - Charting library, based on Raphaël
 *
 * Copyright (c) 2009 Dmitry Baranovskiy (http://g.raphaeljs.com)
 * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
 */
Raphael.fn.g.linechart=function(M,L,b,d,t,s,F){function E(x,ae){var i=x.length/ae,y=0,a=i,Y=0,X=[];while(y<x.length){a--;if(a<0){Y+=x[y]*(1+a);X.push(Y/i);Y=x[y++]*-a;a+=i}else{Y+=x[y++]}}return X}function P(j,i,aj,ah,ae,Y){var y=(aj-j)/2,x=(ae-aj)/2,ak=Math.atan((aj-j)/Math.abs(ah-i)),ai=Math.atan((ae-aj)/Math.abs(ah-Y));ak=i<ah?Math.PI-ak:ak;ai=Y<ah?Math.PI-ai:ai;var X=Math.PI/2-((ak+ai)%(Math.PI*2))/2,am=y*Math.sin(X+ak),ag=y*Math.cos(X+ak),al=x*Math.sin(X+ai),af=x*Math.cos(X+ai);return{x1:aj-am,y1:ah+ag,x2:aj+al,y2:ah+af}}F=F||{};if(!this.raphael.is(t[0],"array")){t=[t]}if(!this.raphael.is(s[0],"array")){s=[s]}var m=F.gutter||10,u=Math.max(t[0].length,s[0].length),o=F.symbol||"",Q=F.colors||Raphael.fn.g.colors,K=this,q=null,l=null,ab=this.set(),R=[];for(var aa=0,H=s.length;aa<H;aa++){u=Math.max(u,s[aa].length)}var ac=this.set();for(aa=0,H=s.length;aa<H;aa++){if(F.shade){ac.push(this.path().attr({stroke:"none",fill:Q[aa],opacity:F.nostroke?1:0.3}))}if(s[aa].length>b-2*m){s[aa]=E(s[aa],b-2*m);u=b-2*m}if(t[aa]&&t[aa].length>b-2*m){t[aa]=E(t[aa],b-2*m)}}var U=Array.prototype.concat.apply([],t),S=Array.prototype.concat.apply([],s),p=this.g.snapEnds(Math.min.apply(Math,U),Math.max.apply(Math,U),t[0].length-1),z=p.from,k=p.to,J=this.g.snapEnds(Math.min.apply(Math,S),Math.max.apply(Math,S),s[0].length-1),v=J.from,h=J.to,V=(b-m*2)/((k-z)||1),T=(d-m*2)/((h-v)||1);var B=this.set();if(F.axis){var g=(F.axis+"").split(/[,\s]+/);+g[0]&&B.push(this.g.axis(M+m,L+m,b-2*m,z,k,F.axisxstep||Math.floor((b-2*m)/20),2));+g[1]&&B.push(this.g.axis(M+b-m,L+d-m,d-2*m,v,h,F.axisystep||Math.floor((d-2*m)/20),3));+g[2]&&B.push(this.g.axis(M+m,L+d-m,b-2*m,z,k,F.axisxstep||Math.floor((b-2*m)/20),0));+g[3]&&B.push(this.g.axis(M+m,L+d-m,d-2*m,v,h,F.axisystep||Math.floor((d-2*m)/20),1))}var I=this.set(),W=this.set(),n;for(aa=0,H=s.length;aa<H;aa++){if(!F.nostroke){I.push(n=this.path().attr({stroke:Q[aa],"stroke-width":F.width||2,"stroke-linejoin":"round","stroke-linecap":"round","stroke-dasharray":F.dash||""}))}var c=this.raphael.is(o,"array")?o[aa]:o,C=this.set();R=[];for(var Z=0,r=s[aa].length;Z<r;Z++){var f=M+m+((t[aa]||t[0])[Z]-z)*V,e=L+d-m-(s[aa][Z]-v)*T;(Raphael.is(c,"array")?c[Z]:c)&&C.push(this.g[Raphael.fn.g.markers[this.raphael.is(c,"array")?c[Z]:c]](f,e,(F.width||2)*3).attr({fill:Q[aa],stroke:"none"}));if(F.smooth){if(Z&&Z!=r-1){var O=M+m+((t[aa]||t[0])[Z-1]-z)*V,A=L+d-m-(s[aa][Z-1]-v)*T,N=M+m+((t[aa]||t[0])[Z+1]-z)*V,w=L+d-m-(s[aa][Z+1]-v)*T;var ad=P(O,A,f,e,N,w);R=R.concat([ad.x1,ad.y1,f,e,ad.x2,ad.y2])}if(!Z){R=["M",f,e,"C",f,e]}}else{R=R.concat([Z?"L":"M",f,e])}}if(F.smooth){R=R.concat([f,e,f,e])}W.push(C);if(F.shade){ac[aa].attr({path:R.concat(["L",f,L+d-m,"L",M+m+((t[aa]||t[0])[0]-z)*V,L+d-m,"z"]).join(",")})}!F.nostroke&&n.attr({path:R.join(",")})}function G(ak){var ah=[];for(var ai=0,am=t.length;ai<am;ai++){ah=ah.concat(t[ai])}ah.sort();var an=[],ae=[];for(ai=0,am=ah.length;ai<am;ai++){ah[ai]!=ah[ai-1]&&an.push(ah[ai])&&ae.push(M+m+(ah[ai]-z)*V)}ah=an;am=ah.length;var Y=ak||K.set();for(ai=0;ai<am;ai++){var y=ae[ai]-(ae[ai]-(ae[ai-1]||M))/2,al=((ae[ai+1]||M+b)-ae[ai])/2+(ae[ai]-(ae[ai-1]||M))/2,a;ak?(a={}):Y.push(a=K.rect(y-1,L,Math.max(al+1,1),d).attr({stroke:"none",fill:"#000",opacity:0}));a.values=[];a.symbols=K.set();a.y=[];a.x=ae[ai];a.axis=ah[ai];for(var ag=0,aj=s.length;ag<aj;ag++){an=t[ag]||t[0];for(var af=0,x=an.length;af<x;af++){if(an[af]==ah[ai]){a.values.push(s[ag][af]);a.y.push(L+d-m-(s[ag][af]-v)*T);a.symbols.push(ab.symbols[ag][af])}}}ak&&ak.call(a)}!ak&&(q=Y)}function D(ai){var ae=ai||K.set(),a;for(var ag=0,ak=s.length;ag<ak;ag++){for(var af=0,ah=s[ag].length;af<ah;af++){var y=M+m+((t[ag]||t[0])[af]-z)*V,aj=M+m+((t[ag]||t[0])[af?af-1:1]-z)*V,x=L+d-m-(s[ag][af]-v)*T;ai?(a={}):ae.push(a=K.circle(y,x,Math.abs(aj-y)/2).attr({stroke:"none",fill:"#000",opacity:0}));a.x=y;a.y=x;a.value=s[ag][af];a.line=ab.lines[ag];a.shade=ab.shades[ag];a.symbol=ab.symbols[ag][af];a.symbols=ab.symbols[ag];a.axis=(t[ag]||t[0])[af];ai&&ai.call(a)}}!ai&&(l=ae)}ab.push(I,ac,W,B,q,l);ab.lines=I;ab.shades=ac;ab.symbols=W;ab.axis=B;ab.hoverColumn=function(i,a){!q&&G();q.mouseover(i).mouseout(a);return this};ab.clickColumn=function(a){!q&&G();q.click(a);return this};ab.hrefColumn=function(X){var Y=K.raphael.is(arguments[0],"array")?arguments[0]:arguments;if(!(arguments.length-1)&&typeof X=="object"){for(var a in X){for(var j=0,y=q.length;j<y;j++){if(q[j].axis==a){q[j].attr("href",X[a])}}}}!q&&G();for(j=0,y=Y.length;j<y;j++){q[j]&&q[j].attr("href",Y[j])}return this};ab.hover=function(i,a){!l&&D();l.mouseover(i).mouseout(a);return this};ab.click=function(a){!l&&D();l.click(a);return this};ab.each=function(a){D(a);return this};ab.eachColumn=function(a){G(a);return this};return ab};
/***
|''Name''|g.pie|
|''Requires''|raphaeljs g.raphael|
!Usage
!Code
***/
Raphael.fn.g.piechart=function(e,d,o,b,l){l=l||{};var k=this,m=[],g=this.set(),n=this.set(),j=this.set(),u=[],w=b.length,x=0,A=0,z=0,c=9,y=true;n.covers=g;if(w==1){j.push(this.circle(e,d,o).attr({fill:this.g.colors[0],stroke:l.stroke||"#fff","stroke-width":l.strokewidth==null?1:l.strokewidth}));g.push(this.circle(e,d,o).attr(this.g.shim));A=b[0];b[0]={value:b[0],order:0,valueOf:function(){return this.value;}};j[0].middle={x:e,y:d};j[0].mangle=180;}else{function t(F,E,i,H,D,M){var J=Math.PI/180,B=F+i*Math.cos(-H*J),p=F+i*Math.cos(-D*J),G=F+i/2*Math.cos(-(H+(D-H)/2)*J),L=E+i*Math.sin(-H*J),K=E+i*Math.sin(-D*J),C=E+i/2*Math.sin(-(H+(D-H)/2)*J),I=["M",F,E,"L",B,L,"A",i,i,0,+(Math.abs(D-H)>180),1,p,K,"z"];I.middle={x:G,y:C};return I;}for(var v=0;v<w;v++){A+=b[v];b[v]={value:b[v],order:v,valueOf:function(){return this.value;}};}b.sort(function(p,i){return i.value-p.value;});for(v=0;v<w;v++){if(y&&b[v]*360/A<=1.5){c=v;y=false;}if(v>c){y=false;b[c].value+=b[v];b[c].others=true;z=b[c].value;}}w=Math.min(c+1,b.length);z&&b.splice(w)&&(b[c].others=true);for(v=0;v<w;v++){var f=x-360*b[v]/A/2;if(!v){x=90-f;f=x-360*b[v]/A/2;}if(l.init){var h=t(e,d,1,x,x-360*b[v]/A).join(",");}var s=t(e,d,o,x,x-=360*b[v]/A);var q=this.path(l.init?h:s).attr({fill:l.colors&&l.colors[v]||this.g.colors[v]||"#666",stroke:l.stroke||"#fff","stroke-width":(l.strokewidth==null?1:l.strokewidth),"stroke-linejoin":"round"});q.value=b[v];q.middle=s.middle;q.mangle=f;m.push(q);j.push(q);l.init&&q.animate({path:s.join(",")},(+l.init-1)||1000,">");}for(v=0;v<w;v++){q=k.path(m[v].attr("path")).attr(this.g.shim);l.href&&l.href[v]&&q.attr({href:l.href[v]});q.attr=function(){};g.push(q);j.push(q);}}n.hover=function(C,r){r=r||function(){};var B=this;for(var p=0;p<w;p++){(function(D,E,i){var F={sector:D,cover:E,cx:e,cy:d,mx:D.middle.x,my:D.middle.y,mangle:D.mangle,r:o,value:b[i],total:A,label:B.labels&&B.labels[i]};E.mouseover(function(){C.call(F);}).mouseout(function(){r.call(F);});})(j[p],g[p],p);}return this;};n.each=function(B){var r=this;for(var p=0;p<w;p++){(function(C,D,i){var E={sector:C,cover:D,cx:e,cy:d,x:C.middle.x,y:C.middle.y,mangle:C.mangle,r:o,value:b[i],total:A,label:r.labels&&r.labels[i]};B.call(E);})(j[p],g[p],p);}return this;};n.click=function(B){var r=this;for(var p=0;p<w;p++){(function(C,D,i){var E={sector:C,cover:D,cx:e,cy:d,mx:C.middle.x,my:C.middle.y,mangle:C.mangle,r:o,value:b[i],total:A,label:r.labels&&r.labels[i]};D.click(function(){B.call(E);});})(j[p],g[p],p);}return this;};n.inject=function(i){i.insertBefore(g[0]);};var a=function(G,B,r,p){var K=e+o+o/5,J=d,F=J+10;G=G||[];p=(p&&p.toLowerCase&&p.toLowerCase())||"east";r=k.g.markers[r&&r.toLowerCase()]||"disc";n.labels=k.set();for(var E=0;E<w;E++){var L=j[E].attr("fill"),C=b[E].order,D;b[E].others&&(G[C]=B||"Others");G[C]=k.g.labelise(G[C],b[E],A);n.labels.push(k.set());n.labels[E].push(k.g[r](K+5,F,5).attr({fill:L,stroke:"none"}));n.labels[E].push(D=k.text(K+20,F,G[C]||b[C]).attr(k.g.txtattr).attr({fill:l.legendcolor||"#000","text-anchor":"start"}));g[E].label=n.labels[E];F+=D.getBBox().height*1.2;}var H=n.labels.getBBox(),I={east:[0,-H.height/2],west:[-H.width-2*o-20,-H.height/2],north:[-o-H.width/2,-o-H.height-10],south:[-o-H.width/2,o+10]}[p];n.labels.translate.apply(n.labels,I);n.push(n.labels);};if(l.legend){a(l.legend,l.legendothers,l.legendmark,l.legendpos);}n.push(j,g);n.series=j;n.covers=g;return n;};
/***
|''Name''|g.raphael|
|''Requires''|raphaeljs|
!Usage
!Code
***/
/*
 * g.Raphael 0.4.1 - Charting library, based on Raphaël
 *
 * Copyright (c) 2009 Dmitry Baranovskiy (http://g.raphaeljs.com)
 * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
 */
(function(){var a=Math.max,c=Math.min;Raphael.fn.g=Raphael.fn.g||{};Raphael.fn.g.markers={disc:"disc",o:"disc",flower:"flower",f:"flower",diamond:"diamond",d:"diamond",square:"square",s:"square",triangle:"triangle",t:"triangle",star:"star","*":"star",cross:"cross",x:"cross",plus:"plus","+":"plus",arrow:"arrow","->":"arrow"};Raphael.fn.g.shim={stroke:"none",fill:"#000","fill-opacity":0};Raphael.fn.g.txtattr={font:"12px Arial, sans-serif"};Raphael.fn.g.colors=[];var e=[0.6,0.2,0.05,0.1333,0.75,0];for(var b=0;b<10;b++){if(b<e.length){Raphael.fn.g.colors.push("hsb("+e[b]+", .75, .75)");}else{Raphael.fn.g.colors.push("hsb("+e[b-e.length]+", 1, .5)");}}Raphael.fn.g.text=function(f,h,g){return this.text(f,h,g).attr(this.g.txtattr);};Raphael.fn.g.labelise=function(f,h,g){if(f){return(f+"").replace(/(##+(?:\.#+)?)|(%%+(?:\.%+)?)/g,function(i,k,j){if(k){return(+h).toFixed(k.replace(/^#+\.?/g,"").length);}if(j){return(h*100/g).toFixed(j.replace(/^%+\.?/g,"").length)+"%";}});}else{return(+h).toFixed(0);}};Raphael.fn.g.finger=function(l,k,g,m,h,i,j){if((h&&!m)||(!h&&!g)){return j?"":this.path();}i={square:"square",sharp:"sharp",soft:"soft"}[i]||"round";var o;m=Math.round(m);g=Math.round(g);l=Math.round(l);k=Math.round(k);switch(i){case"round":if(!h){var f=~~(m/2);if(g<f){f=g;o=["M",l+0.5,k+0.5-~~(m/2),"l",0,0,"a",f,~~(m/2),0,0,1,0,m,"l",0,0,"z"];}else{o=["M",l+0.5,k+0.5-f,"l",g-f,0,"a",f,f,0,1,1,0,m,"l",f-g,0,"z"];}}else{f=~~(g/2);if(m<f){f=m;o=["M",l-~~(g/2),k,"l",0,0,"a",~~(g/2),f,0,0,1,g,0,"l",0,0,"z"];}else{o=["M",l-f,k,"l",0,f-m,"a",f,f,0,1,1,g,0,"l",0,m-f,"z"];}}break;case"sharp":if(!h){var n=~~(m/2);o=["M",l,k+n,"l",0,-m,a(g-n,0),0,c(n,g),n,-c(n,g),n+(n*2<m),"z"];}else{n=~~(g/2);o=["M",l+n,k,"l",-g,0,0,-a(m-n,0),n,-c(n,m),n,c(n,m),n,"z"];}break;case"square":if(!h){o=["M",l,k+~~(m/2),"l",0,-m,g,0,0,m,"z"];}else{o=["M",l+~~(g/2),k,"l",1-g,0,0,-m,g-1,0,"z"];}break;case"soft":if(!h){f=c(g,Math.round(m/5));o=["M",l+0.5,k+0.5-~~(m/2),"l",g-f,0,"a",f,f,0,0,1,f,f,"l",0,m-f*2,"a",f,f,0,0,1,-f,f,"l",f-g,0,"z"];}else{f=c(Math.round(g/5),m);o=["M",l-~~(g/2),k,"l",0,f-m,"a",f,f,0,0,1,f,-f,"l",g-2*f,0,"a",f,f,0,0,1,f,f,"l",0,m-f,"z"];}}if(j){return o.join(",");}else{return this.path(o);}};Raphael.fn.g.disc=function(f,h,g){return this.circle(f,h,g);};Raphael.fn.g.line=function(f,h,g){return this.rect(f-g,h-g/5,2*g,2*g/5);};Raphael.fn.g.square=function(f,h,g){g=g*0.7;return this.rect(f-g,h-g,2*g,2*g);};Raphael.fn.g.triangle=function(f,h,g){g*=1.75;return this.path("M".concat(f,",",h,"m0-",g*0.58,"l",g*0.5,",",g*0.87,"-",g,",0z"));};Raphael.fn.g.diamond=function(f,h,g){return this.path(["M",f,h-g,"l",g,g,-g,g,-g,-g,g,-g,"z"]);};Raphael.fn.g.flower=function(j,h,f,g){f=f*1.25;var o=f,m=o*0.5;g=+g<3||!g?5:g;var p=["M",j,h+m,"Q"],l;for(var k=1;k<g*2+1;k++){l=k%2?o:m;p=p.concat([+(j+l*Math.sin(k*Math.PI/g)).toFixed(3),+(h+l*Math.cos(k*Math.PI/g)).toFixed(3)]);}p.push("z");return this.path(p.join(","));};Raphael.fn.g.star=function(f,n,m,h,g){h=h||m*0.382;g=g||5;var l=["M",f,n+h,"L"],k;for(var j=1;j<g*2;j++){k=j%2?m:h;l=l.concat([(f+k*Math.sin(j*Math.PI/g)),(n+k*Math.cos(j*Math.PI/g))]);}l.push("z");return this.path(l.join(","));};Raphael.fn.g.cross=function(f,h,g){g=g/2.5;return this.path("M".concat(f-g,",",h,"l",[-g,-g,g,-g,g,g,g,-g,g,g,-g,g,g,g,-g,g,-g,-g,-g,g,-g,-g,"z"]));};Raphael.fn.g.plus=function(f,h,g){g=g/2;return this.path("M".concat(f-g/2,",",h-g/2,"l",[0,-g,g,0,0,g,g,0,0,g,-g,0,0,g,-g,0,0,-g,-g,0,0,-g,"z"]));};Raphael.fn.g.arrow=function(f,h,g){return this.path("M".concat(f-g*0.7,",",h-g*0.4,"l",[g*0.6,0,0,-g*0.4,g,g*0.8,-g,g*0.8,0,-g*0.4,-g*0.6,0],"z"));};Raphael.fn.g.tag=function(f,m,l,k,i){k=k||0;i=i==null?5:i;l=l==null?"$9.99":l;var h=0.5522*i,g=this.set(),j=3;g.push(this.path().attr({fill:"#000",stroke:"#000"}));g.push(this.text(f,m,l).attr(this.g.txtattr).attr({fill:"#fff","font-family":"Helvetica, Arial"}));g.update=function(){this.rotate(0,f,m);var o=this[1].getBBox();if(o.height>=i*2){this[0].attr({path:["M",f,m+i,"a",i,i,0,1,1,0,-i*2,i,i,0,1,1,0,i*2,"m",0,-i*2-j,"a",i+j,i+j,0,1,0,0,(i+j)*2,"L",f+i+j,m+o.height/2+j,"l",o.width+2*j,0,0,-o.height-2*j,-o.width-2*j,0,"L",f,m-i-j].join(",")});}else{var n=Math.sqrt(Math.pow(i+j,2)-Math.pow(o.height/2+j,2));this[0].attr({path:["M",f,m+i,"c",-h,0,-i,h-i,-i,-i,0,-h,i-h,-i,i,-i,h,0,i,i-h,i,i,0,h,h-i,i,-i,i,"M",f+n,m-o.height/2-j,"a",i+j,i+j,0,1,0,0,o.height+2*j,"l",i+j-n+o.width+2*j,0,0,-o.height-2*j,"L",f+n,m-o.height/2-j].join(",")});}this[1].attr({x:f+i+j+o.width/2,y:m});k=(360-k)%360;this.rotate(k,f,m);k>90&&k<270&&this[1].attr({x:f-i-j-o.width/2,y:m,rotation:[180+k,f,m]});return this;};g.update();return g;};Raphael.fn.g.popupit=function(l,k,m,g,t){g=g==null?2:g;t=t||5;l=Math.round(l);k=Math.round(k);var j=m.getBBox(),n=Math.round(j.width/2),i=Math.round(j.height/2),s=[0,n+t*2,0,-n-t*2],o=[-i*2-t*3,-i-t,0,-i-t],f=["M",l-s[g],k-o[g],"l",-t,(g==2)*-t,-a(n-t,0),0,"a",t,t,0,0,1,-t,-t,"l",0,-a(i-t,0),(g==3)*-t,-t,(g==3)*t,-t,0,-a(i-t,0),"a",t,t,0,0,1,t,-t,"l",a(n-t,0),0,t,!g*-t,t,!g*t,a(n-t,0),0,"a",t,t,0,0,1,t,t,"l",0,a(i-t,0),(g==1)*t,t,(g==1)*-t,t,0,a(i-t,0),"a",t,t,0,0,1,-t,t,"l",-a(n-t,0),0,"z"].join(","),q=[{x:l,y:k+t*2+i},{x:l-t*2-n,y:k},{x:l,y:k-t*2-i},{x:l+t*2+n,y:k}][g];m.translate(q.x-n-j.x,q.y-i-j.y);return this.path(f).attr({fill:"#000",stroke:"none"}).insertBefore(m.node?m:m[0]);};Raphael.fn.g.popup=function(f,l,k,g,i){g=g==null?2:g>3?3:g;i=i||5;k=k||"$9.99";var h=this.set(),j=3;h.push(this.path().attr({fill:"#000",stroke:"#000"}));h.push(this.text(f,l,k).attr(this.g.txtattr).attr({fill:"#fff","font-family":"Helvetica, Arial"}));h.update=function(o,n,q){o=o||f;n=n||l;var t=this[1].getBBox(),u=t.width/2,s=t.height/2,y=[0,u+i*2,0,-u-i*2],v=[-s*2-i*3,-s-i,0,-s-i],m=["M",o-y[g],n-v[g],"l",-i,(g==2)*-i,-a(u-i,0),0,"a",i,i,0,0,1,-i,-i,"l",0,-a(s-i,0),(g==3)*-i,-i,(g==3)*i,-i,0,-a(s-i,0),"a",i,i,0,0,1,i,-i,"l",a(u-i,0),0,i,!g*-i,i,!g*i,a(u-i,0),0,"a",i,i,0,0,1,i,i,"l",0,a(s-i,0),(g==1)*i,i,(g==1)*-i,i,0,a(s-i,0),"a",i,i,0,0,1,-i,i,"l",-a(u-i,0),0,"z"].join(","),x=[{x:o,y:n+i*2+s},{x:o-i*2-u,y:n},{x:o,y:n-i*2-s},{x:o+i*2+u,y:n}][g];x.path=m;if(q){this.animate(x,500,">");}else{this.attr(x);}return this;};return h.update(f,l);};Raphael.fn.g.flag=function(f,k,j,i){i=i||0;j=j||"$9.99";var g=this.set(),h=3;g.push(this.path().attr({fill:"#000",stroke:"#000"}));g.push(this.text(f,k,j).attr(this.g.txtattr).attr({fill:"#fff","font-family":"Helvetica, Arial"}));g.update=function(l,o){this.rotate(0,l,o);var n=this[1].getBBox(),m=n.height/2;this[0].attr({path:["M",l,o,"l",m+h,-m-h,n.width+2*h,0,0,n.height+2*h,-n.width-2*h,0,"z"].join(",")});this[1].attr({x:l+m+h+n.width/2,y:o});i=360-i;this.rotate(i,l,o);i>90&&i<270&&this[1].attr({x:l-r-h-n.width/2,y:o,rotation:[180+i,l,o]});return this;};return g.update(f,k);};Raphael.fn.g.label=function(f,i,h){var g=this.set();g.push(this.rect(f,i,10,10).attr({stroke:"none",fill:"#000"}));g.push(this.text(f,i,h).attr(this.g.txtattr).attr({fill:"#fff"}));g.update=function(){var k=this[1].getBBox(),j=c(k.width+10,k.height+10)/2;this[0].attr({x:k.x-j/2,y:k.y-j/2,width:k.width+j,height:k.height+j,r:j});};g.update();return g;};Raphael.fn.g.labelit=function(h){var g=h.getBBox(),f=c(20,g.width+10,g.height+10)/2;return this.rect(g.x-f/2,g.y-f/2,g.width+f,g.height+f,f).attr({stroke:"none",fill:"#000"}).insertBefore(h.node?h:h[0]);};Raphael.fn.g.drop=function(f,k,j,h,i){h=h||30;i=i||0;var g=this.set();g.push(this.path(["M",f,k,"l",h,0,"A",h*0.4,h*0.4,0,1,0,f+h*0.7,k-h*0.7,"z"]).attr({fill:"#000",stroke:"none",rotation:[22.5-i,f,k]}));i=(i+90)*Math.PI/180;g.push(this.text(f+h*Math.sin(i),k+h*Math.cos(i),j).attr(this.g.txtattr).attr({"font-size":h*12/30,fill:"#fff"}));g.drop=g[0];g.text=g[1];return g;};Raphael.fn.g.blob=function(g,m,l,k,i){k=(+k+1?k:45)+90;i=i||12;var f=Math.PI/180,j=i*12/12;var h=this.set();h.push(this.path().attr({fill:"#000",stroke:"none"}));h.push(this.text(g+i*Math.sin((k)*f),m+i*Math.cos((k)*f)-j/2,l).attr(this.g.txtattr).attr({"font-size":j,fill:"#fff"}));h.update=function(t,s,y){t=t||g;s=s||m;var A=this[1].getBBox(),D=a(A.width+j,i*25/12),z=a(A.height+j,i*25/12),o=t+i*Math.sin((k-22.5)*f),B=s+i*Math.cos((k-22.5)*f),q=t+i*Math.sin((k+22.5)*f),C=s+i*Math.cos((k+22.5)*f),F=(q-o)/2,E=(C-B)/2,p=D/2,n=z/2,x=-Math.sqrt(Math.abs(p*p*n*n-p*p*E*E-n*n*F*F)/(p*p*E*E+n*n*F*F)),v=x*p*E/n+(q+o)/2,u=x*-n*F/p+(C+B)/2;if(y){this.animate({x:v,y:u,path:["M",g,m,"L",q,C,"A",p,n,0,1,1,o,B,"z"].join(",")},500,">");}else{this.attr({x:v,y:u,path:["M",g,m,"L",q,C,"A",p,n,0,1,1,o,B,"z"].join(",")});}return this;};h.update(g,m);return h;};Raphael.fn.g.colorValue=function(i,h,g,f){return"hsb("+[c((1-i/h)*0.4,1),g||0.75,f||0.75]+")";};Raphael.fn.g.snapEnds=function(n,o,m){var k=n,p=o;if(k==p){return{from:k,to:p,power:0};}function q(f){return Math.abs(f-0.5)<0.25?~~(f)+0.5:Math.round(f);}var l=(p-k)/m,g=~~(l),j=g,h=0;if(g){while(j){h--;j=~~(l*Math.pow(10,h))/Math.pow(10,h);}h++;}else{while(!g){h=h||1;g=~~(l*Math.pow(10,h))/Math.pow(10,h);h++;}h&&h--;}p=q(o*Math.pow(10,h))/Math.pow(10,h);if(p<o){p=q((o+0.5)*Math.pow(10,h))/Math.pow(10,h);}k=q((n-(h>0?0:0.5))*Math.pow(10,h))/Math.pow(10,h);return{from:k,to:p,power:h};};Raphael.fn.g.axis=function(v,u,o,G,l,J,m,L,n,g){g=g==null?2:g;n=n||"t";J=J||10;var F=n=="|"||n==" "?["M",v+0.5,u,"l",0,0.001]:m==1||m==3?["M",v+0.5,u,"l",0,-o]:["M",v,u+0.5,"l",o,0],z=this.g.snapEnds(G,l,J),K=z.from,B=z.to,I=z.power,H=0,C=this.set();d=(B-K)/J;var s=K,q=I>0?I:0;w=o/J;if(+m==1||+m==3){var h=u,A=(m-1?1:-1)*(g+3+!!(m-1));while(h>=u-o){n!="-"&&n!=" "&&(F=F.concat(["M",v-(n=="+"||n=="|"?g:!(m-1)*g*2),h+0.5,"l",g*2+1,0]));C.push(this.text(v+A,h,(L&&L[H++])||(Math.round(s)==s?s:+s.toFixed(q))).attr(this.g.txtattr).attr({"text-anchor":m-1?"start":"end"}));s+=d;h-=w;}if(Math.round(h+w-(u-o))){n!="-"&&n!=" "&&(F=F.concat(["M",v-(n=="+"||n=="|"?g:!(m-1)*g*2),u-o+0.5,"l",g*2+1,0]));C.push(this.text(v+A,u-o,(L&&L[H])||(Math.round(s)==s?s:+s.toFixed(q))).attr(this.g.txtattr).attr({"text-anchor":m-1?"start":"end"}));}}else{s=K;q=(I>0)*I;A=(m?-1:1)*(g+9+!m);var k=v,w=o/J,D=0,E=0;while(k<=v+o){n!="-"&&n!=" "&&(F=F.concat(["M",k+0.5,u-(n=="+"?g:!!m*g*2),"l",0,g*2+1]));C.push(D=this.text(k,u+A,(L&&L[H++])||(Math.round(s)==s?s:+s.toFixed(q))).attr(this.g.txtattr));var p=D.getBBox();if(E>=p.x-5){C.pop(C.length-1).remove();}else{E=p.x+p.width;}s+=d;k+=w;}if(Math.round(k-w-v-o)){n!="-"&&n!=" "&&(F=F.concat(["M",v+o+0.5,u-(n=="+"?g:!!m*g*2),"l",0,g*2+1]));C.push(this.text(v+o,u+A,(L&&L[H])||(Math.round(s)==s?s:+s.toFixed(q))).attr(this.g.txtattr));}}var M=this.path(F);M.text=C;M.all=this.set([M,C]);M.remove=function(){this.text.remove();this.constructor.prototype.remove.call(this);};return M;};Raphael.el.lighter=function(g){g=g||2;var f=[this.attrs.fill,this.attrs.stroke];this.fs=this.fs||[f[0],f[1]];f[0]=Raphael.rgb2hsb(Raphael.getRGB(f[0]).hex);f[1]=Raphael.rgb2hsb(Raphael.getRGB(f[1]).hex);f[0].b=c(f[0].b*g,1);f[0].s=f[0].s/g;f[1].b=c(f[1].b*g,1);f[1].s=f[1].s/g;this.attr({fill:"hsb("+[f[0].h,f[0].s,f[0].b]+")",stroke:"hsb("+[f[1].h,f[1].s,f[1].b]+")"});};Raphael.el.darker=function(g){g=g||2;var f=[this.attrs.fill,this.attrs.stroke];this.fs=this.fs||[f[0],f[1]];f[0]=Raphael.rgb2hsb(Raphael.getRGB(f[0]).hex);f[1]=Raphael.rgb2hsb(Raphael.getRGB(f[1]).hex);f[0].s=c(f[0].s*g,1);f[0].b=f[0].b/g;f[1].s=c(f[1].s*g,1);f[1].b=f[1].b/g;this.attr({fill:"hsb("+[f[0].h,f[0].s,f[0].b]+")",stroke:"hsb("+[f[1].h,f[1].s,f[1].b]+")"});};Raphael.el.original=function(){if(this.fs){this.attr({fill:this.fs[0],stroke:this.fs[1]});delete this.fs;}};})();
/***
|''Name''|jit-yc|
***/
//{{{
/*
  Copyright (c) 2010, Nicolas Garcia Belmonte
  All rights reserved

  > 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 the organization 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 NICOLAS GARCIA BELMONTE ``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 NICOLAS GARCIA BELMONTE 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.
 */
 (function(){window.$jit=function(x){x=x||window;for(var y in $jit){if($jit[y].$extend){x[y]=$jit[y]}}};$jit.version="2.0.0b";var c=function(w){return document.getElementById(w)};c.empty=function(){};c.extend=function(y,w){for(var x in (w||{})){y[x]=w[x]}return y};c.lambda=function(w){return(typeof w=="function")?w:function(){return w}};c.time=Date.now||function(){return +new Date};c.splat=function(x){var w=c.type(x);return w?((w!="array")?[x]:x):[]};c.type=function(x){var w=c.type.s.call(x).match(/^\[object\s(.*)\]$/)[1].toLowerCase();if(w!="object"){return w}if(x&&x.$$family){return x.$$family}return(x&&x.nodeName&&x.nodeType==1)?"element":w};c.type.s=Object.prototype.toString;c.each=function(B,A){var z=c.type(B);if(z=="object"){for(var y in B){A(B[y],y)}}else{for(var x=0,w=B.length;x<w;x++){A(B[x],x)}}};c.indexOf=function(z,y){if(Array.indexOf){return z.indexOf(y)}for(var x=0,w=z.length;x<w;x++){if(z[x]===y){return x}}return -1};c.map=function(y,x){var w=[];c.each(y,function(A,z){w.push(x(A,z))});return w};c.reduce=function(A,y,x){var w=A.length;if(w==0){return x}var z=arguments.length==3?x:A[--w];while(w--){z=y(z,A[w])}return z};c.merge=function(){var A={};for(var z=0,w=arguments.length;z<w;z++){var x=arguments[z];if(c.type(x)!="object"){continue}for(var y in x){var C=x[y],B=A[y];A[y]=(B&&c.type(C)=="object"&&c.type(B)=="object")?c.merge(B,C):c.unlink(C)}}return A};c.unlink=function(y){var x;switch(c.type(y)){case"object":x={};for(var A in y){x[A]=c.unlink(y[A])}break;case"array":x=[];for(var z=0,w=y.length;z<w;z++){x[z]=c.unlink(y[z])}break;default:return y}return x};c.zip=function(){if(arguments.length===0){return[]}for(var y=0,x=[],w=arguments.length,B=arguments[0].length;y<B;y++){for(var z=0,A=[];z<w;z++){A.push(arguments[z][y])}x.push(A)}return x};c.rgbToHex=function(A,z){if(A.length<3){return null}if(A.length==4&&A[3]==0&&!z){return"transparent"}var x=[];for(var w=0;w<3;w++){var y=(A[w]-0).toString(16);x.push(y.length==1?"0"+y:y)}return z?x:"#"+x.join("")};c.hexToRgb=function(y){if(y.length!=7){y=y.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);y.shift();if(y.length!=3){return null}var w=[];for(var x=0;x<3;x++){var z=y[x];if(z.length==1){z+=z}w.push(parseInt(z,16))}return w}else{y=parseInt(y.slice(1),16);return[y>>16,y>>8&255,y&255]}};c.destroy=function(w){c.clean(w);if(w.parentNode){w.parentNode.removeChild(w)}if(w.clearAttributes){w.clearAttributes()}};c.clean=function(z){for(var y=z.childNodes,x=0,w=y.length;x<w;x++){c.destroy(y[x])}};c.addEvent=function(y,x,w){if(y.addEventListener){y.addEventListener(x,w,false)}else{y.attachEvent("on"+x,w)}};c.addEvents=function(x,y){for(var w in y){c.addEvent(x,w,y[w])}};c.hasClass=function(x,w){return(" "+x.className+" ").indexOf(" "+w+" ")>-1};c.addClass=function(x,w){if(!c.hasClass(x,w)){x.className=(x.className+" "+w)}};c.removeClass=function(x,w){x.className=x.className.replace(new RegExp("(^|\\s)"+w+"(?:\\s|$)"),"$1")};c.getPos=function(y){var B=A(y);var w=z(y);return{x:B.x-w.x,y:B.y-w.y};function A(D){var C={x:0,y:0};while(D&&!x(D)){C.x+=D.offsetLeft;C.y+=D.offsetTop;D=D.offsetParent}return C}function z(D){var C={x:0,y:0};while(D&&!x(D)){C.x+=D.scrollLeft;C.y+=D.scrollTop;D=D.parentNode}return C}function x(C){return(/^(?:body|html)$/i).test(C.tagName)}};c.event={get:function(x,w){w=w||window;return x||w.event},getWheel:function(w){return w.wheelDelta?w.wheelDelta/120:-(w.detail||0)/3},isRightClick:function(w){return(w.which==3||w.button==2)},getPos:function(z,y){y=y||window;z=z||y.event;var x=y.document;x=x.documentElement||x.body;if(z.touches&&z.touches.length){z=z.touches[0]}var w={x:z.pageX||(z.clientX+x.scrollLeft),y:z.pageY||(z.clientY+x.scrollTop)};return w},stop:function(w){if(w.stopPropagation){w.stopPropagation()}w.cancelBubble=true;if(w.preventDefault){w.preventDefault()}else{w.returnValue=false}}};$jit.util=$jit.id=c;var q=function(x){x=x||{};var w=function(){for(var A in this){if(typeof this[A]!="function"){this[A]=c.unlink(this[A])}}this.constructor=w;if(q.prototyping){return this}var z=this.initialize?this.initialize.apply(this,arguments):this;this.$$family="class";return z};for(var y in q.Mutators){if(!x[y]){continue}x=q.Mutators[y](x,x[y]);delete x[y]}c.extend(w,this);w.constructor=q;w.prototype=x;return w};q.Mutators={Implements:function(w,x){c.each(c.splat(x),function(z){q.prototyping=z;var y=(typeof z=="function")?new z:z;for(var A in y){if(!(A in w)){w[A]=y[A]}}delete q.prototyping});return w}};c.extend(q,{inherit:function(w,z){for(var y in z){var x=z[y];var B=w[y];var A=c.type(x);if(B&&A=="function"){if(x!=B){q.override(w,y,x)}}else{if(A=="object"){w[y]=c.merge(B,x)}else{w[y]=x}}}return w},override:function(x,w,A){var z=q.prototyping;if(z&&x[w]!=z[w]){z=null}var y=function(){var B=this.parent;this.parent=z?z[w]:x[w];var C=A.apply(this,arguments);this.parent=B;return C};x[w]=y}});q.prototype.implement=function(){var w=this.prototype;c.each(Array.prototype.slice.call(arguments||[]),function(x){q.inherit(w,x)});return this};$jit.Class=q;$jit.json={prune:function(x,w){this.each(x,function(z,y){if(y==w&&z.children){delete z.children;z.children=[]}})},getParent:function(w,A){if(w.id==A){return false}var z=w.children;if(z&&z.length>0){for(var y=0;y<z.length;y++){if(z[y].id==A){return w}else{var x=this.getParent(z[y],A);if(x){return x}}}}return false},getSubtree:function(w,A){if(w.id==A){return w}for(var y=0,z=w.children;y<z.length;y++){var x=this.getSubtree(z[y],A);if(x!=null){return x}}return null},eachLevel:function(w,B,y,A){if(B<=y){A(w,B);if(!w.children){return}for(var x=0,z=w.children;x<z.length;x++){this.eachLevel(z[x],B+1,y,A)}}},each:function(w,x){this.eachLevel(w,0,Number.MAX_VALUE,x)}};$jit.Trans={$extend:true,linear:function(w){return w}};var i=$jit.Trans;(function(){var w=function(z,y){y=c.splat(y);return c.extend(z,{easeIn:function(A){return z(A,y)},easeOut:function(A){return 1-z(1-A,y)},easeInOut:function(A){return(A<=0.5)?z(2*A,y)/2:(2-z(2*(1-A),y))/2}})};var x={Pow:function(z,y){return Math.pow(z,y[0]||6)},Expo:function(y){return Math.pow(2,8*(y-1))},Circ:function(y){return 1-Math.sin(Math.acos(y))},Sine:function(y){return 1-Math.sin((1-y)*Math.PI/2)},Back:function(z,y){y=y[0]||1.618;return Math.pow(z,2)*((y+1)*z-y)},Bounce:function(B){var A;for(var z=0,y=1;1;z+=y,y/=2){if(B>=(7-4*z)/11){A=y*y-Math.pow((11-6*z-11*B)/4,2);break}}return A},Elastic:function(z,y){return Math.pow(2,10*--z)*Math.cos(20*z*Math.PI*(y[0]||1)/3)}};c.each(x,function(z,y){i[y]=w(z)});c.each(["Quad","Cubic","Quart","Quint"],function(z,y){i[z]=w(function(A){return Math.pow(A,[y+2])})})})();var u=new q({initialize:function(w){this.setOptions(w)},setOptions:function(w){var x={duration:2500,fps:40,transition:i.Quart.easeInOut,compute:c.empty,complete:c.empty,link:"ignore"};this.opt=c.merge(x,w||{});return this},step:function(){var x=c.time(),w=this.opt;if(x<this.time+w.duration){var y=w.transition((x-this.time)/w.duration);w.compute(y)}else{this.timer=clearInterval(this.timer);w.compute(1);w.complete()}},start:function(){if(!this.check()){return this}this.time=0;this.startTimer();return this},startTimer:function(){var w=this,x=this.opt.fps;if(this.timer){return false}this.time=c.time()-this.time;this.timer=setInterval((function(){w.step()}),Math.round(1000/x));return true},pause:function(){this.stopTimer();return this},resume:function(){this.startTimer();return this},stopTimer:function(){if(!this.timer){return false}this.time=c.time()-this.time;this.timer=clearInterval(this.timer);return true},check:function(){if(!this.timer){return true}if(this.opt.link=="cancel"){this.stopTimer();return true}return false}});var n=function(){var y=arguments;for(var A=0,w=y.length,x={};A<w;A++){var z=n[y[A]];if(z.$extend){c.extend(x,z)}else{x[y[A]]=z}}return x};n.AreaChart={$extend:true,animate:true,labelOffset:3,type:"stacked",Tips:{enable:false,onShow:c.empty,onHide:c.empty},Events:{enable:false,onClick:c.empty},selectOnHover:true,showAggregates:true,showLabels:true,filterOnClick:false,restoreOnRightClick:false};n.Margin={$extend:false,top:0,left:0,right:0,bottom:0};n.Canvas={$extend:true,injectInto:"id",width:false,height:false,useCanvas:false,withLabels:true,background:false};n.Tree={$extend:true,orientation:"left",subtreeOffset:8,siblingOffset:5,indent:10,multitree:false,align:"center"};n.Node={$extend:false,overridable:false,type:"circle",color:"#ccb",alpha:1,dim:3,height:20,width:90,autoHeight:false,autoWidth:false,lineWidth:1,transform:true,align:"center",angularWidth:1,span:1,CanvasStyles:{}};n.Edge={$extend:false,overridable:false,type:"line",color:"#ccb",lineWidth:1,dim:15,alpha:1,epsilon:7,CanvasStyles:{}};n.Fx={$extend:true,fps:40,duration:2500,transition:$jit.Trans.Quart.easeInOut,clearCanvas:true};n.Label={$extend:false,overridable:false,type:"HTML",style:" ",size:10,family:"sans-serif",textAlign:"center",textBaseline:"alphabetic",color:"#fff"};n.Tips={$extend:false,enable:false,type:"auto",offsetX:20,offsetY:20,force:false,onShow:c.empty,onHide:c.empty};n.NodeStyles={$extend:false,enable:false,type:"auto",stylesHover:false,stylesClick:false};n.Events={$extend:false,enable:false,enableForEdges:false,type:"auto",onClick:c.empty,onRightClick:c.empty,onMouseMove:c.empty,onMouseEnter:c.empty,onMouseLeave:c.empty,onDragStart:c.empty,onDragMove:c.empty,onDragCancel:c.empty,onDragEnd:c.empty,onTouchStart:c.empty,onTouchMove:c.empty,onTouchEnd:c.empty,onMouseWheel:c.empty};n.Navigation={$extend:false,enable:false,type:"auto",panning:false,zooming:false};n.Controller={$extend:true,onBeforeCompute:c.empty,onAfterCompute:c.empty,onCreateLabel:c.empty,onPlaceLabel:c.empty,onComplete:c.empty,onBeforePlotLine:c.empty,onAfterPlotLine:c.empty,onBeforePlotNode:c.empty,onAfterPlotNode:c.empty,request:false};var t={initialize:function(y,w){this.viz=w;this.canvas=w.canvas;this.config=w.config[y];this.nodeTypes=w.fx.nodeTypes;var x=this.config.type;this.dom=x=="auto"?(w.config.Label.type!="Native"):(x!="Native");this.labelContainer=this.dom&&w.labels.getLabelContainer();this.isEnabled()&&this.initializePost()},initializePost:c.empty,setAsProperty:c.lambda(false),isEnabled:function(){return this.config.enable},isLabel:function(z,y){z=c.event.get(z,y);var w=this.labelContainer,x=z.target||z.srcElement;if(x&&x.parentNode==w){return x}return false}};var h={onMouseUp:c.empty,onMouseDown:c.empty,onMouseMove:c.empty,onMouseOver:c.empty,onMouseOut:c.empty,onMouseWheel:c.empty,onTouchStart:c.empty,onTouchMove:c.empty,onTouchEnd:c.empty,onTouchCancel:c.empty};var s=new q({initialize:function(w){this.viz=w;this.canvas=w.canvas;this.node=false;this.edge=false;this.registeredObjects=[];this.attachEvents()},attachEvents:function(){var y=this.canvas.getElement(),x=this;y.oncontextmenu=c.lambda(false);c.addEvents(y,{mouseup:function(B,A){var z=c.event.get(B,A);x.handleEvent("MouseUp",B,A,x.makeEventObject(B,A),c.event.isRightClick(z))},mousedown:function(B,A){var z=c.event.get(B,A);x.handleEvent("MouseDown",B,A,x.makeEventObject(B,A),c.event.isRightClick(z))},mousemove:function(A,z){x.handleEvent("MouseMove",A,z,x.makeEventObject(A,z))},mouseover:function(A,z){x.handleEvent("MouseOver",A,z,x.makeEventObject(A,z))},mouseout:function(A,z){x.handleEvent("MouseOut",A,z,x.makeEventObject(A,z))},touchstart:function(A,z){x.handleEvent("TouchStart",A,z,x.makeEventObject(A,z))},touchmove:function(A,z){x.handleEvent("TouchMove",A,z,x.makeEventObject(A,z))},touchend:function(A,z){x.handleEvent("TouchEnd",A,z,x.makeEventObject(A,z))}});var w=function(C,B){var A=c.event.get(C,B);var z=c.event.getWheel(A);x.handleEvent("MouseWheel",C,B,z)};if(!document.getBoxObjectFor&&window.mozInnerScreenX==null){c.addEvent(y,"mousewheel",w)}else{y.addEventListener("DOMMouseScroll",w,false)}},register:function(w){this.registeredObjects.push(w)},handleEvent:function(){var x=Array.prototype.slice.call(arguments),A=x.shift();for(var z=0,y=this.registeredObjects,w=y.length;z<w;z++){y[z]["on"+A].apply(y[z],x)}},makeEventObject:function(C,B){var z=this,A=this.viz.graph,y=this.viz.fx,x=y.nodeTypes,w=y.edgeTypes;return{pos:false,node:false,edge:false,contains:false,getNodeCalled:false,getEdgeCalled:false,getPos:function(){var F=z.viz.canvas,G=F.getSize(),H=F.getPos(),E=F.translateOffsetX,D=F.translateOffsetY,K=F.scaleOffsetX,I=F.scaleOffsetY,J=c.event.getPos(C,B);this.pos={x:(J.x-H.x-G.width/2-E)*1/K,y:(J.y-H.y-G.height/2-D)*1/I};return this.pos},getNode:function(){if(this.getNodeCalled){return this.node}this.getNodeCalled=true;for(var G in A.nodes){var F=A.nodes[G],E=F&&x[F.getData("type")],D=E&&E.contains&&E.contains.call(y,F,this.getPos());if(D){this.contains=D;return z.node=this.node=F}}return z.node=this.node=false},getEdge:function(){if(this.getEdgeCalled){return this.edge}this.getEdgeCalled=true;var F={};for(var J in A.edges){var H=A.edges[J];F[J]=true;for(var I in H){if(I in F){continue}var G=H[I],E=G&&w[G.getData("type")],D=E&&E.contains&&E.contains.call(y,G,this.getPos());if(D){this.contains=D;return z.edge=this.edge=G}}}return z.edge=this.edge=false},getContains:function(){if(this.getNodeCalled){return this.contains}this.getNode();return this.contains}}}});var o={initializeExtras:function(){var x=new s(this),w=this;c.each(["NodeStyles","Tips","Navigation","Events"],function(y){var z=new o.Classes[y](y,w);if(z.isEnabled()){x.register(z)}if(z.setAsProperty()){w[y.toLowerCase()]=z}})}};o.Classes={};o.Classes.Events=new q({Implements:[t,h],initializePost:function(){this.fx=this.viz.fx;this.ntypes=this.viz.fx.nodeTypes;this.etypes=this.viz.fx.edgeTypes;this.hovered=false;this.pressed=false;this.touched=false;this.touchMoved=false;this.moved=false},setAsProperty:c.lambda(true),onMouseUp:function(A,z,x,y){var w=c.event.get(A,z);if(!this.moved){if(y){this.config.onRightClick(this.hovered,x,w)}else{this.config.onClick(this.pressed,x,w)}}if(this.pressed){if(this.moved){this.config.onDragEnd(this.pressed,x,w)}else{this.config.onDragCancel(this.pressed,x,w)}this.pressed=this.moved=false}},onMouseOut:function(B,A,z){var x=c.event.get(B,A),y;if(this.dom&&(y=this.isLabel(B,A))){this.config.onMouseLeave(this.viz.graph.getNode(y.id),z,x);this.hovered=false;return}var w=x.relatedTarget,C=this.canvas.getElement();while(w&&w.parentNode){if(C==w.parentNode){return}w=w.parentNode}if(this.hovered){this.config.onMouseLeave(this.hovered,z,x);this.hovered=false}},onMouseOver:function(A,z,y){var w=c.event.get(A,z),x;if(this.dom&&(x=this.isLabel(A,z))){this.hovered=this.viz.graph.getNode(x.id);this.config.onMouseEnter(this.hovered,y,w)}},onMouseMove:function(C,B,A){var x,w=c.event.get(C,B);if(this.pressed){this.moved=true;this.config.onDragMove(this.pressed,A,w);return}if(this.dom){this.config.onMouseMove(this.hovered,A,w)}else{if(this.hovered){var D=this.hovered;var z=D.nodeFrom?this.etypes[D.getData("type")]:this.ntypes[D.getData("type")];var y=z&&z.contains&&z.contains.call(this.fx,D,A.getPos());if(y){this.config.onMouseMove(D,A,w);return}else{this.config.onMouseLeave(D,A,w);this.hovered=false}}if(this.hovered=(A.getNode()||(this.config.enableForEdges&&A.getEdge()))){this.config.onMouseEnter(this.hovered,A,w)}else{this.config.onMouseMove(false,A,w)}}},onMouseWheel:function(x,w,y){this.config.onMouseWheel(y,c.event.get(x,w))},onMouseDown:function(z,y,x){var w=c.event.get(z,y);this.pressed=x.getNode()||(this.config.enableForEdges&&x.getEdge());this.config.onDragStart(this.pressed,x,w)},onTouchStart:function(z,y,x){var w=c.event.get(z,y);this.touched=x.getNode()||(this.config.enableForEdges&&x.getEdge());this.config.onTouchStart(this.touched,x,w)},onTouchMove:function(z,y,x){var w=c.event.get(z,y);if(this.touched){this.touchMoved=true;this.config.onTouchMove(this.touched,x,w)}},onTouchEnd:function(z,y,x){var w=c.event.get(z,y);if(this.touched){if(this.touchMoved){this.config.onTouchEnd(this.touched,x,w)}else{this.config.onTouchCancel(this.touched,x,w)}this.touched=this.touchMoved=false}}});o.Classes.Tips=new q({Implements:[t,h],initializePost:function(){if(document.body){var w=c("_tooltip")||document.createElement("div");w.id="_tooltip";w.className="tip";c.extend(w.style,{position:"absolute",display:"none",zIndex:13000});document.body.appendChild(w);this.tip=w;this.node=false}},setAsProperty:c.lambda(true),onMouseOut:function(y,x){if(this.dom&&this.isLabel(y,x)){this.hide(true);return}var w=y.relatedTarget,z=this.canvas.getElement();while(w&&w.parentNode){if(z==w.parentNode){return}w=w.parentNode}this.hide(false)},onMouseOver:function(y,x){var w;if(this.dom&&(w=this.isLabel(y,x))){this.node=this.viz.graph.getNode(w.id);this.config.onShow(this.tip,this.node,w)}},onMouseMove:function(z,y,w){if(this.dom&&this.isLabel(z,y)){this.setTooltipPosition(c.event.getPos(z,y))}if(!this.dom){var x=w.getNode();if(!x){this.hide(true);return}if(this.config.force||!this.node||this.node.id!=x.id){this.node=x;this.config.onShow(this.tip,x,w.getContains())}this.setTooltipPosition(c.event.getPos(z,y))}},setTooltipPosition:function(F){var B=this.tip,A=B.style,z=this.config;A.display="";var D={height:document.body.clientHeight,width:document.body.clientWidth};var C={width:B.offsetWidth,height:B.offsetHeight};var w=z.offsetX,E=z.offsetY;A.top=((F.y+E+C.height>D.height)?(F.y-C.height-E):F.y+E)+"px";A.left=((F.x+C.width+w>D.width)?(F.x-C.width-w):F.x+w)+"px"},hide:function(w){this.tip.style.display="none";w&&this.config.onHide()}});o.Classes.NodeStyles=new q({Implements:[t,h],initializePost:function(){this.fx=this.viz.fx;this.types=this.viz.fx.nodeTypes;this.nStyles=this.config;this.nodeStylesOnHover=this.nStyles.stylesHover;this.nodeStylesOnClick=this.nStyles.stylesClick;this.hoveredNode=false;this.fx.nodeFxAnimation=new u();this.down=false;this.move=false},onMouseOut:function(y,x){this.down=this.move=false;if(!this.hoveredNode){return}if(this.dom&&this.isLabel(y,x)){this.toggleStylesOnHover(this.hoveredNode,false)}var w=y.relatedTarget,z=this.canvas.getElement();while(w&&w.parentNode){if(z==w.parentNode){return}w=w.parentNode}this.toggleStylesOnHover(this.hoveredNode,false);this.hoveredNode=false},onMouseOver:function(z,y){var w;if(this.dom&&(w=this.isLabel(z,y))){var x=this.viz.graph.getNode(w.id);if(x.selected){return}this.hoveredNode=x;this.toggleStylesOnHover(this.hoveredNode,true)}},onMouseDown:function(A,z,x,y){if(y){return}var w;if(this.dom&&(w=this.isLabel(A,z))){this.down=this.viz.graph.getNode(w.id)}else{if(!this.dom){this.down=x.getNode()}}this.move=false},onMouseUp:function(z,y,w,x){if(x){return}if(!this.move){this.onClick(w.getNode())}this.down=this.move=false},getRestoredStyles:function(x,w){var z={},y=this["nodeStylesOn"+w];for(var A in y){z[A]=x.styles["$"+A]}return z},toggleStylesOnHover:function(w,x){if(this.nodeStylesOnHover){this.toggleStylesOn("Hover",w,x)}},toggleStylesOnClick:function(w,x){if(this.nodeStylesOnClick){this.toggleStylesOn("Click",w,x)}},toggleStylesOn:function(A,w,C){var D=this.viz;var B=this.nStyles;if(C){var z=this;if(!w.styles){w.styles=c.merge(w.data,{})}for(var E in this["nodeStylesOn"+A]){var x="$"+E;if(!(x in w.styles)){w.styles[x]=w.getData(E)}}D.fx.nodeFx(c.extend({elements:{id:w.id,properties:z["nodeStylesOn"+A]},transition:i.Quart.easeOut,duration:300,fps:40},this.config))}else{var y=this.getRestoredStyles(w,A);D.fx.nodeFx(c.extend({elements:{id:w.id,properties:y},transition:i.Quart.easeOut,duration:300,fps:40},this.config))}},onClick:function(w){if(!w){return}var x=this.nodeStylesOnClick;if(!x){return}if(w.selected){this.toggleStylesOnClick(w,false);delete w.selected}else{this.viz.graph.eachNode(function(z){if(z.selected){for(var y in x){z.setData(y,z.styles["$"+y],"end")}delete z.selected}});this.toggleStylesOnClick(w,true);w.selected=true;delete w.hovered;this.hoveredNode=false}},onMouseMove:function(C,B,z){if(this.down){this.move=true}if(this.dom&&this.isLabel(C,B)){return}var A=this.nodeStylesOnHover;if(!A){return}if(!this.dom){if(this.hoveredNode){var x=this.types[this.hoveredNode.getData("type")];var w=x&&x.contains&&x.contains.call(this.fx,this.hoveredNode,z.getPos());if(w){return}}var y=z.getNode();if(!this.hoveredNode&&!y){return}if(y.hovered){return}if(y&&!y.selected){this.fx.nodeFxAnimation.stopTimer();this.viz.graph.eachNode(function(E){if(E.hovered&&!E.selected){for(var D in A){E.setData(D,E.styles["$"+D],"end")}delete E.hovered}});y.hovered=true;this.hoveredNode=y;this.toggleStylesOnHover(y,true)}else{if(this.hoveredNode&&!this.hoveredNode.selected){this.fx.nodeFxAnimation.stopTimer();this.toggleStylesOnHover(this.hoveredNode,false);delete this.hoveredNode.hovered;this.hoveredNode=false}}}}});o.Classes.Navigation=new q({Implements:[t,h],initializePost:function(){this.pos=false;this.pressed=false},onMouseWheel:function(z,y,w){if(!this.config.zooming){return}c.event.stop(c.event.get(z,y));var A=this.config.zooming/1000,x=1+w*A;this.canvas.scale(x,x)},onMouseDown:function(B,A,z){if(!this.config.panning){return}if(this.config.panning=="avoid nodes"&&z.getNode()){return}this.pressed=true;this.pos=z.getPos();var y=this.canvas,x=y.translateOffsetX,w=y.translateOffsetY,D=y.scaleOffsetX,C=y.scaleOffsetY;this.pos.x*=D;this.pos.x+=x;this.pos.y*=C;this.pos.y+=w},onMouseMove:function(D,C,F){if(!this.config.panning){return}if(!this.pressed){return}if(this.config.panning=="avoid nodes"&&F.getNode()){return}var B=this.pos,E=F.getPos(),z=this.canvas,A=z.translateOffsetX,w=z.translateOffsetY,J=z.scaleOffsetX,H=z.scaleOffsetY;E.x*=J;E.y*=H;E.x+=A;E.y+=w;var I=E.x-B.x,G=E.y-B.y;this.pos=E;this.canvas.translate(I*1/J,G*1/H)},onMouseUp:function(z,y,x,w){if(!this.config.panning){return}this.pressed=false}});var l;(function(){var w=typeof HTMLCanvasElement,y=(w=="object"||w=="function");function x(z,A){var B=document.createElement(z);for(var C in A){if(typeof A[C]=="object"){c.extend(B[C],A[C])}else{B[C]=A[C]}}if(z=="canvas"&&!y&&G_vmlCanvasManager){B=G_vmlCanvasManager.initElement(document.body.appendChild(B))}return B}$jit.Canvas=l=new q({canvases:[],pos:false,element:false,labelContainer:false,translateOffsetX:0,translateOffsetY:0,scaleOffsetX:1,scaleOffsetY:1,initialize:function(K,E){this.viz=K;this.opt=E;var B=c.type(E.injectInto)=="string"?E.injectInto:E.injectInto.id,C=B+"-label",z=c(B),D=E.width||z.offsetWidth,L=E.height||z.offsetHeight;this.id=B;var F={injectInto:B,width:D,height:L};this.element=x("div",{id:B+"-canvaswidget",style:{position:"relative",width:D+"px",height:L+"px"}});this.labelContainer=this.createLabelContainer(E.Label.type,C,F);this.canvases.push(new l.Base({config:c.extend({idSuffix:"-canvas"},F),plot:function(M){K.fx.plot()},resize:function(){K.refresh()}}));var G=E.background;if(G){var J=new l.Background[G.type](K,c.extend(G,F));this.canvases.push(new l.Base(J))}var I=this.canvases.length;while(I--){this.element.appendChild(this.canvases[I].canvas);if(I>0){this.canvases[I].plot()}}this.element.appendChild(this.labelContainer);z.appendChild(this.element);var A=null,H=this;c.addEvent(window,"scroll",function(){clearTimeout(A);A=setTimeout(function(){H.getPos(true)},500)})},getCtx:function(z){return this.canvases[z||0].getCtx()},getConfig:function(){return this.opt},getElement:function(){return this.element},getSize:function(z){return this.canvases[z||0].getSize()},resize:function(D,z){this.getPos(true);this.translateOffsetX=this.translateOffsetY=0;this.scaleOffsetX=this.scaleOffsetY=1;for(var B=0,A=this.canvases.length;B<A;B++){this.canvases[B].resize(D,z)}var C=this.element.style;C.width=D+"px";C.height=z+"px";if(this.labelContainer){this.labelContainer.style.width=D+"px"}},translate:function(z,D,C){this.translateOffsetX+=z*this.scaleOffsetX;this.translateOffsetY+=D*this.scaleOffsetY;for(var B=0,A=this.canvases.length;B<A;B++){this.canvases[B].translate(z,D,C)}},scale:function(E,B,C){var F=this.scaleOffsetX*E,D=this.scaleOffsetY*B;var H=this.translateOffsetX*(E-1)/F,G=this.translateOffsetY*(B-1)/D;this.scaleOffsetX=F;this.scaleOffsetY=D;for(var A=0,z=this.canvases.length;A<z;A++){this.canvases[A].scale(E,B,true)}this.translate(H,G,false)},getPos:function(z){if(z||!this.pos){return this.pos=c.getPos(this.getElement())}return this.pos},clear:function(z){this.canvases[z||0].clear()},path:function(A,B){var z=this.canvases[0].getCtx();z.beginPath();B(z);z[A]();z.closePath()},createLabelContainer:function(B,F,E){var D="http://www.w3.org/2000/svg";if(B=="HTML"||B=="Native"){return x("div",{id:F,style:{overflow:"visible",position:"absolute",top:0,left:0,width:E.width+"px",height:0}})}else{if(B=="SVG"){var C=document.createElementNS(D,"svg:svg");C.setAttribute("width",E.width);C.setAttribute("height",E.height);var A=C.style;A.position="absolute";A.left=A.top="0px";var z=document.createElementNS(D,"svg:g");z.setAttribute("width",E.width);z.setAttribute("height",E.height);z.setAttribute("x",0);z.setAttribute("y",0);z.setAttribute("id",F);C.appendChild(z);return C}}}});l.Base=new q({translateOffsetX:0,translateOffsetY:0,scaleOffsetX:1,scaleOffsetY:1,initialize:function(z){this.viz=z;this.opt=z.config;this.size=false;this.createCanvas();this.translateToCenter()},createCanvas:function(){var A=this.opt,B=A.width,z=A.height;this.canvas=x("canvas",{id:A.injectInto+A.idSuffix,width:B,height:z,style:{position:"absolute",top:0,left:0,width:B+"px",height:z+"px"}})},getCtx:function(){if(!this.ctx){return this.ctx=this.canvas.getContext("2d")}return this.ctx},getSize:function(){if(this.size){return this.size}var z=this.canvas;return this.size={width:z.width,height:z.height}},translateToCenter:function(C){var A=this.getSize(),B=C?(A.width-C.width-this.translateOffsetX*2):A.width;height=C?(A.height-C.height-this.translateOffsetY*2):A.height;var z=this.getCtx();C&&z.scale(1/this.scaleOffsetX,1/this.scaleOffsetY);z.translate(B/2,height/2)},resize:function(C,z){var B=this.getSize(),A=this.canvas,D=A.style;this.size=false;A.width=C;A.height=z;D.width=C+"px";D.height=z+"px";if(!y){this.translateToCenter(B)}else{this.translateToCenter()}this.translateOffsetX=this.translateOffsetY=0;this.scaleOffsetX=this.scaleOffsetY=1;this.clear();this.viz.resize(C,z,this)},translate:function(z,D,A){var C=this.scaleOffsetX,B=this.scaleOffsetY;this.translateOffsetX+=z*C;this.translateOffsetY+=D*B;this.getCtx().translate(z,D);!A&&this.plot()},scale:function(z,B,A){this.scaleOffsetX*=z;this.scaleOffsetY*=B;this.getCtx().scale(z,B);!A&&this.plot()},clear:function(){var B=this.getSize(),A=this.translateOffsetX,z=this.translateOffsetY,D=this.scaleOffsetX,C=this.scaleOffsetY;this.getCtx().clearRect((-B.width/2-A)*1/D,(-B.height/2-z)*1/C,B.width*1/D,B.height*1/C)},plot:function(){this.clear();this.viz.plot(this)}});l.Background={};l.Background.Circles=new q({initialize:function(z,A){this.viz=z;this.config=c.merge({idSuffix:"-bkcanvas",levelDistance:100,numberOfCircles:6,CanvasStyles:{},offset:0},A)},resize:function(A,z,B){this.plot(B)},plot:function(z){var A=z.canvas,G=z.getCtx(),D=this.config,F=D.CanvasStyles;for(var H in F){G[H]=F[H]}var B=D.numberOfCircles,E=D.levelDistance;for(var C=1;C<=B;C++){G.beginPath();G.arc(0,0,E*C,0,2*Math.PI,false);G.stroke();G.closePath()}}})})();var b=function(x,w){this.theta=x;this.rho=w};$jit.Polar=b;b.prototype={getc:function(w){return this.toComplex(w)},getp:function(){return this},set:function(w){w=w.getp();this.theta=w.theta;this.rho=w.rho},setc:function(w,z){this.rho=Math.sqrt(w*w+z*z);this.theta=Math.atan2(z,w);if(this.theta<0){this.theta+=Math.PI*2}},setp:function(x,w){this.theta=x;this.rho=w},clone:function(){return new b(this.theta,this.rho)},toComplex:function(A){var w=Math.cos(this.theta)*this.rho;var z=Math.sin(this.theta)*this.rho;if(A){return{x:w,y:z}}return new p(w,z)},add:function(w){return new b(this.theta+w.theta,this.rho+w.rho)},scale:function(w){return new b(this.theta,this.rho*w)},equals:function(w){return this.theta==w.theta&&this.rho==w.rho},$add:function(w){this.theta=this.theta+w.theta;this.rho+=w.rho;return this},$madd:function(w){this.theta=(this.theta+w.theta)%(Math.PI*2);this.rho+=w.rho;return this},$scale:function(w){this.rho*=w;return this},interpolate:function(y,F){var z=Math.PI,C=z*2;var x=function(H){var G=(H<0)?(H%C)+C:H%C;return G};var B=this.theta,E=y.theta;var A,D=Math.abs(B-E);if(D==z){if(B>E){A=x((E+((B-C)-E)*F))}else{A=x((E-C+(B-(E))*F))}}else{if(D>=z){if(B>E){A=x((E+((B-C)-E)*F))}else{A=x((E-C+(B-(E-C))*F))}}else{A=x((E+(B-E)*F))}}var w=(this.rho-y.rho)*F+y.rho;return{theta:A,rho:w}}};var k=function(x,w){return new b(x,w)};b.KER=k(0,0);var p=function(w,z){this.x=w;this.y=z};$jit.Complex=p;p.prototype={getc:function(){return this},getp:function(w){return this.toPolar(w)},set:function(w){w=w.getc(true);this.x=w.x;this.y=w.y},setc:function(w,z){this.x=w;this.y=z},setp:function(x,w){this.x=Math.cos(x)*w;this.y=Math.sin(x)*w},clone:function(){return new p(this.x,this.y)},toPolar:function(y){var w=this.norm();var x=Math.atan2(this.y,this.x);if(x<0){x+=Math.PI*2}if(y){return{theta:x,rho:w}}return new b(x,w)},norm:function(){return Math.sqrt(this.squaredNorm())},squaredNorm:function(){return this.x*this.x+this.y*this.y},add:function(w){return new p(this.x+w.x,this.y+w.y)},prod:function(w){return new p(this.x*w.x-this.y*w.y,this.y*w.x+this.x*w.y)},conjugate:function(){return new p(this.x,-this.y)},scale:function(w){return new p(this.x*w,this.y*w)},equals:function(w){return this.x==w.x&&this.y==w.y},$add:function(w){this.x+=w.x;this.y+=w.y;return this},$prod:function(A){var w=this.x,z=this.y;this.x=w*A.x-z*A.y;this.y=z*A.x+w*A.y;return this},$conjugate:function(){this.y=-this.y;return this},$scale:function(w){this.x*=w;this.y*=w;return this},$div:function(B){var w=this.x,A=this.y;var z=B.squaredNorm();this.x=w*B.x+A*B.y;this.y=A*B.x-w*B.y;return this.$scale(1/z)}};var r=function(x,w){return new p(x,w)};p.KER=r(0,0);$jit.Graph=new q({initialize:function(y,x,w,C){var A={complex:false,Node:{}};this.Node=x;this.Edge=w;this.Label=C;this.opt=c.merge(A,y||{});this.nodes={};this.edges={};var z=this;this.nodeList={};for(var B in j){z.nodeList[B]=(function(D){return function(){var E=Array.prototype.slice.call(arguments);z.eachNode(function(F){F[D].apply(F,E)})}})(B)}},getNode:function(w){if(this.hasNode(w)){return this.nodes[w]}return false},getByName:function(w){for(var y in this.nodes){var x=this.nodes[y];if(x.name==w){return x}}return false},getAdjacence:function(x,w){if(x in this.edges){return this.edges[x][w]}return false},addNode:function(x){if(!this.nodes[x.id]){var w=this.edges[x.id]={};this.nodes[x.id]=new e.Node(c.extend({id:x.id,name:x.name,data:c.merge(x.data||{},{}),adjacencies:w},this.opt.Node),this.opt.complex,this.Node,this.Edge,this.Label)}return this.nodes[x.id]},addAdjacence:function(z,y,x){if(!this.hasNode(z.id)){this.addNode(z)}if(!this.hasNode(y.id)){this.addNode(y)}z=this.nodes[z.id];y=this.nodes[y.id];if(!z.adjacentTo(y)){var A=this.edges[z.id]=this.edges[z.id]||{};var w=this.edges[y.id]=this.edges[y.id]||{};A[y.id]=w[z.id]=new e.Adjacence(z,y,x,this.Edge,this.Label);return A[y.id]}return this.edges[z.id][y.id]},removeNode:function(y){if(this.hasNode(y)){delete this.nodes[y];var x=this.edges[y];for(var w in x){delete this.edges[w][y]}delete this.edges[y]}},removeAdjacence:function(x,w){delete this.edges[x][w];delete this.edges[w][x]},hasNode:function(w){return w in this.nodes},empty:function(){this.nodes={};this.edges={}}});var e=$jit.Graph;var j;(function(){var w=function(D,F,A,C,E){var B;A=A||"current";D="$"+(D?D+"-":"");if(A=="current"){B=this.data}else{if(A=="start"){B=this.startData}else{if(A=="end"){B=this.endData}}}var z=D+F;if(C){return B[z]}if(!this.Config.overridable){return E[F]||0}return(z in B)?B[z]:((z in this.data)?this.data[z]:(E[F]||0))};var y=function(C,D,B,z){z=z||"current";C="$"+(C?C+"-":"");var A;if(z=="current"){A=this.data}else{if(z=="start"){A=this.startData}else{if(z=="end"){A=this.endData}}}A[C+D]=B};var x=function(B,z){B="$"+(B?B+"-":"");var A=this;c.each(z,function(D){var C=B+D;delete A.data[C];delete A.endData[C];delete A.startData[C]})};j={getData:function(B,z,A){return w.call(this,"",B,z,A,this.Config)},setData:function(B,A,z){y.call(this,"",B,A,z)},setDataset:function(C,D){C=c.splat(C);for(var z in D){for(var B=0,E=c.splat(D[z]),A=C.length;B<A;B++){this.setData(z,E[B],C[B])}}},removeData:function(){x.call(this,"",Array.prototype.slice.call(arguments))},getCanvasStyle:function(B,z,A){return w.call(this,"canvas",B,z,A,this.Config.CanvasStyles)},setCanvasStyle:function(B,A,z){y.call(this,"canvas",B,A,z)},setCanvasStyles:function(C,D){C=c.splat(C);for(var z in D){for(var B=0,E=c.splat(D[z]),A=C.length;B<A;B++){this.setCanvasStyle(z,E[B],C[B])}}},removeCanvasStyle:function(){x.call(this,"canvas",Array.prototype.slice.call(arguments))},getLabelData:function(B,z,A){return w.call(this,"label",B,z,A,this.Label)},setLabelData:function(B,A,z){y.call(this,"label",B,A,z)},setLabelDataset:function(C,D){C=c.splat(C);for(var z in D){for(var B=0,E=c.splat(D[z]),A=C.length;B<A;B++){this.setLabelData(z,E[B],C[B])}}},removeLabelData:function(){x.call(this,"label",Array.prototype.slice.call(arguments))}}})();e.Node=new q({initialize:function(y,A,x,w,B){var z={id:"",name:"",data:{},startData:{},endData:{},adjacencies:{},selected:false,drawn:false,exist:false,angleSpan:{begin:0,end:0},pos:(A&&r(0,0))||k(0,0),startPos:(A&&r(0,0))||k(0,0),endPos:(A&&r(0,0))||k(0,0)};c.extend(this,c.extend(z,y));this.Config=this.Node=x;this.Edge=w;this.Label=B},adjacentTo:function(w){return w.id in this.adjacencies},getAdjacency:function(w){return this.adjacencies[w]},getPos:function(w){w=w||"current";if(w=="current"){return this.pos}else{if(w=="end"){return this.endPos}else{if(w=="start"){return this.startPos}}}},setPos:function(x,w){w=w||"current";var y;if(w=="current"){y=this.pos}else{if(w=="end"){y=this.endPos}else{if(w=="start"){y=this.startPos}}}y.set(x)}});e.Node.implement(j);e.Adjacence=new q({initialize:function(x,A,y,w,z){this.nodeFrom=x;this.nodeTo=A;this.data=y||{};this.startData={};this.endData={};this.Config=this.Edge=w;this.Label=z}});e.Adjacence.implement(j);e.Util={filter:function(x){if(!x||!(c.type(x)=="string")){return function(){return true}}var w=x.split(" ");return function(z){for(var y=0;y<w.length;y++){if(z[w[y]]){return false}}return true}},getNode:function(w,x){return w.nodes[x]},eachNode:function(A,z,w){var y=this.filter(w);for(var x in A.nodes){if(y(A.nodes[x])){z(A.nodes[x])}}},eachAdjacency:function(B,C,x){var y=B.adjacencies,A=this.filter(x);for(var D in y){var w=y[D];if(A(w)){if(w.nodeFrom!=B){var z=w.nodeFrom;w.nodeFrom=w.nodeTo;w.nodeTo=z}C(w,D)}}},computeLevels:function(C,D,z,y){z=z||0;var A=this.filter(y);this.eachNode(C,function(E){E._flag=false;E._depth=-1},y);var x=C.getNode(D);x._depth=z;var w=[x];while(w.length!=0){var B=w.pop();B._flag=true;this.eachAdjacency(B,function(E){var F=E.nodeTo;if(F._flag==false&&A(F)){if(F._depth<0){F._depth=B._depth+1+z}w.unshift(F)}},y)}},eachBFS:function(B,C,A,x){var y=this.filter(x);this.clean(B);var w=[B.getNode(C)];while(w.length!=0){var z=w.pop();z._flag=true;A(z,z._depth);this.eachAdjacency(z,function(D){var E=D.nodeTo;if(E._flag==false&&y(E)){E._flag=true;w.unshift(E)}},x)}},eachLevel:function(A,E,x,B,z){var D=A._depth,w=this.filter(z),C=this;x=x===false?Number.MAX_VALUE-D:x;(function y(H,F,G){var I=H._depth;if(I>=F&&I<=G&&w(H)){B(H,I)}if(I<G){C.eachAdjacency(H,function(J){var K=J.nodeTo;if(K._depth>I){y(K,F,G)}})}})(A,E+D,x+D)},eachSubgraph:function(x,y,w){this.eachLevel(x,0,false,y,w)},eachSubnode:function(x,y,w){this.eachLevel(x,1,1,y,w)},anySubnode:function(z,y,x){var w=false;y=y||c.lambda(true);var A=c.type(y)=="string"?function(B){return B[y]}:y;this.eachSubnode(z,function(B){if(A(B)){w=true}},x);return w},getSubnodes:function(B,C,w){var y=[],A=this;C=C||0;var z,x;if(c.type(C)=="array"){z=C[0];x=C[1]}else{z=C;x=Number.MAX_VALUE-B._depth}this.eachLevel(B,z,x,function(D){y.push(D)},w);return y},getParents:function(x){var w=[];this.eachAdjacency(x,function(y){var z=y.nodeTo;if(z._depth<x._depth){w.push(z)}});return w},isDescendantOf:function(z,A){if(z.id==A){return true}var y=this.getParents(z),w=false;for(var x=0;!w&&x<y.length;x++){w=w||this.isDescendantOf(y[x],A)}return w},clean:function(w){this.eachNode(w,function(x){x._flag=false})},getClosestNodeToOrigin:function(x,y,w){return this.getClosestNodeToPos(x,b.KER,y,w)},getClosestNodeToPos:function(y,B,A,w){var x=null;A=A||"current";B=B&&B.getc(true)||p.KER;var z=function(D,C){var F=D.x-C.x,E=D.y-C.y;return F*F+E*E};this.eachNode(y,function(C){x=(x==null||z(C.getPos(A).getc(true),B)<z(x.getPos(A).getc(true),B))?C:x},w);return x}};c.each(["getNode","eachNode","computeLevels","eachBFS","clean","getClosestNodeToPos","getClosestNodeToOrigin"],function(w){e.prototype[w]=function(){return e.Util[w].apply(e.Util,[this].concat(Array.prototype.slice.call(arguments)))}});c.each(["eachAdjacency","eachLevel","eachSubgraph","eachSubnode","anySubnode","getSubnodes","getParents","isDescendantOf"],function(w){e.Node.prototype[w]=function(){return e.Util[w].apply(e.Util,[this].concat(Array.prototype.slice.call(arguments)))}});e.Op={options:{type:"nothing",duration:2000,hideLabels:true,fps:30},initialize:function(w){this.viz=w},removeNode:function(B,z){var w=this.viz;var x=c.merge(this.options,w.controller,z);var D=c.splat(B);var y,A,C;switch(x.type){case"nothing":for(y=0;y<D.length;y++){w.graph.removeNode(D[y])}break;case"replot":this.removeNode(D,{type:"nothing"});w.labels.clearLabels();w.refresh(true);break;case"fade:seq":case"fade":A=this;for(y=0;y<D.length;y++){C=w.graph.getNode(D[y]);C.setData("alpha",0,"end")}w.fx.animate(c.merge(x,{modes:["node-property:alpha"],onComplete:function(){A.removeNode(D,{type:"nothing"});w.labels.clearLabels();w.reposition();w.fx.animate(c.merge(x,{modes:["linear"]}))}}));break;case"fade:con":A=this;for(y=0;y<D.length;y++){C=w.graph.getNode(D[y]);C.setData("alpha",0,"end");C.ignore=true}w.reposition();w.fx.animate(c.merge(x,{modes:["node-property:alpha","linear"],onComplete:function(){A.removeNode(D,{type:"nothing"})}}));break;case"iter":A=this;w.fx.sequence({condition:function(){return D.length!=0},step:function(){A.removeNode(D.shift(),{type:"nothing"});w.labels.clearLabels()},onComplete:function(){x.onComplete()},duration:Math.ceil(x.duration/D.length)});break;default:this.doError()}},removeEdge:function(D,B){var w=this.viz;var z=c.merge(this.options,w.controller,B);var y=(c.type(D[0])=="string")?[D]:D;var A,C,x;switch(z.type){case"nothing":for(A=0;A<y.length;A++){w.graph.removeAdjacence(y[A][0],y[A][1])}break;case"replot":this.removeEdge(y,{type:"nothing"});w.refresh(true);break;case"fade:seq":case"fade":C=this;for(A=0;A<y.length;A++){x=w.graph.getAdjacence(y[A][0],y[A][1]);if(x){x.setData("alpha",0,"end")}}w.fx.animate(c.merge(z,{modes:["edge-property:alpha"],onComplete:function(){C.removeEdge(y,{type:"nothing"});w.reposition();w.fx.animate(c.merge(z,{modes:["linear"]}))}}));break;case"fade:con":C=this;for(A=0;A<y.length;A++){x=w.graph.getAdjacence(y[A][0],y[A][1]);if(x){x.setData("alpha",0,"end");x.ignore=true}}w.reposition();w.fx.animate(c.merge(z,{modes:["edge-property:alpha","linear"],onComplete:function(){C.removeEdge(y,{type:"nothing"})}}));break;case"iter":C=this;w.fx.sequence({condition:function(){return y.length!=0},step:function(){C.removeEdge(y.shift(),{type:"nothing"});w.labels.clearLabels()},onComplete:function(){z.onComplete()},duration:Math.ceil(z.duration/y.length)});break;default:this.doError()}},sum:function(A,z){var w=this.viz;var y=c.merge(this.options,w.controller,z),x=w.root;var C;w.root=z.id||w.root;switch(y.type){case"nothing":C=w.construct(A);C.eachNode(function(E){E.eachAdjacency(function(F){w.graph.addAdjacence(F.nodeFrom,F.nodeTo,F.data)})});break;case"replot":w.refresh(true);this.sum(A,{type:"nothing"});w.refresh(true);break;case"fade:seq":case"fade":case"fade:con":that=this;C=w.construct(A);var D=this.preprocessSum(C);var B=!D?["node-property:alpha"]:["node-property:alpha","edge-property:alpha"];w.reposition();if(y.type!="fade:con"){w.fx.animate(c.merge(y,{modes:["linear"],onComplete:function(){w.fx.animate(c.merge(y,{modes:B,onComplete:function(){y.onComplete()}}))}}))}else{w.graph.eachNode(function(E){if(E.id!=x&&E.pos.getp().equals(b.KER)){E.pos.set(E.endPos);E.startPos.set(E.endPos)}});w.fx.animate(c.merge(y,{modes:["linear"].concat(B)}))}break;default:this.doError()}},morph:function(E,x,z){var B=this.viz;var F=c.merge(this.options,B.controller,x),A=B.root;var C;B.root=x.id||B.root;switch(F.type){case"nothing":C=B.construct(E);C.eachNode(function(I){var H=B.graph.hasNode(I.id);I.eachAdjacency(function(M){var L=!!B.graph.getAdjacence(M.nodeFrom.id,M.nodeTo.id);B.graph.addAdjacence(M.nodeFrom,M.nodeTo,M.data);if(L){var K=B.graph.getAdjacence(M.nodeFrom.id,M.nodeTo.id);for(var N in (M.data||{})){K.data[N]=M.data[N]}}});if(H){var G=B.graph.getNode(I.id);for(var J in (I.data||{})){G.data[J]=I.data[J]}}});B.graph.eachNode(function(G){G.eachAdjacency(function(H){if(!C.getAdjacence(H.nodeFrom.id,H.nodeTo.id)){B.graph.removeAdjacence(H.nodeFrom.id,H.nodeTo.id)}});if(!C.hasNode(G.id)){B.graph.removeNode(G.id)}});break;case"replot":B.labels.clearLabels(true);this.morph(E,{type:"nothing"});B.refresh(true);B.refresh(true);break;case"fade:seq":case"fade":case"fade:con":that=this;C=B.construct(E);var D=z&&("node-property" in z)&&c.map(c.splat(z["node-property"]),function(G){return"$"+G});B.graph.eachNode(function(H){var I=C.getNode(H.id);if(!I){H.setData("alpha",1);H.setData("alpha",1,"start");H.setData("alpha",0,"end");H.ignore=true}else{var G=I.data;for(var J in G){if(D&&(c.indexOf(D,J)>-1)){H.endData[J]=G[J]}else{H.data[J]=G[J]}}}});B.graph.eachNode(function(G){if(G.ignore){return}G.eachAdjacency(function(H){if(H.nodeFrom.ignore||H.nodeTo.ignore){return}var I=C.getNode(H.nodeFrom.id);var J=C.getNode(H.nodeTo.id);if(!I.adjacentTo(J)){var H=B.graph.getAdjacence(I.id,J.id);w=true;H.setData("alpha",1);H.setData("alpha",1,"start");H.setData("alpha",0,"end")}})});var w=this.preprocessSum(C);var y=!w?["node-property:alpha"]:["node-property:alpha","edge-property:alpha"];y[0]=y[0]+((z&&("node-property" in z))?(":"+c.splat(z["node-property"]).join(":")):"");y[1]=(y[1]||"edge-property:alpha")+((z&&("edge-property" in z))?(":"+c.splat(z["edge-property"]).join(":")):"");if(z&&("label-property" in z)){y.push("label-property:"+c.splat(z["label-property"]).join(":"))}B.reposition();B.graph.eachNode(function(G){if(G.id!=A&&G.pos.getp().equals(b.KER)){G.pos.set(G.endPos);G.startPos.set(G.endPos)}});B.fx.animate(c.merge(F,{modes:["polar"].concat(y),onComplete:function(){B.graph.eachNode(function(G){if(G.ignore){B.graph.removeNode(G.id)}});B.graph.eachNode(function(G){G.eachAdjacency(function(H){if(H.ignore){B.graph.removeAdjacence(H.nodeFrom.id,H.nodeTo.id)}})});F.onComplete()}}));break;default:}},contract:function(y,x){var w=this.viz;if(y.collapsed||!y.anySubnode(c.lambda(true))){return}x=c.merge(this.options,w.config,x||{},{modes:["node-property:alpha:span","linear"]});y.collapsed=true;(function z(A){A.eachSubnode(function(B){B.ignore=true;B.setData("alpha",0,x.type=="animate"?"end":"current");z(B)})})(y);if(x.type=="animate"){w.compute("end");if(w.rotated){w.rotate(w.rotated,"none",{property:"end"})}(function z(A){A.eachSubnode(function(B){B.setPos(y.getPos("end"),"end");z(B)})})(y);w.fx.animate(x)}else{if(x.type=="replot"){w.refresh()}}},expand:function(y,x){if(!("collapsed" in y)){return}var w=this.viz;x=c.merge(this.options,w.config,x||{},{modes:["node-property:alpha:span","linear"]});delete y.collapsed;(function z(A){A.eachSubnode(function(B){delete B.ignore;B.setData("alpha",1,x.type=="animate"?"end":"current");z(B)})})(y);if(x.type=="animate"){w.compute("end");if(w.rotated){w.rotate(w.rotated,"none",{property:"end"})}w.fx.animate(x)}else{if(x.type=="replot"){w.refresh()}}},preprocessSum:function(x){var w=this.viz;x.eachNode(function(z){if(!w.graph.hasNode(z.id)){w.graph.addNode(z);var A=w.graph.getNode(z.id);A.setData("alpha",0);A.setData("alpha",0,"start");A.setData("alpha",1,"end")}});var y=false;x.eachNode(function(z){z.eachAdjacency(function(A){var B=w.graph.getNode(A.nodeFrom.id);var C=w.graph.getNode(A.nodeTo.id);if(!B.adjacentTo(C)){var A=w.graph.addAdjacence(B,C,A.data);if(B.startAlpha==B.endAlpha&&C.startAlpha==C.endAlpha){y=true;A.setData("alpha",0);A.setData("alpha",0,"start");A.setData("alpha",1,"end")}}})});return y}};var a={none:{render:c.empty,contains:c.lambda(false)},circle:{render:function(z,A,w,y){var x=y.getCtx();x.beginPath();x.arc(A.x,A.y,w,0,Math.PI*2,true);x.closePath();x[z]()},contains:function(B,A,w){var y=B.x-A.x,x=B.y-A.y,z=y*y+x*x;return z<=w*w}},ellipse:{render:function(A,B,z,w,y){var x=y.getCtx();w/=2;z/=2;x.save();x.scale(z/w,w/z);x.beginPath();x.arc(B.x*(w/z),B.y*(z/w),w,0,Math.PI*2,true);x.closePath();x[A]();x.restore()},contains:function(D,C,z,w){z/=2;w/=2;var B=(z+w)/2,y=D.x-C.x,x=D.y-C.y,A=y*y+x*x;return A<=B*B}},square:{render:function(x,z,y,w){w.getCtx()[x+"Rect"](z.x-y,z.y-y,2*y,2*y)},contains:function(y,x,w){return Math.abs(x.x-y.x)<=w&&Math.abs(x.y-y.y)<=w}},rectangle:{render:function(z,A,y,w,x){x.getCtx()[z+"Rect"](A.x-y/2,A.y-w/2,y,w)},contains:function(z,y,x,w){return Math.abs(y.x-z.x)<=x/2&&Math.abs(y.y-z.y)<=w/2}},triangle:{render:function(C,D,z,w){var G=w.getCtx(),y=D.x,x=D.y-z,F=y-z,E=D.y+z,B=y+z,A=E;G.beginPath();G.moveTo(y,x);G.lineTo(F,E);G.lineTo(B,A);G.closePath();G[C]()},contains:function(y,x,w){return a.circle.contains(y,x,w)}},star:{render:function(A,C,B,x){var w=x.getCtx(),z=Math.PI/5;w.save();w.translate(C.x,C.y);w.beginPath();w.moveTo(B,0);for(var y=0;y<9;y++){w.rotate(z);if(y%2==0){w.lineTo((B/0.525731)*0.200811,0)}else{w.lineTo(B,0)}}w.closePath();w[A]();w.restore()},contains:function(y,x,w){return a.circle.contains(y,x,w)}}};var m={line:{render:function(z,y,x){var w=x.getCtx();w.beginPath();w.moveTo(z.x,z.y);w.lineTo(y.x,y.y);w.stroke()},contains:function(G,y,B,E){var z=Math.min,C=Math.max,x=z(G.x,y.x),F=C(G.x,y.x),w=z(G.y,y.y),D=C(G.y,y.y);if(B.x>=x&&B.x<=F&&B.y>=w&&B.y<=D){if(Math.abs(y.x-G.x)<=E){return true}var A=(y.y-G.y)/(y.x-G.x)*(B.x-G.x)+G.y;return Math.abs(A-B.y)<=E}return false}},arrow:{render:function(F,G,z,x,w){var H=w.getCtx();if(x){var y=F;F=G;G=y}var C=new p(G.x-F.x,G.y-F.y);C.$scale(z/C.norm());var A=new p(G.x-C.x,G.y-C.y),B=new p(-C.y/2,C.x/2),E=A.add(B),D=A.$add(B.$scale(-1));H.beginPath();H.moveTo(F.x,F.y);H.lineTo(G.x,G.y);H.stroke();H.beginPath();H.moveTo(E.x,E.y);H.lineTo(D.x,D.y);H.lineTo(G.x,G.y);H.closePath();H.fill()},contains:function(x,w,z,y){return m.line.contains(x,w,z,y)}},hyperline:{render:function(D,E,w,y){var F=y.getCtx();var z=A(D,E);if(z.a>1000||z.b>1000||z.ratio<0){F.beginPath();F.moveTo(D.x*w,D.y*w);F.lineTo(E.x*w,E.y*w);F.stroke()}else{var C=Math.atan2(E.y-z.y,E.x-z.x);var B=Math.atan2(D.y-z.y,D.x-z.x);var x=x(C,B);F.beginPath();F.arc(z.x*w,z.y*w,z.ratio*w,C,B,x);F.stroke()}function A(S,R){var K=(S.x*R.y-S.y*R.x),G=K;var J=S.squaredNorm(),I=R.squaredNorm();if(K==0){return{x:0,y:0,ratio:-1}}var Q=(S.y*I-R.y*J+S.y-R.y)/K;var O=(R.x*J-S.x*I+R.x-S.x)/G;var P=-Q/2;var N=-O/2;var M=(Q*Q+O*O)/4-1;if(M<0){return{x:0,y:0,ratio:-1}}var L=Math.sqrt(M);var H={x:P,y:N,ratio:L>1000?-1:L,a:Q,b:O};return H}function x(G,H){return(G<H)?((G+Math.PI>H)?false:true):((H+Math.PI>G)?true:false)}},contains:c.lambda(false)}};e.Plot={initialize:function(x,w){this.viz=x;this.config=x.config;this.node=x.config.Node;this.edge=x.config.Edge;this.animation=new u;this.nodeTypes=new w.Plot.NodeTypes;this.edgeTypes=new w.Plot.EdgeTypes;this.labels=x.labels},nodeHelper:a,edgeHelper:m,Interpolator:{map:{border:"color",color:"color",width:"number",height:"number",dim:"number",alpha:"number",lineWidth:"number",angularWidth:"number",span:"number",valueArray:"array-number",dimArray:"array-number"},canvas:{globalAlpha:"number",fillStyle:"color",strokeStyle:"color",lineWidth:"number",shadowBlur:"number",shadowColor:"color",shadowOffsetX:"number",shadowOffsetY:"number",miterLimit:"number"},label:{size:"number",color:"color"},compute:function(y,x,w){return y+(x-y)*w},moebius:function(D,C,F,z){var B=z.scale(-F);if(B.norm()<1){var w=B.x,E=B.y;var A=D.startPos.getc().moebiusTransformation(B);D.pos.setc(A.x,A.y);B.x=w;B.y=E}},linear:function(x,w,A){var z=x.startPos.getc(true);var y=x.endPos.getc(true);x.pos.setc(this.compute(z.x,y.x,A),this.compute(z.y,y.y,A))},polar:function(y,x,B){var A=y.startPos.getp(true);var z=y.endPos.getp();var w=z.interpolate(A,B);y.pos.setp(w.theta,w.rho)},number:function(x,C,B,w,A){var z=x[w](C,"start");var y=x[w](C,"end");x[A](C,this.compute(z,y,B))},color:function(y,w,E,B,z){var C=c.hexToRgb(y[B](w,"start"));var D=c.hexToRgb(y[B](w,"end"));var A=this.compute;var x=c.rgbToHex([parseInt(A(C[0],D[0],E)),parseInt(A(C[1],D[1],E)),parseInt(A(C[2],D[2],E))]);y[z](w,x)},"array-number":function(z,y,J,G,B){var H=z[G](y,"start"),I=z[G](y,"end"),K=[];for(var E=0,A=H.length;E<A;E++){var x=H[E],w=I[E];if(x.length){for(var D=0,F=x.length,C=[];D<F;D++){C.push(this.compute(x[D],w[D],J))}K.push(C)}else{K.push(this.compute(x,w,J))}}z[B](y,K)},node:function(x,C,E,w,D,y){w=this[w];if(C){var B=C.length;for(var z=0;z<B;z++){var A=C[z];this[w[A]](x,A,E,D,y)}}else{for(var A in w){this[w[A]](x,A,E,D,y)}}},edge:function(y,x,D,z,w,C){var B=y.adjacencies;for(var A in B){this["node"](B[A],x,D,z,w,C)}},"node-property":function(x,w,y){this["node"](x,w,y,"map","getData","setData")},"edge-property":function(x,w,y){this["edge"](x,w,y,"map","getData","setData")},"label-property":function(x,w,y){this["node"](x,w,y,"label","getLabelData","setLabelData")},"node-style":function(x,w,y){this["node"](x,w,y,"canvas","getCanvasStyle","setCanvasStyle")},"edge-style":function(x,w,y){this["edge"](x,w,y,"canvas","getCanvasStyle","setCanvasStyle")}},sequence:function(x){var y=this;x=c.merge({condition:c.lambda(false),step:c.empty,onComplete:c.empty,duration:200},x||{});var w=setInterval(function(){if(x.condition()){x.step()}else{clearInterval(w);x.onComplete()}y.viz.refresh(true)},x.duration)},prepare:function(C){var B=this.viz.graph,z={"node-property":{getter:"getData",setter:"setData"},"edge-property":{getter:"getData",setter:"setData"},"node-style":{getter:"getCanvasStyle",setter:"setCanvasStyle"},"edge-style":{getter:"getCanvasStyle",setter:"setCanvasStyle"}};var x={};if(c.type(C)=="array"){for(var A=0,w=C.length;A<w;A++){var y=C[A].split(":");x[y.shift()]=y}}else{for(var D in C){if(D=="position"){x[C.position]=[]}else{x[D]=c.splat(C[D])}}}B.eachNode(function(E){E.startPos.set(E.pos);c.each(["node-property","node-style"],function(H){if(H in x){var I=x[H];for(var G=0,F=I.length;G<F;G++){E[z[H].setter](I[G],E[z[H].getter](I[G]),"start")}}});c.each(["edge-property","edge-style"],function(F){if(F in x){var G=x[F];E.eachAdjacency(function(I){for(var J=0,H=G.length;J<H;J++){I[z[F].setter](G[J],I[z[F].getter](G[J]),"start")}})}})});return x},animate:function(z,y){z=c.merge(this.viz.config,z||{});var A=this,x=this.viz,C=x.graph,D=this.Interpolator,B=z.type==="nodefx"?this.nodeFxAnimation:this.animation;var w=this.prepare(z.modes);if(z.hideLabels){this.labels.hideLabels(true)}B.setOptions(c.merge(z,{$animating:false,compute:function(E){C.eachNode(function(F){for(var G in w){D[G](F,w[G],E,y)}});A.plot(z,this.$animating,E);this.$animating=true},complete:function(){if(z.hideLabels){A.labels.hideLabels(false)}A.plot(z);z.onComplete();z.onAfterCompute()}})).start()},nodeFx:function(y){var D=this.viz,E=D.graph,B=this.nodeFxAnimation,F=c.merge(this.viz.config,{elements:{id:false,properties:{}},reposition:false});y=c.merge(F,y||{},{onBeforeCompute:c.empty,onAfterCompute:c.empty});B.stopTimer();var C=y.elements.properties;if(!y.elements.id){E.eachNode(function(H){for(var G in C){H.setData(G,C[G],"end")}})}else{var w=c.splat(y.elements.id);c.each(w,function(I){var H=E.getNode(I);if(H){for(var G in C){H.setData(G,C[G],"end")}}})}var A=[];for(var x in C){A.push(x)}var z=["node-property:"+A.join(":")];if(y.reposition){z.push("linear");D.compute("end")}this.animate(c.merge(y,{modes:z,type:"nodefx"}))},plot:function(x,G){var E=this.viz,B=E.graph,y=E.canvas,w=E.root,C=this,F=y.getCtx(),A=Math.min,x=x||this.viz.controller;x.clearCanvas&&y.clear();var D=B.getNode(w);if(!D){return}var z=!!D.visited;B.eachNode(function(I){var H=I.getData("alpha");I.eachAdjacency(function(J){var K=J.nodeTo;if(!!K.visited===z&&I.drawn&&K.drawn){!G&&x.onBeforePlotLine(J);F.save();F.globalAlpha=A(H,K.getData("alpha"),J.getData("alpha"));C.plotLine(J,y,G);F.restore();!G&&x.onAfterPlotLine(J)}});F.save();if(I.drawn){!G&&x.onBeforePlotNode(I);C.plotNode(I,y,G);!G&&x.onAfterPlotNode(I)}if(!C.labelsHidden&&x.withLabels){if(I.drawn&&H>=0.95){C.labels.plotLabel(y,I,x)}else{C.labels.hideLabel(I,false)}}F.restore();I.visited=!z})},plotTree:function(A,x,E){var B=this,C=this.viz,y=C.canvas,z=this.config,D=y.getCtx();var w=A.getData("alpha");A.eachSubnode(function(G){if(x.plotSubtree(A,G)&&G.exist&&G.drawn){var F=A.getAdjacency(G.id);!E&&x.onBeforePlotLine(F);D.globalAlpha=Math.min(w,G.getData("alpha"));B.plotLine(F,y,E);!E&&x.onAfterPlotLine(F);B.plotTree(G,x,E)}});if(A.drawn){!E&&x.onBeforePlotNode(A);this.plotNode(A,y,E);!E&&x.onAfterPlotNode(A);if(!x.hideLabels&&x.withLabels&&w>=0.95){this.labels.plotLabel(y,A,x)}else{this.labels.hideLabel(A,false)}}else{this.labels.hideLabel(A,true)}},plotNode:function(y,x,F){var C=y.getData("type"),B=this.node.CanvasStyles;if(C!="none"){var w=y.getData("lineWidth"),A=y.getData("color"),z=y.getData("alpha"),D=x.getCtx();D.lineWidth=w;D.fillStyle=D.strokeStyle=A;D.globalAlpha=z;for(var E in B){D[E]=y.getCanvasStyle(E)}this.nodeTypes[C].render.call(this,y,x,F)}},plotLine:function(B,x,E){var A=B.getData("type"),z=this.edge.CanvasStyles;if(A!="none"){var w=B.getData("lineWidth"),y=B.getData("color"),C=x.getCtx();C.lineWidth=w;C.fillStyle=C.strokeStyle=y;for(var D in z){C[D]=B.getCanvasStyle(D)}this.edgeTypes[A].render.call(this,B,x,E)}}};e.Label={};e.Label.Native=new q({plotLabel:function(y,z,x){var w=y.getCtx();var A=z.pos.getc(true);w.font=z.getLabelData("style")+" "+z.getLabelData("size")+"px "+z.getLabelData("family");w.textAlign=z.getLabelData("textAlign");w.fillStyle=w.strokeStyle=z.getLabelData("color");w.textBaseline=z.getLabelData("textBaseline");this.renderLabel(y,z,x)},renderLabel:function(y,z,x){var w=y.getCtx();var A=z.pos.getc(true);w.fillText(z.name,A.x,A.y+z.getData("height")/2)},hideLabel:c.empty,hideLabels:c.empty});e.Label.DOM=new q({labelsHidden:false,labelContainer:false,labels:{},getLabelContainer:function(){return this.labelContainer?this.labelContainer:this.labelContainer=document.getElementById(this.viz.config.labelContainer)},getLabel:function(w){return(w in this.labels&&this.labels[w]!=null)?this.labels[w]:this.labels[w]=document.getElementById(w)},hideLabels:function(x){var w=this.getLabelContainer();if(x){w.style.display="none"}else{w.style.display=""}this.labelsHidden=x},clearLabels:function(w){for(var x in this.labels){if(w||!this.viz.graph.hasNode(x)){this.disposeLabel(x);delete this.labels[x]}}},disposeLabel:function(x){var w=this.getLabel(x);if(w&&w.parentNode){w.parentNode.removeChild(w)}},hideLabel:function(A,w){A=c.splat(A);var x=w?"":"none",y,z=this;c.each(A,function(C){var B=z.getLabel(C.id);if(B){B.style.display=x}})},fitsInCanvas:function(y,w){var x=w.getSize();if(y.x>=x.width||y.x<0||y.y>=x.height||y.y<0){return false}return true}});e.Label.HTML=new q({Implements:e.Label.DOM,plotLabel:function(z,A,y){var B=A.id,w=this.getLabel(B);if(!w&&!(w=document.getElementById(B))){w=document.createElement("div");var x=this.getLabelContainer();w.id=B;w.className="node";w.style.position="absolute";y.onCreateLabel(w,A);x.appendChild(w);this.labels[A.id]=w}this.placeLabel(w,A,y)}});e.Label.SVG=new q({Implements:e.Label.DOM,plotLabel:function(z,B,y){var D=B.id,w=this.getLabel(D);if(!w&&!(w=document.getElementById(D))){var A="http://www.w3.org/2000/svg";w=document.createElementNS(A,"svg:text");var C=document.createElementNS(A,"svg:tspan");w.appendChild(C);var x=this.getLabelContainer();w.setAttribute("id",D);w.setAttribute("class","node");x.appendChild(w);y.onCreateLabel(w,B);this.labels[B.id]=w}this.placeLabel(w,B,y)}});e.Geom=new q({initialize:function(w){this.viz=w;this.config=w.config;this.node=w.config.Node;this.edge=w.config.Edge},translate:function(x,w){w=c.splat(w);this.viz.graph.eachNode(function(y){c.each(w,function(z){y.getPos(z).$add(x)})})},setRightLevelToShow:function(z,w,B){var A=this.getRightLevelToShow(z,w),y=this.viz.labels,x=c.merge({execShow:true,execHide:true,onHide:c.empty,onShow:c.empty},B||{});z.eachLevel(0,this.config.levelsToShow,function(D){var C=D._depth-z._depth;if(C>A){x.onHide(D);if(x.execHide){D.drawn=false;D.exist=false;y.hideLabel(D,false)}}else{x.onShow(D);if(x.execShow){D.exist=true}}});z.drawn=true},getRightLevelToShow:function(z,x){var w=this.config;var A=w.levelsToShow;var y=w.constrained;if(!y){return A}while(!this.treeFitsInCanvas(z,x,A)&&A>1){A--}return A}});var d={construct:function(x){var y=(c.type(x)=="array");var w=new e(this.graphOptions,this.config.Node,this.config.Edge,this.config.Label);if(!y){(function(z,B){z.addNode(B);if(B.children){for(var A=0,C=B.children;A<C.length;A++){z.addAdjacence(B,C[A]);arguments.callee(z,C[A])}}})(w,x)}else{(function(H,I){var A=function(M){for(var L=0,J=I.length;L<J;L++){if(I[L].id==M){return I[L]}}var K={id:M,name:M};return H.addNode(K)};for(var E=0,B=I.length;E<B;E++){H.addNode(I[E]);var F=I[E].adjacencies;if(F){for(var C=0,G=F.length;C<G;C++){var z=F[C],D={};if(typeof F[C]!="string"){D=c.merge(z.data,{});z=z.nodeTo}H.addAdjacence(I[E],A(z),D)}}}})(w,x)}return w},loadJSON:function(x,w){this.json=x;if(this.labels&&this.labels.clearLabels){this.labels.clearLabels(true)}this.graph=this.construct(x);if(c.type(x)!="array"){this.root=x.id}else{this.root=x[w?w:0].id}},toJSON:function(A){A=A||"tree";if(A=="tree"){var y={};var x=this.graph.getNode(this.root);var y=(function w(D){var B={};B.id=D.id;B.name=D.name;B.data=D.data;var C=[];D.eachSubnode(function(E){C.push(w(E))});B.children=C;return B})(x);return y}else{var y=[];var z=!!this.graph.getNode(this.root).visited;this.graph.eachNode(function(C){var B={};B.id=C.id;B.name=C.name;B.data=C.data;var D=[];C.eachAdjacency(function(E){var G=E.nodeTo;if(!!G.visited===z){var F={};F.nodeTo=G.id;F.data=E.data;D.push(F)}});B.adjacencies=D;y.push(B);C.visited=!z});return y}}};var g=$jit.Layouts={};var f={label:null,compute:function(z,A,x){this.initializeLabel(x);var w=this.label,y=w.style;z.eachNode(function(D){var H=D.getData("autoWidth"),I=D.getData("autoHeight");if(H||I){delete D.data.$width;delete D.data.$height;delete D.data.$dim;var B=D.getData("width"),J=D.getData("height");y.width=H?"auto":B+"px";y.height=I?"auto":J+"px";w.innerHTML=D.name;var F=w.offsetWidth,C=w.offsetHeight;var G=D.getData("type");if(c.indexOf(["circle","square","triangle","star"],G)===-1){D.setData("width",F);D.setData("height",C)}else{var E=F>C?F:C;D.setData("width",E);D.setData("height",E);D.setData("dim",E)}}})},initializeLabel:function(w){if(!this.label){this.label=document.createElement("div");document.body.appendChild(this.label)}this.setLabelStyles(w)},setLabelStyles:function(w){c.extend(this.label.style,{visibility:"hidden",position:"absolute",width:"auto",height:"auto"});this.label.className="jit-autoadjust-label"}};g.Tree=(function(){var F=Array.prototype.slice;function D(P,K,H,N,I){var M=K.Node;var J=K.multitree;if(M.overridable){var O=-1,L=-1;P.eachNode(function(S){if(S._depth==H&&(!J||("$orn" in S.data)&&S.data.$orn==N)){var Q=S.getData("width",I);var R=S.getData("height",I);O=(O<Q)?Q:O;L=(L<R)?R:L}});return{width:O<0?M.width:O,height:L<0?M.height:L}}else{return M}}function G(I,L,K,H){var J=(H=="left"||H=="right")?"y":"x";I.getPos(L)[J]+=K}function B(I,J){var H=[];c.each(I,function(K){K=F.call(K);K[0]+=J;K[1]+=J;H.push(K)});return H}function E(K,H){if(K.length==0){return H}if(H.length==0){return K}var J=K.shift(),I=H.shift();return[[J[0],I[1]]].concat(E(K,H))}function z(H,I){I=I||[];if(H.length==0){return I}var J=H.pop();return z(H,E(J,I))}function C(K,I,L,H,J){if(K.length<=J||I.length<=J){return 0}var N=K[J][1],M=I[J][0];return Math.max(C(K,I,L,H,++J)+L,N-M+H)}function A(K,I,H){function J(N,P,M){if(P.length<=M){return[]}var O=P[M],L=C(N,O,I,H,0);return[L].concat(J(E(N,B(O,L)),P,++M))}return J([],K,0)}function x(L,K,J){function H(O,Q,N){if(Q.length<=N){return[]}var P=Q[N],M=-C(P,O,K,J,0);return[M].concat(H(E(B(P,M),O),Q,++N))}L=F.call(L);var I=H([],L.reverse(),0);return I.reverse()}function w(N,L,I,O){var J=A(N,L,I),M=x(N,L,I);if(O=="left"){M=J}else{if(O=="right"){J=M}}for(var K=0,H=[];K<J.length;K++){H[K]=(J[K]+M[K])/2}return H}function y(H,R,I,Y,W){var K=Y.multitree;var Q=["x","y"],N=["width","height"];var J=+(W=="left"||W=="right");var O=Q[J],X=Q[1-J];var T=Y.Node;var M=N[J],V=N[1-J];var L=Y.siblingOffset;var U=Y.subtreeOffset;var S=Y.align;function P(ab,af,aj){var aa=ab.getData(M,I);var ai=af||(ab.getData(V,I));var am=[],ak=[],ag=false;var Z=ai+Y.levelDistance;ab.eachSubnode(function(ao){if(ao.exist&&(!K||("$orn" in ao.data)&&ao.data.$orn==W)){if(!ag){ag=D(H,Y,ao._depth,W,I)}var an=P(ao,ag[V],aj+Z);am.push(an.tree);ak.push(an.extent)}});var ae=w(ak,U,L,S);for(var ad=0,ac=[],ah=[];ad<am.length;ad++){G(am[ad],I,ae[ad],W);ah.push(B(ak[ad],ae[ad]))}var al=[[-aa/2,aa/2]].concat(z(ah));ab.getPos(I)[O]=0;if(W=="top"||W=="left"){ab.getPos(I)[X]=aj}else{ab.getPos(I)[X]=-aj}return{tree:ab,extent:al}}P(R,false,0)}return new q({compute:function(J,I){var K=J||"start";var H=this.graph.getNode(this.root);c.extend(H,{drawn:true,exist:true,selected:true});f.compute(this.graph,K,this.config);if(!!I||!("_depth" in H)){this.graph.computeLevels(this.root,0,"ignore")}this.computePositions(H,K)},computePositions:function(L,H){var J=this.config;var I=J.multitree;var O=J.align;var K=O!=="center"&&J.indent;var P=J.orientation;var N=I?["top","right","bottom","left"]:[P];var M=this;c.each(N,function(Q){y(M.graph,L,H,M.config,Q,H);var R=["x","y"][+(Q=="left"||Q=="right")];(function S(T){T.eachSubnode(function(U){if(U.exist&&(!I||("$orn" in U.data)&&U.data.$orn==Q)){U.getPos(H)[R]+=T.getPos(H)[R];if(K){U.getPos(H)[R]+=O=="left"?K:-K}S(U)}})})(L)})}})})();$jit.ST=(function(){var x=[];function y(D){D=D||this.clickedNode;if(!this.config.constrained){return[]}var A=this.geom;var H=this.graph;var B=this.canvas;var z=D._depth,E=[];H.eachNode(function(I){if(I.exist&&!I.selected){if(I.isDescendantOf(D.id)){if(I._depth<=z){E.push(I)}}else{E.push(I)}}});var F=A.getRightLevelToShow(D,B);D.eachLevel(F,F,function(I){if(I.exist&&!I.selected){E.push(I)}});for(var G=0;G<x.length;G++){var C=this.graph.getNode(x[G]);if(!C.isDescendantOf(D.id)){E.push(C)}}return E}function w(B){var A=[],z=this.config;B=B||this.clickedNode;this.clickedNode.eachLevel(0,z.levelsToShow,function(C){if(z.multitree&&!("$orn" in C.data)&&C.anySubnode(function(D){return D.exist&&!D.drawn})){A.push(C)}else{if(C.drawn&&!C.anySubnode("drawn")){A.push(C)}}});return A}return new q({Implements:[d,o,g.Tree],initialize:function(z){var B=$jit.ST;var A={levelsToShow:2,levelDistance:30,constrained:true,Node:{type:"rectangle"},duration:700,offsetX:0,offsetY:0};this.controller=this.config=c.merge(n("Canvas","Fx","Tree","Node","Edge","Controller","Tips","NodeStyles","Events","Navigation","Label"),A,z);var C=this.config;if(C.useCanvas){this.canvas=C.useCanvas;this.config.labelContainer=this.canvas.id+"-label"}else{if(C.background){C.background=c.merge({type:"Circles"},C.background)}this.canvas=new l(this,C);this.config.labelContainer=(typeof C.injectInto=="string"?C.injectInto:C.injectInto.id)+"-label"}this.graphOptions={complex:true};this.graph=new e(this.graphOptions,this.config.Node,this.config.Edge);this.labels=new B.Label[C.Label.type](this);this.fx=new B.Plot(this,B);this.op=new B.Op(this);this.group=new B.Group(this);this.geom=new B.Geom(this);this.clickedNode=null;this.initializeExtras()},plot:function(){this.fx.plot(this.controller)},switchPosition:function(E,D,C){var z=this.geom,A=this.fx,B=this;if(!A.busy){A.busy=true;this.contract({onComplete:function(){z.switchOrientation(E);B.compute("end",false);A.busy=false;if(D=="animate"){B.onClick(B.clickedNode.id,C)}else{if(D=="replot"){B.select(B.clickedNode.id,C)}}}},E)}},switchAlignment:function(B,A,z){this.config.align=B;if(A=="animate"){this.select(this.clickedNode.id,z)}else{if(A=="replot"){this.onClick(this.clickedNode.id,z)}}},addNodeInPath:function(z){x.push(z);this.select((this.clickedNode&&this.clickedNode.id)||this.root)},clearNodesInPath:function(z){x.length=0;this.select((this.clickedNode&&this.clickedNode.id)||this.root)},refresh:function(){this.reposition();this.select((this.clickedNode&&this.clickedNode.id)||this.root)},reposition:function(){this.graph.computeLevels(this.root,0,"ignore");this.geom.setRightLevelToShow(this.clickedNode,this.canvas);this.graph.eachNode(function(z){if(z.exist){z.drawn=true}});this.compute("end")},requestNodes:function(B,C){var A=c.merge(this.controller,C),z=this.config.levelsToShow;if(A.request){var E=[],D=B._depth;B.eachLevel(0,z,function(F){if(F.drawn&&!F.anySubnode()){E.push(F);F._level=z-(F._depth-D)}});this.group.requestNodes(E,A)}else{A.onComplete()}},contract:function(D,E){var C=this.config.orientation;var z=this.geom,B=this.group;if(E){z.switchOrientation(E)}var A=y.call(this);if(E){z.switchOrientation(C)}B.contract(A,c.merge(this.controller,D))},move:function(A,B){this.compute("end",false);var z=B.Move,C={x:z.offsetX,y:z.offsetY};if(z.enable){this.geom.translate(A.endPos.add(C).$scale(-1),"end")}this.fx.animate(c.merge(this.controller,{modes:["linear"]},B))},expand:function(A,B){var z=w.call(this,A);this.group.expand(z,c.merge(this.controller,B))},selectPath:function(C){var B=this;this.graph.eachNode(function(E){E.selected=false});function D(F){if(F==null||F.selected){return}F.selected=true;c.each(B.group.getSiblings([F])[F.id],function(G){G.exist=true;G.drawn=true});var E=F.getParents();E=(E.length>0)?E[0]:null;D(E)}for(var z=0,A=[C.id].concat(x);z<A.length;z++){D(this.graph.getNode(A[z]))}},setRoot:function(G,F,E){if(this.busy){return}this.busy=true;var D=this,B=this.canvas;var z=this.graph.getNode(this.root);var A=this.graph.getNode(G);function C(){if(this.config.multitree&&A.data.$orn){var I=A.data.$orn;var J={left:"right",right:"left",top:"bottom",bottom:"top"}[I];z.data.$orn=J;(function H(K){K.eachSubnode(function(L){if(L.id!=G){L.data.$orn=J;H(L)}})})(z);delete A.data.$orn}this.root=G;this.clickedNode=A;this.graph.computeLevels(this.root,0,"ignore");this.geom.setRightLevelToShow(A,B,{execHide:false,onShow:function(K){if(!K.drawn){K.drawn=true;K.setData("alpha",1,"end");K.setData("alpha",0);K.pos.setc(A.pos.x,A.pos.y)}}});this.compute("end");this.busy=true;this.fx.animate({modes:["linear","node-property:alpha"],onComplete:function(){D.busy=false;D.onClick(G,{onComplete:function(){E&&E.onComplete()}})}})}delete z.data.$orns;if(F=="animate"){C.call(this);D.selectPath(A)}else{if(F=="replot"){C.call(this);this.select(this.root)}}},addSubtree:function(z,B,A){if(B=="replot"){this.op.sum(z,c.extend({type:"replot"},A||{}))}else{if(B=="animate"){this.op.sum(z,c.extend({type:"fade:seq"},A||{}))}}},removeSubtree:function(E,A,D,C){var B=this.graph.getNode(E),z=[];B.eachLevel(+!A,false,function(F){z.push(F.id)});if(D=="replot"){this.op.removeNode(z,c.extend({type:"replot"},C||{}))}else{if(D=="animate"){this.op.removeNode(z,c.extend({type:"fade:seq"},C||{}))}}},select:function(z,C){var H=this.group,F=this.geom;var D=this.graph.getNode(z),B=this.canvas;var G=this.graph.getNode(this.root);var A=c.merge(this.controller,C);var E=this;A.onBeforeCompute(D);this.selectPath(D);this.clickedNode=D;this.requestNodes(D,{onComplete:function(){H.hide(H.prepare(y.call(E)),A);F.setRightLevelToShow(D,B);E.compute("current");E.graph.eachNode(function(K){var J=K.pos.getc(true);K.startPos.setc(J.x,J.y);K.endPos.setc(J.x,J.y);K.visited=false});var I={x:A.offsetX,y:A.offsetY};E.geom.translate(D.endPos.add(I).$scale(-1),["start","current","end"]);H.show(w.call(E));E.plot();A.onAfterCompute(E.clickedNode);A.onComplete()}})},onClick:function(A,H){var C=this.canvas,G=this,z=this.geom,D=this.config;var F={Move:{enable:true,offsetX:D.offsetX||0,offsetY:D.offsetY||0},setRightLevelToShowConfig:false,onBeforeRequest:c.empty,onBeforeContract:c.empty,onBeforeMove:c.empty,onBeforeExpand:c.empty};var B=c.merge(this.controller,F,H);if(!this.busy){this.busy=true;var E=this.graph.getNode(A);this.selectPath(E,this.clickedNode);this.clickedNode=E;B.onBeforeCompute(E);B.onBeforeRequest(E);this.requestNodes(E,{onComplete:function(){B.onBeforeContract(E);G.contract({onComplete:function(){z.setRightLevelToShow(E,C,B.setRightLevelToShowConfig);B.onBeforeMove(E);G.move(E,{Move:B.Move,onComplete:function(){B.onBeforeExpand(E);G.expand(E,{onComplete:function(){G.busy=false;B.onAfterCompute(A);B.onComplete()}})}})}})}})}}})})();$jit.ST.$extend=true;$jit.ST.Op=new q({Implements:e.Op});$jit.ST.Group=new q({initialize:function(w){this.viz=w;this.canvas=w.canvas;this.config=w.config;this.animation=new u;this.nodes=null},requestNodes:function(B,A){var z=0,x=B.length,D={};var y=function(){A.onComplete()};var w=this.viz;if(x==0){y()}for(var C=0;C<x;C++){D[B[C].id]=B[C];A.request(B[C].id,B[C]._level,{onComplete:function(F,E){if(E&&E.children){E.id=F;w.op.sum(E,{type:"nothing"})}if(++z==x){w.graph.computeLevels(w.root,0);y()}}})}},contract:function(y,x){var w=this.viz;var z=this;y=this.prepare(y);this.animation.setOptions(c.merge(x,{$animating:false,compute:function(A){if(A==1){A=0.99}z.plotStep(1-A,x,this.$animating);this.$animating="contract"},complete:function(){z.hide(y,x)}})).start()},hide:function(y,x){var w=this.viz;for(var z=0;z<y.length;z++){if(true||!x||!x.request){y[z].eachLevel(1,false,function(B){if(B.exist){c.extend(B,{drawn:false,exist:false})}})}else{var A=[];y[z].eachLevel(1,false,function(B){A.push(B.id)});w.op.removeNode(A,{type:"nothing"});w.labels.clearLabels()}}x.onComplete()},expand:function(x,w){var y=this;this.show(x);this.animation.setOptions(c.merge(w,{$animating:false,compute:function(z){y.plotStep(z,w,this.$animating);this.$animating="expand"},complete:function(){y.plotStep(undefined,w,false);w.onComplete()}})).start()},show:function(w){var x=this.config;this.prepare(w);c.each(w,function(z){if(x.multitree&&!("$orn" in z.data)){delete z.data.$orns;var y=" ";z.eachSubnode(function(A){if(("$orn" in A.data)&&y.indexOf(A.data.$orn)<0&&A.exist&&!A.drawn){y+=A.data.$orn+" "}});z.data.$orns=y}z.eachLevel(0,x.levelsToShow,function(A){if(A.exist){A.drawn=true}})})},prepare:function(w){this.nodes=this.getNodesWithChildren(w);return this.nodes},getNodesWithChildren:function(y){var x=[],A=this.config,w=this.viz.root;y.sort(function(E,D){return(E._depth<=D._depth)-(E._depth>=D._depth)});for(var B=0;B<y.length;B++){if(y[B].anySubnode("exist")){for(var z=B+1,C=false;!C&&z<y.length;z++){if(!A.multitree||"$orn" in y[z].data){C=C||y[B].isDescendantOf(y[z].id)}}if(!C){x.push(y[B])}}}return x},plotStep:function(G,C,I){var F=this.viz,z=this.config,y=F.canvas,H=y.getCtx(),w=this.nodes;var B,A;var x={};for(B=0;B<w.length;B++){A=w[B];x[A.id]=[];var E=z.multitree&&!("$orn" in A.data);var D=E&&A.data.$orns;A.eachSubgraph(function(J){if(E&&D&&D.indexOf(J.data.$orn)>0&&J.drawn){J.drawn=false;x[A.id].push(J)}else{if((!E||!D)&&J.drawn){J.drawn=false;x[A.id].push(J)}}});A.drawn=true}if(w.length>0){F.fx.plot()}for(B in x){c.each(x[B],function(J){J.drawn=true})}for(B=0;B<w.length;B++){A=w[B];H.save();F.fx.plotSubtree(A,C,G,I);H.restore()}},getSiblings:function(w){var x={};c.each(w,function(A){var z=A.getParents();if(z.length==0){x[A.id]=[A]}else{var y=[];z[0].eachSubnode(function(B){y.push(B)});x[A.id]=y}});return x}});$jit.ST.Geom=new q({Implements:e.Geom,switchOrientation:function(w){this.config.orientation=w},dispatch:function(){var x=Array.prototype.slice.call(arguments);var y=x.shift(),w=x.length;var z=function(A){return typeof A=="function"?A():A};if(w==2){return(y=="top"||y=="bottom")?z(x[0]):z(x[1])}else{if(w==4){switch(y){case"top":return z(x[0]);case"right":return z(x[1]);case"bottom":return z(x[2]);case"left":return z(x[3])}}}return undefined},getSize:function(E,D){var C=E.data,z=this.config;var y=z.siblingOffset;var B=(z.multitree&&("$orn" in C)&&C.$orn)||z.orientation;var x=E.getData("width")+y;var A=E.getData("height")+y;if(!D){return this.dispatch(B,A,x)}else{return this.dispatch(B,x,A)}},getTreeBaseSize:function(A,B,x){var y=this.getSize(A,true),w=0,z=this;if(x(B,A)){return y}if(B===0){return 0}A.eachSubnode(function(C){w+=z.getTreeBaseSize(C,B-1,x)});return(y>w?y:w)+this.config.subtreeOffset},getEdge:function(C,B,A){var y=function(E,w){return function(){return C.pos.add(new p(E,w))}};var D=this.node;var x=C.getData("width");var z=C.getData("height");if(B=="begin"){if(D.align=="center"){return this.dispatch(A,y(0,z/2),y(-x/2,0),y(0,-z/2),y(x/2,0))}else{if(D.align=="left"){return this.dispatch(A,y(0,z),y(0,0),y(0,0),y(x,0))}else{if(D.align=="right"){return this.dispatch(A,y(0,0),y(-x,0),y(0,-z),y(0,0))}else{throw"align: not implemented"}}}}else{if(B=="end"){if(D.align=="center"){return this.dispatch(A,y(0,-z/2),y(x/2,0),y(0,z/2),y(-x/2,0))}else{if(D.align=="left"){return this.dispatch(A,y(0,0),y(x,0),y(0,z),y(0,0))}else{if(D.align=="right"){return this.dispatch(A,y(0,-z),y(0,0),y(0,0),y(-x,0))}else{throw"align: not implemented"}}}}}},getScaledTreePosition:function(B,D){var C=this.node;var x=B.getData("width");var A=B.getData("height");var z=(this.config.multitree&&("$orn" in B.data)&&B.data.$orn)||this.config.orientation;var y=function(E,w){return function(){return B.pos.add(new p(E,w)).$scale(1-D)}};if(C.align=="left"){return this.dispatch(z,y(0,A),y(0,0),y(0,0),y(x,0))}else{if(C.align=="center"){return this.dispatch(z,y(0,A/2),y(-x/2,0),y(0,-A/2),y(x/2,0))}else{if(C.align=="right"){return this.dispatch(z,y(0,0),y(-x,0),y(0,-A),y(0,0))}else{throw"align: not implemented"}}}},treeFitsInCanvas:function(B,w,C){var y=w.getSize();var z=(this.config.multitree&&("$orn" in B.data)&&B.data.$orn)||this.config.orientation;var x=this.dispatch(z,y.width,y.height);var A=this.getTreeBaseSize(B,C,function(E,D){return E===0||!D.anySubnode()});return(A<x)}});$jit.ST.Plot=new q({Implements:e.Plot,plotSubtree:function(z,w,A,E){var C=this.viz,x=C.canvas,y=C.config;A=Math.min(Math.max(0.001,A),1);if(A>=0){z.drawn=false;var D=x.getCtx();var B=C.geom.getScaledTreePosition(z,A);D.translate(B.x,B.y);D.scale(A,A)}this.plotTree(z,c.merge(w,{withLabels:true,hideLabels:!!A,plotSubtree:function(I,G){var F=y.multitree&&!("$orn" in z.data);var H=F&&z.getData("orns");return !F||H.indexOf(elem.getData("orn"))>-1}}),E);if(A>=0){z.drawn=true}},getAlignedPos:function(B,z,w){var y=this.node;var A,x;if(y.align=="center"){A={x:B.x-z/2,y:B.y-w/2}}else{if(y.align=="left"){x=this.config.orientation;if(x=="bottom"||x=="top"){A={x:B.x-z/2,y:B.y}}else{A={x:B.x,y:B.y-w/2}}}else{if(y.align=="right"){x=this.config.orientation;if(x=="bottom"||x=="top"){A={x:B.x-z/2,y:B.y-w}}else{A={x:B.x-z,y:B.y-w/2}}}else{throw"align: not implemented"}}}return A},getOrientation:function(w){var y=this.config;var x=y.orientation;if(y.multitree){var z=w.nodeFrom;var A=w.nodeTo;x=(("$orn" in z.data)&&z.data.$orn)||(("$orn" in A.data)&&A.data.$orn)}return x}});$jit.ST.Label={};$jit.ST.Label.Native=new q({Implements:e.Label.Native,renderLabel:function(y,z,x){var w=y.getCtx();var A=z.pos.getc(true);w.fillText(z.name,A.x,A.y)}});$jit.ST.Label.DOM=new q({Implements:e.Label.DOM,placeLabel:function(P,J,F){var B=J.pos.getc(true),O=this.viz.config,K=O.Node,x=this.viz.canvas,C=J.getData("width"),M=J.getData("height"),y=x.getSize(),G,N;var A=x.translateOffsetX,z=x.translateOffsetY,E=x.scaleOffsetX,D=x.scaleOffsetY,I=B.x*E+A,H=B.y*D+z;if(K.align=="center"){G={x:Math.round(I-C/2+y.width/2),y:Math.round(H-M/2+y.height/2)}}else{if(K.align=="left"){N=O.orientation;if(N=="bottom"||N=="top"){G={x:Math.round(I-C/2+y.width/2),y:Math.round(H+y.height/2)}}else{G={x:Math.round(I+y.width/2),y:Math.round(H-M/2+y.height/2)}}}else{if(K.align=="right"){N=O.orientation;if(N=="bottom"||N=="top"){G={x:Math.round(I-C/2+y.width/2),y:Math.round(H-M+y.height/2)}}else{G={x:Math.round(I-C+y.width/2),y:Math.round(H-M/2+y.height/2)}}}else{throw"align: not implemented"}}}var L=P.style;L.left=G.x+"px";L.top=G.y+"px";L.display=this.fitsInCanvas(G,x)?"":"none";F.onPlaceLabel(P,J)}});$jit.ST.Label.SVG=new q({Implements:[$jit.ST.Label.DOM,e.Label.SVG],initialize:function(w){this.viz=w}});$jit.ST.Label.HTML=new q({Implements:[$jit.ST.Label.DOM,e.Label.HTML],initialize:function(w){this.viz=w}});$jit.ST.Plot.NodeTypes=new q({none:{render:c.empty,contains:c.lambda(false)},circle:{render:function(x,w){var z=x.getData("dim"),A=this.getAlignedPos(x.pos.getc(true),z,z),y=z/2;this.nodeHelper.circle.render("fill",{x:A.x+y,y:A.y+y},y,w)},contains:function(w,A){var y=w.getData("dim"),z=this.getAlignedPos(w.pos.getc(true),y,y),x=y/2;this.nodeHelper.circle.contains({x:z.x+x,y:z.y+x},x)}},square:{render:function(x,w){var z=x.getData("dim"),y=z/2,A=this.getAlignedPos(x.pos.getc(true),z,z);this.nodeHelper.square.render("fill",{x:A.x+y,y:A.y+y},y,w)},contains:function(w,A){var y=w.getData("dim"),z=this.getAlignedPos(w.pos.getc(true),y,y),x=y/2;this.nodeHelper.square.contains({x:z.x+x,y:z.y+x},x)}},ellipse:{render:function(z,x){var y=z.getData("width"),w=z.getData("height"),A=this.getAlignedPos(z.pos.getc(true),y,w);this.nodeHelper.ellipse.render("fill",{x:A.x+y/2,y:A.y+w/2},y,w,x)},contains:function(y,A){var x=y.getData("width"),w=y.getData("height"),z=this.getAlignedPos(y.pos.getc(true),x,w);this.nodeHelper.ellipse.contains({x:z.x+x/2,y:z.y+w/2},x,w,canvas)}},rectangle:{render:function(z,x){var y=z.getData("width"),w=z.getData("height"),A=this.getAlignedPos(z.pos.getc(true),y,w);this.nodeHelper.rectangle.render("fill",{x:A.x+y/2,y:A.y+w/2},y,w,x)},contains:function(y,A){var x=y.getData("width"),w=y.getData("height"),z=this.getAlignedPos(y.pos.getc(true),x,w);this.nodeHelper.rectangle.contains({x:z.x+x/2,y:z.y+w/2},x,w,canvas)}}});$jit.ST.Plot.EdgeTypes=new q({none:c.empty,line:{render:function(x,z){var y=this.getOrientation(x),A=x.nodeFrom,B=x.nodeTo,w=A._depth<B._depth,D=this.viz.geom.getEdge(w?A:B,"begin",y),C=this.viz.geom.getEdge(w?B:A,"end",y);this.edgeHelper.line.render(D,C,z)},contains:function(x,D){var y=this.getOrientation(x),z=x.nodeFrom,A=x.nodeTo,w=z._depth<A._depth,C=this.viz.geom.getEdge(w?z:A,"begin",y),B=this.viz.geom.getEdge(w?A:z,"end",y);return this.edgeHelper.line.contains(C,B,D,this.edge.epsilon)}},arrow:{render:function(C,x){var B=this.getOrientation(C),y=C.nodeFrom,w=C.nodeTo,A=C.getData("dim"),E=this.viz.geom.getEdge(y,"begin",B),F=this.viz.geom.getEdge(w,"end",B),D=C.data.$direction,z=(D&&D.length>1&&D[0]!=y.id);this.edgeHelper.arrow.render(E,F,A,z,x)},contains:function(x,D){var y=this.getOrientation(x),z=x.nodeFrom,A=x.nodeTo,w=z._depth<A._depth,C=this.viz.geom.getEdge(w?z:A,"begin",y),B=this.viz.geom.getEdge(w?A:z,"end",y);return this.edgeHelper.arrow.contains(C,B,D,this.edge.epsilon)}},"quadratic:begin":{render:function(C,w){var B=this.getOrientation(C);var A=C.nodeFrom,D=C.nodeTo,F=A._depth<D._depth,x=this.viz.geom.getEdge(F?A:D,"begin",B),y=this.viz.geom.getEdge(F?D:A,"end",B),z=C.getData("dim"),E=w.getCtx();E.beginPath();E.moveTo(x.x,x.y);switch(B){case"left":E.quadraticCurveTo(x.x+z,x.y,y.x,y.y);break;case"right":E.quadraticCurveTo(x.x-z,x.y,y.x,y.y);break;case"top":E.quadraticCurveTo(x.x,x.y+z,y.x,y.y);break;case"bottom":E.quadraticCurveTo(x.x,x.y-z,y.x,y.y);break}E.stroke()}},"quadratic:end":{render:function(C,w){var B=this.getOrientation(C);var A=C.nodeFrom,D=C.nodeTo,F=A._depth<D._depth,x=this.viz.geom.getEdge(F?A:D,"begin",B),y=this.viz.geom.getEdge(F?D:A,"end",B),z=C.getData("dim"),E=w.getCtx();E.beginPath();E.moveTo(x.x,x.y);switch(B){case"left":E.quadraticCurveTo(y.x-z,y.y,y.x,y.y);break;case"right":E.quadraticCurveTo(y.x+z,y.y,y.x,y.y);break;case"top":E.quadraticCurveTo(y.x,y.y-z,y.x,y.y);break;case"bottom":E.quadraticCurveTo(y.x,y.y+z,y.x,y.y);break}E.stroke()}},bezier:{render:function(C,w){var B=this.getOrientation(C),A=C.nodeFrom,D=C.nodeTo,F=A._depth<D._depth,x=this.viz.geom.getEdge(F?A:D,"begin",B),y=this.viz.geom.getEdge(F?D:A,"end",B),z=C.getData("dim"),E=w.getCtx();E.beginPath();E.moveTo(x.x,x.y);switch(B){case"left":E.bezierCurveTo(x.x+z,x.y,y.x-z,y.y,y.x,y.y);break;case"right":E.bezierCurveTo(x.x-z,x.y,y.x+z,y.y,y.x,y.y);break;case"top":E.bezierCurveTo(x.x,x.y+z,y.x,y.y-z,y.x,y.y);break;case"bottom":E.bezierCurveTo(x.x,x.y-z,y.x,y.y+z,y.x,y.y);break}E.stroke()}}});$jit.ST.Plot.NodeTypes.implement({"areachart-stacked":{render:function(V,D){var T=V.pos.getc(true),w=V.getData("width"),A=V.getData("height"),G=this.getAlignedPos(T,w,A),aa=G.x,Z=G.y,L=V.getData("stringArray"),F=V.getData("dimArray"),B=V.getData("valueArray"),ac=c.reduce(B,function(ai,aj){return ai+aj[0]},0),ab=c.reduce(B,function(ai,aj){return ai+aj[1]},0),I=V.getData("colorArray"),C=I.length,X=V.getData("config"),J=V.getData("gradient"),ah=X.showLabels,N=X.showAggregates,ad=X.Label,S=V.getData("prev");var M=D.getCtx(),H=V.getData("border");if(I&&F&&L){for(var ag=0,ae=F.length,K=0,E=0,W=0;ag<ae;ag++){M.fillStyle=M.strokeStyle=I[ag%C];M.save();if(J&&(F[ag][0]>0||F[ag][1]>0)){var Q=K+F[ag][0],O=E+F[ag][1],af=Math.atan((O-Q)/w),Y=55;var U=M.createLinearGradient(aa+w/2,Z-(Q+O)/2,aa+w/2+Y*Math.sin(af),Z-(Q+O)/2+Y*Math.cos(af));var P=c.rgbToHex(c.map(c.hexToRgb(I[ag%C].slice(1)),function(x){return(x*0.85)>>0}));U.addColorStop(0,I[ag%C]);U.addColorStop(1,P);M.fillStyle=U}M.beginPath();M.moveTo(aa,Z-K);M.lineTo(aa+w,Z-E);M.lineTo(aa+w,Z-E-F[ag][1]);M.lineTo(aa,Z-K-F[ag][0]);M.lineTo(aa,Z-K);M.fill();M.restore();if(H){var R=H.name==L[ag];var z=R?0.7:0.8;var P=c.rgbToHex(c.map(c.hexToRgb(I[ag%C].slice(1)),function(x){return(x*z)>>0}));M.strokeStyle=P;M.lineWidth=R?4:1;M.save();M.beginPath();if(H.index===0){M.moveTo(aa,Z-K);M.lineTo(aa,Z-K-F[ag][0])}else{M.moveTo(aa+w,Z-E);M.lineTo(aa+w,Z-E-F[ag][1])}M.stroke();M.restore()}K+=(F[ag][0]||0);E+=(F[ag][1]||0);if(F[ag][0]>0){W+=(B[ag][0]||0)}}if(S&&ad.type=="Native"){M.save();M.beginPath();M.fillStyle=M.strokeStyle=ad.color;M.font=ad.style+" "+ad.size+"px "+ad.family;M.textAlign="center";M.textBaseline="middle";if(N(V.name,ac,ab,V)){M.fillText(W,aa,Z-K-X.labelOffset-ad.size/2,w)}if(ah(V.name,ac,ab,V)){M.fillText(V.name,aa,Z+ad.size/2+X.labelOffset)}M.restore()}}},contains:function(C,E){var J=C.pos.getc(true),z=C.getData("width"),N=C.getData("height"),M=this.getAlignedPos(J,z,N),L=M.x,K=M.y,O=C.getData("dimArray"),w=E.x-L;if(E.x<L||E.x>L+z||E.y>K||E.y<K-N){return false}for(var F=0,D=O.length,I=K,A=K;F<D;F++){var B=O[F];I-=B[0];A-=B[1];var G=I+(A-I)*w/z;if(E.y>=G){var H=+(w>z/2);return{name:C.getData("stringArray")[F],color:C.getData("colorArray")[F],value:C.getData("valueArray")[F][H],index:H}}}return false}}});$jit.AreaChart=new q({st:null,colors:["#416D9C","#70A35E","#EBB056","#C74243","#83548B","#909291","#557EAA"],selected:{},busy:false,initialize:function(y){this.controller=this.config=c.merge(n("Canvas","Margin","Label","AreaChart"),{Label:{type:"Native"}},y);var z=this.config.showLabels,x=c.type(z),A=this.config.showAggregates,w=c.type(A);this.config.showLabels=x=="function"?z:c.lambda(z);this.config.showAggregates=w=="function"?A:c.lambda(A);this.initializeViz()},initializeViz:function(){var y=this.config,B=this,w=y.type.split(":")[0],A={};var x=new $jit.ST({injectInto:y.injectInto,orientation:"bottom",levelDistance:0,siblingOffset:0,subtreeOffset:0,withLabels:y.Label.type!="Native",useCanvas:y.useCanvas,Label:{type:y.Label.type},Node:{overridable:true,type:"areachart-"+w,align:"left",width:1,height:1},Edge:{type:"none"},Tips:{enable:y.Tips.enable,type:"Native",force:true,onShow:function(G,F,D){var E=D;y.Tips.onShow(G,E,F)}},Events:{enable:true,type:"Native",onClick:function(F,G,D){if(!y.filterOnClick&&!y.Events.enable){return}var E=G.getContains();if(E){y.filterOnClick&&B.filter(E.name)}y.Events.enable&&y.Events.onClick(E,G,D)},onRightClick:function(E,F,D){if(!y.restoreOnRightClick){return}B.restore()},onMouseMove:function(F,G,D){if(!y.selectOnHover){return}if(F){var E=G.getContains();B.select(F.id,E.name,E.index)}else{B.select(false,false,false)}}},onCreateLabel:function(J,G){var P=y.Label,O=G.getData("valueArray"),H=c.reduce(O,function(Q,R){return Q+R[0]},0),M=c.reduce(O,function(Q,R){return Q+R[1]},0);if(G.getData("prev")){var L={wrapper:document.createElement("div"),aggregate:document.createElement("div"),label:document.createElement("div")};var D=L.wrapper,N=L.label,E=L.aggregate,F=D.style,K=N.style,I=E.style;A[G.id]=L;D.appendChild(N);D.appendChild(E);if(!y.showLabels(G.name,H,M,G)){N.style.display="none"}if(!y.showAggregates(G.name,H,M,G)){E.style.display="none"}F.position="relative";F.overflow="visible";F.fontSize=P.size+"px";F.fontFamily=P.family;F.color=P.color;F.textAlign="center";I.position=K.position="absolute";J.style.width=G.getData("width")+"px";J.style.height=G.getData("height")+"px";N.innerHTML=G.name;J.appendChild(D)}},onPlaceLabel:function(U,O){if(!O.getData("prev")){return}var S=A[O.id],E=S.wrapper.style,D=S.label.style,N=S.aggregate.style,L=O.getData("width"),J=O.getData("height"),I=O.getData("dimArray"),F=O.getData("valueArray"),K=c.reduce(F,function(V,W){return V+W[0]},0),G=c.reduce(F,function(V,W){return V+W[1]},0),H=parseInt(E.fontSize,10),M=U.style;if(I&&F){if(y.showLabels(O.name,K,G,O)){D.display=""}else{D.display="none"}if(y.showAggregates(O.name,K,G,O)){N.display=""}else{N.display="none"}E.width=N.width=D.width=U.style.width=L+"px";N.left=D.left=-L/2+"px";for(var R=0,P=F.length,Q=0,T=0;R<P;R++){if(I[R][0]>0){Q+=F[R][0];T+=I[R][0]}}N.top=(-H-y.labelOffset)+"px";D.top=(y.labelOffset+T)+"px";U.style.top=parseInt(U.style.top,10)-T+"px";U.style.height=E.height=T+"px";S.aggregate.innerHTML=Q}}});var z=x.canvas.getSize(),C=y.Margin;x.config.offsetY=-z.height/2+C.bottom+(y.showLabels&&(y.labelOffset+y.Label.size));x.config.offsetX=(C.right-C.left)/2;this.st=x;this.canvas=this.st.canvas},loadJSON:function(N){var K=c.time(),B=[],G=this.st,Q=c.splat(N.label),J=c.splat(N.color||this.colors),O=this.config,x=!!O.type.split(":")[1],z=O.animate;for(var L=0,y=N.values,I=y.length;L<I-1;L++){var P=y[L],E=y[L-1],F=y[L+1];var M=c.splat(y[L].values),w=c.splat(y[L+1].values);var A=c.zip(M,w);var D=0,C=0;B.push({id:K+P.label,name:P.label,data:{value:A,"$valueArray":A,"$colorArray":J,"$stringArray":Q,"$next":F.label,"$prev":E?E.label:false,"$config":O,"$gradient":x},children:[]})}var H={id:K+"$root",name:"",data:{"$type":"none","$width":1,"$height":1},children:B};G.loadJSON(H);this.normalizeDims();G.compute();G.select(G.root);if(z){G.fx.animate({modes:["node-property:height:dimArray"],duration:1500})}},updateJSON:function(z,C){if(this.busy){return}this.busy=true;var y=this.st,B=y.graph,D=z.label&&c.splat(z.label),x=z.values,w=this.config.animate,A=this;c.each(x,function(F){var L=B.getByName(F.label);if(L){F.values=c.splat(F.values);var G=L.getData("stringArray"),K=L.getData("valueArray");c.each(K,function(M,N){M[0]=F.values[N];if(D){G[N]=D[N]}});L.setData("valueArray",K);var I=L.getData("prev"),H=L.getData("next"),E=B.getByName(H);if(I){var J=B.getByName(I);if(J){var K=J.getData("valueArray");c.each(K,function(M,N){M[1]=F.values[N]})}}if(!E){var K=L.getData("valueArray");c.each(K,function(M,N){M[1]=F.values[N]})}}});this.normalizeDims();y.compute();y.select(y.root);if(w){y.fx.animate({modes:["node-property:height:dimArray"],duration:1500,onComplete:function(){A.busy=false;C&&C.onComplete()}})}},filter:function(){if(this.busy){return}this.busy=true;if(this.config.Tips.enable){this.st.tips.hide()}this.select(false,false,false);var x=Array.prototype.slice.call(arguments);var w=this.st.graph.getNode(this.st.root);var y=this;w.eachAdjacency(function(z){var C=z.nodeTo,B=C.getData("dimArray"),A=C.getData("stringArray");C.setData("dimArray",c.map(B,function(E,D){return(c.indexOf(x,A[D])>-1)?E:[0,0]}),"end")});this.st.fx.animate({modes:["node-property:dimArray"],duration:1500,onComplete:function(){y.busy=false}})},restore:function(){if(this.busy){return}this.busy=true;if(this.config.Tips.enable){this.st.tips.hide()}this.select(false,false,false);this.normalizeDims();var w=this;this.st.fx.animate({modes:["node-property:height:dimArray"],duration:1500,onComplete:function(){w.busy=false}})},select:function(B,x,w){if(!this.config.selectOnHover){return}var y=this.selected;if(y.id!=B||y.name!=x||y.index!=w){y.id=B;y.name=x;y.index=w;this.st.graph.eachNode(function(C){C.setData("border",false)});if(B){var A=this.st.graph.getNode(B);A.setData("border",y);var z=w===0?"prev":"next";z=A.getData(z);if(z){A=this.st.graph.getByName(z);if(A){A.setData("border",{name:x,index:1-w})}}}this.st.plot()}},getLegend:function(){var y={};var z;this.st.graph.getNode(this.st.root).eachAdjacency(function(A){z=A.nodeTo});var x=z.getData("colorArray"),w=x.length;c.each(z.getData("stringArray"),function(B,A){y[B]=x[A%w]});return y},getMaxValue:function(){var w=0;this.st.graph.eachNode(function(B){var y=B.getData("valueArray"),x=0,A=0;c.each(y,function(C){x+=+C[0];A+=+C[1]});var z=A>x?A:x;w=w>z?w:z});return w},normalizeDims:function(){var C=this.st.graph.getNode(this.st.root),z=0;C.eachAdjacency(function(){z++});var B=this.getMaxValue()||1,F=this.st.canvas.getSize(),y=this.config,A=y.Margin,D=y.labelOffset+y.Label.size,w=(F.width-(A.left+A.right))/z,x=y.animate,E=F.height-(A.top+A.bottom)-(y.showAggregates&&D)-(y.showLabels&&D);this.st.graph.eachNode(function(L){var I=0,K=0,G=[];c.each(L.getData("valueArray"),function(M){I+=+M[0];K+=+M[1];G.push([0,0])});var J=K>I?K:I;L.setData("width",w);if(x){L.setData("height",J*E/B,"end");L.setData("dimArray",c.map(L.getData("valueArray"),function(M){return[M[0]*E/B,M[1]*E/B]}),"end");var H=L.getData("dimArray");if(!H){L.setData("dimArray",G)}}else{L.setData("height",J*E/B);L.setData("dimArray",c.map(L.getData("valueArray"),function(M){return[M[0]*E/B,M[1]*E/B]}))}})}});n.BarChart={$extend:true,animate:true,type:"stacked",labelOffset:3,barsOffset:0,hoveredColor:"#9fd4ff",orientation:"horizontal",showAggregates:true,showLabels:true,Tips:{enable:false,onShow:c.empty,onHide:c.empty},Events:{enable:false,onClick:c.empty}};$jit.ST.Plot.NodeTypes.implement({"barchart-stacked":{render:function(Q,C){var H=Q.pos.getc(true),P=Q.getData("width"),N=Q.getData("height"),L=this.getAlignedPos(H,P,N),K=L.x,J=L.y,M=Q.getData("dimArray"),F=Q.getData("valueArray"),E=Q.getData("colorArray"),B=E.length,X=Q.getData("stringArray");var S=C.getCtx(),w={},T=Q.getData("border"),z=Q.getData("gradient"),Z=Q.getData("config"),A=Z.orientation=="horizontal",D=Z.showAggregates,O=Z.showLabels,I=Z.Label;if(E&&M&&X){for(var W=0,R=M.length,V=0,G=0;W<R;W++){S.fillStyle=S.strokeStyle=E[W%B];if(z){var Y;if(A){Y=S.createLinearGradient(K+V+M[W]/2,J,K+V+M[W]/2,J+N)}else{Y=S.createLinearGradient(K,J-V-M[W]/2,K+P,J-V-M[W]/2)}var U=c.rgbToHex(c.map(c.hexToRgb(E[W%B].slice(1)),function(x){return(x*0.5)>>0}));Y.addColorStop(0,U);Y.addColorStop(0.5,E[W%B]);Y.addColorStop(1,U);S.fillStyle=Y}if(A){S.fillRect(K+V,J,M[W],N)}else{S.fillRect(K,J-V-M[W],P,M[W])}if(T&&T.name==X[W]){w.acum=V;w.dimValue=M[W]}V+=(M[W]||0);G+=(F[W]||0)}if(T){S.save();S.lineWidth=2;S.strokeStyle=T.color;if(A){S.strokeRect(K+w.acum+1,J+1,w.dimValue-2,N-2)}else{S.strokeRect(K+1,J-w.acum-w.dimValue+1,P-2,w.dimValue-2)}S.restore()}if(I.type=="Native"){S.save();S.fillStyle=S.strokeStyle=I.color;S.font=I.style+" "+I.size+"px "+I.family;S.textBaseline="middle";if(D(Q.name,G)){if(A){S.textAlign="right";S.fillText(G,K+V-Z.labelOffset,J+N/2)}else{S.textAlign="center";S.fillText(G,K+P/2,J-N-I.size/2-Z.labelOffset)}}if(O(Q.name,G,Q)){if(A){S.textAlign="center";S.translate(K-Z.labelOffset-I.size/2,J+N/2);S.rotate(Math.PI/2);S.fillText(Q.name,0,0)}else{S.textAlign="center";S.fillText(Q.name,K+P/2,J+I.size/2+Z.labelOffset)}}S.restore()}}},contains:function(D,F){var I=D.pos.getc(true),A=D.getData("width"),N=D.getData("height"),M=this.getAlignedPos(I,A,N),L=M.x,J=M.y,O=D.getData("dimArray"),B=D.getData("config"),z=F.x-L,w=B.orientation=="horizontal";if(w){if(F.x<L||F.x>L+A||F.y>J+N||F.y<J){return false}}else{if(F.x<L||F.x>L+A||F.y>J||F.y<J-N){return false}}for(var G=0,E=O.length,K=(w?L:J);G<E;G++){var C=O[G];if(w){K+=C;var H=K;if(F.x<=H){return{name:D.getData("stringArray")[G],color:D.getData("colorArray")[G],value:D.getData("valueArray")[G],label:D.name}}}else{K-=C;var H=K;if(F.y>=H){return{name:D.getData("stringArray")[G],color:D.getData("colorArray")[G],value:D.getData("valueArray")[G],label:D.name}}}}return false}},"barchart-grouped":{render:function(R,C){var I=R.pos.getc(true),Q=R.getData("width"),O=R.getData("height"),M=this.getAlignedPos(I,Q,O),L=M.x,K=M.y,N=R.getData("dimArray"),G=R.getData("valueArray"),X=G.length,F=R.getData("colorArray"),B=F.length,Z=R.getData("stringArray");var T=C.getCtx(),w={},U=R.getData("border"),z=R.getData("gradient"),ab=R.getData("config"),A=ab.orientation=="horizontal",E=ab.showAggregates,P=ab.showLabels,J=ab.Label,D=(A?O:Q)/X;if(F&&N&&Z){for(var Y=0,S=X,W=0,H=0;Y<S;Y++){T.fillStyle=T.strokeStyle=F[Y%B];if(z){var aa;if(A){aa=T.createLinearGradient(L+N[Y]/2,K+D*Y,L+N[Y]/2,K+D*(Y+1))}else{aa=T.createLinearGradient(L+D*Y,K-N[Y]/2,L+D*(Y+1),K-N[Y]/2)}var V=c.rgbToHex(c.map(c.hexToRgb(F[Y%B].slice(1)),function(x){return(x*0.5)>>0}));aa.addColorStop(0,V);aa.addColorStop(0.5,F[Y%B]);aa.addColorStop(1,V);T.fillStyle=aa}if(A){T.fillRect(L,K+D*Y,N[Y],D)}else{T.fillRect(L+D*Y,K-N[Y],D,N[Y])}if(U&&U.name==Z[Y]){w.acum=D*Y;w.dimValue=N[Y]}W+=(N[Y]||0);H+=(G[Y]||0)}if(U){T.save();T.lineWidth=2;T.strokeStyle=U.color;if(A){T.strokeRect(L+1,K+w.acum+1,w.dimValue-2,D-2)}else{T.strokeRect(L+w.acum+1,K-w.dimValue+1,D-2,w.dimValue-2)}T.restore()}if(J.type=="Native"){T.save();T.fillStyle=T.strokeStyle=J.color;T.font=J.style+" "+J.size+"px "+J.family;T.textBaseline="middle";if(E(R.name,H)){if(A){T.textAlign="right";T.fillText(H,L+Math.max.apply(null,N)-ab.labelOffset,K+O/2)}else{T.textAlign="center";T.fillText(H,L+Q/2,K-Math.max.apply(null,N)-J.size/2-ab.labelOffset)}}if(P(R.name,H,R)){if(A){T.textAlign="center";T.translate(L-ab.labelOffset-J.size/2,K+O/2);T.rotate(Math.PI/2);T.fillText(R.name,0,0)}else{T.textAlign="center";T.fillText(R.name,L+Q/2,K+J.size/2+ab.labelOffset)}}T.restore()}}},contains:function(J,F){var B=J.pos.getc(true),I=J.getData("width"),H=J.getData("height"),E=this.getAlignedPos(B,I,H),D=E.x,C=E.y,G=J.getData("dimArray"),M=G.length,P=J.getData("config"),A=F.x-D,w=P.orientation=="horizontal",z=(w?H:I)/M;if(w){if(F.x<D||F.x>D+I||F.y>C+H||F.y<C){return false}}else{if(F.x<D||F.x>D+I||F.y>C||F.y<C-H){return false}}for(var L=0,K=G.length;L<K;L++){var O=G[L];if(w){var N=C+z*L;if(F.x<=D+O&&F.y>=N&&F.y<=N+z){return{name:J.getData("stringArray")[L],color:J.getData("colorArray")[L],value:J.getData("valueArray")[L],label:J.name}}}else{var N=D+z*L;if(F.x>=N&&F.x<=N+z&&F.y>=C-O){return{name:J.getData("stringArray")[L],color:J.getData("colorArray")[L],value:J.getData("valueArray")[L],label:J.name}}}}return false}}});$jit.BarChart=new q({st:null,colors:["#416D9C","#70A35E","#EBB056","#C74243","#83548B","#909291","#557EAA"],selected:{},busy:false,initialize:function(y){this.controller=this.config=c.merge(n("Canvas","Margin","Label","BarChart"),{Label:{type:"Native"}},y);var z=this.config.showLabels,x=c.type(z),A=this.config.showAggregates,w=c.type(A);this.config.showLabels=x=="function"?z:c.lambda(z);this.config.showAggregates=w=="function"?A:c.lambda(A);this.initializeViz()},initializeViz:function(){var y=this.config,B=this;var w=y.type.split(":")[0],D=y.orientation=="horizontal",A={};var x=new $jit.ST({injectInto:y.injectInto,orientation:D?"left":"bottom",levelDistance:0,siblingOffset:y.barsOffset,subtreeOffset:0,withLabels:y.Label.type!="Native",useCanvas:y.useCanvas,Label:{type:y.Label.type},Node:{overridable:true,type:"barchart-"+w,align:"left",width:1,height:1},Edge:{type:"none"},Tips:{enable:y.Tips.enable,type:"Native",force:true,onShow:function(H,G,E){var F=E;y.Tips.onShow(H,F,G)}},Events:{enable:true,type:"Native",onClick:function(G,H,E){if(!y.Events.enable){return}var F=H.getContains();y.Events.onClick(F,H,E)},onMouseMove:function(G,H,E){if(!y.hoveredColor){return}if(G){var F=H.getContains();B.select(G.id,F.name,F.index)}else{B.select(false,false,false)}}},onCreateLabel:function(J,H){var P=y.Label,N=H.getData("valueArray"),M=c.reduce(N,function(Q,R){return Q+R},0);var L={wrapper:document.createElement("div"),aggregate:document.createElement("div"),label:document.createElement("div")};var E=L.wrapper,O=L.label,F=L.aggregate,G=E.style,K=O.style,I=F.style;A[H.id]=L;E.appendChild(O);E.appendChild(F);if(!y.showLabels(H.name,M,H)){K.display="none"}if(!y.showAggregates(H.name,M,H)){I.display="none"}G.position="relative";G.overflow="visible";G.fontSize=P.size+"px";G.fontFamily=P.family;G.color=P.color;G.textAlign="center";I.position=K.position="absolute";J.style.width=H.getData("width")+"px";J.style.height=H.getData("height")+"px";I.left=K.left="0px";O.innerHTML=H.name;J.appendChild(E)},onPlaceLabel:function(L,H){if(!A[H.id]){return}var N=A[H.id],I=N.wrapper.style,P=N.label.style,M=N.aggregate.style,Q=y.type.split(":")[0]=="grouped",E=y.orientation=="horizontal",T=H.getData("dimArray"),U=H.getData("valueArray"),F=(Q&&E)?Math.max.apply(null,T):H.getData("width"),S=(Q&&!E)?Math.max.apply(null,T):H.getData("height"),G=parseInt(I.fontSize,10),O=L.style;if(T&&U){I.width=M.width=P.width=L.style.width=F+"px";for(var K=0,J=U.length,R=0;K<J;K++){if(T[K]>0){R+=U[K]}}if(y.showLabels(H.name,R,H)){P.display=""}else{P.display="none"}if(y.showAggregates(H.name,R,H)){M.display=""}else{M.display="none"}if(y.orientation=="horizontal"){M.textAlign="right";P.textAlign="left";P.textIndex=M.textIndent=y.labelOffset+"px";M.top=P.top=(S-G)/2+"px";L.style.height=I.height=S+"px"}else{M.top=(-G-y.labelOffset)+"px";P.top=(y.labelOffset+S)+"px";L.style.top=parseInt(L.style.top,10)-S+"px";L.style.height=I.height=S+"px"}N.aggregate.innerHTML=R}}});var z=x.canvas.getSize(),C=y.Margin;if(D){x.config.offsetX=z.width/2-C.left-(y.showLabels&&(y.labelOffset+y.Label.size));x.config.offsetY=(C.bottom-C.top)/2}else{x.config.offsetY=-z.height/2+C.bottom+(y.showLabels&&(y.labelOffset+y.Label.size));x.config.offsetX=(C.right-C.left)/2}this.st=x;this.canvas=this.st.canvas},loadJSON:function(K){if(this.busy){return}this.busy=true;var I=c.time(),C=[],D=this.st,N=c.splat(K.label),H=c.splat(K.color||this.colors),L=this.config,w=!!L.type.split(":")[1],z=L.animate,y=L.orientation=="horizontal",A=this;for(var J=0,x=K.values,F=x.length;J<F;J++){var M=x[J];var B=c.splat(x[J].values);var G=0;C.push({id:I+M.label,name:M.label,data:{value:B,"$valueArray":B,"$colorArray":H,"$stringArray":N,"$gradient":w,"$config":L},children:[]})}var E={id:I+"$root",name:"",data:{"$type":"none","$width":1,"$height":1},children:C};D.loadJSON(E);this.normalizeDims();D.compute();D.select(D.root);if(z){if(y){D.fx.animate({modes:["node-property:width:dimArray"],duration:1500,onComplete:function(){A.busy=false}})}else{D.fx.animate({modes:["node-property:height:dimArray"],duration:1500,onComplete:function(){A.busy=false}})}}else{this.busy=false}},updateJSON:function(z,C){if(this.busy){return}this.busy=true;var y=this.st;var B=y.graph;var x=z.values;var w=this.config.animate;var A=this;var D=this.config.orientation=="horizontal";c.each(x,function(E){var F=B.getByName(E.label);if(F){F.setData("valueArray",c.splat(E.values));if(z.label){F.setData("stringArray",c.splat(z.label))}}});this.normalizeDims();y.compute();y.select(y.root);if(w){if(D){y.fx.animate({modes:["node-property:width:dimArray"],duration:1500,onComplete:function(){A.busy=false;C&&C.onComplete()}})}else{y.fx.animate({modes:["node-property:height:dimArray"],duration:1500,onComplete:function(){A.busy=false;C&&C.onComplete()}})}}},select:function(y,w){if(!this.config.hoveredColor){return}var x=this.selected;if(x.id!=y||x.name!=w){x.id=y;x.name=w;x.color=this.config.hoveredColor;this.st.graph.eachNode(function(z){if(y==z.id){z.setData("border",x)}else{z.setData("border",false)}});this.st.plot()}},getLegend:function(){var y={};var z;this.st.graph.getNode(this.st.root).eachAdjacency(function(A){z=A.nodeTo});var x=z.getData("colorArray"),w=x.length;c.each(z.getData("stringArray"),function(B,A){y[B]=x[A%w]});return y},getMaxValue:function(){var x=0,w=this.config.type.split(":")[0]=="stacked";this.st.graph.eachNode(function(A){var y=A.getData("valueArray"),z=0;if(!y){return}if(w){c.each(y,function(B){z+=+B})}else{z=Math.max.apply(null,y)}x=x>z?x:z});return x},setBarType:function(w){this.config.type=w;this.st.config.Node.type="barchart-"+w.split(":")[0]},normalizeDims:function(){var G=this.st.graph.getNode(this.st.root),B=0;G.eachAdjacency(function(){B++});var D=this.getMaxValue()||1,J=this.st.canvas.getSize(),z=this.config,C=z.Margin,H=C.left+C.right,A=C.top+C.bottom,x=z.orientation=="horizontal",w=(J[x?"height":"width"]-(x?A:H)-(B-1)*z.barsOffset)/B,y=z.animate,I=J[x?"width":"height"]-(x?H:A)-(!x&&z.showAggregates&&(z.Label.size+z.labelOffset))-(z.showLabels&&(z.Label.size+z.labelOffset)),F=x?"height":"width",E=x?"width":"height";this.st.graph.eachNode(function(N){var M=0,K=[];c.each(N.getData("valueArray"),function(O){M+=+O;K.push(0)});N.setData(F,w);if(y){N.setData(E,M*I/D,"end");N.setData("dimArray",c.map(N.getData("valueArray"),function(O){return O*I/D}),"end");var L=N.getData("dimArray");if(!L){N.setData("dimArray",K)}}else{N.setData(E,M*I/D);N.setData("dimArray",c.map(N.getData("valueArray"),function(O){return O*I/D}))}})}});n.PieChart={$extend:true,animate:true,offset:25,sliceOffset:0,labelOffset:3,type:"stacked",hoveredColor:"#9fd4ff",Events:{enable:false,onClick:c.empty},Tips:{enable:false,onShow:c.empty,onHide:c.empty},showLabels:true,resizeLabels:false,updateHeights:false};g.Radial=new q({compute:function(x){var y=c.splat(x||["current","start","end"]);f.compute(this.graph,y,this.config);this.graph.computeLevels(this.root,0,"ignore");var w=this.createLevelDistanceFunc();this.computeAngularWidths(y);this.computePositions(y,w)},computePositions:function(D,A){var F=D;var E=this.graph;var B=E.getNode(this.root);var C=this.parent;var w=this.config;for(var y=0,x=F.length;y<x;y++){var z=F[y];B.setPos(k(0,0),z);B.setData("span",Math.PI*2,z)}B.angleSpan={begin:0,end:2*Math.PI};E.eachBFS(this.root,function(K){var Q=K.angleSpan.end-K.angleSpan.begin;var S=K.angleSpan.begin;var R=A(K);var T=0,G=[],J={};K.eachSubnode(function(W){T+=W._treeAngularWidth;for(var X=0,V=F.length;X<V;X++){var Z=F[X],Y=W.getData("dim",Z);J[Z]=(Z in J)?(Y>J[Z]?Y:J[Z]):Y}G.push(W)},"ignore");if(C&&C.id==K.id&&G.length>0&&G[0].dist){G.sort(function(W,V){return(W.dist>=V.dist)-(W.dist<=V.dist)})}for(var M=0,O=G.length;M<O;M++){var I=G[M];if(!I._flag){var U=I._treeAngularWidth/T*Q;var H=S+U/2;for(var N=0,L=F.length;N<L;N++){var P=F[N];I.setPos(k(H,R),P);I.setData("span",U,P);I.setData("dim-quotient",I.getData("dim",P)/J[P],P)}I.angleSpan={begin:S,end:S+U};S+=U}}},"ignore")},setAngularWidthForNodes:function(w){this.graph.eachBFS(this.root,function(z,x){var y=z.getData("angularWidth",w[0])||5;z._angularWidth=y/x},"ignore")},setSubtreesAngularWidth:function(){var w=this;this.graph.eachNode(function(x){w.setSubtreeAngularWidth(x)},"ignore")},setSubtreeAngularWidth:function(z){var y=this,x=z._angularWidth,w=0;z.eachSubnode(function(A){y.setSubtreeAngularWidth(A);w+=A._treeAngularWidth},"ignore");z._treeAngularWidth=Math.max(x,w)},computeAngularWidths:function(w){this.setAngularWidthForNodes(w);this.setSubtreesAngularWidth()}});$jit.Sunburst=new q({Implements:[d,o,g.Radial],initialize:function(w){var y=$jit.Sunburst;var x={interpolation:"linear",levelDistance:100,Node:{type:"multipie",height:0},Edge:{type:"none"},Label:{textAlign:"start",textBaseline:"middle"}};this.controller=this.config=c.merge(n("Canvas","Node","Edge","Fx","Tips","NodeStyles","Events","Navigation","Controller","Label"),x,w);var z=this.config;if(z.useCanvas){this.canvas=z.useCanvas;this.config.labelContainer=this.canvas.id+"-label"}else{if(z.background){z.background=c.merge({type:"Circles"},z.background)}this.canvas=new l(this,z);this.config.labelContainer=(typeof z.injectInto=="string"?z.injectInto:z.injectInto.id)+"-label"}this.graphOptions={complex:false,Node:{selected:false,exist:true,drawn:true}};this.graph=new e(this.graphOptions,this.config.Node,this.config.Edge);this.labels=new y.Label[z.Label.type](this);this.fx=new y.Plot(this,y);this.op=new y.Op(this);this.json=null;this.root=null;this.rotated=null;this.busy=false;this.initializeExtras()},createLevelDistanceFunc:function(){var w=this.config.levelDistance;return function(x){return(x._depth+1)*w}},refresh:function(){this.compute();this.plot()},reposition:function(){this.compute("end")},rotate:function(y,z,x){var w=y.getPos(x.property||"current").getp(true).theta;this.rotated=y;this.rotateAngle(-w,z,x)},rotateAngle:function(y,B,x){var z=this;var w=c.merge(this.config,x||{},{modes:["polar"]});var A=x.property||(B==="animate"?"end":"current");if(B==="animate"){this.fx.animation.pause()}this.graph.eachNode(function(D){var C=D.getPos(A);C.theta+=y;if(C.theta<0){C.theta+=Math.PI*2}});if(B=="animate"){this.fx.animate(w)}else{if(B=="replot"){this.fx.plot();this.busy=false}}},plot:function(){this.fx.plot()}});$jit.Sunburst.$extend=true;(function(w){w.Op=new q({Implements:e.Op});w.Plot=new q({Implements:e.Plot});w.Label={};w.Label.Native=new q({Implements:e.Label.Native,initialize:function(x){this.viz=x;this.label=x.config.Label;this.config=x.config},renderLabel:function(C,E,G){var N=E.getData("span");if(N<Math.PI/2&&Math.tan(N)*this.config.levelDistance*E._depth<10){return}var O=C.getCtx();var A=O.measureText(E.name);if(E.id==this.viz.root){var M=-A.width/2,K=0,L=0;var z=0}else{var D=5;var z=G.levelDistance-D;var J=E.pos.clone();J.rho+=D;var B=J.getp(true);var H=J.getc(true);var M=H.x,K=H.y;var F=Math.PI;var I=(B.theta>F/2&&B.theta<3*F/2);var L=I?B.theta+F:B.theta;if(I){M-=Math.abs(Math.cos(B.theta)*A.width);K+=Math.sin(B.theta)*A.width}else{if(E.id==this.viz.root){M-=A.width/2}}}O.save();O.translate(M,K);O.rotate(L);O.fillText(E.name,0,0);O.restore()}});w.Label.SVG=new q({Implements:e.Label.SVG,initialize:function(x){this.viz=x},placeLabel:function(N,C,E){var J=C.pos.getc(true),M=this.viz,A=this.viz.canvas;var F=A.getSize();var B={x:Math.round(J.x+F.width/2),y:Math.round(J.y+F.height/2)};N.setAttribute("x",B.x);N.setAttribute("y",B.y);var G=N.getBBox();if(G){var L=N.getAttribute("x");var I=N.getAttribute("y");var z=C.pos.getp(true);var D=Math.PI;var H=(z.theta>D/2&&z.theta<3*D/2);if(H){N.setAttribute("x",L-G.width);N.setAttribute("y",I-G.height)}else{if(C.id==M.root){N.setAttribute("x",L-G.width/2)}}var K=H?z.theta+D:z.theta;if(C._depth){N.setAttribute("transform","rotate("+K*360/(2*D)+" "+L+" "+I+")")}}E.onPlaceLabel(N,C)}});w.Label.HTML=new q({Implements:e.Label.HTML,initialize:function(x){this.viz=x},placeLabel:function(G,A,C){var E=A.pos.clone(),y=this.viz.canvas,F=A.getData("height"),B=((F||A._depth==0)?F:this.viz.config.levelDistance)/2,D=y.getSize();E.rho+=B;E=E.getc(true);var z={x:Math.round(E.x+D.width/2),y:Math.round(E.y+D.height/2)};var x=G.style;x.left=z.x+"px";x.top=z.y+"px";x.display=this.fitsInCanvas(z,y)?"":"none";C.onPlaceLabel(G,A)}});w.Plot.NodeTypes=new q({none:{render:c.empty,contains:c.lambda(false),anglecontains:function(B,D){var A=B.getData("span")/2,y=B.pos.theta;var z=y-A,x=y+A;if(z<0){z+=Math.PI*2}var C=Math.atan2(D.y,D.x);if(C<0){C+=Math.PI*2}if(z>x){return(C>z&&C<=Math.PI*2)||C<x}else{return C>z&&C<x}}},pie:{render:function(C,A){var G=C.getData("span")/2,z=C.pos.theta;var B=z-G,D=z+G;var F=C.pos.getp(true);var x=new b(F.rho,B);var y=x.getc(true);x.theta=D;var E=x.getc(true);var H=A.getCtx();H.beginPath();H.moveTo(0,0);H.lineTo(y.x,y.y);H.moveTo(0,0);H.lineTo(E.x,E.y);H.moveTo(0,0);H.arc(0,0,F.rho*C.getData("dim-quotient"),B,D,false);H.fill()},contains:function(z,B){if(this.nodeTypes.none.anglecontains.call(this,z,B)){var x=Math.sqrt(B.x*B.x+B.y*B.y);var y=this.config.levelDistance,A=z._depth;return(x<=y*A)}return false}},multipie:{render:function(D,B){var K=D.getData("height");var E=K?K:this.config.levelDistance;var J=D.getData("span")/2,A=D.pos.theta;var C=A-J,G=A+J;var I=D.pos.getp(true);var y=new b(I.rho,C);var z=y.getc(true);y.theta=G;var H=y.getc(true);y.rho+=E;var x=y.getc(true);y.theta=C;var F=y.getc(true);var L=B.getCtx();L.moveTo(0,0);L.beginPath();L.arc(0,0,I.rho,C,G,false);L.arc(0,0,I.rho+E,G,C,true);L.moveTo(z.x,z.y);L.lineTo(F.x,F.y);L.moveTo(H.x,H.y);L.lineTo(x.x,x.y);L.fill();if(D.collapsed){L.save();L.lineWidth=2;L.moveTo(0,0);L.beginPath();L.arc(0,0,I.rho+E+5,G-0.01,C+0.01,true);L.stroke();L.restore()}},contains:function(A,D){if(this.nodeTypes.none.anglecontains.call(this,A,D)){var y=Math.sqrt(D.x*D.x+D.y*D.y);var x=A.getData("height");var B=x?x:this.config.levelDistance;var z=this.config.levelDistance,C=A._depth;return(y>=z*C)&&(y<=(z*C+B))}return false}},"gradient-multipie":{render:function(A,x){var F=x.getCtx();var E=A.getData("height");var B=E?E:this.config.levelDistance;var y=F.createRadialGradient(0,0,A.getPos().rho,0,0,A.getPos().rho+B);var D=c.hexToRgb(A.getData("color")),C=[];c.each(D,function(G){C.push(parseInt(G*0.5,10))});var z=c.rgbToHex(C);y.addColorStop(0,z);y.addColorStop(1,A.getData("color"));F.fillStyle=y;this.nodeTypes.multipie.render.call(this,A,x)},contains:function(x,y){return this.nodeTypes.multipie.contains.call(this,x,y)}},"gradient-pie":{render:function(C,z){var x=z.getCtx();var D=x.createRadialGradient(0,0,0,0,0,C.getPos().rho);var B=c.hexToRgb(C.getData("color")),y=[];c.each(B,function(E){y.push(parseInt(E*0.5,10))});var A=c.rgbToHex(y);D.addColorStop(1,A);D.addColorStop(0,C.getData("color"));x.fillStyle=D;this.nodeTypes.pie.render.call(this,C,z)},contains:function(x,y){return this.nodeTypes.pie.contains.call(this,x,y)}}});w.Plot.EdgeTypes=new q({none:c.empty,line:{render:function(x,y){var A=x.nodeFrom.pos.getc(true),z=x.nodeTo.pos.getc(true);this.edgeHelper.line.render(A,z,y)},contains:function(x,A){var z=x.nodeFrom.pos.getc(true),y=x.nodeTo.pos.getc(true);return this.edgeHelper.line.contains(z,y,A,this.edge.epsilon)}},arrow:{render:function(y,z){var D=y.nodeFrom.pos.getc(true),C=y.nodeTo.pos.getc(true),B=y.getData("dim"),A=y.data.$direction,x=(A&&A.length>1&&A[0]!=y.nodeFrom.id);this.edgeHelper.arrow.render(D,C,B,x,z)},contains:function(x,A){var z=x.nodeFrom.pos.getc(true),y=x.nodeTo.pos.getc(true);return this.edgeHelper.arrow.contains(z,y,A,this.edge.epsilon)}},hyperline:{render:function(x,y){var B=x.nodeFrom.pos.getc(),A=x.nodeTo.pos.getc(),z=Math.max(B.norm(),A.norm());this.edgeHelper.hyperline.render(B.$scale(1/z),A.$scale(1/z),z,y)},contains:c.lambda(false)}})})($jit.Sunburst);$jit.Sunburst.Plot.NodeTypes.implement({"piechart-stacked":{render:function(U,A){var T=U.pos.getp(true),C=U.getData("dimArray"),S=U.getData("valueArray"),G=U.getData("colorArray"),z=G.length,M=U.getData("stringArray"),P=U.getData("span")/2,K=U.pos.theta,F=K-P,J=K+P,R=new b;var N=A.getCtx(),L={},I=U.getData("gradient"),D=U.getData("border"),Z=U.getData("config"),ai=Z.showLabels,Y=Z.resizeLabels,ab=Z.Label;var ae=Z.sliceOffset*Math.cos((F+J)/2);var E=Z.sliceOffset*Math.sin((F+J)/2);if(G&&C&&M){for(var af=0,ac=C.length,w=0,X=0;af<ac;af++){var B=C[af],ag=G[af%z];if(B<=0){continue}N.fillStyle=N.strokeStyle=ag;if(I&&B){var ad=N.createRadialGradient(ae,E,w+Z.sliceOffset,ae,E,w+B+Z.sliceOffset);var x=c.hexToRgb(ag),W=c.map(x,function(al){return(al*0.8)>>0}),y=c.rgbToHex(W);ad.addColorStop(0,ag);ad.addColorStop(0.5,ag);ad.addColorStop(1,y);N.fillStyle=ad}R.rho=w+Z.sliceOffset;R.theta=F;var ah=R.getc(true);R.theta=J;var O=R.getc(true);R.rho+=B;var aj=R.getc(true);R.theta=F;var Q=R.getc(true);N.beginPath();N.arc(ae,E,w+0.01,F,J,false);N.arc(ae,E,w+B+0.01,J,F,true);N.fill();if(D&&D.name==M[af]){L.acum=w;L.dimValue=C[af];L.begin=F;L.end=J}w+=(B||0);X+=(S[af]||0)}if(D){N.save();N.globalCompositeOperation="source-over";N.lineWidth=2;N.strokeStyle=D.color;var aa=F<J?1:-1;N.beginPath();N.arc(ae,E,L.acum+0.01+1,L.begin,L.end,false);N.arc(ae,E,L.acum+L.dimValue+0.01-1,L.end,L.begin,true);N.closePath();N.stroke();N.restore()}if(ai&&ab.type=="Native"){N.save();N.fillStyle=N.strokeStyle=ab.color;var V=Y?U.getData("normalizedDim"):1,H=(ab.size*V)>>0;H=H<+Y?+Y:H;N.font=ab.style+" "+H+"px "+ab.family;N.textBaseline="middle";N.textAlign="center";R.rho=w+Z.labelOffset+Z.sliceOffset;R.theta=U.pos.theta;var ak=R.getc(true);N.fillText(U.name,ak.x,ak.y);N.restore()}}},contains:function(z,D){if(this.nodeTypes.none.anglecontains.call(this,z,D)){var F=Math.sqrt(D.x*D.x+D.y*D.y);var w=this.config.levelDistance,C=z._depth;var x=z.getData("config");if(F<=w*C+x.sliceOffset){var G=z.getData("dimArray");for(var B=0,A=G.length,E=x.sliceOffset;B<A;B++){var y=G[B];if(F>=E&&F<=E+y){return{name:z.getData("stringArray")[B],color:z.getData("colorArray")[B],value:z.getData("valueArray")[B],label:z.name}}E+=y}}return false}return false}}});$jit.PieChart=new q({sb:null,colors:["#416D9C","#70A35E","#EBB056","#C74243","#83548B","#909291","#557EAA"],selected:{},busy:false,initialize:function(w){this.controller=this.config=c.merge(n("Canvas","PieChart","Label"),{Label:{type:"Native"}},w);this.initializeViz()},initializeViz:function(){var x=this.config,A=this;var w=x.type.split(":")[0];var B=new $jit.Sunburst({injectInto:x.injectInto,useCanvas:x.useCanvas,withLabels:x.Label.type!="Native",Label:{type:x.Label.type},Node:{overridable:true,type:"piechart-"+w,width:1,height:1},Edge:{type:"none"},Tips:{enable:x.Tips.enable,type:"Native",force:true,onShow:function(F,E,C){var D=C;x.Tips.onShow(F,D,E)}},Events:{enable:true,type:"Native",onClick:function(E,F,C){if(!x.Events.enable){return}var D=F.getContains();x.Events.onClick(D,F,C)},onMouseMove:function(E,F,C){if(!x.hoveredColor){return}if(E){var D=F.getContains();A.select(E.id,D.name,D.index)}else{A.select(false,false,false)}}},onCreateLabel:function(F,E){var C=x.Label;if(x.showLabels){var D=F.style;D.fontSize=C.size+"px";D.fontFamily=C.family;D.color=C.color;D.textAlign="center";F.innerHTML=E.name}},onPlaceLabel:function(S,M){if(!x.showLabels){return}var G=M.pos.getp(true),J=M.getData("dimArray"),P=M.getData("span")/2,H=M.pos.theta,R=H-P,D=H+P,U=new b;var L=x.showLabels,F=x.resizeLabels,I=x.Label;if(J){for(var Q=0,N=J.length,O=0;Q<N;Q++){O+=J[Q]}var T=F?M.getData("normalizedDim"):1,C=(I.size*T)>>0;C=C<+F?+F:C;S.style.fontSize=C+"px";U.rho=O+x.labelOffset+x.sliceOffset;U.theta=(R+D)/2;var G=U.getc(true);var E=A.canvas.getSize();var K={x:Math.round(G.x+E.width/2),y:Math.round(G.y+E.height/2)};S.style.left=K.x+"px";S.style.top=K.y+"px"}}});var z=B.canvas.getSize(),y=Math.min;B.config.levelDistance=y(z.width,z.height)/2-x.offset-x.sliceOffset;this.sb=B;this.canvas=this.sb.canvas;this.canvas.getCtx().globalCompositeOperation="lighter"},loadJSON:function(K){var I=c.time(),C=[],w=this.sb,N=c.splat(K.label),E=N.length,H=c.splat(K.color||this.colors),z=H.length,L=this.config,x=!!L.type.split(":")[1],A=L.animate,G=E==1;for(var J=0,y=K.values,F=y.length;J<F;J++){var M=y[J];var B=c.splat(M.values);C.push({id:I+M.label,name:M.label,data:{value:B,"$valueArray":B,"$colorArray":G?c.splat(H[J%z]):H,"$stringArray":N,"$gradient":x,"$config":L,"$angularWidth":c.reduce(B,function(O,P){return O+P})},children:[]})}var D={id:I+"$root",name:"",data:{"$type":"none","$width":1,"$height":1},children:C};w.loadJSON(D);this.normalizeDims();w.refresh();if(A){w.fx.animate({modes:["node-property:dimArray"],duration:1500})}},updateJSON:function(y,B){if(this.busy){return}this.busy=true;var C=this.sb;var A=C.graph;var x=y.values;var w=this.config.animate;var z=this;c.each(x,function(D){var F=A.getByName(D.label),E=c.splat(D.values);if(F){F.setData("valueArray",E);F.setData("angularWidth",c.reduce(E,function(G,H){return G+H}));if(y.label){F.setData("stringArray",c.splat(y.label))}}});this.normalizeDims();if(w){C.compute("end");C.fx.animate({modes:["node-property:dimArray:span","linear"],duration:1500,onComplete:function(){z.busy=false;B&&B.onComplete()}})}else{C.refresh()}},select:function(y,w){if(!this.config.hoveredColor){return}var x=this.selected;if(x.id!=y||x.name!=w){x.id=y;x.name=w;x.color=this.config.hoveredColor;this.sb.graph.eachNode(function(z){if(y==z.id){z.setData("border",x)}else{z.setData("border",false)}});this.sb.plot()}},getLegend:function(){var y={};var z;this.sb.graph.getNode(this.sb.root).eachAdjacency(function(A){z=A.nodeTo});var x=z.getData("colorArray"),w=x.length;c.each(z.getData("stringArray"),function(B,A){y[B]=x[A%w]});return y},getMaxValue:function(){var w=0;this.sb.graph.eachNode(function(z){var x=z.getData("valueArray"),y=0;c.each(x,function(A){y+=+A});w=w>y?w:y});return w},normalizeDims:function(){var x=this.sb.graph.getNode(this.sb.root),w=0;x.eachAdjacency(function(){w++});var B=this.getMaxValue()||1,A=this.config,y=A.animate,z=this.sb.config.levelDistance;this.sb.graph.eachNode(function(G){var F=0,C=[];c.each(G.getData("valueArray"),function(H){F+=+H;C.push(1)});var E=(C.length==1)&&!A.updateHeights;if(y){G.setData("dimArray",c.map(G.getData("valueArray"),function(H){return E?z:(H*z/B)}),"end");var D=G.getData("dimArray");if(!D){G.setData("dimArray",C)}}else{G.setData("dimArray",c.map(G.getData("valueArray"),function(H){return E?z:(H*z/B)}))}G.setData("normalizedDim",F/B)})}});g.TM={};g.TM.SliceAndDice=new q({compute:function(B){var x=this.graph.getNode(this.clickedNode&&this.clickedNode.id||this.root);this.controller.onBeforeCompute(x);var z=this.canvas.getSize(),y=this.config,A=z.width,w=z.height;this.graph.computeLevels(this.root,0,"ignore");x.getPos(B).setc(-A/2,-w/2);x.setData("width",A,B);x.setData("height",w+y.titleHeight,B);this.computePositions(x,x,this.layout.orientation,B);this.controller.onAfterCompute(x)},computePositions:function(F,D,P,y){var M=0;F.eachSubnode(function(R){M+=R.getData("area",y)});var Q=this.config,N=Q.offset,J=F.getData("width",y),H=F.getData("height",y)-Q.titleHeight,x=F==D?1:(D.getData("area",y)/M);var I,G,L,B,A,E,C;var O=(P=="h");if(O){P="v";I=H;G=J*x;L="height";B="y";A="x";E=Q.titleHeight;C=0}else{P="h";I=H*x;G=J;L="width";B="x";A="y";E=0;C=Q.titleHeight}var w=D.getPos(y);D.setData("width",G,y);D.setData("height",I,y);var K=0,z=this;D.eachSubnode(function(S){var R=S.getPos(y);R[B]=K+w[B]+E;R[A]=w[A]+C;z.computePositions(D,S,P,y);K+=S.getData(L,y)})}});g.TM.Area={compute:function(w){w=w||"current";var C=this.graph.getNode(this.clickedNode&&this.clickedNode.id||this.root);this.controller.onBeforeCompute(C);var y=this.config,F=this.canvas.getSize(),x=F.width,E=F.height,D=y.offset,z=x-D,B=E-D;this.graph.computeLevels(this.root,0,"ignore");C.getPos(w).setc(-x/2,-E/2);C.setData("width",x,w);C.setData("height",E,w);var A={top:-E/2+y.titleHeight,left:-x/2,width:z,height:B-y.titleHeight};this.computePositions(C,A,w);this.controller.onAfterCompute(C)},computeDim:function(B,C,E,A,z,x){if(B.length+C.length==1){var y=(B.length==1)?B:C;this.layoutLast(y,E,A,x);return}if(B.length>=2&&C.length==0){C=[B.shift()]}if(B.length==0){if(C.length>0){this.layoutRow(C,E,A,x)}return}var D=B[0];if(z(C,E)>=z([D].concat(C),E)){this.computeDim(B.slice(1),C.concat([D]),E,A,z,x)}else{var F=this.layoutRow(C,E,A,x);this.computeDim(B,[],F.dim,F,z,x)}},worstAspectRatio:function(x,F){if(!x||x.length==0){return Number.MAX_VALUE}var y=0,G=0,B=Number.MAX_VALUE;for(var D=0,C=x.length;D<C;D++){var z=x[D]._area;y+=z;B=B<z?B:z;G=G>z?G:z}var E=F*F,A=y*y;return Math.max(E*G/A,A/(E*B))},avgAspectRatio:function(B,y){if(!B||B.length==0){return Number.MAX_VALUE}var D=0;for(var z=0,x=B.length;z<x;z++){var C=B[z]._area;var A=C/y;D+=y>A?y/A:A/y}return D/x},layoutLast:function(y,x,B,A){var z=y[0];z.getPos(A).setc(B.left,B.top);z.setData("width",B.width,A);z.setData("height",B.height,A)}};g.TM.Squarified=new q({Implements:g.TM.Area,computePositions:function(A,D,x){var z=this.config;if(D.width>=D.height){this.layout.orientation="h"}else{this.layout.orientation="v"}var w=A.getSubnodes([1,1],"ignore");if(w.length>0){this.processChildrenLayout(A,w,D,x);for(var C=0,B=w.length;C<B;C++){var F=w[C];var G=z.offset,H=F.getData("height",x)-G-z.titleHeight,y=F.getData("width",x)-G;var E=F.getPos(x);D={width:y,height:H,top:E.y+z.titleHeight,left:E.x};this.computePositions(F,D,x)}}},processChildrenLayout:function(G,w,C,x){var A=C.width*C.height;var B,y=w.length,D=0,H=[];for(B=0;B<y;B++){H[B]=parseFloat(w[B].getData("area",x));D+=H[B]}for(B=0;B<y;B++){w[B]._area=A*H[B]/D}var z=this.layout.horizontal()?C.height:C.width;w.sort(function(J,I){var K=I._area-J._area;return K?K:(I.id==J.id?0:(I.id<J.id?1:-1))});var F=[w[0]];var E=w.slice(1);this.squarify(E,F,z,C,x)},squarify:function(y,B,x,A,z){this.computeDim(y,B,x,A,this.worstAspectRatio,z)},layoutRow:function(y,x,A,z){if(this.layout.horizontal()){return this.layoutV(y,x,A,z)}else{return this.layoutH(y,x,A,z)}},layoutV:function(x,I,E,y){var J=0,A=function(w){return w};c.each(x,function(w){J+=w._area});var z=A(J/I),F=0;for(var C=0,B=x.length;C<B;C++){var D=A(x[C]._area/z);var G=x[C];G.getPos(y).setc(E.left,E.top+F);G.setData("width",z,y);G.setData("height",D,y);F+=D}var H={height:E.height,width:E.width-z,top:E.top,left:E.left+z};H.dim=Math.min(H.width,H.height);if(H.dim!=H.height){this.layout.change()}return H},layoutH:function(x,G,C,y){var I=0;c.each(x,function(w){I+=w._area});var H=I/G,D=C.top,z=0;for(var B=0,A=x.length;B<A;B++){var E=x[B];var G=E._area/H;E.getPos(y).setc(C.left+z,D);E.setData("width",G,y);E.setData("height",H,y);z+=G}var F={height:C.height-H,width:C.width,top:C.top+H,left:C.left};F.dim=Math.min(F.width,F.height);if(F.dim!=F.width){this.layout.change()}return F}});g.TM.Strip=new q({Implements:g.TM.Area,computePositions:function(A,D,x){var w=A.getSubnodes([1,1],"ignore"),z=this.config;if(w.length>0){this.processChildrenLayout(A,w,D,x);for(var C=0,B=w.length;C<B;C++){var F=w[C];var G=z.offset,H=F.getData("height",x)-G-z.titleHeight,y=F.getData("width",x)-G;var E=F.getPos(x);D={width:y,height:H,top:E.y+z.titleHeight,left:E.x};this.computePositions(F,D,x)}}},processChildrenLayout:function(G,w,B,x){var z=B.width*B.height;var A,y=w.length,C=0,H=[];for(A=0;A<y;A++){H[A]=+w[A].getData("area",x);C+=H[A]}for(A=0;A<y;A++){w[A]._area=z*H[A]/C}var F=this.layout.horizontal()?B.width:B.height;var E=[w[0]];var D=w.slice(1);this.stripify(D,E,F,B,x)},stripify:function(y,B,x,A,z){this.computeDim(y,B,x,A,this.avgAspectRatio,z)},layoutRow:function(y,x,A,z){if(this.layout.horizontal()){return this.layoutH(y,x,A,z)}else{return this.layoutV(y,x,A,z)}},layoutV:function(x,G,D,y){var H=0;c.each(x,function(w){H+=w._area});var z=H/G,E=0;for(var B=0,A=x.length;B<A;B++){var F=x[B];var C=F._area/z;F.getPos(y).setc(D.left,D.top+(G-C-E));F.setData("width",z,y);F.setData("height",C,y);E+=C}return{height:D.height,width:D.width-z,top:D.top,left:D.left+z,dim:G}},layoutH:function(x,F,C,y){var H=0;c.each(x,function(w){H+=w._area});var G=H/F,D=C.height-G,z=0;for(var B=0,A=x.length;B<A;B++){var E=x[B];var I=E._area/G;E.getPos(y).setc(C.left+z,C.top+D);E.setData("width",I,y);E.setData("height",G,y);z+=I}return{height:C.height-G,width:C.width,top:C.top,left:C.left,dim:F}}});g.Icicle=new q({compute:function(E){E=E||"current";var D=this.graph.getNode(this.root),z=this.config,H=this.canvas.getSize(),w=H.width,G=H.height,A=z.offset,C=z.constrained?z.levelsToShow:Number.MAX_VALUE;this.controller.onBeforeCompute(D);e.Util.computeLevels(this.graph,D.id,0,"ignore");var F=0;e.Util.eachLevel(D,0,false,function(J,I){if(I>F){F=I}});var y=this.graph.getNode(this.clickedNode&&this.clickedNode.id||D.id);var x=Math.min(F,C-1);var B=y._depth;if(this.layout.horizontal()){this.computeSubtree(y,-w/2,-G/2,w/(x+1),G,B,x,E)}else{this.computeSubtree(y,-w/2,-G/2,w,G/(x+1),B,x,E)}},computeSubtree:function(G,I,F,w,L,E,A,H){G.getPos(H).setc(I,F);G.setData("width",w,H);G.setData("height",L,H);var C,K=0,J=0;var z=e.Util.getSubnodes(G,[1,1]);if(!z.length){return}c.each(z,function(x){J+=x.getData("dim")});for(var D=0,B=z.length;D<B;D++){if(this.layout.horizontal()){C=L*z[D].getData("dim")/J;this.computeSubtree(z[D],I+w,F,w,C,E,A,H);F+=C}else{C=w*z[D].getData("dim")/J;this.computeSubtree(z[D],I,F+L,C,L,E,A,H);I+=C}}}});$jit.Icicle=new q({Implements:[d,o,g.Icicle],layout:{orientation:"h",vertical:function(){return this.orientation=="v"},horizontal:function(){return this.orientation=="h"},change:function(){this.orientation=this.vertical()?"h":"v"}},initialize:function(w){var x={animate:false,orientation:"h",offset:2,levelsToShow:Number.MAX_VALUE,constrained:false,Node:{type:"rectangle",overridable:true},Edge:{type:"none"},Label:{type:"Native"},duration:700,fps:45};var z=n("Canvas","Node","Edge","Fx","Tips","NodeStyles","Events","Navigation","Controller","Label");this.controller=this.config=c.merge(z,x,w);this.layout.orientation=this.config.orientation;var y=this.config;if(y.useCanvas){this.canvas=y.useCanvas;this.config.labelContainer=this.canvas.id+"-label"}else{this.canvas=new l(this,y);this.config.labelContainer=(typeof y.injectInto=="string"?y.injectInto:y.injectInto.id)+"-label"}this.graphOptions={complex:true,Node:{selected:false,exist:true,drawn:true}};this.graph=new e(this.graphOptions,this.config.Node,this.config.Edge,this.config.Label);this.labels=new $jit.Icicle.Label[this.config.Label.type](this);this.fx=new $jit.Icicle.Plot(this,$jit.Icicle);this.op=new $jit.Icicle.Op(this);this.group=new $jit.Icicle.Group(this);this.clickedNode=null;this.initializeExtras()},refresh:function(){var w=this.config.Label.type;if(w!="Native"){var x=this;this.graph.eachNode(function(y){x.labels.hideLabel(y,false)})}this.compute();this.plot()},plot:function(){this.fx.plot(this.config)},enter:function(y){if(this.busy){return}this.busy=true;var x=this,w=this.config;var z={onComplete:function(){if(w.request){x.compute()}if(w.animate){x.graph.nodeList.setDataset(["current","end"],{alpha:[1,0]});e.Util.eachSubgraph(y,function(A){A.setData("alpha",1,"end")},"ignore");x.fx.animate({duration:500,modes:["node-property:alpha"],onComplete:function(){x.clickedNode=y;x.compute("end");x.fx.animate({modes:["linear","node-property:width:height"],duration:1000,onComplete:function(){x.busy=false;x.clickedNode=y}})}})}else{x.clickedNode=y;x.busy=false;x.refresh()}}};if(w.request){this.requestNodes(clickedNode,z)}else{z.onComplete()}},out:function(){if(this.busy){return}var B=this,A=e.Util,y=this.config,D=this.graph,x=A.getParents(D.getNode(this.clickedNode&&this.clickedNode.id||this.root)),z=x[0],w=z,C=this.clickedNode;this.busy=true;this.events.hoveredNode=false;if(!z){this.busy=false;return}callback={onComplete:function(){B.clickedNode=z;if(y.request){B.requestNodes(z,{onComplete:function(){B.compute();B.plot();B.busy=false}})}else{B.compute();B.plot();B.busy=false}}};if(y.animate){this.clickedNode=w;this.compute("end");this.clickedNode=C;this.fx.animate({modes:["linear","node-property:width:height"],duration:1000,onComplete:function(){B.clickedNode=w;D.nodeList.setDataset(["current","end"],{alpha:[0,1]});A.eachSubgraph(C,function(E){E.setData("alpha",1)},"ignore");B.fx.animate({duration:500,modes:["node-property:alpha"],onComplete:function(){callback.onComplete()}})}})}else{callback.onComplete()}},requestNodes:function(y,z){var x=c.merge(this.controller,z),w=this.config.constrained?this.config.levelsToShow:Number.MAX_VALUE;if(x.request){var B=[],A=y._depth;e.Util.eachLevel(y,0,w,function(C){if(C.drawn&&!e.Util.anySubnode(C)){B.push(C);C._level=C._depth-A;if(this.config.constrained){C._level=w-C._level}}});this.group.requestNodes(B,x)}else{x.onComplete()}}});$jit.Icicle.Op=new q({Implements:e.Op});$jit.Icicle.Group=new q({initialize:function(w){this.viz=w;this.canvas=w.canvas;this.config=w.config},requestNodes:function(B,A){var z=0,x=B.length,D={};var y=function(){A.onComplete()};var w=this.viz;if(x==0){y()}for(var C=0;C<x;C++){D[B[C].id]=B[C];A.request(B[C].id,B[C]._level,{onComplete:function(F,E){if(E&&E.children){E.id=F;w.op.sum(E,{type:"nothing"})}if(++z==x){e.Util.computeLevels(w.graph,w.root,0);y()}}})}}});$jit.Icicle.Plot=new q({Implements:e.Plot,plot:function(A,y){A=A||this.viz.controller;var w=this.viz,B=w.graph,x=B.getNode(w.clickedNode&&w.clickedNode.id||w.root),z=x._depth;w.canvas.clear();this.plotTree(x,c.merge(A,{withLabels:true,hideLabels:false,plotSubtree:function(C,D){return !w.config.constrained||(D._depth-z<w.config.levelsToShow)}}),y)}});$jit.Icicle.Label={};$jit.Icicle.Label.Native=new q({Implements:e.Label.Native,renderLabel:function(x,y,A){var D=x.getCtx(),w=y.getData("width"),C=y.getData("height"),E=y.getLabelData("size"),z=D.measureText(y.name);if(C<(E*1.5)||w<z.width){return}var B=y.pos.getc(true);D.fillText(y.name,B.x+w/2,B.y+C/2)}});$jit.Icicle.Label.SVG=new q({Implements:e.Label.SVG,initialize:function(w){this.viz=w},placeLabel:function(x,A,y){var C=A.pos.getc(true),z=this.viz.canvas;var w=z.getSize();var B={x:Math.round(C.x+w.width/2),y:Math.round(C.y+w.height/2)};x.setAttribute("x",B.x);x.setAttribute("y",B.y);y.onPlaceLabel(x,A)}});$jit.Icicle.Label.HTML=new q({Implements:e.Label.HTML,initialize:function(w){this.viz=w},placeLabel:function(x,B,y){var D=B.pos.getc(true),z=this.viz.canvas;var w=z.getSize();var C={x:Math.round(D.x+w.width/2),y:Math.round(D.y+w.height/2)};var A=x.style;A.left=C.x+"px";A.top=C.y+"px";A.display="";y.onPlaceLabel(x,B)}});$jit.Icicle.Plot.NodeTypes=new q({none:{render:c.empty},rectangle:{render:function(z,x,K){var y=this.viz.config;var C=y.offset;var w=z.getData("width");var H=z.getData("height");var B=z.getData("border");var G=z.pos.getc(true);var F=G.x+C/2,D=G.y+C/2;var J=x.getCtx();if(w-C<2||H-C<2){return}if(y.cushion){var A=z.getData("color");var I=J.createRadialGradient(F+(w-C)/2,D+(H-C)/2,1,F+(w-C)/2,D+(H-C)/2,w<H?H:w);var E=c.rgbToHex(c.map(c.hexToRgb(A),function(L){return L*0.3>>0}));I.addColorStop(0,A);I.addColorStop(1,E);J.fillStyle=I}if(B){J.strokeStyle=B;J.lineWidth=3}J.fillRect(F,D,Math.max(0,w-C),Math.max(0,H-C));B&&J.strokeRect(G.x,G.y,w,H)},contains:function(y,A){if(this.viz.clickedNode&&!$jit.Graph.Util.isDescendantOf(y,this.viz.clickedNode.id)){return false}var z=y.pos.getc(true),x=y.getData("width"),w=y.getData("height");return this.nodeHelper.rectangle.contains({x:z.x+x/2,y:z.y+w/2},A,x,w)}}});$jit.Icicle.Plot.EdgeTypes=new q({none:c.empty});g.ForceDirected=new q({getOptions:function(D){var B=this.canvas.getSize();var y=B.width,A=B.height;var C=0;this.graph.eachNode(function(w){C++});var E=y*A/C,z=Math.sqrt(E);var x=this.config.levelDistance;return{width:y,height:A,tstart:y*0.1,nodef:function(w){return E/(w||1)},edgef:function(w){return z*(w-x)}}},compute:function(x,y){var z=c.splat(x||["current","start","end"]);var w=this.getOptions();f.compute(this.graph,z,this.config);this.graph.computeLevels(this.root,0,"ignore");this.graph.eachNode(function(A){c.each(z,function(B){var C=A.getPos(B);if(C.equals(p.KER)){C.x=w.width/5*(Math.random()-0.5);C.y=w.height/5*(Math.random()-0.5)}A.disp={};c.each(z,function(D){A.disp[D]=r(0,0)})})});this.computePositions(z,w,y)},computePositions:function(A,y,B){var C=this.config.iterations,x=0,z=this;if(B){(function w(){for(var E=B.iter,D=0;D<E;D++){y.t=y.tstart*(1-x++/(C-1));z.computePositionStep(A,y);if(x>=C){B.onComplete();return}}B.onStep(Math.round(x/(C-1)*100));setTimeout(w,1)})()}else{for(;x<C;x++){y.t=y.tstart*(1-x/(C-1));this.computePositionStep(A,y)}}},computePositionStep:function(D,w){var E=this.graph;var y=Math.min,C=Math.max;var B=r(0,0);E.eachNode(function(G){c.each(D,function(H){G.disp[H].x=0;G.disp[H].y=0});E.eachNode(function(H){if(H.id!=G.id){c.each(D,function(L){var J=G.getPos(L),I=H.getPos(L);B.x=J.x-I.x;B.y=J.y-I.y;var K=B.norm()||1;G.disp[L].$add(B.$scale(w.nodef(K)/K))})}})});var x=!!E.getNode(this.root).visited;E.eachNode(function(G){G.eachAdjacency(function(H){var I=H.nodeTo;if(!!I.visited===x){c.each(D,function(M){var K=G.getPos(M),J=I.getPos(M);B.x=K.x-J.x;B.y=K.y-J.y;var L=B.norm()||1;G.disp[M].$add(B.$scale(-w.edgef(L)/L));I.disp[M].$add(B.$scale(-1))})}});G.visited=!x});var F=w.t,z=w.width/2,A=w.height/2;E.eachNode(function(G){c.each(D,function(J){var H=G.disp[J];var I=H.norm()||1;var J=G.getPos(J);J.$add(r(H.x*y(Math.abs(H.x),F)/I,H.y*y(Math.abs(H.y),F)/I));J.x=y(z,C(-z,J.x));J.y=y(A,C(-A,J.y))})})}});$jit.ForceDirected=new q({Implements:[d,o,g.ForceDirected],initialize:function(x){var w=$jit.ForceDirected;var y={iterations:50,levelDistance:50};this.controller=this.config=c.merge(n("Canvas","Node","Edge","Fx","Tips","NodeStyles","Events","Navigation","Controller","Label"),y,x);var z=this.config;if(z.useCanvas){this.canvas=z.useCanvas;this.config.labelContainer=this.canvas.id+"-label"}else{if(z.background){z.background=c.merge({type:"Circles"},z.background)}this.canvas=new l(this,z);this.config.labelContainer=(typeof z.injectInto=="string"?z.injectInto:z.injectInto.id)+"-label"}this.graphOptions={complex:true,Node:{selected:false,exist:true,drawn:true}};this.graph=new e(this.graphOptions,this.config.Node,this.config.Edge);this.labels=new w.Label[z.Label.type](this);this.fx=new w.Plot(this,w);this.op=new w.Op(this);this.json=null;this.busy=false;this.initializeExtras()},refresh:function(){this.compute();this.plot()},reposition:function(){this.compute("end")},computeIncremental:function(w){w=c.merge({iter:20,property:"end",onStep:c.empty,onComplete:c.empty},w||{});this.config.onBeforeCompute(this.graph.getNode(this.root));this.compute(w.property,w)},plot:function(){this.fx.plot()},animate:function(w){this.fx.animate(c.merge({modes:["linear"]},w||{}))}});$jit.ForceDirected.$extend=true;(function(w){w.Op=new q({Implements:e.Op});w.Plot=new q({Implements:e.Plot});w.Label={};w.Label.Native=new q({Implements:e.Label.Native});w.Label.SVG=new q({Implements:e.Label.SVG,initialize:function(x){this.viz=x},placeLabel:function(H,B,C){var F=B.pos.getc(true),y=this.viz.canvas,z=y.translateOffsetX,x=y.translateOffsetY,G=y.scaleOffsetX,E=y.scaleOffsetY,D=y.getSize();var A={x:Math.round(F.x*G+z+D.width/2),y:Math.round(F.y*E+x+D.height/2)};H.setAttribute("x",A.x);H.setAttribute("y",A.y);C.onPlaceLabel(H,B)}});w.Label.HTML=new q({Implements:e.Label.HTML,initialize:function(x){this.viz=x},placeLabel:function(I,C,D){var G=C.pos.getc(true),z=this.viz.canvas,A=z.translateOffsetX,y=z.translateOffsetY,H=z.scaleOffsetX,F=z.scaleOffsetY,E=z.getSize();var B={x:Math.round(G.x*H+A+E.width/2),y:Math.round(G.y*F+y+E.height/2)};var x=I.style;x.left=B.x+"px";x.top=B.y+"px";x.display=this.fitsInCanvas(B,z)?"":"none";D.onPlaceLabel(I,C)}});w.Plot.NodeTypes=new q({none:{render:c.empty,contains:c.lambda(false)},circle:{render:function(y,x){var A=y.pos.getc(true),z=y.getData("dim");this.nodeHelper.circle.render("fill",A,z,x)},contains:function(x,A){var z=x.pos.getc(true),y=x.getData("dim");return this.nodeHelper.circle.contains(z,A,y)}},ellipse:{render:function(A,y){var B=A.pos.getc(true),z=A.getData("width"),x=A.getData("height");this.nodeHelper.ellipse.render("fill",B,z,x,y)},contains:function(z,B){var A=z.pos.getc(true),y=z.getData("width"),x=z.getData("height");return this.nodeHelper.ellipse.contains(A,B,y,x)}},square:{render:function(y,x){var A=y.pos.getc(true),z=y.getData("dim");this.nodeHelper.square.render("fill",A,z,x)},contains:function(x,A){var z=x.pos.getc(true),y=x.getData("dim");return this.nodeHelper.square.contains(z,A,y)}},rectangle:{render:function(A,y){var B=A.pos.getc(true),z=A.getData("width"),x=A.getData("height");this.nodeHelper.rectangle.render("fill",B,z,x,y)},contains:function(z,B){var A=z.pos.getc(true),y=z.getData("width"),x=z.getData("height");return this.nodeHelper.rectangle.contains(A,B,y,x)}},triangle:{render:function(y,x){var A=y.pos.getc(true),z=y.getData("dim");this.nodeHelper.triangle.render("fill",A,z,x)},contains:function(x,A){var z=x.pos.getc(true),y=x.getData("dim");return this.nodeHelper.triangle.contains(z,A,y)}},star:{render:function(y,x){var A=y.pos.getc(true),z=y.getData("dim");this.nodeHelper.star.render("fill",A,z,x)},contains:function(x,A){var z=x.pos.getc(true),y=x.getData("dim");return this.nodeHelper.star.contains(z,A,y)}}});w.Plot.EdgeTypes=new q({none:c.empty,line:{render:function(x,y){var A=x.nodeFrom.pos.getc(true),z=x.nodeTo.pos.getc(true);this.edgeHelper.line.render(A,z,y)},contains:function(x,A){var z=x.nodeFrom.pos.getc(true),y=x.nodeTo.pos.getc(true);return this.edgeHelper.line.contains(z,y,A,this.edge.epsilon)}},arrow:{render:function(y,z){var D=y.nodeFrom.pos.getc(true),C=y.nodeTo.pos.getc(true),B=y.getData("dim"),A=y.data.$direction,x=(A&&A.length>1&&A[0]!=y.nodeFrom.id);this.edgeHelper.arrow.render(D,C,B,x,z)},contains:function(x,A){var z=x.nodeFrom.pos.getc(true),y=x.nodeTo.pos.getc(true);return this.edgeHelper.arrow.contains(z,y,A,this.edge.epsilon)}}})})($jit.ForceDirected);$jit.TM={};var v=$jit.TM;$jit.TM.$extend=true;v.Base={layout:{orientation:"h",vertical:function(){return this.orientation=="v"},horizontal:function(){return this.orientation=="h"},change:function(){this.orientation=this.vertical()?"h":"v"}},initialize:function(w){var x={orientation:"h",titleHeight:13,offset:2,levelsToShow:0,constrained:false,animate:false,Node:{type:"rectangle",overridable:true,width:3,height:3,color:"#444"},Label:{textAlign:"center",textBaseline:"top"},Edge:{type:"none"},duration:700,fps:45};this.controller=this.config=c.merge(n("Canvas","Node","Edge","Fx","Controller","Tips","NodeStyles","Events","Navigation","Label"),x,w);this.layout.orientation=this.config.orientation;var y=this.config;if(y.useCanvas){this.canvas=y.useCanvas;this.config.labelContainer=this.canvas.id+"-label"}else{if(y.background){y.background=c.merge({type:"Circles"},y.background)}this.canvas=new l(this,y);this.config.labelContainer=(typeof y.injectInto=="string"?y.injectInto:y.injectInto.id)+"-label"}this.graphOptions={complex:true,Node:{selected:false,exist:true,drawn:true}};this.graph=new e(this.graphOptions,this.config.Node,this.config.Edge);this.labels=new v.Label[y.Label.type](this);this.fx=new v.Plot(this);this.op=new v.Op(this);this.group=new v.Group(this);this.geom=new v.Geom(this);this.clickedNode=null;this.busy=false;this.initializeExtras()},refresh:function(){if(this.busy){return}this.busy=true;var x=this;if(this.config.animate){this.compute("end");this.config.levelsToShow>0&&this.geom.setRightLevelToShow(this.graph.getNode(this.clickedNode&&this.clickedNode.id||this.root));this.fx.animate(c.merge(this.config,{modes:["linear","node-property:width:height"],onComplete:function(){x.busy=false}}))}else{var w=this.config.Label.type;if(w!="Native"){var x=this;this.graph.eachNode(function(y){x.labels.hideLabel(y,false)})}this.busy=false;this.compute();this.config.levelsToShow>0&&this.geom.setRightLevelToShow(this.graph.getNode(this.clickedNode&&this.clickedNode.id||this.root));this.plot()}},plot:function(){this.fx.plot()},leaf:function(w){return w.getSubnodes([1,1],"ignore").length==0},enter:function(C){if(this.busy){return}this.busy=true;var y=this,x=this.config,A=this.graph,w=C,z=this.clickedNode;var B={onComplete:function(){if(x.levelsToShow>0){y.geom.setRightLevelToShow(C)}if(x.levelsToShow>0||x.request){y.compute()}if(x.animate){A.nodeList.setData("alpha",0,"end");C.eachSubgraph(function(D){D.setData("alpha",1,"end")},"ignore");y.fx.animate({duration:500,modes:["node-property:alpha"],onComplete:function(){y.clickedNode=w;y.compute("end");y.clickedNode=z;y.fx.animate({modes:["linear","node-property:width:height"],duration:1000,onComplete:function(){y.busy=false;y.clickedNode=w}})}})}else{y.busy=false;y.clickedNode=C;y.refresh()}}};if(x.request){this.requestNodes(w,B)}else{B.onComplete()}},out:function(){if(this.busy){return}this.busy=true;this.events.hoveredNode=false;var A=this,y=this.config,C=this.graph,x=C.getNode(this.clickedNode&&this.clickedNode.id||this.root).getParents(),z=x[0],w=z,B=this.clickedNode;if(!z){this.busy=false;return}callback={onComplete:function(){A.clickedNode=z;if(y.request){A.requestNodes(z,{onComplete:function(){A.compute();A.plot();A.busy=false}})}else{A.compute();A.plot();A.busy=false}}};if(y.levelsToShow>0){this.geom.setRightLevelToShow(z)}if(y.animate){this.clickedNode=w;this.compute("end");this.clickedNode=B;this.fx.animate({modes:["linear","node-property:width:height"],duration:1000,onComplete:function(){A.clickedNode=w;C.eachNode(function(D){D.setDataset(["current","end"],{alpha:[0,1]})},"ignore");B.eachSubgraph(function(D){D.setData("alpha",1)},"ignore");A.fx.animate({duration:500,modes:["node-property:alpha"],onComplete:function(){callback.onComplete()}})}})}else{callback.onComplete()}},requestNodes:function(y,z){var x=c.merge(this.controller,z),w=this.config.levelsToShow;if(x.request){var B=[],A=y._depth;y.eachLevel(0,w,function(D){var C=w-(D._depth-A);if(D.drawn&&!D.anySubnode()&&C>0){B.push(D);D._level=C}});this.group.requestNodes(B,x)}else{x.onComplete()}}};v.Op=new q({Implements:e.Op,initialize:function(w){this.viz=w}});v.Geom=new q({Implements:e.Geom,getRightLevelToShow:function(){return this.viz.config.levelsToShow},setRightLevelToShow:function(x){var y=this.getRightLevelToShow(),w=this.viz.labels;x.eachLevel(0,y+1,function(A){var z=A._depth-x._depth;if(z>y){A.drawn=false;A.exist=false;A.ignore=true;w.hideLabel(A,false)}else{A.drawn=true;A.exist=true;delete A.ignore}});x.drawn=true;delete x.ignore}});v.Group=new q({initialize:function(w){this.viz=w;this.canvas=w.canvas;this.config=w.config},requestNodes:function(B,A){var z=0,x=B.length,D={};var y=function(){A.onComplete()};var w=this.viz;if(x==0){y()}for(var C=0;C<x;C++){D[B[C].id]=B[C];A.request(B[C].id,B[C]._level,{onComplete:function(F,E){if(E&&E.children){E.id=F;w.op.sum(E,{type:"nothing"})}if(++z==x){w.graph.computeLevels(w.root,0);y()}}})}}});v.Plot=new q({Implements:e.Plot,initialize:function(w){this.viz=w;this.config=w.config;this.node=this.config.Node;this.edge=this.config.Edge;this.animation=new u;this.nodeTypes=new v.Plot.NodeTypes;this.edgeTypes=new v.Plot.EdgeTypes;this.labels=w.labels},plot:function(y,x){var w=this.viz,z=w.graph;w.canvas.clear();this.plotTree(z.getNode(w.clickedNode&&w.clickedNode.id||w.root),c.merge(w.config,y||{},{withLabels:true,hideLabels:false,plotSubtree:function(B,A){return B.anySubnode("exist")}}),x)}});v.Label={};v.Label.Native=new q({Implements:e.Label.Native,initialize:function(w){this.config=w.config;this.leaf=w.leaf},renderLabel:function(z,A,B){if(!this.leaf(A)&&!this.config.titleHeight){return}var D=A.pos.getc(true),G=z.getCtx(),w=A.getData("width"),F=A.getData("height"),E=D.x+w/2,C=D.y;G.fillText(A.name,E,C,w)}});v.Label.SVG=new q({Implements:e.Label.SVG,initialize:function(w){this.viz=w;this.leaf=w.leaf;this.config=w.config},placeLabel:function(G,A,B){var E=A.pos.getc(true),x=this.viz.canvas,y=x.translateOffsetX,w=x.translateOffsetY,F=x.scaleOffsetX,D=x.scaleOffsetY,C=x.getSize();var z={x:Math.round(E.x*F+y+C.width/2),y:Math.round(E.y*D+w+C.height/2)};G.setAttribute("x",z.x);G.setAttribute("y",z.y);if(!this.leaf(A)&&!this.config.titleHeight){G.style.display="none"}B.onPlaceLabel(G,A)}});v.Label.HTML=new q({Implements:e.Label.HTML,initialize:function(w){this.viz=w;this.leaf=w.leaf;this.config=w.config},placeLabel:function(H,B,C){var F=B.pos.getc(true),y=this.viz.canvas,z=y.translateOffsetX,x=y.translateOffsetY,G=y.scaleOffsetX,E=y.scaleOffsetY,D=y.getSize();var A={x:Math.round(F.x*G+z+D.width/2),y:Math.round(F.y*E+x+D.height/2)};var w=H.style;w.left=A.x+"px";w.top=A.y+"px";w.width=B.getData("width")*G+"px";w.height=B.getData("height")*E+"px";w.zIndex=B._depth*100;w.display="";if(!this.leaf(B)&&!this.config.titleHeight){H.style.display="none"}C.onPlaceLabel(H,B)}});v.Plot.NodeTypes=new q({none:{render:c.empty},rectangle:{render:function(z,x,M){var D=this.viz.leaf(z),y=this.config,I=y.offset,C=y.titleHeight,H=z.pos.getc(true),w=z.getData("width"),J=z.getData("height"),B=z.getData("border"),L=x.getCtx(),G=H.x+I/2,E=H.y+I/2;if(w<=I||J<=I){return}if(D){if(y.cushion){var K=L.createRadialGradient(G+(w-I)/2,E+(J-I)/2,1,G+(w-I)/2,E+(J-I)/2,w<J?J:w);var A=z.getData("color");var F=c.rgbToHex(c.map(c.hexToRgb(A),function(N){return N*0.2>>0}));K.addColorStop(0,A);K.addColorStop(1,F);L.fillStyle=K}L.fillRect(G,E,w-I,J-I);if(B){L.save();L.strokeStyle=B;L.strokeRect(G,E,w-I,J-I);L.restore()}}else{if(C>0){L.fillRect(H.x+I/2,H.y+I/2,w-I,C-I);if(B){L.save();L.strokeStyle=B;L.strokeRect(H.x+I/2,H.y+I/2,w-I,J-I);L.restore()}}}},contains:function(z,B){if(this.viz.clickedNode&&!z.isDescendantOf(this.viz.clickedNode.id)||z.ignore){return false}var A=z.pos.getc(true),y=z.getData("width"),x=this.viz.leaf(z),w=x?z.getData("height"):this.config.titleHeight;return this.nodeHelper.rectangle.contains({x:A.x+y/2,y:A.y+w/2},B,y,w)}}});v.Plot.EdgeTypes=new q({none:c.empty});v.SliceAndDice=new q({Implements:[d,o,v.Base,g.TM.SliceAndDice]});v.Squarified=new q({Implements:[d,o,v.Base,g.TM.Squarified]});v.Strip=new q({Implements:[d,o,v.Base,g.TM.Strip]});$jit.RGraph=new q({Implements:[d,o,g.Radial],initialize:function(w){var x=$jit.RGraph;var y={interpolation:"linear",levelDistance:100};this.controller=this.config=c.merge(n("Canvas","Node","Edge","Fx","Controller","Tips","NodeStyles","Events","Navigation","Label"),y,w);var z=this.config;if(z.useCanvas){this.canvas=z.useCanvas;this.config.labelContainer=this.canvas.id+"-label"}else{if(z.background){z.background=c.merge({type:"Circles"},z.background)}this.canvas=new l(this,z);this.config.labelContainer=(typeof z.injectInto=="string"?z.injectInto:z.injectInto.id)+"-label"}this.graphOptions={complex:false,Node:{selected:false,exist:true,drawn:true}};this.graph=new e(this.graphOptions,this.config.Node,this.config.Edge);this.labels=new x.Label[z.Label.type](this);this.fx=new x.Plot(this,x);this.op=new x.Op(this);this.json=null;this.root=null;this.busy=false;this.parent=false;this.initializeExtras()},createLevelDistanceFunc:function(){var w=this.config.levelDistance;return function(x){return(x._depth+1)*w}},refresh:function(){this.compute();this.plot()},reposition:function(){this.compute("end")},plot:function(){this.fx.plot()},getNodeAndParentAngle:function(D){var y=false;var C=this.graph.getNode(D);var A=C.getParents();var z=(A.length>0)?A[0]:false;if(z){var w=z.pos.getc(),B=C.pos.getc();var x=w.add(B.scale(-1));y=Math.atan2(x.y,x.x);if(y<0){y+=2*Math.PI}}return{parent:z,theta:y}},tagChildren:function(A,C){if(A.angleSpan){var B=[];A.eachAdjacency(function(D){B.push(D.nodeTo)},"ignore");var w=B.length;for(var z=0;z<w&&C!=B[z].id;z++){}for(var y=(z+1)%w,x=0;C!=B[y].id;y=(y+1)%w){B[y].dist=x++}}},onClick:function(A,x){if(this.root!=A&&!this.busy){this.busy=true;this.root=A;that=this;this.controller.onBeforeCompute(this.graph.getNode(A));var y=this.getNodeAndParentAngle(A);this.tagChildren(y.parent,A);this.parent=y.parent;this.compute("end");var w=y.theta-y.parent.endPos.theta;this.graph.eachNode(function(B){B.endPos.set(B.endPos.getp().add(k(w,0)))});var z=this.config.interpolation;x=c.merge({onComplete:c.empty},x||{});this.fx.animate(c.merge({hideLabels:true,modes:[z]},x,{onComplete:function(){that.busy=false;x.onComplete()}}))}}});$jit.RGraph.$extend=true;(function(w){w.Op=new q({Implements:e.Op});w.Plot=new q({Implements:e.Plot});w.Label={};w.Label.Native=new q({Implements:e.Label.Native});w.Label.SVG=new q({Implements:e.Label.SVG,initialize:function(x){this.viz=x},placeLabel:function(H,B,C){var F=B.pos.getc(true),y=this.viz.canvas,z=y.translateOffsetX,x=y.translateOffsetY,G=y.scaleOffsetX,E=y.scaleOffsetY,D=y.getSize();var A={x:Math.round(F.x*G+z+D.width/2),y:Math.round(F.y*E+x+D.height/2)};H.setAttribute("x",A.x);H.setAttribute("y",A.y);C.onPlaceLabel(H,B)}});w.Label.HTML=new q({Implements:e.Label.HTML,initialize:function(x){this.viz=x},placeLabel:function(I,C,D){var G=C.pos.getc(true),z=this.viz.canvas,A=z.translateOffsetX,y=z.translateOffsetY,H=z.scaleOffsetX,F=z.scaleOffsetY,E=z.getSize();var B={x:Math.round(G.x*H+A+E.width/2),y:Math.round(G.y*F+y+E.height/2)};var x=I.style;x.left=B.x+"px";x.top=B.y+"px";x.display=this.fitsInCanvas(B,z)?"":"none";D.onPlaceLabel(I,C)}});w.Plot.NodeTypes=new q({none:{render:c.empty,contains:c.lambda(false)},circle:{render:function(y,x){var A=y.pos.getc(true),z=y.getData("dim");this.nodeHelper.circle.render("fill",A,z,x)},contains:function(x,A){var z=x.pos.getc(true),y=x.getData("dim");return this.nodeHelper.circle.contains(z,A,y)}},ellipse:{render:function(A,y){var B=A.pos.getc(true),z=A.getData("width"),x=A.getData("height");this.nodeHelper.ellipse.render("fill",B,z,x,y)},contains:function(z,B){var A=z.pos.getc(true),y=z.getData("width"),x=z.getData("height");return this.nodeHelper.ellipse.contains(A,B,y,x)}},square:{render:function(y,x){var A=y.pos.getc(true),z=y.getData("dim");this.nodeHelper.square.render("fill",A,z,x)},contains:function(x,A){var z=x.pos.getc(true),y=x.getData("dim");return this.nodeHelper.square.contains(z,A,y)}},rectangle:{render:function(A,y){var B=A.pos.getc(true),z=A.getData("width"),x=A.getData("height");this.nodeHelper.rectangle.render("fill",B,z,x,y)},contains:function(z,B){var A=z.pos.getc(true),y=z.getData("width"),x=z.getData("height");return this.nodeHelper.rectangle.contains(A,B,y,x)}},triangle:{render:function(y,x){var A=y.pos.getc(true),z=y.getData("dim");this.nodeHelper.triangle.render("fill",A,z,x)},contains:function(x,A){var z=x.pos.getc(true),y=x.getData("dim");return this.nodeHelper.triangle.contains(z,A,y)}},star:{render:function(y,x){var A=y.pos.getc(true),z=y.getData("dim");this.nodeHelper.star.render("fill",A,z,x)},contains:function(x,A){var z=x.pos.getc(true),y=x.getData("dim");return this.nodeHelper.star.contains(z,A,y)}}});w.Plot.EdgeTypes=new q({none:c.empty,line:{render:function(x,y){var A=x.nodeFrom.pos.getc(true),z=x.nodeTo.pos.getc(true);this.edgeHelper.line.render(A,z,y)},contains:function(x,A){var z=x.nodeFrom.pos.getc(true),y=x.nodeTo.pos.getc(true);return this.edgeHelper.line.contains(z,y,A,this.edge.epsilon)}},arrow:{render:function(y,z){var D=y.nodeFrom.pos.getc(true),C=y.nodeTo.pos.getc(true),B=y.getData("dim"),A=y.data.$direction,x=(A&&A.length>1&&A[0]!=y.nodeFrom.id);this.edgeHelper.arrow.render(D,C,B,x,z)},contains:function(x,A){var z=x.nodeFrom.pos.getc(true),y=x.nodeTo.pos.getc(true);return this.edgeHelper.arrow.contains(z,y,A,this.edge.epsilon)}}})})($jit.RGraph);p.prototype.moebiusTransformation=function(y){var w=this.add(y);var x=y.$conjugate().$prod(this);x.x++;return w.$div(x)};e.Util.moebiusTransformation=function(y,A,z,x,w){this.eachNode(y,function(C){for(var B=0;B<z.length;B++){var E=A[B].scale(-1),D=x?x:z[B];C.getPos(z[B]).set(C.getPos(D).getc().moebiusTransformation(E))}},w)};$jit.Hypertree=new q({Implements:[d,o,g.Radial],initialize:function(w){var z=$jit.Hypertree;var x={radius:"auto",offset:0,Edge:{type:"hyperline"},duration:1500,fps:35};this.controller=this.config=c.merge(n("Canvas","Node","Edge","Fx","Tips","NodeStyles","Events","Navigation","Controller","Label"),x,w);var y=this.config;if(y.useCanvas){this.canvas=y.useCanvas;this.config.labelContainer=this.canvas.id+"-label"}else{if(y.background){y.background=c.merge({type:"Circles"},y.background)}this.canvas=new l(this,y);this.config.labelContainer=(typeof y.injectInto=="string"?y.injectInto:y.injectInto.id)+"-label"}this.graphOptions={complex:false,Node:{selected:false,exist:true,drawn:true}};this.graph=new e(this.graphOptions,this.config.Node,this.config.Edge);this.labels=new z.Label[y.Label.type](this);this.fx=new z.Plot(this,z);this.op=new z.Op(this);this.json=null;this.root=null;this.busy=false;this.initializeExtras()},createLevelDistanceFunc:function(){var A=this.getRadius();var C=0,w=Math.max,x=this.config;this.graph.eachNode(function(D){C=w(D._depth,C)},"ignore");C++;var B=function(D){return function(F){F.scale=A;var H=F._depth+1;var G=0,E=Math.pow;while(H){G+=E(D,H--)}return G-x.offset}};for(var z=0.51;z<=1;z+=0.01){var y=(1-Math.pow(z,C))/(1-z);if(y>=2){return B(z-0.01)}}return B(0.75)},getRadius:function(){var w=this.config.radius;if(w!=="auto"){return w}var x=this.canvas.getSize();return Math.min(x.width,x.height)/2},refresh:function(w){if(w){this.reposition();this.graph.eachNode(function(x){x.startPos.rho=x.pos.rho=x.endPos.rho;x.startPos.theta=x.pos.theta=x.endPos.theta})}else{this.compute()}this.plot()},reposition:function(){this.compute("end");var w=this.graph.getNode(this.root).pos.getc().scale(-1);e.Util.moebiusTransformation(this.graph,[w],["end"],"end","ignore");this.graph.eachNode(function(x){if(x.ignore){x.endPos.rho=x.pos.rho;x.endPos.theta=x.pos.theta}})},plot:function(){this.fx.plot()},onClick:function(y,w){var x=this.graph.getNode(y).pos.getc(true);this.move(x,w)},move:function(A,y){var x=r(A.x,A.y);if(this.busy===false&&x.norm()<1){this.busy=true;var w=this.graph.getClosestNodeToPos(x),z=this;this.graph.computeLevels(w.id,0);this.controller.onBeforeCompute(w);y=c.merge({onComplete:c.empty},y||{});this.fx.animate(c.merge({modes:["moebius"],hideLabels:true},y,{onComplete:function(){z.busy=false;y.onComplete()}}),x)}}});$jit.Hypertree.$extend=true;(function(w){w.Op=new q({Implements:e.Op});w.Plot=new q({Implements:e.Plot});w.Label={};w.Label.Native=new q({Implements:e.Label.Native,initialize:function(x){this.viz=x},renderLabel:function(z,B,y){var x=z.getCtx();var C=B.pos.getc(true);var A=this.viz.getRadius();x.fillText(B.name,C.x*A,C.y*A)}});w.Label.SVG=new q({Implements:e.Label.SVG,initialize:function(x){this.viz=x},placeLabel:function(I,C,D){var G=C.pos.getc(true),z=this.viz.canvas,A=z.translateOffsetX,y=z.translateOffsetY,H=z.scaleOffsetX,F=z.scaleOffsetY,E=z.getSize(),x=this.viz.getRadius();var B={x:Math.round((G.x*H)*x+A+E.width/2),y:Math.round((G.y*F)*x+y+E.height/2)};I.setAttribute("x",B.x);I.setAttribute("y",B.y);D.onPlaceLabel(I,C)}});w.Label.HTML=new q({Implements:e.Label.HTML,initialize:function(x){this.viz=x},placeLabel:function(J,D,E){var H=D.pos.getc(true),A=this.viz.canvas,B=A.translateOffsetX,z=A.translateOffsetY,I=A.scaleOffsetX,G=A.scaleOffsetY,F=A.getSize(),x=this.viz.getRadius();var C={x:Math.round((H.x*I)*x+B+F.width/2),y:Math.round((H.y*G)*x+z+F.height/2)};var y=J.style;y.left=C.x+"px";y.top=C.y+"px";y.display=this.fitsInCanvas(C,A)?"":"none";E.onPlaceLabel(J,D)}});w.Plot.NodeTypes=new q({none:{render:c.empty,contains:c.lambda(false)},circle:{render:function(z,x){var y=this.node,B=z.getData("dim"),A=z.pos.getc();B=y.transform?B*(1-A.squaredNorm()):B;A.$scale(z.scale);if(B>0.2){this.nodeHelper.circle.render("fill",A,B,x)}},contains:function(x,A){var y=x.getData("dim"),z=x.pos.getc().$scale(x.scale);return this.nodeHelper.circle.contains(z,A,y)}},ellipse:{render:function(A,y){var B=A.pos.getc().$scale(A.scale),z=A.getData("width"),x=A.getData("height");this.nodeHelper.ellipse.render("fill",B,z,x,y)},contains:function(z,B){var y=z.getData("width"),x=z.getData("height"),A=z.pos.getc().$scale(z.scale);return this.nodeHelper.circle.contains(A,B,y,x)}},square:{render:function(z,x){var y=this.node,B=z.getData("dim"),A=z.pos.getc();B=y.transform?B*(1-A.squaredNorm()):B;A.$scale(z.scale);if(B>0.2){this.nodeHelper.square.render("fill",A,B,x)}},contains:function(x,A){var y=x.getData("dim"),z=x.pos.getc().$scale(x.scale);return this.nodeHelper.square.contains(z,A,y)}},rectangle:{render:function(B,y){var A=this.node,z=B.getData("width"),x=B.getData("height"),C=B.pos.getc();z=A.transform?z*(1-C.squaredNorm()):z;x=A.transform?x*(1-C.squaredNorm()):x;C.$scale(B.scale);if(z>0.2&&x>0.2){this.nodeHelper.rectangle.render("fill",C,z,x,y)}},contains:function(z,B){var y=z.getData("width"),x=z.getData("height"),A=z.pos.getc().$scale(z.scale);return this.nodeHelper.square.contains(A,B,y,x)}},triangle:{render:function(z,x){var y=this.node,B=z.getData("dim"),A=z.pos.getc();B=y.transform?B*(1-A.squaredNorm()):B;A.$scale(z.scale);if(B>0.2){this.nodeHelper.triangle.render("fill",A,B,x)}},contains:function(x,A){var y=x.getData("dim"),z=x.pos.getc().$scale(x.scale);return this.nodeHelper.triangle.contains(z,A,y)}},star:{render:function(z,x){var y=this.node,B=z.getData("dim"),A=z.pos.getc();B=y.transform?B*(1-A.squaredNorm()):B;A.$scale(z.scale);if(B>0.2){this.nodeHelper.star.render("fill",A,B,x)}},contains:function(x,A){var y=x.getData("dim"),z=x.pos.getc().$scale(x.scale);return this.nodeHelper.star.contains(z,A,y)}}});w.Plot.EdgeTypes=new q({none:c.empty,line:{render:function(x,y){var B=x.nodeFrom.pos.getc(true),A=x.nodeTo.pos.getc(true),z=x.nodeFrom.scale;this.edgeHelper.line.render({x:B.x*z,y:B.y*z},{x:A.x*z,y:A.y*z},y)},contains:function(x,B){var A=x.nodeFrom.pos.getc(true),z=x.nodeTo.pos.getc(true),y=x.nodeFrom.scale;this.edgeHelper.line.contains({x:A.x*y,y:A.y*y},{x:z.x*y,y:z.y*y},B,this.edge.epsilon)}},arrow:{render:function(y,z){var E=y.nodeFrom.pos.getc(true),D=y.nodeTo.pos.getc(true),A=y.nodeFrom.scale,C=y.getData("dim"),B=y.data.$direction,x=(B&&B.length>1&&B[0]!=y.nodeFrom.id);this.edgeHelper.arrow.render({x:E.x*A,y:E.y*A},{x:D.x*A,y:D.y*A},C,x,z)},contains:function(x,B){var A=x.nodeFrom.pos.getc(true),z=x.nodeTo.pos.getc(true),y=x.nodeFrom.scale;this.edgeHelper.arrow.contains({x:A.x*y,y:A.y*y},{x:z.x*y,y:z.y*y},B,this.edge.epsilon)}},hyperline:{render:function(x,y){var B=x.nodeFrom.pos.getc(),A=x.nodeTo.pos.getc(),z=this.viz.getRadius();this.edgeHelper.hyperline.render(B,A,z,y)},contains:c.lambda(false)}})})($jit.Hypertree)})();

//}}}
/***
|''Name''|raphaeljs|
!Usage
!Code
***/
/*
 * Raphael 1.4.7 - JavaScript Vector Library
 *
 * Copyright (c) 2010 Dmitry Baranovskiy (http://raphaeljs.com)
 * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
 */
Raphael=function(){function l(){if(l.is(arguments[0],U)){for(var a=arguments[0],b=Ca[K](l,a.splice(0,3+l.is(a[0],P))),c=b.set(),d=0,f=a[o];d<f;d++){var e=a[d]||{};sb.test(e.type)&&c[F](b[e.type]().attr(e))}return c}return Ca[K](l,arguments)}l.version="1.4.7";var V=/[, ]+/,sb=/^(circle|rect|path|ellipse|text|image)$/,p="prototype",z="hasOwnProperty",C=document,aa=window,Qa={was:Object[p][z].call(aa,"Raphael"),is:aa.Raphael};function H(){}var x="appendChild",K="apply",M="concat",Da="createTouch"in C,
A="",N=" ",D=String,G="split",Ra="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend orientationchange touchcancel gesturestart gesturechange gestureend"[G](N),Ea={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},R="join",o="length",fa=String[p].toLowerCase,v=Math,Y=v.max,ba=v.min,P="number",ga="string",U="array",O="toString",ca="fill",tb=Object[p][O],E=v.pow,F="push",ja=/^(?=[\da-f]$)/,Sa=/^url\(['"]?([^\)]+?)['"]?\)$/i,ub=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+(?:\s*,\s*[\d\.]+)?)\s*\)|rgba?\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%(?:\s*,\s*[\d\.]+%)?)\s*\)|hsb\(\s*([\d\.]+(?:deg|\xb0)?\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|hsb\(\s*([\d\.]+(?:deg|\xb0|%)\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\)|hsl\(\s*([\d\.]+(?:deg|\xb0)?\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|hsl\(\s*([\d\.]+(?:deg|\xb0|%)\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\))\s*$/i,
Q=v.round,W="setAttribute",y=parseFloat,ha=parseInt,Fa=" progid:DXImageTransform.Microsoft",sa=String[p].toUpperCase,ta={blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/",opacity:1,path:"M0,0",r:0,rotation:0,rx:0,ry:0,scale:"1 1",src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt",
"stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",translation:"0 0",width:0,x:0,y:0},Ga={along:"along",blur:P,"clip-rect":"csv",cx:P,cy:P,fill:"colour","fill-opacity":P,"font-size":P,height:P,opacity:P,path:"path",r:P,rotation:"csv",rx:P,ry:P,scale:"csv",stroke:"colour","stroke-opacity":P,"stroke-width":P,translation:"csv",width:P,x:P,y:P},I="replace";l.type=aa.SVGAngle||C.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure",
"1.1")?"SVG":"VML";if(l.type=="VML"){var da=C.createElement("div");da.innerHTML='<v:shape adj="1"/>';da=da.firstChild;da.style.behavior="url(#default#VML)";if(!(da&&typeof da.adj=="object"))return l.type=null;da=null}l.svg=!(l.vml=l.type=="VML");H[p]=l[p];l._id=0;l._oid=0;l.fn={};l.is=function(a,b){b=fa.call(b);return b=="object"&&a===Object(a)||b=="undefined"&&typeof a==b||b=="null"&&a==null||b=="array"&&Array.isArray&&Array.isArray(a)||fa.call(tb.call(a).slice(8,-1))==b};l.setWindow=function(a){aa=
a;C=aa.document};function ua(a){if(l.vml){var b=/^\s+|\s+$/g;ua=Z(function(d){var f;d=D(d)[I](b,A);try{var e=new aa.ActiveXObject("htmlfile");e.write("<body>");e.close();f=e.body}catch(g){f=aa.createPopup().document.body}e=f.createTextRange();try{f.style.color=d;var h=e.queryCommandValue("ForeColor");h=(h&255)<<16|h&65280|(h&16711680)>>>16;return"#"+("000000"+h[O](16)).slice(-6)}catch(i){return"none"}})}else{var c=C.createElement("i");c.title="Rapha\u00ebl Colour Picker";c.style.display="none";C.body[x](c);
ua=Z(function(d){c.style.color=d;return C.defaultView.getComputedStyle(c,A).getPropertyValue("color")})}return ua(a)}function Ta(){return"hsb("+[this.h,this.s,this.b]+")"}function vb(){return"hsl("+[this.h,this.s,this.l]+")"}function wb(){return this.hex}l.hsb2rgb=function(a,b,c){if(l.is(a,"object")&&"h"in a&&"s"in a&&"b"in a){c=a.b;b=a.s;a=a.h}return l.hsl2rgb(a,b,c/2)};l.hsl2rgb=function(a,b,c){if(l.is(a,"object")&&"h"in a&&"s"in a&&"l"in a){c=a.l;b=a.s;a=a.h}if(a>1||b>1||c>1){a/=255;b/=255;c/=
255}var d={},f=["r","g","b"],e;if(b){b=c<0.5?c*(1+b):c+b-c*b;c=2*c-b;for(var g=0,h=f.length;g<h;g++){e=a+1/3*-(g-1);e<0&&e++;e>1&&e--;d[f[g]]=e*6<1?c+(b-c)*6*e:e*2<1?b:e*3<2?c+(b-c)*(2/3-e)*6:c}}else d={r:c,g:c,b:c};d.r*=255;d.g*=255;d.b*=255;a=(~~d.r)[O](16);f=(~~d.g)[O](16);b=(~~d.b)[O](16);a=a[I](ja,"0");f=f[I](ja,"0");b=b[I](ja,"0");d.hex="#"+a+f+b;d.toString=wb;return d};l.rgb2hsb=function(a,b,c){if(b==null&&l.is(a,"object")&&"r"in a&&"g"in a&&"b"in a){c=a.b;b=a.g;a=a.r}if(b==null&&l.is(a,ga)){var d=
l.getRGB(a);a=d.r;b=d.g;c=d.b}if(a>1||b>1||c>1){a/=255;b/=255;c/=255}var f=Y(a,b,c),e=ba(a,b,c);d=f;if(e==f)return{h:0,s:0,b:f,toString:Ta};else{var g=f-e;e=g/f;a=a==f?(b-c)/g:b==f?2+(c-a)/g:4+(a-b)/g;a/=6;a<0&&a++;a>1&&a--}return{h:a,s:e,b:d,toString:Ta}};l.rgb2hsl=function(a,b,c){if(b==null&&l.is(a,"object")&&"r"in a&&"g"in a&&"b"in a){c=a.b;b=a.g;a=a.r}if(b==null&&l.is(a,ga)){var d=l.getRGB(a);a=d.r;b=d.g;c=d.b}if(a>1||b>1||c>1){a/=255;b/=255;c/=255}var f=Y(a,b,c),e=ba(a,b,c);d=(f+e)/2;if(e==f)a=
{h:0,s:0,l:d};else{var g=f-e;e=d<0.5?g/(f+e):g/(2-f-e);a=a==f?(b-c)/g:b==f?2+(c-a)/g:4+(a-b)/g;a/=6;a<0&&a++;a>1&&a--;a={h:a,s:e,l:d}}a.toString=vb;return a};var xb=/,?([achlmqrstvxz]),?/gi,ka=/\s*,\s*/,yb={hs:1,rg:1};l._path2string=function(){return this.join(",")[I](xb,"$1")};function Z(a,b,c){function d(){var f=Array[p].slice.call(arguments,0),e=f[R]("\u25ba"),g=d.cache=d.cache||{},h=d.count=d.count||[];if(g[z](e))return c?c(g[e]):g[e];h[o]>=1000&&delete g[h.shift()];h[F](e);g[e]=a[K](b,f);return c?
c(g[e]):g[e]}return d}l.getRGB=Z(function(a){if(!a||(a=D(a)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1};if(a=="none")return{r:-1,g:-1,b:-1,hex:"none"};!(yb[z](a.substring(0,2))||a.charAt()=="#")&&(a=ua(a));var b,c,d,f,e;if(a=a.match(ub)){if(a[2]){d=ha(a[2].substring(5),16);c=ha(a[2].substring(3,5),16);b=ha(a[2].substring(1,3),16)}if(a[3]){d=ha((e=a[3].charAt(3))+e,16);c=ha((e=a[3].charAt(2))+e,16);b=ha((e=a[3].charAt(1))+e,16)}if(a[4]){a=a[4][G](ka);b=y(a[0]);c=y(a[1]);d=y(a[2]);f=y(a[3])}if(a[5]){a=
a[5][G](ka);b=y(a[0])*2.55;c=y(a[1])*2.55;d=y(a[2])*2.55;f=y(a[3])}if(a[6]){a=a[6][G](ka);b=y(a[0]);c=y(a[1]);d=y(a[2]);(a[0].slice(-3)=="deg"||a[0].slice(-1)=="\u00b0")&&(b/=360);return l.hsb2rgb(b,c,d)}if(a[7]){a=a[7][G](ka);b=y(a[0])*2.55;c=y(a[1])*2.55;d=y(a[2])*2.55;(a[0].slice(-3)=="deg"||a[0].slice(-1)=="\u00b0")&&(b/=360*2.55);return l.hsb2rgb(b,c,d)}if(a[8]){a=a[8][G](ka);b=y(a[0]);c=y(a[1]);d=y(a[2]);(a[0].slice(-3)=="deg"||a[0].slice(-1)=="\u00b0")&&(b/=360);return l.hsl2rgb(b,c,d)}if(a[9]){a=
a[9][G](ka);b=y(a[0])*2.55;c=y(a[1])*2.55;d=y(a[2])*2.55;(a[0].slice(-3)=="deg"||a[0].slice(-1)=="\u00b0")&&(b/=360*2.55);return l.hsl2rgb(b,c,d)}a={r:b,g:c,b:d};b=(~~b)[O](16);c=(~~c)[O](16);d=(~~d)[O](16);b=b[I](ja,"0");c=c[I](ja,"0");d=d[I](ja,"0");a.hex="#"+b+c+d;isFinite(y(f))&&(a.o=f);return a}return{r:-1,g:-1,b:-1,hex:"none",error:1}},l);l.getColor=function(a){a=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||0.75};var b=this.hsb2rgb(a.h,a.s,a.b);a.h+=0.075;if(a.h>1){a.h=0;a.s-=0.2;
a.s<=0&&(this.getColor.start={h:0,s:1,b:a.b})}return b.hex};l.getColor.reset=function(){delete this.start};var zb=/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,Ab=/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig;l.parsePathString=Z(function(a){if(!a)return null;var b={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},c=[];if(l.is(a,U)&&l.is(a[0],U))c=va(a);c[o]||D(a)[I](zb,function(d,f,e){var g=[];d=fa.call(f);e[I](Ab,function(h,i){i&&g[F](+i)});if(d=="m"&&g[o]>2){c[F]([f][M](g.splice(0,2)));d="l";
f=f=="m"?"l":"L"}for(;g[o]>=b[d];){c[F]([f][M](g.splice(0,b[d])));if(!b[d])break}});c[O]=l._path2string;return c});l.findDotsAtSegment=function(a,b,c,d,f,e,g,h,i){var j=1-i,m=E(j,3)*a+E(j,2)*3*i*c+j*3*i*i*f+E(i,3)*g;j=E(j,3)*b+E(j,2)*3*i*d+j*3*i*i*e+E(i,3)*h;var n=a+2*i*(c-a)+i*i*(f-2*c+a),r=b+2*i*(d-b)+i*i*(e-2*d+b),q=c+2*i*(f-c)+i*i*(g-2*f+c),k=d+2*i*(e-d)+i*i*(h-2*e+d);a=(1-i)*a+i*c;b=(1-i)*b+i*d;f=(1-i)*f+i*g;e=(1-i)*e+i*h;h=90-v.atan((n-q)/(r-k))*180/v.PI;(n>q||r<k)&&(h+=180);return{x:m,y:j,
m:{x:n,y:r},n:{x:q,y:k},start:{x:a,y:b},end:{x:f,y:e},alpha:h}};var xa=Z(function(a){if(!a)return{x:0,y:0,width:0,height:0};a=wa(a);for(var b=0,c=0,d=[],f=[],e,g=0,h=a[o];g<h;g++){e=a[g];if(e[0]=="M"){b=e[1];c=e[2];d[F](b);f[F](c)}else{b=Bb(b,c,e[1],e[2],e[3],e[4],e[5],e[6]);d=d[M](b.min.x,b.max.x);f=f[M](b.min.y,b.max.y);b=e[5];c=e[6]}}a=ba[K](0,d);e=ba[K](0,f);return{x:a,y:e,width:Y[K](0,d)-a,height:Y[K](0,f)-e}});function va(a){var b=[];if(!l.is(a,U)||!l.is(a&&a[0],U))a=l.parsePathString(a);for(var c=
0,d=a[o];c<d;c++){b[c]=[];for(var f=0,e=a[c][o];f<e;f++)b[c][f]=a[c][f]}b[O]=l._path2string;return b}var Ha=Z(function(a){if(!l.is(a,U)||!l.is(a&&a[0],U))a=l.parsePathString(a);var b=[],c=0,d=0,f=0,e=0,g=0;if(a[0][0]=="M"){c=a[0][1];d=a[0][2];f=c;e=d;g++;b[F](["M",c,d])}g=g;for(var h=a[o];g<h;g++){var i=b[g]=[],j=a[g];if(j[0]!=fa.call(j[0])){i[0]=fa.call(j[0]);switch(i[0]){case "a":i[1]=j[1];i[2]=j[2];i[3]=j[3];i[4]=j[4];i[5]=j[5];i[6]=+(j[6]-c).toFixed(3);i[7]=+(j[7]-d).toFixed(3);break;case "v":i[1]=
+(j[1]-d).toFixed(3);break;case "m":f=j[1];e=j[2];default:for(var m=1,n=j[o];m<n;m++)i[m]=+(j[m]-(m%2?c:d)).toFixed(3)}}else{b[g]=[];if(j[0]=="m"){f=j[1]+c;e=j[2]+d}i=0;for(m=j[o];i<m;i++)b[g][i]=j[i]}j=b[g][o];switch(b[g][0]){case "z":c=f;d=e;break;case "h":c+=+b[g][j-1];break;case "v":d+=+b[g][j-1];break;default:c+=+b[g][j-2];d+=+b[g][j-1]}}b[O]=l._path2string;return b},0,va),oa=Z(function(a){if(!l.is(a,U)||!l.is(a&&a[0],U))a=l.parsePathString(a);var b=[],c=0,d=0,f=0,e=0,g=0;if(a[0][0]=="M"){c=
+a[0][1];d=+a[0][2];f=c;e=d;g++;b[0]=["M",c,d]}g=g;for(var h=a[o];g<h;g++){var i=b[g]=[],j=a[g];if(j[0]!=sa.call(j[0])){i[0]=sa.call(j[0]);switch(i[0]){case "A":i[1]=j[1];i[2]=j[2];i[3]=j[3];i[4]=j[4];i[5]=j[5];i[6]=+(j[6]+c);i[7]=+(j[7]+d);break;case "V":i[1]=+j[1]+d;break;case "H":i[1]=+j[1]+c;break;case "M":f=+j[1]+c;e=+j[2]+d;default:for(var m=1,n=j[o];m<n;m++)i[m]=+j[m]+(m%2?c:d)}}else{m=0;for(n=j[o];m<n;m++)b[g][m]=j[m]}switch(i[0]){case "Z":c=f;d=e;break;case "H":c=i[1];break;case "V":d=i[1];
break;case "M":f=b[g][b[g][o]-2];e=b[g][b[g][o]-1];default:c=b[g][b[g][o]-2];d=b[g][b[g][o]-1]}}b[O]=l._path2string;return b},null,va);function ya(a,b,c,d){return[a,b,c,d,c,d]}function Ua(a,b,c,d,f,e){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*f+h*c,g*e+h*d,f,e]}function Va(a,b,c,d,f,e,g,h,i,j){var m=v.PI,n=m*120/180,r=m/180*(+f||0),q=[],k,t=Z(function(J,ia,za){var Cb=J*v.cos(za)-ia*v.sin(za);J=J*v.sin(za)+ia*v.cos(za);return{x:Cb,y:J}});if(j){w=j[0];k=j[1];e=j[2];B=j[3]}else{k=t(a,b,-r);a=k.x;b=k.y;
k=t(h,i,-r);h=k.x;i=k.y;v.cos(m/180*f);v.sin(m/180*f);k=(a-h)/2;w=(b-i)/2;B=k*k/(c*c)+w*w/(d*d);if(B>1){B=v.sqrt(B);c=B*c;d=B*d}B=c*c;var L=d*d;B=(e==g?-1:1)*v.sqrt(v.abs((B*L-B*w*w-L*k*k)/(B*w*w+L*k*k)));e=B*c*w/d+(a+h)/2;var B=B*-d*k/c+(b+i)/2,w=v.asin(((b-B)/d).toFixed(7));k=v.asin(((i-B)/d).toFixed(7));w=a<e?m-w:w;k=h<e?m-k:k;w<0&&(w=m*2+w);k<0&&(k=m*2+k);if(g&&w>k)w-=m*2;if(!g&&k>w)k-=m*2}m=k-w;if(v.abs(m)>n){q=k;m=h;L=i;k=w+n*(g&&k>w?1:-1);h=e+c*v.cos(k);i=B+d*v.sin(k);q=Va(h,i,c,d,f,0,g,m,
L,[k,q,e,B])}m=k-w;f=v.cos(w);e=v.sin(w);g=v.cos(k);k=v.sin(k);m=v.tan(m/4);c=4/3*c*m;m=4/3*d*m;d=[a,b];a=[a+c*e,b-m*f];b=[h+c*k,i-m*g];h=[h,i];a[0]=2*d[0]-a[0];a[1]=2*d[1]-a[1];if(j)return[a,b,h][M](q);else{q=[a,b,h][M](q)[R]()[G](",");j=[];h=0;for(i=q[o];h<i;h++)j[h]=h%2?t(q[h-1],q[h],r).y:t(q[h],q[h+1],r).x;return j}}function la(a,b,c,d,f,e,g,h,i){var j=1-i;return{x:E(j,3)*a+E(j,2)*3*i*c+j*3*i*i*f+E(i,3)*g,y:E(j,3)*b+E(j,2)*3*i*d+j*3*i*i*e+E(i,3)*h}}var Bb=Z(function(a,b,c,d,f,e,g,h){var i=f-2*
c+a-(g-2*f+c),j=2*(c-a)-2*(f-c),m=a-c,n=(-j+v.sqrt(j*j-4*i*m))/2/i;i=(-j-v.sqrt(j*j-4*i*m))/2/i;var r=[b,h],q=[a,g];v.abs(n)>1000000000000&&(n=0.5);v.abs(i)>1000000000000&&(i=0.5);if(n>0&&n<1){n=la(a,b,c,d,f,e,g,h,n);q[F](n.x);r[F](n.y)}if(i>0&&i<1){n=la(a,b,c,d,f,e,g,h,i);q[F](n.x);r[F](n.y)}i=e-2*d+b-(h-2*e+d);j=2*(d-b)-2*(e-d);m=b-d;n=(-j+v.sqrt(j*j-4*i*m))/2/i;i=(-j-v.sqrt(j*j-4*i*m))/2/i;v.abs(n)>1000000000000&&(n=0.5);v.abs(i)>1000000000000&&(i=0.5);if(n>0&&n<1){n=la(a,b,c,d,f,e,g,h,n);q[F](n.x);
r[F](n.y)}if(i>0&&i<1){n=la(a,b,c,d,f,e,g,h,i);q[F](n.x);r[F](n.y)}return{min:{x:ba[K](0,q),y:ba[K](0,r)},max:{x:Y[K](0,q),y:Y[K](0,r)}}}),wa=Z(function(a,b){var c=oa(a),d=b&&oa(b);a={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null};b={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null};function f(q,k){var t;if(!q)return["C",k.x,k.y,k.x,k.y,k.x,k.y];!(q[0]in{T:1,Q:1})&&(k.qx=k.qy=null);switch(q[0]){case "M":k.X=q[1];k.Y=q[2];break;case "A":q=["C"][M](Va[K](0,[k.x,k.y][M](q.slice(1))));break;case "S":t=k.x+(k.x-
(k.bx||k.x));k=k.y+(k.y-(k.by||k.y));q=["C",t,k][M](q.slice(1));break;case "T":k.qx=k.x+(k.x-(k.qx||k.x));k.qy=k.y+(k.y-(k.qy||k.y));q=["C"][M](Ua(k.x,k.y,k.qx,k.qy,q[1],q[2]));break;case "Q":k.qx=q[1];k.qy=q[2];q=["C"][M](Ua(k.x,k.y,q[1],q[2],q[3],q[4]));break;case "L":q=["C"][M](ya(k.x,k.y,q[1],q[2]));break;case "H":q=["C"][M](ya(k.x,k.y,q[1],k.y));break;case "V":q=["C"][M](ya(k.x,k.y,k.x,q[1]));break;case "Z":q=["C"][M](ya(k.x,k.y,k.X,k.Y));break}return q}function e(q,k){if(q[k][o]>7){q[k].shift();
for(var t=q[k];t[o];)q.splice(k++,0,["C"][M](t.splice(0,6)));q.splice(k,1);i=Y(c[o],d&&d[o]||0)}}function g(q,k,t,L,B){if(q&&k&&q[B][0]=="M"&&k[B][0]!="M"){k.splice(B,0,["M",L.x,L.y]);t.bx=0;t.by=0;t.x=q[B][1];t.y=q[B][2];i=Y(c[o],d&&d[o]||0)}}for(var h=0,i=Y(c[o],d&&d[o]||0);h<i;h++){c[h]=f(c[h],a);e(c,h);d&&(d[h]=f(d[h],b));d&&e(d,h);g(c,d,a,b,h);g(d,c,b,a,h);var j=c[h],m=d&&d[h],n=j[o],r=d&&m[o];a.x=j[n-2];a.y=j[n-1];a.bx=y(j[n-4])||a.x;a.by=y(j[n-3])||a.y;b.bx=d&&(y(m[r-4])||b.x);b.by=d&&(y(m[r-
3])||b.y);b.x=d&&m[r-2];b.y=d&&m[r-1]}return d?[c,d]:c},null,va),Wa=Z(function(a){for(var b=[],c=0,d=a[o];c<d;c++){var f={},e=a[c].match(/^([^:]*):?([\d\.]*)/);f.color=l.getRGB(e[1]);if(f.color.error)return null;f.color=f.color.hex;e[2]&&(f.offset=e[2]+"%");b[F](f)}c=1;for(d=b[o]-1;c<d;c++)if(!b[c].offset){a=y(b[c-1].offset||0);e=0;for(f=c+1;f<d;f++)if(b[f].offset){e=b[f].offset;break}if(!e){e=100;f=d}e=y(e);for(e=(e-a)/(f-c+1);c<f;c++){a+=e;b[c].offset=a+"%"}}return b});function Xa(a,b,c,d){if(l.is(a,
ga)||l.is(a,"object")){a=l.is(a,ga)?C.getElementById(a):a;if(a.tagName)return b==null?{container:a,width:a.style.pixelWidth||a.offsetWidth,height:a.style.pixelHeight||a.offsetHeight}:{container:a,width:b,height:c}}else return{container:1,x:a,y:b,width:c,height:d}}function Ia(a,b){var c=this;for(var d in b)if(b[z](d)&&!(d in a))switch(typeof b[d]){case "function":(function(f){a[d]=a===c?f:function(){return f[K](c,arguments)}})(b[d]);break;case "object":a[d]=a[d]||{};Ia.call(this,a[d],b[d]);break;default:a[d]=
b[d];break}}function ma(a,b){a==b.top&&(b.top=a.prev);a==b.bottom&&(b.bottom=a.next);a.next&&(a.next.prev=a.prev);a.prev&&(a.prev.next=a.next)}function Ya(a,b){if(b.top!==a){ma(a,b);a.next=null;a.prev=b.top;b.top.next=a;b.top=a}}function Za(a,b){if(b.bottom!==a){ma(a,b);a.next=b.bottom;a.prev=null;b.bottom.prev=a;b.bottom=a}}function $a(a,b,c){ma(a,c);b==c.top&&(c.top=a);b.next&&(b.next.prev=a);a.next=b.next;a.prev=b;b.next=a}function ab(a,b,c){ma(a,c);b==c.bottom&&(c.bottom=a);b.prev&&(b.prev.next=
a);a.prev=b.prev;b.prev=a;a.next=b}function bb(a){return function(){throw new Error("Rapha\u00ebl: you are calling to method \u201c"+a+"\u201d of removed object");}}var cb=/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/;l.pathToRelative=Ha;if(l.svg){H[p].svgns="http://www.w3.org/2000/svg";H[p].xlink="http://www.w3.org/1999/xlink";Q=function(a){return+a+(~~a===a)*0.5};var u=function(a,b){if(b)for(var c in b)b[z](c)&&a[W](c,D(b[c]));else{a=C.createElementNS(H[p].svgns,a);a.style.webkitTapHighlightColor="rgba(0,0,0,0)";
return a}};l[O]=function(){return"Your browser supports SVG.\nYou are running Rapha\u00ebl "+this.version};var db=function(a,b){var c=u("path");b.canvas&&b.canvas[x](c);b=new s(c,b);b.type="path";ea(b,{fill:"none",stroke:"#000",path:a});return b},pa=function(a,b,c){var d="linear",f=0.5,e=0.5,g=a.style;b=D(b)[I](cb,function(m,n,r){d="radial";if(n&&r){f=y(n);e=y(r);m=(e>0.5)*2-1;E(f-0.5,2)+E(e-0.5,2)>0.25&&(e=v.sqrt(0.25-E(f-0.5,2))*m+0.5)&&e!=0.5&&(e=e.toFixed(5)-1.0E-5*m)}return A});b=b[G](/\s*\-\s*/);
if(d=="linear"){var h=b.shift();h=-y(h);if(isNaN(h))return null;h=[0,0,v.cos(h*v.PI/180),v.sin(h*v.PI/180)];var i=1/(Y(v.abs(h[2]),v.abs(h[3]))||1);h[2]*=i;h[3]*=i;if(h[2]<0){h[0]=-h[2];h[2]=0}if(h[3]<0){h[1]=-h[3];h[3]=0}}b=Wa(b);if(!b)return null;i=a.getAttribute(ca);(i=i.match(/^url\(#(.*)\)$/))&&c.defs.removeChild(C.getElementById(i[1]));i=u(d+"Gradient");i.id="r"+(l._id++)[O](36);u(i,d=="radial"?{fx:f,fy:e}:{x1:h[0],y1:h[1],x2:h[2],y2:h[3]});c.defs[x](i);c=0;for(h=b[o];c<h;c++){var j=u("stop");
u(j,{offset:b[c].offset?b[c].offset:!c?"0%":"100%","stop-color":b[c].color||"#fff"});i[x](j)}u(a,{fill:"url(#"+i.id+")",opacity:1,"fill-opacity":1});g.fill=A;g.opacity=1;return g.fillOpacity=1},Ja=function(a){var b=a.getBBox();u(a.pattern,{patternTransform:l.format("translate({0},{1})",b.x,b.y)})},ea=function(a,b){var c={"":[0],none:[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},d=a.node,f=a.attrs,e=
a.rotate();function g(k,t){if(t=c[fa.call(t)]){var L=k.attrs["stroke-width"]||"1";k={round:L,square:L,butt:0}[k.attrs["stroke-linecap"]||b["stroke-linecap"]]||0;for(var B=[],w=t[o];w--;)B[w]=t[w]*L+(w%2?1:-1)*k;u(d,{"stroke-dasharray":B[R](",")})}}b[z]("rotation")&&(e=b.rotation);var h=D(e)[G](V);if(h.length-1){h[1]=+h[1];h[2]=+h[2]}else h=null;y(e)&&a.rotate(0,true);for(var i in b)if(b[z](i))if(ta[z](i)){var j=b[i];f[i]=j;switch(i){case "blur":a.blur(j);break;case "rotation":a.rotate(j,true);break;
case "href":case "title":case "target":var m=d.parentNode;if(fa.call(m.tagName)!="a"){var n=u("a");m.insertBefore(n,d);n[x](d);m=n}m.setAttributeNS(a.paper.xlink,i,j);break;case "cursor":d.style.cursor=j;break;case "clip-rect":m=D(j)[G](V);if(m[o]==4){a.clip&&a.clip.parentNode.parentNode.removeChild(a.clip.parentNode);var r=u("clipPath");n=u("rect");r.id="r"+(l._id++)[O](36);u(n,{x:m[0],y:m[1],width:m[2],height:m[3]});r[x](n);a.paper.defs[x](r);u(d,{"clip-path":"url(#"+r.id+")"});a.clip=n}if(!j){(j=
C.getElementById(d.getAttribute("clip-path")[I](/(^url\(#|\)$)/g,A)))&&j.parentNode.removeChild(j);u(d,{"clip-path":A});delete a.clip}break;case "path":if(a.type=="path")u(d,{d:j?(f.path=oa(j)):"M0,0"});break;case "width":d[W](i,j);if(f.fx){i="x";j=f.x}else break;case "x":if(f.fx)j=-f.x-(f.width||0);case "rx":if(i=="rx"&&a.type=="rect")break;case "cx":h&&(i=="x"||i=="cx")&&(h[1]+=j-f[i]);d[W](i,j);a.pattern&&Ja(a);break;case "height":d[W](i,j);if(f.fy){i="y";j=f.y}else break;case "y":if(f.fy)j=-f.y-
(f.height||0);case "ry":if(i=="ry"&&a.type=="rect")break;case "cy":h&&(i=="y"||i=="cy")&&(h[2]+=j-f[i]);d[W](i,j);a.pattern&&Ja(a);break;case "r":a.type=="rect"?u(d,{rx:j,ry:j}):d[W](i,j);break;case "src":a.type=="image"&&d.setAttributeNS(a.paper.xlink,"href",j);break;case "stroke-width":d.style.strokeWidth=j;d[W](i,j);f["stroke-dasharray"]&&g(a,f["stroke-dasharray"]);break;case "stroke-dasharray":g(a,j);break;case "translation":j=D(j)[G](V);j[0]=+j[0]||0;j[1]=+j[1]||0;if(h){h[1]+=j[0];h[2]+=j[1]}Aa.call(a,
j[0],j[1]);break;case "scale":j=D(j)[G](V);a.scale(+j[0]||1,+j[1]||+j[0]||1,isNaN(y(j[2]))?null:+j[2],isNaN(y(j[3]))?null:+j[3]);break;case ca:if(m=D(j).match(Sa)){r=u("pattern");var q=u("image");r.id="r"+(l._id++)[O](36);u(r,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1});u(q,{x:0,y:0});q.setAttributeNS(a.paper.xlink,"href",m[1]);r[x](q);j=C.createElement("img");j.style.cssText="position:absolute;left:-9999em;top-9999em";j.onload=function(){u(r,{width:this.offsetWidth,height:this.offsetHeight});
u(q,{width:this.offsetWidth,height:this.offsetHeight});C.body.removeChild(this);a.paper.safari()};C.body[x](j);j.src=m[1];a.paper.defs[x](r);d.style.fill="url(#"+r.id+")";u(d,{fill:"url(#"+r.id+")"});a.pattern=r;a.pattern&&Ja(a);break}m=l.getRGB(j);if(m.error){if(({circle:1,ellipse:1}[z](a.type)||D(j).charAt()!="r")&&pa(d,j,a.paper)){f.gradient=j;f.fill="none";break}}else{delete b.gradient;delete f.gradient;!l.is(f.opacity,"undefined")&&l.is(b.opacity,"undefined")&&u(d,{opacity:f.opacity});!l.is(f["fill-opacity"],
"undefined")&&l.is(b["fill-opacity"],"undefined")&&u(d,{"fill-opacity":f["fill-opacity"]})}m[z]("o")&&u(d,{"fill-opacity":m.o>1?m.o/100:m.o});case "stroke":m=l.getRGB(j);d[W](i,m.hex);i=="stroke"&&m[z]("o")&&u(d,{"stroke-opacity":m.o>1?m.o/100:m.o});break;case "gradient":(({circle:1,ellipse:1})[z](a.type)||D(j).charAt()!="r")&&pa(d,j,a.paper);break;case "opacity":case "fill-opacity":if(f.gradient){if(m=C.getElementById(d.getAttribute(ca)[I](/^url\(#|\)$/g,A))){m=m.getElementsByTagName("stop");m[m[o]-
1][W]("stop-opacity",j)}break}default:i=="font-size"&&(j=ha(j,10)+"px");m=i[I](/(\-.)/g,function(k){return sa.call(k.substring(1))});d.style[m]=j;d[W](i,j);break}}Db(a,b);if(h)a.rotate(h.join(N));else y(e)&&a.rotate(e,true)},eb=1.2,Db=function(a,b){if(!(a.type!="text"||!(b[z]("text")||b[z]("font")||b[z]("font-size")||b[z]("x")||b[z]("y")))){var c=a.attrs,d=a.node,f=d.firstChild?ha(C.defaultView.getComputedStyle(d.firstChild,A).getPropertyValue("font-size"),10):10;if(b[z]("text")){for(c.text=b.text;d.firstChild;)d.removeChild(d.firstChild);
b=D(b.text)[G]("\n");for(var e=0,g=b[o];e<g;e++)if(b[e]){var h=u("tspan");e&&u(h,{dy:f*eb,x:c.x});h[x](C.createTextNode(b[e]));d[x](h)}}else{b=d.getElementsByTagName("tspan");e=0;for(g=b[o];e<g;e++)e&&u(b[e],{dy:f*eb,x:c.x})}u(d,{y:c.y});a=a.getBBox();(a=c.y-(a.y+a.height/2))&&isFinite(a)&&u(d,{y:c.y+a})}},s=function(a,b){this[0]=a;this.id=l._oid++;this.node=a;a.raphael=this;this.paper=b;this.attrs=this.attrs||{};this.transformations=[];this._={tx:0,ty:0,rt:{deg:0,cx:0,cy:0},sx:1,sy:1};!b.bottom&&
(b.bottom=this);(this.prev=b.top)&&(b.top.next=this);b.top=this;this.next=null};s[p].rotate=function(a,b,c){if(this.removed)return this;if(a==null){if(this._.rt.cx)return[this._.rt.deg,this._.rt.cx,this._.rt.cy][R](N);return this._.rt.deg}var d=this.getBBox();a=D(a)[G](V);if(a[o]-1){b=y(a[1]);c=y(a[2])}a=y(a[0]);if(b!=null)this._.rt.deg=a;else this._.rt.deg+=a;c==null&&(b=null);this._.rt.cx=b;this._.rt.cy=c;b=b==null?d.x+d.width/2:b;c=c==null?d.y+d.height/2:c;if(this._.rt.deg){this.transformations[0]=
l.format("rotate({0} {1} {2})",this._.rt.deg,b,c);this.clip&&u(this.clip,{transform:l.format("rotate({0} {1} {2})",-this._.rt.deg,b,c)})}else{this.transformations[0]=A;this.clip&&u(this.clip,{transform:A})}u(this.node,{transform:this.transformations[R](N)});return this};s[p].hide=function(){!this.removed&&(this.node.style.display="none");return this};s[p].show=function(){!this.removed&&(this.node.style.display="");return this};s[p].remove=function(){if(!this.removed){ma(this,this.paper);this.node.parentNode.removeChild(this.node);
for(var a in this)delete this[a];this.removed=true}};s[p].getBBox=function(){if(this.removed)return this;if(this.type=="path")return xa(this.attrs.path);if(this.node.style.display=="none"){this.show();var a=true}var b={};try{b=this.node.getBBox()}catch(c){}finally{b=b||{}}if(this.type=="text"){b={x:b.x,y:Infinity,width:0,height:0};for(var d=0,f=this.node.getNumberOfChars();d<f;d++){var e=this.node.getExtentOfChar(d);e.y<b.y&&(b.y=e.y);e.y+e.height-b.y>b.height&&(b.height=e.y+e.height-b.y);e.x+e.width-
b.x>b.width&&(b.width=e.x+e.width-b.x)}}a&&this.hide();return b};s[p].attr=function(a,b){if(this.removed)return this;if(a==null){a={};for(var c in this.attrs)if(this.attrs[z](c))a[c]=this.attrs[c];this._.rt.deg&&(a.rotation=this.rotate());(this._.sx!=1||this._.sy!=1)&&(a.scale=this.scale());a.gradient&&a.fill=="none"&&(a.fill=a.gradient)&&delete a.gradient;return a}if(b==null&&l.is(a,ga)){if(a=="translation")return Aa.call(this);if(a=="rotation")return this.rotate();if(a=="scale")return this.scale();
if(a==ca&&this.attrs.fill=="none"&&this.attrs.gradient)return this.attrs.gradient;return this.attrs[a]}if(b==null&&l.is(a,U)){b={};c=0;for(var d=a.length;c<d;c++)b[a[c]]=this.attr(a[c]);return b}if(b!=null){c={};c[a]=b;ea(this,c)}else a!=null&&l.is(a,"object")&&ea(this,a);return this};s[p].toFront=function(){if(this.removed)return this;this.node.parentNode[x](this.node);var a=this.paper;a.top!=this&&Ya(this,a);return this};s[p].toBack=function(){if(this.removed)return this;if(this.node.parentNode.firstChild!=
this.node){this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild);Za(this,this.paper)}return this};s[p].insertAfter=function(a){if(this.removed)return this;var b=a.node||a[a.length].node;b.nextSibling?b.parentNode.insertBefore(this.node,b.nextSibling):b.parentNode[x](this.node);$a(this,a,this.paper);return this};s[p].insertBefore=function(a){if(this.removed)return this;var b=a.node||a[0].node;b.parentNode.insertBefore(this.node,b);ab(this,a,this.paper);return this};s[p].blur=
function(a){var b=this;if(+a!==0){var c=u("filter"),d=u("feGaussianBlur");b.attrs.blur=a;c.id="r"+(l._id++)[O](36);u(d,{stdDeviation:+a||1.5});c.appendChild(d);b.paper.defs.appendChild(c);b._blur=c;u(b.node,{filter:"url(#"+c.id+")"})}else{if(b._blur){b._blur.parentNode.removeChild(b._blur);delete b._blur;delete b.attrs.blur}b.node.removeAttribute("filter")}};var fb=function(a,b,c,d){var f=u("circle");a.canvas&&a.canvas[x](f);a=new s(f,a);a.attrs={cx:b,cy:c,r:d,fill:"none",stroke:"#000"};a.type="circle";
u(f,a.attrs);return a},gb=function(a,b,c,d,f,e){var g=u("rect");a.canvas&&a.canvas[x](g);a=new s(g,a);a.attrs={x:b,y:c,width:d,height:f,r:e||0,rx:e||0,ry:e||0,fill:"none",stroke:"#000"};a.type="rect";u(g,a.attrs);return a},hb=function(a,b,c,d,f){var e=u("ellipse");a.canvas&&a.canvas[x](e);a=new s(e,a);a.attrs={cx:b,cy:c,rx:d,ry:f,fill:"none",stroke:"#000"};a.type="ellipse";u(e,a.attrs);return a},ib=function(a,b,c,d,f,e){var g=u("image");u(g,{x:c,y:d,width:f,height:e,preserveAspectRatio:"none"});g.setAttributeNS(a.xlink,
"href",b);a.canvas&&a.canvas[x](g);a=new s(g,a);a.attrs={x:c,y:d,width:f,height:e,src:b};a.type="image";return a},jb=function(a,b,c,d){var f=u("text");u(f,{x:b,y:c,"text-anchor":"middle"});a.canvas&&a.canvas[x](f);a=new s(f,a);a.attrs={x:b,y:c,"text-anchor":"middle",text:d,font:ta.font,stroke:"none",fill:"#000"};a.type="text";ea(a,a.attrs);return a},kb=function(a,b){this.width=a||this.width;this.height=b||this.height;this.canvas[W]("width",this.width);this.canvas[W]("height",this.height);return this},
Ca=function(){var a=Xa[K](0,arguments),b=a&&a.container,c=a.x,d=a.y,f=a.width;a=a.height;if(!b)throw new Error("SVG container not found.");var e=u("svg");c=c||0;d=d||0;f=f||512;a=a||342;u(e,{xmlns:"http://www.w3.org/2000/svg",version:1.1,width:f,height:a});if(b==1){e.style.cssText="position:absolute;left:"+c+"px;top:"+d+"px";C.body[x](e)}else b.firstChild?b.insertBefore(e,b.firstChild):b[x](e);b=new H;b.width=f;b.height=a;b.canvas=e;Ia.call(b,b,l.fn);b.clear();return b};H[p].clear=function(){for(var a=
this.canvas;a.firstChild;)a.removeChild(a.firstChild);this.bottom=this.top=null;(this.desc=u("desc"))[x](C.createTextNode("Created with Rapha\u00ebl"));a[x](this.desc);a[x](this.defs=u("defs"))};H[p].remove=function(){this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]=bb(a)}}if(l.vml){var lb={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},Eb=/([clmz]),?([^clmz]*)/gi,Fb=/-?[^,\s-]+/g,qa=1000+N+1000,na=10,ra={path:1,rect:1},Gb=function(a){var b=/[ahqstv]/ig,
c=oa;D(a).match(b)&&(c=wa);b=/[clmz]/g;if(c==oa&&!D(a).match(b))return a=D(a)[I](Eb,function(i,j,m){var n=[],r=fa.call(j)=="m",q=lb[j];m[I](Fb,function(k){if(r&&n[o]==2){q+=n+lb[j=="m"?"l":"L"];n=[]}n[F](Q(k*na))});return q+n});b=c(a);var d;a=[];for(var f=0,e=b[o];f<e;f++){c=b[f];d=fa.call(b[f][0]);d=="z"&&(d="x");for(var g=1,h=c[o];g<h;g++)d+=Q(c[g]*na)+(g!=h-1?",":A);a[F](d)}return a[R](N)};l[O]=function(){return"Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\u00ebl "+
this.version};db=function(a,b){var c=S("group");c.style.cssText="position:absolute;left:0;top:0;width:"+b.width+"px;height:"+b.height+"px";c.coordsize=b.coordsize;c.coordorigin=b.coordorigin;var d=S("shape"),f=d.style;f.width=b.width+"px";f.height=b.height+"px";d.coordsize=qa;d.coordorigin=b.coordorigin;c[x](d);d=new s(d,c,b);f={fill:"none",stroke:"#000"};a&&(f.path=a);d.isAbsolute=true;d.type="path";d.path=[];d.Path=A;ea(d,f);b.canvas[x](c);return d};ea=function(a,b){a.attrs=a.attrs||{};var c=a.node,
d=a.attrs,f=c.style,e;e=(b.x!=d.x||b.y!=d.y||b.width!=d.width||b.height!=d.height||b.r!=d.r)&&a.type=="rect";var g=a;for(var h in b)if(b[z](h))d[h]=b[h];if(e){d.path=mb(d.x,d.y,d.width,d.height,d.r);a.X=d.x;a.Y=d.y;a.W=d.width;a.H=d.height}b.href&&(c.href=b.href);b.title&&(c.title=b.title);b.target&&(c.target=b.target);b.cursor&&(f.cursor=b.cursor);"blur"in b&&a.blur(b.blur);if(b.path&&a.type=="path"||e)c.path=Gb(d.path);b.rotation!=null&&a.rotate(b.rotation,true);if(b.translation){e=D(b.translation)[G](V);
Aa.call(a,e[0],e[1]);if(a._.rt.cx!=null){a._.rt.cx+=+e[0];a._.rt.cy+=+e[1];a.setBox(a.attrs,e[0],e[1])}}if(b.scale){e=D(b.scale)[G](V);a.scale(+e[0]||1,+e[1]||+e[0]||1,+e[2]||null,+e[3]||null)}if("clip-rect"in b){e=D(b["clip-rect"])[G](V);if(e[o]==4){e[2]=+e[2]+ +e[0];e[3]=+e[3]+ +e[1];h=c.clipRect||C.createElement("div");var i=h.style,j=c.parentNode;i.clip=l.format("rect({1}px {2}px {3}px {0}px)",e);if(!c.clipRect){i.position="absolute";i.top=0;i.left=0;i.width=a.paper.width+"px";i.height=a.paper.height+
"px";j.parentNode.insertBefore(h,j);h[x](j);c.clipRect=h}}if(!b["clip-rect"])c.clipRect&&(c.clipRect.style.clip=A)}if(a.type=="image"&&b.src)c.src=b.src;if(a.type=="image"&&b.opacity){c.filterOpacity=Fa+".Alpha(opacity="+b.opacity*100+")";f.filter=(c.filterMatrix||A)+(c.filterOpacity||A)}b.font&&(f.font=b.font);b["font-family"]&&(f.fontFamily='"'+b["font-family"][G](",")[0][I](/^['"]+|['"]+$/g,A)+'"');b["font-size"]&&(f.fontSize=b["font-size"]);b["font-weight"]&&(f.fontWeight=b["font-weight"]);b["font-style"]&&
(f.fontStyle=b["font-style"]);if(b.opacity!=null||b["stroke-width"]!=null||b.fill!=null||b.stroke!=null||b["stroke-width"]!=null||b["stroke-opacity"]!=null||b["fill-opacity"]!=null||b["stroke-dasharray"]!=null||b["stroke-miterlimit"]!=null||b["stroke-linejoin"]!=null||b["stroke-linecap"]!=null){c=a.shape||c;f=c.getElementsByTagName(ca)&&c.getElementsByTagName(ca)[0];e=false;!f&&(e=f=S(ca));if("fill-opacity"in b||"opacity"in b){a=((+d["fill-opacity"]+1||2)-1)*((+d.opacity+1||2)-1)*((+l.getRGB(b.fill).o+
1||2)-1);a<0&&(a=0);a>1&&(a=1);f.opacity=a}b.fill&&(f.on=true);if(f.on==null||b.fill=="none")f.on=false;if(f.on&&b.fill)if(a=b.fill.match(Sa)){f.src=a[1];f.type="tile"}else{f.color=l.getRGB(b.fill).hex;f.src=A;f.type="solid";if(l.getRGB(b.fill).error&&(g.type in{circle:1,ellipse:1}||D(b.fill).charAt()!="r")&&pa(g,b.fill)){d.fill="none";d.gradient=b.fill}}e&&c[x](f);f=c.getElementsByTagName("stroke")&&c.getElementsByTagName("stroke")[0];e=false;!f&&(e=f=S("stroke"));if(b.stroke&&b.stroke!="none"||
b["stroke-width"]||b["stroke-opacity"]!=null||b["stroke-dasharray"]||b["stroke-miterlimit"]||b["stroke-linejoin"]||b["stroke-linecap"])f.on=true;(b.stroke=="none"||f.on==null||b.stroke==0||b["stroke-width"]==0)&&(f.on=false);a=l.getRGB(b.stroke);f.on&&b.stroke&&(f.color=a.hex);a=((+d["stroke-opacity"]+1||2)-1)*((+d.opacity+1||2)-1)*((+a.o+1||2)-1);h=(y(b["stroke-width"])||1)*0.75;a<0&&(a=0);a>1&&(a=1);b["stroke-width"]==null&&(h=d["stroke-width"]);b["stroke-width"]&&(f.weight=h);h&&h<1&&(a*=h)&&(f.weight=
1);f.opacity=a;b["stroke-linejoin"]&&(f.joinstyle=b["stroke-linejoin"]||"miter");f.miterlimit=b["stroke-miterlimit"]||8;b["stroke-linecap"]&&(f.endcap=b["stroke-linecap"]=="butt"?"flat":b["stroke-linecap"]=="square"?"square":"round");if(b["stroke-dasharray"]){a={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};f.dashstyle=a[z](b["stroke-dasharray"])?a[b["stroke-dasharray"]]:
A}e&&c[x](f)}if(g.type=="text"){f=g.paper.span.style;d.font&&(f.font=d.font);d["font-family"]&&(f.fontFamily=d["font-family"]);d["font-size"]&&(f.fontSize=d["font-size"]);d["font-weight"]&&(f.fontWeight=d["font-weight"]);d["font-style"]&&(f.fontStyle=d["font-style"]);g.node.string&&(g.paper.span.innerHTML=D(g.node.string)[I](/</g,"&#60;")[I](/&/g,"&#38;")[I](/\n/g,"<br>"));g.W=d.w=g.paper.span.offsetWidth;g.H=d.h=g.paper.span.offsetHeight;g.X=d.x;g.Y=d.y+Q(g.H/2);switch(d["text-anchor"]){case "start":g.node.style["v-text-align"]=
"left";g.bbx=Q(g.W/2);break;case "end":g.node.style["v-text-align"]="right";g.bbx=-Q(g.W/2);break;default:g.node.style["v-text-align"]="center";break}}};pa=function(a,b){a.attrs=a.attrs||{};var c="linear",d=".5 .5";a.attrs.gradient=b;b=D(b)[I](cb,function(i,j,m){c="radial";if(j&&m){j=y(j);m=y(m);E(j-0.5,2)+E(m-0.5,2)>0.25&&(m=v.sqrt(0.25-E(j-0.5,2))*((m>0.5)*2-1)+0.5);d=j+N+m}return A});b=b[G](/\s*\-\s*/);if(c=="linear"){var f=b.shift();f=-y(f);if(isNaN(f))return null}var e=Wa(b);if(!e)return null;
a=a.shape||a.node;b=a.getElementsByTagName(ca)[0]||S(ca);!b.parentNode&&a.appendChild(b);if(e[o]){b.on=true;b.method="none";b.color=e[0].color;b.color2=e[e[o]-1].color;a=[];for(var g=0,h=e[o];g<h;g++)e[g].offset&&a[F](e[g].offset+N+e[g].color);b.colors&&(b.colors.value=a[o]?a[R]():"0% "+b.color);if(c=="radial"){b.type="gradientradial";b.focus="100%";b.focussize=d;b.focusposition=d}else{b.type="gradient";b.angle=(270-f)%360}}return 1};s=function(a,b,c){this[0]=a;this.id=l._oid++;this.node=a;a.raphael=
this;this.Y=this.X=0;this.attrs={};this.Group=b;this.paper=c;this._={tx:0,ty:0,rt:{deg:0},sx:1,sy:1};!c.bottom&&(c.bottom=this);(this.prev=c.top)&&(c.top.next=this);c.top=this;this.next=null};s[p].rotate=function(a,b,c){if(this.removed)return this;if(a==null){if(this._.rt.cx)return[this._.rt.deg,this._.rt.cx,this._.rt.cy][R](N);return this._.rt.deg}a=D(a)[G](V);if(a[o]-1){b=y(a[1]);c=y(a[2])}a=y(a[0]);if(b!=null)this._.rt.deg=a;else this._.rt.deg+=a;c==null&&(b=null);this._.rt.cx=b;this._.rt.cy=c;
this.setBox(this.attrs,b,c);this.Group.style.rotation=this._.rt.deg;return this};s[p].setBox=function(a,b,c){if(this.removed)return this;var d=this.Group.style,f=this.shape&&this.shape.style||this.node.style;a=a||{};for(var e in a)if(a[z](e))this.attrs[e]=a[e];b=b||this._.rt.cx;c=c||this._.rt.cy;var g=this.attrs,h;switch(this.type){case "circle":a=g.cx-g.r;e=g.cy-g.r;h=g=g.r*2;break;case "ellipse":a=g.cx-g.rx;e=g.cy-g.ry;h=g.rx*2;g=g.ry*2;break;case "image":a=+g.x;e=+g.y;h=g.width||0;g=g.height||
0;break;case "text":this.textpath.v=["m",Q(g.x),", ",Q(g.y-2),"l",Q(g.x)+1,", ",Q(g.y-2)][R](A);a=g.x-Q(this.W/2);e=g.y-this.H/2;h=this.W;g=this.H;break;case "rect":case "path":if(this.attrs.path){g=xa(this.attrs.path);a=g.x;e=g.y;h=g.width;g=g.height}else{e=a=0;h=this.paper.width;g=this.paper.height}break;default:e=a=0;h=this.paper.width;g=this.paper.height;break}b=b==null?a+h/2:b;c=c==null?e+g/2:c;b=b-this.paper.width/2;c=c-this.paper.height/2;var i;d.left!=(i=b+"px")&&(d.left=i);d.top!=(i=c+"px")&&
(d.top=i);this.X=ra[z](this.type)?-b:a;this.Y=ra[z](this.type)?-c:e;this.W=h;this.H=g;if(ra[z](this.type)){f.left!=(i=-b*na+"px")&&(f.left=i);f.top!=(i=-c*na+"px")&&(f.top=i)}else if(this.type=="text"){f.left!=(i=-b+"px")&&(f.left=i);f.top!=(i=-c+"px")&&(f.top=i)}else{d.width!=(i=this.paper.width+"px")&&(d.width=i);d.height!=(i=this.paper.height+"px")&&(d.height=i);f.left!=(i=a-b+"px")&&(f.left=i);f.top!=(i=e-c+"px")&&(f.top=i);f.width!=(i=h+"px")&&(f.width=i);f.height!=(i=g+"px")&&(f.height=i)}};
s[p].hide=function(){!this.removed&&(this.Group.style.display="none");return this};s[p].show=function(){!this.removed&&(this.Group.style.display="block");return this};s[p].getBBox=function(){if(this.removed)return this;if(ra[z](this.type))return xa(this.attrs.path);return{x:this.X+(this.bbx||0),y:this.Y,width:this.W,height:this.H}};s[p].remove=function(){if(!this.removed){ma(this,this.paper);this.node.parentNode.removeChild(this.node);this.Group.parentNode.removeChild(this.Group);this.shape&&this.shape.parentNode.removeChild(this.shape);
for(var a in this)delete this[a];this.removed=true}};s[p].attr=function(a,b){if(this.removed)return this;if(a==null){a={};for(var c in this.attrs)if(this.attrs[z](c))a[c]=this.attrs[c];this._.rt.deg&&(a.rotation=this.rotate());(this._.sx!=1||this._.sy!=1)&&(a.scale=this.scale());a.gradient&&a.fill=="none"&&(a.fill=a.gradient)&&delete a.gradient;return a}if(b==null&&l.is(a,ga)){if(a=="translation")return Aa.call(this);if(a=="rotation")return this.rotate();if(a=="scale")return this.scale();if(a==ca&&
this.attrs.fill=="none"&&this.attrs.gradient)return this.attrs.gradient;return this.attrs[a]}if(this.attrs&&b==null&&l.is(a,U)){var d={};c=0;for(b=a[o];c<b;c++)d[a[c]]=this.attr(a[c]);return d}if(b!=null){d={};d[a]=b}b==null&&l.is(a,"object")&&(d=a);if(d){if(d.text&&this.type=="text")this.node.string=d.text;ea(this,d);if(d.gradient&&({circle:1,ellipse:1}[z](this.type)||D(d.gradient).charAt()!="r"))pa(this,d.gradient);(!ra[z](this.type)||this._.rt.deg)&&this.setBox(this.attrs)}return this};s[p].toFront=
function(){!this.removed&&this.Group.parentNode[x](this.Group);this.paper.top!=this&&Ya(this,this.paper);return this};s[p].toBack=function(){if(this.removed)return this;if(this.Group.parentNode.firstChild!=this.Group){this.Group.parentNode.insertBefore(this.Group,this.Group.parentNode.firstChild);Za(this,this.paper)}return this};s[p].insertAfter=function(a){if(this.removed)return this;if(a.constructor==X)a=a[a.length];a.Group.nextSibling?a.Group.parentNode.insertBefore(this.Group,a.Group.nextSibling):
a.Group.parentNode[x](this.Group);$a(this,a,this.paper);return this};s[p].insertBefore=function(a){if(this.removed)return this;if(a.constructor==X)a=a[0];a.Group.parentNode.insertBefore(this.Group,a.Group);ab(this,a,this.paper);return this};var Hb=/ progid:\S+Blur\([^\)]+\)/g;s[p].blur=function(a){var b=this.node.runtimeStyle,c=b.filter;c=c.replace(Hb,A);if(+a!==0){this.attrs.blur=a;b.filter=c+N+Fa+".Blur(pixelradius="+(+a||1.5)+")";b.margin=l.format("-{0}px 0 0 -{0}px",Q(+a||1.5))}else{b.filter=
c;b.margin=0;delete this.attrs.blur}};fb=function(a,b,c,d){var f=S("group"),e=S("oval");f.style.cssText="position:absolute;left:0;top:0;width:"+a.width+"px;height:"+a.height+"px";f.coordsize=qa;f.coordorigin=a.coordorigin;f[x](e);e=new s(e,f,a);e.type="circle";ea(e,{stroke:"#000",fill:"none"});e.attrs.cx=b;e.attrs.cy=c;e.attrs.r=d;e.setBox({x:b-d,y:c-d,width:d*2,height:d*2});a.canvas[x](f);return e};function mb(a,b,c,d,f){return f?l.format("M{0},{1}l{2},0a{3},{3},0,0,1,{3},{3}l0,{5}a{3},{3},0,0,1,{4},{3}l{6},0a{3},{3},0,0,1,{4},{4}l0,{7}a{3},{3},0,0,1,{3},{4}z",
a+f,b,c-f*2,f,-f,d-f*2,f*2-c,f*2-d):l.format("M{0},{1}l{2},0,0,{3},{4},0z",a,b,c,d,-c)}gb=function(a,b,c,d,f,e){var g=mb(b,c,d,f,e);a=a.path(g);var h=a.attrs;a.X=h.x=b;a.Y=h.y=c;a.W=h.width=d;a.H=h.height=f;h.r=e;h.path=g;a.type="rect";return a};hb=function(a,b,c,d,f){var e=S("group"),g=S("oval");e.style.cssText="position:absolute;left:0;top:0;width:"+a.width+"px;height:"+a.height+"px";e.coordsize=qa;e.coordorigin=a.coordorigin;e[x](g);g=new s(g,e,a);g.type="ellipse";ea(g,{stroke:"#000"});g.attrs.cx=
b;g.attrs.cy=c;g.attrs.rx=d;g.attrs.ry=f;g.setBox({x:b-d,y:c-f,width:d*2,height:f*2});a.canvas[x](e);return g};ib=function(a,b,c,d,f,e){var g=S("group"),h=S("image");g.style.cssText="position:absolute;left:0;top:0;width:"+a.width+"px;height:"+a.height+"px";g.coordsize=qa;g.coordorigin=a.coordorigin;h.src=b;g[x](h);h=new s(h,g,a);h.type="image";h.attrs.src=b;h.attrs.x=c;h.attrs.y=d;h.attrs.w=f;h.attrs.h=e;h.setBox({x:c,y:d,width:f,height:e});a.canvas[x](g);return h};jb=function(a,b,c,d){var f=S("group"),
e=S("shape"),g=e.style,h=S("path"),i=S("textpath");f.style.cssText="position:absolute;left:0;top:0;width:"+a.width+"px;height:"+a.height+"px";f.coordsize=qa;f.coordorigin=a.coordorigin;h.v=l.format("m{0},{1}l{2},{1}",Q(b*10),Q(c*10),Q(b*10)+1);h.textpathok=true;g.width=a.width;g.height=a.height;i.string=D(d);i.on=true;e[x](i);e[x](h);f[x](e);g=new s(i,f,a);g.shape=e;g.textpath=h;g.type="text";g.attrs.text=d;g.attrs.x=b;g.attrs.y=c;g.attrs.w=1;g.attrs.h=1;ea(g,{font:ta.font,stroke:"none",fill:"#000"});
g.setBox();a.canvas[x](f);return g};kb=function(a,b){var c=this.canvas.style;a==+a&&(a+="px");b==+b&&(b+="px");c.width=a;c.height=b;c.clip="rect(0 "+a+" "+b+" 0)";return this};var S;C.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");try{!C.namespaces.rvml&&C.namespaces.add("rvml","urn:schemas-microsoft-com:vml");S=function(a){return C.createElement("<rvml:"+a+' class="rvml">')}}catch(Pb){S=function(a){return C.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}Ca=
function(){var a=Xa[K](0,arguments),b=a.container,c=a.height,d=a.width,f=a.x;a=a.y;if(!b)throw new Error("VML container not found.");var e=new H,g=e.canvas=C.createElement("div"),h=g.style;f=f||0;a=a||0;d=d||512;c=c||342;d==+d&&(d+="px");c==+c&&(c+="px");e.width=1000;e.height=1000;e.coordsize=na*1000+N+na*1000;e.coordorigin="0 0";e.span=C.createElement("span");e.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";g[x](e.span);h.cssText=
l.format("width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",d,c);if(b==1){C.body[x](g);h.left=f+"px";h.top=a+"px";h.position="absolute"}else b.firstChild?b.insertBefore(g,b.firstChild):b[x](g);Ia.call(e,e,l.fn);return e};H[p].clear=function(){this.canvas.innerHTML=A;this.span=C.createElement("span");this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";this.canvas[x](this.span);this.bottom=
this.top=null};H[p].remove=function(){this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]=bb(a);return true}}H[p].safari=navigator.vendor=="Apple Computer, Inc."&&(navigator.userAgent.match(/Version\/(.*?)\s/)[1]<4||aa.navigator.platform.slice(0,2)=="iP")?function(){var a=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:"none"});aa.setTimeout(function(){a.remove()})}:function(){};function Ib(){this.returnValue=false}function Jb(){return this.originalEvent.preventDefault()}
function Kb(){this.cancelBubble=true}function Lb(){return this.originalEvent.stopPropagation()}var Mb=function(){if(C.addEventListener)return function(a,b,c,d){var f=Da&&Ea[b]?Ea[b]:b;function e(g){if(Da&&Ea[z](b))for(var h=0,i=g.targetTouches&&g.targetTouches.length;h<i;h++)if(g.targetTouches[h].target==a){i=g;g=g.targetTouches[h];g.originalEvent=i;g.preventDefault=Jb;g.stopPropagation=Lb;break}return c.call(d,g)}a.addEventListener(f,e,false);return function(){a.removeEventListener(f,e,false);return true}};
else if(C.attachEvent)return function(a,b,c,d){function f(g){g=g||aa.event;g.preventDefault=g.preventDefault||Ib;g.stopPropagation=g.stopPropagation||Kb;return c.call(d,g)}a.attachEvent("on"+b,f);function e(){a.detachEvent("on"+b,f);return true}return e}}(),$=[];function Ka(a){for(var b=a.clientX,c=a.clientY,d,f=$.length;f--;){d=$[f];if(Da)for(var e=a.touches.length,g;e--;){g=a.touches[e];if(g.identifier==d.el._drag.id){b=g.clientX;c=g.clientY;(a.originalEvent?a.originalEvent:a).preventDefault();
break}}else a.preventDefault();d.move&&d.move.call(d.el,b-d.el._drag.x,c-d.el._drag.y,b,c)}}function La(){l.unmousemove(Ka).unmouseup(La);for(var a=$.length,b;a--;){b=$[a];b.el._drag={};b.end&&b.end.call(b.el)}$=[]}for(da=Ra[o];da--;)(function(a){l[a]=s[p][a]=function(b){if(l.is(b,"function")){this.events=this.events||[];this.events.push({name:a,f:b,unbind:Mb(this.shape||this.node||C,a,b,this)})}return this};l["un"+a]=s[p]["un"+a]=function(b){for(var c=this.events,d=c[o];d--;)if(c[d].name==a&&c[d].f==
b){c[d].unbind();c.splice(d,1);!c.length&&delete this.events;return this}return this}})(Ra[da]);s[p].hover=function(a,b){return this.mouseover(a).mouseout(b)};s[p].unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};s[p].drag=function(a,b,c){this._drag={};this.mousedown(function(d){(d.originalEvent||d).preventDefault();this._drag.x=d.clientX;this._drag.y=d.clientY;this._drag.id=d.identifier;b&&b.call(this,d.clientX,d.clientY);!$.length&&l.mousemove(Ka).mouseup(La);$.push({el:this,move:a,
end:c})});return this};s[p].undrag=function(a,b,c){for(b=$.length;b--;){$[b].el==this&&$[b].move==a&&$[b].end==c&&$.splice(b,1);!$.length&&l.unmousemove(Ka).unmouseup(La)}};H[p].circle=function(a,b,c){return fb(this,a||0,b||0,c||0)};H[p].rect=function(a,b,c,d,f){return gb(this,a||0,b||0,c||0,d||0,f||0)};H[p].ellipse=function(a,b,c,d){return hb(this,a||0,b||0,c||0,d||0)};H[p].path=function(a){a&&!l.is(a,ga)&&!l.is(a[0],U)&&(a+=A);return db(l.format[K](l,arguments),this)};H[p].image=function(a,b,c,
d,f){return ib(this,a||"about:blank",b||0,c||0,d||0,f||0)};H[p].text=function(a,b,c){return jb(this,a||0,b||0,c||A)};H[p].set=function(a){arguments[o]>1&&(a=Array[p].splice.call(arguments,0,arguments[o]));return new X(a)};H[p].setSize=kb;H[p].top=H[p].bottom=null;H[p].raphael=l;function nb(){return this.x+N+this.y}s[p].resetScale=function(){if(this.removed)return this;this._.sx=1;this._.sy=1;this.attrs.scale="1 1"};s[p].scale=function(a,b,c,d){if(this.removed)return this;if(a==null&&b==null)return{x:this._.sx,
y:this._.sy,toString:nb};b=b||a;!+b&&(b=a);var f,e,g=this.attrs;if(a!=0){var h=this.getBBox(),i=h.x+h.width/2,j=h.y+h.height/2;f=a/this._.sx;e=b/this._.sy;c=+c||c==0?c:i;d=+d||d==0?d:j;h=~~(a/v.abs(a));var m=~~(b/v.abs(b)),n=this.node.style,r=c+(i-c)*f;j=d+(j-d)*e;switch(this.type){case "rect":case "image":var q=g.width*h*f,k=g.height*m*e;this.attr({height:k,r:g.r*ba(h*f,m*e),width:q,x:r-q/2,y:j-k/2});break;case "circle":case "ellipse":this.attr({rx:g.rx*h*f,ry:g.ry*m*e,r:g.r*ba(h*f,m*e),cx:r,cy:j});
break;case "text":this.attr({x:r,y:j});break;case "path":i=Ha(g.path);for(var t=true,L=0,B=i[o];L<B;L++){var w=i[L],J=sa.call(w[0]);if(!(J=="M"&&t)){t=false;if(J=="A"){w[i[L][o]-2]*=f;w[i[L][o]-1]*=e;w[1]*=h*f;w[2]*=m*e;w[5]=+!(h+m?!+w[5]:+w[5])}else if(J=="H"){J=1;for(var ia=w[o];J<ia;J++)w[J]*=f}else if(J=="V"){J=1;for(ia=w[o];J<ia;J++)w[J]*=e}else{J=1;for(ia=w[o];J<ia;J++)w[J]*=J%2?f:e}}}e=xa(i);f=r-e.x-e.width/2;e=j-e.y-e.height/2;i[0][1]+=f;i[0][2]+=e;this.attr({path:i});break}if(this.type in
{text:1,image:1}&&(h!=1||m!=1))if(this.transformations){this.transformations[2]="scale("[M](h,",",m,")");this.node[W]("transform",this.transformations[R](N));f=h==-1?-g.x-(q||0):g.x;e=m==-1?-g.y-(k||0):g.y;this.attr({x:f,y:e});g.fx=h-1;g.fy=m-1}else{this.node.filterMatrix=Fa+".Matrix(M11="[M](h,", M12=0, M21=0, M22=",m,", Dx=0, Dy=0, sizingmethod='auto expand', filtertype='bilinear')");n.filter=(this.node.filterMatrix||A)+(this.node.filterOpacity||A)}else if(this.transformations){this.transformations[2]=
A;this.node[W]("transform",this.transformations[R](N));g.fx=0;g.fy=0}else{this.node.filterMatrix=A;n.filter=(this.node.filterMatrix||A)+(this.node.filterOpacity||A)}g.scale=[a,b,c,d][R](N);this._.sx=a;this._.sy=b}return this};s[p].clone=function(){if(this.removed)return null;var a=this.attr();delete a.scale;delete a.translation;return this.paper[this.type]().attr(a)};var ob=Z(function(a,b,c,d,f,e,g,h,i){for(var j=0,m,n=0;n<1.01;n+=0.01){var r=la(a,b,c,d,f,e,g,h,n);n&&(j+=E(E(m.x-r.x,2)+E(m.y-r.y,
2),0.5));if(j>=i)return r;m=r}});function Ma(a,b){return function(c,d,f){c=wa(c);for(var e,g,h,i,j="",m={},n=0,r=0,q=c.length;r<q;r++){h=c[r];if(h[0]=="M"){e=+h[1];g=+h[2]}else{i=Nb(e,g,h[1],h[2],h[3],h[4],h[5],h[6]);if(n+i>d){if(b&&!m.start){e=ob(e,g,h[1],h[2],h[3],h[4],h[5],h[6],d-n);j+=["C",e.start.x,e.start.y,e.m.x,e.m.y,e.x,e.y];if(f)return j;m.start=j;j=["M",e.x,e.y+"C",e.n.x,e.n.y,e.end.x,e.end.y,h[5],h[6]][R]();n+=i;e=+h[5];g=+h[6];continue}if(!a&&!b){e=ob(e,g,h[1],h[2],h[3],h[4],h[5],h[6],
d-n);return{x:e.x,y:e.y,alpha:e.alpha}}}n+=i;e=+h[5];g=+h[6]}j+=h}m.end=j;e=a?n:b?m:l.findDotsAtSegment(e,g,h[1],h[2],h[3],h[4],h[5],h[6],1);e.alpha&&(e={x:e.x,y:e.y,alpha:e.alpha});return e}}var Nb=Z(function(a,b,c,d,f,e,g,h){for(var i={x:0,y:0},j=0,m=0;m<1.01;m+=0.01){var n=la(a,b,c,d,f,e,g,h,m);m&&(j+=E(E(i.x-n.x,2)+E(i.y-n.y,2),0.5));i=n}return j}),pb=Ma(1),Ba=Ma(),Na=Ma(0,1);s[p].getTotalLength=function(){if(this.type=="path"){if(this.node.getTotalLength)return this.node.getTotalLength();return pb(this.attrs.path)}};
s[p].getPointAtLength=function(a){if(this.type=="path"){if(this.node.getPointAtLength)return this.node.getPointAtLength(a);return Ba(this.attrs.path,a)}};s[p].getSubpath=function(a,b){if(this.type=="path"){if(v.abs(this.getTotalLength()-b)<1.0E-6)return Na(this.attrs.path,a).end;b=Na(this.attrs.path,b,1);return a?Na(b,a).end:b}};l.easing_formulas={linear:function(a){return a},"<":function(a){return E(a,3)},">":function(a){return E(a-1,3)+1},"<>":function(a){a*=2;if(a<1)return E(a,3)/2;a-=2;return(E(a,
3)+2)/2},backIn:function(a){var b=1.70158;return a*a*((b+1)*a-b)},backOut:function(a){a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},elastic:function(a){if(a==0||a==1)return a;var b=0.3,c=b/4;return E(2,-10*a)*v.sin((a-c)*2*v.PI/b)+1},bounce:function(a){var b=7.5625,c=2.75;if(a<1/c)a=b*a*a;else if(a<2/c){a-=1.5/c;a=b*a*a+0.75}else if(a<2.5/c){a-=2.25/c;a=b*a*a+0.9375}else{a-=2.625/c;a=b*a*a+0.984375}return a}};var T={length:0};function qb(){var a=+new Date;for(var b in T)if(b!="length"&&T[z](b)){var c=
T[b];if(c.stop||c.el.removed){delete T[b];T[o]--}else{var d=a-c.start,f=c.ms,e=c.easing,g=c.from,h=c.diff,i=c.to,j=c.t,m=c.prev||0,n=c.el,r=c.callback,q={},k;if(d<f){r=l.easing_formulas[e]?l.easing_formulas[e](d/f):d/f;for(var t in g)if(g[z](t)){switch(Ga[t]){case "along":k=r*f*h[t];i.back&&(k=i.len-k);e=Ba(i[t],k);n.translate(h.sx-h.x||0,h.sy-h.y||0);h.x=e.x;h.y=e.y;n.translate(e.x-h.sx,e.y-h.sy);i.rot&&n.rotate(h.r+e.alpha,e.x,e.y);break;case P:k=+g[t]+r*f*h[t];break;case "colour":k="rgb("+[Oa(Q(g[t].r+
r*f*h[t].r)),Oa(Q(g[t].g+r*f*h[t].g)),Oa(Q(g[t].b+r*f*h[t].b))][R](",")+")";break;case "path":k=[];e=0;for(var L=g[t][o];e<L;e++){k[e]=[g[t][e][0]];for(var B=1,w=g[t][e][o];B<w;B++)k[e][B]=+g[t][e][B]+r*f*h[t][e][B];k[e]=k[e][R](N)}k=k[R](N);break;case "csv":switch(t){case "translation":k=h[t][0]*(d-m);e=h[t][1]*(d-m);j.x+=k;j.y+=e;k=k+N+e;break;case "rotation":k=+g[t][0]+r*f*h[t][0];g[t][1]&&(k+=","+g[t][1]+","+g[t][2]);break;case "scale":k=[+g[t][0]+r*f*h[t][0],+g[t][1]+r*f*h[t][1],2 in i[t]?i[t][2]:
A,3 in i[t]?i[t][3]:A][R](N);break;case "clip-rect":k=[];for(e=4;e--;)k[e]=+g[t][e]+r*f*h[t][e];break}break}q[t]=k}n.attr(q);n._run&&n._run.call(n)}else{if(i.along){e=Ba(i.along,i.len*!i.back);n.translate(h.sx-(h.x||0)+e.x-h.sx,h.sy-(h.y||0)+e.y-h.sy);i.rot&&n.rotate(h.r+e.alpha,e.x,e.y)}(j.x||j.y)&&n.translate(-j.x,-j.y);i.scale&&(i.scale+=A);n.attr(i);delete T[b];T[o]--;n.in_animation=null;l.is(r,"function")&&r.call(n)}c.prev=d}}l.svg&&n&&n.paper&&n.paper.safari();T[o]&&aa.setTimeout(qb)}function Oa(a){return Y(ba(a,
255),0)}function Aa(a,b){if(a==null)return{x:this._.tx,y:this._.ty,toString:nb};this._.tx+=+a;this._.ty+=+b;switch(this.type){case "circle":case "ellipse":this.attr({cx:+a+this.attrs.cx,cy:+b+this.attrs.cy});break;case "rect":case "image":case "text":this.attr({x:+a+this.attrs.x,y:+b+this.attrs.y});break;case "path":var c=Ha(this.attrs.path);c[0][1]+=+a;c[0][2]+=+b;this.attr({path:c});break}return this}s[p].animateWith=function(a,b,c,d,f){T[a.id]&&(b.start=T[a.id].start);return this.animate(b,c,d,
f)};s[p].animateAlong=rb();s[p].animateAlongBack=rb(1);function rb(a){return function(b,c,d,f){var e={back:a};l.is(d,"function")?(f=d):(e.rot=d);b&&b.constructor==s&&(b=b.attrs.path);b&&(e.along=b);return this.animate(e,c,f)}}s[p].onAnimation=function(a){this._run=a||0;return this};s[p].animate=function(a,b,c,d){if(l.is(c,"function")||!c)d=c||null;var f={},e={},g={};for(var h in a)if(a[z](h))if(Ga[z](h)){f[h]=this.attr(h);f[h]==null&&(f[h]=ta[h]);e[h]=a[h];switch(Ga[h]){case "along":var i=pb(a[h]),
j=Ba(a[h],i*!!a.back),m=this.getBBox();g[h]=i/b;g.tx=m.x;g.ty=m.y;g.sx=j.x;g.sy=j.y;e.rot=a.rot;e.back=a.back;e.len=i;a.rot&&(g.r=y(this.rotate())||0);break;case P:g[h]=(e[h]-f[h])/b;break;case "colour":f[h]=l.getRGB(f[h]);i=l.getRGB(e[h]);g[h]={r:(i.r-f[h].r)/b,g:(i.g-f[h].g)/b,b:(i.b-f[h].b)/b};break;case "path":i=wa(f[h],e[h]);f[h]=i[0];j=i[1];g[h]=[];i=0;for(m=f[h][o];i<m;i++){g[h][i]=[0];for(var n=1,r=f[h][i][o];n<r;n++)g[h][i][n]=(j[i][n]-f[h][i][n])/b}break;case "csv":j=D(a[h])[G](V);i=D(f[h])[G](V);
switch(h){case "translation":f[h]=[0,0];g[h]=[j[0]/b,j[1]/b];break;case "rotation":f[h]=i[1]==j[1]&&i[2]==j[2]?i:[0,j[1],j[2]];g[h]=[(j[0]-f[h][0])/b,0,0];break;case "scale":a[h]=j;f[h]=D(f[h])[G](V);g[h]=[(j[0]-f[h][0])/b,(j[1]-f[h][1])/b,0,0];break;case "clip-rect":f[h]=D(f[h])[G](V);g[h]=[];for(i=4;i--;)g[h][i]=(j[i]-f[h][i])/b;break}e[h]=j}}this.stop();this.in_animation=1;T[this.id]={start:a.start||+new Date,ms:b,easing:c,from:f,diff:g,to:e,el:this,callback:d,t:{x:0,y:0}};++T[o]==1&&qb();return this};
s[p].stop=function(){T[this.id]&&T[o]--;delete T[this.id];return this};s[p].translate=function(a,b){return this.attr({translation:a+" "+b})};s[p][O]=function(){return"Rapha\u00ebl\u2019s object"};l.ae=T;function X(a){this.items=[];this[o]=0;this.type="set";if(a)for(var b=0,c=a[o];b<c;b++)if(a[b]&&(a[b].constructor==s||a[b].constructor==X)){this[this.items[o]]=this.items[this.items[o]]=a[b];this[o]++}}X[p][F]=function(){for(var a,b,c=0,d=arguments[o];c<d;c++)if((a=arguments[c])&&(a.constructor==s||
a.constructor==X)){b=this.items[o];this[b]=this.items[b]=a;this[o]++}return this};X[p].pop=function(){delete this[this[o]--];return this.items.pop()};for(var Pa in s[p])if(s[p][z](Pa))X[p][Pa]=function(a){return function(){for(var b=0,c=this.items[o];b<c;b++)this.items[b][a][K](this.items[b],arguments);return this}}(Pa);X[p].attr=function(a,b){if(a&&l.is(a,U)&&l.is(a[0],"object")){b=0;for(var c=a[o];b<c;b++)this.items[b].attr(a[b])}else{c=0;for(var d=this.items[o];c<d;c++)this.items[c].attr(a,b)}return this};
X[p].animate=function(a,b,c,d){(l.is(c,"function")||!c)&&(d=c||null);var f=this.items[o],e=f,g,h=this,i;d&&(i=function(){!--f&&d.call(h)});c=l.is(c,ga)?c:i;for(g=this.items[--e].animate(a,b,c,i);e--;)this.items[e].animateWith(g,a,b,c,i);return this};X[p].insertAfter=function(a){for(var b=this.items[o];b--;)this.items[b].insertAfter(a);return this};X[p].getBBox=function(){for(var a=[],b=[],c=[],d=[],f=this.items[o];f--;){var e=this.items[f].getBBox();a[F](e.x);b[F](e.y);c[F](e.x+e.width);d[F](e.y+
e.height)}a=ba[K](0,a);b=ba[K](0,b);return{x:a,y:b,width:Y[K](0,c)-a,height:Y[K](0,d)-b}};X[p].clone=function(a){a=new X;for(var b=0,c=this.items[o];b<c;b++)a[F](this.items[b].clone());return a};l.registerFont=function(a){if(!a.face)return a;this.fonts=this.fonts||{};var b={w:a.w,face:{},glyphs:{}},c=a.face["font-family"];for(var d in a.face)if(a.face[z](d))b.face[d]=a.face[d];if(this.fonts[c])this.fonts[c][F](b);else this.fonts[c]=[b];if(!a.svg){b.face["units-per-em"]=ha(a.face["units-per-em"],10);
for(var f in a.glyphs)if(a.glyphs[z](f)){c=a.glyphs[f];b.glyphs[f]={w:c.w,k:{},d:c.d&&"M"+c.d[I](/[mlcxtrv]/g,function(g){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[g]||"M"})+"z"};if(c.k)for(var e in c.k)if(c[z](e))b.glyphs[f].k[e]=c.k[e]}}return a};H[p].getFont=function(a,b,c,d){d=d||"normal";c=c||"normal";b=+b||{normal:400,bold:700,lighter:300,bolder:800}[b]||400;if(l.fonts){var f=l.fonts[a];if(!f){a=new RegExp("(^|\\s)"+a[I](/[^\w\d\s+!~.:_-]/g,A)+"(\\s|$)","i");for(var e in l.fonts)if(l.fonts[z](e))if(a.test(e)){f=
l.fonts[e];break}}var g;if(f){e=0;for(a=f[o];e<a;e++){g=f[e];if(g.face["font-weight"]==b&&(g.face["font-style"]==c||!g.face["font-style"])&&g.face["font-stretch"]==d)break}}return g}};H[p].print=function(a,b,c,d,f,e){e=e||"middle";var g=this.set(),h=D(c)[G](A),i=0;l.is(d,c)&&(d=this.getFont(d));if(d){c=(f||16)/d.face["units-per-em"];var j=d.face.bbox.split(V);f=+j[0];e=+j[1]+(e=="baseline"?j[3]-j[1]+ +d.face.descent:(j[3]-j[1])/2);j=0;for(var m=h[o];j<m;j++){var n=j&&d.glyphs[h[j-1]]||{},r=d.glyphs[h[j]];
i+=j?(n.w||d.w)+(n.k&&n.k[h[j]]||0):0;r&&r.d&&g[F](this.path(r.d).attr({fill:"#000",stroke:"none",translation:[i,0]}))}g.scale(c,c,f,e).translate(a-f,b-e)}return g};var Ob=/\{(\d+)\}/g;l.format=function(a,b){var c=l.is(b,U)?[0][M](b):arguments;a&&l.is(a,ga)&&c[o]-1&&(a=a[I](Ob,function(d,f){return c[++f]==null?A:c[f]}));return a||A};l.ninja=function(){Qa.was?(Raphael=Qa.is):delete Raphael;return l};l.el=s[p];return l}();
Type the text for 'systemConfig'
/***
|''Name:''|twYouTubePlayer|
|''Description:''|search, play and associate youtube videos|
|''Author:''|Tobias Beer|
|''Version:''|0.9.7 (2010-10-25)|
|''Status:''|beta|
|''Source:''|http://twyp.tiddlyspace.com/#twyp|
|''Documentation:''|http://tobibeer.tiddlyspace.com/#twYp|
|''Requires:''|TW Version 2.5.3 or better|
!Example
{{{
<<twyp>>
}}}
<<twyp>>
!Code
***/
//{{{
(function($){

window.twyp={

/*** TWYP OPTIONS  ***/

maxSearch:6,
maxRelated:10,
maxUser:10,
vidWidth:380,
vidHeight:320,
restrictTo:'',
field:'youtube',

/*** LINGO ***/

txtRelated:'Related',
txtUser:'Best rated videos by ',
txtPage:'Go to page ',
lblShow:'Play %0',
tipShow:'Click to play %0',
lblHide:'Close video',
tipHide:'Click to close video player',
txtInfo:'by %0 | viewed: %1 | favourited: %2 | published: %3',
txtRating:'rating: ',
txtDuration:'duration: ',
txtSearch:'-search-',
lblSearch:'Please enter a search-term...',
txtTag:'-category/tag-',
lblTag:'Please enter a category or tag filter to constrain the search results by...',
twypTemplate:'twyp##TEMPLATE',
fmtSlider:'<<slider chk%0 twyp##TEMPLATE "Search videos" "Search videos on youtube and add one to the tiddler">>',
fmtPlayer:
'<h2><a class="tiddlyLinkExisting" href="#" \
title="add to current tiddler (hold CTRL to skip the prompt and use the title as is)" rel="%0">%1</a></h2> \
<object width="%2" height="%3"> \
<param name="movie" value="%0%4&fs=1&format=5&iv_load_policy=3&enablejsapi=1&playerapiid=%5"/> \
<param name="allowFullScreen" value="true" /> \
<param name="iv_load_policy" value="3" /> \
<param name="wmode" value="transparent" /> \
<param name="allowScriptAccess" value="always"> \
<embed src="%0%4&format=5&fs=1&iv_load_policy=3&enablejsapi=1&playerapiid=%5" \
	type="application/x-shockwave-flash" \
	allowscriptaccess="always" \
	wmode="transparent" \
	width="%2" height="%3" \
	allowfullscreen="true"> \
</embed></object>',

/*** END OF OPTIONS ***/


relRelated:'http://gdata.youtube.com/schemas/2007#video.related',
mimeFlash:'application/x-shockwave-flash',
feeds:'http://gdata.youtube.com/feeds/standardfeeds/',
mapQuery:{
	'rated':'top_rated',
	'recent':'most_recent',
	'popular':'most_popular',
	'respond':'most_responded',
	'discuss':'most_discussed',
	'featured':'recently_featured',
	'all':'videos'
},
usrSuffix:'/uploads',
activeTwyp:null,
shadows:[],

appendScript:function(source,id,callback) 
{
	$('#'+id).remove();
	$('head').append(
		$('<script>').attr({
			src:source+'&alt=json-in-script&callback='+callback,
			id:id,
			type:'text/javascript'
		})
	);
},

findHref:function(entry, rel)
{
	var i,l;
	for(i=0;l=entry.link[i];i++)if(l.rel==rel)return l.href;
	return null;
},

findMediaHref:function(entry, type)
{
	var i,c,p,u;
	for(i=0;c=entry.media$group.media$content[i];i++)
		if(c.type==type){
			u=c.url;
			p=u.indexOf('?');
			return p<1?u:u.substr(0,p);
		}
	alert('?!?');
	return null;
},

getResults:function(el,query,search)
{
	var c,q,
		page=1,
		box=$(el).closest('.twyp'),
		tid=$(el).closest('[tiddler]'),
		id=twyp.activeTwyp=tid.attr('twyp'),
		s=search;
	s=s!=''&&s!=twyp.txtSearch?s:'';

	if(query){
		c=el.category.value;
		c=c!=''&&c!=twyp.txtTag?'&category='+c:'';
		box.attr({
			id:id,
			field:tid.attr('field'),
			search:s,
			cat:c,
			query:query
		})
	}else{
		s=box.attr('search');
		c=box.attr('cat');
		query=box.attr('query');
		page=parseInt($(el).attr('page'));
	};

	q=twyp.feeds+twyp.mapQuery[query];
	if(query=='all')q=q.replace('standardfeeds/','');
	q+='?prettyprint=true&restriction='+twyp.restrictTo+
		'&max-results='+twyp.maxSearch+
		'&start-index='+(((page-1)*twyp.maxSearch)+1)+
		(s==''?'':'&vq='+s)+
		(c?c:'');
	twyp.appendScript(q,'twypResults','twyp.cbResults');
	twyp.updateNav(page,box);
},

cbResults:function(data)
{
try{
	var box=$('#'+twyp.activeTwyp),
		out=$('.vids',box).empty();

	box.data('main',data.feed);
	$(data.feed.entry).each(function(i,e){
		if(!e.yt$noembed){
			var ti=e.media$group.media$title.$t,
				img=$('<img/>'),
				lnk=$('<a/>'),
				desc=e.media$group.media$description.$t,
				p=$('<p>').html(desc);

			img.attr({
				src:e.media$group.media$thumbnail[0].url,
				title:twyp.info(e)
			}).click(twyp.clickPlay(i,'main',img[0]));

			lnk.attr({
				href:'#',
				'class':'tiddlyLinkExisting'
			}).click(twyp.clickPlay(i,'main',lnk[0])
			).html(ti);

			out.append(
				$('<div/>').attr(
					'class','vid'
				).append(
					$('<div/>'
					).attr('class','desc'
					).append(lnk
					).append(img
					).append($('<span/>'
						).append(
							$('<div/>').html(twyp.info(e,true))
						)
					).append(p
					).append(
						$('<div/>').attr('class','tagClear')
					)
				)
			)
		}
	});
	if($.fn.linkify)$('p',out).linkify();
}catch(e){alert(e)}
},

getRelated:function(num,feed,box)
{
	var entry=box.data(feed).entry[num],
		url=twyp.findHref(entry,twyp.relRelated),
		rel=$('.vidRel',box).empty();
	if (url){
		url=url.split('?')[0];
		rel.html('<h3>'+twyp.txtRelated+'</h3>');
		url+='?&restriction='+twyp.restrictTo+'&max-results='+twyp.maxRelated;
		twyp.appendScript(
			url,
			'twypRelated',
			'twyp.cbMore'
		);
	}
},

getByUser:function(box,url,name)
{
	$('.vidUser',box).empty().html('<h3>'+twyp.txtUser+name+'</h3>');
	twyp.appendScript(
		url+twyp.usrSuffix+
		'?&restriction='+twyp.restrictTo+
		'&max-results='+twyp.maxUser+
		'&orderby=rating',
		'twypUser',
		'twyp.cbMore'
	);
},

cbMore:function(data)
{
	var i,img,e,
		box=$('#'+twyp.activeTwyp),
		feed=data.feed.title.$t.indexOf('Videos related to')==0?'related':'user';

	box.data(feed,data.feed);
	for(i=0;e=data.feed.entry[i];i++){
		img=$('<img/>');
		$(feed=='user'?'.vidUser':'.vidRel',box).append(
			img.attr({
				src:e.media$group.media$thumbnail[0].url,
				rel:e.media$group.media$title.$t,
				title:twyp.info(e)+' | '+twyp.info(e,true)
			}).click(twyp.clickPlay(i,feed,img[0])
			).bind('mouseover mouseout',function(ev){
				var e=ev?ev:window.event,
					el=$('.'+feed+'Info');
				el.empty().html(
					e.type=='mouseover'?
					this.getAttribute('rel'):
					'&nbsp;'
				)
			})
		)
	}
},

info:function(e,r){
	var a,l,s;
	if(r){
		r=e.gd$rating,
			l=e.media$group.media$content[0].duration;
		return [
			r?twyp.txtRating+r.average.toString().substr(0,3)+' | ':'',
			twyp.txtDuration,
			Math.floor(l/60),
			':',
			String.zeroPad(l%60,2)
		].join('');
	}
	a=e.author,s=e.yt$statistics;
	return twyp.txtInfo.format([
		a?a[0].name.$t:'',
		s?s.viewCount:'n/a',
		s?s.favoriteCount:'n/a',
		e.published.$t.substr(0,10)
	])
},

clickPlay:function(entry,feed,el)
{
	return function(){twyp.playVideo(entry,feed,el);return false;};
},

playVideo:function(num,feed,el)
{
	twyp.activePlayer=null;
	twyp.newPlayer=true;
	var box=$(el).closest('.twyp'),
		p=box.find('.twplr'),
		e=box.data(feed).entry[num],
		a=e.author,
		plr=twyp.fmtPlayer.format([
			twyp.findMediaHref(e,twyp.mimeFlash),
			e.media$group.media$title.$t,
			twyp.vidWidth,
			twyp.vidHeight,
			'&autoplay=1',
			box.attr('id')
		]);

	p.html(plr);
	p.find('a').first(
	).attr('field',box.attr('field')
	).click(function(ev){
		var e=ev?ev:window.event;
		twyp.addToTiddler(e,this);
	});
	p.append(
		$('<div/>'
		).attr({
			'class':'vidDescr',
			title:(twyp.info(e)+twyp.info(e,true))
		}).html(e.media$group.media$description.$t)
	);
	if($.fn.linkify)$('.vidDescr',p).linkify();
	twyp.getRelated(num,feed,box);
	if(a&&a.length>0)twyp.getByUser(box,a[0].uri.$t,a[0].name.$t);
},

updateNav:function(page,box)
{
	var p=page,
		t=twyp.txtPage,
		d=p-1<1?'disabled':'';

	$('.vidNext',box
		).css('display','inline'
		).attr({
			page:p+1,
			title:t+(p+1)
		});
	$('.vidPrev',box
		).css('display','inline'
		).attr({
			page:p-1,
			title:t+(p-1),
			disabled:d
		});
},

reset:function(el){
	var box=$(el).closest('.twyp');
	$('.vids, .colPlayer div[class]',box).empty();
	$('.twplr',box).html('&nbsp;');
	$('.resultsNav',box).hide();
},

addToTiddler:function(ev,el)
{
	var tid=story.findContainingTiddler(el),
		e=$(el),
		vid=e.html();

	tid=tid?tid.getAttribute('tiddler'):'';

	if(!tid)return;

	if(!ev.ctrlKey)vid=prompt('Enter your desired video title',vid);
	if(!vid)return;

	store.setValue(tid,e.attr('field'),'[['+vid+'|'+e.attr('rel')+']]');
	if(config.options.chkAutoSave)story.saveTiddler(tid);
},

stateChange:function(state){
	var q,
		p=$(this),
		last=p.attr('last'),
		vid=twyp.activePlayer.getVideoUrl(),
		old=vid.indexOf('?v=')>0;
	vid=vid.split(old?'?v=':'#!v=')[1].split('&')[0];
	if(last!=vid){
		p.attr('last',vid);
		if(twyp.newPlayer){twyp.newPlayer=false;return;}
		if(last){
			twyp.activePlayer.pauseVideo();
			q='http://gdata.youtube.com/feeds/api/videos/'+vid+'?v=2';
			twyp.appendScript(q,'twypVideoInfo','twyp.getVideo');
		}
	}
	twyp.newPlayer=false;
},

getVideo:function(data){
	var box=$('#'+twyp.activeTwyp);
	data.feed={entry:[data.entry]}
	box.data('video',data.feed);
	twyp.playVideo(0,'video',box.first());
}
}

//macro handler
config.macros.twyp={
handler:function (place, macroName, params, wikifier, paramString, tiddler)
{
	var a,el,plr,sep,title,vid,w,
		tid=story.findContainingTiddler(place),
		p=paramString.parseParams(null,null,true),
		f=getParam(p,'field',twyp.field),
		not=params.contains('notitle'),
		slide=params.contains('slider'),
		id='twyp'+Math.random().toString().substr(3),
		s=params.contains('search');

	if(params.contains('player')){
		s=s?'<<twyp %0>>'.format([paramString.replace('player','')]):'';

		tid=tid?tid.getAttribute('tiddler'):'';
		vid=getParam(p,'video',store.getValue(tid,f));

		wikify(s,place);
		if(!vid)return;

		sep=vid.indexOf('|');
		title=vid.substr(2,sep-2);
		plr=[
			'<html>',
			twyp.fmtPlayer.format([
				vid.substr(sep+1,vid.length-sep-3),
				title,
				getParam(p,'width',twyp.vidWidth),
				getParam(p,'height',twyp.vidHeight),
				slide&!params.contains('noautoplay')?'&autoplay=1':'',
				id
			]),
			'</html>'
		].join('');

		if(slide){
			el=$('<div/>');
			el.addClass('twypSlider');
			w=el[0];
			$(place).append(
				$('<a>'+twyp.lblShow.format([title])+'</a>').attr({
					href:'#',
					twyp:id,
					'class':'button',
					title:twyp.tipShow.format([title])
				}).click(function(ev){
					var el=$(this),
						ti=title,
						id=el.attr('twyp'),
						p=el.next();
					if(p.css('display')!='block'){
						el.attr({
							title:twyp.tipHide,
							video:ti
						}).html(twyp.lblHide);
						p.attr('twyp',id);
						config.shadowTiddlers[id]=plr;
						p.slideDown('slow');
					}else{
						ti=el.attr('video');
						el.attr('title',twyp.tipShow.format([ti])).html(twyp.lblShow.format([ti]));
						delete config.shadowTiddlers[id];
						p.slideUp('slow');
					}
				})
			).append(el);
		};
		wikify(plr,w?w:place);
		a=$('a',w?w:place).last();
		if(not){
			a.parent().hide().next().css('margin-top','0.5em');
		}else a.click(function(ev){
			var e=ev?ev:window.event;
			twyp.addToTiddler(e,this);
		});
	}else{
		wikify(
			slide?
			twyp.fmtSlider.format([id]):
			store.getTiddlerText(twyp.twypTemplate),
			place
		);
		$('.txtSearch',place).last().val(twyp.txtSearch).attr('title',twyp.lblSearch);
		$('.txtTag',place).last().val(twyp.txtTag).attr('title',twyp.lblTag);
		el=slide?$('[tiddler]',place).last():$(place).closest('[tiddler]');
		el.attr({
			twyp:id,
			field:f,
			not:not
		});
	}
}
}

story.closeTiddlerTWYP=story.closeTiddler;
story.closeTiddler=function(title){
	$('.twypSlider',this.getTiddler(title)).each(function(n,b){
		delete config.shadowTiddlers[$(b).attr('twyp')];
	});
	story.closeTiddlerTWYP.apply(this,arguments);
}

try{$.getJSON(
	'http://www.geoplugin.net/json.gp?jsoncallback=?',
	function(d){if(d)twyp.restrictTo=d.geoplugin_countryCode}
)}catch(e){}

window.onYouTubePlayerReady=function(id)
{
	$('object, embed',$('#'+id)).each(function(i){
		try{
			this.addEventListener('onStateChange','twyp.stateChange');
			twyp.activePlayer=this;
			$(this).attr('last',null);
		}catch(e){}
	});
}

config.shadowTiddlers.StyleSheetTwyp = "/*{{{*/\n\
.twyp {font-size:12px;} \n\
.twyp .frmSearch{margin:10px 0 0 10px;} \n\
.twyp .txtSearch, .twyp .txtTag{width:100px;} \n\
.twyp input{border:1px solid #ddd;padding:1px 3px;cursor:pointer;} \n\
.twyp input:hover{border:1px solid #999;} \n\
.twyp .colResults {float:left;margin-top:0.5em;width:390px;padding-left:10px;} \n\
.twyp .vids {width:100%;} \n\
.twyp .vids img{margin:5px 0 5px 5px;width:100px;cursor:pointer;float:right;clear:none;} \n\
.twyp .vid{clear:both;font-size:0.9em;padding:5px;} \n\
.twyp .vid:hover{background:#ddd;} \n\
.twyp .desc a{display:block;padding:1px 3px;} \n\
.twyp .desc p{max-height:70px;overflow:hidden;margin-top:5px;display:block;max-width:380px;} \n\
.twyp .desc p a{display:inline;} \n\
.twyp .desc:hover p{width:270px;max-height:200px;overflow:auto;} \n\
.twyp .desc span {font-weight:bold;color:#666;} \n\
.twyp .resultsNav{text-align:right;margin-bottom:2em;} \n\
.twyp .resultsNav input, .btnSearch{margin:0.5em 0 0 0.5em;font-weight:bold;width:80px;} \n\
.twyp .colPlayer {float:left;width:390px;margin:0 5px;} \n\
.twplr .vidDescr {max-height:1.5em;overflow:hidden;} \n\
.twplr .vidDescr:hover {max-height:250px;overflow:auto;} \n\
.twyp .colPlayer img {margin:1px;cursor:pointer;width:72px;height:56px;} \n\
.twyp h2, .twyp h3 {margin-top: 0.6em;} \n\
.twyp .vidUser, .vidRel{margin:0 1em 0 0;} \n\
.twyp .userInfo, .twyp .relatedInfo{padding-right:20px;height:auto;overflow:hidden;font-weight:bold;color:#666;} \n\
.twypSlider {display:none;margin-bottom:10px;} \n\
.twypSlider object{display:block;} \n\
/*}}}*/";
store.addNotification("StyleSheetTwyp", refreshStyles);

})(jQuery);
//}}}
// /%
/***
!TEMPLATE
<html>
<div class="twyp">
	<form class="frmSearch" onsubmit="twyp.getResults(this,this.query.value,this.search.value); return false;">
		<select name="query">
			<option value="all" selected="true">all videos</option>
			<option value="rated">top rated</option>
			<option value="recent">most recent</option>
			<option value="popular">most popular</option>
			<option value="discuss">most discussed</option>
			<option value="respond">most responded</option>
			<option value="featured">recently featured</option>
		</select>
		<input name="search" class="txtSearch" type="text" value="" onclick="this.select();">
		<input name="category" class="txtTag" type="text" value="" onclick="this.select();">
		<input type="submit" class="btnSearch" value="Search">
		<input type="button" class="btnSearch" value="Reset" onclick="twyp.reset(this);">
	</form>
	<div class="colPlayer">
		<div class="twplr"></div>
		<div>
			<div class="vidRel"></div>
			<div class="relatedInfo">&nbsp;</div>
			<div class="vidUser"></div>
			<div class="userInfo">&nbsp;</div>
		</div>
	</div> 
	<div class="colResults">
		<div class="vids"></div>
		<form class="resultsNav">
			<input type="button" class="vidPrev" value="&laquo; back" style="display: none;" onclick="twyp.getResults(this);"></input>
			<input type="button" class="vidNext" value="next &raquo;" style="display: none;" onclick="twyp.getResults(this);"></input>
		</form>
	</div>
</div>
<div class="tagClear"></div>
</html>
!END*/
//%/
/***
|Name|zzConfigOptions|
|Source||
|Version|1.0|
|Author|[[MichaelTarnowski]]|
|License||
|~CoreVersion||
|Type|plugin|
|Requires||
|Overrides||
|Description|Pre-definition (options) for plugins at loadtime; codes for loading of bookmarklets.|
***/
//{{{

/***
config.options.chkHttpReadOnly = false;
config.options.chkAutoSave = false;
config.options.chkSaveBackups = false;
config.options.chkAnimate = false;
if (window.location.protocol!="file:") showBackstage=false; 
config.options.chkShowRightSidebar= false;
config.options.chkShowLeftSidebar= true;
config.options.chkSearchTitles=true;
config.options.chkSearchText=true;
config.options.chkSearchTags=true;
config.options.chkSearchFields=true;
config.options.chkSearchTitlesFirst=false;
config.options.chkSearchList=true;
config.options.chkSearchByDate=false;
config.options.chkSearchIncremental=true;
config.options.chkSearchShadows=false; 
***/
config.options.chkShowQuickEdit=true;
config.macros.gotoTiddler.listMaxSize = 6
//}}}


/***
!
Name: YourSearchBookmarklet
Version: 2.1.4
Source: http://tiddlywiki.abego-software.de/#YourSearchPlugin
Author: UdoBorkowski, XavierVergés
Licence: BSD open source license (abego Software)
Copyright: &copy; 2005-2008 http://www.abego-software.de
Community: http://xdexavier.googlepages.com/yoursearch.html

//{{{
(function(){var a=document.createElement("script");a.src="http://tiddlywiki.abego-software.de/archive/YourSearchPlugin/YourSearchPlugin.js";a.onload=function(){refreshPageTemplate();displayMessage("YourSearch is loaded")};document.getElementsByTagName("head")[0].appendChild(a)})();
//}}}
***/
config.options.chkShowRightSidebar=true;
config.options.txtToggleRightSideBarLabelShow="◄";
config.options.txtToggleRightSideBarLabelHide="►";