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

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

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

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

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

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

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

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

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

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

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.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:0px; top:0px;}

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

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

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin: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:0px 3px 0px 3px;}

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

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

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

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

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

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#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>>
<html><iframe src="http://www.wls-eng.de/media/Christof/Christof.html" width="600px" height="1000px"></iframe></html>
[[Version|SiteVersion]]
//Macro: allTagsExcept
//Author: Clint Checketts
//Version: 1.0 Sept 8, 2005

version.extensions.allTagsExcept = {major: 0, minor: 1, revision: 0, date: new Date(2005,8,15)};
config.macros.allTagsExcept = {tooltip: "Show tiddlers tagged with '%0'",noTags: "There are no tags to display"};

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

config.macros.allTagsExcept.handler = function(place,macroName,params)
{
	var tags = store.getTags();
	var theTagList = createTiddlyElement(place,"ul",null,null,null);
	if(tags.length == 0)
		createTiddlyElement(theTagList,"li",null,"listTitle",this.noTags);
	for (var t=0; t<tags.length; t++) {
            var includeTag = true;
            for (var p=0;p<params.length; p++) if (tags[t][0] == params[p]) includeTag = false;
            if (includeTag){
		var theListItem =createTiddlyElement(theTagList,"li",null,null,null);
		var theTag = createTiddlyButton(theListItem,tags[t][0] + " (" + tags[t][1] + ")",this.tooltip.format([tags[t][0]]),onClickTag);
		theTag.setAttribute("tag",tags[t][0]);
           }
	}
}


Type the text for 'New Tiddler'
<br>
/%Video: [[tagesschau.de)|http://www.tagesschau.de/ausland/obamarede112.html]]%/
<<player id=6 flash http://de.youtube.com/v/3PuHGKnboNY&fmt=1 425 355>>

!!Text of President Barack Obama's Inaugural Address

My fellow citizens:

I stand here today humbled by the task before us, grateful for the trust you have bestowed, mindful of the sacrifices borne by our ancestors. I thank President Bush for his service to our nation, as well as the generosity and cooperation he has shown throughout this transition.

Forty-four Americans have now taken the presidential oath. The words have been spoken during rising tides of prosperity and the still waters of peace. Yet, every so often the oath is taken amidst gathering clouds and raging storms. At these moments, America has carried on not simply because of the skill or vision of those in high office, but because we the people have remained faithful to the ideals of our forebears, and true to our founding documents.

So it has been. So it must be with this generation of Americans.

That we are in the midst of crisis is now well understood. Our nation is at war, against a far-reaching network of violence and hatred. Our economy is badly weakened, a consequence of greed and irresponsibility on the part of some, but also our collective failure to make hard choices and prepare the nation for a new age. Homes have been lost; jobs shed; businesses shuttered. Our health care is too costly; our schools fail too many; and each day brings further evidence that the ways we use energy strengthen our adversaries and threaten our planet.

These are the indicators of crisis, subject to data and statistics. Less measurable but no less profound is a sapping of confidence across our land -- a nagging fear that America's decline is inevitable, and that the next generation must lower its sights.

Today I say to you that the challenges we face are real. They are serious and they are many. They will not be met easily or in a short span of time. But know this, America -- they will be met.

On this day, we gather because we have chosen hope over fear, unity of purpose over conflict and discord.

On this day, we come to proclaim an end to the petty grievances and false promises, the recriminations and worn out dogmas, that for far too long have strangled our politics.

We remain a young nation, but in the words of Scripture, the time has come to set aside childish things. The time has come to reaffirm our enduring spirit; to choose our better history; to carry forward that precious gift, that noble idea, passed on from generation to generation: the God-given promise that all are equal, all are free and all deserve a chance to pursue their full measure of happiness.

In reaffirming the greatness of our nation, we understand that greatness is never a given. It must be earned. Our journey has never been one of shortcuts or settling for less. It has not been the path for the faint-hearted -- for those who prefer leisure over work, or seek only the pleasures of riches and fame. Rather, it has been the risk-takers, the doers, the makers of things -- some celebrated but more often men and women obscure in their labor, who have carried us up the long, rugged path towards prosperity and freedom.

For us, they packed up their few worldly possessions and traveled across oceans in search of a new life.

For us, they toiled in sweatshops and settled the West; endured the lash of the whip and plowed the hard earth.

For us, they fought and died, in places like Concord and Gettysburg; Normandy and Khe Sanh.

Time and again these men and women struggled and sacrificed and worked till their hands were raw so that we might live a better life. They saw America as bigger than the sum of our individual ambitions; greater than all the differences of birth or wealth or faction.

This is the journey we continue today. We remain the most prosperous, powerful nation on Earth. Our workers are no less productive than when this crisis began. Our minds are no less inventive, our goods and services no less needed than they were last week or last month or last year. Our capacity remains undiminished. But our time of standing pat, of protecting narrow interests and putting off unpleasant decisions -- that time has surely passed. Starting today, we must pick ourselves up, dust ourselves off, and begin again the work of remaking America.

For everywhere we look, there is work to be done. The state of the economy calls for action, bold and swift, and we will act -- not only to create new jobs, but to lay a new foundation for growth. We will build the roads and bridges, the electric grids and digital lines that feed our commerce and bind us together. We will restore science to its rightful place, and wield technology's wonders to raise health care's quality and lower its cost. We will harness the sun and the winds and the soil to fuel our cars and run our factories. And we will transform our schools and colleges and universities to meet the demands of a new age. All this we can do. All this we will do.

Now, there are some who question the scale of our ambitions -- who suggest that our system cannot tolerate too many big plans. Their memories are short. For they have forgotten what this country has already done; what free men and women can achieve when imagination is joined to common purpose, and necessity to courage.

What the cynics fail to understand is that the ground has shifted beneath them -- that the stale political arguments that have consumed us for so long no longer apply. The question we ask today is not whether our government is too big or too small, but whether it works -- whether it helps families find jobs at a decent wage, care they can afford, a retirement that is dignified. Where the answer is yes, we intend to move forward. Where the answer is no, programs will end. Those of us who manage the public's dollars will be held to account -- to spend wisely, reform bad habits, and do our business in the light of day -- because only then can we restore the vital trust between a people and their government.

Nor is the question before us whether the market is a force for good or ill. Its power to generate wealth and expand freedom is unmatched, but this crisis has reminded us that without a watchful eye, the market can spin out of control -- and that a nation cannot prosper long when it favors only the prosperous. The success of our economy has always depended not just on the size of our gross domestic product, but on the reach of our prosperity; on our ability to extend opportunity to every willing heart -- not out of charity, but because it is the surest route to our common good.

As for our common defense, we reject as false the choice between our safety and our ideals. Our founding fathers ... our founding fathers, faced with perils we can scarcely imagine, drafted a charter to assure the rule of law and the rights of man, a charter expanded by the blood of generations. Those ideals still light the world, and we will not give them up for expedience's sake. And so to all the other peoples and governments who are watching today, from the grandest capitals to the small village where my father was born: know that America is a friend of each nation and every man, woman, and child who seeks a future of peace and dignity, and that we are ready to lead once more.

Recall that earlier generations faced down fascism and communism not just with missiles and tanks, but with sturdy alliances and enduring convictions. They understood that our power alone cannot protect us, nor does it entitle us to do as we please. Instead, they knew that our power grows through its prudent use; our security emanates from the justness of our cause, the force of our example, the tempering qualities of humility and restraint.

We are the keepers of this legacy. Guided by these principles once more, we can meet those new threats that demand even greater effort -- even greater cooperation and understanding between nations. We will begin to responsibly leave Iraq to its people, and forge a hard-earned peace in Afghanistan. With old friends and former foes, we will work tirelessly to lessen the nuclear threat, and roll back the specter of a warming planet. We will not apologize for our way of life, nor will we waver in its defense, and for those who seek to advance their aims by inducing terror and slaughtering innocents, we say to you now that our spirit is stronger and cannot be broken; you cannot outlast us, and we will defeat you.

For we know that our patchwork heritage is a strength, not a weakness. We are a nation of Christians and Muslims, Jews and Hindus -- and non-believers. We are shaped by every language and culture, drawn from every end of this Earth; and because we have tasted the bitter swill of civil war and segregation, and emerged from that dark chapter stronger and more united, we cannot help but believe that the old hatreds shall someday pass; that the lines of tribe shall soon dissolve; that as the world grows smaller, our common humanity shall reveal itself; and that America must play its role in ushering in a new era of peace.

To the Muslim world, we seek a new way forward, based on mutual interest and mutual respect. To those leaders around the globe who seek to sow conflict, or blame their society's ills on the West -- know that your people will judge you on what you can build, not what you destroy. To those who cling to power through corruption and deceit and the silencing of dissent, know that you are on the wrong side of history; but that we will extend a hand if you are willing to unclench your fist.

To the people of poor nations, we pledge to work alongside you to make your farms flourish and let clean waters flow; to nourish starved bodies and feed hungry minds. And to those nations like ours that enjoy relative plenty, we say we can no longer afford indifference to the suffering outside our borders; nor can we consume the world's resources without regard to effect. For the world has changed, and we must change with it.

As we consider the road that unfolds before us, we remember with humble gratitude those brave Americans who, at this very hour, patrol far-off deserts and distant mountains. They have something to tell us, just as the fallen heroes who lie in Arlington whisper through the ages. We honor them not only because they are guardians of our liberty, but because they embody the spirit of service; a willingness to find meaning in something greater than themselves. And yet, at this moment -- a moment that will define a generation -- it is precisely this spirit that must inhabit us all.

For as much as government can do and must do, it is ultimately the faith and determination of the American people upon which this nation relies. It is the kindness to take in a stranger when the levees break, the selflessness of workers who would rather cut their hours than see a friend lose their job which sees us through our darkest hours. It is the firefighter's courage to storm a stairway filled with smoke, but also a parent's willingness to nurture a child, that finally decides our fate.

Our challenges may be new. The instruments with which we meet them may be new. But those values upon which our success depends -- hard work and honesty, courage and fair play, tolerance and curiosity, loyalty and patriotism -- these things are old. These things are true. They have been the quiet force of progress throughout our history. What is demanded then is a return to these truths. What is required of us now is a new era of responsibility -- a recognition, on the part of every American, that we have duties to ourselves, our nation, and the world, duties that we do not grudgingly accept but rather seize gladly, firm in the knowledge that there is nothing so satisfying to the spirit, so defining of our character, than giving our all to a difficult task.

This is the price and the promise of citizenship.

This is the source of our confidence -- the knowledge that God calls on us to shape an uncertain destiny.

This is the meaning of our liberty and our creed -- why men and women and children of every race and every faith can join in celebration across this magnificent Mall, and why a man whose father less than sixty years ago might not have been served at a local restaurant can now stand before you to take a most sacred oath.

So let us mark this day with remembrance, of who we are and how far we have traveled. In the year of America's birth, in the coldest of months, a small band of patriots huddled by dying campfires on the shores of an icy river. The capital was abandoned. The enemy was advancing. The snow was stained with blood. At a moment when the outcome of our revolution was most in doubt, the father of our nation ordered these words be read to the people:

"Let it be told to the future world ... that in the depth of winter, when nothing but hope and virtue could survive ... that the city and the country, alarmed at one common danger, came forth to meet (it)."'

America, in the face of our common dangers, in this winter of our hardship, let us remember these timeless words. With hope and virtue, let us brave once more the icy currents, and endure what storms may come. Let it be said by our children's children that when we were tested we refused to let this journey end, that we did not turn back nor did we falter; and with eyes fixed on the horizon and God's grace upon us, we carried forth that great gift of freedom and delivered it safely to future generations.

Thank you. God bless you. And God bless the United States of America.

Source: [[The New York Times|http://www.nytimes.com/aponline/2009/01/20/washington/AP-Inauguration-Obama-Text.html?pagewanted=1&_r=1]]

/%
<<player id=6 flash http://de.youtube.com/v/VjnygQ02aW4&fmt=1 425 355>>

Source(s):
http://www.youtube.com/watch?v=VjnygQ02aW4 http://changamkamkenya.blogspot.com/2009/01/full-text-of-barack-obamas-inauguration.html http://www.pixcetera.com/pixcetera/inauguration-2009/45799
%/
|!Format|!Markup|!Example|
|Bold|{{{''Bold''}}} (2 single quotes)|''Bold''|
|Italic|{{{//Italic//}}}|//Italic//|
|Bold Italic|{{{''//Bold Italic//''}}}|''//Bold Italic//''|
|Underlined|{{{__Underline__}}}(2 underscores)|__Underlined__|
|Strikethough|{{{--Strikethrough--}}}<br />{{{--}}} replaced {{{==}}} for Stikethrough in TiddlyWiki 2.1|--Strikethrough--|
|Superscript|{{{Text^^Superscript^^}}}|Text^^Superscript^^|
|Subscript|{{{Text~~Subscript~~}}}|Text~~Subscript~~|
|Monospaced text|<html><code>{{{Monospaced}}}</code></html>|{{{Monospaced}}}|
|Monospaced multiline block|Put <html><code>{{{</code></html> and <html><code>}}}</code></html> on their own lines|<html><pre>{{{<br/>Monospaced<br/>Multi-line<br/>Block<br/>}}}</pre></html>|
|Highlight|{{{@@Highlight@@}}}|@@Highlight@@|
|Color|{{{@@color(green):green text@@}}}|@@color(green):green text@@ |
|~|{{{@@bgcolor(green):text@@}}}|@@bgcolor(green):text@@ |
|~|{{{@@bgcolor(#3399ff):text@@}}}|@@bgcolor(#3399ff):text@@|
|~|{{{@@bgcolor(#39f):text@@}}}|@@bgcolor(#39f):text@@|
|CSS Extended Highlights|{{{@@some css;Highlight@@}}}<br />For backwards compatibility, the following highlight syntax is also accepted:<br />{{{@@bgcolor(#ff0000):color(#ffffff):red coloured@@}}}|@@background-color:#ff0000;color:#ffffff;red coloured@@<br /><<slider AtEg sliderHotPotatoesSuite 'Extended example ...'>>|
|Custom CSS Class|<html><code>{{wrappingClass{Text that is now accentuated}}}</code></html><br />By default, the text is placed in a <span>. To use a <div> instead, insert a line break before the text (after the single {)<br />In the CSS:<br />{{{.wrappingClass {color: red;} }}}|Add .wrappingClass to StyleSheet|
|Any HTML|{{{<html><span>any</span><br />}}}<br />{{{<b>valid</b> <em>xhtml</em></html>}}}|<html><span>any</span><br /><b>valid</b> <em>xhtml</em></html>|
/***
|Name|BetterTimelineMacro|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#BetterTimelineMacro|
|Version|0.5 beta|
|Requires|~TW2.x|
!!!Description:
A replacement for the core timeline macro that offers more features:
*list tiddlers with only specfic tag
*exclude tiddlers with a particular tag
*limit entries to any number of days, for example one week
*specify a start date for the timeline, only tiddlers after that date will be listed.

!!!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.

!!!Syntax:
{{{<<timeline better:true>>}}}
''the param better:true enables the advanced features, without it you will get the old timeline behaviour.''

additonal params:
(use only the ones you want)
{{{<<timeline better:true  onlyTag:Tag1 excludeTag:Tag2 sortBy:modified/created firstDay:YYYYMMDD maxDays:7 maxEntries:30>>}}}

''explanation of syntax:''
onlyTag: only tiddlers with this tag will be listed. Default is to list all tiddlers.
excludeTag: tiddlers with this tag will not be listed.
sortBy: sort tiddlers by date modified or date created. Possible values are modified or created.
firstDay: useful for starting timeline from a specific date. Example: 20060701 for 1st of July, 2006
maxDays: limits timeline to include only tiddlers from the specified number of days. If you use a value of 7 for example, only tiddlers from the last 7 days will be listed.
maxEntries: limit the total number of entries in the timeline.


!!!History:
*28-07-06: ver 0.5 beta, first release

!!!Code
***/
//{{{
// Return the tiddlers as a sorted array
TiddlyWiki.prototype.getTiddlers = function(field,excludeTag,includeTag)
{
          var results = [];
          this.forEachTiddler(function(title,tiddler)
          {
          if(excludeTag == undefined || tiddler.tags.find(excludeTag) == null)
                        if(includeTag == undefined || tiddler.tags.find(includeTag)!=null)
                                      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;
}



//this function by Udo
function getParam(params, name, defaultValue)
{
          if (!params)
          return defaultValue;
          var p = params[0][name];
          return p ? p[0] : defaultValue;
}

window.old_timeline_handler= config.macros.timeline.handler;
config.macros.timeline.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
          var args = paramString.parseParams("list",null,true);
          var betterMode = getParam(args, "better", "false");
          if (betterMode == 'true')
          {
          var sortBy = getParam(args,"sortBy","modified");
          var excludeTag = getParam(args,"excludeTag",undefined);
          var includeTag = getParam(args,"onlyTag",undefined);
          var tiddlers = store.getTiddlers(sortBy,excludeTag,includeTag);
          var firstDayParam = getParam(args,"firstDay",undefined);
          var firstDay = (firstDayParam!=undefined)? firstDayParam: "00010101";
          var lastDay = "";
          var field= sortBy;
          var maxDaysParam = getParam(args,"maxDays",undefined);
          var maxDays = (maxDaysParam!=undefined)? maxDaysParam*24*60*60*1000: (new Date()).getTime() ;
          var maxEntries = getParam(args,"maxEntries",undefined);
          var last = (maxEntries!=undefined) ? tiddlers.length-Math.min(tiddlers.length,parseInt(maxEntries)) : 0;
          for(var t=tiddlers.length-1; t>=last; t--)
                  {
                  var tiddler = tiddlers[t];
                  var theDay = tiddler[field].convertToLocalYYYYMMDDHHMM().substr(0,8);
                  if ((theDay>=firstDay)&& (tiddler[field].getTime()> (new Date()).getTime() - maxDays))
                     {
                     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",null);
                  theDateListItem.appendChild(createTiddlyLink(place,tiddler.title,true));
                  }
                  }
          }

          else
              {
              window.old_timeline_handler.apply(this,arguments);
              }
}
//}}}
Encrypted(CDEF8510B7CAB9EBAD7798EAB8EBC0DDE64D0E81)
d3c3ca1e999df8de262131312121333421c121333321e5e046ebdf58a87df745d1
4a562bb77fda874ad55f487bc5784557afae9242cf1fbe2ca729ab12b9c62adc
54daece1213334214cf3bd21333321027290556d729c303e21313121bad2f362
213921e1a91fb621313221765897be981230a3f4afab2e6fc9d654c6a973ad57
f15331cfa8d44e4902e54360e3a165c8972ced471e80a504d8da25e74d624a9f
f7213021a26d213132215b803a1899d1f32df79b48372133392121313221dec2
822131312145c189773bb25f5fe7d60ed5ab5059c14667ebf7aae72da828d6f8
ddb721313021df74536d95fe94793b83ac2f6de1bd8db5bbd52030f472c36243
ba922d46d620d4432da9a98ed54f10a1349f6e2930c7f2b9606f8e1a395b47
Encrypted(68CEEA633F3EF1EFC1993094825160F84B94F0B2)
b0bc964f8344cffa06b5f7015093aec7bd2d86d94c0865213021eca8ba21313121
295fdb108148e2942acc997cecec0feeff1bf57621313121f08a69c049d199e6
55eff3e83dc215d838cdaae8ec48f78ccfc4f36c6f31f33c91e1988aae052133
39213a7280064d3de81ef32996dd74d8e0e16d10eec0484460324f9f6d9c2130
21e43da3179dc8ff3bdba82a213334213a4bd3703015d87a63607750ebff0534
411aff2b85bace5d365cf101c69a2d9534d4af21313221bf6c1a21333921697d
7bf84226e551793f949c8bba619f63aeeb013e962ba4935bd1be47bd5dd02139
21133214ba9dd229f629eb508b01e2d520dbd4d056d634b41c06edbeb9f48973
ac6feb303635456daba8cfbfd806495783cb8721313321213130212935b1d207
1fa321333921bdf5fb33ffe13fdfff1af564213921e9146c4354ef606b515954
2541f12a6032681ffd55a18b3a75154ca802b321392113bb4ad6c52131363021
3d2131363021a9fd84d8d7bcb7589d3b1a1a7448192d5d5621333321ad9e7807
5b1586c0cc5083994f8c4574ac3e213921a5f9d0a616bf6e36cdd9550f48ae5a
c59c0f848c90b39b2450d9eaf52d5cf8c72c37b4526c84647c3080ca89c07e84
da2afd5b2a187d40e94870fc1c2363d24a6eb7be752f21313321c68cd72896a7
d7cae889613696321e1341a504c4723056d6a68aa120454b9e79718942dae3a3
3ae3c42b92dd07f5cd4544213021943fd525e9915e6bdf852321333921c1d23f
7888e9f3c6c252ab765ce8c04e213021b16f213339212ab251632133392180d2
8653c681c00ef2ce33dc3a24187890d961672ff8dfa807a5f667b93cfd23efcd
facc0f961e269786496db80f4afe18f27596d5b5fedcb62b9cc1213021aa65a2
7871bd67b902ab664dd0583f17691859b5464dd77432e671aff8e56310bdefd3
b3204d4ecfb16e85d3de547dee158eda1071ea5417b949d9974c13f6413028f6
d3d30e2133342188248472a3cebe24a63a287caa2133392163b1c4a5ecab37fa
f46642b4a984905a0347bd5a2131363021887338719b546adeb710c07ebd7c83
6d999d54925103c87f9fe319faa9101c4d94ef179f9321333921928650d8ebbf
1c77d3bebf8b146f778252fe
/***
|''Name''|BewertungVersionPlugin|
|''Description''|<...>|
|''Icon''|<...>|
|''Author''|Ulrich Saugeon|
|''Contributors''|<...>|
|''Version''|<0.1.2>|
|''Date''|<...>|
|''Status''|<//unknown//; @@experimental@@; @@beta@@; //obsolete//; stable>|
|''Source''|<...>|
|''CodeRepository''|<...>|
|''Copyright''|<...>|
|''License''|<...>|
|''CoreVersion''|<...>|
|''Requires''|<...>|
|''Overrides''|<...>|
|''Feedback''|<...>|
|''Documentation''|<...>|
|''Keywords''|<...>|
!Description
<...>
!Notes
<...>
!Usage
{{{
<<sampleMacro>>
}}}
!!Parameters
<...>
!!Examples
<<sampleMacro>>
!Configuration Options
<...>
!Revision History
!!v<#.#> (<yyyy-mm-dd>)
* <...>
!To Do
<...>
!Code
***/
//{{{
if(!version.extensions.BewertungVersionPlugin) { //# ensure that the plugin is only installed once
	version.extensions.BewertungVersionSamplePlugin = { installed: true };
 
//	if(!config.extensions) { config.extensions = {}; }
 
//	config.extensions.SamplePlugin = {
//			sampleFunction: function() {
//			/* ... */
//			}
//		};
 
	config.macros.bewertungversion = {
		handler: function(place, macroName, params, wikifier, paramString, tiddler) {
//			var bva;
//			bva.innerHTML = '<b><u>Grundkurs </u><br /><br />' +
//									'- '+beMax+' Bewertungseinheiten<br />' +
//									'- Fehlersprung: '+fehlersprung+' Fehler</b>' +
//									'<br />';

			this.UI(place);

		}
	};

	//config.macros.bewertungversion.fehlersprung = null;
	config.macros.bewertungversion.selFs = null;

	config.macros.bewertungversion.UI = function(place) {
		var i;
		var fs = [3,3.5,4,4.5,5,5.5];
		var kurs = ["Leistungskurs", "Grundkurs"];
		var myOption;
		//var butLk, butGk;
		var butOk;
		var butLkContainer, butGkContainer;
		var bvaContainer;
		var outputLk, outputGk;

		var uiContainerL, uiContainerM, uiContainerR;
		var uiContainer1, uiContainer2;

//		var cssText = "#uiContainerL {float: left; width: 160px; padding:10px; background: #eeeeee}\n" +
//								"#uiContainerM {float: left; width: 50px; padding:10px; background: #fff;}\n" +
//								"#data {float: left; margin-left: 50px;}\n"+
//								".bv_be_header {font-weight: bold;}\n"+
//								".bv_be_data0 {text-align:center;}\n"+
//								".bv_be_data1 {text-align:center; color: black; background-color: #eeeeee;}";
//		store.saveTiddler("StyleSheet","StyleSheet",cssText);

		bvaContainer = createTiddlyElement(place,"div","bewertungversion");

		uiContainerL = createTiddlyElement(bvaContainer,"div","uiContainerL");
		uiContainer1 = createTiddlyElement(uiContainerL,"div");
		createTiddlyText(uiContainer1, "Fehlersprung: ");
		this.selFs = createTiddlyElement(uiContainer1,"select","selFs");
		for (i=0; i<fs.length; i++) {
			myOption = createTiddlyElement(this.selFs,"Option");
			myOption.text = fs[i];
			myOption.value = fs[i];
		}
		this.selFs.selectedIndex = 2;	// Preselection auf 4 Fehler
		createTiddlyText(uiContainer1, " Fehler");
		uiContainer2 = createTiddlyElement(uiContainerL,"div");
		createTiddlyText(uiContainer2, "Kurs: ");
		this.selKurs = createTiddlyElement(uiContainer2,"select","selKurs");
		for (i=0; i<kurs.length; i++) {
			myOption = createTiddlyElement(this.selKurs,"Option");
			myOption.text = kurs[i];
			myOption.value = kurs[i];
		}
		this.selKurs.selectedIndex = 0;

		uiContainerM = createTiddlyElement(bvaContainer,"div","uiContainerM");
		butOk = createTiddlyElement(uiContainerM,"input");
		butOk.setAttribute("type","button");
		butOk.setAttribute("name","butLK");
		butOk.setAttribute("value", "OK");
		butOk.setAttribute("onclick","config.macros.bewertungversion.writeData();");

		uiContainerR = createTiddlyElement(bvaContainer,"div","data");

	};

	config.macros.bewertungversion.writeData = function() {
		var beMax = 50; // max. Bewertungseinheiten
		var iClass = 0;
		var iLimit = 1;
		var iNote = 1;
		var deltaBEN;
		var fs = 0;
		var delta, delta0, deltaInt, deltaRest;
		var j = 1;
		var bClass = 0;
		var gradeLimit = [];
		var dataBE = [];
		var dataN = [];
		var data = [];
		var dataField = ["Bewertungseinheiten","Note","Fehler"];		// Table header fields
		var myClass = ['bv_be_data0','bv_be_data1'];
		var tbody;

		this.kurs = this.selKurs.options[this.selKurs.selectedIndex].text;

    switch(this.kurs) {
			case 'Leistungskurs':
				beMax = 50;
				gradeLimit = [beMax+1,45,39,32,25,17,1];
				break;
			case 'Grundkurs':
				beMax = 40;
				gradeLimit = [beMax+1,36,31,26,20,13,1];
				break;
		}

		this.fehlersprung = this.selFs.options[this.selFs.selectedIndex].text;
		//alert(this.fehlersprung);

		(function initTable() {
			var i, k;
			var mydata, tbl, thead, theadr, tr, td;
			mydata = document.getElementById("data");
			mydata.innerHTML = ""; // Delete old content

			tbl = createTiddlyElement(mydata,'table',null,null,null,"");
			thead = createTiddlyElement(tbl,'thead',null,null);
			theadr = createTiddlyElement(thead,'tr');

			for(i=0; i<3; i++) {
				createTiddlyElement(theadr,'th',null,'bv_be_header',dataField[i]);
			}
			tbody = createTiddlyElement(tbl,'tbody');
		})();

		for (i=beMax-1;i>=0;i--) {

			dataBE[i] = i+1;
			dataN[i] = iNote;
			deltaBEN = gradeLimit[iLimit-1]-gradeLimit[iLimit]; //number of BE 

			if (iNote == 6) {
				delta0 += 0.5;		// Vorgabe Renate ab Note 6
			} else {
				delta0 = j*parseFloat(this.fehlersprung)/deltaBEN +fs;
			}
			 
			//delta0 = fs; 
			//deltaInt =  Math.ceil(delta0);
			deltaInt =  Math.floor(delta0);
			deltaRest = delta0 - deltaInt;
			// rounding to 0.25
			if (deltaRest >= 0.5) {
				if (deltaRest >= 0.75) {
					deltaRest = 1.0;
				} else {
					deltaRest = 0.5;
				};
			} else {
				if (deltaRest >= 0.25) {
					deltaRest = 0.5;
				} else {
					deltaRest = 0.0;
				};
			}
			delta = deltaInt + deltaRest;

			// Kontrollausgabe der nicht gerundeten Werte
			//addRowToTable(dataBE[i],dataN[i],delta, delta0.toFixed(1));

			data[0] = dataBE[i];
			data[1] = dataN[i];
			data[2] = delta;
			addRowToTable(data,myClass[bClass]);

			j += 1;	
			if (dataBE[i]==gradeLimit[iLimit]) {
				//alert("gradeLimit[iLimit]: "+gradeLimit[iLimit]+", iLimit"+iLimit);
				iNote += 1;
				iLimit += 1;
				bClass += 1;
				if (bClass>1) bClass = 0;
				j = 1;
				fs += parseFloat(this.fehlersprung);
				//fs += gradeLimit[iLimit-1]-1-gradeLimit[iLimit];
			}
		}

		function addRowToTable(data, datClass) {
			var i;
			tr = createTiddlyElement(tbody,'tr');
			for(i=0; i<3; i++) {
				td = createTiddlyElement(tr,'td',null,datClass,null);
				createTiddlyText(td,data[i]);
			}
		}

	};

	config.macros.bewertungversion.writeGk = function() {
		this.fehlersprung = this.selFs.options[this.selFs.selectedIndex].text;
	};

} //# end of "install only once"
//}}}
/*{{{*/
#uiContainerL {float: left; width: 160px; padding:10px; background: #eeeeee;}
#uiContainerM {float: left; width: 50px; padding:10px; background: #fff;}
#data {float: left; margin-left: 50px;}
.bv_be_header {font-weight: bold; background: #3372A3; color:#fff;}
.bv_be_data0 {text-align:center;}
.bv_be_data1 {text-align:center; color: black; background-color: #eeeeee;}
/*}}}*/
*[[ISB: bayern-bilingual|www.bayern-bilingual.de]]<br>Ansprechpartner am ISB: Herr ~StR Koller (josef.koller@isb.bayern.de)
*[[CLIL-Cascade-Network (CCN)|http://ccn.infoweb.as.tietotalo.fi/English.iw3]]
Encrypted(3023297699B8B61D04DD7167E764D7A671C56DF9)
1073156bb0e16673a12133392188f721313630219bbc81499c23071c3791ae6a5f
011d684d60f08468bb52e3a3f5234b67f347213333214c9c81f039c061289e47
e481c2c1deb25974fd11fa8e82ce9aba3ba9afbebb082133392110db159077b9
1d5edd29a9777f18d4a2f67fadb2fc982131363021be4e522639d6bea69c1c8e
dc146ca8b05c5e54f2a7fca6395180c9d921333921e323def738fead6103c49d
213921a7be92ba664465c1a87ad791b620e9e8e46cbf9ecde7a421313121a6a7
2a583fbc0fee9de21ac7e846f83302f3207f583a7f9a0f0794c78f91335490cb
ab8abe7aa3564537b01d8d0e671e19a55d31f17dd0d4213131211b2c42ad05c8
4c52d786bf883270af76a6929459f225827742c386ef9258d03152f82ab7678d
6d855c48868421333421dcb92c25ff3886e79f0717ab186c38db576015f4854e
e424523fad3551a4cd6c659079b85d6ca5d0
/*{{{*/
/*	Default stylesheet for the Carpe Slider
	By Tom Hermansson Snickars                 
	2005-12-17 version 1.5
	Copyright CARPE Design                     
	carpe.ambiprospect.com
*/
*.carpe_horizontal_slider_display_combo {
	clear: left;
	margin: 0;
}
*.carpe_vertical_slider_display_combo {
	float: left;
	margin: 0;
}
*.carpe_horizontal_slider_track {
	background-color: #bbb;
	color: #333;
	/*width: 120px;*/
	width: 240px;
	float: left;
	margin: 0;
	line-height: 0px;
	font-size: 0px;
	text-align: left;
	padding: 4px;
	border: 1px solid;
	border-color: #ddd #999 #999 #ddd;
}
*.carpe_vertical_slider_track {
	background-color: #bbb;
	color: #333;
	padding: 3px 6px 15px 6px;
	width: 24px;
	height: 100px;
	border: 1px solid;
	border-color: #ddd #999 #999 #ddd;
}
*.carpe_horizontal_slider_track *.carpe_slider_slit {
	background-color: #333;
	color: #ccc;
	/*width: 110px;*/
	width: 230px;
	height: 2px;
	margin: 4px 4px 2px 4px;
	line-height: 0px;
	position: absolute;
	z-index: 1;
	border: 1px solid;
	border-color: #999 #ddd #ddd #999;
}
*.carpe_vertical_slider_track *.carpe_slider_slit {
	background-color: #000;
	color: #333;
	width: 2px;
	height: 100px;
	position: absolute;
	margin: 4px 10px 4px 10px;
	padding: 4px 0 1px 0;
	line-height: 0px;
	font-size: 0;
	border: 1px solid;
	border-color: #666 #ccc #ccc #666;
}
*.carpe_horizontal_slider_track *.carpe_slider {
	width: 16px;
	background-color: #666;
	color: #333;
	position: relative;
	margin: 0;
	height: 8px;
	z-index: 1;
	line-height: 0px;
	font-size: 0px;
	text-align: left;
	border: 2px solid;
	border-color: #999 #333 #333 #999;
}
*.carpe_vertical_slider_track *.carpe_slider {
	width: 20px;
	background-color: #666;
	color: #333;
	position: relative;
	margin: 0;
	height: 8px;
	z-index: 1;
	line-height: 0px;
	font-size: 0px;
	text-align: left;
	border: 2px solid;
	border-color: #999 #333 #333 #999;
}
*.carpe_slider_display_holder {
	background-color: #bbb;
	color: #333;
	width: 34px;
	margin: 0;
	float: left;
	padding: 0 2px 0 0;
	height: 20px;
	text-align: right;
	border: 1px solid;
	border-color: #ddd #999 #999 #ddd;
}
.carpe_slider_display {
	background-color: #bbb;
	color: #333;
	padding: 3px 1px 0 0;
	width: 30px;
	text-align: right;
	font-size: 11px;
	line-height: 10px;
	font-family: verdana, arial, helvetica, sans-serif;
	font-weight: bold;
	border: 0;
	cursor: default;
}

.carpe_slider_ok_button {margin-left:20px;}

/*}}}*/
Encrypted(852D23287C2B171E5D80616A3C84D87C112B14B3)
7d36ae249f5128d8ad484a9ce04c231280f9bd14cd603cd50e4a881526e3aa8221
3136302182ab96eeb1a7660e1002213333211be22131363021f47f97eb939ea4
2ff09052b682119cc56732724ef9f3764ac40477a421313221fedeb92a43a57e
12ea3691bed27c4dae877cd79dd34cf6f148aa21313321b25fd9816d2e7c3a41
942ba79b88ed47f5b92131312165568646e55a2e58a9efd9d4bfb365199b2601
1f08636d3b2a32fce5abfde3784e349ea32a011860b78e0e7ead4df2b2213133
211984f5e7822133332138351ced87d75312a6053d08949b675bf3bde58eaad4
29a8fe7a4a2d5fc179f9801e49a42d91b55ea4bf36ef624979655274138af65b
21302143497d17e12131363021f7192f756f5cfb8a8fdee8d6865987d0cb8396
21313221aa53ab425d6102a18fd55299c896a6143975bdba4c898958ac398c32
2b882131302161d3eefd13b05b2f367635cba3213333212ca3448adc1a9c5c8e
1e30be3bc53a16df32af140f61b538ff3252a6198b566702f9b80e85ae7c082d
a9a16182654621313021f3cb285e2133332133b0fd2adbad50cb4e82d1fedc33
462c3234faadf0546de8e8c032b1ac62b6ec4b52e4a7ee31a881fe71c6e39ee3
21333921a114bbe3518b482d114d3a1f9831733511b5c73ecbf0d39cb792613f
671fd45815287eb02f0ec752c1a1baf2f12cc8c0e237e06cf7e6f6d649a6286f
9c88b0c325727fad26

[[Google News]]
|!Format|!Markup|!Example|
|''Headings''|{{{!!Heading 2}}}<br />{{{!!!Heading 3}}}<br />{{{!!!!Heading 4}}}<br />{{{!!!!!Heading 5}}}<br /><br />Usually avoid Heading1 as Tiddler titles are nominally Heading1.|<html><h2>Heading 2</h2><h3>Heading 3</h3><h4>Heading 4</h4><h5>Heading 5</h5></html>|
|''Lists''|{{{*Bulleted list}}}|<html><ul><li>Bulleted List</li></ul></html>|
|~|{{{#Numbered list}}}|<html><ol><li>Numbered List</li></ol></html>|
|~|Definition list<br />{{{;Term}}}<br />{{{:definition}}}|<html><dl><dt>Term</dt><dd>definition</dd></dl></html>|
|~|Lists can be mixed and nested<br />{{{*}}}Bullet<br />{{{*#}}}Number<br />{{{*#;}}}Item<br />{{{*#:}}}Definition|<html><ul><li>Bullet<ol><li>Numbered<dl><dt></dt>Item<dd>Definition</dd></dl></li></ol></li></ul></html>|
|''Block quotes''|{{{>Blockquote}}}<br />{{{>>Nested quote}}}|<html><blockquote>Blockquote<blockquote>Nested<br/> quote</blockquote></blockquote></html>|
|~|{{{<<<}}}<br />{{{multi-line}}}<br />{{{blockquote}}}<br />{{{<<<}}}|<html><blockquote>multi-line<br/>blockquote</blockquote></html>|
|''Horizontal Rule''|{{{----}}} (4 dashes on a line of their own)|<html><hr></html>|
|''Links''|Any {{{WikiWord}}} creates a link to a tiddler (whether it exists or not).<br />Note that a WikiWord has to start with a capital letter and have a further mix of upper and lower case.|[[WikiWord]]|
|~|Manual link<br />{{{[[Table of Contents]]}}} (Especially for tiddlers with spaces in their titles)|[[Table of Contents]]|
|~|{{{[[Pretty Link|Link]]}}}|[[Pretty Link|Link]]|
|~|Automatic external link {{{http://www.tiddlywiki.com}}}|http://www.tiddlywiki.com|
|~|Pretty external link<br />{{{[[My Home Page|http://www.tiddlywiki.com]]}}}|[[My Home Page|http://www.tiddlywiki.com]]|
|~|OS Folder link<br />Windows Share: {{{file://///server/share}}}<br />Windows Local: {{{file:///c:/folder/file}}}<br />Un*x Local File: {{{file://folder/file}}}<br />Relative File: {{{[[folder/file]]}}}|file://///server/share <br />file:///c:/folder/file <br />file://folder/file <br /> [[folder/file]]|
|''Images''|{{{[img[favicon.ico]]}}}<br />Note that image files are always external to the TW file|[img[http://www.tiddlywiki.com/favicon.ico]]|
|~|Right aligned<br />{{{[>img[favicon.ico]]}}}|[>img[http://www.tiddlywiki.com/favicon.ico]]|
|~|Left aligned<br />{{{[<img[favicon.ico]]}}}|[<img[http://www.tiddlywiki.com/favicon.ico]]|
|''Image Links''|{{{[img[fav.ico][TiddlerName]]}}}|[img[http://www.tiddlywiki.com/favicon.ico][TiddlerName]]|
|~|{{{[img[fav.ico][Alias|TiddlerName]]}}}|[img[http://www.tiddlywiki.com/favicon.ico][Alias|TiddlerName]]|
|~|{{{[img[fav.ico][http://www.aa.com]]}}}|[img[http://www.tiddlywiki.com/favicon.ico][http://www.tiddlywiki.com]]|
|~|>|also see ''Links'' and ''Images'' sections in this table|
|''Inline''<br />''Comments''|{{{Not shown: /% hidden comment %/}}}<br />Text between the markers will not be shown|Not shown:/% hidden text %/|
''Right click'' on the following download link and select "Save link as..." or "Save target as...". Save the downloaded file on your desktop (or anywhere you like) then double click it to start using it.

{{downloadLink{[[Download|http://aux.saugeon.de/wlseng/index.html]]}}}
Encrypted(F31F63EC5ECF4A82A8926E9B67C8F17D4F77D222)
b0367bffc2f94e2bb0e0ff4f335ad7e7b3cabfddea9a8183213334216d0824baf5
2458aadf20367af9b44858962e1930a6699f1d2aea441f213021b3b3dab346f3
b767010e8543154c35012131322151a458e80402754ae2d821313021b57c2131
332173d19dff91547cbbfe9a6824d5c568c816c8d0e1cef5a9cfc6e321333421
11cc10b10e21333921c5a7bdc3edaa79e02381f2ee56c5c9edb00821392161aa
5acbcb57a516aa8831e790505d83213021ff1cf54ecca728cd40ba8af51c593e
25232f
Die Schülerinnen und Schüler der 6. und 7. Jahrgangsstufen unserer Schule wollen zusammen mit ihren Englischlehrern am 6. Mai 2010 am europaweit durchgeführten Englischwettbewerb - The Big Challenge - teilnehmen.
The Big Challenge wendet sich an Schülerinnen und Schüler der 5. bis 8. Klassen aller Schulformen. Die Schülerinnen und Schüler beantworten dabei einen ~Multiple-Choice-Fragebogen mit 54 Fragen zu Wortschatz, Grammatik, Phonetik und Landeskunde. Aus vier möglichen Antworten muss jeweils die richtige Antwort angekreuzt werden.
Der Test findet am 6. Mai 2010 in der Schule statt und die Testdauer beträgt 45 Minuten. Das Anforderungsniveau ist auf die jeweilige Jahrgangsstufe abgestimmt. Der Test wird ausgewertet, aber ''nicht bewertet''. (Keine Noten!)
!!Training
Die Schülerinnen und Schüler können und sollen zu Hause auf der Website http://www.thebigchallenge.com/de für den Wettbewerb üben. Das Übungsmaterial ist vielseitig, anregend und interessant; es ist von den Schülern, die am ~Big-Challenge-Wettbewerb 2009 teilgenommen haben, mit Begeisterung aufgenommen worden.
Außerdem bietet es hervorragende Übungsmöglichkeiten für Wortschatz und Grammatik, von denen die Schüler auch im weiteren Englischunterricht profitieren können.
!!Die Preise
Jede teilnehmende Schülerin / jeder teilnehmende Schüler erhält eine Urkunde und ein Geschenk. Zusätzlich werden Ranglisten auf Schul-, Landes- und Bundesebene erstellt. So hat jeder Schüler die Chance, sich einen der oberen Plätze in der Rangliste zu erarbeiten und einen wertvollen Sondergewinn (Sprachreisen, Wörterbücher, Lektüren etc.) zu gewinnen. ·
!!Kosten
Die Teilnahme am Wettbewerb kostet pro Schülerin / Schüler 3,00 Euro. Mit diesem Geld werden vorwiegend die Kosten für das online zur Verfügung gestellte Übungsmaterial gedeckt.

Wiltrud Ehrlich
(Koordinatorin für The Big Challenge 2010)
Encrypted(9E5ABDC0165B992AFB8F4B0564D5EAF3556CCDDD)
03617fc0fd97449da2fa63fd012376fcd3e2475cae93fffa9221313021316aa321
33342184875e679bb27f744bb2fbf9c12131363021f5f25b5a79213921eab7ca
d47738c12f2bbcdccd3033b4213339216aab1dca2f7c6c9a8251213334213186
532133332144a242a4a8213130213821313021f1dd45ada97cec636ef5f4fa73
746121313221a51eda7602639f59a1b7867de372a643d1933d055256b7213131
21b4bd68611699584697e5a973b058ec64392a50be397a478b557c5f78f334bb
9e9dac12463295758ebb503f21313021f815845a1e54d8dede978a038991a8
Encrypted(B3A121875C15A0D0E0E85C400EEEA7C93B55E96B)
5bd6bc4292472131363021cc86f99ac7abf1c7de62bcd255bcece9c541b3ca734e
8a44ee7ed094fbb63226112130215be348eb5bd237aa36825f1082c72b94e2ab
8cb1c83be57b5733235446c0cef2402045299885ac62f3381d2ff66efd
*[[Wikipedia|http://en.wikipedia.org/wiki/Main_Page]]
*[[Encyclopedia Britannica|http://www.britannica.com/]]
|sortable|k
|!Nr|!Typ|!Titel|!Untertitel|!Verfasser|!Verlag|!Jahr|!Sonstiges|!SJ|h
|1||Cool Songs|Creative language activities with pop songs|Plitsch, Axel||2001|mit CD||
|2||Song Line|22 hits|Plitsch, Axel||1993|mit CD||
|3||The cambridge Guide to Englisch Usage||Peters, Pam|CUP|2004|||
|4||Advanced grammar and vocabulary|Student's Book|Skipper, Mark||2002|mit CD||
|5||Advanced grammar and vocabulary|Teacher's Book|Skipper, Mark||2002|mit CD||
|6||Essential Grammar in Use||Murphy, Raymond|CUP|1990|||
|7||Endlich verständlich|English Grammar Teil II, Klassen 7/8|van der Avoort, Birgit||2003|||
|8||Jeden Tag ein bißchen besser – Englisch|8. Schuljahr|Preedy, Ingrid; Seidl, Brigitte||1999|||
|9||A Crash Course in English Grammar||Davis John F.||2000|||
|10||Grundkurs Cultural Studies / Kulturwissenschaft Großbritannien||Sommer, Roy||2003|||
|11||That's it|Commercial Correspondence|Horstmann, Jürgen; Richardson, David Alan||1995|||
|12||Ireland Beyond the Troubles||Dickel, Horst; Holfter, Gisela||2003|dazu: Lehrerhandbuch||
|13||English: London|7. / 8. Schuljahr. Kopiervorlagen und Materialien|Diehl, Reiner; Petilliot-Becker, Ilse||2000|||
|14||Good News, Bad News|New Stories for Listening and Discussion|Barnard, Roger||1997|||
|15||Around the Year||Schanz-Hering, Brigitte||1994|||
|16||Taboos and Issues||MacAndrew, Richard; Martinez, Ron||2001|||
|17||Instant Grammar Lessons|Photocopiable Lessons for Intermediate Classes|Battersby, Alan||2002|||
|18||East is East|Film Studies in the Classroom|Porteons-Schwier, Gunthild; Ross, Ingrid||2007|mit CD|2007/08|
|19||Poems Plus|Selected Poetry and New|Steinkamp, Hildegard; Werlich, Egon||2007||2007/08|
|20||Project Work||Fried-Booth, Diana L.||2002|||
|21||Englisch Training|Hörverstehen 10. Klasse||||||
|22||American & English Christmas Songs|Modern and traditional||||||
|23||Quartettspiel|In Anlehnung an English G, 2000, Bd. 1, für Kl. 5 und 6||||||
|24||Unterrichtskonzepte Englisch Literatur|||Stark||||
|25||English and American Poetry||Künne, Wolf|Klett||dazu: Interpretations||
|26||The Norton Anthology of American Literature|6th edition||||5 Bände||
|27||NTC's Dictionary of Literary Terms||Morner, Kathleen; Rausch, Ralph|||||
|28||NTC's American English Learner's Dictionary||Spears, R.A.|||||
|29||Bildliche Redewendungen Englisch|||Langenscheidt||||
|30||Englisch im Alltag|||||||
|31|Book|Poems Plus|Selected Poetry Old and New||Cornelsen|2007|||
|32||Unterrichtsmodell|Roman Polanski: Macbeth||Schöningh||||
|33||Essential Shakespeare Handbook||Dunton-Dawner, Leslie; Riding, Alan; Kindersley, Dorling||2004|||
|34||Dictionary of Shakespeare||McConell, Louise||2000|||
|35||Uniwissen: Shakespeare und seine Zeit||Baumann, Uwe|Klett|2003|||
|36|Book|Film Studies in the Classroom: East is East|||Cornelsen|2007||2007/08|
|37|Book|English G 2000 Band 2|Handreichungen für den Unterricht||Cornelsen||dazu: CD||
|38|Book|New Context|Ausgabe B||Cornelsen||||
|39|Book|New Context|Language and Skills Trainer||Cornelsen||||
|40||The New Top Line|||Klett||dazu: Teacher's Book||
|41||Gemeinsamer Europäischer Referenzrahmen für Sprachen|||Langenscheidt||||
|42||Maxi Training 9. und 10. Schuljahr|Das große Trainingsbuch Englisch||Klett|2004|||
|43||Successful Writing|(Upper Intermediate)|Evans, Virginia|Express Publishing|1998|dazu: Teacher's Book||
|44|Game|Quartettspiel: All Fours 1|(für Klasse 5 / 6)||Cornelsen||||
|45||Project Work||Fried-Booth, Diana L.|Oxford|2002|||
|46||Green Line New, Bayern, Schülerbuch CD|Green Line 1 – 5||Klett||||
|47||Green Line New, Bayern, Trainingsbuch|Schulaufgaben 1,2,3,4,5||Klett||||
|48||Green Line New, Bayern, Bd. 5, Workbook mit Lernsoftware|||Klett||||
|49||Green Line New, Bayern, Bd. 5, Lehrerbuch|||Klett||||
|50|Book|Englisch G, Band 5, Schulaufgabentrainer|||Cornelsen||||
|51|Book|Toolbox English G 2000|||Cornelsen||||
|52|CD|Stories From Around the World|||Cornelsen||||
|53||Ready for CAE. Coursebook|Student's Book|Norris, Ray|Hueber; Macmillan||||
|54||Ready for CAE. Workbook with Key||Norris, Ray; French, Amanda|Hueber; Macmillan||||
|55||Ready for CAE. Teacher's Book||Sunderland, Peter; Morris, Claire|Hueber; Macmillan||||
|56||Timesaver photocopiable: Speaking Activities|Pre-intermediate – Advanced||Scholastic|2005|||
|57||Timesaver photocopiable: 40 Combined skills|Lessons for the Common European Framework||Scholastic||||
|58||Timesaver photocopiable: Read and React|Beginner – Intermediate||Scholastic||||
|59||Timesaver photocopiable: Picture Prompts|Elementary – Intermediate||Scholastic||||
|60||Timesaver photocopiable: Extracts 2|||Scholastic||mit CD||
|61||The Internet an Young Learners||Lewis, Gordon|Oxford||||
|62||Internet English|www-based communication activities|Gitsaki, Ch.; Taylor, R.P.|Oxford||||
|63||Internet English: Teacher's Book||Gitsaki, Ch.; Taylor, R.P.|Oxford||||
|64|Book|Englischstudium und Internet|Anglistik, Amerikanistik||Cornelsen||||
|65|Book|Computer, Internet & Co. |im Englischunterricht|Hobrecht, P. (Hrsg.)|Cornelsen||||
|66||Lessons with Laughter|Photocopiable lessons for different level|Woodward, G.|Thomson / Heinle||||
|67||Instant Discussions|Photocopiable lessons on common topics|MacAndrew, Richard|Thomson / Heinle||||
|68||Humanising your coursebook||Rinvolucri, M.|Delta|2002|||
|69|Book|20th Century Speeches|||Cornelsen||Text und CD||
|70|Book|Focus on Listening: Textheft mit Lösungen|Hörverständnisübungen||Cornelsen||||
|71|Book|Focus on Listening: Arbeitsbuch|Hörverständnisübungen||Cornelsen||||
|72|CD|Focus on Listening: CD|Hörverständnisübungen||Cornelsen||||
|73||Good News, Bad News: Teacher's Book and CD|New Stories for Listening and Discussion|Kisslinger, E.; Barnard, R.|Oxford||mit CD||
|74||Visual materials for presentation and practice||Byrne, D.|Hueber|1986|||
|75||Englisch: London||Diehl, R.|||||
|76|Book|Kopiervorlagen und Materialien|7. / 8. Schuljahr.|Petilliot-Becker, J.|Cornelsen|2003|||
|77||Timesaver: British History Highlights|||||mit Poster||
|78||More Audio Activities for Teens|Songs, monologues, dialogs etc.|Northrup, Linda|Klett|2000|mit CD||
|79||Audio Activities for Teens||Northrup, Linda|Klett|2000|mit CD||
|80||Listening Activities (2): Intermediate, Upper – Intermediate|Photocopiable Resource Book|Johnston, O.|ELI||mit 2 Audio CD's||
|81|Book|Advanced Listening Comprehension|Oberstufe||Cornelsen|2007||2007/08|
|82||Listening Activities (1): Elementary, Pre-Intermediate||Johnston, O.|ELI||||
|83|Book|Listen and Speak: Materialien zur Eurokom-Überprüfung|||Cornelsen|2006|mit 2 Audio CD's und Kopiervorlagen||
|84|Book & CD|Oxf.Learn.Thesaurus + CD EL|||Cornelsen|||2008/09|
|85|Book|CSEL: The Curious Incident of the Dog in the Night-Time|Textband mit Annotationen|Haddon, Mark|Cornelsen|||2008/09|
|86|Book|CSEL: The Curious Incident of the Dog in the Night-Time HRU|Handreichungen für den Unterricht|Haddon, Mark|Cornelsen|||2008/09|
|87|Book|CSEL: Heat and Dust|Textband mit Annotationen|Prawer Jhabvala, Ruth|Cornelsen|||2008/09|
|88|Book|CSEL: Heat and Dust HRU|Handreichungen für den Unterricht|Prawer Jhabvala, Ruth|Cornelsen|||2008/09|
|89|Book|Europäisches Portfolio der Sprachen|5.-9./10. Schuljahr, Grund- und Aufbauportfolio|Bundesländer|Cornelsen|||2008/09|
|90|Book|Europäisches Portfolio der Sprachen|Ordner|Bundesländer|Cornelsen|||2008/09|
|91|Book|Classroom Timesaver: Writing|2. - 3. Lernjahr|Berwick, Gwen; Thorne, Sydney|Cornelsen|||2008/09|
|92|Book|Classroom Timesaver: Vocabulary|1. - 3. Lernjahr|Bourdais, Daniele; Finnie, Sue|Cornelsen|||2008/09|
|93|Book|Classroom Timesaver: Vocabulary|Ab 4. Lernjahr|Woodward, Julie|Cornelsen|||2008/09|
|94|Book|Classroom Timesaver: Listening|Ab 4. Lernjahr|Greet, Judith|Cornelsen|||2008/09|
|95|Book|Classroom Timesaver: Reading Lessons|Ab 4. Lernjahr|Grisewood, Emma; Meyers, Juliet|Cornelsen|||2008/09|
|96|Book|Classroom Timesaver: Newspaper Articles to get Teenagers Talking|Ab 4. Lernjahr|Dainty, Peter|Cornelsen|||2008/09|
|97|Book|Role-Play Cards / Prompt Cards||Biermann, Günther; Bosenius, Petra|Cornelsen|||2008/09|
|98|CD|EG 21 1 Bristol Radio CD|||Cornelsen|||2008/09|
|99|Book|EG 21 1 Bristol Radio CD LH|||Cornelsen|||2008/09|
|100|CD|EG 2000 Youth Wave Intern. CD|||Cornelsen|||2008/09|
|101|Book|EG 2000 Youth Wave Intern. CD LH|||Cornelsen|||2008/09|
|102|Book & CD|Go Ahead 10 Aufg.-Trainer + CD|||Cornelsen|||2008/09|
|103|CD|EG GY BY(G8) 1 CD zum SB|||Cornelsen|||2008/09|
|104|CD|EG 2000 Radio Chester 1 CD|||Cornelsen|||2008/09|
|105|CD|Engl. Eleven 2000 Hör-CD|||Cornelsen|||2008/09|
|106||Cambr. Learn. Dict. Pb. + CD-ROM|||Klett|||2008/09|
|107||Idiomatic English in Context|||Klett|||2008/09|
|108||Strange Fruit|||Klett|||2008/09|
|109||Crossing Cultures|||Klett|||2008/09|
|110||Crossing Cultures, LB|||Klett|||2008/09|
|111||Sicher ins Abi Engl. SN, ST, TH, AH-CDR|||Klett|||2008/09|
|112||Loseblattsammlung Mediation|||Klett|||2008/09|
|113||The Truman Show BH|||Klett|||2008/09|
|114||Globalisation, Them.h. - CDR|||Klett|||2008/09|
|115||Globalisation, LB|||Klett|||2008/09|
|116||Sicher in die Oberstufe, AH-CDR|||Klett|||2008/09|
|117||Sicher in Grammatik, AH + Lösg.|||Klett|||2008/09|
|118||Unterrichten mit Moodle|Praktische Einführung in das ~E-Teaching|Hoeksema Kay; Kuhn, Markus|Open Source Press|2008||2008/09|
Encrypted(5BE0F58B174154F51776D25B5913086D6EFABF89)
7ef040f60507cf715bf21ec6b1e7120f42514e213131213014c5ec9a34808f45b0
36debe84d0be316ad3e050b0f69474e44b243701ebc8b3213339213e9b4ba708
c4d68a21313121a78eb116ab9de15a9bba21313630216ac412d5dbe2a7aea42e
8da58f67b61d447955a41fb0fea6d4bbb2ad2131302107d8c921313321d0518b
bdfaf794bee2f00f896e98bb03013852f4ea3c3a48874d6df6213333212e4d2d
34782131322108fc2fac5cca7e434398ee5f41b14f7304c7cf456f38d9dc2855
d1db942dbe652133342116500614fe7ac0a2c16f17822cb7c4f12324f77e52e9
4b0e1ac721313321f31ac8bdbac755b2af6bae8f7d1cd3c9b4abb38d25967295
12ae4e39957321313021014d94661e5814b32b9248ae62657074d28bfa3cd38a
545a3d1c5fe6b9a9633707f42d490398be1d771d16d40115a2c3432d866061b2
32f342d1d0eb265b0e3144c85a8a4e21333321c2661d62a1c77568e0f53d45af
56056b8bf65a2e5f14cf424553b5d8af4e14916206723abaaa2e87f69102357d
c2a3aa176f6314ad4799b14caac59821313021f721313021e820442a7c6dc1c7
f1517795ef61d138662131363021a301c3736d65dbb24ba897a26a4d4771e94a
a2882bd886b706de77fc8296464f8c1e799b21392125f581aa3c7311c5edac92
819aa7039efa213130214ea520bcdf351648ccb92c3a04fd17a838b0f1f5b023
883c5b0f41b8d0a52ab7d2b1208e5b5dad1110c2ef9c9e50daee4876166ec2d5
ac6e3d6ab3213333215e372671b4d095589523dc5ceaa72131332160e6ff3d3a
fbf2c523be4c6379255af14d2540df7c2b886a42d031b60f332dfb5a5d5d01c2
94570295c52dd858c648c726ddd26cf8c0a314ab404e99934df5638021313221
6b1c594bc1b18c2bdb98b0ba7c609c811366e680f0f49b8ec62a466dae213333
21051fac056196a1d87515786728861d2139218621313321f6fa3d74991e4d86
dfe12aca80d0d543a64fe1b8a1c1dc2b2fe282e9ac623eb22465213021bf4853
bcaa7bcce6a1f5839874e86ca6d6be7456072133392179d08c723afff9dd7ea2
13d7d4213136302121313221791d0e8e8842aaaef20f3950446a0f3c0e5bac24
5b53a6eb01d5b694239f6486157942b94d2131363021b1b637ad4ba5f23de09b
18c029f0ff7b5bd82f07f61d4ff6213131211731cb25b0c76679ed8fafae4072
802a152fe40651cdbcbd7a2ed38b8fcadad9a34624fc90651dfe396e8bc02dca
6f8421333321b8eed4563d454da841580535e9dae0ecf9b0160e89c09865e328
569883e6dc88afb0d10f01a6886c64db1e15243221313021ae81a8cc65fbd363
ba6e21333321cc4d15f324a87fec1a2a70640748241f74c7a1f75d55921a1f4f
ade9520e481deebe9d20ec6f674189abebfaeca387fcd3df1d169f86e8141a9f
e8fb8b1fdee860abf5947c4ed35dc5eab80280420e022131363021fcfa6db121
333321b362e6be7efe85d08596a54cbf34f794a9873733d63b842e16dbc23d81
d206213021c3062b2cb270d4fc2131363021772d1f07b432a315828ee4013678
a82131332133ce08b48ba382c2c2432089dc12b96570a6698075885c47be979b
308d872fbc43144be0176794cc1ff76c7631df7282370f213921331b8225997f
55d3068e04c74a16afdb6e5d68e0ebfe17f2e2081efce0d4fe7aba2e914d2131
302128f29067b8784277cfbc89ada93ac1cfc23c1af06e16b3fd213132215190
13ff21313021f932205919063ef1c564d4f3f65f7a78d1a602b2ffdd9cba2b17
ee43bf4ce1ce7d3b716f4d6dad30c097c0d0b91b059840d3213921ed750e04ef
70358658fb2010281e504a459c629721313321868b1588ed283631da3b47e530
1de156a33def2deee6a9011d63b72806d9be1d751e0261c363105f129fb24acc
5e64387a19b674c5250136cb7d7c066f86a60e7f19e71681fd547a572b4472d4
889c88cd75213131218aafbeecad459df6fdcc8692c177062ba452d9acd53ddc
f6c7652bb421302150f0213921c384f9298651b531f7d07a82c8effbf0e60f61
f7213021c85041574d71e86c7ed804bc8021333921ffa94d5e061eaa21313121
73ba3d2ced554d430615ac3ff1bde09dafd8806cfb0eb3f0a1616bbdd7206912
b07301637257932e6e21313021b7768ff3b3213021e5719439d12b4bae705c52
4e927e6cc93f8940311c213132213c993bf9f4195e7628316f382131363021f8
b83f9561f5b8cedb051a10595ae139622941ecf196ce2b21313121023c2862f1
d5936bfbb62aa561eb808e742dba8129e7246ff2aa698e95a6257faafd164ae9
b9419fb77118411d1c63ce69a35f9c41a4d5f3c3b67fb9213133216fd6cf8f64
6df6575306c666f7513a6f2131363021a83294b093d760c29571e852344d42e3
e9ffafe62b19e8a6983489649c7b8cb1e9710682b8f920b82a739753c0d12131
31216168d8198a55502c63481b62b2138f5b1ac944a67df0c250585c36213131
21e03551555f2630966bebfe88b22dc4108af4c75b59a4ffc6cc6e63283e9a59
0153f402efc539fb8deedae880239e24a2cab42b13656fd8213021dfe9a865f9
193ef7dd213334219901a8d77c381032f39e05ae7e6ec369213133211d377a45
1869dd213130212f93d518b5388c671377a64066d1f77149d87f51537c3fa1b4
2e03dfdaadf9d6f966678d817d7708ea7e13b7e189e23edb5a5a31fcec608e28
8c3163e3c87b5ae48a1f83c6f85b4e1db2f5c7610719545f4f58d5ee805f993b
77a8aaf55ec2158ba99b30deb37fa53f2383f596d3885c1f1a69a315bc6cef24
2cd3ab5507213339215fe870529e3cb3a5bd68b3a8ae4ebd408af1742ef54979
e29d483265adb2b3638f78ac517e2a021caf2131332170e9fd6e9a434d4cf69d
313b3df4c1237221313021299344028129561e72b33f662131312155a7c4e420
9065f2ae808ef023e814032350998cbcc531c1012131363021905cca8d139a1d
59f16298a365be71d29593a6182131312187d893d704213334214950cf71d497
84bb31a755c59e4ccf73a2cab12133342169be12121525db3ebf6d2b7a7dc087
2fd7ab4a989da720a43319a22e57120ee0749c591c18f72131363021f1193f2a
39fc619820e7f27e213132217237f4525cc094d6fb1025557d3ca91c28fdcdbb
2131322167384f702a391b692b52dd734ca149ec3a4390e18126b610d784c834
12106c2621392117d816791faf47ae7c469d21313121a9c5cbd4f8531dac6925
111b9dd66af0521b213021ce3de21b4cc8e24d21313630210388b59130ea3d74
d859d1affa63c85438ab53a97be7e91268d5b7ac954d71ded9920f121ead37ed
8c890675dd213921d371197b018e502ed1ee651730b0a1425dde15b9662cbb37
e8caf9e6f7729a72c9f4651a213333219628808d3e14923cc90e83bbf8aebf63
77aa5f8bec9e6b73295c016ca4d794404a28c121313221132471405ff50eae21
313021b9a7b5b43ec413c83ad7c40847ea4321392116baab48402131312179f0
d461e2d3c3213021809a4f884b213021d0309e2db12ca7cab06f73dd04d9c110
83122bcb94a9bfa2dc6d84bee12d2a710ebb1b5a44e92f7d6e7535a8d1fb7ec3
645625b05e4a75b7f42514cbe7c546e4e3cb137235373e4accf41cf93826b885
802510672130211b2130213a9a14c7a9f62c58c21d75b8f5d56ec21326589dc6
636c8fa537142a53f2949b391681528886de24b1b2aa933cf823987680ce18a8
a5da8b2ba22131332117bc759cf472e3be213333217e213132218b54e7d99a2f
cb21313121f776f551b664bd233ef00651ddc8a584bdd7c790a48c7e6d249052
f8d2d533126cbf2130219c524a13303e3d12ccc93d36d61345d48db2b9213136
30212130215a3d62f58e1667230ec921313121285521313221281ae1297173cf
e75b5fee3339127a9f08c7640244d3ac7ae59a82f02e6eba5cbdd0841beb066c
df1cbecc73265bc0eb0872d7616624fb3c539e10be66915871051552acbbc982
1f11b3a217cdebd5e18954aa1798c4bcf17c782b1d05db5c90a434867512f6ed
584ed2cd209032213921b1af1d2b9c203b3084bafd396e2fa51a69119e5ce5bc
4f20e9a43605b83f62c56fbc2988b05a34048d5b9e213131212dc61873f090f1
21313321b1fbefbf58e1c81355d1f28737ff6f1e7fdb667f49966be3eb31ff33
87a40f4e8a6c18213132211b175e779ef41c4983afc62ae9c62347b2965c9c87
6d534c16f06f6ca7ca13f3126a3d5b6791557691a214b583cf034e3c031146ce
d210649553769da9b7a876c810c344bd911a29064ebec85a7341b44ed1625fac
b92131312189082131322126fa6f718c3a1397552133332182d7948956946d2b
b03691d86cbbf4d629ce857b9489cb3a99b2ddc871a81bc4ee1765a47cc7f5bd
80861a993425861141ef6feb91b3d42cdb41719097dacfaeb6db2eb5a66a1303
1af55b1f6279905a172da3f5519f11f29671dd5449bb3a54ecf7b15de536ea6a
ae40bb3bbd213136302185c044b0fef4107b49f213a2ca213339212b62b8e728
07e698147eced631dcff3813844fe4901b7a453228cc4e922131312106b9fe21
3339212131322132e173a59682aee94866e97f0ede9034360679fc25678238a3
5fc9ac46a641341df44be8901c37a65280f5368186ad33213130211b013c9e43
33
Encrypted(13B20A7B7C01B190094960D3840F73EC5A7D24FF)
3dc73772b1545d5d2b31a88dbb3496694217e032dd7cbb5cf818b32131363021de
edc237a165dd213334217bdc7d6525b787c2489e42b2e2f340fd443334bddcd1
a7ca2b47a833a6cfc6c7c129dce7fe2cc99d1d6afe21313630214789d115bdf4
1b77a3f51f7e7270bcfadca5595230f546ace7e474a79f9dec57287317ccf5d5
b32401908e1ad3e9a7812e6bf03c59c475f1c4475dc02f519745acabf5085b8a
41bc4a63c758d487a719d26221333321ba7247e801acdc6b2131302130b52139
21ec76f83238bc9903472e8f465943bff08c7fbc213130214cb45a766f633638
6149b1a1d57ef755d19c85735d868bda0ec4e8ee5df774985a4756aca6c1c30f
f921313321bdfcfcc56640f77bf8c6d1e53dc44ecb3ba87c3ee87c2131363021
fd45032133342196afed1de4ba134b02ef7bda7b7f893e1c110895068c44c9df
b2f56a213334211e7bd25e43a6d56a64d1dc56f8a461d93c2d732fe26eeab3e5
6e507d7a37e2dd4cde8143e7132c359a9226b1ffee712133392183cf2ce0ce98
6c9bb2c4919cbd062d964240cad74bbe21313321d816af9e74c19790a1738fb7
01d0c429f41d99f9213921724f2d261567da10a655626c9ecefb9a3baaa240d2
5842994bb63993967d3f5e5195a1c1d5b76a9f21333421e181e7a772b1fa7c1e
9d741f074528e4dc5ce51df7cdb539a9fc6769b71cd02e71f9c9ff98b9c82131
3021021dd08eaa481962f1bb3f86971510e7dbbb60e133abef7f565b61dbee02
551eea516edcef26dd23d62131363021c8344394dd982eb7cc2e702921313121
ed30cf69e8bcca5d21313630212130217f48a955f81cb564d966d666d2195a55
516ac38fbf21313221d3f48c544051c47ff6368674448ebf38f24dd06383ab69
abed44733226adcf6c8ceee751c937cc3d6be21819b8fe08ea4bdffcf505ff06
e8aa9156b1245dff7fbb5bc6e0932131302117adf821313121b3f3fea61c648e
590f68cba8f1367ecfd0b0cb43be8d67db7d29452131363021e38b686b4dab12
81a7921d90213334214b724f3f9fbfce213021c7d7597510ce89c721313221be
db1afd928956074dfc1661f5d76ae13a2a07cbec898d213133217b9dabfad66c
e64843ce4c1f418c2e465d06213130212d9dcbde3e62b6a52d5021333921f971
213132219f8b5e10ef7b6221333421cb254aa423a172ca9ee73d2130213ae921
333921e9ad6d96b30f4e72213339219cc06e59035ed776927d4e4df49b971a47
97bf9c3ae2103aced3eca2e7fa7021313021a80396bcbc8275e41963b1342133
3921262c7cc2ffcf213130210faefe213021062995bb0821313321c667f24641
b94fa8dc18e19f4f6a2b21313021e53218cd345768479d8994c96b2f8fbf1df1
bdace2fe4ef351d89fe1bcab1a5281805917213333218228fb1a5a9f7cfa2133
392186b75461ddc1cadd4162213339218a61c4a54fa741341ac1f6bf7eff96e1
d452319aa15d8455dfa538f38c2001be6b4bbf5be88af4c6c3da6443203acd6f
97d0a3947a45b5159f79943ecdcc018178ed82d137b6ba6886db954590faddc6
a1a79bbcb1fe89adb18add0594bdf621313221de2f7397f7d039b9e5d1e0678f
86e68128a124f1aa04f95f24a801f2831fc391213133211dadccec2f21313021
3386f026b772bf2133342151bbae4f4148d3567b2133342101adb6213921682e
6f6339c32b1cbd733402c856b57a64ff1f39121dab1cfe213921822b85ba31a3
ee18ee442ac9ebb3f2213133213e21313221991321302169952fd5e0c9bfcf62
f29dd2ab959f2349753a64e654f7e5d0ef932a732133342107316453cf422f6c
41

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

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

window.framedLinks_createExternalLink=createExternalLink;
window.createExternalLink=function(place,url)
{
	var link=this.framedLinks_createExternalLink.apply(this,arguments);
	link.onclick=function(ev) { var e=ev?ev:window.event;
		var co=config.options; // abbreviation
		var here=story.findContainingTiddler(this);
		var enabled=co.chkFramedLinks || co.chkFramedLinksTag && here
			&& store.getTiddler(here.getAttribute("tiddler")).isTagged(co.txtFramedLinksTag);
		if (!enabled || e.ctrlKey || e.shiftKey || e.altKey) return; // BYPASS
		var p=this.parentNode; 
		var f=this.nextSibling?this.nextSibling.firstChild:null; // get the IFRAME... maybe...
		var w=co.txtFrameWidth; if (!w || !w.length) w="100%";
		var h=co.txtFrameHeight; if (!h || !h.length) h="80%";
		if (h.indexOf("%")) h=(findWindowHeight()*h.replace(/%/,"")/100)+"px"; // calc height as % of window
		var showing=f && f.nodeName.toUpperCase()=="IFRAME"; // does IFRAME really exist?
		var stretchCell=p.nodeName.toUpperCase()=="TD" && w.indexOf("%")!=-1 && w.replace(/%/,"")>=100;
		if (!showing) { // create an iframe
			link.style.display="block"; // force IFRAME onto line following link
			if (stretchCell) { p.setAttribute("savedWidth",p.style.width); p.style.width="100%"; } // adjust TD so IFRAME stretches
			var wrapper=createTiddlyElement(null,"span"); // wrapper for slider animation
			wrapper.setAttribute("url",this.href); // for async loading of frame after animation completes
			var f=createTiddlyElement(wrapper,"iframe"); // create IFRAME
			f.style.backgroundColor="#fff"; f.style.width=w; f.style.height=h;
			p.insertBefore(wrapper,this.nextSibling);
			function loadURL(wrapper) { var f=wrapper.firstChild; var url=wrapper.getAttribute("url");
				var d=f.contentDocument?f.contentDocument:(f.contentWindow?f.contentWindow.document:f.document);
				d.open(); d.writeln("<html>connecting to "+url+"</html>"); d.close();
				try { f.src=url; } // if the iframe can't handle the href
				catch(e) { alert(e.description?e.description:e.toString()); } // ... then report the error
				window.scrollTo(0,ensureVisible(wrapper));
			}
			if (!co.chkAnimate) loadURL(wrapper);
			else {
				var morph=new Slider(wrapper,true);
				morph.callback=loadURL;
				morph.properties.push({style: 'width', start: 0, end: 100, template: '%0%'});
				anim.startAnimating(morph);
			}
		} else { // remove iframe
			link.style.display="inline"; // restore link style
			if (stretchCell) p.style.width=p.getAttribute("savedWidth"); // restore previous width of TD
			if (!co.chkAnimate) p.removeChild(f.parentNode);
			else {
				var morph=new Slider(f.parentNode,false,false,"all");
				morph.properties.push({style: 'width', start: 100, end: 0, template: '%0%'});
				anim.startAnimating(morph);
			}
		}
		e.cancelBubble=true; if (e.stopPropagation) e.stopPropagation(); return false;
	}
	return link;
}
//}}}
<<tabs txtLinksTab2 "Oberstufe" "Oberstufe" G8Oberstufe "Mittelstufe" "Mittelstufe" G8Mittelstufe "Unterstufe" "Unterstufe" G8Unterstufe>>
* [[W-Seminare in der gymnasialen Oberstufe mit Leitfach ‚Fremdsprache’: Abfassung der Seminararbeit|http://www.wls-eng.de/media/Braeuer/200910/KMS_W-Seminar_FS_Seminararbeit-129_r.pdf]]
config.macros.gadget = {};

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

  elem.src= "http://www.gmodules.com/ig/ifr?url=" + params[0] + "&" + getParam(p,"prefs","");
  elem.height = getParam(p,"height","300");
  elem.width= getParam(p,"width","500");
  elem.style.border= getParam(p,"border","1");
 
  place.appendChild(elem);
};
!!Top News
<html>
<iframe frameborder="0" width="728" height="90" marginwidth="0" marginheight="0"
        src="http://www.google.com/uds/modules/elements/newsshow/iframe.html?topic=h&rsz=small&format=728x90">
</iframe>
<iframe frameborder="0" width="728" height="90" marginwidth="0" marginheight="0"
        src="http://www.google.com/uds/modules/elements/newsshow/iframe.html?q=BBC%20News&rsz=small&format=728x90">
</iframe>
<iframe frameborder="0" width="728" height="90" marginwidth="0" marginheight="0"
        src="http://www.google.com/uds/modules/elements/newsshow/iframe.html?topic=t&rsz=small&format=728x90">
</iframe>
<iframe frameborder="0" width="728" height="90" marginwidth="0" marginheight="0"
        src="http://www.google.com/uds/modules/elements/newsshow/iframe.html?topic=m&rsz=small&format=728x90">
</iframe>
</html>
!!Top News Videos
<html>
<iframe id="youtube_news_element_preview" frameborder="0" marginwidth="0" marginheight="0" border="0" style="border:0;margin:0;width:300px;height:250px;" scrolling="no" allowtransparency="true" src="http://www.google.com/uds/modules/elements/videonews/iframe.html?channel=google_news"></iframe>
<iframe id="youtube_news_element_preview" frameborder="0" marginwidth="0" marginheight="0" border="0" style="border:0;margin:0;width:300px;height:250px;" scrolling="no" allowtransparency="true" src="http://www.google.com/uds/modules/elements/videonews/iframe.html?channel=Euronews"></iframe>
<iframe id="youtube_news_element_preview" frameborder="0" marginwidth="0" marginheight="0" border="0" style="border:0;margin:0;width:300px;height:250px;" scrolling="no" allowtransparency="true" src="http://www.google.com/uds/modules/elements/videonews/iframe.html?channel=AssociatedPress"></iframe>
<iframe id="youtube_news_element_preview" frameborder="0" marginwidth="0" marginheight="0" border="0" style="border:0;margin:0;width:300px;height:250px;" scrolling="no" allowtransparency="true" src="http://www.google.com/uds/modules/elements/videonews/iframe.html?channel=WashingtonPost"></iframe>
</html>
 <html><a
  href="javascript:void(0)"
  onclick="story.closeAllTiddlers();story.displayTiddlers(null,['VERA 8','MainMenu'])"
 >This and That</a></html> 

/%<<openTiddlers text:"Schuljahr 2008/09" tiddlers:"'VERA 8'">>%/
!!Fach Englisch
[[ISB-Seite des Fachs Englisch (Ansprechpartner, Lehrpläne, Materialien, Publikationen...)|http://www.isb.bayern.de/isb/index.asp?MNav=0&QNav=8&TNav=1&INav=0&Fach=22]]
!!Kontaktbriefe
*[[Materialien im Fach Englisch und Liste aller ISB-Kontaktbriefe|http://www.isb.bayern.de/isb/index.asp?MNav=0&QNav=12&TNav=0&INav=0&Fach=22]]
*[[Sonderkontaktbrief 2006 (Lehrplanumfrage)|http://wls-eng.de/media/isb/Sonderkontaktbrief_2006.pdf]]
Die ~Web-Site der Fachschaft Englisch der [[Wilhelm-Löhe-Schule|http://www.wls-nbg.de/]] in Nürnberg wird mit ~Open-Source-Tools (z.B. Openoffice.org, PHP, ~MySQL, ~JavaScript, Gimp.. ) unter Linux erstellt und gepflegt. Das Content Management System (CMS) dieser ~Web-Site ist ein [[TiddlyWiki|http://www.tiddliwiki.com]] (Version <<version>>), integriert in die ~Web-Site des ~TYPO3-CMS der Schule.
!!Betreuung der ~Web-Site
Betreuerin der Site ist Frau ''Renate Saugeon'', 1. Fachbetreuerin für Englisch an der ~Wilhelm-Löhe-Schule Nürnberg. Sie können ihr hier eine ~E-Mail senden: renate (dot) saugeon (at) gmail (dot) com.
!!Erklärung
Mit dem Urteil vom 12. Mai 1998 hat das Landgericht Hamburg entschieden, dass man durch die Anbringung eines Links die Inhalte der gelinkten Seite ggf. mit zu verantworten hat. Dies kann - so das LG - nur dadurch verhindert werden, daß man sich ausdrücklich von diesen Inhalten distanziert. Für alle Links in den ~Web-Seiten der Fachschaft Englisch gilt deshalb:
>Wir haben keinen Einfluss auf die Gestaltung und Inhalte der gelinkten Seiten. Wir nehmen hiermit ausdrücklich Abstand von den Inhalten aller gelinkten Seiten auf dieser ~Web-Site und machen uns deren Inhalte nicht zu Eigen. Diese Erklärung gilt für alle angezeigten Seiten und für alle Inhalte der Seiten, die zu den angemeldeten Bannern und Links führen!
!!Copyright
Sollten auf diesen Seiten Texte, Bilder oder ~Multimedia-Inhalte zu sehen sein, die urheberrechtlich geschützt sind, so dass sie auch "nicht-kommerziell" hier nicht verwendet werden dürfen, bitten wir um Nachricht per ~E-Mail. Wir werden die Dokumente bzw. Links dann umgehend entfernen. Dies gilt auch für Personen, die auf Bildern aus dem Schulleben zu finden sind, und die nicht ausdrücklich der Veröffentlichung widersprochen haben. Gelegentlich ist die Herkunft einer Quelle unklar und ein Verfasser nicht ermittelbar. 
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.3|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|Insert Javascript executable code directly into your tiddler content.|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Documentation
>see [[InlineJavascriptPluginInfo]]
!!!!!Revisions
<<<
2008.06.11 [1.9.3] added $(...) function as 'shorthand' convenience syntax for document.getElementById()
2008.03.03 [1.9.2] corrected declaration of wikifyPlainText() for 'TW 2.1.x compatibility fallback' (fixes Safari "parse error")
2008.02.23 [1.9.1] in onclick function, use string instead of array for 'bufferedHTML' attribute on link element (fixes IE errors)
2008.02.21 [1.9.0] 'onclick' scripts now allow returned text (or document.write() calls) to be wikified into a span that immediately follows the onclick link.  Also, added default 'return false' handling if no return value provided (prevents HREF from being triggered -- return TRUE to allow HREF to be processed).  Thanks to Xavier Verges for suggestion and preliminary code.
|please see [[InlineJavascriptPluginInfo]] for additional revision details|
2005.11.08 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.InlineJavascriptPlugin= {major: 1, minor: 9, revision: 3, date: new Date(2008,6,11)};

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

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

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

// // $(...) function: 'shorthand' convenience syntax for document.getElementById()
//{{{
if (typeof($)=="undefined") { // avoid redefinition
function $() {
	var elements=new Array();
	for (var i=0; i<arguments.length; i++) {
		var element=arguments[i];
		if (typeof element=='string') element=document.getElementById(element);
		if (arguments.length==1) return element;
		elements.push(element);
	}
	return elements;
}
}
//}}}
/***
|Name|InlineJavascriptPluginInfo|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.3|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|documentation|
|Requires||
|Overrides||
|Description|Documentation for InlineJavascriptPlugin|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Usage
<<<
This plugin adds wiki syntax for surrounding tiddler content with {{{<script>}}} and {{{</script>}}} markers, so that it can be recognized as embedded javascript code.
<script show>
	/* javascript code goes here... */
</script>Every time the tiddler content is rendered, the javascript code is automatically evaluated, allowing you to invoke 'side-effect' processing and/or produce dynamically-generated content that is then inserted into the tiddler content, immediately following the script (see below).  By including the optional ''show'' keyword as the final parameter in a {{{<script>}}} marker, the plugin will also include the script source code in the output that it displays in the tiddler.  This is helpful when creating examples for documentation purposes (such as used in this tiddler!)

__''Deferred execution from an 'onClick' link''__
<script label="click here" title="mouseover tooltip text" key="X" show>
	/* javascript code goes here... */
	alert('you clicked on the link!');
</script>
By including a {{{label="..."}}} parameter in the initial {{{<script>}}} marker, the plugin will create a link to an 'onclick' script that will only be executed when that specific link is clicked, rather than running the script each time the tiddler is rendered.  You may also include a {{{title="..."}}} parameter to specify the 'tooltip' text that will appear whenever the mouse is moved over the onClick link text, and a {{{key="X"}}} parameter to specify an //access key// (which must be a //single// letter or numeric digit only).

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

In addition to loading the javascript from the external file, you can also use this feature to invoke javascript code contained within the {{{<script>...</script>}}} markers.  This code is invoked //after// the external script file has been processed, and can make immediate use of the functions and/or global variables defined by the external script file.
>Note: To ensure that your javascript functions are always available when needed, you should load the libraries from a tiddler that is rendered as soon as your TiddlyWiki document is opened, such as MainMenu.  For example: put your {{{<script src="..."></script>}}} syntax into a separate 'library' tiddler (e.g., LoadScripts), and then add {{{<<tiddler LoadScripts>>}}} to MainMenu so that the library is loaded before any other tiddlers that rely upon the functions it defines. 
>
>Normally, loading external javascript in this way does not produce any direct output, and should not have any impact on the appearance of your MainMenu.  However, if your LoadScripts tiddler contains notes or other visible content, you can suppress this output by using 'inline CSS' in the MainMenu, like this: {{{@@display:none;<<tiddler LoadScripts>>@@}}}
<<<
!!!!!Creating dynamic tiddler content and accessing the ~TiddlyWiki DOM
<<<
An important difference between TiddlyWiki inline scripting and conventional embedded javascript techniques for web pages is the method used to produce output that is dynamically inserted into the document: in a typical web document, you use the {{{document.write()}}} (or {{{document.writeln()}}}) function to output text sequences (often containing HTML tags) that are then rendered when the entire document is first loaded into the browser window.

However, in a ~TiddlyWiki document, tiddlers (and other DOM elements) are created, deleted, and rendered "on-the-fly", so writing directly to the global 'document' object does not produce the results you want (i.e., replacing the embedded script within the tiddler content), and instead will //completely replace the entire ~TiddlyWiki document in your browser window (which is clearly not a good thing!)//.  In order to allow scripts to use {{{document.write()}}}, the plugin automatically converts and buffers all HTML output so it can be safely inserted into your tiddler content, immediately following the script.

''Note that {{{document.write()}}} can only be used to output "pure HTML" syntax.  To produce //wiki-formatted// output, your script should instead return a text value containing the desired wiki-syntax content'', which will then be automatically rendered immediately following the script.  If returning a text value is not sufficient for your needs, the plugin also provides an automatically-defined variable, 'place', that gives the script code ''direct access to the //containing DOM element//'' into which the tiddler output is being rendered.  You can use this variable to ''perform direct DOM manipulations'' that can, for example:
* generate wiki-formatted output using {{{wikify("...content...",place)}}}
* vary the script's actions based upon the DOM element in which it is embedded
* access 'tiddler-relative' DOM information using {{{story.findContainingTiddler(place)}}}
Note:
''When using an 'onclick' script, the 'place' element actually refers to the onclick //link text// itself, instead of the containing DOM element.''  This permits you to directly reference or modify the link text to reflect any 'stateful' conditions that might set by the script.  To refer to the containing DOM element from within an 'onclick' script, you can use "place.parentNode" instead.
<<<
!!!!!Instant "bookmarklets"
<<<
You can also use an 'onclick' link to define a "bookmarklet": a small piece of javascript that can be ''invoked directly from the browser without having to be defined within the current document.''  This allows you to create 'stand-alone' commands that can be applied to virtually ANY TiddlyWiki document... even remotely-hosted documents that have been written by others!!  To create a bookmarklet, simply define an 'onclick' script and then grab the resulting link text and drag-and-drop it onto your browser's toolbar (or right-click and use the 'bookmark this link' command to add it to the browser's menu).

Notes:
*When writing scripts intended for use as bookmarklets, due to the ~URI-encoding required by the browser, ''you cannot not use ANY double-quotes (") within the bookmarklet script code.''
*All comments embedded in the bookmarklet script must ''use the fully-delimited {{{/* ... */}}} comment syntax,'' rather than the shorter {{{//}}} comment syntax.
*Most importantly, because bookmarklets are invoked directly from the browser interface and are not embedded within the TiddlyWiki document, there is NO containing 'place' DOM element surrounding the script.  As a result, ''you cannot use a bookmarklet to generate dynamic output in your document,''  and using {{{document.write()}}} or returning wiki-syntax text or making reference to the 'place' DOM element will halt the script and report a "Reference Error" when that bookmarklet is invoked.  
Please see [[InstantBookmarklets]] for many examples of 'onclick' scripts that can also be used as bookmarklets.
<<<
!!!!!Special reserved function name
<<<
The plugin 'wraps' all inline javascript code inside a function, {{{_out()}}}, so that any return value you provide can be correctly handled by the plugin and inserted into the tiddler.  To avoid unpredictable results (and possibly fatal execution errors), this function should never be redefined or called from ''within'' your script code.
<<<
!!!!!$(...) 'shorthand' function
<<<
As described by Dustin Diaz [[here|http://www.dustindiaz.com/top-ten-javascript/]], the plugin defines a 'shorthand' function that allows you to write:
{{{
$(id)
}}}
in place of the normal standard javascript syntax:
{{{
document.getElementById(id)
}}}
This function is provided merely as a convenience for javascript coders that may be familiar with this abbreviation, in order to allow them to save a few bytes when writing their own inline script code.
<<<
!!!!!Examples
<<<
simple dynamic output:
><script show>
	document.write("The current date/time is: "+(new Date())+"<br>");
	return "link to current user: [["+config.options.txtUserName+"]]\n";
</script>
dynamic output using 'place' to get size information for current tiddler:
><script show>
	if (!window.story) window.story=window;
	var title=story.findContainingTiddler(place).getAttribute("tiddler");
	var size=store.getTiddlerText(title).length;
	return title+" is using "+size+" bytes";
</script>
dynamic output from an 'onclick' script, using {{{document.write()}}} and/or {{{return "..."}}}
><script label="click here" show>
	document.write("<br>The current date/time is: "+(new Date())+"<br>");
	return "link to current user: [["+config.options.txtUserName+"]]\n";
</script>
creating an 'onclick' button/link that accesses the link text AND the containing tiddler:
><script label="click here" title="clicking this link will show an 'alert' box" key="H" show>
	if (!window.story) window.story=window;
	var txt=place.firstChild.data;
	var tid=story.findContainingTiddler(place).getAttribute('tiddler');
	alert('Hello World!\nlinktext='+txt+'\ntiddler='+tid);
</script>
dynamically setting onclick link text based on stateful information:
>{{block{
{{{
<script label="click here">
	/* toggle "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.innerHTML=on?"enable":"disable";
	config.txtSomething=on?"OFF":"ON";
	return "\nThe current value is: "+config.txtSomething;
</script><script>
	/* initialize onclick link text based on current "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.lastChild.previousSibling.innerHTML=on?"disable":"enable";
</script>
}}}
<script label="click here">
	/* toggle "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.innerHTML=on?"enable":"disable";
	config.txtSomething=on?"OFF":"ON";
	return "\nThe current value is: "+config.txtSomething;
</script><script>
	/* initialize onclick link text based on current "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.lastChild.innerHTML=on?"enable":"disable";
</script>
}}}
loading a script from a source url:
>http://www.TiddlyTools.com/demo.js contains:
>>{{{function inlineJavascriptDemo() { alert('Hello from demo.js!!') } }}}
>>{{{displayMessage('InlineJavascriptPlugin: demo.js has been loaded');}}}
>note: When using this example on your local system, you will need to download the external script file from the above URL and install it into the same directory as your document.
>
><script src="demo.js" show>
	return "inlineJavascriptDemo() function has been defined"
</script>
><script label="click to invoke inlineJavascriptDemo()" key="D" show>
	inlineJavascriptDemo();
</script>
<<<
!!!!!Revisions
<<<
2008.06.11 [1.9.3] added $(...) function as 'shorthand' convenience syntax for document.getElementById()
2008.03.03 [1.9.2] corrected declaration of wikifyPlainText() for 'TW 2.1.x compatibility fallback' (fixes Safari "parse error")
2008.02.23 [1.9.1] in onclick function, use string instead of array for 'bufferedHTML' attribute on link element (fixes IE errors)
2008.02.21 [1.9.0] 'onclick' scripts now allow returned text (or document.write() calls) to be wikified into a span that immediately follows the onclick link.  Also, added default 'return false' handling if no return value provided (prevents HREF from being triggered -- return TRUE to allow HREF to be processed).  Thanks to Xavier Verges for suggestion and preliminary code.
2008.02.14 [1.8.1] added backward-compatibility for use of wikifyPlainText() in TW2.1.3 and earlier
2008.01.08 [*.*.*] plugin size reduction: documentation moved to ...Info tiddler
2007.12.28 [1.8.0] added support for key="X" syntax to specify custom access key definitions
2007.12.15 [1.7.0] autogenerate URI encoded HREF on links for onclick scripts.  Drag links to browser toolbar to create bookmarklets.  IMPORTANT NOTE: place is NOT defined when scripts are used as bookmarklets.  In addition, double-quotes will cause syntax errors.  Thanks to PaulReiber for debugging and brainstorming.
2007.11.26 [1.6.2] when converting "document.write()" function calls in inline code, allow whitespace between "write" and "(" so that "document.write ( foobar )" is properly converted.
2007.11.16 [1.6.1] when rendering "onclick scripts", pass label text through wikifyPlainText() to parse any embedded wiki-syntax to enable use of HTML entities or even TW macros to generate dynamic label text.
2007.02.19 [1.6.0] added support for title="..." to specify mouseover tooltip when using an onclick (label="...") script
2006.10.16 [1.5.2] add newline before closing '}' in 'function out_' wrapper.  Fixes error caused when last line of script is a comment.
2006.06.01 [1.5.1] when calling wikify() on script return value, pass hightlightRegExp and tiddler params so macros that rely on these values can render properly
2006.04.19 [1.5.0] added 'show' parameter to force display of javascript source code in tiddler output
2006.01.05 [1.4.0] added support 'onclick' scripts.  When label="..." param is present, a button/link is created using the indicated label text, and the script is only executed when the button/link is clicked.  'place' value is set to match the clicked button/link element.
2005.12.13 [1.3.1] when catching eval error in IE, e.description contains the error text, instead of e.toString().  Fixed error reporting so IE shows the correct response text.  Based on a suggestion by UdoBorkowski
2005.11.09 [1.3.0] for 'inline' scripts (i.e., not scripts loaded with src="..."), automatically replace calls to 'document.write()' with 'place.innerHTML+=' so script output is directed into tiddler content.  Based on a suggestion by BradleyMeck
2005.11.08 [1.2.0] handle loading of javascript from an external URL via src="..." syntax
2005.11.08 [1.1.0] pass 'place' param into scripts to provide direct DOM access 
2005.11.08 [1.0.0] initial release
<<<
<<tabs txtNews "USA" "News / News Feeds USA" NewsUSA "England" "News / News Feeds England" NewsEngland "Scotland" "News / News Feeds Scotland" NewsScotland "Ireland" "News / News Feeds Ireland" NewsIreland "Canada" "News / News Feeds Canada" NewsCanada "Australia" "News / News Feeds Australia" NewsAustralia "New Zealand" "News / News Feeds New Zealand" NewsNewZealand "Germany" "News / News Feeds Germany" NewsGermany>>
RSS: Really Simple Syndication
<html>
<iframe src="https://www.google.com/calendar/embed?height=600&amp;wkst=1&amp;bgcolor=%23FFFFFF&amp;src=uv5hilpou69bsfnevbddm49n5c%40group.calendar.google.com&amp;color=%235229A3&amp;src=de.german%23holiday%40group.v.calendar.google.com&amp;color=%23528800&amp;src=cc2flvg28i3vpvgqcv279aso3s%40group.calendar.google.com&amp;color=%2328754E&amp;src=e_2_de%23weeknum%40group.v.calendar.google.com&amp;color=%235A6986&amp;ctz=Europe%2FBerlin" style=" border-width:0 " width="800" height="600" frameborder="0" scrolling="no"></iframe>
</html>
|>|!Kollegium Fachschaft Englisch|
|!Funktion|!Name|
||~Bender-Schmidt, Hannelore|
||Berwind, Tanja|
||Döhler, Tanja|
||Eckstein, Renate|
|Schüleraustausch (England, Schottland)|Ehrlich, Wiltrud|
||Feyerlein, Cornelia|
||Kleiber, Brigitte|
||Köhler, Ursula|
|2. Fachbetreuerin|Müller, Marion|
||~Müller-Mück, Ingeborg|
|1. Fachbetreuerin|Saugeon, Renate|
||Schäfer, Romina|
||Schmitt, Herbert|
||~Schubart-Pauli, Gabriele|
||Schubert, Klemens|
||Steinleitner, Martin|
||Wahnig, Brigitte|

!![[Sprechstunden der Lehrerinnen und Lehrer|http://www.wls-nbg.de/37.0.html]]
Encrypted(DB3EDC13CF0BC44C4BF41A42377F7A9D3DDD0963)
36f482e463c08e81ac117adc474942ec90213131219355a6dd33a7c0946ceb34a7
2133392173e270d6447eaedb6f7fec8f1987f9fc26773dff3dba72e27681b3ce
ebb374c72cf17e908acd2415213921b515d25306783ccb931534505761213133
217bc8ee7ae870fc96773dcd5107356a423f1696cc5bc798d17673d0346f7ad6
30482133392180f6d2ae6e7c9b7da6213334214e669d34aea444e555d1e17cca
a21a89e7e9d2891fd9d7818118b15010ce464cc2bf4c63ebabe5845b399f975c
2a94ac303cbad8df4843d901fabd64b977c0de5791d7bd64d21a28bfdb3e7a78
c2c75839d22dbe8949be6158e4ac0141c2f8365afc21333421a3d661a303b529
213021b45607d98c07ba7142a106b49492b13b481f07a7f056fffa4fea930f14
21333421e55a25d3fdac5dab24def7014086a4b67d7ed4cec4213921b9819328
06e9eaa336d644e35cfe5fdec9537ef444044684ceac2d967ae82f778b186dfd
85f05b41ef1dcb865021333421ace13a2562eb6d648cee638e4832d5d5a42131
3121f7213130219956ddd2213133218b950868bd0ffdc5b8f339c0935565b561
8cd288f6d0652131363021304b14f8c2d7fbba0e921d2871de43fddcc058b921
3921d0d7978edd63bd95de1b3d8b0ec079566ac0e3df36c78f3493049aaf36d7
8ff021333421fffa02765247f3a8a2c7dd1b1171e9ca558fc57dab4e8b9ecc6e
f7087bf51efaecd3408d8b69335e59489a903ed4858f98213921213130218a78
0419fa39e3a5abe816e5b317a8af968e8035b93a4e06465e31779db5b5c7fd7d
1a3169313a21392114d0c983d477166c964c4afe56f2752f21333321dffe07fb
20a5479ffd95ec4317d447949871fe1e9dc34b93ebcb21313121018873991e8f
ae2c21313630214539d8e52f72118dfc3d99f5b5421e97d961401606d25da836
e719cc87b4b2f8da12d41e0ef2213921ed5367968e5f83802044193d596d55b4
596cbc1d84325ca9f43d51de954caad8f90e319588489e58d7b2bc4837179716
5393edf9d71ef921313021721eb6ed611aa4c24a6e2bf884658dda4e4d4437be
573ae8fbbcfc17b0294170b0985c59df4596c76d6410fe8acd213921556d3fd3
9b24e45a050620c025a24a7fac6f52352f63ebd63e29076f4a1eb9981b3ad9b7
1af5c636d24c26e72f56213131217b7492a73894e811e645c521333321213133
2186748fa95cc93d64e01b3c2dde8a719865edf62eb335024f07a551817ac4ff
ed2133332147844d7b66877f2e0fce18a40eac66829853d86a515be5ff70a125
4f373d7fbc88707ac4adabdf8b5cfbb53662aa3cb61c86eb4779ba9f5c01f863
c90f565e213021870671d9f0ee1b701f1608213133212568be9d641830a972dd
05d88102c24b915e4620a6edafbb48fa6245c9f23b536bb868a68fe411fbb8df
9167a41f87059a73ac46ce9bf6d4d6d4d0e075473ec1d160e46de289f9afc049
7cca7c7a23f1bddf3bb361c9289c2fd56a568d55df9e8a6897a2ef30e6f248f6
133391e6958bfbf7e42af887754851fbdc983b2c1944660ff44721333421944d
213130217295a8c142041221333421d9213132213588b588fbab46db519dbfcf
76c6959fc350ffd470767d7d903d5e36391591fa3ea5555a5724213021a4a851
819f7392e0a53e4b421a250884157cf62d21313630219a857461424c85e21a5f
356c84a2d6213130214feada6de56ac90365e538b3532ba4390f77f4028dae49
5873016d4f967f1e20288e9ab84c7e1886d8ce4d77ca19078b93ab719a2fca9c
40efbef82c682b2ec57ffeb6efae79b0b6374f30c537a155ad7da757bd92d581
4957dafc3d4c8a2131363021e9e143b474eb14de17d681f83a083c32e8908bd2
313a832651512139210133499ab11541d618213130218188b4a9c8e8fec359de
035d4a5d80f026eb2c4e037d68b434e082e8e78f41a7c15ae9e142bbcc3d5c2a
20ac213333212dff13c38c58bdf75554444539a935601eb8129ea279e6ff50ab
40017597a497fb4af34cbf65952cb588213021d80396e690663a1fd5634d483b
127ace9a1b639e9fe058ea2a99a598213136302158b3b31e36a2703bd87bd74c
92ac657c4cdca91a4e88b726ae97968d58d12139218221392136b0c0ffb5e973
84d8213133216bfdde49634073a6b4653792e6ac213132213bf83aca74a6a239
21333321c5669c965a74ead4dfb86cd9453b587908cded3b9321333921affd86
2f1778af21313221b682d9801a3d033ae9e0f9ec683d1e913f68165152d4974b
eaeee063413af2af6cff9b15b7aa9efe21313321f9943b579aa260604f92cab9
e2fa952131322190f326ed47aa3d969fd42b873fdf90c8a5b497b35588631917
afac26ca9684da25213131213358a230d1e828eeaff7903a2acb823134fa3334
83b69aa31c8b01fb3840cf6d1c8273cad121313121b492f4d690c9d289f4d479
bf496f85d8d4079b5d050f3aff633dc683c4cef26dc5b842f92e5621333921ea
bd37745b70b876d4d5a4e82131312155f53391491e32ccd4ce69b8d26988b3b4
f38661f36db4e3770e2131312170b63124132e142131322198d5e4d31e4d0f96
5318213333212a5252ffcd599abbc831abaa4f87162b80bfd54ca4bde1557ed4
828c4c07ae8a4a9663846d055a213133212e2a4bec73b721313121a86fd433a8
e5ed7c7dc02fb44f72213131219a3c552131363021d10e76bedf2139216f9433
6eeb888f54b404ece8b6564f84012131312139ba2133342143f1e294719ae391
efb7c86c7bb06337eea31637dc06cd21392134c75cf9a1f1b3481e213130219a
ea2b587e957ea513081d3dc96d8644658d4f2131332134213132213cdf4179ab
a15e1a59d0d87f6216d11d7db477870e0815f52bb821313021a78688f5653ae1
bc9ee70f059482e09f9c6ee04cd43b42ce50a3db186b46a1db6f77213334214f
9d6abb87b88add74926262463fa6aea4b1991f4dfdb4fd03cf8cba38580ea828
f1325c70712131363021348fcb2cfa912c8e9f90de6661f3e3e837d277eb13e1
21333921a120439ad456202b942f806f1bb9bf8abafb9f28caa84f4e7ab492ea
8516f03721333921b0ef3a178cae26bb567de54cf01c56ecef2139215b6b1947
721e3c9e76971858ce0fe60e2ec114311964d831ac48715f4dfcb4a494ef7f8f
a7df916517633506d9bb213339214c46572b97a67542e07821333321423879c7
b8eeb37e1b925f30a435bf213133211f2dc5d72fc2bf42a8da743c46fb2d7174
97c1feb4d91055dc6fabbf20b8a55757151df0a1a4193f551adc61b7741ed104
bc317288b8bf20f4b08292fa4340bfc5a5cfc0b65a022c1d7a080818a41d8ce1
77aa8d7521333421e2fb80ee85213021a760db73bd15629569

|>|!Klasse|!Lektüre|
|G8|G8d|Louis Sachar: Holes|
|G10|G10a|Roddy Doyle: Mad Weekend|
|~|G10b|Louis Sachar: Holes|
|~|G10c|Louis Sachar: Holes|
|G11|G11a|Nick Hornby: A Long Way Down|
|~|G11b|Joyce Carol Oates: Big Mouth & Ugly Girl|
|~|G11c|Nick Hornby: A Long Way Down|
|~|G11d|Sue Townsend: The Secret Diary of Adrian Mole Aged 13 ¾|
|K12|Grundkurse e1/e2|Alfred Uhry: Driving Miss Daisy|
|~|~|Short Stories|
|~|Leistungskurs E1|William Shakespeare: Macbeth|
|~|~|Arthur Miller: Death of a Salesman|
|~|~|Short Stories|
|~|Leistungskurs E2|William Shakespeare: Macbeth|
|~|~|Short Stories|
|K13|Grundkurse e1/e2|Daphne du Maurier: The Birds|
|~|Leistungskurse E1/E2|Margaret Atwood: The Handmaid's Tale|
|~|~|One Language Many Voices: Short Stories|
|~|~|Short Stories from South Africa|
|>|!Klasse|!Lektüre|
|G8|G8a|Louis Sachar: Holes|
|G9|G9b|David Almond: Kit's Wilderness|
|~|G9d|David Almond: Kit's Wilderness|
|G11|G11a|Sue Townsend: The Secret Diary of Adrian Mole Aged 13 ¾|
|~|G11b|Joyce Carol Oates: Big Mouth & Ugly Girl|
|~|G11c|Joyce Carol Oates: Big Mouth & Ugly Girl|
|~|G11d|Sue Townsend: The Secret Diary of Adrian Mole Aged 13 ¾|
|K12|Grundkurse e1/e2|Alfred Uhry: Driving Miss Daisy|
|~|~|Short Stories|
|~|Leistungskurs E1|William Shakespeare: Macbeth|
|~|~|Willy Russell: Educating Rita|
|~|~|Short Stories|
|~|Leistungskurs E2|William Shakespeare: Macbeth|
|~|~|Tennessee Williams: Cat On a Hot Tin Roof|
|~|~|Short Stories|
|K13|Grundkurse e1/e2|Daphne du Maurier: The Birds|
|~|~|Short Stories|
|~|Leistungskurs E1|Aldous Huxley: Brave New World|
|~|~|Short Stories|
|~|Leistungskurs E2|Brian Clark: Whose Life Is It, Anyway|
|~|~|Short Stories|
|>|!Klasse|!Lektüre|
|G9|G9b|Roddy Doyle: Wilderness|
|~|G9d|Short Stories|
|G10|G10b|Ian ~McEwan: The Daydreamer|
|G11|G11a|Berlie Doherty: Dear Nobody, Skidmore / Barrow: The Pressure Cooker|
|~|G11b|Marc Haddon: The Curious Incident of the Dog in the ~Night-Time|
|~|G11c|Short Stories|
|~|G11d|Marc Haddon: The Curious Incident of the Dog in the ~Night-Time|
|K12|Grundkurs e1|Bernard ~MacLaverty: Cal, Short Stories|
|~|Grundkurs e2|Scott Fitzgerald: The curious case of Benjamin Button and other stories|
|~|Leistungskurs E1|William Shakespeare: Macbeth, Arthur Miller: Death of a Salesman|
|~|Leistungskurs E2|William Shakespeare: Macbeth, Bernard ~MacLaverty: Cal|
|K13|Grundkurse e1/e2|Daphne du Maurier: The Birds, Short Stories|
|~|Leistungskurs E1|Margaret Atwood: The Handmaid's Tale, Short Stories|
|~|Leistungskurs E2|Paul Auster: Moon Palace, Short Stories|
|!Jahrgangsstufe|!Klasse / Kurs|!Literatur|h
|G8|G8a|Louis Sachar: Holes|
|G8|G8c|Louis Sachar: Holes|
|G9|G9a|Roddy Doyle: Wilderness|
|G10|G10a|Ian ~McEwan: The Daydreamer|
|G10|G10b|Poems, Short Sories, Ian ~McEwan: The Daydreamer|
|G10|G10c|Vicas Swarup: Slumdog Millionaire|
|G10|G10d|Vicas Swarup: Slumdog Millionaire|
|Q11|Kurse 1 - 4|Alfred Uhry: Driving Miss Daisy, William Shakespeare: Macbeth|
|K12|Grundkurse e1, e2|Daphne du Maurier: Birds|
|K12|Leistungskurse E1, E2|George Orwell: 1984, William Shakespeare: Macbeth, Short Stories|
|K12|Leistungskurs E3|Margaret Atwood: The Handmaid's Tale, William Shakespeare: Macbeth, Short Stories|
|K13|Grundkurse e1, e2|Alfred Uhry: Driving Miss Daisy|
|K13|Leistungskurs E1|Eoin Colfer (and others): Click, Short Stories|
!!G8
|!Jahrgangsstufe|!Klasse / Kurs|!Literatur|h
|8|G8c|Louis Sachar: Holes|
|9|G9c|Short Stories|
|10|G10a|N.H. Kleinbaum: Dead Poets Society (i.A.)|
|10|G10d|Short Stories|
|11|Q11 alle Kurse|Alfred Uhry: Driving Miss Daisy, William Shakespeare: Macbeth, Short Stories|
|12|Q12e1|Almond, Colfer, Hornby et al.: Click, Short Stories, Modern Poetry|
|12|Q12e2/e3|John Steinbeck: Of Mice and Men, Short Stories|
|12|Q12e4|Almond, Colfer, Hornby et al.: Click, Short Stories|
!!G9
|!Jahrgangsstufe|!Klasse / Kurs|!Literatur|h
|13|K13 Grundkurse e1, e2|Alfred Uhry: Driving Miss Daisy|
|13|K13 Leistungskurs E1|Tennessee Williams: Cat on a Hot Tin Roof, Short Stories|
|13|K13 Leistungskurs E2|Arthur Miller: Death of a Salesman, Short Stories|
|13|K13 Leistungskurs E3|Alfred Uhry: Driving Miss Daisy, Short Stories|
<<tabs txtLinksTab "Schulen" "Schulen" TabSchulen "WLS-Partnerschulen" "Englische und schottische Partner-Schulen der Wilhelm-Löhe-Schule" TabPartnerSchulen "Institute und Behörden" "Institute und Behörden" TabInstituteBehörden "Tagungsorte" "Tagungsorte, z.B. für Fachschaftswochenenden" TabTagungsorte "Unterricht" "Unterricht" "Links 2" "Schulferien" "Schulferien" TabSchulferien>>
<<tabs txtLinksTab2 "Bilingualer Sachfachunterricht" "Bilingualer Sachfachunterricht" BilingualerSachfachunterricht>>
<<EncryptionDecryptAll>>
<html><a class="button" href="javascript:;" onclick="story.closeAllTiddlers();restart();">Home</a></html>
/%[[Kalender]]%/
<<matchTags popup "label:Content" Content AND NOT excludeLists AND NOT Tests>>
<<matchTags popup "label:Help" Help>>
<<matchTags popup "label:About" About  AND NOT excludeLists>>
/%[[Tests]]%/
/%<<EncryptionDecryptAll>>%/
<<toggleSideBar "" "Toggle sidebar" "hide">>
/%<<tag Content>>%/
/***
|Name|MatchTagsPlugin|
|Source|http://www.TiddlyTools.com/#MatchTagsPlugin|
|Documentation|http://www.TiddlyTools.com/#MatchTagsPluginInfo|
|Version|2.0.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|'tag matching' with full boolean expressions (AND, OR, NOT, and nested parentheses)|
!!!!!Documentation
> see [[MatchTagsPluginInfo]]
!!!!!Revisions
<<<
2008.09.04 [2.0.0] added "report" and "panel" options to generate formatted results and store in a tiddler.  Also, added config.macros.matchTags.formatList(place,fmt,sep) API to return formatted output for use with other plugins/scripts
| please see [[MatchTagsPluginInfo]] for additional revision details |
2008.02.28 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.MatchTagsPlugin= {major: 2, minor: 0, revision: 0, date: new Date(2008,9,4)};

// 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(sortfield||"title");
	if (tiddlers && sortfield) 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",
	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,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 t=0; t<tids.length; t++) {
			var title="[["+tids[t].title+"]]";
			var who=tids[t].modifier;
			var when=tids[t].modified.toLocaleString();
			var text=tids[t].text;
			var first=tids[t].text.split("\n")[0];
			var desc=store.getTiddlerSlice(tids[t].title,"description");
			desc=desc||store.getTiddlerSlice(tids[t].title,"Description");
			desc=desc||store.getTiddlerText(tids[t].title+"##description");
			desc=desc||store.getTiddlerText(tids[t].title+"##Description");
			out.push(fmt.format([title,who,when,text,first,desc]));
		}
		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(p,false);
		ev.cancelBubble=true;
		if(ev.stopPropagation) ev.stopPropagation();
		return false;
	},
	createReport: function(target,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(),[],{});
		story.closeTiddler(target); story.displayTiddler(null,target);
	},
	createPanel: function(place,expr,fmt,sep,sortBy,tid) {
		var html="<form style='display:inline'><!-- \
			--><input type='text'    name='expr' style='width:55%' 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:20%' title='target tiddler title'><!-- \
			--><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; } \
				config.macros.matchTags.createReport(tid,expr,fmt,sep,'title'); \
				return false;\"> \
			</form>";
		var s=createTiddlyElement(place,"span"); s.innerHTML=html;
		var f=s.getElementsByTagName("form")[0];
		f.expr.value=expr; f.fmt.value=fmt; f.sep.value=sep.escapeLineBreaks(); f.tid.value=tid;
	}
};
//}}}
//{{{
// SHADOW TIDDLER for displaying default panel input form
config.shadowTiddlers.MatchTags="{{smallform{<<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);
	}
};
//}}}
/***
|Name|MatchTagsPluginInfo|
|Source|http://www.TiddlyTools.com/#MatchTagsPlugin|
|Documentation|http://www.TiddlyTools.com/#MatchTagsPluginInfo|
|Version|2.0.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|documentation|
|Requires||
|Overrides||
|Description|documentation for MatchTagsPlugin|
!!!!!Usage
<<<
This plugin extends the {{{[tag[tagname]]}}} macro parameter syntax used by the TiddlyWiki core {{{<<list>>}}} macro so that, instead of a simple tagname value, you can specify a complex combination of tagname values using a //boolean expression// containing AND, OR, and NOT operators, enclosed in nested parentheses if needed.
{{{
<<list filter "[tag[expression]]">>
}}}
In addition, the plugin defines a new macro, {{{<<matchTags ...>>}}} that can be used instead of the core {{{<<list>>}}} macro to output a list of matching tiddlers //using a custom 'item format' and 'separator'//.  You can also use this macro to create a command link that displays the matching tiddlers within a popup list, similar to the standard {{{<<tag tagName>>}}} macro, but matching a combination of tag values rather than a single tag value.
{{{
<<matchTags inline "format" "separator" sort:fieldname tag expression>>
<<matchTags popup "label:..." "prompt:..." sort:fieldname tag expression>>
<<matchTags report TiddlerName "format" "separator" sort:fieldname tag expression>>
<<matchTags panel  Tiddlername "format" "separator" sort:fieldname tag expression>>
}}}
where:
* ''inline'', ''report'', ''panel'', and ''popup''<br>are keywords that indicate the type of output that the macro should produce:
** ''inline'' //(default)// - displays a list of matching tiddlers embedded directly in tiddler content
** ''popup'' - embeds a command button that, when clicked, lists matching tiddlers in a ~TiddlyWiki popup display
** ''report'' - generates a list of matching tiddler in a separate [[MatchingTiddlers]] report tiddler
** ''panel'' - displays an interactive form for generating a [[MatchingTiddlers]] report
* ''format''<br>defines the wiki-syntax for rendering list items.  The following //substitution markers// can be used to insert tiddler-specific information for each matched tiddler:
** {{{%0}}} - title
** {{{%1}}} - modifier (author)
** {{{%2}}} - modified (date of last change)
** {{{%3}}} - text (all tiddler content)
** {{{%4}}} - firstline (tiddler content up to the first newline)
** {{{%5}}} - description (tiddler slice or section content named "description" or "Description")
* ''separator''<br>defines the wiki-syntax to use //between// each matching title (e.g., ", " creates a comma-separated list, while "\n" displays one tiddler per line).
* ''sort:fieldname'' (optional)<br>specifies the sort order for the resulting list of tiddlers.  You can specify any tiddler field name (standard or custom-defined).  Standard tiddler fieldnames include: //title, created, modified, modifier//.  If not specified, tiddlers are sorted by title.  You can prefix the fieldname with "+" or "-" to indicate ascending or descending order, respectively.
* ''tag expression''<br>the remaining parameter(s) are joined together to define the boolean expression to be matched.
When using the ''popup'' option, there are two additional (and optional) parameters you can specify:
* ''"label:..."''(optional)<br> indicates the text for the popup command link.  The default is to display the specified tag expression itself.
* ''"prompt:..."'' (optional)<br>indicates the mouseover 'tooltip' for the popup command link.
When using the ''report'' or ''panel'' option, an additional parameter may be provided:
* ''~TiddlerName''<br>specifies the target tiddler into which the output will be generated (default: [[MatchingTiddlers]])
Notes:
*A tag expression can use any combination of text operators: ''AND'', ''OR'', ''NOT'' (or their equivalent javascript operators: ''&&'', ''||'', ''!''), contained in nested parentheses as needed.
*Operators should be delimited by spaces or parentheses.
*Before matching, leading/trailing spaces are automatically trimmed and multiple spaces are reduced to single spaces.
*Tag values containing embedded spaces do //not// have to be enclosed in {{{[[...]]}}}.
*Tag values that contain boolean operators as ''literal text'' (e.g., {{{"foo and bar"}}} or {{{"foo && bar"}}} cannot be used within a compound boolean expression, but //can// be matched if specified by themselves, without any other tag values or operators.
*To match tiddlers that are untagged, use "-" as a special tag value within the expression.
*You can match "wildcard" tags  by using //regular expression// (i.e., "text pattern") syntax within a tag value, e.g. {{{[Tt]agvalue.*}}}
<<<
!!!!!Examples:
<<<
display a popup list:
{{{
<<matchTags popup sample OR (settings AND systemConfig)>>
}}}
><<matchTags popup sample OR (settings AND systemConfig)>>
display a popup list with custom label:
{{{
<<matchTags popup "label:samples and settings" sample OR (settings AND systemConfig)>>
}}}
><<matchTags popup "label:samples and settings" sample OR (settings AND systemConfig)>>
display a popup list of untagged tiddlers:
{{{
<<matchTags popup ->>
}}}
><<matchTags popup ->>
generate a report using interactive form control panel
{{{
<<matchTags panel "MatchingTiddlers" "%0" "\n" sample OR (settings AND systemConfig)>>
}}}
>{{smallform{<<matchTags panel "MatchingTiddlers" "%0" "\n" sample OR (settings AND systemConfig)>>}}}
comma-separated list:
{{{
<<matchTags "%0" ", " sample OR (settings AND systemConfig)>>
}}}
><<matchTags "%0" ", " sample OR (settings AND systemConfig)>>
numbered list (sorted by modification date, most recent first):
{{{
<<matchTags "#%0 (%2)<br>^^%5^^" "\n" sort:-modified sample OR (settings AND systemConfig)>>
}}}
><<matchTags "#%0 (%2)<br>^^%5^^" "\n" sort:-modified sample OR (settings AND systemConfig)>>
bullet-item list (using the TiddlyWiki core {{{<<list filter ...>>}}} macro):
//(Note: when using the core {{{<<list>>}}} macro, you should always enclose the entire tag filter parameter within quotes)//
{{{
<<list filter "[tag[sample OR (settings AND systemConfig)]]">>
}}}
><<list filter "[tag[sample OR (settings AND systemConfig)]]">>
<<<
!!!!!Revisions
<<<
2008.09.04 [2.0.0] added "report" and "panel" options to generate formatted results and store in a tiddler.  Also, added config.macros.matchTags.formatList(place,fmt,sep) API to return formatted output for use with other plugins/scripts
2008.09.01 [1.9.2] fixed return value from popup button handler so IE doesn't attempt to leave the page
2008.08.31 [1.9.1] improved expression conversion handling to permit use of regular expressions for "wildcard" matching within tag values
2008.06.12 [1.9.0] added support for formatted output of: title, who, when, text, firstline, description (slice or section)
2008.06.05 [1.8.0] in getMatchingTiddlers(), added optional sortfield and tiddlers params to support use of alternative set of tiddlers instead of using current store content (provides filtering support for ImportTiddlersPlugin)
2008.06.04 [1.7.1] in getMatchingTiddlers(), reworked conversion of expression for more robust parsing of whitespace, parentheses and javascript operators and allow use of "-" (untagged) //within// expressions
2008.05.19 [1.7.0] in getMatchingTiddlers(), use reverseLookup() instead of forEachTiddler() to permit access to tiddlers included via [[IncludePlugin|http://tiddlywiki.abego-software.de/#IncludePlugin]]
2008.05.17 [1.6.0] in getMatchingTiddlers(), rewrote expression conversion to handle tags with spaces tag values that are substrings of other tag values.
2008.05.16 [1.5.0] added special case using "-" to find UNTAGGED tiddlers
2008.05.15 [1.4.0] added "popup" output option
2008.05.14 [1.3.4] instead of hijacking getTaggedTiddlers(), added tweak of filterTiddlers() prototype to replace getTaggedTiddlers() with getMatchingTiddler() so that core use of getTaggedTiddlers() does not perform boolean processing of tiddler titles such as [[To Be or not To Be]].  Also, improved "filter error" messages in getMatchingTiddlers() to report tag expression in addition to actual eval error.
2008.04.25 [1.3.3] in getTaggedTiddlers(), fixed handling for "not" embedded within a tag
2008.04.21 [1.3.2] in getTaggedTiddlers(), fixed handling for initial "NOT" and "NOT(expr)" syntax
2008.04.20 [1.3.1] in getTaggedTiddlers(), corrected check for boolean expression to avoid excess processing of tags containing spaces.  Also, improved handling for non-existing tags that contain text of existing tags
2008.04.19 [1.3.0] in filterTiddlers(), use getTaggedTiddlers() instead of matchTags(), and then hijack getTaggedTiddlers() to add matchTags() handling
2008.04.19 [*.*.*] plugin size reduction: moved documentation to [[MatchTagsPluginInfo]]
2008.03.25 [1.2.0] added optional "sort:fieldname" parameter
2008.03.20 [1.1.2] in handler(), replace 'encodeTiddlyLink' with explicit [[...]] brackets to ensure that one-word tiddler titles are properly rendered as TiddlyLinks
2008.02.29 [1.1.1] in matchTags(), added handling to skip remaining tiddlers if expression has an error
2008.02.29 [1.1.0] refactored to define store.matchTags() and extend store.filterTiddlers()
2008.02.28 [1.0.0] initial release
<<<
/***
|''Name''|MaximalePunktzahlPlugin|
|''Description''|<...>|
|''Icon''|<...>|
|''Author''|Ulrich Saugeon|
|''Contributors''|<...>|
|''Version''|0.1.5|
|''Date''|<...>|
|''Status''|<//unknown//; @@experimental@@; @@beta@@; //obsolete//; stable>|
|''Source''|<...>|
|''CodeRepository''|<...>|
|''Copyright''|<...>|
|''License''|<...>|
|''CoreVersion''|<...>|
|''Requires''|<...>|
|''Overrides''|<...>|
|''Feedback''|<...>|
|''Documentation''|<...>|
|''Keywords''|<...>|
!Description
<...>
!Notes
<...>
!Usage
{{{
<<maximalepunktzahl>>
}}}
!!Parameters
<...>
!!Examples
<<maximalepunktzahl sliderid:slider1 displayid:display1 left:50 from:6 to:220 value:50 valuecount:215>>
!Configuration Options
<...>
!Revision History
!!v<#.#> (<yyyy-mm-dd>)
* <...>
!To Do
<...>
!Code
***/
//{{{
if(!version.extensions.MaximalePunktzahlPlugin) { //# ensure that the plugin is only installed once
	version.extensions.MaximalePunktzahlPlugin = { installed: true };
  
	config.macros.maximalepunktzahl = {};

	config.macros.maximalepunktzahl.handler = function(place, macroName, params, wikifier, paramString, tiddler) {
		var slider_container = createTiddlyElement(place,"div","carpeslider1",null,null,"");
		var p = paramString.parseParams(null, null, true);
		var sliderid = getParam(p,"sliderid","slider1");
		var displayid = getParam(p,"displayid","display1");
		var buttonid = getParam(p,"butonid","button1");
		var left = getParam(p,"left","80");
		var from = getParam(p,"from","100");
		var to = getParam(p,"to","200");
		var value = getParam(p,"value","180");
		var valuecount = getParam(p,"valuecount","100");

		slider_container.innerHTML = '<div class="carpe_horizontal_slider_track">' +
				'<div class="carpe_slider_slit">&nbsp;</div>' +
				'<div class="carpe_slider" id="' + sliderid + '" display="'+displayid+'" style="left:' + left + 'px; background-color: #c33; border-color: #f66 #933 #933 #f66;">&nbsp;</div>' +
			'</div>' +
			'<div class="carpe_slider_display_holder">' +
				'<input class="carpe_slider_display" id="'+displayid+'" type="text" from="'+from+'" to="'+to+'" value="' + value + '" valuecount="' + valuecount + '" />' +
			'</div>' +
			'<input class="carpe_slider_ok_button" id="' + buttonid + '" type="button" value="OK" onclick="javascript:config.macros.maximalepunktzahl.compute();" />' +
			'<div id="data2"></div>';

		config.macros.maximalepunktzahl.value = document.getElementById(displayid).value;
		config.macros.maximalepunktzahl.init();

	};

	config.macros.maximalepunktzahl.init = function() {

		//---------------------------------+
		//  CARPE  S l i d e r      1.5.1  |
		//  2008 - 07 - 09                 |
		//  By Tom Hermansson Snickars     |
		//  Copyright CARPE Design         |
		//  http://carpe.ambiprospect.com/ |
		//---------------------------------+

		// Global vars. You don't need to make changes here to change your sliders.
		// Changing the attributes in your (X)HTML file is enough.
		var carpemouseover = false;
		//var carpeDefaultSliderLength = config.macros.maximalepunktzahl.carpeDefaultSliderLength; //100
		//var carpeDefaultSliderLength = 100;
		var carpeDefaultSliderLength = 215;
		var carpeSliderDefaultOrientation = 'horizontal';
		var carpeSliderClassName          = 'carpe_slider';
		var carpeSliderDisplayClassName   = 'carpe_slider_display';
		var carpesliders                  = [];
		var carpedisplays                 = [];
		var carpeslider                   = {};
		var carpedisplay                  = {};

		// carpeAddLoadEvent
		function carpeAddLoadEvent(func) {
			var oldonload = window.onload;
			if (typeof window.onload != 'function') {
				window.onload = func;
			}
			else {
				window.onload = function() {
					oldonload();
					func();
				};
			}
			//alert("Test");
		}

		// carpeGetElementsByClass: Cross-browser function that returns
		// an array with all elements that have a class attribute that
		// contains className
		function carpeGetElementsByClass(className)
		{
			var classElements = new Array();
			var els = document.getElementsByTagName("*");
			var elsLen = els.length;
			var pattern = new RegExp("\\b" + className + "\\b");
			for (var i = 0, j = 0; i < elsLen; i++) {
				if ( pattern.test(els[i].className) ) {
					classElements[j] = els[i];
					j++;
				}
			}
			return classElements;
		}

		// carpeLeft: Cross-browser version of "element.style.left"
		// Returns or sets the horizontal position of an element.
		function carpeLeft(elmnt, pos)
		{
			if (!(elmnt = document.getElementById(elmnt))) return 0;
			if (elmnt.style && (typeof(elmnt.style.left) == 'string')) {
				if (typeof(pos) == 'number') elmnt.style.left = pos + 'px';
				else {
					pos = parseInt(elmnt.style.left);
					if (isNaN(pos)) pos = 0;
				}
			}
			else if (elmnt.style && elmnt.style.pixelLeft) {
				if (typeof(pos) == 'number') elmnt.style.pixelLeft = pos;
				else pos = elmnt.style.pixelLeft;
			}
			return pos;
		}

		// carpeTop: Cross-browser version of "element.style.top"
		// Returns or sets the vertical position of an element.
		function carpeTop(elmnt, pos)
		{
			if (!(elmnt = document.getElementById(elmnt))) return 0;
			if (elmnt.style && (typeof(elmnt.style.top) == 'string')) {
				if (typeof(pos) == 'number') elmnt.style.top = pos + 'px';
				else {
					pos = parseInt(elmnt.style.top);
					if (isNaN(pos)) pos = 0;
				}
			}
			else if (elmnt.style && elmnt.style.pixelTop) {
				if (typeof(pos) == 'number') elmnt.style.pixelTop = pos;
				else pos = elmnt.style.pixelTop;
			}
			return pos;
		}

		// moveSlider: Handles slider and display while dragging
		function moveSlider(evnt)
		{
			var evnt = (!evnt) ? window.event : evnt; // The mousemove event
			if (carpemouseover) { // Only if slider is dragged
				carpeslider.x = carpeslider.startOffsetX + evnt.screenX; // Horizontal mouse position relative to allowed slider positions
				carpeslider.y = carpeslider.startOffsetY + evnt.screenY; // Horizontal mouse position relative to allowed slider positions
				if (carpeslider.x > carpeslider.xMax) carpeslider.x = carpeslider.xMax; // Limit horizontal movement
				if (carpeslider.x < 0) carpeslider.x = 0; // Limit horizontal movement
				if (carpeslider.y > carpeslider.yMax) carpeslider.y = carpeslider.yMax; // Limit vertical movement
				if (carpeslider.y < 0) carpeslider.y = 0; // Limit vertical movement
				carpeLeft(carpeslider.id, carpeslider.x);  // move slider to new horizontal position
				carpeTop(carpeslider.id, carpeslider.y); // move slider to new vertical position
				var sliderVal = carpeslider.x + carpeslider.y; // pixel value of slider regardless of orientation
				var sliderPos = (carpeslider.distance / carpedisplay.valuecount) * 
					Math.round(carpedisplay.valuecount * sliderVal / carpeslider.distance);
				var v = Math.round((sliderPos * carpeslider.scale + carpeslider.from) * // calculate display value
					Math.pow(10, carpedisplay.decimals)) / Math.pow(10, carpedisplay.decimals);
				carpedisplay.value = v; // put the new value in the slider display element
				config.macros.maximalepunktzahl.value = v;
				return false;
			}
			return
		}

		// slide: Handles the start of a slider move.
		function slide(evnt)
		{
			if (!evnt) evnt = window.event; // Get the mouse event causing the slider activation.
			carpeslider = (evnt.target) ? evnt.target : evnt.srcElement; // Get the activated slider element.
			var dist = parseInt(carpeslider.getAttribute('distance')); // The allowed slider movement in pixels.
			carpeslider.distance = dist ? dist : carpeDefaultSliderLength; // Deafault distance from global var.
			var ori = carpeslider.getAttribute('orientation'); // Slider orientation: 'horizontal' or 'vertical'.
			var orientation = ((ori == 'horizontal') || (ori == 'vertical')) ? ori : carpeSliderDefaultOrientation;
				// Default orientation from global variable.
			var displayId = carpeslider.getAttribute('display'); // ID of associated display element.
			carpedisplay = document.getElementById(displayId); // Get the associated display element.
			carpedisplay.sliderId = carpeslider.id; // Associate the display with the correct slider.
			var dec = parseInt(carpedisplay.getAttribute('decimals')); // Number of decimals to be displayed.
			carpedisplay.decimals = dec ? dec : 0; // Default number of decimals: 0.
			var val = parseInt(carpedisplay.getAttribute('valuecount'))  // Allowed number of values in the interval.
			carpedisplay.valuecount = val ? val : carpeslider.distance + 1 // Default number of values: the sliding distance.
			var from = parseFloat(carpedisplay.getAttribute('from')) // Min/start value for the display.
			from = from ? from : 0 // Default min/start value: 0.
			var to = parseFloat(carpedisplay.getAttribute('to')) // Max value for the display.
			to = to ? to : carpeslider.distance // Default number of values: the sliding distance.
			carpeslider.scale = (to - from) / carpeslider.distance // Slider-display scale [value-change per pixel of movement].
			if (orientation == 'vertical') { // Set limits and scale for vertical sliders.
				carpeslider.from = to // Invert for vertical sliders. "Higher is more."
				carpeslider.xMax = 0
				carpeslider.yMax = carpeslider.distance
				carpeslider.scale = -carpeslider.scale // Invert scale for vertical sliders. "Higher is more."
			}
			else { // Set limits for horizontal sliders.
				carpeslider.from = from;
				carpeslider.xMax = carpeslider.distance;
				carpeslider.yMax = 0;
			}
			carpeslider.startOffsetX = carpeLeft(carpeslider.id) - evnt.screenX; // Slider-mouse horizontal offset at start of slide.
			carpeslider.startOffsetY = carpeTop(carpeslider.id) - evnt.screenY; // Slider-mouse vertical offset at start of slide.
			carpemouseover = true;
			document.onmousemove = moveSlider; // Start the action if the mouse is dragged.
			document.onmouseup = sliderMouseUp; // Stop sliding.
			return false;
		}

		// sliderMouseUp: Handles the mouseup event after moving a slider.
		// Snaps the slider position to allowed/displayed value. 
		function sliderMouseUp()
		{
			if (carpemouseover) {
				var v = (carpedisplay.value) ? carpedisplay.value : 0 // Find last display value.
				var pos = (v - carpeslider.from)/(carpeslider.scale) // Calculate slider position (regardless of orientation).
				if (carpeslider.yMax == 0) {
					pos = (pos > carpeslider.xMax) ? carpeslider.xMax : pos;
					pos = (pos < 0) ? 0 : pos;
					carpeLeft(carpeslider.id, pos); // Snap horizontal slider to corresponding display position.
				}
				if (carpeslider.xMax == 0) {
					pos = (pos > carpeslider.yMax) ? carpeslider.yMax : pos;
					pos = (pos < 0) ? 0 : pos;
					carpeTop(carpeslider.id, pos); // Snap vertical slider to corresponding display position.
				}
				if (document.removeEventListener) { // Remove event listeners from 'document' (W3C).
					document.removeEventListener('mousemove', moveSlider, false);
					document.removeEventListener('mouseup', sliderMouseUp, false);
				}
				else if (document.detachEvent) { // Remove event listeners from 'document' (IE).
					document.detachEvent('onmousemove', moveSlider);
					document.detachEvent('onmouseup', sliderMouseUp);
					document.releaseCapture();
				}
			}
			carpemouseover = false; // Stop the sliding.
		}

		function focusDisplay(evnt)
		{
			if (!evnt) evnt = window.event; // Get the mouse event causing the display activation.
			var carpedisplay = (evnt.target) ? evnt.target : evnt.srcElement; // Get the activated display element.
			var lock = carpedisplay.getAttribute('typelock'); // Is the user allowed to type into the display?
			if (lock == 'on') {
				carpedisplay.blur();
			}
			return;
		}

		function carpeInit() {// Set up the sliders and the displays.
			carpesliders = carpeGetElementsByClass(carpeSliderClassName) // Find the horizontal sliders.

			for (var i = 0; i < carpesliders.length; i++) {
				carpesliders[i].onmousedown = slide; // Attach event listener.
			}
			carpedisplays = carpeGetElementsByClass(carpeSliderDisplayClassName) // Find the displays.
			for (var i = 0; i < carpedisplays.length; i++) {
				carpedisplays[i].value = carpedisplays[i].defaultValue; // Resets display on page reload.
				carpedisplays[i].onfocus = focusDisplay; // Attach event listener.
			}
		}

		carpeInit();

	};
 
	config.macros.maximalepunktzahl.compute = function() {
		/*
			15%: Note 1		100 - 85.01%
			15%: Note 2		85 -70.01%
			10%: Note 3		70 - 60.01%
			10%: Note 4		60 - 50.0%
			----------
			15%: Note 5		49.99 - 33.01%
			33%: Note 6		33 - 0 %
		*/

		var table, i, j, k, row, bClass;
		var be, myHeader, myData, myDataTr, myDataTd1, myDataTd2, myTable;
		var tbl, tbody, tr, td;
		//var dataField = new Array("Bewertungseinheiten","Notenpunkte","Note");		// fields of database
		var dataField = new Array("BE","NP","N");		// fields of database
		var mydata = document.getElementById("data2");
		mydata.innerHTML = ""; // Delete old content

		function initTable() {
			var i;
//			var mydata = document.getElementById("data2");
//			mydata.innerHTML = ""; // Delete old content
			tbl = createTiddlyElement(mydata,'table',null,null,null,"");
			var thead = createTiddlyElement(tbl,'thead');
			var theadr = createTiddlyElement(thead,'tr');
			for(i=0; i<3; i++) {
				createTiddlyElement(theadr,'th',null,'be_header',dataField[i]);
			}
			tbody = createTiddlyElement(tbl,'tbody');
		}

		function calculate(maxPZ) {
			var maxNP = 15; 		// max. Notenpunkte
			var np = 15;
			var np0;
			var note = 1;
			//var percentBE = new Array(100,84,69,59,49,33);
			var percentBE = new Array(100,84.9,69.9,59.9,49.9,33);
			//var myMaxNP = maxPZ*0.67;		// die Notenpunkte verteilen sich auf 67%, da 33% die Note 6 haben
			var a, b, i, ii, jj, k;
			var deltanp, mynp;
			//var sign;
			var bClass = 0;
			var myClass = new Array('be_data0','be_data1');
			var myMaxPZ = parseFloat(maxPZ);
			var j = 2.0;
			var data = [];
			var sDataArray = MultiDimensionalArray(221,2);

			ii = 0;
			for (i=maxPZ; i>=0; i--) {
				a = parseFloat(i);
				b = myMaxPZ*percentBE[note]/100.0;	// untere Grenze
				deltanp = myMaxPZ*((percentBE[note-1]-percentBE[note])/3.0)/100.0;
				mynp = myMaxPZ*percentBE[note]/100.0 + j*deltanp;
				if (a<=mynp) {
					j -= 1.0;
					np -= 1;
				}

				if (a<=b && note<6) {
					note += 1;
					bClass += 1;
					j = 2.0;
					if (bClass>1) {bClass = 0;}
				}

				sDataArray[i][0] = np;
				sDataArray[i][1] = note;
				sDataArray[i][2] = bClass;
				ii++;

//				sDataArray[i][0] = np;
//				sDataArray[i][1] = note;
//				sDataArray[i][2] = bClass;
//				ii++;

//				data[0] = i;
//				data[1] = np;
//				data[2] = note;
//				tr = createTiddlyElement(tbody,'tr');
//				for(k=0; k<3; k++) {
//					td  = createTiddlyElement(tr,'td',null,myClass[bClass],null);
//					createTiddlyText(td,data[k]);
//				}

			}

			for(j=0; j<6; j++) {
				jj = j + 1;
				initTable();
				for(i=maxPZ; i>=0; i--) {
					tr = createTiddlyElement(tbody,'tr');
					data[0] = i;
					data[1] = sDataArray[i][0];
					data[2] = sDataArray[i][1];
					if(data[2]==jj) {
						for(k=0; k<3; k++) {
							td  = createTiddlyElement(tr,'td',null,myClass[sDataArray[i][2]],null);
							createTiddlyText(td,data[k]);
						}
					}
				}
			}

//			initTable();
//			for(i=maxPZ; i>=0; i--) {
//				tr = createTiddlyElement(tbody,'tr');
//				data[0] = i;
//				data[1] = sDataArray[i][0];
//				data[2] = sDataArray[i][1];
//				for(k=0; k<3; k++) {
//					td  = createTiddlyElement(tr,'td',null,myClass[sDataArray[i][2]],null);
//					createTiddlyText(td,data[k]);
//				}
//			}

			//console.log(ii);

		}

		function addRowToTable(data, datClass) {
			var i;
			tr = createTiddlyElement(tbody,'tr');
			for(i=0; i<3; i++) {
				td = createTiddlyElement(tr,'td',null,datClass,null);
				createTiddlyText(td,data[i]);
			}
		}

//		// MultiDimensionalArray / ThreeDimensionalArray 
//		// Source: http://snipplr.com/view/7418/multidimensional-array/
		function MultiDimensionalArray(iRows,iCols)	{
			var a = new Array(iRows);
			for (var i=0; i < iRows; i++)	{
				a[i] = new Array(iCols);
				for (var j=0; j < iCols; j++)	{
					a[i][j] = "";
				}
			}
			return(a);
		}

//		// MultiDimensionalArray / ThreeDimensionalArray 
//		// Source: http://snipplr.com/view/7418/multidimensional-array/
//		function MultiDimensionalArray(iRows,iCols,iDepth) {
//			var a = new Array(iRows);
//			for (var i=0; i < iRows; i++)	{
//				a[i] = new Array(iCols);
//				for (var j=0; j < iCols; j++)	{
//					a[i][j] = new Array(iDepth);
//					for (var m=0; m < iDepth; m++)	{
//						a[i][j][m] = "";
//					}
//				}
//			}
//			return(a);
//		}

//		initTable();
		calculate(config.macros.maximalepunktzahl.value);

	}; //# end of "config.macros.maximalepunktzahl.compute()"


} //# end of "install only once"
//}}}
/*{{{*/
#maximalepunktzahl_tabelle {margin-top:20px;}

#mydatatable {border: 0}

.reference {
	padding-top: 50px;
	padding-bottom: 10px;
	padding-left: 10px;
	padding-right: 10px;
	/*background: #eee;*/
	background: white;
	width: 225px;
	height: auto;
	/*border: 3px solid #cccccc;*/
}

.mytable {width: 500px; height: auto;}

.be_header {font-weight: bold; background: #3372A3; color:#fff;}
.be_data0 {text-align:center;}
.be_data1 {text-align:center; color: black; background-color: #eeeeee;}
}


#data2 {text-align:center;}
#data2 table {float: left; margin: 10px 10px 10px 2px;}

/*
#data2 th {
	padding: 1px;
	background-color: gainsboro;
	color: #000000;
  border: 1px double #cccccc;
  border-style: outset;
	text-align: center;
}

#data2 h3,h4 {
	text-align: left;
}

.header h3 {
	text-decoration: underline;
}

.slider {
	background-color: #ECECEC;	
	padding-top: 10px;
	padding-bottom: 10px;
	padding-left: 10px;
	padding-right: 10px;
	border-style: ridge;
}

#track1 {
	width:250px;
	background-color: silver;
	height:2px;
	border-style: inset;
	border-color: black;
	border-width: 1px;
}

#handle1 {
	width:5px;
	height:10px;
	background-color:#f00;
	cursor:move;
	border-style: outset;
	border-width: 1px;
}

#debug1 {padding-top: 10px;} */


/*}}}*/
*[[news.com.au|http://www.news.com.au/]]
*[[Daily Telegraph|http://www.news.com.au/dailytelegraph/]]
*[[The Australian|http://www.theaustralian.news.com.au/]]
*[[ABC News|http://www.abc.net.au/news/]]
*[[CBC News|http://www.cbc.ca/news/]]
*[[Canadian News|http://www.canada.com/]]
*[[News Canada|http://www.newscanada.com/]]
*[[BBC|http://www.bbc.co.uk/]]: [[News|http://news.bbc.co.uk/]], [[RSS Feeds|http://news.bbc.co.uk/2/hi/help/rss/default.stm]]
*[[Sky News|http://news.sky.com/skynews/]]
*[[Pictures of England|http://www.picturesofengland.com/]], [[Pictures of England: News|http://www.picturesofengland.com/news/]]
*[[British Media Online|http://www.wrx.zen.co.uk/britnews.htm]] (British Newspapers: British national and local newspapers. All the UK Press online.)
*[[The Guardian: Open Platform|http://www.guardian.co.uk/open-platform]]
*[[Spiegel Online International|http://www.spiegel.de/international/]]
*[[Irish Independent News in Ireland & Worldwide|http://www.independent.ie/]]
*[[RTE News|http://www.rte.ie/news/]]
*[[Breaking News|http://www.breakingnews.ie/]]
*[[BBC News Northern Ireland|http://news.bbc.co.uk/2/hi/uk_news/northern_ireland/default.stm]]
*[[NZ Herald|http://www.nzherald.co.nz/]], [[NZ Herald National News|http://www.nzherald.co.nz/nz/news/headlines.cfm?c_id=1]]
*[[Latest News|http://tvnz.co.nz/view/news_index_skin/news_index_group]]
*[[nznews.co.uk|http://www.nznewsuk.co.uk/]]
*[[stuff.co.nz|http://www.stuff.co.nz/]]
*[[BBC News Scotland|http://news.bbc.co.uk/2/hi/uk_news/scotland/default.stm]]
*[[The Scotsman|http://thescotsman.scotsman.com/]]
*[[Scotsman|http://www.scotsman.com/]]
*[[Scottish Newspapers|http://scottishnewspapers.com/]]
<<gadget http://www.tigersyard.com/gadgets/news.xml height:250 border:0 prefs:"up_feed3=Reuters&up_datime=6000">>
/%<<gadget http://www.matt.org/modules/GoogleClock.xml height:250 border:0 prefs:"up_vsize=240px">>%/
*[[CNN|http://www.cnn.com/]], [[CNN RSS Feeds|http://www.cnn.com/services/rss/?iref=rsssvcs]]
*[[REUTERS|http://www.reuters.com/]], [[REUTERS RSS Feeds|http://www.reuters.com/tools/rss]]
*[[USA TODAY|http://www.usatoday.com/]]
*[[CBS News|http://www.cbsnews.com/]]
*[[U.S.NEWS|http://www.usnews.com/]]
*[[ABC News|http://abcnews.go.com/]]
*[[USA News|http://www.usanews.net/]]
*[[FOX News|http://www.foxnews.com/]]
*[[USA Newspapers Online|http://www.externalharddrive.com/usa/usalinks/usa-newspapers.html]]
*[[NewsLink|http://newslink.org/]]
/%<<player id=6 flash http://de.youtube.com/v/6BlqLwCKkeY&fmt=1 425 355>>%/

Associated Press
Thursday, 4 June 2009

I am honored to be in the timeless city of Cairo, and to be hosted by two remarkable institutions. For over a thousand years, ~Al-Azhar has stood as a beacon of Islamic learning, and for over a century, Cairo University has been a source of Egypt's advancement.

Together, you represent the harmony between tradition and progress. I am grateful for your hospitality, and the hospitality of the people of Egypt. I am also proud to carry with me the goodwill of the American people, and a greeting of peace from Muslim communities in my country: assalaamu alaykum.

We meet at a time of tension between the United States and Muslims around the world - tension rooted in historical forces that go beyond any current policy debate. The relationship between Islam and the West includes centuries of coexistence and cooperation, but also conflict and religious wars. More recently, tension has been fed by colonialism that denied rights and opportunities to many Muslims, and a Cold War in which Muslim-majority countries were too often treated as proxies without regard to their own aspirations. Moreover, the sweeping change brought by modernity and globalization led many Muslims to view the West as hostile to the traditions of Islam.

Violent extremists have exploited these tensions in a small but potent minority of Muslims. The attacks of September 11th, 2001 and the continued efforts of these extremists to engage in violence against civilians has led some in my country to view Islam as inevitably hostile not only to America and Western countries, but also to human rights. This has bred more fear and mistrust.

So long as our relationship is defined by our differences, we will empower those who sow hatred rather than peace, and who promote conflict rather than the cooperation that can help all of our people achieve justice and prosperity. This cycle of suspicion and discord must end.

I have come here to seek a new beginning between the United States and Muslims around the world; one based upon mutual interest and mutual respect; and one based upon the truth that America and Islam are not exclusive, and need not be in competition. Instead, they overlap, and share common principles - principles of justice and progress; tolerance and the dignity of all human beings.

I do so recognizing that change cannot happen overnight. No single speech can eradicate years of mistrust, nor can I answer in the time that I have all the complex questions that brought us to this point. But I am convinced that in order to move forward, we must say openly the things we hold in our hearts, and that too often are said only behind closed doors. There must be a sustained effort to listen to each other; to learn from each other; to respect one another; and to seek common ground. As the Holy Quran tells us, Be conscious of God and speak always the truth. That is what I will try to do - to speak the truth as best I can, humbled by the task before us, and firm in my belief that the interests we share as human beings are far more powerful than the forces that drive us apart.

Part of this conviction is rooted in my own experience. I am a Christian, but my father came from a Kenyan family that includes generations of Muslims. As a boy, I spent several years in Indonesia and heard the call of the azaan at the break of dawn and the fall of dusk. As a young man, I worked in Chicago communities where many found dignity and peace in their Muslim faith.

As a student of history, I also know civilization's debt to Islam. It was Islam - at places like ~Al-Azhar University - that carried the light of learning through so many centuries, paving the way for Europe's Renaissance and Enlightenment. It was innovation in Muslim communities that developed the order of algebra; our magnetic compass and tools of navigation; our mastery of pens and printing; our understanding of how disease spreads and how it can be healed. Islamic culture has given us majestic arches and soaring spires; timeless poetry and cherished music; elegant calligraphy and places of peaceful contemplation. And throughout history, Islam has demonstrated through words and deeds the possibilities of religious tolerance and racial equality.

I know, too, that Islam has always been a part of America's story. The first nation to recognize my country was Morocco. In signing the Treaty of Tripoli in 1796, our second President John Adams wrote, The United States has in itself no character of enmity against the laws, religion or tranquility of Muslims. And since our founding, American Muslims have enriched the United States. They have fought in our wars, served in government, stood for civil rights, started businesses, taught at our Universities, excelled in our sports arenas, won Nobel Prizes, built our tallest building, and lit the Olympic Torch. And when the first ~Muslim-American was recently elected to Congress, he took the oath to defend our Constitution using the same Holy Quran that one of our Founding Fathers - Thomas Jefferson - kept in his personal library.

So I have known Islam on three continents before coming to the region where it was first revealed. That experience guides my conviction that partnership between America and Islam must be based on what Islam is, not what it isn't. And I consider it part of my responsibility as President of the United States to fight against negative stereotypes of Islam wherever they appear.

But that same principle must apply to Muslim perceptions of America. Just as Muslims do not fit a crude stereotype, America is not the crude stereotype of a self-interested empire. The United States has been one of the greatest sources of progress that the world has ever known. We were born out of revolution against an empire. We were founded upon the ideal that all are created equal, and we have shed blood and struggled for centuries to give meaning to those words - within our borders, and around the world. We are shaped by every culture, drawn from every end of the Earth, and dedicated to a simple concept: E pluribus unum: Out of many, one.

Much has been made of the fact that an ~African-American with the name Barack Hussein Obama could be elected President. But my personal story is not so unique. The dream of opportunity for all people has not come true for everyone in America, but its promise exists for all who come to our shores - that includes nearly seven million American Muslims in our country today who enjoy incomes and education that are higher than average.

Moreover, freedom in America is indivisible from the freedom to practice one's religion. That is why there is a mosque in every state of our union, and over 1,200 mosques within our borders. That is why the U.S. government has gone to court to protect the right of women and girls to wear the hijab, and to punish those who would deny it.

So let there be no doubt: Islam is a part of America. And I believe that America holds within her the truth that regardless of race, religion, or station in life, all of us share common aspirations - to live in peace and security; to get an education and to work with dignity; to love our families, our communities, and our God. These things we share. This is the hope of all humanity.

Of course, recognizing our common humanity is only the beginning of our task. Words alone cannot meet the needs of our people. These needs will be met only if we act boldly in the years ahead; and if we understand that the challenges we face are shared, and our failure to meet them will hurt us all.

For we have learned from recent experience that when a financial system weakens in one country, prosperity is hurt everywhere. When a new flu infects one human being, all are at risk. When one nation pursues a nuclear weapon, the risk of nuclear attack rises for all nations. When violent extremists operate in one stretch of mountains, people are endangered across an ocean. And when innocents in Bosnia and Darfur are slaughtered, that is a stain on our collective conscience. That is what it means to share this world in the 21st century. That is the responsibility we have to one another as human beings.

This is a difficult responsibility to embrace. For human history has often been a record of nations and tribes subjugating one another to serve their own interests. Yet in this new age, such attitudes are self-defeating. Given our interdependence, any world order that elevates one nation or group of people over another will inevitably fail. So whatever we think of the past, we must not be prisoners of it. Our problems must be dealt with through partnership; progress must be shared.

That does not mean we should ignore sources of tension. Indeed, it suggests the opposite: we must face these tensions squarely. And so in that spirit, let me speak as clearly and plainly as I can about some specific issues that I believe we must finally confront together.

The first issue that we have to confront is violent extremism in all of its forms.

In Ankara, I made clear that America is not - and never will be - at war with Islam. We will, however, relentlessly confront violent extremists who pose a grave threat to our security. Because we reject the same thing that people of all faiths reject: the killing of innocent men, women, and children. And it is my first duty as President to protect the American people.

The situation in Afghanistan demonstrates America's goals, and our need to work together. Over seven years ago, the United States pursued al Qaida and the Taliban with broad international support. We did not go by choice, we went because of necessity. I am aware that some question or justify the events of 9/11. But let us be clear: al Qaida killed nearly 3,000 people on that day. The victims were innocent men, women and children from America and many other nations who had done nothing to harm anybody. And yet Al Qaeda chose to ruthlessly murder these people, claimed credit for the attack, and even now states their determination to kill on a massive scale. They have affiliates in many countries and are trying to expand their reach. These are not opinions to be debated; these are facts to be dealt with.

Make no mistake: we do not want to keep our troops in Afghanistan. We seek no military bases there. It is agonizing for America to lose our young men and women. It is costly and politically difficult to continue this conflict. We would gladly bring every single one of our troops home if we could be confident that there were not violent extremists in Afghanistan and Pakistan determined to kill as many Americans as they possibly can. But that is not yet the case.

That's why we're partnering with a coalition of forty-six countries. And despite the costs involved, America's commitment will not weaken. Indeed, none of us should tolerate these extremists. They have killed in many countries. They have killed people of different faiths - more than any other, they have killed Muslims. Their actions are irreconcilable with the rights of human beings, the progress of nations, and with Islam. The Holy Quran teaches that whoever kills an innocent, it is as if he has killed all mankind; and whoever saves a person, it is as if he has saved all mankind. The enduring faith of over a billion people is so much bigger than the narrow hatred of a few. Islam is not part of the problem in combating violent extremism - it is an important part of promoting peace.

We also know that military power alone is not going to solve the problems in Afghanistan and Pakistan. That is why we plan to invest $1.5bn each year over the next five years to partner with Pakistanis to build schools and hospitals, roads and businesses, and hundreds of millions to help those who have been displaced. And that is why we are providing more than $2.8 billion to help Afghans develop their economy and deliver services that people depend upon.

Let me also address the issue of Iraq. Unlike Afghanistan, Iraq was a war of choice that provoked strong differences in my country and around the world. Although I believe that the Iraqi people are ultimately better off without the tyranny of Saddam Hussein, I also believe that events in Iraq have reminded America of the need to use diplomacy and build international consensus to resolve our problems whenever possible. Indeed, we can recall the words of Thomas Jefferson, who said: I hope that our wisdom will grow with our power, and teach us that the less we use our power the greater it will be.

Today, America has a dual responsibility: to help Iraq forge a better future - and to leave Iraq to Iraqis. I have made it clear to the Iraqi people that we pursue no bases, and no claim on their territory or resources. Iraq's sovereignty is its own. That is why I ordered the removal of our combat brigades by next August. That is why we will honor our agreement with Iraq's democratically-elected government to remove combat troops from Iraqi cities by July, and to remove all our troops from Iraq by 2012. We will help Iraq train its Security Forces and develop its economy. But we will support a secure and united Iraq as a partner, and never as a patron.

And finally, just as America can never tolerate violence by extremists, we must never alter our principles. 9/11 was an enormous trauma to our country. The fear and anger that it provoked was understandable, but in some cases, it led us to act contrary to our ideals. We are taking concrete actions to change course. I have unequivocally prohibited the use of torture by the United States, and I have ordered the prison at Guantanamo Bay closed by early next year.

So America will defend itself respectful of the sovereignty of nations and the rule of law. And we will do so in partnership with Muslim communities which are also threatened. The sooner the extremists are isolated and unwelcome in Muslim communities, the sooner we will all be safer.

The second major source of tension that we need to discuss is the situation between Israelis, Palestinians and the Arab world.

America's strong bonds with Israel are well known. This bond is unbreakable. It is based upon cultural and historical ties, and the recognition that the aspiration for a Jewish homeland is rooted in a tragic history that cannot be denied.

Around the world, the Jewish people were persecuted for centuries, and anti-Semitism in Europe culminated in an unprecedented Holocaust. Tomorrow, I will visit Buchenwald, which was part of a network of camps where Jews were enslaved, tortured, shot and gassed to death by the Third Reich. Six million Jews were killed - more than the entire Jewish population of Israel today. Denying that fact is baseless, ignorant, and hateful. Threatening Israel with destruction - or repeating vile stereotypes about Jews - is deeply wrong, and only serves to evoke in the minds of Israelis this most painful of memories while preventing the peace that the people of this region deserve.

On the other hand, it is also undeniable that the Palestinian people - Muslims and Christians - have suffered in pursuit of a homeland. For more than sixty years they have endured the pain of dislocation. Many wait in refugee camps in the West Bank, Gaza, and neighboring lands for a life of peace and security that they have never been able to lead. They endure the daily humiliations - large and small - that come with occupation. So let there be no doubt: the situation for the Palestinian people is intolerable. America will not turn our backs on the legitimate Palestinian aspiration for dignity, opportunity, and a state of their own.

(APPLAUSE)

For decades, there has been a stalemate: two peoples with legitimate aspirations, each with a painful history that makes compromise elusive. It is easy to point fingers - for Palestinians to point to the displacement brought by Israel's founding, and for Israelis to point to the constant hostility and attacks throughout its history from within its borders as well as beyond. But if we see this conflict only from one side or the other, then we will be blind to the truth: the only resolution is for the aspirations of both sides to be met through two states, where Israelis and Palestinians each live in peace and security.

(APPLAUSE)

That is in Israel's interest, Palestine's interest, America's interest, and the world's interest. That is why I intend to personally pursue this outcome with all the patience that the task requires. The obligations that the parties have agreed to under the Road Map are clear. For peace to come, it is time for them - and all of us - to live up to our responsibilities.

Palestinians must abandon violence. Resistance through violence and killing is wrong and does not succeed. For centuries, black people in America suffered the lash of the whip as slaves and the humiliation of segregation. But it was not violence that won full and equal rights. It was a peaceful and determined insistence upon the ideals at the center of America's founding. This same story can be told by people from South Africa to South Asia; from Eastern Europe to Indonesia. It's a story with a simple truth: that violence is a dead end. It is a sign of neither courage nor power to shoot rockets at sleeping children, or to blow up old women on a bus. That is not how moral authority is claimed; that is how it is surrendered.

Now is the time for Palestinians to focus on what they can build. The Palestinian Authority must develop its capacity to govern, with institutions that serve the needs of its people. Hamas does have support among some Palestinians, but they also have responsibilities. To play a role in fulfilling Palestinian aspirations, and to unify the Palestinian people, Hamas must put an end to violence, recognize past agreements, and recognize Israel's right to exist.

At the same time, Israelis must acknowledge that just as Israel's right to exist cannot be denied, neither can Palestine's. The United States does not accept the legitimacy of continued Israeli settlements. This construction violates previous agreements and undermines efforts to achieve peace. It is time for these settlements to stop.

(APPLAUSE)

Israel must also live up to its obligations to ensure that Palestinians can live, and work, and develop their society. And just as it devastates Palestinian families, the continuing humanitarian crisis in Gaza does not serve Israel's security; neither does the continuing lack of opportunity in the West Bank. Progress in the daily lives of the Palestinian people must be part of a road to peace, and Israel must take concrete steps to enable such progress.

Finally, the Arab States must recognize that the Arab Peace Initiative was an important beginning, but not the end of their responsibilities. The ~Arab-Israeli conflict should no longer be used to distract the people of Arab nations from other problems. Instead, it must be a cause for action to help the Palestinian people develop the institutions that will sustain their state; to recognize Israel's legitimacy; and to choose progress over a self-defeating focus on the past.

America will align our policies with those who pursue peace, and say in public what we say in private to Israelis and Palestinians and Arabs. We cannot impose peace. But privately, many Muslims recognize that Israel will not go away. Likewise, many Israelis recognize the need for a Palestinian state. It is time for us to act on what everyone knows to be true.

Too many tears have flowed. Too much blood has been shed. All of us have a responsibility to work for the day when the mothers of Israelis and Palestinians can see their children grow up without fear; when the Holy Land of three great faiths is the place of peace that God intended it to be; when Jerusalem is a secure and lasting home for Jews and Christians and Muslims, and a place for all of the children of Abraham to mingle peacefully together.

(APPLAUSE)

... as in the story of Isra.

(APPLAUSE)

... as in the story of Isra, when Moses, Jesus, and Mohammed - peace be upon them - joined in prayer.

(APPLAUSE)

The third source of tension is our shared interest in the rights and responsibilities of nations on nuclear weapons.

(APPLAUSE)

This issue has been a source of tension between the United States and the Islamic Republic of Iran. For many years, Iran has defined itself in part by its opposition to my country, and there is indeed a tumultuous history between us. In the middle of the Cold War, the United States played a role in the overthrow of a democratically- elected Iranian government. Since the Islamic Revolution, Iran has played a role in acts of hostage-taking and violence against U.S. troops and civilians. This history is well known. Rather than remain trapped in the past, I have made it clear to Iran's leaders and people that my country is prepared to move forward. The question, now, is not what Iran is against, but rather what future it wants to build.

It will be hard to overcome decades of mistrust, but we will proceed with courage, rectitude and resolve. There will be many issues to discuss between our two countries, and we are willing to move forward without preconditions on the basis of mutual respect. But it is clear to all concerned that when it comes to nuclear weapons, we have reached a decisive point. This is not simply about America's interests. It is about preventing a nuclear arms race in the Middle East that could lead this region and the world down a hugely dangerous path.

I understand those who protest that some countries have weapons that others do not. No single nation should pick and choose which nations hold nuclear weapons. That is why I strongly reaffirmed America's commitment to seek a world in which no nations hold nuclear weapons. And any nation - including Iran - should have the right to access peaceful nuclear power if it complies with its responsibilities under the nuclear ~Non-Proliferation Treaty. That commitment is at the core of the Treaty, and it must be kept for all who fully abide by it. And I am hopeful that all countries in the region can share in this goal.

The fourth issue that I will address is democracy.

(APPLAUSE)

I know there has been controversy about the promotion of democracy in recent years, and much of this controversy is connected to the war in Iraq. So let me be clear: no system of government can or should be imposed upon one nation by any other.

That does not lessen my commitment, however, to governments that reflect the will of the people. Each nation gives life to this principle in its own way, grounded in the traditions of its own people. America does not presume to know what is best for everyone, just as we would not presume to pick the outcome of a peaceful election. But I do have an unyielding belief that all people yearn for certain things: the ability to speak your mind and have a say in how you are governed; confidence in the rule of law and the equal administration of justice; government that is transparent and doesn't steal from the people; the freedom to live as you choose. Those are not just American ideas, they are human rights, and that is why we will support them everywhere.

There is no straight line to realize this promise. But this much is clear: governments that protect these rights are ultimately more stable, successful and secure. Suppressing ideas never succeeds in making them go away. America respects the right of all peaceful and law-abiding voices to be heard around the world, even if we disagree with them. And we will welcome all elected, peaceful governments - provided they govern with respect for all their people.

This last point is important because there are some who advocate for democracy only when they are out of power; once in power, they are ruthless in suppressing the rights of others. No matter where it takes hold, government of the people and by the people sets a single standard for all who hold power: you must maintain your power through consent, not coercion; you must respect the rights of minorities, and participate with a spirit of tolerance and compromise; you must place the interests of your people and the legitimate workings of the political process above your party. Without these ingredients, elections alone do not make true democracy.

The fifth issue that we must address together is religious freedom.

Islam has a proud tradition of tolerance. We see it in the history of Andalusia and Cordoba during the Inquisition. I saw it firsthand as a child in Indonesia, where devout Christians worshipped freely in an overwhelmingly Muslim country. That is the spirit we need today. People in every country should be free to choose and live their faith based upon the persuasion of the mind, heart, and soul. This tolerance is essential for religion to thrive, but it is being challenged in many different ways.

Among some Muslims, there is a disturbing tendency to measure one's own faith by the rejection of another's. The richness of religious diversity must be upheld - whether it is for Maronites in Lebanon or the Copts in Egypt. And fault lines must be closed among Muslims as well, as the divisions between Sunni and Shia have led to tragic violence, particularly in Iraq.

Freedom of religion is central to the ability of peoples to live together. We must always examine the ways in which we protect it. For instance, in the United States, rules on charitable giving have made it harder for Muslims to fulfill their religious obligation. That is why I am committed to working with American Muslims to ensure that they can fulfill zakat.

Likewise, it is important for Western countries to avoid impeding Muslim citizens from practicing religion as they see fit - for instance, by dictating what clothes a Muslim woman should wear. We cannot disguise hostility towards any religion behind the pretence of liberalism.

Indeed, faith should bring us together. That is why we are forging service projects in America that bring together Christians, Muslims, and Jews. That is why we welcome efforts like Saudi Arabian King Abdullah's Interfaith dialogue and Turkey's leadership in the Alliance of Civilizations. Around the world, we can turn dialogue into Interfaith service, so bridges between peoples lead to action - whether it is combating malaria in Africa, or providing relief after a natural disaster.

The sixth issue that I want to address is women's rights.

I know there is debate about this issue. I reject the view of some in the West that a woman who chooses to cover her hair is somehow less equal, but I do believe that a woman who is denied an education is denied equality. And it is no coincidence that countries where women are well-educated are far more likely to be prosperous.

Now let me be clear: issues of women's equality are by no means simply an issue for Islam. In Turkey, Pakistan, Bangladesh and Indonesia, we have seen Muslim-majority countries elect a woman to lead. Meanwhile, the struggle for women's equality continues in many aspects of American life, and in countries around the world.

(APPLAUSE)

Now, there is no straight line to realize this promise. But this much is clear. Governments that protect these rights are ultimately more stable, successful and secure. Suppressing ideas never succeeds in making them go away. America respects the right of all peaceful and law-abiding voices to be heard around the world, even if we disagree with them. And we will welcome all elected, peaceful governments, provided they govern with respect for all their people.

This last point is important because there are some who advocate for democracy only when they're out of power. Once in power, they are ruthless in suppressing the rights of others.

(APPLAUSE)

So no matter where it takes hold, government of the people and by the people sets a single standard for all who would hold power. You must maintain your power through consent, not coercion. You must respect the rights of minorities and participate with a spirit of tolerance and compromise. You must place the interests of your people and the legitimate workings of the political process above your party.

Without these ingredients, elections alone do not make true democracy.

(AUDIENCE MEMBER SHOUTS)

Thank you.

(APPLAUSE)

The fifth issue that we must address together is religious freedom. Islam has a proud tradition of tolerance. We see it in the history of Andalusia and Cordoba during the Inquisition. I saw it firsthand as a child in Indonesia where devote Christians worshipped freely in an overwhelmingly Muslim country. 

Source: [[The Independent|http://www.independent.co.uk/news/world/middle-east/obamas-speech-cairo-speech-in-full-1696792.html]]
*[[LEO|http://dict.leo.org/]]
*[[dict.cc|http://www.dict.cc/]]
*[[PONS|http://www.pons.de/]], [[PONSline: Online-Suche|http://pons.eu/dict/search]]
*[[OALD Online|http://www.oup.com/elt/catalogue/teachersites/oald7/lookup?cc=global]] (Oxford University Press)
*[[BEOLINGUS - Your Online Dictionary|http://dict.tu-chemnitz.de/]] (TU Chemnitz)
*[[Merriam Webster Online Search|http://www.merriam-webster.com/dictionary/]]
<<tabs txtDictionaryEncyclopedia "Online-Wörterbücher" "Online-Wörterbücher" Online-Wörterbücher "Spezial-Wörterbücher" "Spezial-Wörterbücher" Spezial-Wörterbücher "Enzyklopädien" "Enzyklopädien" Enzyklopädien>>
/***
|Name|OpenTiddlersMacro|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#OpenTiddlersMacro|
|Version|0.2 |
|Requires|~TW2.08+|
!Description:
*Allows creation of tiddlyLinks that open multiple tiddlers.
*Also useful for creating links to shadowTiddlers, which if normally created are not in bold.

!Usage
{{{<<openTiddlers text:"TextForLink" tiddlers:"Tiddler1 Tiddler2 [[Tiddler with spaces]] Tiddler4">>}}}

!Example:
{{{<<openTiddlers text:"This link opens multiple tiddlers" tiddlers:"Project Saq">>}}}
<<openTiddlers text:"This link opens multiple tiddlers" tiddlers:"Project Saq">>

!History
*30-04-06, version 0.2, modifed and rename following feedback from Eric.
*29-04-06, version 0.1, working.

!To Do:
*option to close other tiddlers
*option to open in edit template

!Code
***/
//{{{
window.onClickMultiLink= function(e){
                         story.displayTiddlers(this,this.getAttribute("tiddlerstring").readBracketedList());
                         return(false);
}

config.macros.openTiddlers={};
config.macros.openTiddlers.handler = function(place,macroName,params,wikifier,paramString,tiddler){
                           var nAV = paramString.parseParams('test', null, true);
                           var text = nAV[0].text[0];
                           var tiddlerstring = nAV[0].tiddlers[0];
                           var btn= createTiddlyButton(place,text,null,onClickMultiLink,"tiddlyLinkExisting");
                           btn.setAttribute("tiddlerstring",tiddlerstring);
}
//}}}
<div class='header'  macro='gradient vert #FFF #FFF '>
  <div class='gradient'>   
    <div class='logo' ></div>           
    <div class='titleLine' >
      <!--<span class='searchBar' macro='search'></span>-->
      <span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
      <span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
      <!--<span class='siteVersion' refresh='content' tiddler='SiteVersion'></span>-->
</div>
<div id='topMenu' refresh='content' tiddler='MainMenu'></div>
    </div>
</div>
<div id='bodywrapper'>
<div id='newsArea'></div>
<div id='sidebar'>
	<div id='sidebarOptions' refresh='content' 	tiddler='SideBarOptions'></div>
	<!--<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>-->
       <div id='sidebarTabs' refresh='macro' force='false' macro='slider chkSideBarTabs SideBarTabs "index »" "display lists of tiddlers"'></div>
</div>
<div id='displayArea'>
	<div id='messageArea'></div>
	<div id='tiddlerDisplay'></div>
</div>
<div id='displayFooter'></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' 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>
<!--}}}-->
/***
|Name|PlayerPlugin|
|Source|http://www.TiddlyTools.com/#PlayerPlugin|
|Version|1.1.4|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|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.PlayerPlugin= {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:''|~SectionMacro|
|''Version:''|0.9.4 (20-Apr-2007)|
|''Author:''|[[Jack]]|
|''Type:''|Macro|
!Description
Allows you to create collapsable sections just like the slider macro but without needing to create new tiddlers for these sections.
!Usage
{{{<<section Title Tiddler Text goes here...
and can be multi-
line and include {${${monospace text}$}$}.
>>}}}
<<section Title Tiddler Text goes here...
and can be multi-
line and include {${${monospace text}$}$}.
>>
!Revision History
* Original by [[Jack]] 0.9
* Nested sliders and cookie persistence 0.9.1
* Removed crappy cookie persistance 0.9.2
* Bug-fix with quoted 2st parameter (thanks M. Macolio) 0.9.3
* Bug-fix with monospace text (thanks M. Macolio) 0.9.4
!Code
***/
//{{{
version.extensions.section = {major: 0, minor: 9, revision: 4, date: new Date("Apr 20, 2007")};

config.macros.section = {count:0,display:'none'};
config.macros.section.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
 this.slider(place,"chkSection" + this.count++,paramString.substr(params[0].length+(paramString.substr(params[0].length+1,1).match(/['"]/)?2:1)).replace(/\$\>/g, '>').replace(/}\$}\$}/, '}}}').replace(/{\${\${/, '{{{'),params[0], "tooltip");
}

config.macros.section.slider = function(place,cookie,text,title,tooltips) {
 var btn = createTiddlyButton(place,title,tooltips,config.macros.slider.onClickSlider,"tiddlyLink tiddlyLinkExisting"); 
 var panel = createTiddlyElement(place,"div",null,"timelineSliderPanel",null);
 panel.setAttribute("cookie",cookie);
 panel.style.display = config.options[cookie] ? "block" : "none";
 panel.style.display=this.display;
 if(text) wikify(text,panel);
};
//}}}
<<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">>
<<tabs txtMainTab "Timeline" "Timeline" TabTimeline "All" "All tiddlers" TabAll "Tags" "All tags" TabTags "More" "More lists" TabMore>>
<<tabs txtMainTab2 "News Ticker" "News Ticker" TabNews "Index" "Index" SideBarTabs>>
/***
|Name|SinglePageModePlugin|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Documentation|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|Version|2.9.5|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Story.prototype.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.06.12 [2.9.5] corrected 'scroll to top of page' logic in auto-scroll handling
| 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: 5, date: new Date(2008,6,12)};
//}}}
//{{{
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=true;
//}}}
//{{{
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 200ms after animation completes
		var delay=opt.chkAnimate?config.animDuration+200: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;
}
//}}}
Evangelische kooperative Gesamtschule

''Fachschaft Englisch''
~Wilhelm-Löhe-Schule
*[[Mathematisches Wörterbuch|http://www.math.uni-goettingen.de/baule/wbuch.html]]
*[[Math Dictionary|http://henked.de/maple/dictionary]]
*[[Medizinische Nachschlagewerke|http://www.medknowledge.de/recherche/medizin_deutsch_englisch.htm]]
*[[phrasen.com - Wörterbuch der Redewendungen|http://www.phrasen.com/]]
*[[Lebensmittel-Lexikon|http://www.lebensmittellexikon.de/dictionary/dic_en.php]]
/***
Inspired by k2

!General
***/
/*{{{*/
body {background:#132A3D;}
#contentWrapper{ background: #fff; border:1px solid #DDD; margin: 20px auto 0 auto; width: 960px; padding:0;}
/*}}}*/


/***
!Links
***/
/*{{{*/
a,
a.tiddlyLink,
a.button,
a.externalLink,
#sidebarOptions .sliderPanel a {color: #1D65BC; text-decoration: none; background: transparent; border: 0;}

a:hover,
a.tiddlyLink:hover,
a.button:hover,
a.externalLink:hover,
#sidebarOptions .sliderPanel a:hover {border: 0; color: #1D65BC; text-decoration: underline; background:transparent;}
#sidebarOptions hr {color: #b2b6be; background: #b2b6be; border-bottom: 1px;}
.button:active {background:#1d65bc; border:0;}
.viewer .button:active, .viewer .marked, .viewer .highlight {color: #fff !important; background: #3371a3; border: 0;}
/*}}}*/

/***
!Header
***/
/*{{{*/
/*.gradient {margin-top:20px; background:#3371A3;}*/
.gradient {margin-top:0px; background:#F0F0F5;}
/*.gradient {margin-top:20px; background: #3371A3 url(img/skye.jpg);}*/
/*.titleLine{padding: 77px 40px 32px 40px;}*/
/*.logo {float:left;margin: 30px 0px 0px 30px;width:106px;height:99px;background:#F0F0F5 url(http://www.wls-nbg.de/fileadmin/css/bilder/logo.gif);}*/
.logo {float:left;margin: 5px 20px 0px 40px;width:150px;height:136px;background: #F0F0F5 url(http://www.wls-eng.de/img/logo2.gif);}
.titleLine{padding: 40px 40px 32px 170px;}
.titleLine a:hover{color:#fff; border-bottom:1px dotted #eee; text-decoration:none;}
.titleLine a{color:#fff; border-bottom:1px dotted #ccc;}
.siteTitle {	font-size: 2.2em;font-weight: bold;font-family:verdana,arial,helvetica; color:#4A4A4A;}
.siteSubtitle {font-size: 1.0em; display: block; margin: .3em auto 0 auto; font-family:verdana,arial,helvetica;color:#4A4A4A;}
/*.siteVersion {font-size: 1.0em; display: block; margin: .0em auto 0 auto; color:#fff;}*/
/*}}}*/

/***
!TopMenu
***/
/*{{{*/
#topMenu br {display:none;  }
#topMenu { background: #3371A3; font-size:1em; }
#topMenu { padding:5px 32px; }
#topMenu .button, #topMenu .tiddlyLink {margin-left:0.1em; margin-right:0.1em; padding:0.5em; color:white; font-weight:normal;}
#topMenu a.button:hover, #topMenu a.tiddlyLink:hover { background:#fff; color:#333; text-decoration:none;}

.searchBar {float:right; font-size:0.9em; position:relative; top:45px;}
.searchBar .button {display:block; border:none; /*color:#ccc;*/}
.searchBar .button:hover {border:none; /*color:#eee;*/}
.searchBar input {border: 1px inset #1d65bc; background:#dbdee3; margin-left:5px;}
.searchBar input:focus {	border: 1px inset #3371a3; background:#fff;}
/*}}}*/

/***
!Display
***/
/***
!!!Display General
***/
/*{{{*/

/*#displayArea { margin: 0em 15.7em 0em 1em; }*/
#displayArea { margin: 0em 185px 0em 1em; }

#displayFooter {
 clear: both;
}
#displayFooter {
 clear: both;
}

#tiddlerDisplay{padding-top:1em;}
/*}}}*/
/***
!!!Tiddler
***/
/*{{{*/
/*.tiddler {margin-bottom:1em; padding-bottom:1em;}*/
/*.tiddler {padding-left:2em;}*/
/*.tiddler {border-bottom:3px solid #EEF1F3; padding-bottom:2em; padding-top:0em;}*/
.tiddler {margin-bottom:1em; padding: 0 2em 2em 2em; overflow: auto; width: 95%}

.title {color:#333; font-size:1.8em; border-bottom:1px solid #333; padding-bottom:0.3px;}
.title {border-bottom:none; margin-right:8em;}

.subtitle { font-size:90%; color:#bbb; padding-left:0.25em; margin-top:0.1em; }

.shadow .title {
	color: #aaa;
}

h1,h2,h3,h4,h5 { color: #333; background: transparent; padding-bottom:2px; border-bottom: 1px dotted #666; }

* html .viewer pre {
	margin-left: 0em;
}

.viewer hr {
	border: 0;
	border-top: solid 1px #333;
 margin: 0 8em;
	color: #333;
}

.viewer a.button {color:#000; border:1px solid #1D65BC; font-weight:bold;}

.viewer a.button:hover{color:#fff; background:#3371a3; text-decoration:none;}

.tagClear {clear:none;}

.toolbar .button {color:#bbb; border:none;}
.toolbar .button:hover, .toolbar .highlight, .toolbar .marked, .toolbar a.button:active {background:transparent; color:#111; border:none; text-decoration:underline;}

h1,h2,h3,h4,h5 { color: #333; background: transparent; padding-bottom:2px; border-bottom: none; }

.viewer pre, .viewer code {
border: 1px solid #B2B6BE;
background: #EBEEF1;} 



.tagging, .tagged {
	border: 1px solid #dbdee3;
	background-color: #ebeef1;
}

.selected .tagging, .selected .tagged {
	background-color: #dbdee3;
	border: 1px solid #B2B6BE;
}

 .tagging .listTitle, .tagged .listTitle {
	color: #bbb;
}

.selected .tagging .listTitle, .selected .tagged .listTitle {
	color: #014; 
}

.tagging .button:hover, .tagged .button:hover {
		border: none; background:transparent; text-decoration:underline; color:#014;
}

.tagged .highlight, .tagged .marked, .tagged a.button:active {text-decoration:underline; background:transparent; color:#014;}

.tagging .button, .tagged .button {
		color:#bbb;
}

.selected .tagging .button, .selected .tagged .button {
		color:#014;
}

.viewer blockquote {
	border-left:7px solid #ebeef1;
}

.viewer table {
	border: 1px solid #3371a3;
}

.viewer th, thead td {
	background: #3371a3;
	border: 1px solid #3371a3;
	color: #fff;
}

.viewer td, .viewer tr {
	border: 1px solid #3371a3;
}
/*}}}*/
/***
!!!Editor
***/
/*{{{*/

* html .editor textarea, * html .editor input {
	width: 98%;
}
.editor input, .editor textarea {
	border: 1px solid #1d65bc; background:#ebeef1;
}

.editor {padding-top:0.3em;}

.editor textarea:focus, .editor input:focus {
	border: 1px inset #3371a3; background:#fff;
}
/*}}}*/

/***
!Sidebar
***/
/*{{{*/
#sidebar{
position:relative;
float:right;
margin-bottom:1em;
display:inline;
width: 17em;
}


#sidebar .tabSelected, #sidebar .tabSected:hover {
 color: #000;
 background: #dbdee3;
 border-top: solid 1px #B2B6BE;
 border-left: solid 1px #B2B6BE;
 border-right: solid 1px #B2B6BE;
 border-bottom:solid 1px #dbdee3 !important;
padding-bottom:1px;
text-decoration:none;
}

#sidebarOptions, #sidebarTabs  {border-left: 1px solid #B2B6BE;}
#sidebarTabs {margin-top: 2px; border-bottom: 1px solid #B2B6BE;}
#sidebarTabs .button {margin-left: 0.6em;}

#sidebar .tabUnselected, #sidebar .tabUnselected:hover {
color: #F0F3F5;
background: #B2B6BE ;
border: solid 1px #B2B6BE ;
padding-bottom:1px;
}

#sidebarTabs .tabContents {border:none; background:#DBDEE3; }

#sidebarTabs .tabContents {border-top:1px solid #B2B6BE;}

#sidebarTabs .tabContents .tabContents {border-left:1px solid #b2b6be;}

#sidebarOptions .sliderPanel {
	background: #EBEEF1; border:none;
}

#sidebarOptions input {
	border: 1px solid #1d65bc;
}

#sidebarOptions input:hover, #sidebarOptions input:active,  #sidebarOptions input:focus {
	border: 1px inset #3371a3;
}

#sidebar {background: #EBEEF1 ; right:0;}

#sidebar .button:active, #sidebar .marked, #sidebar .highlight {color:#014; background:transparent;text-decoration:none}
/*}}}*/

/***
!!Popups
***/
/*{{{*/
/*.popup {background: #3371a3; border: 1px solid #333;}*/
.popup {background: #3371a3; border: 1px solid #333; line-height:200%;}
.popup hr {color: #333;	background: #333;	border-bottom: 1px;}
.popup li.disabled {color: #333;}
.popup li a, .popup li a:visited {color: #eee; border: none;}
.popup li a:hover {background: #3371a3; color: #fff; border: none; text-decoration:underline;}
.popup a, .popup a:visited { color: #eee; border: none;font-weight: normal;}
.popup a:hover { background: #3371a3; color: #fff; border: none; text-decoration:underline;}
/*}}}*/




/***
!!Message Area
***/
/*{{{*/

#messageArea {
	border: 2px dashed #3371a3;
	background: #dbdee3;
	color: #fff;
        font-size:90%;
}

#messageArea .button {
	color: #1d65bc;
	background: #ebeef1;
        text-decoration:none;
        font-weight:bold;
        border:none; 
}

#messageArea a.button {color:#1d65bc;}

#messageArea .button:hover {text-decoration:underline;}
/*}}}*/
/***
!!Tabs
***/
/*{{{*/
.viewer .tabSelected, .viewer .tabSelected:hover{
	color: #014;
	background: #eee;
	border-left: 1px solid #B2B6BE;
	border-top: 1px solid #B2B6BE;
	border-right: 1px solid #B2B6BE;
}

.viewer .tabUnselected, .viewer .tabUnselected:hover {
	color: #fff;
	background: #B2B6BE;
}

. viewer .tabContents {
	color: #014;
	background: #ebeef1;
	border: 1px solid #B2B6BE;
}
/*}}}*/
.blog h2, .blog h3, .blog h4{
  margin:0;
  padding:0;
border-bottom:none;
}
.blog {margin-left:1.5em;}  


.blog .excerpt {
  margin:0;
margin-top:0.3em;
  padding: 0;
  margin-left:1em;
  padding-left:1em;
  font-size:90%;
  border-left:1px solid #ddd;
}

#tiddlerWhatsNew h1, #tiddlerWhatsNew h2 {border-bottom:none;}
div[tags~="RecentUpdates"], div[tags~="lewcidExtension"] {margin-bottom: 2em;}


#topMenu .fontResizer {float:right;}

#topMenu .fontResizer .button{border:1px solid #3371A3;}
#topMenu .fontResizer .button:hover {border:1px solid #fff; color:#3371A3;}
#sidebarTabs .txtMainTab .tiddlyLinkExisting {font-weight: normal; font-style: normal;}
#sidebarTabs .txtMoreTab .tiddlyLinkExisting {font-weight: bold; font-style: normal;}

/*{{{*/
.downloadLink {font-size:110%; padding-left:2em;}
.downloadLink a {border:2px solid #ddd; padding:0.5em;}
.downloadLink a:hover {border:2px solid #ddd; padding:0.5em; background:#3372A3; color:#fff;}
/*}}}*/

.viewer {padding-top:1.0em;}
#btn-login {float:right;margin:-5px 0 0 0;padding:0;}

[[CarpeSliderStyle]]
[[MaximalePunktzahlStyle]]
[[BewertungVersionStyle]]
/*{{{*/
* 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:0px; top:0px;}

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

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

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin: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:16em; 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:0px 3px 0px 3px;}

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

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

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

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

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

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#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;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
.header {display:none;}
}
/*}}}*/
*[[Political cartoons by Don Wright|http://cagle.msnbc.com/politicalcartoons/PCcartoons/donwright.asp]]
*[[Karikaturen und Cartoons für den Unterricht|http://www.mygeo.info/karikaturen.html]]
*[[Roger Schmidt|http://www.karikatur-cartoon.de/]]
*[[Punch Cartoon Library|http://www.punch.co.uk/]] (the world’s best and largest repository of cartoon art available for licensing)
*[[Bayerischer Schulserver|http://www.schule.bayern.de/unterricht/]]
*[[Lehrer Online|http://www.lehrer-online.de/]] unterstützt angehende und praktizierende Lehrerinnen und Lehrer mit einem kostenfrei nutzbaren ~Internet-Service rund um den schulischen Einsatz digitaler Medien.
**[[lo-net²|http://www.lo-net2.de/ww3ee/101505.php?sid=10997936794399414722344764476010]]: Die Arbeitsumgebung von ~Lehrer-Online
*[[Linux-Schulserver|http://www.linux-schulserver.de/]]
*[[bayernmoodle.de|http://www.bayernmoodle.de/]]
*[[ZUM-Wiki|http://wiki.zum.de/Hauptseite]]
*[[Bayerisches Gymnasialnetz|http://www.gymnasium.bayern.de/gymnasialnetz/index.shtml]]
*[[Fachbetreuung als  Führungsaufgabe|http://fachbetreuung.gym-mfr.de/]]
*[[Medienpädagogisch-Informationstechnische Beratung Gymnasium Mittelfranken|http://mib.gym-mfr.de/]]
*[[Regionale Lehrerfortbildung (RLFB) für die Gymnasien in Mittelfranken|http://www.gymnasium.bayern.de/gymnasialnetz/mittelfranken/fortbildung/rlfb/index.shtml]]
*[[Schulentwicklung|http://www.gymnasium.bayern.de/gymnasialnetz/mittelfranken/schulentwicklung/]]
*[[Virtuelle Schule: Fach Englisch|http://www.virtuelle-schule.de/www_virtuelle_schule/englisch_11_11_1_f.htm?timestamp=1223448860342]]
*[[Fremdsprachen und neue Medien, Infoblog von Jürgen Wagner|http://fremdsprachenundneuemedien.blogspot.com/]]
*[[englischlehrer.de|http://englischlehrer.de/]]
!!!Formalia zur Schulaufgabenkonzeption und -respizienz
#Sämtliche ''Bewertungseinheiten'' müssen auf dem Schulaufgabenblatt ersichtlich sein
#Bei ''offenen Fragen'' (z.B. Charakterisierung einer Person / Sache) ist die Anzahl der erwarteten Inhaltsaspekte anzugeben (Unter- und Mittelstufe)
#Klare ''Trennung in Inhalts- und Sprachpunkte'' bei freier Textproduktion
#''Korrektur'' muss im Detail ''nachvollziehbar'' sein: Klare Zuordnung von Bewertungseinheiten zum Erwartungshorizont
#''Arbeiten / Klassensatz auf Vollständigkeit'' überprüfen. (Sollte eine Arbeit unauffindbar sein, so muss eine formlose Bestätigung der Eltern über die Kenntnisnahme der Note beigelegt werden)
#''Arbeiten alphabetisch ordnen''
#''Noten 5 und 6 unterschreiben lassen'' bis einschließlich G10
#''Angabenblätter doppelt beilegen''
#''Musterlösung nicht vergessen'' (auch G5 / G6 alle Teile!)
#Auch ''bei Nachschriften doppeltes Angabenblatt und Musterlösung beifügen''
#''__Genaue__ Angaben zu Punkte- bzw. Notenschlüssel machen'' (d.h. nicht nach wenigen Angaben mit „usw.“ abbrechen) 
#''Rotes Umschlagblatt'' vollständig ausfüllen (in der Kollegstufe Noten und Punkte). Bitte auch Nachschriften (links) und fehlende Arbeiten (rechts) eintragen. Bei fehlenden Schülerarbeiten Bestätigung der Eltern bei Note 5 / 6 beilegen.
#''Parallelschreiben'' auf Deckblatt vermerken und die erforderlichen Abstimmungen abgleichen.
#''Notenübersicht'', wenn möglich auf der Klassenliste, inklusive Punkte- bzw. Fehlerübersicht der einzelnen Teile, beifügen
#Die von der Schulleitung vorgegebenen ''Termine einhalten'', d.h. 2 Wochen nach Rückgabe an die Schüler die Arbeit bei __Fr. Weiß im Sekretariat abgeben__ (ganz wichtig vor den Sommerferien!)


*[[Bayerisches Kultusministerium|http://www.km.bayern.de/km/index.asp]]
**[[Elternrundbrief|http://www.km.bayern.de/km/rat_auskunft/elternrundbrief/]]
**[[Lehrerrundbrief|http://www.km.bayern.de/km/rat_auskunft/lehrerrundbrief/]]
**[[GSO|http://www.verwaltung.bayern.de/Titelsuche-.116.htm?purl=http://by.juris.de/by/GymSchulO_BY_2007_rahmen.htm]]
*[[ISB → Fach Englisch|http://www.isb.bayern.de/isb/index.asp?MNav=0&QNav=8&TNav=1&INav=0&Fach=22]]
**[[ISB → Fach Englisch → Lehrpläne G8|http://www.isb.bayern.de/isb/index.asp?MNav=0&QNav=4&TNav=0&INav=0&Fach=22&LpSta=6&STyp=14]]
**[[ISB → Fach Englisch → Materialien (z.B. Kontaktbriefe)|http://www.isb.bayern.de/isb/index.asp?MNav=0&QNav=12&TNav=0&INav=0&Fach=22]]
**[[ISB: Lehrplan|http://www.isb-gym8-lehrplan.de/]]
**[[Die mündliche Prüfung gemäß GSO § 54|http://www.isb-gym8-lehrplan.de/contentserv/3.1.neu/g8.de/index.php?StoryID=26786]]
*[[Der Ministerialbeauftragte für die Gymnasien in Mittelfranken|http://www.gymnasium.bayern.de/gymnasialnetz/mittelfranken/dienststelle/]]
*[[FIBS (Fortbildung in bayerischen Schulen)|http://fortbildung.schule.bayern.de/]]
*[[Akademie für Lehrerfortbildung und Personalführung in Dillingen|http://alp.dillingen.de/]]
*[[Bayerisches Gymnasialnetz|http://www.gymnasium.bayern.de/gymnasialnetz/]]
*[[Englisch interaktiv (Ulrich Koch, FLG Bamberg)|http://www.homepage.bnv-bamberg.de/englischinteraktiv/index.htm]]
*[[Hot Potatoes by Half-Baked Software|http://hotpot.uvic.ca/index.htm#downloads]]: <<slider sliderHotPotatoes sliderHotPotatoesSuite "Hot Potatoes suite" "Hot Potatoes by Half-Baked Software">>
*[[Multiple-Choice Exercises (Javascript)|http://www.lapasserelle.com/lm/pagespeciales/half.baked/halfbakedmchoice.html]]
*[[English Grammar Quizzes Using JavaScript|http://www.salonhogar.net/Ingles/Total/q/j/index.html]]
*[[ENGLISH GRAMMAR EXERCISES|http://englishonline.sites.uol.com.br/english/intermediate.htm]]
*[[Free English grammar and vocabulary exercises|http://www.speakspeak.com/html/d3_english_resources_grammar_practice.htm]]
[[Enya - Watermarks]]
[[Enya - If I could be where you are]]
<<tabs txtJahrgangsstufentestsTab "Landesweit" "Jahrgangsstufentests landesweit" TabJgsttestsLandesweit "Schulintern" "Jahrgangsstufentests schulintern" TabJgsttestsSchIntern>>
!!!Landesweite Jahrgangsstufentests (z. Zt. in G 6 und G 10)
!!!!Vorbereitung
*''Frühzeitige Information der Schüler und Eltern''. Letztere geschieht i.d.R. durch das von der Fachbetreuung entworfene ~Eltern-Anschreiben am Ende des vorigen Schuljahres, also in G 5 und in G 9.
*''Exemplarische Aufgabenformen'' im Unterricht ''mit den Schülern einüben''.
*''Eltern und Schüler über weitere Übungsmöglichkeiten informieren'', z. B. durch Angabe der ~Internet-Adresse für die Tests der vergangenen Schuljahre ([[ISB: Jahrgangsstufenarbeiten|http://www.isb.bayern.de/isb/index.aspx?MNav=6&QNav=11&TNav=0&INav=0&Fach=22&VTyp=1]]), oder durch die Publikationen des [[Stark-Verlages|http://www.stark-verlag.de]].
!!!!Durchführung
*''Am Tag des Tests rechtzeitiges Treffen aller beteiligten 4 Englischlehrer'' vereinbaren, um letzte Absprachen festzulegen.
*''Einhaltung aller Absprachen zur Durchführung und Arbeitszeit''
!!!!Korrektur
''Mindestens ein gemeinsames Treffen aller Fachlehrer der Jahrgangsstufe für Korrekturabsprachen'' (Fehlerwertung, noch akzeptable Alternativen, ~Niveau-Festlegung bei freier zu gestaltenden Teilen, Umrechnung von BE in Notenstufen, falls nicht vorgegeben, etc.) ist unerlässlich. Ziel ist die Vergleichbarkeit der Korrektur und Bewertung. Ungleichheit bedeutet eine evtl. ungerechte Benotung für manche Schüler und für uns alle vielleicht mehr Arbeit.
!!!!Respizienz
''Tests werden als halbe Schulaufgabe gewertet'' und auch als solche in der Respizienz  behandelt (vgl. Checkliste [[Formalia zur Schulaufgabenkonzeption und -respizienz|TabFormaliaSchAKonzeption]]).
!!!Schulinterne Jahrgangsstufentests(z. Zt. in G 6 und evtl. G 10)
!!!!Vorbereitung
*''Festlegung des gemeinsamen Termins'' (Datum, Stunde) durch ''alle 4 Fachkollegen zu Beginn des Schuljahres''
*''Eintrag in den ~Schulaufgaben-Kalender'' und Information an Irene Reichelsdorfer
*''Rechtzeitige Information der Schüler und Eltern'' (neben dem bereits unter „landesweit“ genannten Rundschreiben kann dies auch – vor allem in G 6 – beim 1. Elternabend des Schuljahres geschehen, auch in Absprache mit dem Deutschlehrer)
*''Rechtzeitige Information an diejenigen Kollegen, deren Stunde für den Test gebraucht wird''; Klärung der Aufsichtsfrage mit __Irene Reichelsdorfer__
!!!!Planung und Durchführung
*''Stoff/Themenbereiche/Aufgabenformen für den Test frühzeitig festlegen'', so dass evtl.  Zeit bleibt, noch nicht Behandeltes nachzuarbeiten
*''Verbindlich'' – insbesondere für Jgst. 6 – ''sollten dabei der im Lehrbuch als obligatorisch ausgewiesene Wortschatz und die Grammatik sei''n. Fakultativer oder nicht in allen Parallelklassen behandelter Wortschatz ist nicht aktiv einzufordern.
*''Planung der Arbeitsteilung'': Welcher Kollege übernimmt verbindlich bis zu einem vereinbarten Zeitpunkt die Ausarbeitung eines Teilbereichs, dann Austausch, Besprechung, Gesamtkonzept und Erwartungshorizont
*''Vorlegen des Gesamtkonzepts bei der Fachbetreuung'' (__G 6: M. Müller__, __G 10: R. Saugeon__) 
!!!!Korrektur
''Mindestens ein gemeinsames Treffen aller Fachlehrer der Jahrgangsstufe für Korrekturabsprachen'' (Fehlerwertung, noch akzeptable Alternativen, ~Niveau-Festlegung bei freier zu gestaltenden Teilen, Umrechnung von BE in Notenstufen, falls nicht vorgegeben, etc.) ist unerlässlich. Ziel ist die Vergleichbarkeit der Korrektur und Bewertung. Ungleichheit bedeutet eine evtl. ungerechte Benotung mancher Schüler und vielleicht auch mehr Arbeit für uns alle (Vgl. KMS zur Möglichkeit einer zwingenden Neukorrektur von Jahrgangsstufentests bei ~Nicht-Einhaltung von Vorgaben)
!!!!Respizienz
''Jahrgangsstufentests werden als halbe Schulaufgabe gewertet'' und sind auch als solche zu behandeln (vgl. Checkliste [[Formalia zur Schulaufgabenkonzeption und -respizienz|TabFormaliaSchAKonzeption]]).
*[[TIME|http://www.time.com/time/]]
*[[Newsweek|http://www.newsweek.com/]]
<<tabs txtMaterialienTab "Digitale Medien" "Digitale Medien" TabDigitaleMedien "Interaktive Tools" "Interaktive Tools" TabInteraktiveTools "Moodle" "Moodle" TabMoodle "Software-Realisierungen" "Software-Realisierungen" TabSoftwareRealisierungen>>
!!Dokumentation zu / Einführung in Moodle
*[[Moodle für Einsteiger|http://www.lehrer-online.de/moodle-nutzungsanleitung.php?sid=28477847806443925822521272127900]]
*[[Unterrichtsbeispiele|http://www.lehrer-online.de/490371.php?sid=28477847806443925822521272132330]]
*[[Moodle in Österreich (edumoodle.at)|http://www.edumoodle.at/moodle/]]
*[[Lehrerfortbildung Baden-Württemberg|http://lehrerfortbildung-bw.de/elearning/moodle/]]
*[[Moodle-Links der Uni Saarbrücken|http://www.lpm.uni-sb.de/el/moodlelinks.htm]]
!!Anwendungen
*[[bayernmoodle.de|http://www.bayernmoodle.de/]]
*[[Digitale Schule Bayern: Moodle|http://moodle.mzml.de/moodle/]]
!!Moodle in Bayern: Kultusministerium, Schulen...
*[[Pressemitteilung Nr. 185 vom 2. Juli  2008 |http://www.km.bayern.de/km/asps/presse/presse_anzeigen.asp?index=1465]]
*[[mittelfranken.bayernmoodle.de|http://mittelfranken.bayernmoodle.de/]]
*[[Seite der Wilhelm-Löhe-Schule bei mittelfranken.bayernmoodle.de|http://mittelfranken.bayernmoodle.de/course/category.php?id=1593]]
<<tabs txtMultimediaTab "Scotland" "Scotland" TabScotland "Ireland" "Ireland" TabIreland "USA" "USA" TabUSA>>
!!!Mündliche Prüfung als Ersatz einer Schulaufgabe
Schuljahr:
Klasse(n):
#''Festlegung des Termins'' (Wochentag / Stunde) zu Beginn des Schuljahrs. Eintrag in den Schulaufgabenkalender.
#''Nicht nur die letzte Schulaufgabe ersetzen''; über das Schuljahr verteilen; dabei unbedingt Absprache mit den übrigen Fachschaftskollegen in einer Klasse.
#''Festlegung des Beisitzers / Protokollanten'' zu ''Beginn des Schuljahres''
#Für ''Pos. 1 – 3 ist erforderlich: Absprache mit den Kollegen'', um Häufungen (Termin / Beisitzer) zu vermeiden. Sofortige Information von __Irene Reichelsdorfer__.
#''Information der Eltern''
#''Information der Kollegen'', deren ''Stunden von der Prüfung tangiert'' sind.
#''Einheitliche Zeitpläne''
#''Absprache über einheitliche Aufgabenformen'' innerhalb einer Jahrgangsstufe
#Nur ''1 Prüfungstag pro Klasse''
#''Frühzeitige Raumbelegung''; günstig ist Raum EC 14. Mitteilung an __Irene Reichelsdorfer__
#''Einheitliches Bewertungsniveau'' (__Klasse 8: A2 / A2+__, __Klasse 11: B1/ B1+__)
#''Einheitliche Protokolle''
#''In die Respizienz gehören'': __Zeitplan__, __genaue Aufgabenstellung für jeden Schüler__, __Bewertungsbögen__, __Formblatt Bewertungskriterien__, __Übersicht über die verwendeten Realien__
#''Prüfungsformen rechtzeitig den Schülern mitteilen'' und ''einüben''

<html><iframe src="http://aux.saugeon.de/rsstickerajax/rssticker.html" width="99%" height=500" frameborder="0"></iframe></html> 
*''England''
**[[The Bishop of Hereford's Bluecoat School|http://www.bhbs.hereford.sch.uk/]]
**[[Whitgift|http://www.whitgift.co.uk/]]
*''Schottland''
**[[Lomond School|http://www.lomond-school.org/]]
''Neukonzeptionierung der schriftlichen Leistungserhebungen (inhaltlich und formal)'' (Stand: September 2008)

Bezüglich der Neukonzeptionierung der schriftlichen Leistungserhebungen ist folgendes zu beachten:
# In ''G5 / G6 / G7'' muss einmal pro Schuljahr eine //Reading Comprehension// und einmal eine //Listening Comprehension// abgehalten werden. Das Typoscript ist bei der Respizienz abzugeben.
# In ''G5 / G6 / G7'' muss mindestens einmal pro Schuljahr die Übersetzung durch //Text Production// bzw. //Composition// und einmal durch eine  //~Mediation-Übung// ersetzt werden.
# Grammatikübungen sind stets nur kontextualisiert.
# Ein situativer Gesamtkontext für die ganze Schulaufgabe ist wünschenswert, aber fakultativ, da er nicht immer machbar ist.
# In ''G5 / G6 / G7'' sollen einzelne zu übersetzende Sätze lediglich zur Überprüfung von besonderen kontrastiven Aspekten eingesetzt werden. 
# In ''G8'' sollen die Schulaufgaben mindestens je einmal pro Schuljahr eine //Text Production//, eine //Reading Comprehension//, eine //Listening Comprehension//, eine //~Mediation-Übung// (~Deutsch-Englisch und ~Englisch-Deutsch: kontrastive Problembereiche) sowie //Grammatikübungen// enthalten.
# ''G9 / G10'': Konzentration auf Reading Comprehension; außerdem Grammatikübungen (G9), Mediation,  Listening Comprehension, Text Production.

Für die Klassen ''G11 – K13'' gelten folgende Fachschaftsbeschlüsse:
# ''G11'': 
#*1 Version pro Schuljahr; Umfang etwa 170/180 Wörter;  Arbeitszeit ca. 50 Minuten.
#*Textaufgabe: 2 Fragen und Composition oder 3 Fragen oder 2 komplexe Fragen; Arbeitszeit ca. 50 Minuten.
# ''K12 / K13 Grundkurs'':
#* 1 Version, 200 – 250 Wörter, Arbeitszeit ca. 60 Minuten.
#* Textaufgabe: 2 Fragen und Composition, Arbeitszeit ca. 75 Minuten.
#* //Listening Comprehension// als Bestandteile einer Klausur wünschenswert
#* Neue Aufgabentypen (cartoon, graph, interview, speech...) in Klausuren integrieren.
# ''K12 / K13 Leistungskurs'':
#* 1 Version, ca. 250 Wörter, Arbeitszeit 60 - 70 Minuten.
#* Textaufgabe: 3 Fragen (oder 2 komplexe Fragen) und Composition, Arbeitszeit ca. 90 Minuten. 
#* //Listening Comprehension// als Bestandteile einer Klausur wünschenswert
#* Neue Aufgabentypen (cartoon, graph, interview, speech...) in Klausuren integrieren.
*[[Wilhelm-Löhe-Schule|http://www.wls-nbg.de/]]
*[[Die Gymnasien in Mittelfranken|http://www.gymnasium.bayern.de/gymnasialnetz/asps/gym_mfr.asp]]
*[[Bayern|http://www.schulferien.org/Bayern/bayern.html]]
*[[Alle Bundesländer|http://www.schulferien.org/]]
*[[Sommerferien Ausland|http://www.autokiste.de/start.htm?site=/verkehr_reise/ferienkalender/sommerferien_intl.htm]]
[[Video Celtic Music #6: Flower of Scotland]]
[[The McCalmans|http://www.the-mccalmans.com/index.html]]
*~Software-Realisierungen
**[[Übungsaufgaben stellen mit JavaScript|http://www.phil.uni-sb.de/mz/verweise/psych/aufgaben/aufgaben.html]]
**[[Sample Multiple Choice Test With Javascript|http://www.ivyrun.com/education/resources/mctest.htm]]
**[[Custom Quiz Script Makers|http://javascript.about.com/od/quizscripts/Custom_Quiz_Script_Makers.htm]]
*[[Religionspädagogisches Zentrum Heilsbronn|http://www.rpz-heilsbronn.de/tgh/index.htm]]
*[[Missionswerk der Evang.-Luth. Kirche in Bayern, Neuendettelsau|http://www.missionswerk-bayern.de]]
<<timeline better:true firstDay:20100923>>
[[Barack Obama - Inauguration Speech 2009]]
[[Obama's Cairo speech]]
*[[Cornelsen|http://www.cornelsen.de/cornelsen_de/cornelsen_de.html]]
*[[Klett|http://www.klett.de/]]
*[[Hueber|http://www.hueber.de/]]
!!Celtic Music #6: "Flower of Scotland"
<<player id=6 flash http://de.youtube.com/v/qfq7z9mkXZs 425 344>>
|!Markup|!Explanation|
| {{{|}}} |Column Seperator |
| {{{!}}} |Heading (Row or Column) |
| {{{>}}} |Column Span |
| {{{~}}} |Row Span |
| {{{|Left |}}} |Left Align |
| {{{| Right|}}} |Right Align|
| {{{| Center |}}} |Center Align |
| {{{|Caption|c}}} |Table Caption (Can be at top or bottom)|
| {{{|Header|h}}} |Marks the row as being a header row (will be wrapped with a {{{<thead>}}} and so all entries are automatically formatted as per {{{|!}}} cells)|
| {{{|Footer|f}}} |Marks the row as being a footer row (will be wrapped with a {{{<tfoot>}}}, no special formatting is pre-defined for this but can be added to your own CSS)|
| {{{|CSSclass|k}}} |Applies a CSS class to the table to allow additional formatting (NB: only works if no whitespace after the k)|
|>|To have a table with no borders at all. Use {{{|noBorder|k}}} with the CSS (in your StyleSheet tiddler):<br />{{{ .noBorder,.noBorder td,.noBorder th,.noBorder tr{border:0} }}}|
|>|!Sample Table|
|>|{{{|table caption|c}}}<br />{{{|header|header|h}}}<br />{{{|text|more text|}}}<br />{{{|!heading|!heading|}}}<br />{{{|>|colspan|}}}<br />{{{|rowspan|left align |}}}<br />{{{|~| center |}}}<br />{{{|bgcolor(green):green| right|}}}<br />{{{|footer|footer|f}}} |
|>|<<tiddler ./tblShow>>|

!Notes
You can use the custom CSS formatter in combination with headers and lists to allow new lines within the entry. e.g.:
{{{
#{{block{
Bullet 1
Some text in the same bullet
(Note that "block" can be anything, it is the formatters CSS class name)
 }}}
# Bullet 2 
}}}
#{{block{
Bullet 1
Some text in the same bullet
}}}
# Bullet 2 

(Julian Knight, 2006-05-11)
<part atEg hidden>
{{{
This is before the indented text
@@display:block;margin-left:2em;This text will be indented...
...and can even span across several lines...

...or even include blank lines.
@@This is after the indented text 
}}}
This is before the indented text
@@display:block;margin-left:2em;This text will be indented...
...and can even span across several lines...

...or even include blank lines.
@@This is after the indented text 
</part>
<part tblMarkup hidden>
{{{
|table caption|c
|header|header|h
|text|more text|
|!heading|!heading|
|>|colspan|
|rowspan|left align |
|~| center |
|bgcolor(green):green| right|
|footer|footer|f
}}}
</part>
<part tblShow hidden>
|table caption|c
|header|header|h
|text|more text|
|!heading|!heading|
|>|colspan|
|rowspan|left align |
|~| center |
|bgcolor(green):green| right|
|footer|footer|f
</part>
/***
|''Name:''|TableSortingPlugin|
|''Description:''|Dynamically sort tables by clicking on column headers|
|''Author:''|Saq Imtiaz ( lewcid@gmail.com )|
|''Source:''|http://tw.lewcid.org/#TableSortingPlugin|
|''Code Repository:''|http://tw.lewcid.org/svn/plugins|
|''Version:''|2.02|
|''Date:''|25-01-2008|
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''~CoreVersion:''|2.2.3|
!!Usage:
* Make sure your table has a header row
** {{{|Name|Phone Number|Address|h}}}<br> Note the /h/ that denote a header row 
* Give the table a class of 'sortable'
** {{{
|sortable|k
|Name|Phone Number|Address|h
}}}<br>Note the /k/ that denotes a class name being assigned to the table.
* To disallow sorting by a column, place {{{<<nosort>>}}} in it's header
* To automatically sort a table by a column, place {{{<<autosort>>}}} in the header for that column
** Or to sort automatically but in reverse order, use {{{<<autosort reverse>>}}}

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

***/
// /%
//!BEGIN-PLUGIN-CODE
config.tableSorting = {
	
	darrow: "\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));
	}
};

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

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

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

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

config.macros.autosort={
	handler : function(place,m,p,w,pS){
		addClass(place,"autosort"+" "+pS);		
	}	
};
//!END-PLUGIN-CODE
// %/
Encrypted(73713821637FD150A4594385DC940C80F8860CC2)
9e3fe5e2c61f4401d71eda8764969da57341b66e3e213130215271213021aeafd2
913bc2816174e9cb7807361dc613c5aa2133332106213333217cc1bcd781c121
302125eefae1ac3751966bf9aab393f2a4b3d536b34274412488c93a2c64b5b4
21333921a497ed28395e61c9f31dbf7ed4332a0fbda82ff13ed2ee1ce4eda78f
992649d1efc601d51eb4213339214cc6f9bf7c3164f64baa1356d6be32db5cf8
7073f7e7293adb5a0821333321f0e38801c28e1217cb701d888c1a02a9a3462b
d883d801aaebebdbfb596db9cde0ba5ca48db6dedb7db43b36db725c2655b778
7f956a37aa9821313221cda3d5d272db3fade244551a89f9a938213339215f9f
b7f56c4110c7a7c0213130219ecf5b12717536ac2131312133e7046fb85f35f5
ab55213333217221313121eb78ab901121302140fcaa44bac59a976941e3ac90
457d8fab5f2133332192f7f5825c6e5f
!!Test mit HTML iframe-Tag
<html><iframe src="http://www.tagesschau.de" width="99%" height=400"></iframe></html> 
!! Test mit FramedLinksPlugin
*http://www.wls-nbg.de/
*http://www.wls-eng.de/
*http://pc2/test/javascript/spreadsheets/ulws/sc/current/
Some ~TiddlyWiki tests...
/***
|Name|TiddlerEncryptionPlugin|
|Author|Lyall Pearce / Ulrich Saugeon|
|Source|http://www.Remotely-Helpful.com/TiddlyWiki/TiddlerEncryptionPlugin.html|
|License|[[Creative Commons Attribution-Share Alike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|Version|3.3.1|
|~CoreVersion|2.4.0|
|Requires|None|
|Overrides|store.getSaver().externalizeTiddler(), store.getTiddler() and store.getTiddlerText()|
|Description|Encrypt/Decrypt Tiddlers with a Password key|

!!!!!Usage
<<<
* Tag a tiddler with Encrypt(prompt)
** Consider the 'prompt' something to help you remember the password with. If multiple tiddlers can be encrypted with the same 'prompt' and you will only be asked for the password once.
* Upon save, the Tiddler will be encrypted and the tag replaced with Decrypt(prompt).
** Failure to encrypt (by not entering a password) will leave the tiddler unencrypted and will leave the Encrypt(prompt) tag in place. This means that the next time you save, you will be asked for the password again.
** To have multiple tiddlers use the same password - simply use the same 'prompt'.
** Tiddlers that are encrypted may be automatically tagged 'excludeSearch' as there is no point in searching encrypted data - this is configurable by an option - you still may want to search the titles of encrypted tiddlers
** Tiddlers that are encrypted may be automatically tagged 'excludeLists', if you have them encrypted, you may also want to keep them 'hidden' - this is configurable by an option.
** Automatic removal of excludeLists and excludeSearch tags is performed, if the above two options are set, only if these two tags are the last 2 tags for a tiddler, if they are positioned somewhere else in the tags list, they will be left in place, meaning that the decrypted tiddler will not be searchable and/or will not appear in lists.
** Encrypted tiddlers are stored as displayable hex, to keep things visibly tidy, should you display an encrypted tiddler. There is nothing worse than seeing a pile of gobbledy gook on your screen. Additionally, the encrypted data is easily cut/paste/emailed if displayed in hex form.
* Tiddlers are decrypted only if you click the decrypt button or the decryptAll button, not when you load the TiddlyWiki
** If you don't display a tiddler, you won't have the option to decrypt it (unless you use the {{{<<EncryptionDecryptAll>>}}} macro)
** Tiddlers will re-encrypt automatically on save.
** Decryption of Tiddlers does not make your TiddlyWiki 'dirty' - you will not be asked to save if you leave the page.
* Errors are reported via diagnostic messages.
** Empty passwords, on save, will result in the tiddler being saved unencrypted - this should only occur with new tiddlers, decrypted tiddlers or with tiddlers who have had their 'prompt' tag changed.
** Encrypted tiddlers know if they are decrypted successfully - failure to decrypt a tiddler will ''not'' lose your data.
** Editing of an encrypted (that has not been unencrypted) tiddler will result in loss of that tiddler as the SHA1 checksums will no longer match, upon decryption. To this end, it is best that you do not check the option. You can, however edit an encrypted tiddler tag list - just do ''not'' change the tiddler contents.
** To change the password on a Tiddler, change the Encrypt('prompt') tag to a new prompt value, after decrypting the tiddler.
** You can edit the tags of an encrypted tiddler, so long as you do not edit the text.
** To change the password for all tiddlers of a particular prompt, use the {{{<<EncryptionChangePassword ["button text" ["tooltip text" ["prompt string" ["accessKey"]]]]>>}}} macro.
** To decrypt all tiddlers of a particular "prompt string", use the {{{<<EncryptionDecryptAll ["button text" ["tooltip text" ["prompt string" ["accessKey"]]]]>>}}} macro - this will make tiddlers encrypted with "prompt string" searchable - or prompt for all 'prompt strings', if none is supplied.
<<<
!!!!!Configuration
<<<
Useful Buttons: 
<<EncryptionChangePassword>> - Change passwords of encrypted tiddlers.
<<EncryptionDecryptAll>> - Decrypt ALL tiddlers - enables searching contents of encrypted tiddlers.
<<option chkExcludeEncryptedFromSearch>> - If set, Encrypted Tiddlers are excluded from searching by tagging with excludeSearch. If Clear, excludeSearch is not added and it is also removed from existing Encrypted Tiddlers only if it is the last Tag. Searching of Encrypted Tiddlers is only meaningful for the Title and Tags.
<<option chkExcludeEncryptedFromLists>> - If set, Encrypted Tiddlers are excluded from lists by tagging with excludeLists. If Clear, excludeLists is not added and it is also removed from existing Encrypted Tiddlers only if it is the last Tag. Preventing encrypted tiddlers from appearing in lists effectively hides them.
<<option chkShowDecryptButtonInContent>> - If set, Encrypted Tiddlers content is replaced by <<EncryptionDecryptThis>> button. This has consequences, in the current version as, if you edit the tiddler without decrypting it, you lose the contents.
<<<
!!!!!Revision History
<<<
* 3.2.1 - Returned the <<EncryptionDecryptThis>> button as an option.
* 3.2.0 - Ditched the 'Decrypt' button showing up in the tiddler contents if the tiddler is encrypted. It caused too much pain if you edit the tiddler without decrypting it - you lost your data as it was replaced by a Decrypt Macro call!  Additionally, a 'decrypt' button will now appear in the toolbar, just before the edit button, if the tiddler is encrypted. This button only appears if using core TiddlyWiki version 2.4 or above.
* 3.1.1 - Obscure bug whereby if an encrypted tiddler was a certain length, it would refuse to decrypt.
* 3.1.0 - When creating a new Encrypt(prompt) tiddler and you have not previously decrypted a tiddler with the same prompt, on save, you will be prompted for the password to encrypt the tiddler. Prior to encrypting, an attempt to decrypt all other tiddlers with the same prompt, is performed. If any tiddler fails to decrypt, the save is aborted - this is so you don't accidentally have 2 (or more!) passwords for the same prompt. Either you enter the correct password, change the prompt string and try re-saving or you cancel (and the tiddler is saved unencrypted).
* 3.0.1 - Allow Enter to be used for password entry, rather than having to press the OK button.
* 3.0.0 - Major revamp internally to support entry of passwords using forms such that passwords are no longer visible on entry. Completely backward compatible with old encrypted tiddlers. No more using the javascript prompt() function.
<<<
!!!!!Additional work

***/
//{{{
version.extensions.TiddlerEncryptionPlugin = {major: 3, minor: 3, revision: 1, date: new Date(2011,9,28)};

// where I cache the passwords - for want of a better place.
config.encryptionPasswords = new Array();
config.encryptionReEnterPasswords = false;

if(config.options.chkExcludeEncryptedFromSearch == undefined) config.options.chkExcludeEncryptedFromSearch = false;
//if(config.options.chkExcludeEncryptedFromLists == undefined) config.options.chkExcludeEncryptedFromLists = false;
config.options.chkExcludeEncryptedFromLists = true;
if(config.options.chkShowDecryptButtonInContent == undefined) config.options.chkShowDecryptButtonInContent = false;

config.macros.EncryptionChangePassword = {};
config.macros.EncryptionChangePassword.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
    var theButton = createTiddlyButton(place,
				       (params[0] && params[0].length > 0) ? params[0] : "Change Passwords", 
				       (params[1] && params[1].length > 0) ? params[1] : "Change Passwords" + (params[2] ? " for prompt "+params[2] : ""), 
				       onClickEncryptionChangePassword,
				       null,
				       null,
				       params[3]);
    if(params[2] && params[2].length > 0) {
	theButton.setAttribute("promptString", params[2]);
    }
};

config.macros.EncryptionDecryptAll = {};
config.macros.EncryptionDecryptAll.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
    var theButton = createTiddlyButton(place,
//				       (params[0] && params[0].length > 0) ? params[0] : "Login", 
				       (params[0] && params[0].length > 0) ? params[0] : "Sign in", 
				       (params[1] && params[1].length > 0) ? params[1] : "decrypt All Tiddlers" + ((params[2] && params[2].length > 0) ? " for prompt "+params[2] : " for a given 'prompt string'"), 
				       onClickEncryptionDecryptAll,
				       null,
				       'btn-login',
//				       null,
				       params[3]);
    if(params[2] && params[2].length > 0) {
	theButton.setAttribute("promptString", params[2]);
    }
};

config.macros.EncryptionDecryptThis = {};
config.macros.EncryptionDecryptThis.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
    var theButton = createTiddlyButton(place,
				       (params[0] && params[0].length > 0) ? params[0] : "sign in", 
				       (params[1] && params[1].length > 0) ? params[1] : "decrypt this Tiddler", 
				       onClickEncryptionDecryptThis,
				       null,
				       null,
				       params[3]);
    if(params[2] && params[2].length > 0) {
	theButton.setAttribute("theTiddler", params[2]);
    }
};
// toolbar button to decrypt tiddlers.
config.commands.decryptThis = {
  text: "decrypt",
  tooltip: "Decrypt this tiddler",
  isEnabled : function(tiddler) {
	// Only show decrypt button if tiddler is tagged as Decrypt(
	if(tiddler.tags.join().indexOf('Decrypt(') == -1)  {
	    return false;
	} else {
	    return true;
	}
    },	
  handler: function(event, src, title) {
	encryptionGetAndDecryptTiddler(title);
	return false; 
    }
};
// core version 2.4 or above get a 'decrypt' button in the toolbar.
if(config.shadowTiddlers && config.shadowTiddlers.ToolbarCommands  && config.shadowTiddlers.ToolbarCommands.indexOf('decryptThis') == -1) {
    // put our toolbar button in before the edit button.
    // won't work if editTiddler is not the default item (prefixed with plus)
    config.shadowTiddlers.ToolbarCommands.replace(/\+editTiddler/,'decryptThis +editTiddler');
}


// Called by the EncryptionChangePassword macro/button
// Also invoked by the callback for password entry
function onClickEncryptionChangePassword(eventObject) {
    var promptString;
    if(!promptString && this.getAttribute) {
	promptString = this.getAttribute("promptString");
    }
    // I do call this function directly
    if(!promptString && typeof(eventObject) == "string") {
	promptString = eventObject;
    }
    if(!promptString) {
	promptString = prompt("Enter 'prompt string' to change password for:","");
    }
    if(!promptString) {
	return;
    }
    if(! config.encryptionPasswords[promptString]) {
	var changePasswordContext = {changePasswordPromptString: promptString,
				     callbackFunction: MyChangePasswordPromptCallback_TiddlerEncryptionPlugin};
	MyPrompt_TiddlerEncryptionPlugin(promptString,"",changePasswordContext);
	return;
	// Callback function will re-invoke this function
    }

    // Decrypt ALL tiddlers for that prompt
    onClickEncryptionDecryptAll(promptString);
    // Now ditch the cached password, this will force the re-request for the new password, on save.
    displayMessage("Save TiddlyWiki to set new password for '"+promptString+"'");
    config.encryptionPasswords[promptString] = null;
    // mark store as dirty so a save will be requrested.
    store.setDirty(true);
    autoSaveChanges(); 
    return;
};
// Called by the password entry form when the user clicks 'OK' button.
function MyChangePasswordPromptCallback_TiddlerEncryptionPlugin(context) {
    config.encryptionPasswords[context.passwordPrompt] = context.password;
    onClickEncryptionChangePassword(context.changePasswordPromptString);
    return;
}
// Called by the EncryptionDecryptThis macro/button
function onClickEncryptionDecryptThis() {
    var theTiddler = this.getAttribute("theTiddler");
    if(!theTiddler) { return; }
    encryptionGetAndDecryptTiddler(theTiddler);
    return;
};

function encryptionGetAndDecryptTiddler(title) {
    config.encryptionReEnterPasswords = true;
    try {
		theTiddler = store.getTiddler(title);
		config.encryptionReEnterPasswords = false;
		story.refreshAllTiddlers();
    } catch (e) {
		if(e == "DecryptionFailed") {
		    displayMessage("Decryption failed");
		    return;
		}
    } // catch
    return;
};

// called by the EncryptionDecryptAlll macro/button
// Also called by the callback after the user clicks 'OK' button on the password entry form
function onClickEncryptionDecryptAll(eventObject) {
    var promptString;
    if (!promptString && this.getAttribute) { promptString = this.getAttribute("promptString"); }
    // I do call this function directly
    if (!promptString && typeof(eventObject) == "string") { promptString = eventObject; }
    if (!promptString) { promptString = ""; }

    // Loop through all tiddlers, looking to see if there are any Decrypt(promptString) tagged tiddlers
    // If there are, check to see if their password has been cached.
    // If not, ask for the first one that is missing, that we find
    // the call back function will store that password then invoke this function again, 
    // which will repeat the whole process. If we find all passwords have been cached
    // then we will finally do the decryptAll functionality, which will then
    // be able to decrypt all the required tiddlers, without prompting.
    // We have to do this whole rigmarole because we are using a 'form' to enter the password
    // rather than the 'prompt()' function - which shows the value of the password.
    var tagToSearchFor = "Decrypt("+promptString;
    config.encryptionReEnterPasswords = true; 
    var promptGenerated = false;
    store.forEachTiddler(function(store,tiddler) {
	    // Note, there is no way to stop the forEachTiddler iterations
	    if(!promptGenerated && tiddler && tiddler.tags) {
		for(var ix=0; ix<tiddler.tags.length && !promptGenerated; ix++) {
		    if(tiddler.tags[ix].indexOf(tagToSearchFor) == 0) {
			var tag = tiddler.tags[ix];
			var lastBracket=tag.lastIndexOf(")");
			if(lastBracket >= 0) {
			    // Ok, tagged with Encrypt(passwordPrompt)
			    // extract the passwordPrompt name
			    var passwordPromptString=tag.substring(8,lastBracket);
			    if (!config.encryptionPasswords[passwordPromptString]) {
					// no password cached, prompt and cache it, rather than decryptAll
					// callback from prompting form will resume decryptAll attempt.
					var decryptAllContext = {decryptAllPromptString: promptString,
								 callbackFunction: MyDecryptAllPromptCallback_TiddlerEncryptionPlugin};
					MyPrompt_TiddlerEncryptionPlugin(passwordPromptString,"",decryptAllContext);
					promptGenerated = true;
			    } // if(!config.encryptionPasswords
			} // if(lastBracket
		    } // if(tiddler.tags[ix]..
		} // for
	    } // if
	}); // store.forEachTiddler
    // If we get here, all passwords have been cached.
    if (!promptGenerated) {
		config.encryptionReEnterPasswords = false;
		// Now do the decrypt all functionality
		try {
		    store.forEachTiddler(function(store,tiddler) {
			    // Note, there is no way to stop the forEachTiddler iterations
			    if(tiddler && tiddler.tags) {
				for(var ix=0; ix<tiddler.tags.length; ix++) {
				    if(tiddler.tags[ix].indexOf(tagToSearchFor) == 0) {
					try { 
						CheckTiddlerForDecryption_TiddlerEncryptionPlugin(tiddler); 
						jQuery("#btn-login").hide();
					}
					catch (e) {
						displayMessage("Decryption of '"+tiddler.title+"' failed.");
					    // throw e;
					}
				    } // if(tiddler.tags
				} // for
			    } // if
			}); // store.forEachTiddler
		    displayMessage("All tiddlers" + (promptString != "" ? " for '"+promptString+"'" : "") + " have been decrypted");
		} catch (e) {
		    if(e == "DecryptionFailed") { return; }
		} // catch
    }
    return;
};

function MyDecryptAllPromptCallback_TiddlerEncryptionPlugin(context) {
    config.encryptionPasswords[context.passwordPrompt] = context.password;
    // restart the decryptAll process again after the user has entered a password.
    onClickEncryptionDecryptAll(context.decryptAllPromptString);
    return;
}

saveChanges_TiddlerEncryptionPlugin = saveChanges;
saveChanges = function(onlyIfDirty,tiddlers) {
    // Loop through all tiddlers, looking to see if there are any Encrypt(string) tagged tiddlers
    // If there are, check to see if their password has been cached.
    // If not, ask for the first one that is missing, that we find
    // the call back function will store that password then invoke this function again, 
    // which will repeat the whole process. If we find all passwords have been cached
    // then we will finally call the original saveChanges() function, which will then
    // be able to save the tiddlers.
    // We have to do this whole rigmarole because we are using a 'form' to enter the password
    // rather than the 'prompt()' function - which shows the value of the password.
    config.encryptionReEnterPasswords = true; 
    var promptGenerated = false;
    store.forEachTiddler(function(store,tiddler) {
	    if(!promptGenerated && tiddler && tiddler.tags) {
		for(var ix=0; ix<tiddler.tags.length && !promptGenerated; ix++) {
		    if(tiddler.tags[ix].indexOf("Encrypt(") == 0) {
			var tag = tiddler.tags[ix];
			var lastBracket=tag.lastIndexOf(")");
			if(lastBracket >= 0) {
			    // Ok, tagged with Encrypt(passwordPrompt)
			    // extract the passwordPrompt name
			    var passwordPrompt=tag.substring(8,lastBracket);
			    if(!config.encryptionPasswords[passwordPrompt]) {
				// no password cached, prompt and cache it, rather than save
				var saveContext = {onlyIfDirty: onlyIfDirty, 
						   tiddlers: tiddlers, 
				                   callbackFunction: MySavePromptCallback_TiddlerEncryptionPlugin};
				MyPrompt_TiddlerEncryptionPlugin(passwordPrompt,"",saveContext);
				promptGenerated = true;
			    } // if(!config.encryptionPasswords
			} // if(lastBracket
		    } // if(tiddler.tags[ix]..
		} // for
	    } // if
	}); // store.forEachTiddler
    // If we get here, all passwords have been cached.
    if(!promptGenerated) {
	config.encryptionReEnterPasswords = false;
	saveChanges_TiddlerEncryptionPlugin(onlyIfDirty,tiddlers);
    }
    return;
}

function MySavePromptCallback_TiddlerEncryptionPlugin(context) {
    config.encryptionPasswords[context.passwordPrompt] = context.password;
    // validate the password entered by attempting to decrypt all tiddlers
    // with the same encryption prompt string.
    onClickEncryptionDecryptAll(context.passwordPrompt);

    // restart the save process again
    saveChanges(context.onlyIfDirty, context.tiddlers);
    return;
}

store.getSaver().externalizeTiddler_TiddlerEncryptionPlugin = store.getSaver().externalizeTiddler;
store.getSaver().externalizeTiddler = function(store, tiddler) {
    // Ok, got the tiddler, track down the passwordPrompt in the tags.
    // track down the Encrypt(passwordPrompt) tag
    if(tiddler && tiddler.tags) {
	for(var g=0; g<tiddler.tags.length; g++) {
	    var tag = tiddler.tags[g];
	    if(tag.indexOf("Encrypt(") == 0) {
		var lastBracket=tag.lastIndexOf(")");
		if(lastBracket >= 0) {
		    // Ok, tagged with Encrypt(passwordPrompt)
		    // extract the passwordPrompt name
		    var passwordPrompt=tag.substring(8,lastBracket);
		    // Ok, Encrypt this tiddler!
		    var decryptedSHA1 = Crypto.hexSha1Str(tiddler.text);
		    var password =  GetAndSetPasswordForPrompt_TiddlerEncryptionPlugin(passwordPrompt);
		    if(password) {
			var encryptedText = TEAencrypt(tiddler.text, password);
			encryptedText = StringToHext_TiddlerEncryptionPlugin(encryptedText);
			tiddler.text = "Encrypted("+decryptedSHA1+")\n"+encryptedText;
			// Replace the Tag with the Decrypt() tag
			tiddler.tags[g]="Decrypt("+passwordPrompt+")";
			// let the store know it's dirty
			store.setDirty(tiddler.title, true);
			// prevent searches on encrypted tiddlers, still nice to search on title though.
			if(config.options.chkExcludeEncryptedFromSearch == true) {
			    tiddler.tags.push("excludeSearch");
			}
			// prevent lists of encrypted tiddlers
			if(config.options.chkExcludeEncryptedFromLists == true) {
			    tiddler.tags.push("excludeLists");
			}
		    } else {
			// do not encrypt - no password entered
		    }
		    break;
		} // if (lastBracket...
	    } // if(tag.indexOf(...
	} // for(var g=0;...
    } // if(tiddler.tags...
    
    // Then, finally, do the save by calling the function we override.

    return store.getSaver().externalizeTiddler_TiddlerEncryptionPlugin(store, tiddler);
};

function CheckTiddlerForDecryption_TiddlerEncryptionPlugin(tiddler) {
    if(tiddler && tiddler.tags) {
	for(var g=0; g<tiddler.tags.length; g++) {
	    var tag = tiddler.tags[g];
	    if(tag.indexOf("Decrypt(") == 0) {
		var lastBracket=tag.lastIndexOf(")");
		if(lastBracket >= 0) {
		    if(tiddler.text.substr(0,10) == "Encrypted(") {
			var closingSHA1Bracket = tiddler.text.indexOf(")");
			var decryptedSHA1 = tiddler.text.substring(10, closingSHA1Bracket);
			// Ok, tagged with Decrypt(passwordPrompt)
			// extract the passwordPrompt name
			var passwordPrompt=tag.substring(8,lastBracket);
			// Ok, Decrypt this tiddler!
			var decryptedText = tiddler.text.substr(closingSHA1Bracket+2);
			decryptedText = HexToString_TiddlerEncryptionPlugin(decryptedText);
                        // prompt("Decryption request for Tiddler '"+tiddler.title+"'");
			var password = GetAndSetPasswordForPromptToDecrypt_TiddlerEncryptionPlugin(passwordPrompt);
			if(password) {
			    decryptedText = TEAdecrypt(decryptedText, password );
			    var thisDecryptedSHA1 = Crypto.hexSha1Str(decryptedText);
			    if(decryptedSHA1 == thisDecryptedSHA1) {
				tiddler.text = decryptedText;
				// Replace the Tag with the Encrypt() tag
				tiddler.tags[g]="Encrypt("+passwordPrompt+")";
				if(tiddler.tags[tiddler.tags.length-1] == 'excludeLists') {
				    // Remove exclude lists only if it's the last entry
				    // as it's automatically put there by encryption
				    tiddler.tags.length--;
				}
				if(tiddler.tags[tiddler.tags.length-1] == 'excludeSearch') {
				    // Remove exclude search only if it's the last entry
				    // as it's automatically put there by encryption
				    tiddler.tags.length--;
				}
			    } else {
				// Did not decrypt, discard the password from the cache
				config.encryptionPasswords[passwordPrompt] = null;
				config.encryptionReEnterPasswords = false;
				throw "DecryptionFailed";
			    }
			} else {
			    // no password supplied, dont bother trying to decrypt
			    config.encryptionReEnterPasswords = false;
			    throw "DecryptionFailed";
			}
		    } else {
			// Tagged as encrypted but not expected format, just leave it unchanged
		    }
		    break; // out of for loop
		} // if (lastBracket...
	    } // if(tag.indexOf(...
	} // for(var g=0;...
    } // if (tiddler && tags)
    return tiddler;
};

store.getTiddler_TiddlerEncryptionPlugin = store.getTiddler;
store.getTiddler = function(title) {
    var tiddler = store.getTiddler_TiddlerEncryptionPlugin(title);
    if(tiddler) { // shadow tiddlers are not expected to be encrypted.
	try {
	    return CheckTiddlerForDecryption_TiddlerEncryptionPlugin(tiddler);
	} catch (e) {
	    if (config.options.chkShowDecryptButtonInContent == true) {
		if(e == "DecryptionFailed") {
		    var tiddler = store.getTiddler("DecryptionFailed");
		    if(!tiddler) {
			tiddler = new Tiddler();
			tiddler.set(title,
				    "<<EncryptionDecryptThis \"Decrypt\" \"Decrypt this tiddler\" \""+title+"\">>",
				    config.views.wikified.shadowModifier,
				    version.date,[],version.date);
		    } 
		    return tiddler;
		} // if(e)
	    }
	    return(tiddler);
	} // catch
    } // if(tiddler) {
    return null;
};

store.getTiddlerText_TiddlerEncryptionPlugin = store.getTiddlerText;
store.getTiddlerText = function(title,defaultText) {
    // Simply retrieve the tiddler, normally, if it requires decryption, it will be decrypted
    var decryptedTiddler = store.getTiddler(title);
    if(decryptedTiddler) {
	return decryptedTiddler.text;
    }
    //Ok, rather than duplicate all the core code, the above code should fail if we reach here
    // let the core code take over.
    return  store.getTiddlerText_TiddlerEncryptionPlugin(title,defaultText);
};

// Given a prompt, search our cache to see if we have already entered the password.
// Can return null if the user enters nothing.
function MyPrompt_TiddlerEncryptionPlugin(promptString,defaultValue,context) {
    if(!context) {
	context = {};
    }
    context.passwordPrompt = promptString;
    PasswordPrompt.prompt(MyPromptCallback_TiddlerEncryptionPlugin, context);
    return;
}

function MyPromptCallback_TiddlerEncryptionPlugin(context) {
    if(context.callbackFunction) {
	context.callbackFunction(context);
    } else {
	config.encryptionPasswords[context.passwordPrompt] = context.password;
	story.refreshAllTiddlers(true);
    }
    return;
}

function GetAndSetPasswordForPrompt_TiddlerEncryptionPlugin(promptString) {
    if(!config.encryptionPasswords[promptString]) {
	config.encryptionPasswords[promptString] = MyPrompt_TiddlerEncryptionPlugin(promptString, "");
    }
    return config.encryptionPasswords[promptString]; // may be null, prompt can be cancelled.
}

function GetAndSetPasswordForPromptToDecrypt_TiddlerEncryptionPlugin(promptString) {
    if(config.encryptionReEnterPasswords) {
	return GetAndSetPasswordForPrompt_TiddlerEncryptionPlugin(promptString);
    } else {
	return config.encryptionPasswords[promptString];
    }
}

// Make the encrypted tiddlies look a little more presentable.
function StringToHext_TiddlerEncryptionPlugin(theString) {
    var theResult = "";
    for(var i=0; i<theString.length; i++) {
	var theHex = theString.charCodeAt(i).toString(16);
	if(theHex.length<2) {
	    theResult += "0"+theHex;
	} else {
	    theResult += theHex;
	}
	if(i && i % 32 == 0)
	    theResult += "\n";
    }
    return theResult;
}

function HexToString_TiddlerEncryptionPlugin(theString) {
    var theResult = "";
    for(var i=0; i<theString.length; i+=2) {
	if(theString.charAt(i) == "\n") {
	    i--;	// cause us to skip over the newline and resume
	    continue;
	}
	theResult += String.fromCharCode(parseInt(theString.substr(i, 2),16));
    }
    return theResult;
}
//
// Heavily leveraged from http://trac.tiddlywiki.org/browser/Trunk/contributors/SaqImtiaz/verticals/Hesperian/PasswordPromptPlugin.js  Revision 5635
//
PasswordPrompt ={
  prompt : function(callback,context){
	if (!context) {
	    context = {};
	}
	var box = createTiddlyElement(document.getElementById("contentWrapper"),'div','passwordPromptBox');
	box.innerHTML = store.getTiddlerText('PasswordPromptTemplate');
	box.style.position = 'absolute';
	this.center(box);
	document.getElementById('promptDisplayField').value = context.passwordPrompt;
	var passwordInputField = document.getElementById('passwordInputField');
	passwordInputField.onkeyup = function(ev) {
	    var e = ev || window.event;
	    if(e.keyCode == 10 || e.keyCode == 13) { // Enter
		PasswordPrompt.submit(callback, context);
	    }
	};
	passwordInputField.focus();
	document.getElementById('passwordPromptSubmitBtn').onclick = function(){PasswordPrompt.submit(callback,context);};
	document.getElementById('passwordPromptCancelBtn').onclick = function(){PasswordPrompt.cancel(callback,context);};
    },     
 	       
  center : function(el){
	var size = this.getsize(el);
	el.style.left = (Math.round(findWindowWidth()/2) - (size.width /2) + findScrollX())+'px';
	el.style.top = (Math.round(findWindowHeight()/2) - (size.height /2) + findScrollY())+'px';
    },
 	       
  getsize : function (el){
	var x = {};
	x.width = el.offsetWidth || el.style.pixelWidth;
	x.height = el.offsetHeight || el.style.pixelHeight;
	return x;
    },
 	       
  submit : function(cb,context){
	context.passwordPrompt = document.getElementById('promptDisplayField').value;
	context.password = document.getElementById('passwordInputField').value;
	var box = document.getElementById('passwordPromptBox');
	box.parentNode.removeChild(box);
	cb(context);
	return false;
    },

  cancel : function(cb,context){
	var box = document.getElementById('passwordPromptBox');
	box.parentNode.removeChild(box);
	return false;
    },
 	       
  setStyles : function(){
	setStylesheet(
	    "#passwordPromptBox dd.submit {margin-left:0; font-weight: bold; margin-top:1em;}\n"+
	    "#passwordPromptBox dd.submit .button {padding:0.5em 1em; border:1px solid #ccc;}\n"+
	    "#passwordPromptBox dt.heading {margin-bottom:0.5em; font-size:1.2em;}\n"+
	    "#passwordPromptBox {border:1px solid #ccc;background-color: #eee;padding:10em 10em;}\n"+
	    "#passwordPromptBox form {border:1px solid #ccc;padding:1em;}",'passwordPromptStyles');
    },
 	       
  template : '<form action="" onsubmit="return false;" id="passwordPromptForm">\n'+
  '    <dl>\n'+
  '        <dt class="heading">Please enter the password:</dt>\n'+
  '        <dt>Prompt:</dt>\n'+
  '        <dd><input type="text" readonly id="promptDisplayField" class="display"/></dd>\n'+
  '        <dt>Password:</dt>\n'+
  '        <dd><input type="password" tabindex="1" class="input" id="passwordInputField"/></dd>\n'+
  '        <dd class="submit">\n'+
  '            <a tabindex="2" href="javascript:;" class="button" id="passwordPromptSubmitBtn">OK</a>\n'+
  '            <a tabindex="3" href="javascript:;" class="button" id="passwordPromptCancelBtn">Cancel</a>\n'+
  '        </dd>\n'+
  '    </dl>\n'+
  '</form>',
 	                         
  init : function(){
	config.shadowTiddlers.PasswordPromptTemplate = this.template;
	this.setStyles();
    }
};
 	
PasswordPrompt.init();

// http://www.movable-type.co.uk/scripts/tea-block.html
//
// TEAencrypt: Use Corrected Block TEA to encrypt plaintext using password
//             (note plaintext & password must be strings not string objects)
//
// Return encrypted text as string
//
function TEAencrypt(plaintext, password)
{
    if (plaintext.length == 0) return('');  // nothing to encrypt
    // 'escape' plaintext so chars outside ISO-8859-1 work in single-byte packing, but keep
    // spaces as spaces (not '%20') so encrypted text doesn't grow too long (quick & dirty)
    var asciitext = escape(plaintext).replace(/%20/g,' ');
    var v = strToLongs(asciitext);  // convert string to array of longs
    if (v.length <= 1) v[1] = 0;  // algorithm doesn't work for n<2 so fudge by adding a null
    var k = strToLongs(password.slice(0,16));  // simply convert first 16 chars of password as key
    var n = v.length;

    var z = v[n-1], y = v[0], delta = 0x9E3779B9;
    var mx, e, q = Math.floor(6 + 52/n), sum = 0;

    while (q-- > 0) {  // 6 + 52/n operations gives between 6 & 32 mixes on each word
        sum += delta;
        e = sum>>>2 & 3;
        for (var p = 0; p < n; p++) {
            y = v[(p+1)%n];
            mx = (z>>>5 ^ y<<2) + (y>>>3 ^ z<<4) ^ (sum^y) + (k[p&3 ^ e] ^ z);
            z = v[p] += mx;
        }
    }

    var ciphertext = longsToStr(v);

    return escCtrlCh(ciphertext);
}

//
// TEAdecrypt: Use Corrected Block TEA to decrypt ciphertext using password
//
function TEAdecrypt(ciphertext, password)
{
    if (ciphertext.length == 0) return('');
    var v = strToLongs(unescCtrlCh(ciphertext));
    var k = strToLongs(password.slice(0,16)); 
    var n = v.length;

    var z = v[n-1], y = v[0], delta = 0x9E3779B9;
    var mx, e, q = Math.floor(6 + 52/n), sum = q*delta;

    while (sum != 0) {
        e = sum>>>2 & 3;
        for (var p = n-1; p >= 0; p--) {
            z = v[p>0 ? p-1 : n-1];
            mx = (z>>>5 ^ y<<2) + (y>>>3 ^ z<<4) ^ (sum^y) + (k[p&3 ^ e] ^ z);
            y = v[p] -= mx;
        }
        sum -= delta;
    }

    var plaintext = longsToStr(v);

    // strip trailing null chars resulting from filling 4-char blocks:
    plaintext = plaintext.replace(/\0+$/,'');

    return unescape(plaintext);
}


// supporting functions

function strToLongs(s) {  // convert string to array of longs, each containing 4 chars
    // note chars must be within ISO-8859-1 (with Unicode code-point < 256) to fit 4/long
    var l = new Array(Math.ceil(s.length/4));
    for (var i=0; i<l.length; i++) {
        // note little-endian encoding - endianness is irrelevant as long as 
        // it is the same in longsToStr() 
        l[i] = s.charCodeAt(i*4) + (s.charCodeAt(i*4+1)<<8) + 
               (s.charCodeAt(i*4+2)<<16) + (s.charCodeAt(i*4+3)<<24);
    }
    return l;  // note running off the end of the string generates nulls since 
}              // bitwise operators treat NaN as 0

function longsToStr(l) {  // convert array of longs back to string
    var a = new Array(l.length);
    for (var i=0; i<l.length; i++) {
        a[i] = String.fromCharCode(l[i] & 0xFF, l[i]>>>8 & 0xFF, 
                                   l[i]>>>16 & 0xFF, l[i]>>>24 & 0xFF);
    }
    return a.join('');  // use Array.join() rather than repeated string appends for efficiency
}

function escCtrlCh(str) {  // escape control chars etc which might cause problems with encrypted texts
    return str.replace(/[\0\t\n\v\f\r\xa0'"!]/g, function(c) { return '!' + c.charCodeAt(0) + '!'; });
}

function unescCtrlCh(str) {  // unescape potentially problematic nulls and control characters
    return str.replace(/!\d\d?\d?!/g, function(c) { return String.fromCharCode(c.slice(1,-1)); });
}

//}}}
Some Tiddlers showing ~TiddlyWiki markup.
/***

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

!Demo
<<toggleSideBar "Toggle Sidebar">>

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

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

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

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

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

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

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

     return false;
}

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

//}}}
!! Online Calculators
*[[Simple calculator|http://www.ecalc.com/calculator/online/]]
*[[Scientific calculator|http://www.ecalc.com/calculator/scientific/]]
*[[Scientific calculator, unit converter ...|http://www.motionnet.com/calculator/]]
/%!! Google Maps%/

Encrypted(245B108DAF72011FAB8FCEF7F0138E0FA38B411E)
213132219a21333321f8ee177cfd33aa2bd292112f90be9766794f59d469af3715
ec7a81577266b766e4996b8f9d7271871058213339211e9126d5213333212131
3321109974d59c76cf2131322110c54f86c02c76785cc72131312152f7213136
302175df1e4d701db3359dbfb6aa43f65bedca21313221fc3fc7ab5cc07fb421
392195cee82133342161262bcff011732a76ac118f1128477e3032ca
10.11.2008

Liebe Kolleginnen und Kollegen! 

Entgegen unserer Aussage am Fachschaftswochenende, dass wir an [[VERA 8|http://de.wikipedia.org/wiki/VERA_(Vergleichsarbeiten_in_der_Schule)]] (Vergleichsarbeiten in der Jahrgangsstufe 8 in Bayern) nicht teilnehmen werden, erreichte uns jetzt die Nachricht, dass auch die [[Wilhelm-Löhe-Schule|http://www.wls-nbg.de/]] daran teilnehmen muss. 

''Im Fach Englisch finden die Tests am 5.3.2009 statt''. 

Anbei erhaltet Ihr die genauen Informationen zu VERA 8 vom Kultusministerium ^^*)^^. Die Kollegen der 8. Jahrgangsstufe werden gebeten zu prüfen, ob für die betroffenen Klassen an diesem Termin bereits ein großer Leistungsnachweis angesetzt ist und gegebenfalls um Verschiebung zu bitten. 

Die Information der Schüler und Eltern erfolgt durch die Schulleitung, da VERA 8 auch in Deutsch und Mathematik durchgeführt wird.

Gruß 
Renate Saugeon

 ^^*)^^ Die Informationen zu VERA 8 wurden als Papierkopie verteilt.
Encrypted(ECCE44B07C7DE1DBCB03C6CEF84AD7F1D3ECDEC9)
b11cd9f4c675f8301149d5e5db433136
Encrypted(5A70AC243F86F91E38C7044AA43E74488E4476E5)
0f5cafb95289213339216b59f1d19c6563b7cced50f83fa5ead0cf70efe39d08db
9e2ca176953a5dc3b56203305928395fe95e02b74fa46dc96a46213021cf6821
3334218b6bcbd34a8f019ec08b9ab86bc408947e73ba44c39e11baef5dd53ca4
ca857465ccd05826984c57e7348ad2105556f61742d701c514897ecece7f7221
313021427c3b82d983d7d1ce70248d7836f2a992e94a386544e992b439ab3a79
4269804e5e0356148f34128daa62febc41105632facf70b1da42e00e696947cb
8b65fccf444c7b5220213136302191213333210fbf99c0a7b1a234f38441eba6
582390545b99334c7810a1af9be20221333421c7dbc482945fa58414c42699b2
c45701e3c5ec2514b221333921bc662c6179852131302198727a3e01fc12f09e
5c4ec218db77cabe36df3e9c1b21333321d63c1cfcd988d50ecca9cd21313221
541ae7d22f7587dd7cc7a9121634058399c59fd2ce2d10a4598966748b375650
455036572bc841693d878adb67d78f26cf73d2fe6285951778ad1055f6dfa4e4
06e063155950ad8ff1e4f7dbfe9aa2c3b6c772a153213334214e66f74a8240a4
b4b6c02339520860658ef78e98416529042130210421313021574af08e213130
21653f5bc3c10f70974bd05b1c60be8de7a24f7779c788cb08d988ab4326e651
fa4f25ed08f3127e601efe41d6ec1130205044d3d14f99a80869239e575387f5
bf8ec9e0c71346ce6321313630211a1f4a8d29a1e03c1564187ba32b571637bd
d473c969e4b77efa2b3ecf9ed914cdaa417a7fee7960671057a2c4d0777937ad
987de6e74c8116559abc6224f37a89db6121313221cb959bbfd2b7d8e9446afa
615538772131363021174d1029af8ec326ec3306213921bf59f984f2a715cd40
ea21333321e35b15789042dd9284f2652131363021fead733e793e1efe88cb66
48c1b444fab8301ee4f0347939b5ffec3fff4fc2cf3d213921ee61f3e254ba6b
03b8a2b981ef49b82c3464378a526a0f8d99982131322121313121a43740bd88
fce95c977c6ef7641279261af469feba5de4a24f6821333921ca8c49f6837aa9
172139217eb72aaf4ed3c890e49badaee8163e21313121ecc852576f61f22131
3021acd8c6076bd8cfabd2ac59a37a9d623996a6d51a88f3c337a953ab179d54
d2d382c836a5fa835550513a924c319529d9bceeed8da7bf47924c96713219e1
e882be0159cb532f94a3769da1b68fb6dcec6cdedac9e4d9bbc511301269f27c
bc2131363021ecff07e695f0f1b56e315e5b43dd992e69a7980faccc8e425fe7
4843a3e2dac51bfcef311b213130219bc613b7b5334af7ebc17eb0fc21333321
acd85b318924965e4a7d7a15d054ea47afe3ae6bf68efee408e738f2a1f5357f
151c015ee5568cd6e003ba639a3aa8cf8efab85041786df6b14e125846fbcd7a
6c084cddb17285d9a2a6ed38ddee9377b9cfea867f7d6ff29221313121213130
21213333213c3945a4794ec2dfc9b580ab7721313121f0032131312181809101
4e5503329d2e7f4197732ff20623c5940138b24dbb66949dcc86188414801f44
6984cfa47a3e3a727d08692eb816822c23cb9bb947be6dd13184faa2b14413fc
950fd48b44b81ffb6ddc21313221708725cd8d7a9cfae1e979939a558239287b
c061718147f821333421254e69e1ccae75612adde939a2edc449f715129fd318
d62c160821313021c4c5fcb29d0fc2a81d213132213ccb583f79428bfaa4614b
948a368cd0e7d8b8d812213921fbc58e3b50261ddc9d022f61552dc6a83e1fb9
b6f0bb744db305bb62319f625b9917d1b4949641533655b8192e7aecb832b0c5
38728c2da8c39221313630217b7ecd42a5e078445f0581ab80a2283d81e1bb63
e8236a5c6499897026bb38023ac317875512c05fb2b4155fcca940cb6516eb33
1dfa5cf3b919e4fd90787e85f0bc68bda27b1925e6ec2399feb7d664202bae80
ae8240c1c21fccaf8fcd43bd8ffc18d9e4642ea7081da7338098213021400673
82cb47c78fe703102c1e036150828a20b9f84940a6cc1478213133218ba5c13c
20247f1f11e23f8399d983d97e516be79821313121971686d9a671b9c6c818df
7635711f1926213130211e9b13e96f656021302121313021166ece2131363021
95bd972e622d08ef835a927b68ecdd3e73f79482d0977c14517169818d1e99f4
5ef5e87a57e5a2b694bbf11e860ec7ecdd8d69a821333421df638addb6213021
2953916e44d031f3f5f97f3f71b7cb9a1c06291437aec9df3b398ae9aac72133
3321ad38efc9bbb4ce1617b0706993e2c3b7cfb9cc6f281851dbedabc7f54c51
1248cd2de07a54da454aef61ad59adae1dec94f4b385c4bea21d45d6a9d6f1f3
433465e63bc8fbb4fd21313630215f7375112b5db36a2d57cd2e40d171213333
213e11f58d8f5b1d152e21333421ba951b2bddbe16458fcfbe60f56988213021
4ddd6c07a56fba25d4c0e250213130211fa807fd39a2355d1272908015c74b7f
6da1e0abfab082ebaa252817f3ce434d78bfdd36cf38a176f499cc998283ea2f
b54f21333421cdfce54d9c3d2b49d77b0e546325a4a7841285c0421cc636e191
85dd121dfe88cce08e49e9741fecca8cb6c665a320ba4c6f8154dfa8dd342c3d
e3ec5996cd4bf0889445ec7b0f5e109cf64b984b71b8af79213130212ae73321
333921d974ef2f4540ee5728d4aa629ed74b6dcdb23d712dd76f72a905237ac4
3683f62eb224e488258f17c9185d7bba1412f097727c960632772b5bcbf2ddb2
5974a6d6a88f47348fb88504247fc999807b01732f4013428f3eed6d79102ede
058362b2dd2a829bd0d7845c74ae7c37318ad4bd3460510776515616174d84b9
01df96cd8ad285b3c497ceb972af10c161a4aae78c1d2a2cc0865efd295c5c1c
9c75bdf4c7c7b126ac85f0a419d2df11e926ca683314cad62133342101742133
332143ca128fd547c61454668799fd8f0ed1fd06b575778f2131302150f619ef
dbb3803c52239cbcfb61b98c34e01038e559abd2372a6e9a33cbbf64b982dd55
512a2065f2c44434907921313321b99f6872b8de7f53a29e88d4fe2131322152
8af75a8f4e5b9c8b
Encrypted(723C5F9BC8DE745D3674206A8693DBB5DFFCA73A)
9383acf49e962fe738b7435782b4d42e6473ab21333321321b845867800e245cfe
1ebd04c06017d39bf8d90f6d2131363021f5c08e43aec3cc676066755993dadb
342fa3bc368567c8294860b41203d2213339216e83395e5f9221313321ab3d4a
816cf3a24251f3523f4f868221313630219f3c213333217d3c7ce9b5e3334393
7a19af332133332130efe8b2336d42d423746a79512cba4e89615e785cf8c7d3
be2131302145ff2b23b56ab67aa9a33becd7ef6bb003bf21313121599c1f776e
0f455fbcd82139219bb74e051e71100860cff0213131219629b186427452b7d9
ab841d4ec613f88a26872569a963b9bfdf902c121efd28c81c698c1cbb6ad608
70be67f71bcb082320ad9667d52376fbfac93114b268f1ade1cfc22133332121
313630216c7e8dc7f74b6782f8f4b1567a477c32d7ea911421333421bb213333
211702d6f768b7eee19a437bae3d8c34cbab293102213133214cbad9359467a5
b84ec525c2eda6a11bc5c0f18a2133392180f33313bd7e2e691c16727c2381b8
2b0e960821313021da7b08db13c71b5ddd8490abd82c31a5824fe6fbf3649017
9b23fa7ad188a83a8fe4deb7c299eb62c5863dacfd294769f5a6fe39ea632131
3630217247525f21313321a5cef68dfa208ee853a63abdc11343164412bb72f4
697fba70acef290fd33df7c7651e4d988a93c6199d6092623bababb581568d54
b889301bd7c8f74c5d581faac59f906d4acbbd6fb228bfc953aba9eb735d43b0
18826fd9bd2133332130569e285e519df7e065de8aac5a07d4e0daddc0a313f2
70038e01babc759f4736d9593ba51c25d3d8c9754b58f17adc94162db8087d32
21333321513e60a8a4cea64bd021313121565cadf939bb787813213339213310
89344f401ce691952e4ce6bd6f4cac34f9f4b68acdb389c69fbebd0121313321
29fbce34ff5154a9fafb2a7d451e92ae8addd473ec4e21313121505867f1c462
Willkommen auf der ~Web-Site der Fachschaft Englisch der [[Wilhelm-Löhe-Schule|http://www.wls-nbg.de/]] in Nürnberg!

Unser Ziel ist es, mit diesem Medium Informationen zu englischen Fachthemen zu bieten. Es dient aber auch als Informationsquelle und Unterstützung für die Lehrerinnen und Lehrer der Fachschaft Englisch. 

>Um diese Anforderungen erfüllen zu können, wurde die ~Web-Site als [[Wiki|http://de.wikipedia.org/wiki/Wiki]] erstellt. Eine besonders einfache, aber in Bezug auf moderne multimediale Techniken auch sehr flexible Lösung führte zum Einsatz von [[TiddlyWiki|http://www.tiddlywiki.com/]], einem Wiki in einer einzigen ~HTML-Datei, die in jedem Browser (Internet Explorer, Mozilla Firefox, Opera, Safari ...) geöffnet werden kann.

Zur Nutzung des Wikis ist ''ein möglichst permanenter Internetzugang'' (idealerweise DSL) ''erforderlich''. Das ''Wiki benötigt ~JavaScript'', die Unterstützung für diese Skriptsprache muss im Browser eingeschaltet sein!

Manche "Seiten", bei ~TiddlyWiki als ''Tiddler'' bezeichnet, sind umfangreich und benötigen einige Sekunden Zeit zum Rendern / Darstellen, beispielsweise die Tabelle Fachschafts-Bibliothek.

Das Wiki ist einfach über die Menuleiste im Headerbereich der Seite zu bedienen. Weitere Hilfe, auch zur Formatierung des Wikis, erhält man dort durch Drücken der ''Help''-Taste.

>Das ~TiddlyWiki der Fachschaft Englisch der ~Wilhelm-Löhe-Schule  enthält auch vertrauliche Informationen. Tiddler, die personenbezogene Daten enthalten, sind verschlüsselt und nur über eine passwort-geschützte Anmeldung zugänglich (login). Zum Entschlüsseln wird ein Passwort benötigt, das für alle verschlüsselten Tiddler in dieser Datei identisch ist. <br><br>Anmelden:<<EncryptionDecryptAll>>

Die Version dieses ~TiddlyWiki der Fachschaft Englisch ist ''<<version>>''. 
Engteam
includes six applications, enabling you to create interactive multiple-choice, short-answer, jumbled-sentence, crossword, matching/ordering and gap-fill exercises for the World Wide Web. Hot Potatoes is not freeware, but it is free of charge for those working for publicly-funded non-profit-making educational institutions, who make their pages available on the web
|!Datum|!Neu|!Geändert|h
|18.11.2008|Tiddler [[Wörterbücher und Enzyklopädien]] mit mehreren Links|"Verwaiste" ~Youtube-Links in Bookmarks->Multimedia entfernt|
|26.03.2009|Tiddler [[Links 2]] mit Links zum Biligualen Sprachunterricht|Tiddler Links in [[Links 1]] umbenannt|