Ethics Salamanca  portal de ética de la Universidad de Salamanca
Ethics Salamanca  portal de ética de la Universidad de Salamanca

GettingStarted
, 21 March 2009 (created 21 March 2009)
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:

See also MPTW.
<!--{{{-->
<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]];}

#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>>
|sortable sinbordes mayusculas|k
| !''2010'' |<<tiddler [[Actividades##2010]]>>|
| !''2009'' |<<tiddler [[Actividades##2009]]>>|
| !''2008'' |<<tiddler [[Actividades##2008]]>>|
| !''2007'' |<<tiddler [[Actividades##2007]]>>|
| !''2006'' |<<tiddler [[Actividades##2006]]>>|
| !''2005'' |<<tiddler [[Actividades##2005]]>>|
| !''2004'' |<<tiddler [[Actividades##2004]]>>|
| !''2003'' |<<tiddler [[Actividades##2003]]>>|
| !''2002'' |<<tiddler [[Actividades##2002]]>>|
| !''2001'' |<<tiddler [[Actividades##2001]]>>|

/%
!2010
*[[Seminario sobre ética de la investigación|http://www.ucr.ac.cr/noticias/2010/05/25/catedratica-espanola-realza-etica-en-las-investigaciones.html]] en la Universidad de Costa Rica. 
*Spring Break Study in Spain: //Bioethics and Human Rights. U.S. and Spanish Perspectives// [img[ver el programa|pdf.gif][Actividades/SpringBreak2010.pdf]]
*On Bioethics. US and Spanish perspectives. [img[ver el programa|pdf.gif][Actividades/On Bioethics_Mark Aulisio.pdf]]
*{{derecha {[img[Imagenes/Emotions&Ethics_thumb.jpg][I WORKSHOP SOBRE ÉTICA Y EMOCIONES: UNA PERSPECTIVA INTERDISCIPLINAR]]}}}[[I WORKSHOP SOBRE ÉTICA Y EMOCIONES: UNA PERSPECTIVA INTERDISCIPLINAR]], Marzo 2010
*XI Seminario de bioética [img[ver el programa|pdf.gif][Actividades/SeminarioBioética2010.pdf]]
*~E-Ethics: Applied Ethics in Research and e-Learning. [img[ver el programa|pdf.gif][Actividades/E-Ethics_2010.pdf]]
!2009
*Curso online "Bioética en las organizaciones sanitarias" organizado por el [[Foro de Formación y Ediciones CyL|http://www.forodeformacion.org/]] y coordinado por Alberto Molina Pérez.
*Spring Break Study in Spain: //Bioethics and Human Rights. U.S. and Spanish Perspectives// [img[ver el programa|pdf.gif][Actividades/SpringBreak2009.pdf]]
*~E-Ethics: Applied Ethics in Research and e-Learning.
*X Seminario de bioética [img[ver el programa|pdf.gif][Actividades/SeminarioBioética2009.pdf]]
!2008
*Spring Break Study in Spain: //Bioethics and Human Rights. U.S. and Spanish Perspectives [img[ver el programa|pdf.gif][Actividades/SpringBreak2008.pdf]]
!2007
*2nd Workshop on Bioethical Education in a Multicultural Evironment (Edubioethics): //Organ Procurement and Transplantation// [img[ver el programa|pdf.gif][Actividades/Edubioethics2007.pdf]]
*Fronteras biológicas y límites legales. Un enfoque bioético
!2006
*Seminario Internacional de Bioética
!2005
*Seminario de Bioética
!2004
*Tomarse en serio la naturaleza (II). ética ecológica desde una perspectiva multidisciplinar
*Seminario de Bioética
!2003
*Salud y enfermedad. El debate bioético
*La Carta de Derechos de la Unión Europea. Una cultura moral y política
*Critica feminista (II): Problemas de igualdad
!2002
*Tomarse en serio la naturaleza. ética ambiental desde una perspectiva multidisciplinar
!2001
*El comienzo y el final de la vida: aspectos bioéticos
*Critica feminista (I): Conocimiento y genero
!2000
*La idea de Europa
!end
%/
Name: Orange
Background: #ffc
Foreground: #000
PrimaryPale: #fc8
PrimaryLight: #f81
PrimaryMid: #b40
PrimaryDark: #410
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #e88
TertiaryLight: #c66
TertiaryMid: #944
TertiaryDark: #633
This tiddler shows some more complex effects that can be obtained with cunning use of CSS. Not all of these will work properly on all browsers because of differences in CSS implementation, but they should fail gracefully.

You can have special formatting for a specific, named tiddler like this:
{{{
#tiddlerHelloThere .title {
background-color: #99aaee;
}
}}}

Or for the first displayed tiddler:
{{{
div.tiddler:first-child .title {
font-size: 28pt;
}
}}}

Or just for the first line of every tiddler:
{{{
.viewer:first-line {
background-color: #999999;
}
}}}

Or just for the first letter of every tiddler:
{{{
.viewer:first-letter {
float: left;
font-size: 28pt;
font-weight: bold;
}
}}}

Or just for tiddlers tagged with a particular tag (note that this won't work for tags that contain spaces):
{{{
div[tags~="welcome"].tiddler .viewer {
background-color: #ffccaa;
}

div[tags~="features"].tiddler .viewer {
background-color: #88aaff;
}
}}}
*''SPRING BREAK STUDY IN SPAIN: BIOETHICS AND HUMAN RIGHTS'' 8-14 March 2010 [img[ver el programa|pdf.gif][Actividades/SpringBreak2010.pdf]]

*''ON BIOETHICS. US and Spanish perspectives'', 8 y 11 de marzo 2010: Seminario con Mark Aulisio, de la Case Western Reserve University, USA. [img[ver el programa|pdf.gif][Actividades/On Bioethics_Mark Aulisio.pdf]]

*[[I WORKSHOP SOBRE ÉTICA Y EMOCIONES: UNA PERSPECTIVA INTERDISCIPLINAR]]{{derecha margenes{[img[Emotions&Ethics_thumb.jpg]]}}}
<<<
FECHAS: 1-3 Marzo 2010
LOCALIZACIÓN: Edificio histórico, Universidad de Salamanca, España.
ORGANIZADORAS: Carmen Velayos & Mar Cabezas
PONENTES INVITADOS: Mariano Chóliz, Peter Goldie, Jesse Prinz, Alicia Puleo, Raffaele Rodogno & José Luis Zaccagnini
ENLACE: http://sites.google.com/site/cmnvelayos/salamanca-2010
ESPAÑOL [img[pdf.gif][Actividades/Workshop_Salamanca_2010-esp.pdf]] / ENGLISH [img[pdf.gif][Actividades/Workshop_Salamanca_2010-eng.pdf]]
<<<

*''XI SEMINARIO DE BIOÉTICA''
<<<
FECHAS: 3-4 Febrero de 2010
LUGAR: Sala de Juntas 104, Aulas del FES, Campus M. de Unamuno, Salamanca 37007
ORGANIZA: Mª Teresa López de la Vieja.
PONENTES INVITADOS: Manuel Triana, Jimmy Washburn, Lizbeth Sagols, Marta Gonzalez, Rosana Triviño, Lorenzo Peña, Christian Hervé, Concha Roldan, David Teira.
PROGRAMA:  [img[ver el programa|pdf.gif][Actividades/SeminarioBioética2010.pdf]]
<<<

*Encuentro con el [[Laboratoire d'Éthique Médicale de l'Université Paris Descartes|http://www.ethique.inserm.fr/]], en Febrero y Junio de 2010, en el marco del proyecto: "~E-Ethics: Applied Ethics in Research and Learning. Two Experiences." PROGRAMA: [img[pdf.gif][Actividades/E-Ethics_2010.pdf]]

*El premio de investigación 2009 de la [[Fundación Grifols i Lucas|http://www.fundaciogrifols.org/portal/es/2/6901]] ha sido concedido a [[David Rodríguez-Arias]] por su trabajo sobre la muerte cerebral. La entrega de premios tendrá lugar en Barcelona el 25 de octubre de 2009.

*__''Reunión con el //Laboratoire d'Éthique Médicale de l'Université Paris Descartes//''__, en Junio de 2009, en el marco del proyecto: "~E-Ethics. Applied Ethics in Research and e-learning: two experiences"

<<tiddler [[LibroTemplate]] with:'Aranguren, la ética entre la religión y la política'>>/%
Foto: [img[Enrique Bonete: Aranguren, la ética entre la religión y la política, 1989|FotosLibros/Aranguren.jpg][Aranguren, la ética entre la religión y la política]]

Titulo: Aranguren, la ética entre la religión y la política

Autores: [[Enrique Bonete]]

OtrosDatos: Tecnos, 1989

Descripcion: 
%/
/%
|NOTICIAS / NEWS|h
|<<tiddler Novedades>>|
%/

{{sinbordes margenes {
| [img[ampliar|FotoArea.jpg][foto área grande.jpg]]<br><<tiddler [[Bienvenidos##leyenda]]>> | <<tiddler [[Bienvenidos##texto]]>> |
}}}
/%
!leyenda
{{fuente10pt{Grupo de ética de la Universidad de Salamanca}}}

!texto
{{fuente12pt{El Área de Filosofía Moral de la Universidad de Salamanca está adscrita al Departamento de Historia del Derecho, Filosofía Jurídica, Moral y Política.

Actualmente se compone del profesorado siguiente: [[Teresa López de la Vieja]], [[Enrique Bonete]], [[Carmen Velayos]], [[David Rodríguez-Arias]], y por la becaria predoctoral [[Mª Mar Cabezas|Mar Cabezas]]. }}}

[img[EscudoEthicsSalamanca64.png]]
!end

Ethics Salamanca is the homepage of the ethics area of the University of Salamanca (Spain), with information on our activities and publications on applied ethics, bioethics, medical ethics, feminism, ecology, environmental ethics, business ethics, end of life, eutanasia, political philosophy, moral philosophy, ethics and literature, etc.

Ethics Salamanca es la página del grupo de ética de la Universidad de Salamanca. Aquí encontrarás información sobre nuestras actividades y publicaciones en los ámbitos siguientes: ética aplicada, bioética, ética médica, feminismo, ecología, ética del medio ambiente, ética empresarial, final de la vida, eutanasia, filosofía política, filosofía moral, ética y literatura, etc.
%/
<<tiddler [[LibroTemplate]] with:'Bioethical Education'>>{{oculto{
Foto: [img[Teresa López de la Vieja, Carmen Velayos (eds.): Educación en bioética, 2008|FotosLibros/BioethicalEducation_thumb.jpg][Bioethical Education]]

Titulo: Educación en Bioética. Donación y trasplante de órganos

Autores: [[Teresa López de la Vieja]], [[Carmen Velayos]] (eds.)

OtrosDatos: Ediciones Universidad de Salamanca, Salamanca, 2008.

Descripcion: ''“Organ Donors. Something for Nothing”''<br> Who are the living donors?  While national and international regulations could provide a more equitable access to transplants – to promote quality of life for the recipients -, the distribution of organs and tissues still depends on some contingent factors, like gender, race, or social position. Taking some recent data about donors into account - in Europe and in the United States -, we could talk about “gender imbalance” in the general rule for altruistic donation. Altruism implies something for nothing.  It represents the rule of beneficence, of indulgence, goodness, non reciprocity, having an indisputable role in the moral assessment of practical issues. However, the rule of giving has been mistaken with self-sacrifice; from this perspective, organ donation would be more an exception than a rational option in particular circumstances, and for specific patients. Especially when donors are women, for cultural factors and traditional socialization still encourage the feminization of sacrifice, and of unselfishness.
}}}
/%<<cloud links action:goto =Bioética>>%/
<<tiddler [[LibroTemplate]] with:'Bioética y ciudadanía'>>

{{oculto{
Foto: [img[Teresa López de la Vieja: Bioética y ciudadanía, 2008|FotosLibros/BioéticaCiudadanía.jpg][Bioética y ciudadanía]]

Titulo: Bioética y ciudadanía

Autores: [[Teresa López de la Vieja]]

OtrosDatos: Biblioteca Nueva, Madrid, 2008

Descripcion: La “nueva frontera” técnica e ideológica favoreció en los años setenta la consolidación  de una Bioética liberal y pragmática.  Este modelo tiene que hacer frente ahora a otras demandas,  más allá del horizonte del bioético o del “científico”, para situarse en la esfera del “político”, ya que no hay buenas prácticas sin buen gobierno. Bioética y  ciudadanía  se ocupa de la evolución de la Bioética hacia un modelo más participativo y cívico.  Temas difíciles como la investigación  con embriones, la diferencia entre terapias y mejora de la especie, argumentos sobre  el final de la vida, la perspectiva de género sobre el cuidado de la salud, los derechos de los animales, las obligaciones  hacia otras especies y el medio ambiente,  cuestiones analizadas en el libro, demuestran por qué gobernanza quiere decir eficacia, apertura, transparencia, participación, necesidad de dar cuenta ante la ciudadanía.
}}}
<<tiddler [[LibroTemplate]] with:'Bioética. Entre la medicina y la ética'>>/%
Foto: [img[Teresa López de la Vieja (ed.): Bioética. Entre la medicina y la ética, 2005|FotosLibros/BioeticaMedicinaEtica.jpg][Bioética. Entre la medicina y la ética]]

Titulo: Bioética. Entre la medicina y la ética

Autores: [[Teresa López de la Vieja]] (ed.)

OtrosDatos: Publicaciones Universidad de Salamanca, Salamanca, 2005

Descripcion: ''“La Bioética y los ciudadanos”''<br>El articulo recuerda que las cuestiones de Bioética están estrechamente vinculadas con el contexto histórico, social y político. Tienen que ver con las formas de entender la salud y  el bienestar individual, están vinculadas a cambios teóricos y, ante todo, a  las demandas de los ciudadanos. (1) Los debates recientes en torno a la  investigación con células madre embrionarias han puesto de manifiesto profundos desacuerdos, de carácter ideológico. Han vuelto a mostrar, una vez mas, el aspecto “cívico” de los temas de Bioética. En su doble sentido: ya que afectan a los derechos de los ciudadanos y, además, requieren deliberación y participación por parte de los mismos ciudadanos, de la sociedad civil. (2) Desde el primer momento, la Bioética se hizo eco de la “nueva frontera” técnica, moral y, al mismo tiempo, de la nueva frontera política: la lucha por las libertades de los ciudadanos. (3) La protección de los derechos ha estado muy presente en los códigos, acuerdos y convenios sobre Medicina y Biología. Los argumentos sobre sus riesgos son difíciles de refutar. Solo cabe decir que sería posible reducirlos aplicando los mismos criterios que definen a las buenas practicas políticas: eficacia,  racionalidad, transparencia, participación de los ciudadanos. 

%/
<<tiddler [[LibroTemplate]] with:'Bioética. Perspectivas emergentes'>>/%
Foto: [img[Gómez-Heras & Velayos (eds.): Bioética. Perspectivas emergentes y nuevos problemas, 2005|FotosLibros/Bioética.jpeg][Bioética. Perspectivas emergentes]]

Titulo: Bioética. Perspectivas emergentes y nuevos problemas

Autores: José Mª García ~Gómez-Heras, [[Carmen Velayos]] (eds.)

OtrosDatos: Tecnos, 2005

Descripcion: Entre las llamadas éticas aplicadas, destaca hoy en día la bioética. Una serie de problemas, sobre la manipulación de genes y sobre el trasplante de órganos, sobre el testamento vital o el consentimiento informado, han llegado al gran público a través de artículos de prensa y debates en los medios de comunicación. La bioética y sus problemas, sin embargo, parecen encontrarse también hoy en una encrucijada traída por la globalización y las transformaciones a que nuestra cultura está siendo sometida en los inicios del presente siglo. De tal situación, no sólo emergen nuevos problemas, sino que los ya convencionalmente tratados por los bioéticos se plantean en una perspectiva diferente. De todo ello se ocupan los diferentes capítulos de este libro.
%/
[[Quiénes somos]] : [[Mar Cabezas]] : http://emotionsandethics.blogspot.com/ {{floatright{<<fullscreen 'pantalla completa ↕'>>}}}
<html><div align="center"><iframe src="http://emotionsandethics.blogspot.com/" frameborder="0" width="100%" height="1000"></iframe></div></html>
http://ethicsalamanca.blogspot.com/ {{floatright{<<fullscreen 'pantalla completa ↕'>>}}}
<html><div align="center"><iframe src="http://ethicsalamanca.blogspot.com/" frameborder="0" width="100%" height="800"></iframe></div></html>
<<tabs txtMainTab "ETHICS SALAMANCA" "Blog de Ethics Salamanca" BlogEthicsalamanca "Emotions&Ethics" "Blog de Emotions&Ethics" BlogEmotionsAndEthics "Carmen Velayos" "Página personal de Carmen Velayos" PaginaCarmenVelayos "David Rodríguez-Arias" "Página personal de David Rodríguez-Arias" PaginaDavidRodriguezArias "Teresa López de la Vieja" "Página personal de Teresa López de la Vieja" PaginaTeresaLopez>>

<html><a href="http://whos.amung.us/stats/h52oyvcqwlqj/"><img src="http://whos.amung.us/cwidget/h52oyvcqwlqj/c7eaf8000000.png" width="24" height="12" border="0" title="Click to see how many people are online" /></a></html>
Name: Blue (Mptw)
Background: #fff
Foreground: #000
PrimaryPale: #cdf
PrimaryLight: #57c
PrimaryMid: #114
PrimaryDark: #012
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
<<search>>

<<tiddler SideBarTabs>>


<<tiddler [[PerfilTemplate]] with:'Carmen Velayos'>>

{{oculto{
Foto: [img[Contacto|FotosPersonales/cvelayos_thumb.JPG][Contacto]]
Nombre: Carmen Velayos

!CurriculumESP
[[Carmen Velayos Castelo|Carmen Velayos]] es profesora de Ética en la Universidad de Salamanca en el Dpto de Historia del Derecho y Filosofía Jurídica, Moral y Política, dentro de la Facultad de Filosofía. Pertenece al Grupo de Ética de dicha Universidad (Dirigido por Teresa López de la Vieja), que es reconocido como Grupo de Investigación de Excelencia ~GR41 de la Junta de Castilla y León. Asimismo, dicho grupo constituye una Unidad Asociada del Instituto de Filosofía del CSIC. Miembro de varios proyectos de investigación nacionales e internacionales, es autora de numerosos trabajos éticos en revistas especializadas y en diversos libros. Destacan: //[[Ética y cambio climático]]// (2008); //[[La dimensión moral del ambiente natural: ¿necesitamos una nueva ética?|La dimensión moral del ambiente natural]]// (1996), //[[Códigos éticos en los negocios]]// (coautora junto a Francés y Borrego) (2000). Como coeditora y coautora pueden mencionarse: //[[Tomarse en serio la naturaleza]]// (coedición) (2003); //[[Bioética. Perspectivas emergentes y nuevos problemas|Bioética. Perspectivas emergentes]]// (2005); //[[Responsabilidad política y medio ambiente]]// (coedición) (2007); //[[Feminismo ecológico]]// (2008); //[[Educación en Bioética. Donación y trasplante de Órganos|Bioethical Education]]// (2008); //[[Ética y ethos profesionales]]// (2009). Cree en una filosofía para la vida, habiendo centrado especialmente su investigación en la ecoética. Su perspectiva es teórica y práctica: desde las teorías a las aplicaciones. Trabaja en la comprensión de la ética moderna desde el marco general de la búsqueda de la felicidad y el límite de los principios universales. Actualmente prepara un libro sobre ética y felicidad. [[Página web personal|http://sites.google.com/site/cmnvelayos/Home/home]]

!CurriculumENG
<br>+++[english] [[Carmen Velayos]] teaches Ethics in the University of Salamanca (Spain). She is a member of the Ethics Research Group in this University (directed by T. López de la Vieja) This Group has been signed as an Excellence Group (~GR41) of the Spanish of Castille and Leon. The Group constitutes an Associated Section of the Spanish Philosophy Institute, in the CSIC (  ). She is a member of various national and international Research Projects. Some of her authored books are the following: //[[Ética y cambio climático]]// (2008); //[[La dimensión moral del ambiente natural: ¿necesitamos una nueva ética?|La dimensión moral del ambiente natural]]// (1996), //[[Códigos éticos en los negocios]]// (with Francés y Borrego) (2000). Some of her coedited books are: //[[Tomarse en serio la naturaleza]]// (coedición) (2003); //[[Bioética. Perspectivas emergentes y nuevos problemas|Bioética. Perspectivas emergentes]]// (2005); //[[Responsabilidad política y medio ambiente]]// (coedition) (2007); //[[Feminismo ecológico]]// (2008); //[[Bioethical Education]]// (2008).<br><br>I work primarily in ecoethics and the foundation of ethics (rational argumentation) from the perspective of happiness and positive emotions. Nowadays, I am preparing a book on Ethics and happiness.
[[Personal web page|http://sites.google.com/site/cmnvelayos/Home/home]]
===


!Publicaciones
<<tiddler [[Ética y ethos profesionales::Foto]]>><<tiddler [[Ética y cambio climático::Foto]]>><<tiddler [[Bioethical Education::Foto]]>><<tiddler [[Feminismo ecológico::Foto]]>><<tiddler [[Responsabilidad política y medio ambiente::Foto]]>><<tiddler [[Bioética. Perspectivas emergentes::Foto]]>><<tiddler [[Códigos éticos en los negocios::Foto]]>><<tiddler [[La dimensión moral del ambiente natural::Foto]]>>


Ver más publicaciones: [[Dialnet|http://dialnet.unirioja.es/servlet/autor?codigo=167411]]
<<tiddler [[LibroTemplate]] with:'Ciudadanos de Europa'>>{{oculto{
Foto: [img[Teresa López de la Vieja (ed.): Ciudadanos de Europa, 2004|FotosLibros/CiudadanosEuropa.jpg][Ciudadanos de Europa]]

Titulo: Ciudadanos de Europa: Derechos Fundamentales en la Unión Europea

Autores: [[Teresa López de la Vieja]] (ed.)

OtrosDatos: Biblioteca Nueva, Madrid, 2004.

Descripcion: El Tratado que establece una Constitución para Europa reúne en un único texto derechos reconocidos por la mayor parte de los países de la Unión. Demuestra el compromiso con principios generales y con una determinada idea de ciudadanía. Sólo que, a pesar de su pretensión de universalidad, estos principios siguen siendo poco o mal conocidos todavía. Éste ha sido el objetivo del libro, hacer más visible, entender mejor el significado de la Carta de Derechos Fundamentales de la Unión, que forma parte del tratado de constitucionalidad. Pies es la dignidad, la libertad y la igualdad dibujan un marco de actuación para las instituciones y para los ciudadanos de la Unión. Es una cuestión de valores, de cultura moral, es también una cuestión de legitimidad. La legitimidad de un proyecto político, la Unión Europea.<br><br><br>
}}}
*[[Dilemata.net|http://www.dilemata.net]], portal de éticas aplicadas.
*[[Department of Bioethics|http://www.case.edu/med/bioethics/index.htm]], Case Western Reserve University, Cleveland.
*[[Laboratoire d'Éthique Médicale|http://www.ethique.inserm.fr/]] de l'Université Paris Descartes, Paris
*[[Antonio Casado da Rocha|http://www.ehu.es/ias-research/casado/]]
<html><script type="text/javascript" src="http://widgets.amung.us/classic.js"></script><script type="text/javascript">WAU_classic('sljsm55720cd')</script>
<script type="text/javascript" src="http://widgets.amung.us/classic.js"></script><script type="text/javascript">WAU_classic('sljsm55720cd')</script></html>
<<tiddler HideTiddlerTags>>
/%RGB hexadecimal 216-color "Web safe" palette %/
Source: Paul Petterson, revised by Eric Shulman
{{menubox{
|bgcolor(#FFF):FFF |bgcolor(#CCC):CCC |bgcolor(#999):999 |bgcolor(#666):@@color(white):666@@ |bgcolor(#333):@@color(white):333@@ |bgcolor(#000):@@color(white):000@@ |bgcolor(#FC0):~FC0 |bgcolor(#F90):F90 |bgcolor(#F60):@@color(white):F60@@ |bgcolor(#F30):@@color(white):F30@@ |>|>|>|>|>| |
|bgcolor(#9C0):9C0 |>|>|>| |bgcolor(#C90):C90 |bgcolor(#FC3):~FC3 |bgcolor(#FC6):~FC6 |bgcolor(#F96):F96 |bgcolor(#F63):@@color(white):F63@@ |bgcolor(#C30):@@color(white):C30@@ |>|>|>| |bgcolor(#C03):@@color(white):C03@@ |
|bgcolor(#CF0):~CF0 |bgcolor(#CF3):~CF3 |bgcolor(#330):@@color(white):330@@ |bgcolor(#660):@@color(white):660@@ |bgcolor(#990):990 |bgcolor(#CC0):~CC0 |bgcolor(#FF0):~FF0 |bgcolor(#C93):C93 |bgcolor(#C63):@@color(white):C63@@ |bgcolor(#300):@@color(white):300@@ |bgcolor(#600):@@color(white):600@@ |bgcolor(#900):@@color(white):900@@ |bgcolor(#C00):@@color(white):C00@@ |bgcolor(#F00):@@color(white):F00@@ |bgcolor(#F36):@@color(white):F36@@ |bgcolor(#F03):@@color(white):F03@@ |
|bgcolor(#9F0):9F0 |bgcolor(#CF6):~CF6 |bgcolor(#9C3):9C3 |bgcolor(#663):@@color(white):663@@ |bgcolor(#993):993 |bgcolor(#CC3):~CC3 |bgcolor(#FF3):~FF3 |bgcolor(#960):@@color(white):960@@ |bgcolor(#930):@@color(white):930@@ |bgcolor(#633):@@color(white):633@@ |bgcolor(#933):@@color(white):933@@ |bgcolor(#C33):@@color(white):C33@@ |bgcolor(#F33):@@color(white):F33@@ |bgcolor(#C36):@@color(white):C36@@ |bgcolor(#F69):@@color(white):F69@@ |bgcolor(#F06):@@color(white):F06@@ |
|bgcolor(#6F0):6F0 |bgcolor(#9F6):9F6 |bgcolor(#6C3):6C3 |bgcolor(#690):690 |bgcolor(#996):996 |bgcolor(#CC6):~CC6 |bgcolor(#FF6):~FF6 |bgcolor(#963):@@color(white):963@@ |bgcolor(#630):@@color(white):630@@ |bgcolor(#966):@@color(white):966@@ |bgcolor(#C66):@@color(white):C66@@ |bgcolor(#F66):@@color(white):F66@@ |bgcolor(#903):@@color(white):903@@ |bgcolor(#C39):@@color(white):C39@@ |bgcolor(#F6C):@@color(white):~F6C@@ |bgcolor(#F09):@@color(white):F09@@ |
|bgcolor(#3F0):3F0 |bgcolor(#6F3):6F3 |bgcolor(#390):390 |bgcolor(#6C0):6C0 |bgcolor(#9F3):9F3 |bgcolor(#CC9):~CC9 |bgcolor(#FF9):~FF9 |bgcolor(#C96):C96 |bgcolor(#C60):@@color(white):C60@@ |bgcolor(#C99):C99 |bgcolor(#F99):F99 |bgcolor(#F39):@@color(white):F39@@ |bgcolor(#C06):@@color(white):C06@@ |bgcolor(#906):@@color(white):906@@ |bgcolor(#F3C):@@color(white):~F3C@@ |bgcolor(#F0C):@@color(white):~F0C@@ |
|bgcolor(#0C0):0C0 |bgcolor(#3C0):3C0 |bgcolor(#360):@@color(white):360@@ |bgcolor(#693):693 |bgcolor(#9C6):9C6 |bgcolor(#CF9):~CF9 |bgcolor(#FFC):FFC |bgcolor(#FC9):~FC9 |bgcolor(#F93):F93 |bgcolor(#FCC):FCC |bgcolor(#F9C):~F9C |bgcolor(#C69):@@color(white):C69@@ |bgcolor(#936):@@color(white):936@@ |bgcolor(#603):@@color(white):603@@ |bgcolor(#C09):@@color(white):C09@@ |bgcolor(#303):@@color(white):303@@ |
|bgcolor(#3C3):3C3 |bgcolor(#6C6):6C6 |bgcolor(#0F0):0F0 |bgcolor(#3F3):3F3 |bgcolor(#6F6):6F6 |bgcolor(#9F9):9F9 |bgcolor(#CFC):CFC |>|>| |bgcolor(#C9C):~C9C |bgcolor(#969):@@color(white):969@@ |bgcolor(#939):@@color(white):939@@ |bgcolor(#909):@@color(white):909@@ |bgcolor(#636):@@color(white):636@@ |bgcolor(#606):@@color(white):606@@ |
|bgcolor(#060):@@color(white):060@@ |bgcolor(#363):@@color(white):363@@ |bgcolor(#090):090 |bgcolor(#393):393 |bgcolor(#696):696 |bgcolor(#9C9):9C9 |>|>| |bgcolor(#FCF):FCF |bgcolor(#F9F):~F9F |bgcolor(#F6F):@@color(white):~F6F@@ |bgcolor(#F3F):@@color(white):~F3F@@ |bgcolor(#F0F):@@color(white):~F0F@@ |bgcolor(#C6C):@@color(white):~C6C@@ |bgcolor(#C3C):@@color(white):~C3C@@ |
|bgcolor(#030):@@color(white):030@@ |bgcolor(#0C3):0C3 |bgcolor(#063):@@color(white):063@@ |bgcolor(#396):396 |bgcolor(#6C9):6C9 |bgcolor(#9FC):9FC |bgcolor(#CFF):CFF |bgcolor(#39F):39F |bgcolor(#9CF):9CF |bgcolor(#CCF):CCF |bgcolor(#C9F):~C9F |bgcolor(#96C):@@color(white):96C@@ |bgcolor(#639):@@color(white):639@@ |bgcolor(#306):@@color(white):306@@ |bgcolor(#90C):@@color(white):90C@@ |bgcolor(#C0C):@@color(white):~C0C@@ |
|bgcolor(#0F3):0F3 |bgcolor(#3F6):3F6 |bgcolor(#093):093 |bgcolor(#0C6):0C6 |bgcolor(#3F9):3F9 |bgcolor(#9FF):9FF |bgcolor(#9CC):9CC |bgcolor(#06C):@@color(white):06C@@ |bgcolor(#69C):69C |bgcolor(#99F):99F |bgcolor(#99C):99C |bgcolor(#93F):@@color(white):93F@@ |bgcolor(#60C):@@color(white):60C@@ |bgcolor(#609):@@color(white):609@@ |bgcolor(#C3F):@@color(white):~C3F@@ |bgcolor(#C0F):@@color(white):~C0F@@ |
|bgcolor(#0F6):0F6 |bgcolor(#6F9):6F9 |bgcolor(#3C6):3C6 |bgcolor(#096):096 |bgcolor(#6FF):6FF |bgcolor(#6CC):6CC |bgcolor(#699):699 |bgcolor(#036):@@color(white):036@@ |bgcolor(#369):@@color(white):369@@ |bgcolor(#66F):@@color(white):66F@@ |bgcolor(#66C):@@color(white):66C@@ |bgcolor(#669):@@color(white):669@@ |bgcolor(#309):@@color(white):309@@ |bgcolor(#93C):@@color(white):93C@@ |bgcolor(#C6F):@@color(white):~C6F@@ |bgcolor(#90F):@@color(white):90F@@ |
|bgcolor(#0F9):0F9 |bgcolor(#6FC):6FC |bgcolor(#3C9):3C9 |bgcolor(#3FF):3FF |bgcolor(#3CC):3CC |bgcolor(#399):399 |bgcolor(#366):@@color(white):366@@ |bgcolor(#069):@@color(white):069@@ |bgcolor(#039):@@color(white):039@@ |bgcolor(#33F):@@color(white):33F@@ |bgcolor(#33C):@@color(white):33C@@ |bgcolor(#339):@@color(white):339@@ |bgcolor(#336):@@color(white):336@@ |bgcolor(#63C):@@color(white):63C@@ |bgcolor(#96F):@@color(white):96F@@ |bgcolor(#60F):@@color(white):60F@@ |
|bgcolor(#0FC):0FC |bgcolor(#3FC):3FC |bgcolor(#0FF):0FF |bgcolor(#0CC):0CC |bgcolor(#099):099 |bgcolor(#066):@@color(white):066@@ |bgcolor(#033):@@color(white):033@@ |bgcolor(#39C):39C |bgcolor(#36C):@@color(white):36C@@ |bgcolor(#00F):@@color(white):00F@@ |bgcolor(#00C):@@color(white):00C@@ |bgcolor(#009):@@color(white):009@@ |bgcolor(#006):@@color(white):006@@ |bgcolor(#003):@@color(white):003@@ |bgcolor(#63F):@@color(white):63F@@ |bgcolor(#30F):@@color(white):30F@@ |
|bgcolor(#0C9):0C9 |>|>|>| |bgcolor(#09C):09C |bgcolor(#3CF):3CF |bgcolor(#6CF):6CF |bgcolor(#69F):69F |bgcolor(#36F):@@color(white):36F@@ |bgcolor(#03C):@@color(white):03C@@ |>|>|>| |bgcolor(#30C):@@color(white):30C@@ |
|>|>|>|>|>| |bgcolor(#0CF):0CF |bgcolor(#09F):09F |bgcolor(#06F):@@color(white):06F@@ |bgcolor(#03F):@@color(white):03F@@ |>|>|>|>|>| |
<script>place.lastChild.style.width="95%"</script>}}}
/%
Ethics Salamanca is the homepage of the ethics area of the University of Salamanca (Spain), with information on our activities and publications on applied ethics, bioethics, medical ethics, feminism, ecology, environmental ethics, business ethics, end of life, eutanasia, political philosophy, moral philosophy, ethics and literature, etc.

Ethics Salamanca es la página del grupo de ética de la Universidad de Salamanca. Aquí encontrarás información sobre nuestras actividades y publicaciones en los ámbitos siguientes: ética aplicada, bioética, ética médica, feminismo, ecología, ética del medio ambiente, ética empresarial, final de la vida, eutanasia, filosofía política, filosofía moral, ética y literatura, etc.
%/
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
Fondo: Fondo72.jpg
Para cambiar la apariencia de la página, incluir y/o modificar los parámetros siguientes en StyleSheet:

Tamaño de la barra de título de la página (arriba):
{{{
.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;}          /* arriba derecha abajo izquierda */
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}     /* arriba derecha abajo izquierda */
}}}
El tamaño depende de la posición de la sombra, el cual depende del espacio que indiquemos arriba.

Tamaño del título y del subtítulo de la página:
{{{
.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}
}}}

Menú principal (izquierda):
{{{
#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;}
}}}
PageTemplate
|>|>|SiteTitle - SiteSubtitle|
|MainMenu|DefaultTiddlers<br><br><br><br>ViewTemplate<br><br>EditTemplate|SideBarOptions|
|~|~|OptionsPanel|
|~|~|AdvancedOptions|
|~|~|<<tiddler Configuration.SideBarTabs>>|
|~|[[contentFooter]]|~|

''StyleSheet:'' StyleSheetColors - StyleSheetLayout - StyleSheetPrint

SiteUrl
<<closeAll>><<permaview>><<newTiddler>><<newBookTiddler LibroTemplate "nuevo libro">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">>
[[Novedades]]
[[Anuncios]]
[[MainMenu]]
[[SideBarOptions]]
[[SideBarTabs]]
[[ToolbarCommands]]
[[StyleSheet]]
[[DefaultTiddlers]]



+++![Who's among us?]
<html>
<iframe frameborder=0 height=1000 width=100% marginwidth=0 scrolling=auto
src="http://whos.amung.us/stats/h52oyvcqwlqj/">
IFrames are not supported by your browser.</iframe>
</html>
===
!Dirección / Adress
<<tiddler [[Contacto##Direccion]]>> 
+++[Google Maps]
<html><iframe width="640" height="480" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=es&amp;msa=0&amp;msid=114786402892951170452.00046b6213911849c6138&amp;t=h&amp;ll=40.968525,-5.679224&amp;spn=0.007777,0.013733&amp;z=16&amp;output=embed"></iframe><br /><small>Ver <a href="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=es&amp;msa=0&amp;msid=114786402892951170452.00046b6213911849c6138&amp;t=h&amp;ll=40.968525,-5.679224&amp;spn=0.007777,0.013733&amp;z=16&amp;source=embed" style="color:#0000FF;text-align:left">Ethics Salamanca</a> en un mapa más grande</small></html>
===
----
{{izquierda margenes{ [img[ver en un mapa|campus_unamuno_01.jpg][http://maps.google.com/maps/ms?ie=UTF8&hl=es&msa=0&msid=114786402892951170452.00046b6213911849c6138&ll=40.968525,-5.679213&spn=0.004148,0.008283&t=h&z=17]] }}}
<<tiddler [[Contacto##Datos]]>>


/%
!Direccion
<br>
{{fuente12 centrado{
Facultad de Filosofía
Campus Miguel de Unamuno s/n - Edificio F.E.S.
37007, Salamanca
{{pmayusculas {España}}}
}}}
!Datos
{{fuente10 margenes icono tableRight sinbordes {
| ![img[boo.gif]] |!Persona de contacto | ![img[email.png]]| !Dirección| ![img[telefono.gif]]| !Teléfono<br>@@margin-left:5px; +34 92329 4400 / 4500@@|
|>|[[Teresa López de la Vieja:  |Teresa López de la Vieja]] |>| [[tlv@usal.es|mailto:tlv@usal.es]]| Ext. 3398|>|
|>|[[Enrique Bonete Perales:  |Enrique Bonete]] |>|@@margin-left:25px; [[enbonete@usal.es|mailto:enbonete@usal.es]]@@| Ext. 3397|>|
|>|[[Carmen Velayos:|Carmen Velayos]] |>| [[cvelayos@usal.es|mailto:cvelayos@usal.es]]| Ext. 3397|>|
|>|[[David Rodríguez-Arias:|David Rodríguez-Arias]] |>| [[dra@usal.es|mailto:dra@usal.es]]| Ext. 3397|>|
|>|[[Mar Cabezas:|Mar Cabezas]] |>| [[]]| Ext. 3397|>|
}}}
!end
<html><script type="text/javascript" src="http://widgets.amung.us/classic.js"></script><script type="text/javascript">WAU_classic('sljsm55720cd')</script>
<script type="text/javascript" src="http://widgets.amung.us/classic.js"></script><script type="text/javascript">WAU_classic('sljsm55720cd')</script></html>
%/
You can wrap any text in an HTML {{{<span>}}} or {{{<div>}}} with a specified CSS class. This allows custom CSS styling in a nice, modular way. By placing a rule in your StyleSheet tiddler like {{{.wrappingClass{color: #666; background: #bbb} }}} you can markup a	piece of text in the tiddler using this code:

{{{
{{wrappingClass{Text that is now accentuated}}}
}}}

{{wrappingClass{Text that is now accentuated}}}

By default, the text is placed in a {{{<span>}}}. To use a {{{<div>}}} instead, insert a line break before the text:

{{{
{{wrappingClass{
Text that is now accentuated}}}
}}}

{{wrappingClass{
Text that is now accentuated}}}
Sometimes it's necessary to include custom HTML markup in the {{{<head>}}} of a TiddlyWiki file - typically for compatibility with ad serving software, external libraries, or for custom meta tags. The CustomMarkup operation defines four shadow tiddlers whose contents are spliced into the saved HTML file. (If you do a view/source you'll see the markers referred to below).
|!Title |!Location |!Marker |
|MarkupPreHead |Start of the {{{<head>}}} section |{{{<!--PRE-HEAD-START-->}}} |
|MarkupPostHead |End of the {{{<head>}}} section |{{{<!--POST-HEAD-START-->}}} |
|MarkupPreBody |Start of the {{{<body>}}} section |{{{<!--PRE-BODY-START-->}}} |
|MarkupPostBody |End of the {{{<body>}}} section |{{{<!--POST-BODY-START-->}}} |
MarkupPreHead is the only one with shadow content: a link to the default location of the RSS feed.
Starting with this revision, you can skin TiddlyWiki with a special StyleSheet tiddler containing your own CSS style sheet declarations. Unlike hacking the HTML directly, the StyleSheet tiddler withstands upgrading to a new version of the TiddlyWiki code (see HowToUpgrade). You can also use the NestedStyleSheets feature to structure your CSS declarations.

The ExampleStyleSheet shows some of the basic options you can control (see AnotherExampleStyleSheet for more complex examples). SaveChanges and then click refresh in your browser to see StyleSheet changes. Any errors in your CSS syntax will be caught and displayed, but they shouldn't stop TiddlyWiki from working.
|Name|CustomTheme|
|Description|Custom Theme of TiddlyWiki|
|PageTemplate|##PageTemplate|
|ViewTemplate|##ViewTemplate|
|EditTemplate|##EditTemplate|
|StyleSheet|##StyleSheet|


!PageTemplate
<!--{{{-->
<div class='header'>
<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'><span id='noticeBoard' refresh='content' tiddler='NoticeBoard'></span></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlersBar' refresh='none' ondblclick='config.macros.tiddlersBar.onTiddlersBarAction(event)'></div>
<div id='tiddlerDisplay'></div>
<div id='contentFooter' refresh='content' tiddler='contentFooter'></div>
</div>
<!--}}}-->


!ViewTemplate
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagging' macro='tagging'></div>
<div class='tagClear'></div>
<!--}}}-->


!EditTemplate
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='tiddler QuickEditToolbar with: show'></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>
<!--}}}-->




!StyleSheet
/*{{{*/

.header { background: url(ENCABEZADO.jpg); background-repeat: repeat-x; height: 236px; }

.siteTitle {display: none;}
.siteSubtitle {display: none;}

.searchBar {float:right;font-size: 1.0em;}
.searchBar .button {color:#FC9;display:block; background-color:#FFF;}
.searchBar .button:hover {border:1px solid #fff;color:#4F4B45; background-color:#FFF;}
.searchBar input { 
 background-color: #FFF;
 color: #999999;
 border: 1px solid #CCC; margin-right:3px;
}


div.tiddler div.tagging { float:none; border:solid 0px [[ColorPalette::SubtleLight]]; padding:3px; background-color:[[ColorPalette::SubtleSuperLight]]; overflow:hidden; clear:both; zoom:1;}
div.tiddler div.tagging ul li { float:left; margin:0 1.5em 0 0; color:[[ColorPalette::LessSubtle]]; }
div.tiddler div.tagging ul li a { color:[[ColorPalette::MainAccentLight]]; }
div.tiddler div.tagging ul li a:hover { color:[[ColorPalette::MainAccent]]; background-color:[[ColorPalette::SubtleSuperLight]];}


#contentFooter {background:#575352; color:#BFB6B3; clear: both; padding: 0.5em 1em;}

 #contentFooter a {
 color: #BFB6B3;
 border-bottom: 1px dotted #BFB6B3;
 }
 
 #contentFooter a:hover {
 color: #FFFFFF;
 background-color:#575352;
 }

*html #contentFooter { padding:0.25em 1em 0.5em 1em;}


#noticeBoard {font-size: 0.9em; color:#999; position:relative;display:block;background:#fff; clear: both; margin-right:0.5em; margin-top:60px; padding:5px; border-bottom: 1px dotted #CCC; border-top: 1px dotted #CCC;}
#mainMenu #noticeBoard a,#mainMenu #noticeBoard .tiddlyLink {display:inline;border:none;padding:5px 2px;color:#DF9153 }
#noticeBoard a:hover {border:none;} 

#noticeBoard br {display:inline;}

#mainMenu #noticeBoard .button{
 color: #666;
 border: 1px solid #DF9153;padding:2px;
}

#mainMenu #noticeBoard .button:hover{
 color: #fff;
 background: #DF9153;
 border-color: #DF9153;
}

body { background-color: #fff; }
/* #mainMenu { color:#0000CC; background-color:#CFDCED; margin-top: 10px; margin-left: 10px; } */
#mainMenu { color:#0000CC; background: url(MainMenu.jpg); margin-top: 10px; margin-left: 10px; } 

/* get user styles specified in StyleSheet */
[[StyleSheet]]


/*Para redondear el tema*/

[[CustomTheme##StyleSheet]]

.tiddler,
.sliderPanel,
.button,
.tiddlyLink,
.tabContents
{ -moz-border-radius: 1em; }

.tab {
	-moz-border-radius-topleft: 0.5em;
	-moz-border-radius-topright: 0.5em;
}
#topMenu {
	-moz-border-radius-bottomleft: 2em;
	-moz-border-radius-bottomright: 2em;
}

/*}}}*/
{{{
// Specify your account number here!
_uacct = "UA-8942274-1";

// CustomTracker as a namespace for tracking related functions
var CustomTracker = {
// store a reference to the original displayTiddler function
displayTiddler: story.displayTiddler
};

CustomTracker.track = function() {
if (readOnly) {
urchinTracker.apply(this, arguments);
}
};

CustomTracker.trackAndDisplayTiddler = function(srcElement, titles) {
// log with the tracker
CustomTracker.track('/' + titles);
// call the original displayTiddler function
CustomTracker.displayTiddler.apply(this,arguments);
};

// replace the default displayTiddler function with a tracking version
story.displayTiddler = CustomTracker.trackAndDisplayTiddler;

// Call once for the initial page load
CustomTracker.track();
}}}
<<tiddler [[LibroTemplate]] with:'Códigos éticos en los negocios'>>/%
Foto: [img[Carmen Velayos: Códigos éticos en los negocios, 2003|FotosLibros/CodigosEticosNegocios.jpeg][Códigos éticos en los negocios]]

Titulo: Códigos éticos en los negocios

Autores: Ángel Moisés Borrego Rodríguez; [[Carmen Velayos]]; Pedro Francés Gómez

OtrosDatos: Ediciones Pirámide, 2003

Descripcion: En una economía globalizada y orientada a consumidores e inversores, los escándalos financieros, los desastres ecológicos o la injusticia en el comercio y las relaciones de trabajo han dejado de ser sólo un problema legal. Hace tiempo que las grandes corporaciones aprendieron que las mayores sanciones que pueden sufrir no son las impuestas por los gobiernos, sino la pérdida de su reputación y de la confianza de los mercados. En este contexto la gestión de la responsabilidad corporativa se hace cada vez más relevante no sólo como parte de la gestión del riesgo o de una política eficaz de relaciones públicas, sino como parte integral de la dirección y la organización de las empresas.<br>Esta obra, basada en investigaciones realizadas en España y en las contribuciones más relevantes del campo de la ética empresarial, muestra cómo puede ayudar a la gestión de la responsabilidad social corporativa un instrumento en apariencia simple como es el código ético. Con ejemplos y explicaciones sencillas se presenta el camino que conduce a una organización desde la toma de conciencia de sus carencias hasta el desarrollo de una ética propia y la elaboración de su código ético basados en su cultura corporativa y acordes con los principios generales más aceptados en áreas como las relaciones con los accionistas e inversores, el cuidado del medio ambiente, la responsabilidad hacia los consumidores, el trato a los trabajadores, el clima laboral, etc.
%/
<<tiddler [[PerfilTemplate]] with:'David Rodríguez-Arias'>>

{{oculto{
Foto: [img[Contacto|FotosPersonales/dra_thumb.JPG][Contacto]]

Nombre: David<br>~Rodríguez-Arias

!CurriculumESP
[[David Rodríguez-Arias Vailhen|David Rodríguez-Arias]] es doctor en filosofía y en ética médica. Actualmente es Ayudante del Área de Ética en la Facultad de Filosofía de la Universidad de Salamanca (Departamento de Historia del Derecho y Filosofía Jurídica, Moral y Política). Es magister en ética médica por la Universidad Paris Descartes (2002) y vocal del Comité de Ética Asistencial del Hospital Universitario de Salamanca. Sus publicaciones han abordado los aspectos bioéticos relativos al final de la vida (eutanasia, voluntades anticipadas, definición de la muerte), los trasplantes de órganos y la investigación biomédica. Recibió el premio de investigación 2009 de la [[Fundación Grifols i Lucas|http://www.fundaciogrifols.org/portal/es/2/home]] por su trabajo de tesis: //Muerte cerebral y transplante de órganos: aspectos internacionales y éticos//.
[[Currículo completo|Materiales/CV DRA 2010.pdf]] / [[Página web|http://www.dilemata.net/index.php/Actualidad-de-la-bioetica-medica/]]

!CurriculumENG
<br>+++[english]
[[David Rodríguez-Arias]], Ph.D, is Assistant Professor of Philosophy in the Department of History of Law and Legal, Moral and Political Philosophy at the University of Salamanca, Spain. He obtained a Masters degree in Medical Ethics from the Université Paris-5 in 2002. He has been visiting professor in Case Western Reserve University in Cleveland, OH, and currently is a member of the Ethics Consultation Committee of the Universitary Hospital of Salamanca. His main topics are the end-of-life, organ transplantation ethics and biomedical research ethics. He has been awarded with the Research Prize of the [[Grifols i Lucas Foundation|http://www.fundaciogrifols.org/portal/en/2/home]] for his work: //Brain death and organ transplants: international and ethical aspects//. [[Comprehensive CV|Materiales/CV DRA 2010.pdf]] / [[Web page|http://www.dilemata.net/index.php/Actualidad-de-la-bioetica-medica/]]
===

!Publicaciones
<<tiddler [[Una muerte razonable::Foto]]>><<tiddler [[Ética y experimentación con seres humanos::Foto]]>>

| !''2010'' |<<tiddler [[David Rodríguez-Arias##2010]]>> |
| !''2009'' |<<tiddler [[David Rodríguez-Arias##2009]]>> |
| !''2008'' |<<tiddler [[David Rodríguez-Arias##2008]]>> |
| !''2007'' |<<tiddler [[David Rodríguez-Arias##2007]]>> |
| !''2006'' |<<tiddler [[David Rodríguez-Arias##2006]]>> |
| !''2005'' |<<tiddler [[David Rodríguez-Arias##2005]]>> |


Ver más publicaciones: [[Dialnet|http://dialnet.unirioja.es/servlet/autor?codigo=1751974]]

!2010
*"¿Son médicamente relevantes las objeciones filosóficas sobre la muerte cerebral?", //[[Razón práctica y asuntos públicos|http://www.razonpracticayasuntospublicos.com/index.html]]//, nº 14.  [[ver|http://www.razonpracticayasuntospublicos.com/racionalidad/texto/Edicion%2014/Muerte%20cerebral.pdf]]
!2009
*David ~Rodriguez-Arias, Antonio Casado: "Controversias actuales sobre el consentimiento presunto para la donación de órganos", en //[[Ensayos sobre Bioética]]//, Aquilafuente, Universidad de Salamanca, 2009, pp. 188-208.
*Antonio Casado, David ~Rodriguez-Arias: "Hans Jonas's contribution to bioethics: 40 years after his philosophical reflections on experimenting with human subjects". //Appraisal//.
*"Patologias cronicas del debate público sobre la eutanasia. Aportaciones consecuencialistas". En: //Ética en la práctica//. Granada, 2009.
!2008
*David ~Rodriguez-Arias; Grégoire Moutel; Christian Hervé. //[[Ética y experimentación con seres humanos]]//.  Bilbao, Desclée de Brouwer, 2008.
*Alberto Molina, David ~Rodriguez-Arias, Stuart Youngner. "Should individuals choose their definition of death?" //Journal of Medical Ethics//, ''38'', pp. 688-9.
*"Luces y sombras del modelo español", en: [[Teresa López de la Vieja]], [[Carmen Velayos]] (eds.) //[[Educacion en bioetica. Donacion y trasplante de organos|Bioethical Education]]//. Salamanca, 2008, pp. 221-255.
*"¿Más muerto que vivo? La incapacidad de la ciencia para justificar la muerte cerebral". En: //Actas V Congreso de la Sociedad de Lógica, Metodología y Filosofía de la Ciencia en España, Granada, 2008.
!2007
*David ~Rodriguez-Arias; Grégoire Moutel; Christian Hervé. (2007) //Recherche biomédicale et populations vulnérables//. Paris. L’Harmattan, 2007.
*David ~Rodriguez-Arias; Moutel; Aulisio; Coffin; Salfati; ~Rodríguez-Arias JL; Calvo; Hervé. "Advance directives and the family: French and American perspectives", //Clinical Ethics//, ''2''(3):139-145.
*David ~Rodriguez-Arias, Alberto Molina: “Pluralismo en torno al significado de la muerte cerebral y/o revisión de la regla del donante fallecido”. //Laguna// ''21'': 65-80.
!2006
*"Pacientes con demencia en el final de la vida: ¿Son validas las directrices anticipadas?". En: //La Bioética, un puente inacabado//. Madrid, 2006.
*Chvetzoff G; Krakowski I; ~Rodriguez-Arias D; Hervé, C. "Directives anticipees, testament de vie, personne de confiance: definitions et revue de la literature". //Oncologie// ''8'',&nbsp;2006: HS, pp. 106-112.
!2005
* //[[Una muerte razonable. Testamento vital y eutanasia|Una muerte razonable]]//. Bilbao, 2005.
*David ~Rodriguez-Arias, ~José-Luis ~Rodriguez-Arias: "¿Deben decidir los "locos"? : Problemas eticos relacionados con el consentimiento informado de los enfermos mentales en investigacion y clinica". En: //[[Bioética. Perspectivas emergentes y nuevos problemas|Bioética. Perspectivas emergentes]]//, Tecnos, Madrid, 2005, pp. 287-308.
!end
<<tiddler [[LibroTemplate]] with:'Debemos tolerarlo todo'>>/%
Foto: [img[Enrique Bonete: ¿Debemos tolerarlo todo?, 2006|FotosLibros/DebemosTolerarloTodo.jpg][Debemos tolerarlo todo]]

Titulo: ¿Debemos tolerarlo todo?<br>Crítica del "tolerantismo" en las democracias

Autores: César Tejedor; [[Enrique Bonete]]

OtrosDatos: Desclée de Brouwer, 2006

Descripcion: ¿Hacemos bien con tratar de enseñar y expandir la tolerancia sin mesura en todos los niveles de la sociedad? La tolerancia se ha convertido en una de las virtudes públicas por excelencia de la democracia. Sin embargo, la facilidad con que en la actualidad se tiende a olvidar su auténtico sentido y traspasar sus límites morales, la convierte en una virtud controvertida.<br>Este libro indaga el significado genuino de la tolerancia, tratando de prevenir los peligros que se derivan de su puesta en práctica irresponsable e indiscriminada, que amenaza con minar las bases éticas de la democracia.
%/
Name: Blue (Default)
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
|Name|DefaultTheme|
|Description|Default Theme of TiddlyWiki|
|PageTemplate|##PageTemplate|
|ViewTemplate|##ViewTemplate|
|EditTemplate|##EditTemplate|
|StyleSheet|##StyleSheet|


!PageTemplate
<!--{{{-->
<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='macro' force='true' macro='slider chkSideBarTabs SideBarTabs "&nbsp;&nbsp;index »" "display lists of tiddlers"'></div>
</div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->

!ViewTemplate
<!--{{{-->
<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>
<!--}}}-->

!EditTemplate
<!--{{{-->
<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>
<!--}}}-->


!StyleSheet
/*{{{*/


/* get user styles specified in StyleSheet */
[[StyleSheet]]

/*}}}*/
[[Bienvenidos]]

#+++![Licenciatura  »]
<<fullscreen 'pantalla completa ↕'>> / [[abrir en otra pestaña|http://www.usal.es/webusal/node/545]]
<html><div align="center"><iframe src="http://www.usal.es/webusal/node/545/" frameborder="0" width="100%" height="800"></iframe></div></html>
===

#+++![Master de "Estudios interdisciplinares de género"  »]
<<fullscreen 'pantalla completa ↕'>> / [[abrir en otra pestaña|http://campus.usal.es/~mastergenero/]]
<html><div align="center"><iframe src="http://campus.usal.es/~mastergenero/" frameborder="0" width="100%" height="800"></iframe></div></html>
===

#+++![Master de "Estudios avanzados en filosofía"  »]
<<fullscreen 'pantalla completa ↕'>> / [[abrir en otra pestaña|http://www.usal.es/webusal/node/366/]]
<html><div align="center"><iframe src="http://www.usal.es/webusal/node/366" frameborder="0" width="100%" height="800"></iframe></div></html>
===

#+++![Acceso al campus virtual (Studium)  »]
<<fullscreen 'pantalla completa ↕'>> / [[abrir en otra pestaña|http://studium.usal.es/]]
<html><div align="center"><iframe src="http://studium.usal.es/" frameborder="0" width="100%" height="800"></iframe></div></html>
===
{{{
[img[title|filename]]
[img[filename]]
[img[title|filename][link]]
[img[filename][link]]
}}}
Images can be included by their filename or full URL. It's good practice to include a title to be shown as a tooltip, and when the image isn't available. An image can also link to another tiddler or or a URL
[img[Romanesque broccoli|fractalveg.jpg][http://www.flickr.com/photos/jermy/10134618/]]
{{{
[img[Fractal vegetable|fractalveg.jpg]]
[img[This is shown as a tooltip|http://example.com/image.jpg]]
[img[http://example.com/image.jpg]]
[img[http://example.com/image.jpg][ExampleDotCom]]
}}}
The tooltip is optional.

[<img[Forest|forest.jpg][http://www.flickr.com/photos/jermy/8749660/]][>img[Field|field.jpg][http://www.flickr.com/photos/jermy/8749285/]]You can also float images to the left or right: the forest is left aligned with {{{[<img[}}}, and the field is right aligned with {{{[>img[}}}.
@@clear(left):clear(right):display(block):You can use CSS to clear the floats@@
{{{
[<img[A woody bit of Hampstead Heath|forest.jpg]]
[>img[A field near Milton Keynes|field.jpg]]
}}}
<<tiddler [[I WORKSHOP SOBRE ÉTICA Y EMOCIONES: UNA PERSPECTIVA INTERDISCIPLINAR]]>>
There's now an option under InterfaceOptions to allow TiddlyWiki's animation effects to be turned off.
*''Facultad de Filosofía'' de la Universidad de Salamanca (http://www.usal.es/webusal/node/29)
*''Dilemata.net'', portal de éticas aplicadas (http://www.dilemata.net)
*''Department of Bioethics'', Case Western Reserve University, Cleveland. (http://www.case.edu/med/bioethics)
*''Laboratoire d'Éthique Médicale'' de l'Université Paris Descartes, Paris. (http://www.ethique.inserm.fr)
*''Manchester Centre for Emotion and Value'' (MANCEV) (http://www.socialsciences.manchester.ac.uk/disciplines/philosophy/research/emotionandvalue/)
**Peter Goldie (http://www.socialsciences.manchester.ac.uk/disciplines/philosophy/about/staff/goldie/index.html)
*''Joint Centre for Bioethics'', University of Toronto. (http://www.jointcentreforbioethics.ca/)
*Blog de ''Alicia Puleo'', doctora en Filosofía, directora de la Cátedra de Estudios de Género de la Universidad de Valladolid. (http://aliciapuleo.blogspot.com)
*Blog ''Emotions & Ethics'', de [[Mar Cabezas]] (http://emotionsandethics.blogspot.com)
*''Centro de estudios de la Mujer'', Salamanca (http://mujeres.usal.es)
*http://www.webethics.net/

++++![Recursos en Internet]
<<<
!!Global Ethics Observatory (~GEObs)
The observatory is a system of databases with worldwide coverage in bioethics and other areas of applied ethics in science and technology such as environmental ethics, science ethics, and technology ethics.
Enlace: http://www.unesco.org/shs/ethics/geobs
!!Bioethics Resources at National Institutes of Health (NIH)
Recursos Internet de los NIH.
Enlace: http://bioethics.od.nih.gov/
!!~BioethicsWeb
~BioethicsWeb offers free access to a searchable catalogue of Internet sites and resources covering biomedical ethics.
Enlace: http://www.intute.ac.uk/healthandlifesciences/bioethicsweb/
!!Bioethics.net
Enlace: http://bioethics.net/
!!~PhilPapers
~PhilPapers is a comprehensive directory of online philosophy articles and books by academic philosophers. We monitor journals in many areas of philosophy, as well as archives and personal pages. We also accept articles directly from users, who can provide links or upload copies.
Enlace: http://philpapers.org/
!!~EpistemeLinks
Enlace: http://www.epistemelinks.com/
!!Noesis (Philosophical research on-line)
Buscador de filosofía en internet
Enlace: http://hippias.evansville.edu/
!!Guide to Philosophy on the Internet
Enlace: http://www.earlham.edu/~peters/philinks.htm
!!Center for Ethics and Law in Biomedicine
Enlace: http://web.ceu.hu/celab/
!!ETHICSWEB
Inter-connected European information and documentation system for ethics and science: European Ethics Documentation Centre.
Proyecto financiado por la Comisión Europea construcción de un portal europeo de ética.
Enlace: http://ethicsweb.org/
<<<
===

++++![Bases de datos bibliográficas]
<<<
!!~PubMed
~PubMed is a service of the U.S. National Library of Medicine that includes over 18 million citations from MEDLINE and other life science journals for biomedical articles back to 1948.
Enlace: http://www.ncbi.nlm.nih.gov/pubmed/
!!NRCBL (U.S. National Reference Center for Bioethics Literature, Kenedy Institute of Ethics)
The National Reference Center for Bioethics Literature (NRCBL), is a specialized collection of books, journals, newspaper articles, legal materials, regulations, codes, government publications, and other relevant documents concerned with issues in biomedical and professional ethics. The library holdings represent the world's largest collection related to ethical issues in medicine and biomedical research.
Enlace: http://bioethics.georgetown.edu/nrc/index.htm
!!BELIT (Bioethics Literature Database)
BELIT is an integrated database of bioethics literature developed by the German Reference Centre for Ethics in the Life Sciences (DRZE, Bonn). It currently contains about 200,000 records.
Enlace: http://www.drze.de/BELIT
!!EURETHNET
The European bibliographic literature database EUROETHICS covers the subject fields
Medical Ethics and Biomedical Ethics.
Enlace: http://www.idem.uni-goettingen.de/euroethics/database.htm
!!CDEI (Centre de Documentation en Ethique)
Base de datos del centro de documentación en ética del CCNE (Comité Consultatif National d'Éthique), Paris.
Enlace: http://ist.inserm.fr/BASIS/cdei/fqmb/ethique/SF
!!SIBIL (I.S.S. Settore Documentazione SIBIL Base dati di bioetica)
Base de datos de bioética del Istituto Superiore di Sanità (Ministerio de Sanidad), Roma
Enlace: http://www.bioetica.iss.it/SebinaOpac/Opac
!!BASE (Bielefeld Academic Search Engine)
Buscador bibliográfico de la Universidad de Bielefeld, Alemania
Enlace: http://www.base-search.net
!!Neuroethics service (University of Mainz)
This portal aims at providing a complete and up-to-date overview of all publications in the discipline of Neuroethics from 1985 until today.
Enlace: http://www.neuroethik.ifzn.uni-mainz.de/
!!Dialnet
Dialnet es un portal de difusión de la producción científica hispana.
Enlace: http://dialnet.unirioja.es/
<<<
===
<<tiddler [[PerfilTemplate]] with:'Enrique Bonete'>>

{{oculto{
Foto: [img[Contacto|FotosPersonales/enbonete.JPG][Contacto]]

Nombre: Enrique Bonete

!CurriculumESP
[[Enrique Bonete Perales|Enrique Bonete]] (Valencia, 1959). Es catedrático de “Filosofía Moral” en la Universidad de Salamanca. Fue becario postdoctoral en el C.S.I.C. (Madrid) y amplió estudios en Estrasburgo (Consejo de Europa), Berlín y Londres. Es autor de numerosos trabajos éticos en revistas especializadas y de varios libros: //[[Aranguren, la ética entre la religión y la política]]// (Tecnos, Madrid, 1989); //[[Éticas contemporáneas]]// (Tecnos, Madrid, 1990); //[[La faz oculta de la modernidad]]// (Tecnos, Madrid, 1995); //[[Éticas en esbozo. De política felicidad y muerte|Éticas en esbozo]]// (Desclée, Bilbao, 2003); //[[¿Libres para morir?|Libres para morir]]// (Desclée, Bilbao, 2004); //[[¿Debemos tolerarlo todo?|Debemos tolerarlo todo]]//, -co-autor- (Desclée, Bilbao, 2006); //[[Repensar el fin de la vida. Sentido ético del morir|Repensar el fin de la vida]]// (Ediciones Internacionales Universitarias, Madrid, 2007); //[[Ética de la dependencia]]// (Tecnos, Madrid, 2009).
{{sangria1{
También ha coordinado e introducido volúmenes colectivos de interés social: //La política desde la ética I: Historia de un dilema// (Anthropos Proyecto A, Barcelona, 1998); //La política desde la ética II: Problemas morales de la democracia// (Anthropos Proyecto A, Barcelona, 1998); //Éticas de la información y deontologías del periodismo// (Tecnos, Madrid, 1995); //Ética de la comunicación audiovisual// (Tecnos, Madrid, 2000).
{{sangria1{
Es el director de la colección “Ética Aplicada” de la editorial Desclée de Brouwer (Bilbao) desde el año 2003, en la que ya se han publicado una quincena de libros.
}}}/%[[Ver curriculum completo|Materiales/CV Bonete.pdf]]%/

!CurriculumENG
<br>+++[english] [[Enrique Bonete Perales|Enrique Bonete]] (1959, Valencia, Spain), obtained a doctorate in Philosophy from the Pontifical University of Salamanca. At the moment, he is a full professor of Moral Philosophy and Political Philosophy at the University of Salamanca. He has also studied “Teaching of Human Rights” at the Council of Europe (Strasburg, 1984). He has conducted research at the Superior Council of Scientific Investigations (Madrid, 1987-1988), at Free University of Berlin (1992, 1998) and Heythrop College, University of London (2009).

He has written more than 60 works about ethical problems in Philosophy Journals as well as several books: Ethics between Religion and Politics (1989), Contemporary Ethics (1990), The Hidden Face of Modernity (1995), About Politics, Happiness and Death (2003), Are We Free For Dying? (2004),  Should We Tolerate Everything? -with an other author- (2006), Rethinking The End of Life. The Ethical Meaning of Dying (2007), Ethics of Dependency. Moral bases, political debates and bioethical implications (2009).
Professor Enrique Bonete has also coordinated and introduced several collective books of social interest: Politics from Ethics I: History of a Dilemma (1998), Politics from Ethics II: Moral Problems of Democracy (1998), The Ethics of Information and Deontological Codes of Journalism (1995), The Ethics of Audiovisual Communication (2000). From 2003, he has been the director of the collection “Applied Ethics” published by Desclée de Brouwer (Bilbao, Spain), which so far has published fourteen books. 
Currently, Professor Bonete teaches courses and gives lectures at universities and theological and philosophical centres in Spain, Europe and the U.S.A. 
===

!Publicaciones
<<tiddler [[Ética de la dependencia::Foto]]>><<tiddler [[Repensar el fin de la vida::Foto]]>><<tiddler [[Debemos tolerarlo todo::Foto]]>><<tiddler [[Libres para morir::Foto]]>><<tiddler [[Éticas en esbozo::Foto]]>>

| !''2009'' |<<tiddler [[Enrique Bonete##2009]]>> |
| !''2008'' |<<tiddler [[Enrique Bonete##2008]]>> |
| !''2007'' |<<tiddler [[Enrique Bonete##2007]]>> |
| !''2006'' |<<tiddler [[Enrique Bonete##2006]]>> |
| !''2005'' |<<tiddler [[Enrique Bonete##2005]]>> |
| !''2004'' |<<tiddler [[Enrique Bonete##2004]]>> |
| !''2003'' |<<tiddler [[Enrique Bonete##2003]]>> |
| !''2002'' |<<tiddler [[Enrique Bonete##2002]]>> |
| !''2001'' |<<tiddler [[Enrique Bonete##2001]]>> |
| !''2000'' |<<tiddler [[Enrique Bonete##2000]]>> |

Ver más publicaciones: [[Dialnet|http://dialnet.unirioja.es/servlet/autor?codigo=32466]]
!2009
*//[[Ética de la dependencia]]//, Tecnos, Madrid, 2009, 210 páginas  (ISBN: 978-84-309-4843-7)

!2008
*//[[Repensar el fin de la vida. Sentido ético del morir|Repensar el fin de la vida]]//, Ediciones Internacionales Universitarias, Madrid, 2007, 170 páginas (ISBN: 978-84-8469-206-5)
*“La dignidad del muriente”, en //Azafea// (Universidad de Salamanca), ''vol. 10'', 2008, pp. 123-144 (ISSN: 0213-3563).
*“Aranguren: sentido ético de la muerte”, en //Hispanismo Filosófico// (Universidad Autónoma de Madrid), ''nº 13'', 2008, pp. 75-89 (ISSN: 11368071)

!2007
*//[[Repensar el fin de la vida. Sentido ético del morir|Repensar el fin de la vida]]//, Ediciones Internacionales Universitarias, Madrid, 2007, 170 páginas (ISBN: 978-84-8469-206-5)
*“El dolor y la muerte en Julián Marías”, en Anrubia, E. (ed.), //Filosofías del dolor y de la muerte//, Ed. Comares, Granada, 2007, pp. 91-110 (ISBN: 978-84-9836-292-3).
*“Padecientes humanos y pacientes terminales”, en Cayuela, A. (coord.), //Path-ética. Paradoja del humano existir//, Marova, Madrid, 2007, pp. 221-253 (ISBN: 978-84-269-0464-5).
*“Los médicos ante el muriente. Para la práctica de la Tánato-ética”, //Cuadernos de Realidades Sociales//, ''vol. 35'', números 69-70, mayo de 2007, pp.143-174 (ISBN: 84-600-5734-8).

!2006
*//[[¿Debemos tolerarlo todo? Crítica del “tolerantismo” en las democracias|Debemos tolerarlo todo]], Desclée de Brouwer, Bilbao, 2006, 165 páginas (ISBN: 84-330-2110-9) (co-autor)

!2005
*“La familia ante el muriente”, en Cayuela, A. (ed.). //Vulnerables. Pensar la fragilidad humana//, Editorial Encuentro, Madrid, 2005, pp. 198-221 (ISBN: 84-7490-426-9).
*“Muerte encefálica: implicaciones éticas”, en García ~Gómez-Heras, J.M. y Velayos, C. (eds.), //[[Bioética: Perspectivas emergentes y nuevos problemas|Bioética. Perspectivas emergentes]]//, Tecnos, Madrid, 2005, pp. 221-254, (ISBN: 84-309-4282-3).
*“La necesaria ramificación de la Bioética”, en López de la Vieja, M.T. (ed.), //[[Bioética. Entre la medicina y la ética]]//, Publicaciones Universidad de Salamanca, 2005, pp. 61-82 (ISBN: 84-7800-556-0).
*“La cultura moral cristiana: factor de identidad de Europa”, en López de la Vieja, M.T. (ed.), //[[Ciudadanos de Europa. Derechos fundamentales de la Unión Europea|Ciudadanos de Europa]], Biblioteca Nueva, Madrid, 2005, pp. 173-192 (ISBN: 84-9742-350-X).

!2004
*//[[Libres para morir? En torno a la Tánato-ética|Libres para morir]]//, Desclée de Brouwer, Bilbao, 2004, 178 páginas (ISBN:84-330-1910-4)
*“Impacto ético de los medios de comunicación”, en Murillo, I. (ed.), //Filosofía práctica y persona humana//, UPSA, Salamanca, 2004, pp. 287-301 (ISBN: 84-7299-592-5).

!2003
*//[[Éticas en esbozo. De política, felicidad y muerte|Éticas en esbozo]]//, Desclée de Brouwer, Bilbao, 2003, 223 páginas (ISBN: 84-330-1753-5)

!2002
*“La recherche du bonheur”, en ~Gómez-Muller, A., (ed.), //Du bonheur comme question éthique//, L’Harmattan, París, 2002, pp. 109-138 (ISBN: 2-7475-2465-5).
*“Muerte, libertad, suicidio. La filosofía como preparación para la muerte”, en Cuadernos Salmantinos de Filosofía, diciembre de 2002, vol. XXIX, pp. 419-479 (ISSN: 0210-4857).
“Ética de la muerte: de la Bioética a la Tánato-ética”, en Daimon. Revista de Filosofía, nº 25, 2002 (Universidad de Murcia), pp. 57-74 (ISSN: 1130-0507).

!2001
*“Esbozo de una ética de la información y comunicación”, en García ~Gómez-Heras, J.M. (ed.), //Ética en la frontera//, vol. I, Ed. Biblioteca Nueva, Madrid, 2001, pp. 203-230 - (ISBN: 84-7030-979-X)
*“Modelos éticos de felicidad (Un esquema comparativo de eudemonismo)”, en Cuadernos Salmantinos de Filosofía, vol. XXVIII, 2001, pp. 407-440 (ISSN: 0210-4857).

!2000
*“Perspectiva ética del derecho a la información”, en Caparrós, F. (ed.), //Responsa Iurisperitorum Digesta//, Ediciones Universidad de Salamanca, 2000, pp. 35-58 (ISBN: 84-7800-945-0).
*“¿Qué queda del marxismo al final del siglo XX?”, en VV.AA., //Las ideologías al final del siglo//, Ediciones Universidad de Salamanca, 2000, pp. 11-30 (ISBN: 84-780-932-9).
*“Implicaciones éticas de la muerte”, en La Ciudad de Dios, CCXIII, 2000, pp. 1025-1047 (ISSN: 0009-7756).
!End
<<tiddler [[LibroTemplate]] with:'Ensayos sobre Bioética'>>/%
Foto: [img[Teresa López de la Vieja (ed.), Ensayos sobre Bioética, 2009|FotosLibros/EnsayosSobreBioetica.jpg]]

Titulo: Ensayos sobre Bioética

Autores: [[Teresa López de la Vieja]] (ed.)

OtrosDatos: Ediciones Universidad de Salamanca, 2009

Descripcion: Los días 5 y 6 de febrero de 2009 tuvo lugar en la Facultad de Filosofía de la Universidad de Salamanca el X Seminario de Bioética. En él participaron especialistas de la Universidad de Costa Rica, la UNAM de México, la Universitat de Barcelona, la Universidade de Évora, la Universidad del País Vasco, el Instituto de Filosofía del ~CCHS-CSIC y de la propia Universidad de Salamanca. Pocos meses después de su celebración, las aportaciones de aquel fructífero encuentro han sido publicadas en un libro de cuidada edición al que acompaña un DVD que recoge un resumen de las intervenciones que tuvieron lugar en las jornadas. //Ver reseña completa:// [img[ver la reseña completa|pdf.gif][Materiales/Ensayos sobre Bioética_reseña.pdf]]
%/




Aenean eros arcu, condimentum nec, dapibus ut, tincidunt sit amet, urna. Quisque viverra, eros sed imperdiet iaculis, est risus facilisis quam, id malesuada arcu nulla luctus urna. Nullam et est. Vestibulum velit sem, faucibus cursus, dapibus vestibulum, pellentesque et, urna. Donec luctus. Donec lectus. Aliquam eget eros facilisis tortor feugiat sollicitudin. Integer lobortis vulputate sapien. Sed iaculis erat ac nunc. Etiam eu enim. Mauris ipsum urna, rhoncus at, bibendum sit amet, euismod eget, dolor. Mauris fermentum quam vitae ligula. Vestibulum in libero feugiat justo dictum consectetuer. Vestibulum euismod purus eget elit. Nunc sed massa porta elit bibendum posuere. Nunc pulvinar justo sit amet odio. In sed est. Phasellus ornare elementum nulla. Nulla ipsum neque, cursus a, viverra a, imperdiet at, enim. Quisque facilisis, diam sed accumsan suscipit, odio arcu hendrerit dolor, quis aliquet massa nulla nec sem.
!heading 1
!!heading 2
!!!heading3
----
<<tag button>>
This is a link to a [[StyleSheet]] tiddler.

> This is a blockquote
> This is a blockquote
> This is a blockquote
|>|>| !This is a header |h
|column1|column2|column3|
|row2| row2 |row2|
|column1|column2|column3|
|row2| row2 |row2|
|column1|column2|column3|
|row2| row2 |row2|
#displayArea {background-color: #ffccff; }
#mainMenu {border: 1px solid #ffff88; }
#commandPanel {background-color: #008800; }
config.animFast = 0.12; // Speed for animations (lower == slower)
config.animSlow = 0.01; // Speed for EasterEgg animations
config.views.wikified.toolbarEdit.text = "Edit away, it won't get saved";
~TiddlyWiki is being used for all kinds of things:
* Many people are using the [[GTD ("Getting Things Done")|GTDTiddlyWiki]] ~TiddlyWiki variant for personal productivity
* There have been some interesting experiments in TiddlyWikiFiction
* Garrett Lisi has published his work on Deferential Geometry in a paper named [[An Exceptionally Simple Theory of Everything|http://deferentialgeometry.org]]
* Phil Hawksworth has used ~TiddlyWiki to create a flexible task management tool called [[TeamTasks|http://www.getteamtasks.com]]
* Paul Downey and Phil Hawksworth have created a note sharing tool called [[RippleRap|http://www.ripplerap.com]]
* An "electronic wallet" for storing passwords and other confidential information called [[TiddlyFolio|http://tiddlyfolio.tiddlyspot.com/]]
* [[Video tutorials interspersed with Q&A|http://files.unamesa.org/MORE/MORE.html]] by UnaMesa
* By teachers in Massachusetts to [[teach mathematics|http://luceatlux.net/mcasmath10/]]
* By schools in South Australia to [[distribute class materials to students|https://secure.ait.org/wiki/background.htm]]
* A [[music and culture site|http://udigrudi.net/]] (in Portugese)
* Jonny ~LeRoy has created a ~TiddlyWiki based on [[resizable windows|http://tiddlyhome.bidix.info/desk/]]
* Miguel Centellas has created an [[extensive guide to Bolivian politics|http://www.centellas.org/politics/politiddly.html]]
* BT is using a ~TiddlyWiki file for their [[Open source website|http://www.bt.com/opensource]]
* Elise Springer, a philospher at Wesleyan University in Connecticut, USA, is using ~TiddlyWiki for her [[homepage|http://espringer.web.wesleyan.edu/]] and for [[Reasoning Well|http://reasoningwell.tiddlyspot.com/]], a wiki for her Philosophy faculty
* The website of a [[body-building club in Paris|http://www.superphysique.net/]]
Also, see TiddlyWikiAdaptations
Like most wikis, ~TiddlyWiki supports a range of simplified character formatting. You can find a list on the [[TiddlyWiki.org website|http://tiddlywiki.org/wiki/TiddlyWiki_Markup]]. 

To see all the tiddlers on this website that concern formatting, click on the 'formatting' link in the box that appears to the right of this tiddler.


<<tiddler [[LibroTemplate]] with:'Feminismo ecológico'>>/%
Foto: [img[Velayos,  Barrios,  Figueruelo,  López de la Vieja (eds.): Feminismo ecológico, 2007|FotosLibros/FeminismoEcológico.jpg][Feminismo ecológico]]

Titulo: Feminismo ecológico. Estudios multidiciplinares de género 

Autores: [[Carmen Velayos]],  Olga Barrios,  Ángela Figueruelo,  [[Teresa López de la Vieja]] (eds.)

OtrosDatos: Ediciones Universidad de Salamanca, 2007

Descripcion:
%/
<<tiddler [[LibroTemplate]] with:'Feminismo. Del pasado al presente'>>/%
Foto: [img[Teresa López de la Vieja: Feminismo. Del pasado al presente, 2000|FotosLibros/FeminismoPasadoPresente.jpg][Feminismo. Del pasado al presente]]

Titulo: Feminismo. Del pasado al presente

Autores: [[Teresa López de la Vieja]] (ed.)

OtrosDatos: Publicaciones Universidad de Salamanca, Salamanca, 2000

Descripcion: En los últimos veinte años, la Teoría feminista ha mostrado la relevancia del punto de vista de genero para modificar las practicas sociales, y la agenda teórica en las distintas áreas de conocimiento (Derecho, Filosofía, Ciencias sociales, Ciencias de la salud, Filología, Historia, Ciencias de la información, etc,). Como teoría critica, ha denunciado con "otra voz" la separación entre la igualad formal y la desigualad real, entre derechos reconocidos y situaciones concretas. Por estos y otros motivos, las Teorías feministas han puesto al día el proyecto moderno de justicia, autonomía, igualdad, solidaridad y emancipación. La nueva interpretación de los clásicos del pensamiento y de la ciencia, la introducción de una perspectiva de genero, la construcción de una esfera publica sin restricciones, el final del patriarcado definen un proyecto de inclusión. Por muchas razones, el Feminismo puede ser interpretado como (a) una Teoría critica que valora el punto de vista de genero, (b) como programa de integración, para traducir el punto de vista normativo en practicas sociales y en programas políticos. El volumen, Feminismo: del pasado al presente, mantiene esta doble perspectiva, en su recorrido por las formas de conocimiento (Ciencias sociales, Filosofía, Historia, Filología, Ciencias de la información, Geografía, Derecho).
%/
<<tiddler [[LibroTemplate]] with:'Figuras del Logos'>>

{{oculto{

Foto: [img[Teresa López de la Vieja (ed.): Figuras del Logos, 1994|FotosLibros/FigurasLogos.jpg][Figuras del Logos]]

Titulo: Figuras del Logos. Entre la Filosofía y la Literatura

Autores: [[Teresa López de la Vieja]] (ed.)

OtrosDatos: FCE, Madrid, 1994

Descripcion: Los artículos del libro proponen diferentes perspectivas sobre las relaciones entre Filosofía y Literatura. los autores -especialistas de distinta formación, y que realizan su trabajo en Universidades españolas, mexicanas, alemanas- reflexionan sobre el grado de conocimiento que puede haber en las obras de ficción, y  sobre el modo en el cual se construyen subjetividad y texto, las relaciones entre mundo y lenguaje. El volumen pretende mostrar las posibilidades, teóricas y practicas, de la relacione entre discursos y argumentos - Filosofía, Literatura - que son diferentes y, a la vez, comparten una vertiente reflexiva.
}}}

/***
|Name|FontSizePlugin|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#FontSizePlugin|
|Version|1.0|
|Requires|~TW2.x|
!Description:
Resize tiddler text on the fly. The text size is remembered between sessions by use of a cookie.
You can customize the maximum and minimum allowed sizes.
(only affects tiddler content text, not any other text)

Also, you can load a TW file with a font-size specified in the url.
Eg: http://tw.lewcid.org/#font:110

!Demo:
Try using the font-size buttons in the sidebar, or in the MainMenu above.

!Installation:
Copy the contents of this tiddler to your TW, tag with systemConfig, save and reload your TW.
Then put {{{<<fontSize "font-size:">>}}} in your SideBarOptions tiddler, or anywhere else that you might like.

!Usage
{{{<<fontSize>>}}} results in <<fontSize>>
{{{<<fontSize font-size: >>}}} results in <<fontSize font-size:>>

!Customizing:
The buttons and prefix text are wrapped in a span with class fontResizer, for easy css styling.
To change the default font-size, and the maximum and minimum font-size allowed, edit the config.fontSize.settings section of the code below.

!Notes:
This plugin assumes that the initial font-size is 100% and then increases or decreases the size by 10%. This stepsize of 10% can also be customized.

!History:
*27-07-06, version 1.0 : prevented double clicks from triggering editing of containing tiddler.
*25-07-06,  version 0.9

!Code
***/

//{{{
config.fontSize={};

//configuration settings
config.fontSize.settings =
{
            defaultSize : 100,  // all sizes in %
            maxSize : 200,
            minSize : 40,
            stepSize : 10
};

//startup code
var fontSettings = config.fontSize.settings;

if (!config.options.txtFontSize)
            {config.options.txtFontSize = fontSettings.defaultSize;
            saveOptionCookie("txtFontSize");}
setStylesheet(".tiddler .viewer {font-size:"+config.options.txtFontSize+"%;}\n","fontResizerStyles");
setStylesheet("#contentWrapper .fontResizer .button {display:inline;font-size:105%; font-weight:bold; margin:0 1px; padding: 0 3px; text-align:center !important;}\n .fontResizer {margin:0 0.5em;}","fontResizerButtonStyles");

//macro
config.macros.fontSize={};
config.macros.fontSize.handler = function (place,macroName,params,wikifier,paramString,tiddler)
{

               var sp = createTiddlyElement(place,"span",null,"fontResizer");
               sp.ondblclick=this.onDblClick;
               if (params[0])
                           createTiddlyText(sp,params[0]);
               createTiddlyButton(sp,"+","increase font-size",this.incFont);
               createTiddlyButton(sp,"=","reset font-size",this.resetFont);
               createTiddlyButton(sp,"–","decrease font-size",this.decFont);
}

config.macros.fontSize.onDblClick = function (e)
{
             if (!e) var e = window.event;
             e.cancelBubble = true;
             if (e.stopPropagation) e.stopPropagation();
             return false;
}

config.macros.fontSize.setFont = function ()
{
               saveOptionCookie("txtFontSize");
               setStylesheet(".tiddler .viewer {font-size:"+config.options.txtFontSize+"%;}\n","fontResizerStyles");
}

config.macros.fontSize.incFont=function()
{
               if (config.options.txtFontSize < fontSettings.maxSize)
                  config.options.txtFontSize = (config.options.txtFontSize*1)+fontSettings.stepSize;
               config.macros.fontSize.setFont();
}

config.macros.fontSize.decFont=function()
{

               if (config.options.txtFontSize > fontSettings.minSize)
                  config.options.txtFontSize = (config.options.txtFontSize*1) - fontSettings.stepSize;
               config.macros.fontSize.setFont();
}

config.macros.fontSize.resetFont=function()
{

               config.options.txtFontSize=fontSettings.defaultSize;
               config.macros.fontSize.setFont();
}

config.paramifiers.font =
{
               onstart: function(v)
                  {
                   config.options.txtFontSize = v;
                   config.macros.fontSize.setFont();
                  }
};
//}}}
/***
|Name|FramedLinksPlugin|
|Source|http://www.TiddlyTools.com/#FramedLinksPlugin|
|Version|1.1.1|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|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 as inline frames (~IFRAMEs) instead of opening new browser tabs/windows.
!!!!!Usage
<<<
Use standard TiddlyWiki external link syntax into your tiddler content. If {{{chkFramedLinks}}} is enabled or the tiddler is tagged with 'framedLinks' (see Configuration), then whenever you click the external link an IFRAME will be dynamically added to the content.  Clicking on the link again removes the IFRAME.  Hold down any modifier (shift, control, or alt) while clicking a link ''temporarily'' bypasses the IFRAME handling and use the standard link handling behavior.
<<<
!!!!!Configuration
<<<
<<option chkFramedLinks>> display inline frames for all external links
&nbsp; &nbsp; {{{<<option chkFramedLinks>>}}}
<<option chkFramedLinksTag>> display inline frames for external links in tiddlers tagged with: <<option txtFramedLinksTag>> 
&nbsp; &nbsp; {{{<<option chkFramedLinksTag>> <<option txtFramedLinksTag>>}}}
IFRAME size (CSS units: %, em, px, cm, in) - width: <<option txtFrameWidth>> height: <<option txtFrameHeight>>
&nbsp; &nbsp; {{{<<option txtFrameWidth>> <<option txtFrameHeight>>}}}
<<<
!!!!!Examples
<<<
Try these links:
*http://www.TiddlyWiki.com
*http://www.TiddlyTools.com
*http://groups.google.com/group/TiddlyWiki/topics
<<<
!!!!!Revisions
<<<
2008.11.14 [1.1.1] fixed handling for external links embedded in //shadow// tiddlers
2008.09.13 [1.1.0] added support to selectively enable embedded IFRAMEs if the containing tiddler is tagged with 'framedLinks'
2007.11.29 [1.0.5] added slider animation and improved CSS handling for IFRAME height/width to maximize display area
2007.11.29 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.FramedLinksPlugin= {major: 1, minor: 1, revision: 1, date: new Date(2008,11,14)};

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

window.framedLinks_createExternalLink=createExternalLink;
window.createExternalLink=function(place,url)
{
	var link=this.framedLinks_createExternalLink.apply(this,arguments);
	link.onclick=function(ev) { var e=ev?ev:window.event;
		var co=config.options; // abbreviation
		var here=story.findContainingTiddler(this);
		if (here) var tid=store.getTiddler(here.getAttribute("tiddler"));
		var enabled=co.chkFramedLinks || co.chkFramedLinksTag && tid && tid.isTagged(co.txtFramedLinksTag);
		if (!enabled || e.ctrlKey || e.shiftKey || e.altKey) return; // BYPASS
		var p=this.parentNode; 
		var f=this.nextSibling?this.nextSibling.firstChild:null; // get the IFRAME... maybe...
		var w=co.txtFrameWidth; if (!w || !w.length) w="100%";
		var h=co.txtFrameHeight; if (!h || !h.length) h="80%";
		if (h.indexOf("%")) h=(findWindowHeight()*h.replace(/%/,"")/100)+"px"; // calc height as % of window
		var showing=f && f.nodeName.toUpperCase()=="IFRAME"; // does IFRAME really exist?
		var stretchCell=p.nodeName.toUpperCase()=="TD" && w.indexOf("%")!=-1 && w.replace(/%/,"")>=100;
		if (!showing) { // create an iframe
			link.style.display="block"; // force IFRAME onto line following link
			if (stretchCell) { p.setAttribute("savedWidth",p.style.width); p.style.width="100%"; } // adjust TD so IFRAME stretches
			var wrapper=createTiddlyElement(null,"span"); // wrapper for slider animation
			wrapper.setAttribute("url",this.href); // for async loading of frame after animation completes
			var f=createTiddlyElement(wrapper,"iframe"); // create IFRAME
			f.style.backgroundColor="#fff"; f.style.width=w; f.style.height=h;
			p.insertBefore(wrapper,this.nextSibling);
			function loadURL(wrapper) { var f=wrapper.firstChild; var url=wrapper.getAttribute("url");
				var d=f.contentDocument?f.contentDocument:(f.contentWindow?f.contentWindow.document:f.document);
				d.open(); d.writeln("<html>connecting to "+url+"</html>"); d.close();
				try { f.src=url; } // if the iframe can't handle the href
				catch(e) { alert(e.description?e.description:e.toString()); } // ... then report the error
				window.scrollTo(0,ensureVisible(wrapper));
			}
			if (!co.chkAnimate) loadURL(wrapper);
			else {
				var morph=new Slider(wrapper,true);
				morph.callback=loadURL;
				morph.properties.push({style: 'width', start: 0, end: 100, template: '%0%'});
				anim.startAnimating(morph);
			}
		} else { // remove iframe
			link.style.display="inline"; // restore link style
			if (stretchCell) p.style.width=p.getAttribute("savedWidth"); // restore previous width of TD
			if (!co.chkAnimate) p.removeChild(f.parentNode);
			else {
				var morph=new Slider(f.parentNode,false,false,"all");
				morph.properties.push({style: 'width', start: 100, end: 0, template: '%0%'});
				anim.startAnimating(morph);
			}
		}
		e.cancelBubble=true; if (e.stopPropagation) e.stopPropagation(); return false;
	}
	return link;
}
//}}}
/***
|Name|FullScreenPlugin|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#FullScreenPlugin|
|Version|1.1|
|Requires|~TW2.x|
!Description:
Toggle between viewing tiddlers fullscreen and normally. Very handy for when you need more viewing space.

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

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

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

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

config.commands.fullscreen =
{
            text:" ↕ ",
            tooltip:"Fullscreen mode"
};

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

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

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


Slider.prototype.lewcidStop = Slider.prototype.stop;
Slider.prototype.stop = function()
{
           this.lewcidStop();
           if (story.isEmpty() && lewcidFullScreen == true)
              config.commands.fullscreen.handler();
}
//}}}
{{bordes miniatura{
[img[Construcción.jpg]]
}}}Página en construcción

/%
|<<photoGallery url:GaleriaFotos/2009_Fotos_SpringBreak/2009_Springbreak/Springbreak_2009_0*.jpg first:1 last:5 height:200 time:2000 labels:SubTitles numbers>>|
%/
<html><script type="text/javascript" src="http://widgets.amung.us/classic.js"></script><script type="text/javascript">WAU_classic('sljsm55720cd')</script>
<script type="text/javascript" src="http://widgets.amung.us/classic.js"></script><script type="text/javascript">WAU_classic('sljsm55720cd')</script></html>
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>>

See also [[Help]] and [[MPTW|http://mptw.tiddlyspot.com/]].
Name: Green (Mptw)
Background: #fff
Foreground: #000
PrimaryPale: #9b9
PrimaryLight: #385
PrimaryMid: #031
PrimaryDark: #020
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
[[TiddlyWiki Original|http://www.tiddlywiki.com]]
[[TiddlyWiki help|http://twhelp.tiddlyspot.com/#Welcome]]

http://moodle.org/about/
/***
|Name:|HideWhenPlugin|
|Description:|Allows conditional inclusion/exclusion in templates|
|Version:|3.1 ($Rev: 3919 $)|
|Date:|$Date: 2008-03-13 02:03:12 +1000 (Thu, 13 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#HideWhenPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
For use in ViewTemplate and EditTemplate. Example usage:
{{{<div macro="showWhenTagged Task">[[TaskToolbar]]</div>}}}
{{{<div macro="showWhen tiddler.modifier == 'BartSimpson'"><img src="bart.gif"/></div>}}}
***/
//{{{

window.hideWhenLastTest = false;

window.removeElementWhen = function(test,place) {
	window.hideWhenLastTest = test;
	if (test) {
		removeChildren(place);
		place.parentNode.removeChild(place);
	}
};


merge(config.macros,{

	hideWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( eval(paramString), place);
	}},

	showWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !eval(paramString), place);
	}},

	hideWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAll(params), place);
	}},

	showWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAll(params), place);
	}},

	hideWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAny(params), place);
	}},

	showWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAny(params), place);
	}},

	hideWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAll(params), place);
	}},

	showWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAll(params), place);
	}},

	hideWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0]), place);
	}},

	showWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !(store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0])), place);
	}},

	hideWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.title == params[0], place);
	}},

	showWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.title != params[0], place);
	}},

	'else': { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !window.hideWhenLastTest, place);
	}}

});

//}}}
<<top>>
<<toggleSideBar "" "" show>>
<<fullscreen>>
/%<<jump j '' top>>%/
/%<<newTiddler>><<renameButton n>>%/
/%<<saveChanges>><<renameButton s 'Sauvegarder TiddlyWiki'>>%/
{{centrado novedades grande{
''WITH SIMULTANEOUS TRANSLATION !''
}}}{{centrado{
''FULL PROGRAM FLYER'': side A [img[pdf.gif][Actividades/TRIPTICOCARAA300.jpg]] / side B [img[pdf.gif][Actividades/TRIPTICOCARAB300.jpg]]}}}
|floatleft sinbordes margenes|k
| <<tiddler  [[I WORKSHOP ON ETHICS AND EMOTIONS: AN INTERDISCIPLINARY PERSPECTIVE##PORTADA]]>> |
| Email: [[Carmen Velayos|mailto:cvelayos@usal.es]], [[Mar Cabezas|mailto:marcabezas@usal.es]] |
[>img[español|spanish.jpeg][I WORKSHOP SOBRE ÉTICA Y EMOCIONES: UNA PERSPECTIVA INTERDISCIPLINAR]]
!!DATES:
March 3rd-5th 2010

!!LOCATION:
@@"Salón de Actos", Faculty of Translation and Documentation@@, University of Salamanca, Spain. [[See it on the map|http://exlibris.usal.es/index.php?option=com_content&view=category&layout=blog&id=72&Itemid=104]]

!!ORGANIZERS:
[[Carmen Velayos]] & [[Mar Cabezas]] (Departamento de Historia del Derecho y Filosofía Jurídica, Moral y Política, Facultad de Filosofía, Universidad de Salamanca)

!!INVITED SPEAKERS:
|sinbordes|k
|''[[Mariano Chóliz|http://www.uv.es/choliz/]]'' (Universidad de Valencia, España)|
|''[[Peter Goldie|http://www.socialsciences.manchester.ac.uk/disciplines/philosophy/about/staff/goldie/]]'' (University of Manchester, Reino Unido)|
|''[[Jesse J. Prinz|http://subcortex.com]]'' (City University of New York, USA)|
|''[[Alicia H. Puleo|http://www3.uva.es/filosofia/blogs/index.php?op=Template&blogId=12&show=about]]'' (Universidad de Valladolid, España)|
|''[[Raffaele Rodogno|http://rodogno.com/default.aspx]]'' (Swiss National Fund Senior Researcher, University of Oxford, Reino Unido, & University of Arhus, Dinamarca)|
|''[[José Luis Zaccagnini|http://emotional.intelligence.uma.es/pagina01.htm]]'' (Universidad de Málaga, España)|
<br>
++++!![AIM OF THE WORKSHOP »]
<br>{{justificado normal{
{{letrina{T}}}he study of the emotions in the last decades -their neurological mechanisms as well as their role in human action- has reached new heights (Damasio, ~LeDoux, Moll, Ekman, Davidson, Frijda, Solomon, ~DeWaal…) due to the increasing interest awaked in many disciplines.

Likewise, the arise of Emotional Intelligence (Salovey & Mayer)  has also been especially relevant since it has implied, on the one hand, the enlargement of the concept “cognition” and, on the other hand, the comprehension of emotion from an evolutive and functional perspective.

At the same time, the new empirical research in emotion has shed some light on the nature of morality. Contrary to standard assumptions, it seems today that there are more than sufficient evidences to accept the emotional base of morality.

Therefore this workshop is intended -for any under/post grad. student with an interest in emotions- to provide an interdisciplinary forum to extend the possible consequences in ethics and metaethics of accepting the role of emotions in moral agency.

ENGLISH [img[pdf.gif][Actividades/Workshop_Salamanca_2010-eng.pdf]]
FULL PROGRAM FLYER: side A [img[pdf.gif][Actividades/TRIPTICOCARAA300.jpg]] / side B [img[pdf.gif][Actividades/TRIPTICOCARAB300.jpg]]
}}}
===
+++!![CALL FOR PAPERS »]
<br>{{justificado normal{
{{letrina{W}}}e welcome submissions of extended abstracts (1000 words) that address any question about the connection between emotions and moral agency from a moral/philosophical or/and a psychological perspective, although we also accept papers from other disciplines as neurology, biology, sociology, anthropology, etc.

Papers can be focused on a wide range of questions involving the relevance of empirical research in emotions to moral philosophy. Thus, possible issues to be addressed include, among others: what is- if any- the role of emotions in moral decision making? What is the relation between emotions and values, judgments and moral responsibility? Do emotions have a cognitive role in enabling us to recognize a moral damage? Can reasoning be understood as an emotional process or do emotions distort reasoning? If moral judgments are based on emotions, what- if any- is the relation between emotions and moral obligations? Are all the emotions morally relevant or only some specific ones as guilt, shame or indignation? How do emotions motivate moral action and what is the role of positive emotions? How can happiness and moral duties become compatible? Can the emotional education be useful against moral indifference? And finally, from an ontological and metaethical perspective, how can the recent researches modify our traditional way of understanding emotions and morality?

Abstracts should be submitted by email to Carmen Velayos: cvelayos@usal.es (Please include the keyword ‘ABSTRACT’ as the first word of the message’s subject). 
}}}
===
+++!![ACCOMODATION »]

|floatright sinbordes marco mediana|k
| <<tiddler  [[I WORKSHOP ON ETHICS AND EMOTIONS: AN INTERDISCIPLINARY PERSPECTIVE##FONSECA]]>> |
| Fonseca's Palace: [[página web|http://www.usal.es/~residen/Fonseca/index4.html]] |
{{justificado{
{{letrina{T}}}he [[Fonseca’s Palace|http://www.usal.es/~residen/Fonseca/index4.html]] is the chosen place for guest speakers’ accommodation. It was founded in the 16th century and it is considered one of the best works of the Spanish Renaissance. In any case, Salamanca provides a wide range of hotels and hostels.
}}}
|[img[fonseca_1.jpg]]|[img[fonseca_2.jpg]]|
<br>
===
+++!![HOW TO GET TO SALAMANCA »]
<br>{{justificado normal{
{{letrina{S}}}alamanca is a Renaissance town located within the region of Castilla y León, 220 km from Madrid.
<br>
[img[Town map|planociudad_thumb.gif][planociudad.gif]]

<<<
Direct flights from Paris, Barcelona, Palma de Mallorca.
For other international flights: Madrid-Barajas airport.
Train: from Madrid, Valladolid, Barcelona, Lisboa...
Bus: from Madrid, Valladolid, Barcelona, Sevilla…
<<<
}}}

===
{{clear{
+++![INSCRIPCIÓN »]
<br>{{floatright margenes mediana{[img[Universidad de Salamanca: inscribirse|universidad.jpg][http://campus.usal.es/web-usal/Estudios/CExtraordinarios/instrucciones.html]]}}}
{{justificado {
{{letrina{R}}}egistration must be done via internet. You will find all the steps visiting the University of Salamanca website ([[www.usal.es|http://www.usal.es]]): http://campus.usal.es/web-usal/Estudios/CExtraordinarios/instrucciones.html
}}}
===
+++!![USEFUL LINKS »]
http://www.usal.es
http://www.salamanca.es
http://www.tourspain.org/salamanca
http://www.renfe.es
http://www.iberia.com
http://sites.google.com/site/cmnvelayos/Home/home
http://emotionsandethics.blogspot.com/
===
/%
!PORTADA
<br><br>[img[Emotions&Ethics.jpg]]
!FONSECA
[img[Palacio de Fonseca: página web|Fonseca 2.jpg][http://www.usal.es/~residen/Fonseca/index4.html]]
!end
%/
{{centrado novedades grande{
''¡ CON TRADUCCIÓN SIMULTÁNEA !''
}}}{{centrado{
''PROGRAMA COMPLETO'' (tríptico): cara A [img[pdf.gif][Actividades/TRIPTICOCARAA300.jpg]] / cara B [img[pdf.gif][Actividades/TRIPTICOCARAB300.jpg]]}}}
|floatleft sinbordes margenes|k
| <<tiddler  [[I WORKSHOP SOBRE ÉTICA Y EMOCIONES: UNA PERSPECTIVA INTERDISCIPLINAR##PORTADA]]>> |
| Contacto: [[Carmen Velayos|mailto:cvelayos@usal.es]], [[Mar Cabezas|mailto:marcabezas@usal.es]] |
[>img[english|english.jpeg][I WORKSHOP ON ETHICS AND EMOTIONS: AN INTERDISCIPLINARY PERSPECTIVE]]
!!FECHA
3-5 de Marzo de 2010

!!LOCALIZACIÓN:
@@Salón de Actos, Facultad de Traducción@@, Universidad de Salamanca, España. [[Ver en el mapa|http://exlibris.usal.es/index.php?option=com_content&view=category&layout=blog&id=72&Itemid=104]]

!!ORGANIZADORAS:
[[Carmen Velayos]] & [[Mar Cabezas]] (Departamento de Historia del Derecho y Filosofía Jurídica, Moral y Política, Facultad de Filosofía, Universidad de Salamanca)

!!CONFERENCIAS INVITADAS:
|sinbordes|k
|''[[Mariano Chóliz|http://www.uv.es/choliz/]]'' (Universidad de Valencia, España)|
|''[[Peter Goldie|http://www.socialsciences.manchester.ac.uk/disciplines/philosophy/about/staff/goldie/]]'' (University of Manchester, Reino Unido)|
|''[[Jesse J. Prinz|http://subcortex.com]]'' (City University of New York, USA)|
|''[[Alicia H. Puleo|http://www3.uva.es/filosofia/blogs/index.php?op=Template&blogId=12&show=about]]'' (Universidad de Valladolid, España)|
|''[[Raffaele Rodogno|http://rodogno.com/default.aspx]]'' (Swiss National Fund Senior Researcher, University of Oxford, Reino Unido, & University of Arhus, Dinamarca)|
|''[[José Luis Zaccagnini|http://emotional.intelligence.uma.es/pagina01.htm]]'' (Universidad de Málaga, España)|
<br>
++++!![PROPÓSITO »]
<br>{{justificado normal{
{{letrina{E}}}l estudio de las emociones, tanto sus mecanismos y bases neurológicas, como su papel en la acción humana, ha logrado nuevos avances, debido al creciente interés que se ha despertado en las últimas décadas en torno al tema desde diversos campos, tales como la neurología y la etología, la psicología moral, la sociología, la psiquiatría o la filosofía, como es el caso de investigadores tales como A. Damasio, J. ~LeDoux, J. Panksepp, P. Ekman, N. Frijda, R. Davidson o F. de Waal, M. Nussbaum o R. Solomon, entre otros.

Asimismo, el surgimiento al comienzo de la década de los noventa de la teoría de la inteligencia emocional (Salovey & Mayer) ha sido especialmente relevante pues ha supuesto, por un lado, una ampliación del concepto de cognición y, por otro, la comprensión de la emoción desde una perspectiva evolutiva y funcional. En suma, los datos de las investigaciones recientes en este campo han arrojado algo más de luz acerca de la naturaleza de la moral. Contrariamente a lo tradicionalmente aceptado, hoy parece haber pruebas suficientes para aceptar la base emocional de la moral. Por todo ello el contexto actual hace necesario prestar atención a las consecuencias y resultados que estos avances tienen en el campo de la filosofía moral.

El objetivo principal de este Workshop es, por tanto, crear un foro internacional de debate interdisciplinar que permita ahondar en las posibles consecuencias de aceptar el papel de las emociones en la moral.

En segundo lugar, este workshop nace con el propósito de dar a conocer estos estudios a un público heterogéneo (estudiantes, licenciados, doctorandos), no necesariamente especializado en el tema, a través de las conferencias y comunicaciones, de tal manera que el estudio de las emociones pase a ser un punto de encuentro entre disciplinas y una de las posibles vías a transitar con éxito para comprender de manera más integral al ser humano y su acción.

ESPAÑOL [img[pdf.gif][Actividades/Workshop_Salamanca_2010-esp.pdf]]
PROGRAMA COMPLETO (tríptico): cara A [img[pdf.gif][Actividades/TRIPTICOCARAA300.jpg]] / cara B [img[pdf.gif][Actividades/TRIPTICOCARAB300.jpg]]
}}}
===
+++!![CALL FOR PAPERS »]
<br>{{justificado normal{
{{letrina{S}}}on bienvenidos resúmenes amplios (1000 palabras) de comunicaciones que, entre otros muchos temas posibles, traten cualquier cuestión acerca de la conexión entre emociones y la agencia moral desde una perspectiva filosófica y/o psicológica. También son bienvenidas las comunicaciones de otras disciplinas como la antropología, la biológica, la neurología o la sociología.

Las comunicaciones podrán centrarse en cualquier tema relacionado con la relevancia para la filosofía moral de los estudios empíricos sobre las emociones y sus mecanismos, y podrán tratar de dar respuesta a las siguientes cuestiones: ¿está fundada la moralidad en la racionalidad humana o depende más bien de las emociones?, ¿cuál es el papel de las emociones en el proceso de deliberación moral?, ¿qué relación existe, si es que la hay, entre juicios morales, valores y emociones? Si los juicios morales tienen una base emocional, ¿cuál es la relación entre emociones y obligaciones morales?, ¿qué papel tienen las emociones en el reconocimiento del daño moral?, ¿y en la motivación del agente?; ¿qué peso específico pueden tener las emociones positivas como la felicidad en la acción de un sujeto moral? ¿Son todas las emociones moralmente relevantes o lo son sólo algunas como el asco, la culpa  o la vergüenza?, ¿tienen las emociones algún valor en la educación moral de los ciudadanos?, ¿puede la educación emocional ser útil frente a la indiferencia moral? ¿Son compatibles deberes y emociones?... Y por último, desde un punto de vista ontológico y metaética, ¿cómo pueden los datos de las investigaciones más recientes modificar nuestra manera de conceptualizar emociones y moral?

Los abstracts deberán ser enviados a Carmen Velayos: cvelayos@usal.es (se ruega que se incluya la palabra “ABSTRACT” como asunto del mensaje)

Las lenguas oficiales del Workshop son inglés y castellano.
}}}
===
+++!![ALOJAMIENTO »]

|floatright sinbordes marco mediana|k
| <<tiddler  [[I WORKSHOP SOBRE ÉTICA Y EMOCIONES: UNA PERSPECTIVA INTERDISCIPLINAR##FONSECA]]>> |
| Palacio de Fonseca: [[página web|http://www.usal.es/~residen/Fonseca/index4.html]] |
{{justificado{
{{letrina{E}}}l [[Palacio Fonseca|http://www.usal.es/~residen/Fonseca/index4.html]] es el lugar elegido para el alojamiento de los participantes invitados. Este palacio fue fundado en el siglo XVI y está considerado como una de las más destacables muestras del renacimiento español. En cualquier caso, la ciudad de Salamanca cuenta con una amplia oferta hotelera.
}}}
|[img[fonseca_1.jpg]]|[img[fonseca_2.jpg]]|
<br>
===
+++!![CÓMO LLEGAR »]
<br>{{justificado normal{
{{letrina{S}}}alamanca es una ciudad renacentista situada en Castilla y León, a 220 km. de Madrid.
<br>
[img[Plano de la cuidad|planociudad_thumb.gif][planociudad.gif]]

<<<
En avión: (vuelos directos) desde París, Barcelona, Palma de Mallorca.
Para otros vuelos internacionales: Aeropuerto de Madrid-Barajas
En tren: desde Madrid, Valladolid, Barcelona, Lisboa...
En autobús: desde Madrid, Valladolid, Barcelona, Sevilla…
<<<
}}}

===
{{clear{
+++![INSCRIPCIÓN »]
<br>{{floatright margenes mediana{[img[Universidad de Salamanca: inscribirse|universidad.jpg][http://campus.usal.es/web-usal/Estudios/CExtraordinarios/instrucciones.html]]}}}
{{justificado {
{{letrina{L}}}a inscripción deberá hacerse a travesde la sección dedicada a cursos extraoprdinarios de la web de la Universidad de Salamanca ([[www.usal.es|http://www.usal.es]]): http://campus.usal.es/web-usal/Estudios/CExtraordinarios/instrucciones.html Allí encontrarás las siguientes instrucciones:
!!!INSTRUCCIONES PARA INSCRIBIRSE EN UNA ACTIVIDAD

{{indent{
1º.- Para inscribirse en una actividad del Servicio de Cursos Extraordinarios y Formación Continua, deberá cumplimentar una Preinscripción a través de esta pagina Web, siguiendo para ello los pasos que le indicamos a continuación.

2º.- Al preinscribirse Vd. reserva una plaza en el curso elegido. Dicha reserva está condicionada a la justificación ante los servicios administrativos de la Universidad, del pago de las tasas de matricula en la cuenta bancaria asociada al curso, antes de las 14,00 horas del día hábil siguiente al de la formalización de su Preinscripción, así como al cumplimiento del resto de requisitos que se puedan exigir en cada caso.

3º.- Para buscar la actividad en la que desea inscribirse, deberá comenzar pulsando el botón “LISTADO DE CURSOS”.

Aquí encontrará varias opciones:
<<<
- Listado General: Es un listado de TODAS las actividades programadas ordenadas por sedes y fechas en las que se desarrollan.

- Cursos de Verano: Sólo aparecen las actividades encuadradas dentro de este Programa.

- Cursos del Programa de Formación en Ofimática: Se visualizan los cursos de este Programa.

- Si usted desea consultar sólo las actividades programadas como Curso Extraordinario o como Formación Continua, puede pulsar directamente en los botones “LISTADO POR TIPO DE ACTIVIDAD: CURSO EXTRAORDINARIO/FORMACIÓN CONTINUA”
<<<

4º.- Una vez que ha localizado la actividad que le interesa, pulse sobre el nombre y aparecerá una pantalla donde figuran los datos básicos de la misma. Aquí deberá seleccionar la tasa que le corresponda y pulsar el botón Preinscripción.

5º.- A partir de este momento se le irán dando las instrucciones necesarias para formalizar su Preinscripción.

6º.- Recuerde que para que su INSCRIPCIÓN SEA DEFINITIVA, una vez realizado el pago, debe presentar una copia en las unidades de la Universidad de Salamanca que se indican en el proceso de preinscripción, antes de las 14 horas del día hábil siguiente al de la realización de la Preinscripción.

La presentación de la documentación se puede hacer personalmente, por fax al numero     ''923 294684''   o por correo electrónico a [[cext@usal.es|mailto:cext@usal.es]]
}}}
}}}
===
+++!![ENLACES DE INTERÉS »]
http://www.usal.es
http://www.salamanca.es
http://www.tourspain.org/salamanca
http://www.renfe.es
http://www.iberia.com
http://sites.google.com/site/cmnvelayos/Home/home
http://emotionsandethics.blogspot.com/
===
/%
!PORTADA
<br><br>[img[Emotions&Ethics.jpg]]
!FONSECA
[img[Palacio de Fonseca: página web|Fonseca 2.jpg][http://www.usal.es/~residen/Fonseca/index4.html]]
!end
%/
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.5|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|Insert Javascript executable code directly into your tiddler content.|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Documentation
>see [[InlineJavascriptPluginInfo]]
!!!!!Revisions
<<<
2009.04.11 [1.9.5] pass current tiddler object into wrapper code so it can be referenced from within 'onclick' scripts
2009.02.26 [1.9.4] in $(), handle leading '#' on ID for compatibility with JQuery syntax
|please see [[InlineJavascriptPluginInfo]] for additional revision details|
2005.11.08 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.InlineJavascriptPlugin= {major: 1, minor: 9, revision: 5, date: new Date(2009,4,11)};

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

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

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

// // GLOBAL FUNCTION: $(...) -- 'shorthand' convenience syntax for document.getElementById()
//{{{
if (typeof($)=='undefined') { function $(id) { return document.getElementById(id.replace(/^#/,'')); } }
//}}}
/***
|Name|InlineJavascriptPluginInfo|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.4|
|Author|Eric Shulman|
|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
<<<
2009.02.26 [1.9.4] in $(), handle leading '#' on ID for compatibility with JQuery syntax
2008.06.11 [1.9.3] added $(...) function as 'shorthand' for document.getElementById()
2008.03.03 [1.9.2] corrected fallback declaration of wikifyPlainText() (fixes Safari "parse error")
2008.02.23 [1.9.1] in onclick function, use string instead of array for 'bufferedHTML' (fixes IE errors)
2008.02.21 [1.9.0] output from 'onclick' scripts (return value or document.write() calls) are now buffered and rendered into into a span following the script.  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
<<<
/***
|''Name:''|IntelliTaggerPlugin|
|''Version:''|1.0.2 (2007-07-25)|
|''Type:''|plugin|
|''Source:''|http://tiddlywiki.abego-software.de/#IntelliTaggerPlugin|
|''Author:''|Udo Borkowski (ub [at] abego-software [dot] de)|
|''Documentation:''|[[IntelliTaggerPlugin Documentation]]|
|''~SourceCode:''|[[IntelliTaggerPlugin SourceCode]]|
|''Licence:''|[[BSD open source license (abego Software)]]|
|''~CoreVersion:''|2.0.8|
|''Browser:''|Firefox 1.5.0.2 or better|
***/
/***
!Version History
* 1.0.2 (2007-07-25): 
** Feature: "Return" key may be used to accept first tag suggestion (beside "Alt-1")
** Bugfix: Keyboard shortcuts (Alt+3 etc.) shifted
* 1.0.1 (2007-05-18): Improvement: Speedup when using TiddlyWikis with many tags
* 1.0.0 (2006-04-26): Initial release

***/
// /%
if(!version.extensions.IntelliTaggerPlugin){if(!window.abego){window.abego={};}if(!abego.internal){abego.internal={};}abego.alertAndThrow=function(s){alert(s);throw s;};if(version.major<2){abego.alertAndThrow("Use TiddlyWiki 2.0.8 or better to run the IntelliTagger Plugin.");}version.extensions.IntelliTaggerPlugin={major:1,minor:0,revision:2,date:new Date(2007,6,25),type:"plugin",source:"http://tiddlywiki.abego-software.de/#IntelliTaggerPlugin",documentation:"[[IntelliTaggerPlugin Documentation]]",sourcecode:"[[IntelliTaggerPlugin SourceCode]]",author:"Udo Borkowski (ub [at] abego-software [dot] de)",licence:"[[BSD open source license (abego Software)]]",tiddlywiki:"Version 2.0.8 or better",browser:"Firefox 1.5.0.2 or better"};abego.createEllipsis=function(_2){var e=createTiddlyElement(_2,"span");e.innerHTML="&hellip;";};abego.isPopupOpen=function(_4){return _4&&_4.parentNode==document.body;};abego.openAsPopup=function(_5){if(_5.parentNode!=document.body){document.body.appendChild(_5);}};abego.closePopup=function(_6){if(abego.isPopupOpen(_6)){document.body.removeChild(_6);}};abego.getWindowRect=function(){return {left:findScrollX(),top:findScrollY(),height:findWindowHeight(),width:findWindowWidth()};};abego.moveElement=function(_7,_8,_9){_7.style.left=_8+"px";_7.style.top=_9+"px";};abego.centerOnWindow=function(_a){if(_a.style.position!="absolute"){throw "abego.centerOnWindow: element must have absolute position";}var _b=abego.getWindowRect();abego.moveElement(_a,_b.left+(_b.width-_a.offsetWidth)/2,_b.top+(_b.height-_a.offsetHeight)/2);};abego.isDescendantOrSelf=function(_c,e){while(e){if(_c==e){return true;}e=e.parentNode;}return false;};abego.toSet=function(_e){var _f={};for(var i=0;i<_e.length;i++){_f[_e[i]]=true;}return _f;};abego.filterStrings=function(_11,_12,_13){var _14=[];for(var i=0;i<_11.length&&(_13===undefined||_14.length<_13);i++){var s=_11[i];if(s.match(_12)){_14.push(s);}}return _14;};abego.arraysAreEqual=function(a,b){if(!a){return !b;}if(!b){return false;}var n=a.length;if(n!=b.length){return false;}for(var i=0;i<n;i++){if(a[i]!=b[i]){return false;}}return true;};abego.moveBelowAndClip=function(_1b,_1c){if(!_1c){return;}var _1d=findPosX(_1c);var _1e=findPosY(_1c);var _1f=_1c.offsetHeight;var _20=_1d;var _21=_1e+_1f;var _22=findWindowWidth();if(_22<_1b.offsetWidth){_1b.style.width=(_22-100)+"px";}var _23=_1b.offsetWidth;if(_20+_23>_22){_20=_22-_23-30;}if(_20<0){_20=0;}_1b.style.left=_20+"px";_1b.style.top=_21+"px";_1b.style.display="block";};abego.compareStrings=function(a,b){return (a==b)?0:(a<b)?-1:1;};abego.sortIgnoreCase=function(arr){var _27=[];var n=arr.length;for(var i=0;i<n;i++){var s=arr[i];_27.push([s.toString().toLowerCase(),s]);}_27.sort(function(a,b){return (a[0]==b[0])?0:(a[0]<b[0])?-1:1;});for(i=0;i<n;i++){arr[i]=_27[i][1];}};abego.getTiddlerField=function(_2d,_2e,_2f){var _30=document.getElementById(_2d.idPrefix+_2e);var e=null;if(_30!=null){var _32=_30.getElementsByTagName("*");for(var t=0;t<_32.length;t++){var c=_32[t];if(c.tagName.toLowerCase()=="input"||c.tagName.toLowerCase()=="textarea"){if(!e){e=c;}if(c.getAttribute("edit")==_2f){e=c;}}}}return e;};abego.setRange=function(_35,_36,end){if(_35.setSelectionRange){_35.setSelectionRange(_36,end);var max=0+_35.scrollHeight;var len=_35.textLength;var top=max*_36/len,bot=max*end/len;_35.scrollTop=Math.min(top,(bot+top-_35.clientHeight)/2);}else{if(_35.createTextRange!=undefined){var _3b=_35.createTextRange();_3b.collapse();_3b.moveEnd("character",end);_3b.moveStart("character",_36);_3b.select();}else{_35.select();}}};abego.internal.TagManager=function(){var _3c=null;var _3d=function(){if(_3c){return;}_3c={};store.forEachTiddler(function(_3e,_3f){for(var i=0;i<_3f.tags.length;i++){var tag=_3f.tags[i];var _42=_3c[tag];if(!_42){_42=_3c[tag]={count:0,tiddlers:{}};}_42.tiddlers[_3f.title]=true;_42.count+=1;}});};var _43=TiddlyWiki.prototype.saveTiddler;TiddlyWiki.prototype.saveTiddler=function(_44,_45,_46,_47,_48,_49){var _4a=this.fetchTiddler(_44);var _4b=_4a?_4a.tags:[];var _4c=(typeof _49=="string")?_49.readBracketedList():_49;_43.apply(this,arguments);if(!abego.arraysAreEqual(_4b,_4c)){abego.internal.getTagManager().reset();}};var _4d=TiddlyWiki.prototype.removeTiddler;TiddlyWiki.prototype.removeTiddler=function(_4e){var _4f=this.fetchTiddler(_4e);var _50=_4f&&_4f.tags.length>0;_4d.apply(this,arguments);if(_50){abego.internal.getTagManager().reset();}};this.reset=function(){_3c=null;};this.getTiddlersWithTag=function(tag){_3d();var _52=_3c[tag];return _52?_52.tiddlers:null;};this.getAllTags=function(_53){_3d();var _54=[];for(var i in _3c){_54.push(i);}for(i=0;_53&&i<_53.length;i++){_54.pushUnique(_53[i],true);}abego.sortIgnoreCase(_54);return _54;};this.getTagInfos=function(){_3d();var _56=[];for(var _57 in _3c){_56.push([_57,_3c[_57]]);}return _56;};var _58=function(a,b){var a1=a[1];var b1=b[1];var d=b[1].count-a[1].count;return d!=0?d:abego.compareStrings(a[0].toLowerCase(),b[0].toLowerCase());};this.getSortedTagInfos=function(){_3d();var _5e=this.getTagInfos();_5e.sort(_58);return _5e;};this.getPartnerRankedTags=function(_5f){var _60={};for(var i=0;i<_5f.length;i++){var _62=this.getTiddlersWithTag(_5f[i]);for(var _63 in _62){var _64=store.getTiddler(_63);if(!(_64 instanceof Tiddler)){continue;}for(var j=0;j<_64.tags.length;j++){var tag=_64.tags[j];var c=_60[tag];_60[tag]=c?c+1:1;}}}var _68=abego.toSet(_5f);var _69=[];for(var n in _60){if(!_68[n]){_69.push(n);}}_69.sort(function(a,b){var d=_60[b]-_60[a];return d!=0?d:abego.compareStrings(a.toLowerCase(),b.toLowerCase());});return _69;};};abego.internal.getTagManager=function(){if(!abego.internal.gTagManager){abego.internal.gTagManager=new abego.internal.TagManager();}return abego.internal.gTagManager;};(function(){var _6e=2;var _6f=1;var _70=30;var _71;var _72;var _73;var _74;var _75;var _76;if(!abego.IntelliTagger){abego.IntelliTagger={};}var _77=function(){return _72;};var _78=function(tag){return _75[tag];};var _7a=function(s){var i=s.lastIndexOf(" ");return (i>=0)?s.substr(0,i):"";};var _7d=function(_7e){var s=_7e.value;var len=s.length;return (len>0&&s[len-1]!=" ");};var _81=function(_82){var s=_82.value;var len=s.length;if(len>0&&s[len-1]!=" "){_82.value+=" ";}};var _85=function(tag,_87,_88){if(_7d(_87)){_87.value=_7a(_87.value);}story.setTiddlerTag(_88.title,tag,0);_81(_87);abego.IntelliTagger.assistTagging(_87,_88);};var _89=function(n){if(_76&&_76.length>n){return _76[n];}return (_74&&_74.length>n)?_74[n]:null;};var _8b=function(n,_8d,_8e){var _8f=_89(n);if(_8f){_85(_8f,_8d,_8e);}};var _90=function(_91){var pos=_91.value.lastIndexOf(" ");var _93=(pos>=0)?_91.value.substr(++pos,_91.value.length):_91.value;return new RegExp(_93.escapeRegExp(),"i");};var _94=function(_95,_96){var _97=0;for(var i=0;i<_95.length;i++){if(_96[_95[i]]){_97++;}}return _97;};var _99=function(_9a,_9b,_9c){var _9d=1;var c=_9a[_9b];for(var i=_9b+1;i<_9a.length;i++){if(_9a[i][1].count==c){if(_9a[i][0].match(_9c)){_9d++;}}else{break;}}return _9d;};var _a0=function(_a1,_a2){var _a3=abego.internal.getTagManager().getSortedTagInfos();var _a4=[];var _a5=0;for(var i=0;i<_a3.length;i++){var c=_a3[i][1].count;if(c!=_a5){if(_a2&&(_a4.length+_99(_a3,i,_a1)>_a2)){break;}_a5=c;}if(c==1){break;}var s=_a3[i][0];if(s.match(_a1)){_a4.push(s);}}return _a4;};var _a9=function(_aa,_ab){return abego.filterStrings(abego.internal.getTagManager().getAllTags(_ab),_aa);};var _ac=function(){if(!_71){return;}var _ad=store.getTiddlerText("IntelliTaggerMainTemplate");if(!_ad){_ad="<b>Tiddler IntelliTaggerMainTemplate not found</b>";}_71.innerHTML=_ad;applyHtmlMacros(_71,null);refreshElements(_71,null);};var _ae=function(e){if(!e){var e=window.event;}var tag=this.getAttribute("tag");if(_73){_73.call(this,tag,e);}return false;};var _b2=function(_b3){createTiddlyElement(_b3,"span",null,"tagSeparator"," | ");};var _b4=function(_b5,_b6,_b7,_b8,_b9){if(!_b6){return;}var _ba=_b8?abego.toSet(_b8):{};var n=_b6.length;var c=0;for(var i=0;i<n;i++){var tag=_b6[i];if(_ba[tag]){continue;}if(c>0){_b2(_b5);}if(_b9&&c>=_b9){abego.createEllipsis(_b5);break;}c++;var _bf="";var _c0=_b5;if(_b7<10){_c0=createTiddlyElement(_b5,"span",null,"numberedSuggestion");_b7++;var key=_b7<10?""+(_b7):"0";createTiddlyElement(_c0,"span",null,"suggestionNumber",key+") ");var _c2=_b7==1?"Return or ":"";_bf=" (Shortcut: %1Alt-%0)".format([key,_c2]);}var _c3=config.views.wikified.tag.tooltip.format([tag]);var _c4=(_78(tag)?"Remove tag '%0'%1":"Add tag '%0'%1").format([tag,_bf]);var _c5="%0; Shift-Click: %1".format([_c4,_c3]);var btn=createTiddlyButton(_c0,tag,_c5,_ae,_78(tag)?"currentTag":null);btn.setAttribute("tag",tag);}};var _c7=function(){if(_71){window.scrollTo(0,ensureVisible(_71));}if(_77()){window.scrollTo(0,ensureVisible(_77()));}};var _c8=function(e){if(!e){var e=window.event;}if(!_71){return;}var _cb=resolveTarget(e);if(_cb==_77()){return;}if(abego.isDescendantOrSelf(_71,_cb)){return;}abego.IntelliTagger.close();};addEvent(document,"click",_c8);var _cc=Story.prototype.gatherSaveFields;Story.prototype.gatherSaveFields=function(e,_ce){_cc.apply(this,arguments);var _cf=_ce.tags;if(_cf){_ce.tags=_cf.trim();}};var _d0=function(_d1){story.focusTiddler(_d1,"tags");var _d2=abego.getTiddlerField(story,_d1,"tags");if(_d2){var len=_d2.value.length;abego.setRange(_d2,len,len);window.scrollTo(0,ensureVisible(_d2));}};var _d4=config.macros.edit.handler;config.macros.edit.handler=function(_d5,_d6,_d7,_d8,_d9,_da){_d4.apply(this,arguments);var _db=_d7[0];if((_da instanceof Tiddler)&&_db=="tags"){var _dc=_d5.lastChild;_dc.onfocus=function(e){abego.IntelliTagger.assistTagging(_dc,_da);setTimeout(function(){_d0(_da.title);},100);};_dc.onkeyup=function(e){if(!e){var e=window.event;}if(e.altKey&&!e.ctrlKey&&!e.metaKey&&(e.keyCode>=48&&e.keyCode<=57)){_8b(e.keyCode==48?9:e.keyCode-49,_dc,_da);}else{if(e.ctrlKey&&e.keyCode==32){_8b(0,_dc,_da);}}if(!e.ctrlKey&&(e.keyCode==13||e.keyCode==10)){_8b(0,_dc,_da);}setTimeout(function(){abego.IntelliTagger.assistTagging(_dc,_da);},100);return false;};_81(_dc);}};var _e0=function(e){if(!e){var e=window.event;}var _e3=resolveTarget(e);var _e4=_e3.getAttribute("tiddler");if(_e4){story.displayTiddler(_e3,_e4,"IntelliTaggerEditTagsTemplate",false);_d0(_e4);}return false;};var _e5=config.macros.tags.handler;config.macros.tags.handler=function(_e6,_e7,_e8,_e9,_ea,_eb){_e5.apply(this,arguments);abego.IntelliTagger.createEditTagsButton(_eb,createTiddlyElement(_e6.lastChild,"li"));};var _ec=function(){if(_71&&_72&&!abego.isDescendantOrSelf(document,_72)){abego.IntelliTagger.close();}};setInterval(_ec,100);abego.IntelliTagger.displayTagSuggestions=function(_ed,_ee,_ef,_f0,_f1){_74=_ed;_75=abego.toSet(_ee);_76=_ef;_72=_f0;_73=_f1;if(!_71){_71=createTiddlyElement(document.body,"div",null,"intelliTaggerSuggestions");_71.style.position="absolute";}_ac();abego.openAsPopup(_71);if(_77()){var w=_77().offsetWidth;if(_71.offsetWidth<w){_71.style.width=(w-2*(_6e+_6f))+"px";}abego.moveBelowAndClip(_71,_77());}else{abego.centerOnWindow(_71);}_c7();};abego.IntelliTagger.assistTagging=function(_f3,_f4){var _f5=_90(_f3);var s=_f3.value;if(_7d(_f3)){s=_7a(s);}var _f7=s.readBracketedList();var _f8=_f7.length>0?abego.filterStrings(abego.internal.getTagManager().getPartnerRankedTags(_f7),_f5,_70):_a0(_f5,_70);abego.IntelliTagger.displayTagSuggestions(_a9(_f5,_f7),_f7,_f8,_f3,function(tag,e){if(e.shiftKey){onClickTag.call(this,e);}else{_85(tag,_f3,_f4);}});};abego.IntelliTagger.close=function(){abego.closePopup(_71);_71=null;return false;};abego.IntelliTagger.createEditTagsButton=function(_fb,_fc,_fd,_fe,_ff,id,_101){if(!_fd){_fd="[edit]";}if(!_fe){_fe="Edit the tags";}if(!_ff){_ff="editTags";}var _102=createTiddlyButton(_fc,_fd,_fe,_e0,_ff,id,_101);_102.setAttribute("tiddler",(_fb instanceof Tiddler)?_fb.title:String(_fb));return _102;};abego.IntelliTagger.getSuggestionTagsMaxCount=function(){return 100;};config.macros.intelliTagger={label:"intelliTagger",handler:function(_103,_104,_105,_106,_107,_108){var _109=_107.parseParams("list",null,true);var _10a=_109[0]["action"];for(var i=0;_10a&&i<_10a.length;i++){var _10c=_10a[i];var _10d=config.macros.intelliTagger.subhandlers[_10c];if(!_10d){abego.alertAndThrow("Unsupported action '%0'".format([_10c]));}_10d(_103,_104,_105,_106,_107,_108);}},subhandlers:{showTags:function(_10e,_10f,_110,_111,_112,_113){_b4(_10e,_74,_76?_76.length:0,_76,abego.IntelliTagger.getSuggestionTagsMaxCount());},showFavorites:function(_114,_115,_116,_117,_118,_119){_b4(_114,_76,0);},closeButton:function(_11a,_11b,_11c,_11d,_11e,_11f){var _120=createTiddlyButton(_11a,"close","Close the suggestions",abego.IntelliTagger.close);},version:function(_121){var t="IntelliTagger %0.%1.%2".format([version.extensions.IntelliTaggerPlugin.major,version.extensions.IntelliTaggerPlugin.minor,version.extensions.IntelliTaggerPlugin.revision]);var e=createTiddlyElement(_121,"a");e.setAttribute("href","http://tiddlywiki.abego-software.de/#IntelliTaggerPlugin");e.innerHTML="<font color=\"black\" face=\"Arial, Helvetica, sans-serif\">"+t+"<font>";},copyright:function(_124){var e=createTiddlyElement(_124,"a");e.setAttribute("href","http://tiddlywiki.abego-software.de");e.innerHTML="<font color=\"black\" face=\"Arial, Helvetica, sans-serif\">&copy; 2006-2007 <b><font color=\"red\">abego</font></b> Software<font>";}}};})();config.shadowTiddlers["IntelliTaggerStyleSheet"]="/***\n"+"!~IntelliTagger Stylesheet\n"+"***/\n"+"/*{{{*/\n"+".intelliTaggerSuggestions {\n"+"\tposition: absolute;\n"+"\twidth: 600px;\n"+"\n"+"\tpadding: 2px;\n"+"\tlist-style: none;\n"+"\tmargin: 0;\n"+"\n"+"\tbackground: #eeeeee;\n"+"\tborder: 1px solid DarkGray;\n"+"}\n"+"\n"+".intelliTaggerSuggestions .currentTag   {\n"+"\tfont-weight: bold;\n"+"}\n"+"\n"+".intelliTaggerSuggestions .suggestionNumber {\n"+"\tcolor: #808080;\n"+"}\n"+"\n"+".intelliTaggerSuggestions .numberedSuggestion{\n"+"\twhite-space: nowrap;\n"+"}\n"+"\n"+".intelliTaggerSuggestions .intelliTaggerFooter {\n"+"\tmargin-top: 4px;\n"+"\tborder-top-width: thin;\n"+"\tborder-top-style: solid;\n"+"\tborder-top-color: #999999;\n"+"}\n"+".intelliTaggerSuggestions .favorites {\n"+"\tborder-bottom-width: thin;\n"+"\tborder-bottom-style: solid;\n"+"\tborder-bottom-color: #999999;\n"+"\tpadding-bottom: 2px;\n"+"}\n"+"\n"+".intelliTaggerSuggestions .normalTags {\n"+"\tpadding-top: 2px;\n"+"}\n"+"\n"+".intelliTaggerSuggestions .intelliTaggerFooter .button {\n"+"\tfont-size: 10px;\n"+"\n"+"\tpadding-left: 0.3em;\n"+"\tpadding-right: 0.3em;\n"+"}\n"+"\n"+"/*}}}*/\n";config.shadowTiddlers["IntelliTaggerMainTemplate"]="<!--\n"+"{{{\n"+"-->\n"+"<div class=\"favorites\" macro=\"intelliTagger action: showFavorites\"></div>\n"+"<div class=\"normalTags\" macro=\"intelliTagger action: showTags\"></div>\n"+"<!-- The Footer (with the Navigation) ============================================ -->\n"+"<table class=\"intelliTaggerFooter\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tbody>\n"+"  <tr>\n"+"\t<td align=\"left\">\n"+"\t\t<span macro=\"intelliTagger action: closeButton\"></span>\n"+"\t</td>\n"+"\t<td align=\"right\">\n"+"\t\t<span macro=\"intelliTagger action: version\"></span>, <span macro=\"intelliTagger action: copyright \"></span>\n"+"\t</td>\n"+"  </tr>\n"+"</tbody></table>\n"+"<!--\n"+"}}}\n"+"-->\n";config.shadowTiddlers["IntelliTaggerEditTagsTemplate"]="<!--\n"+"{{{\n"+"-->\n"+"<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler'></div>\n"+"<div class='title' macro='view title'></div>\n"+"<div class='tagged' macro='tags'></div>\n"+"<div class='viewer' macro='view text wikified'></div>\n"+"<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler'></div>\n"+"<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>\n"+"<!--\n"+"}}}\n"+"-->\n";config.shadowTiddlers["BSD open source license (abego Software)"]="See [[Licence|http://tiddlywiki.abego-software.de/#%5B%5BBSD%20open%20source%20license%5D%5D]].";config.shadowTiddlers["IntelliTaggerPlugin Documentation"]="[[Documentation on abego Software website|http://tiddlywiki.abego-software.de/doc/IntelliTagger.pdf]].";config.shadowTiddlers["IntelliTaggerPlugin SourceCode"]="[[Plugin source code on abego Software website|http://tiddlywiki.abego-software.de/archive/IntelliTaggerPlugin/Plugin-IntelliTagger-src.1.0.2.js]]\n";(function(){var _126=restart;restart=function(){setStylesheet(store.getTiddlerText("IntelliTaggerStyleSheet"),"IntelliTaggerStyleSheet");_126.apply(this,arguments);};})();}
// %/
''This is the introduction to using ~QuickEdit''
----
{{twocolumns{<<tiddler QuickEditToolbar>>}}}
----
''~QuickEdit'' places edit buttons in the EditTemplate to effect most edit functions. This topic discusses those buttons and gives a short description of what they do. You can obtain more buttons from [[TiddlyTools|http://www.TiddlyTools.com/#QuickEditPlugin]]
| !Proyectos I+D | !Intercambios, redes interuniversitarias |
|<<tiddler [[Investigación##Proyectos I+D]]>> |<<tiddler [[Investigación##Intercambios, redes interuniversitarias]]>> |
| !Líneas de investigación | !Comités, Comisiones |
| <<tiddler [[Investigación##Líneas de investigación]]>> |<<tiddler [[Investigación##Comités, Comisiones]]>> |

/%
!Proyectos I+D
* Ministerio de Educación (DGICYT)
* Junta de Castilla y león
* 6º Programa Marco de la Unión Europea
* Agencia Española de Cooperación y Desarrollo (AECID)
* Acciones complementarias MEC
* Unidad Asociada "Éticas aplicadas" (Instituto de Filosofía del CSIC, Madrid)
* Profesoras del CEMUSA (Centro de Estudios de la Mujer, Universidad de Salamanca)

!Líneas de investigación
Teoría ética
Ética aplicada
[[Bioética]]
[[Ética ecológica|Etica medioambiental]]
Historia de la ética
[[Teoría Feminista|Feminismo]]

!Comités, Comisiones
* Comité de Bioética, Universidad de Salamanca
* Comité de Ética asistencia, Hospital Clínico, Universidad de Salamanca
* Comisión de Igualdad, Universidad de Salamanca

!Intercambios, redes interuniversitarias
* Case Western Reserve University de Cleveland. [[Department of Bioethics|http://www.case.edu/med/bioethics/index.htm]]
* Université ~Paris-Descartes. [[Laboratoire d'Éthique Médicale|http://www.ethique.inserm.fr/]]
*University of Toronto, [[Joint Centre for Bioethics|http://www.jointcentreforbioethics.ca/]].
* Universidad de Costa Rica
* UNAM de México
* Universidad de La Laguna
* Universidad de Valladolid
* Universidad de Málaga
* Universidad de Valencia
* Universidad Complutense de Madrid

!end
%/

<<tiddler [[LibroTemplate]] with:'La dignidad de la naturaleza'>>/%
Foto: 

Titulo: La dignidad de la naturaleza: ensayos sobre ética y filosofía del medio ambiente

Autores: José Mª ~Gómez-Heras (coord.)

OtrosDatos: Comares, 2000

Descripcion: 
%/
<<tiddler [[LibroTemplate]] with:'La dimensión moral del ambiente natural'>>/%
Foto: [img[Carmen Velayos: La dimensión moral del ambiente natural, 1996|FotosLibros/DimensionMoralAmbienteNatural.jpg][La dimensión moral del ambiente natural]]

Titulo: La dimensión moral del ambiente natural.<br>¿Necesitamos una nueva ética?

Autores: [[Carmen Velayos]]

OtrosDatos: Comares, 1996

Descripcion: Este libro se propone incorporar al debate filosófico en España lo mucho que sobre ética ambiental se ha escrito ya, prioritariament een lengua inglesa. La autora discute las propuestas más relevantes en orden a una legitimación racional de la ética ambiental, y las somete a crítica y valoración.
%/
<<tiddler [[LibroTemplate]] with:'La faz oculta de la modernidad'>>/%
Foto: [img[Enrique Bonete: La faz oculta de la modernidad, 1995|FotosLibros/FazOcultaModernidad.jpg][La faz oculta de la modernidad]]

Titulo: La faz oculta de la modernidad: entre la teoría sociológica y la ética política

Autores: [[Enrique Bonete]]

OtrosDatos: Tecnos, 1995

Descripcion: 
%/
<<tiddler [[LibroTemplate]] with:'La mitad del mundo'>>/%
Foto: [img[Teresa López de la Vieja: La mitad del mundo. Ética y Critica feminista, 2004|FotosLibros/MitadMundo.jpg][La mitad del mundo]]

Titulo: La mitad del mundo. Ética y Critica feminista

Autores: [[Teresa López de la Vieja]]

OtrosDatos: Publicaciones Universidad de Salamanca, Salamanca, 2004

Descripcion: ¿Qué significa hoy el Feminismo? Es un movimiento social y, a la vez, una teoría que denuncia las promesas incumplidas de la modernidad. Como teoría normativa, propone un modelo de sociedad mas igualitaria y justa. Como teoría critica, denuncia el control social sobre las mujeres, las múltiples formas de opresión y la violencia sexista. Muestra  una realidad escindida, y  lo hace con voz propia Pero la perspectiva de genero  va mas allá. La  Ética feminista aporta una visión distinta de las relaciones -  “cuidado” y no solo  justicia – e interés por lo concreto, por las experiencias reales. El punto de vista de genero es un procedimiento para analizar temas complejos, como son las diferencias culturales, la conducta maternal, la violencia de genero, la discriminación inversa. La mitad del mundo (Ética y Critica feminista) revisa los argumentos contra el mundo escindido, ciego a las diferencias, y los argumentos a favor de  practicas mas equitativas y tolerantes.<br><br><br><br>
%/
/***
|Name:|LessBackupsPlugin|
|Description:|Intelligently limit the number of backup files you create|
|Version:|3.0.1 ($Rev: 2320 $)|
|Date:|$Date: 2007-06-18 22:37:46 +1000 (Mon, 18 Jun 2007) $|
|Source:|http://mptw.tiddlyspot.com/#LessBackupsPlugin|
|Author:|Simon Baird|
|Email:|simon.baird@gmail.com|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Description
You end up with just backup one per year, per month, per weekday, per hour, minute, and second.  So total number won't exceed about 200 or so. Can be reduced by commenting out the seconds/minutes/hours line from modes array
!!Notes
Works in IE and Firefox only.  Algorithm by Daniel Baird. IE specific code by by Saq Imtiaz.
***/
//{{{

var MINS  = 60 * 1000;
var HOURS = 60 * MINS;
var DAYS  = 24 * HOURS;

if (!config.lessBackups) {
	config.lessBackups = {
		// comment out the ones you don't want or set config.lessBackups.modes in your 'tweaks' plugin
		modes: [
			["YYYY",  365*DAYS], // one per year for ever
			["MMM",   31*DAYS],  // one per month
			["ddd",   7*DAYS],   // one per weekday
			//["d0DD",  1*DAYS],   // one per day of month
			["h0hh",  24*HOURS], // one per hour
			["m0mm",  1*HOURS],  // one per minute
			["s0ss",  1*MINS],   // one per second
			["latest",0]         // always keep last version. (leave this).
		]
	};
}

window.getSpecialBackupPath = function(backupPath) {

	var now = new Date();

	var modes = config.lessBackups.modes;

	for (var i=0;i<modes.length;i++) {

		// the filename we will try
		var specialBackupPath = backupPath.replace(/(\.)([0-9]+\.[0-9]+)(\.html)$/,
				'$1'+now.formatString(modes[i][0]).toLowerCase()+'$3')

		// open the file
		try {
			if (config.browser.isIE) {
				var fsobject = new ActiveXObject("Scripting.FileSystemObject")
				var fileExists  = fsobject.FileExists(specialBackupPath);
				if (fileExists) {
					var fileObject = fsobject.GetFile(specialBackupPath);
					var modDate = new Date(fileObject.DateLastModified).valueOf();
				}
			}
			else {
				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
				var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
				file.initWithPath(specialBackupPath);
				var fileExists = file.exists();
				if (fileExists) {
					var modDate = file.lastModifiedTime;
				}
			}
		}
		catch(e) {
			// give up
			return backupPath;
		}

		// expiry is used to tell if it's an 'old' one. Eg, if the month is June and there is a
		// June file on disk that's more than an month old then it must be stale so overwrite
		// note that "latest" should be always written because the expiration period is zero (see above)
		var expiry = new Date(modDate + modes[i][1]);
		if (!fileExists || now > expiry)
			return specialBackupPath;
	}
}

// hijack the core function
window.getBackupPath_mptw_orig = window.getBackupPath;
window.getBackupPath = function(localPath) {
	return getSpecialBackupPath(getBackupPath_mptw_orig(localPath));
}

//}}}
<<tiddler [[LibroTemplate]] with:'Libres para morir'>>
{{oculto{
Foto: [img[Enrique Bonete: Libres para morir, 2004|FotosLibros/libres para morir.jpg][Libres para morir]]
Titulo: ¿Libres para morir? En torno a la tánato-ética
Autores: [[Enrique Bonete]]
OtrosDatos: Desclée, Bilbao, 2004
Descripcion: A primera vista podría parecer, por lo inevitable de la muerte, que al ser humano no le queda más remedio que acatar la ley universal del Destino, de la Naturaleza, de Dios, de la Biología o de la Genética. Mas surgen desde la Tánato-ética (nueva disciplina, complementaria de la Bio-ética, centrada en las dimensiones morales del proceso humano de morir) preguntas de este tenor: ¿Cómo ser libre ante la imposición inesquivable de la condena a muerte? ¿Dónde cabe la libertad si la muerte es una fatalidad? ¿Cómo es posible la autonomía frente al “hecho bruto” de perecer? A estas preguntas se procura responder a lo largo de este pequeño y clarificador ensayo, mostrando la capacidad humana de “aprender” a morir, iluminando las diversas posiciones éticas ante el suicidio y sus límites, y ofreciendo, por último, una interpretación personalista del ambiguo concepto de “muerte digna”.
}}}
{{libro izquierda {
 <<tiddler [[$1::Foto]]>>
}}}
{{fuente14{
<<tiddler [[$1::Titulo]]>>
}}}
<<tiddler [[$1::Autores]]>>
<<tiddler [[$1::OtrosDatos]]>>

<<tiddler [[$1::Descripcion]]>>


/%
Foto: 

Titulo: 

Autores: 

OtrosDatos: 

Descripcion: 
%/
This information taken from Julian Knight's ~TiddlyWiki, which can be [[found here|http://knighjm.googlepages.com/knightnet-default-tw.html]].

Macros let you write tiddlers containing more exotic objects than just text. Here are the built-in macros:

|!Macro|!Description|!Syntax|
|allTags|List all the tags used in the current ~TiddlyWiki file<br>Each entry is a button that pops up the list of tiddlers for that tag<br><<slider sliderID [[Internal Macros/tags]] 'Click to show example output'>>|{{{<<allTags>>}}}|
|br|Force a line break|{{{<br>}}}|
|closeAll|Displays a button to close all displayed Tiddlers<br><<closeAll>>|{{{<<closeAll>>}}}|
|gradient|<<gradient [horiz|vert] #bbbbbb #eeeeee #ffffff>>Produces a horizontal or vertical background gradient fill>><br>There can be 2 or more colours in the format: #rrggbb (hex), or RGB(r,g,b) (CSS)<br>Other CSS formatting can also be added, e.g. {{{<<gradient vert #000000 #660000 #aa2222>>color:#ffffff;font-size:12pt;Darkness>>}}}|{{{<<gradient [horiz|vert] #bbbbbb #eeeeee #ffffff>>Some text here>>}}}|
|list all|List all Tiddlers in a Tiddler|{{{<<list all>>}}}|
|list missing|List all missing tiddlers|{{{<<list missing>>}}}|
|list orphans|List all orphaned tiddlers|{{{<<list orphans>>}}}|
|newJournal|Displays a button to create new date & Time stamped Tiddler (Date/time format optional)<br><<newJournal "DD MMM YYYY, hh:mm">> <br>You can also add optional tag names after the date format: <<newJournal "DD MMM YYYY, hh:mm" tag1 TagTwo>> |{{{<<newJournal [DateFormatString]>>}}} <br> {{{<<newJournal "DD MMM YYYY, hh:mm" tag1 TagTwo>>}}} |
|newTiddler|Displays a button to create new Tiddler<br><<newTiddler>>|{{{<<newTiddler>>}}}|
|permaview|Displays a button to change the URL link for all open Tiddlers - or the containing tiddler if used in the command bar (See the ViewTemplate)<br><<permaview>>|{{{<<permaview>>}}}|
|saveChanges |Button to save all ~TiddlyWiki changes (or the current tiddler if used in the command bar (see EditTemplate)<br><<saveChanges>>|{{{<<saveChanges>>}}}|
|search|Display a Search box<br><<search>>|{{{<<search>>}}}|
|slider|Display a Slider (a collapsable display of another tiddler)<br>See the allTags entry for an example. Note: Put quotes around the label if needing spaces<br>where: ''ID''=cookie name to be used to save the state of the slider, ''Tiddler''=name of the tiddler to include in the slider, ''Label''=label text of the slider button, ''tooltip''=text of the buttons tooltip|{{{<<slider ID Tiddler [Label] [toolTip]>>}}}|
|sparkline|Produces a sparkline graphic<br>e.g. <<sparkline 163 218 231 236 232 266 176 249 289 1041 1835 2285 3098 2101 1755 3283 3353 3335 2898 2224 1404 1354 1825 1839 2142 1942 1784 1145 979 1328 1611>>|{{{<<sparkline num1 num2 ... numN>>}}}|
|tabs|Display Tabbed content (contents of tab provided by another tiddler)|{{{<<tabs identifier tabLabel tabName Tiddlername>>}}}|
|tag|Display a Tag ~PopUp<br><<tag _Config>>|{{{<<tag tagName>>}}}|
|tagChooser|Used in EditTemplate to add tags to the tags field. Doesn't actually add anything unless in edit mode (though it does show the list)<br><<tagChooser>>|{{{<<tagChooser>>}}}|
|tagging|<<tiddler [[Internal Macros/tagging]]>>|{{{<<tagging [TiddlerTitle]>>}}}|
|tiddler|Display contents of another tiddler inline|{{{<<tiddler Tiddler>>}}}|
|timeline|Display a timeline list of tiddlers<br>where the sortfield is the sort order ("modified" or "created") and maxentries is the maximum number of entries|{{{<<timeline [sortfield] [maxentries]>>}}}|
|today|Display Today's Date<br>e.g. <<today>>|{{{<<today [DateFormatString]>>}}}|
|version|Display ~TiddlyWiki's version<br>e.g. <<version>>|{{{<<version>>}}}|

!DateFormatString
Several Macros including the today macro take a DateFormatString as an optional argument. This string can be a combination of ordinary text, with some special characters that get substituted by parts of the date:
* DDD - day of week in full (eg, "Monday")
* DD - day of month, 0DD - adds a leading zero
* MMM - month in full (eg, "July")
* MM - month number, 0MM - adds leading zero
* YYYY - full year, YY - two digit year
* hh - hours
* mm - minutes
* ss - seconds
!Notes
If you need to supply a parameter that should be evaluated (e.g. a JavaScript variable), enclose the parameter in {{{{{}}} and {{{}}}}} rather than quotes. Note however, that the scope used in the evaluation is {{{global}}} rather than {{{local}}}. In other words, the evaluation is done ''before'' the parameter is passed to the macro/plugin so it cannot access any of the variables or functions defined within the macro/plugin.
!Commands supported by the toolbar macro
{{{
config.commands = {
 closeTiddler: {text: "close", tooltip: "Close this tiddler"},
 closeOthers: {text: "close others", tooltip: "Close all other tiddlers"},
 editTiddler: {text: "edit", tooltip: "Edit this tiddler", readOnlyText: "view", readOnlyTooltip: "View the source of this tiddler"},
 saveTiddler: {text: "done", tooltip: "Save changes to this tiddler", readOnlyText: "done", readOnlyTooltip: "View this tiddler normally"},
 cancelTiddler: {text: "cancel", tooltip: "Undo changes to this tiddler", hideReadOnly: true},
 deleteTiddler: {text: "delete", tooltip: "Delete this tiddler", warning: "Are you sure you want to delete '%0'?", hideReadOnly: true},
 permalink: {text: "permalink", tooltip: "Permalink for this tiddler"},
 references: {text: "references", tooltip: "Show tiddlers that link to this one", popupNone: "No references"},
 jump: {text: "jump", tooltip: "Jump to another open tiddler"}
 };
}}}
(Julian Knight, 2006-04-06)
<part tagging hidden>
Produces a list (NB: <ul> ''not'' a popup) of links to tiddlers that carry the specified tag. If no tag is specified, it looks for tiddlers tagged with the name of the current tiddler.
In HTML, the list is formatted like so:
{{{
<ul>
<li class="listTitle">List title label</li>
<li><a class="tiddlyLink ..." href="javascript:;" onclick="..."
    refresh="link" tiddlyLink="ExampleOne">ExampleOne</a></li>
</ul>
}}}
</part>
<part tags hidden>
<<allTags>>
</part>
!!![[Bienvenidos]]
[[Quiénes somos]]
[[Actividades]]
[[Docencia]]
[[Investigación]]
[[Publicaciones]]
[[Materiales]]
[[Colaboradores]]
[[Enlaces de interés]]
[[Blogs & más]]
!!!![[Contacto]]
[img[Tablón de anuncios|TablónAnuncios_thumb.jpg][Tablón de anuncios]]
!!!
<<toggleSideBar Buscador>>
<<fontSize>>

{{logotipo izquierda{[img[Universidad de Salamanca|ESCUDOUSALCMYKP_thumb.gif][http://www.usal.es]]}}}
{{izquierda{<html><a href="http://whos.amung.us/stats/h52oyvcqwlqj/"><img src="http://whos.amung.us/cwidget/h52oyvcqwlqj/c7eaf8000000.png" width="24" height="12" border="0" title="Click to see how many people are online" /></a></html>}}}
/%<<tiddler ToggleRightSidebar with:"Buscador">>%/
<<tiddler [[PerfilTemplate]] with:'Mar Cabezas'>>

{{oculto{
Foto:[img[Contacto|FotosPersonales/MarCabezas.jpg][Contacto]]

Nombre:Mar Cabezas

!CurriculumESP
[[Mª Mar Cabezas Hernández|Mar Cabezas]] es doctoranda en Filosofía y licenciada en Filosofía (Universidad de Salamanca y estancia en la Universidad de Colonia). Pertenece al programa de doctorado "Pasado y Presente de los Derechos Humanos" Actualmente realiza un proyecto de tesis titulado "Implicaciones de la integración de la dimensión emocional en la argumentación moral: emociones y normatividad " financiado por una beca de investigación de la Universidad de Salamanca, bajo la dirección de Carmen Velayos.  Su línea de investigación principal es el estudio de las emociones en la agencia moral (la base emocional de los juicios morales, el papel de las emociones en la deliberación moral, etc.). Actualmente realiza una estancia de investigación en la universidad de Manchester bajo la supervisión del prof. Peter Goldie. [[Página web personal|http://sites.google.com/site/emoethics/]]

!CurriculumENG
<br>+++[english]
[[Mª Mar Cabezas|Mar Cabezas]] is B. A.in Philosophy (University of Salamanca & one year stay at the University of Cologne) and a Ph.D candidate in the Department of History of Law and Legal, Moral and Political Philosophy at the University of Salamanca, Spain, under the supervision of Carmen Velayos. Her current research -“Implications of the acceptance of the emotional basis of morality: emotions and normativity”- is funded by a Grant from Salamanca University’s Research Service. Her Master’s Thesis “La dimensión emocional como precondición de la agencia moral,” (The emotional dimension as a precondition to moral agency) summa cum Laude, September 2008, was funded by a grant from Universitary Private Foundation “Oriol-Urquijo” (2007/2008). Her Her main academical interests are the role of emotions in morality and the interaction between reason and emotion. She is currently a visiting student at the University of Manchester, under the supervision of Peter Goldie (March-June, 2009). [[Mar Cabezas' Website|http://sites.google.com/site/emoethics/]]
===

!Publicaciones

| !''2010'' |<<tiddler [[Mar Cabezas##2010]]>> |
| !''2009'' |<<tiddler [[Mar Cabezas##2009]]>> |
| !''2008'' |<<tiddler [[Mar Cabezas##2008]]>> |
| !''2007'' |<<tiddler [[Mar Cabezas##2007]]>> |

Ver más publicaciones: [[Dialnet|http://dialnet.unirioja.es/servlet/autor?codigo=2021976]]

!2010
*“Emotions through another lens: a critique of the dichotomic conceptaulization of emotions”, //Dilemata. International Journal of Applied Ethics//, (2)2010, pp. 89-103.
!2009
*“La motivación humana y la vida afectiva” en //Temario de oposiciones para secundaria. Rama de filosofía//, capítulo 29. Centro de Estudios Académicos S.A, Madrid, 2009, pp. 3-30.
!2008
*“Dignidad y empatía: el reconocimiento del sufrimiento ajeno” en Roberto R. Aramayo & Txetxu Ausín (Eds.), //Interdependencia: del bienestar a la dignidad//, Plaza y Valdés, Madrid, 2008, pp. 117-130.
!2007
*“Por una concepción integral de la bioética: Igualdad y empatía”, en //Revista de filosofía Laguna//, (2) 2007, pp. 81- 96.
!end
<!--{{{-->
<style type="text/css">
#contentWrapper {display:none;}
#splashScreen {display:block;}
/*{{{*/
body {background:#fff; color:#000;}

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

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

.button {color:#014; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:#fe8; border-color:#db4;}
.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:#8cf;}

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

#s_sidebar {}
#s_sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#s_sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#s_sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#s_sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#s_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:#ffc [[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:#s_80ff80;}
.wizard .changedServer {background:#s_8080ff;}
.wizard .changedBoth {background:#s_ff8080;}
.wizard .notFound {background:#s_ffff80;}
.wizard .putToServer {background:#s_ff80ff;}
.wizard .gotFromServer {background:#s_80ffff;}

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

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

.popup {background:[[ColorPalette::TertiaryPale]]; color:#666; 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:#f88;}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

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

.imageLink, #s_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]];}

#s_backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#s_backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#s_backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#s_backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#s_backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#s_backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#s_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]];}
#s_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;}

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

#s_mainMenu .tiddlyLinkExisting,
	#s_mainMenu .tiddlyLinkNonExisting,
	#s_sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#s_sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

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

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

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

#s_sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#s_sidebarOptions {padding-top:0.3em;}
#s_sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;}
#s_sidebarOptions input {margin:0.4em 0.5em;}
#s_sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#s_sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#s_sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#s_sidebarTabs .tabContents {width:15em; overflow:hidden;}

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

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

.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0em;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#s_contentWrapper {display:block;}
#s_splashScreen {display:none;}

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

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

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

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0em 0.25em; padding:0em 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

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

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

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

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

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

* html #s_backstage {width:99%;}
* html #s_backstageArea {width:99%;}
#s_backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#s_backstageToolbar {position:relative;}
#s_backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#s_backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#s_backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#s_backstage {position:relative; width:100%; z-index:50;}
#s_backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#s_backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/

#s_splashScreen {display:block;}


#s_messageArea {display:none;}

</style>

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-8942274-1");
pageTracker._trackPageview();
} catch(err) {}</script>

<!--}}}-->

<!--{{{-->

<div id="splashScreen">

<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class="siteTitle">Ethics Salamanca</span>&nbsp;
<span class="siteSubtitle">portal de ética de la Universidad de Salamanca</span>
</div>
<div class='headerForeground'>
<span class="siteTitle">Ethics Salamanca</span>&nbsp;
<span class="siteSubtitle">portal de ética de la Universidad de Salamanca</span>
</div>
</div>
<div id='s_mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='s_sidebar'>
<div id='s_sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='s_sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='s_displayArea'>
<div id='s_messageArea'></div>
<div id="s_tiddlerDisplay"><div id="splashId_GettingStarted" class="tiddler">

<div class="toolbar"><br></div>
<div class="title">GettingStarted</div>
<div class="subtitle"><span></span>, <span>21 March 2009</span> (<span>created</span> <span>21 March 2009</span>)</div>
<div class="viewer">To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:<br><ul><li> SiteTitle &amp; SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)</li><li> MainMenu: The menu (usually on the left)</li><li> DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened</li></ul>You'll also need to enter your username for signing your edits: <input title="Username for signing your edits" class="txtOptionInput" option="txtUserName"><br><br>See also MPTW.</div>
<div class="tagClear"></div>


</div>
</div>
</div>
</div>
<!--}}}-->

<script type="text/javascript">
document.getElementById("splashScreen").style.display="none";
</script>
Para clasificar la tabla, 'picar' en el encabezado de una columna.
|sortable|k
| Enlace | Autor | Fecha | Título | Fuente | Tipo | Formato | Enlace |h
| [img[ver|clip.gif][http://www.razonpracticayasuntospublicos.com/racionalidad/texto/Edicion%2014/Muerte%20cerebral.pdf]] | [[David Rodríguez-Arias]] |2010 | ¿Son médicamente relevantes las objeciones filosóficas sobre la muerte cerebral? |//[[Razón práctica y asuntos públicos|http://www.razonpracticayasuntospublicos.com/index.html]]//, nº 14  | Artículo | pdf | [img[ver|clip.gif][http://www.razonpracticayasuntospublicos.com/racionalidad/texto/Edicion%2014/Muerte%20cerebral.pdf]] |
| [img[ver|clip.gif][Materiales/Curso bioética Foro 2009/Presentación general.pdf]] | [[Alberto Molina]] |2009 | Presentación general del curso online |Curso online de Bioética en las organizaciones sanitarias, organizado por el [[Foro de formación y ediciones|http://www.forodeformacion.org/]] | Módulo de curso online | pdf | [img[ver|clip.gif][Materiales/Curso bioética Foro 2009/Presentación general.pdf]] |
| [img[ver|clip.gif][Materiales/Curso bioética Foro 2009/Módulo 1_Interrupción Voluntaria del Embarazo.pdf]] | [[Teresa López de la Vieja]] |2009 | Módulo 1 - Interrupción voluntaria del embarazo |Curso online de Bioética en las organizaciones sanitarias, organizado por el [[Foro de formación y ediciones|http://www.forodeformacion.org/]] | Módulo de curso online | pdf | [img[ver|clip.gif][Materiales/Curso bioética Foro 2009/Módulo 1_Interrupción Voluntaria del Embarazo.pdf]] |
| [img[ver|clip.gif][Materiales/Curso bioética Foro 2009/Módulo 2_Eugenesia.pdf]] | [[Mar Cabezas]] |2009 | Módulo 2 - Eugenesia: prevenir, curar y mejorar |Curso online de Bioética en las organizaciones sanitarias, organizado por el [[Foro de formación y ediciones|http://www.forodeformacion.org/]] | Módulo de curso online | pdf | [img[ver|clip.gif][Materiales/Curso bioética Foro 2009/Módulo 2_Eugenesia.pdf]] |
| [img[ver|clip.gif][Materiales/Curso bioética Foro 2009/Módulo 3_Clonación humana.pdf]] | [[Carmen Velayos]] |2009 | Módulo 3 - Clonación humana |Curso online de Bioética en las organizaciones sanitarias, organizado por el [[Foro de formación y ediciones|http://www.forodeformacion.org/]] | Módulo de curso online | pdf | [img[ver|clip.gif][Materiales/Curso bioética Foro 2009/Módulo 3_Clonación humana.pdf]] |
| [img[ver|clip.gif][Materiales/Curso bioética Foro 2009/Módulo 4_Investigación biomédica.pdf]] | [[Alberto Molina]] |2009 | Módulo 4 - Investigación biomédica |Curso online de Bioética en las organizaciones sanitarias, organizado por el [[Foro de formación y ediciones|http://www.forodeformacion.org/]] | Módulo de curso online | pdf | [img[ver|clip.gif][Materiales/Curso bioética Foro 2009/Módulo 4_Investigación biomédica.pdf]] |
| [img[ver|clip.gif][Materiales/Curso bioética Foro 2009/Módulo 5_Prácticas relacionadas con el final de la vida.pdf]] | [[David Rodríguez-Arias]] |2009 | Módulo 5 - Prácticas relacionadas con el final de la vida |Curso online de Bioética en las organizaciones sanitarias, organizado por el [[Foro de formación y ediciones|http://www.forodeformacion.org/]] | Módulo de curso online | pdf | [img[ver|clip.gif][Materiales/Curso bioética Foro 2009/Módulo 5_Prácticas relacionadas con el final de la vida.pdf]] |
| [img[ver|clip.gif][Materiales/Curso bioética Foro 2009/Módulo 6_Calidad de vida y tratamiento del dolor.pdf]] | [[Alberto Molina]] |2009 | Módulo 6 - Calidad de vida y tratamiento del dolor (proyecto final) |Curso online de Bioética en las organizaciones sanitarias, organizado por el [[Foro de formación y ediciones|http://www.forodeformacion.org/]] | Módulo de curso online | pdf | [img[ver|clip.gif][Materiales/Curso bioética Foro 2009/Módulo 6_Calidad de vida y tratamiento del dolor.pdf]] |
| [img[ver|clip.gif][Materiales/David Rodríguez-Arias - 2009 - La mort encéphalique_actualités et controverses.pdf]] | [[David Rodríguez-Arias]] |2009 |La mort encéphalique: actualités et controverses |//Etudes et synthèses//, 2009, [[www.ethique.inserm.fr|http://www.ethique.inserm.fr/inserm/ethique.nsf/AllDocumentsByUNID/386E7615F26907A4C1257552004D89F7]] | Artículo | pdf | [img[ver|clip.gif][Materiales/David Rodríguez-Arias - 2009 - La mort encéphalique_actualités et controverses.pdf]] |
| [img[ver|clip.gif][Materiales/David RA - Presentation thèse 151208.ppt]] | [[David Rodríguez-Arias]] |2008 |Presentación para la defensa de la tesis, 15/12/08. || Presentación | ppt | [img[ver|clip.gif][Materiales/David RA - Presentation thèse 151208.ppt]] |
| [img[ver|clip.gif][http://arbor.revistas.csic.es/index.php/arbor/article/viewFile/180/181]] | [[Carmen Velayos]] |2008 |Animales genéticamente modificados, primates no humanos. (La visión europea) |//Arbor//, 2008, pp. 293-304, Madrid, CSIC. ISSN: 0210-1963. | Artículo | pdf | [img[ver|clip.gif][http://arbor.revistas.csic.es/index.php/arbor/article/viewFile/180/181]] |
| [img[ver|clip.gif][http://www.ub.edu/fildt/revista/pdf/RByD10_Animal.pdf]] | [[Carmen Velayos]] |2007 |Animales reales en el arte o sobre los límites éticos de la capacidad creadora |//Revista de Bioética y Derecho//, nº 10, Abril 2007, pp 24-38. | Artículo | pdf | [img[ver|clip.gif][http://www.ub.edu/fildt/revista/pdf/RByD10_Animal.pdf]] |
| [img[ver|clip.gif][http://mediatheque.parisdescartes.fr/article.php3?id_article=855]] | [[Carmen Velayos]] |2007 |Animal-to-human transplantation ; an unconventional case of moral anthropocentrism |Médiathèque de l'Université Paris Descartes | Video de conferencia | mov | [img[ver|clip.gif][http://mediatheque.parisdescartes.fr/article.php3?id_article=855]] |
| [img[ver|clip.gif][http://mediatheque.parisdescartes.fr/article.php3?id_article=854]] | [[Teresa López de la Vieja]] |2007 |Organ donors. Something for nothing |Médiathèque de l'Université Paris Descartes | Video de conferencia | mov | [img[ver|clip.gif][http://mediatheque.parisdescartes.fr/article.php3?id_article=854]] |
| [img[ver|clip.gif][http://mediatheque.parisdescartes.fr/article.php3?id_article=1106]] | [[Teresa López de la Vieja]] |2007 |End of life. Good reasons, bad arguments |Médiathèque de l'Université Paris Descartes | Video de conferencia | mov | [img[ver|clip.gif][http://mediatheque.parisdescartes.fr/article.php3?id_article=1106]] |
| [img[ver|clip.gif][http://mediatheque.parisdescartes.fr/article.php3?id_article=814]] | [[Carmen Velayos]] |2006 |Human reproductive cloning : a bioethical perspective from Europe |Médiathèque de l'Université Paris Descartes | Video de conferencia | mov | [img[ver|clip.gif][http://mediatheque.parisdescartes.fr/article.php3?id_article=814]] |
| [img[ver|clip.gif][http://isegoria.revistas.csic.es/index.php/isegoria/article/view/434/435]] | [[Carmen Velayos]] |2005 |La ecologización de la ética |//Isegoría//, 0(32): 5-8 | Artículo | pdf | [img[ver|clip.gif][http://isegoria.revistas.csic.es/index.php/isegoria/article/view/434/435]] |

----
Ejemplo de presentación: +++
<html><div style="width:425px;text-align:left" id="__ss_295538"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/eby/zotero-and-you-or-bibliography-on-the-semantic-web?type=powerpoint" title="Zotero and You, or Bibliography on the Semantic Web">Zotero and You, or Bibliography on the Semantic Web</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=zotero-and-you-or-bibliography-on-the-semantic-web-1204829517225927-4&stripped_title=zotero-and-you-or-bibliography-on-the-semantic-web" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=zotero-and-you-or-bibliography-on-the-semantic-web-1204829517225927-4&stripped_title=zotero-and-you-or-bibliography-on-the-semantic-web" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/eby">eby</a>.</div></div></html>
===
<html><script type="text/javascript" src="http://widgets.amung.us/classic.js"></script><script type="text/javascript">WAU_classic('sljsm55720cd')</script>
<script type="text/javascript" src="http://widgets.amung.us/classic.js"></script><script type="text/javascript">WAU_classic('sljsm55720cd')</script></html>
.
!Theme and color palette
{{select{<<selectTheme>>
<<selectPalette>>}}}
!Single page mode:
<<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)
!Framed links
<<option chkFramedLinks>> display inline frames for all external links
<<option chkFramedLinksTag>> display inline frames for external links in tiddlers tagged with: <<option txtFramedLinksTag>> 
IFRAME size (CSS units: %, em, px, cm, in) - width: <<option txtFrameWidth>> height: <<option txtFrameHeight>>
!Other advanced options
See [[AdvancedOptions]] and [[MptwUserConfigPlugin]]
Name: Black (Mptw)
Background: #000
Foreground: #fff
PrimaryPale: #333
PrimaryLight: #555
PrimaryMid: #888
PrimaryDark: #aaa
SecondaryPale: #111
SecondaryLight: #222
SecondaryMid: #555
SecondaryDark: #888
TertiaryPale: #222
TertiaryLight: #666
TertiaryMid: #888
TertiaryDark: #aaa
Error: #300

This is in progress. Help appreciated.
/***
|Name:|MptwConfigPlugin|
|Description:|Miscellaneous tweaks used by MPTW|
|Version:|1.0 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#MptwConfigPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#MptwConfigPlugin|
!!Note: instead of editing this you should put overrides in MptwUserConfigPlugin
***/
//{{{
var originalReadOnly = readOnly;
var originalShowBackstage = showBackstage;

config.options.chkHttpReadOnly = false; 		// means web visitors can experiment with your site by clicking edit
readOnly = false;								// needed because the above doesn't work any more post 2.1 (??)
showBackstage = true;							// show backstage for same reason

config.options.chkInsertTabs = true;    		// tab inserts a tab when editing a tiddler
config.views.wikified.defaultText = "";			// don't need message when a tiddler doesn't exist
config.views.editor.defaultText = "";			// don't need message when creating a new tiddler 

config.options.chkSaveBackups = true;			// do save backups
config.options.txtBackupFolder = 'twbackup';	// put backups in a backups folder

config.options.chkAutoSave = (window.location.protocol == "file:"); // do autosave if we're in local file

config.mptwVersion = "2.5.2";

config.macros.mptwVersion={handler:function(place){wikify(config.mptwVersion,place);}};

if (config.options.txtTheme == '')
	config.options.txtTheme = 'MptwTheme';

// add to default GettingStarted
config.shadowTiddlers.GettingStarted += "\n\nSee also [[MPTW]].";

// add select theme and palette controls in default OptionsPanel
config.shadowTiddlers.OptionsPanel = config.shadowTiddlers.OptionsPanel.replace(/(\n\-\-\-\-\nAlso see AdvancedOptions)/, "{{select{<<selectTheme>>\n<<selectPalette>>}}}$1");

// these are used by ViewTemplate
config.mptwDateFormat = 'DD/MM/YY';
config.mptwJournalFormat = 'Journal DD/MM/YY';

//}}}
Name: Teal (Mptw)
Background: #fff
Foreground: #000
PrimaryPale: #B5D1DF
PrimaryLight: #618FA9
PrimaryMid: #1a3844
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #f8f8f8
TertiaryLight: #bbb
TertiaryMid: #999
TertiaryDark: #888
Error: #f88
/***
|Name|NestedSlidersPlugin|
|Source|http://www.TiddlyTools.com/#NestedSlidersPlugin|
|Documentation|http://www.TiddlyTools.com/#NestedSlidersPluginInfo|
|Version|2.4.9|
|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|show content in nest-able sliding/floating panels, without creating separate tiddlers for each panel's content|
!!!!!Documentation
>see [[NestedSlidersPluginInfo]]
!!!!!Configuration
<<<
<<option chkFloatingSlidersAnimate>> allow floating sliders to animate when opening/closing
>Note: This setting can cause 'clipping' problems in some versions of InternetExplorer.
>In addition, for floating slider animation to occur you must also allow animation in general (see [[AdvancedOptions]]).
<<<
!!!!!Revisions
<<<
2008.11.15 - 2.4.9 in adjustNestedSlider(), don't make adjustments if panel is marked as 'undocked' (CSS class).  In onClickNestedSlider(), SHIFT-CLICK docks panel (see [[MoveablePanelPlugin]])
|please see [[NestedSlidersPluginInfo]] for additional revision details|
2005.11.03 - 1.0.0 initial public release.  Thanks to RodneyGomes, GeoffSlocock, and PaulPetterson for suggestions and experiments.
<<<
!!!!!Code
***/
//{{{
version.extensions.NestedSlidersPlugin= {major: 2, minor: 4, revision: 9, date: new Date(2008,11,15)};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// TW2.2+
// hijack Morpher stop handler so sliderPanel/floatingPanel overflow is visible after animation has completed
if (version.major+.1*version.minor+.01*version.revision>=2.2) {
	Morpher.prototype.coreStop = Morpher.prototype.stop;
	Morpher.prototype.stop = function() {
		this.coreStop.apply(this,arguments);
		var e=this.element;
		if (hasClass(e,"sliderPanel")||hasClass(e,"floatingPanel")) {
			// adjust panel overflow and position after animation
			e.style.overflow = "visible";
			if (window.adjustSliderPos) window.adjustSliderPos(e.parentNode,e.button,e);
		}
	};
}
//}}}
/***
|Name|NestedSlidersPluginInfo|
|Source|http://www.TiddlyTools.com/#NestedSlidersPlugin|
|Documentation|http://www.TiddlyTools.com/#NestedSlidersPluginInfo|
|Version|2.4.9|
|Author|Eric Shulman - 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 NestedSlidersPlugin|
This plugin adds new wiki syntax for embedding 'slider' panels directly into tiddler content.
!!!!!Usage
<<<
Use {{{+++}}} and {{{===}}} to delimit the slider content.  You can also 'nest' these sliders as deep as you like (see complex nesting example below), so that expandable 'tree-like' hierarchical displays can be created.  This is most useful when converting existing in-line text content to create in-line annotations, footnotes, context-sensitive help, or other subordinate information displays.

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

//Note: to make slider definitions easier to read and recognize when editing a tiddler, newlines immediately following the {{{+++}}} 'start slider' or preceding the {{{===}}} 'end slider' sequence are automatically supressed so that excess whitespace is eliminated from the output.//
<<<
!!!!!Examples
<<<
simple in-line slider: 
{{{
+++
   content
===
}}}
+++
   content
===
----
use a custom label and tooltip: 
{{{
+++[label|tooltip]
   content
===
}}}
+++[label|tooltip]
   content
===
----
content automatically blockquoted: 
{{{
+++>
   content
===
}}}
+++>
   content
===
----
all options (except cookie) //(default open, heading, sized floater, transient, open on hover, class, label/tooltip/key, blockquoted, deferred)//
{{{
++++!!!^30em^*@{{big{[label=Z|click or press Alt-Z to open]}}}>...
   content
===
}}}
++++!!!^30em^*@{{big{[label=Z|click or press Alt-Z to open]}}}>...
   content
===
----
complex nesting example:
{{{
+++[get info...=I|click for information or press Alt-I]
	put some general information here,
	plus a floating panel with more specific info:
	+++^10em^[view details...|click for details]
		put some detail here, which could in turn contain a transient panel,
		perhaps with a +++^25em^*[glossary definition]explaining technical terms===
	===
===
}}}
+++[get info...=I|click for information or press Alt-I]
	put some general information here,
	plus a floating panel with more specific info:
	+++^10em^[view details...|click for details]
		put some detail here, which could in turn contain a transient panel,
		perhaps with a +++^25em^*[glossary definition]explaining technical terms===
	===
===
----
embedded image as slider button
{{{
+++[<img src=images/eric3.gif>|click me!]>
	{{big{OUCH!}}}
===
}}}
+++[<img src=images/eric3.gif>|click me!]>
	{{big{OUCH!}}}
===
<<<
!!!!!Revisions
<<<
2008.11.15 - 2.4.9 in adjustNestedSlider(), don't make adjustments if panel is marked as 'undocked' (CSS class).  In onClickNestedSlider(), SHIFT-CLICK docks panel (see [[MoveablePanelPlugin]])
2008.11.13 - 2.4.8 in document.onclick(), if transient panel is not a sliderPanel or floatingPanel, hide it via CSS
2008.10.05 - 2.4.7 in onClickNestedSlider(), added try/catch around focus() call to prevent IE error if input field being focused on is currently not visible.
2008.09.07 - 2.4.6 added removeCookie() function for compatibility with [[CookieManagerPlugin]]
2008.06.07 - 2.4.5 in 'onmouseover' handler for 'open on hover' slider buttons, use call() method when invoking document.onclick function (avoids error in IE)
2008.06.07 - 2.4.4 changed default for chkFloatingSlidersAnimate to FALSE to avoid clipping problem on some browsers (IE).  Updated Morpher hijack (again) to adjust regular sliderPanel styles as well as floatingPanel styles.
2008.05.07 - 2.4.3 updated Morpher hijack to adjust floatingPanel styles after animation without affecting other animated elements (i.e. popups).  Also, updated adjustSliderPos() to account for scrollwidth and use core findWindowWidth().
2008.04.02 - 2.4.2 in onClickNestedSlider, handle clicks on elements contained //within// slider buttons (e.g., when using HTML to display an image as a slider button).
2008.04.01 - 2.4.1 open on hover also triggers document.onclick to close other transient sliders
2008.04.01 - 2.4.0 re-introduced 'open on hover' feature using "@" symbol
2008.03.26 - 2.3.5 in document.onclick(), if click is in popup, don't dismiss transient panel (if any)
2008.01.08 - [*.*.*] plugin size reduction: documentation moved to ...Info tiddler
2007.12.28 - 2.3.4 added hijack for Animator.prototype.startAnimating().  Previously, the plugin code simply set the overflow to "visible" after animation.  This code tweak corrects handling of elements that were styled with overflow=hidden/auto/scroll before animation by saving the overflow style and then restoring it after animation has completed.
2007.12.17 - 2.3.3 use hasClass() instead of direct comparison to test for "floatingPanel" class.  Allows floating panels to have additional classes assigned to them (i.e., by AnimationEffectsPlugin).
2007.11.14 - 2.3.2 in onClickNestedSlider(), prevent SHIFT-click events from opening a new, empty browser window by setting "cancelBubble=true" and calling "stopPropagation()".  Note: SHIFT-click is still processed as a normal click (i.e., it toggles the slider panel display).  Also, using SHIFT-click will prevent 'transient' sliders from being automatically closed when another slider is opened, allowing you to *temporarily* display several transient sliders at once.
2007.07.26 - 2.3.1 in document.onclick(), propagate return value from hijacked core click handler to consume OR bubble up click as needed.  Fixes "IE click disease", whereby nearly every mouse click causes a page transition.
2007.07.20 - 2.3.0 added syntax for setting panel ID (#panelID:).  This allows individual slider panels to be repositioned within tiddler content simply by giving them a unique ID and then moving them to the desired location using the {{{<<DOM move id>>}}} macro.
2007.07.19 - 2.2.0 added syntax for alttext and alttip (button label and tooltip to be displayed when panel is open)
2007.07.14 - 2.1.2 corrected use of 'transient' attribute in IE to prevent (non-recursive) infinite loop
2007.07.12 - 2.1.0 replaced use of "*" for 'open/close on rollover' (which didn't work too well).  "*" now indicates 'transient' panels that are automatically closed if a click occurs somewhere else in the document.  This permits use of nested sliders to create nested "pulldown menus" that automatically disappear after interaction with them has been completed.  Also, in onClickNestedSlider(), use "theTarget.sliderCookie", instead of "this.sliderCookie" to correct cookie state tracking when automatically dismissing transient panels.
2007.06.10 - 2.0.5 add check to ensure that window.adjustSliderPanel() is defined before calling it (prevents error on shutdown when mouse event handlers are still defined)
2007.05.31 - 2.0.4 add handling to invoke adjustSliderPanel() for onmouseover events on slider button and panel.  This allows the panel position to be re-synced when the button position shifts due to changes in unrelated content above it on the page.  (thanks to Harsha for bug report)
2007.03.30 - 2.0.3 added chkFloatingSlidersAnimate (default to FALSE), so that slider animation can be disabled independent of the overall document animation setting (avoids strange rendering and focus problems in floating panels)
2007.03.01 - 2.0.2 for TW2.2+, hijack Morpher.prototype.stop so that "overflow:hidden" can be reset to "overflow:visible" after animation ends
2007.03.01 - 2.0.1 in hijack for Slider.prototype.stop, use apply() to pass params to core function
2006.07.28 - 2.0.0 added custom class syntax around label/tip/key syntax: {{{{{classname{[label=key|tip]}}}}}}
2006.07.25 - 1.9.3 when parsing slider, save default open/closed state in button element, then in onClickNestedSlider(), if slider state matches saved default, instead of saving cookie, delete it.  Significantly reduces the 'cookie overhead' when default slider states are used.
2006.06.29 - 1.9.2 in onClickNestedSlider(), when setting focus to first control, skip over type="hidden"
2006.06.22 - 1.9.1 added panel.defaultPanelWidth to save requested panel width, even after resizing has changed the style value
2006.05.11 - 1.9.0 added optional '^width^' syntax for floating sliders and '=key' syntax for setting an access key on a slider label
2006.05.09 - 1.8.0 in onClickNestedSlider(), when showing panel, set focus to first child input/textarea/select element
2006.04.24 - 1.7.8 in adjustSliderPos(), if floating panel is contained inside another floating panel, subtract offset of containing panel to find correct position
2006.02.16 - 1.7.7 corrected deferred rendering to account for use-case where show/hide state is tracked in a cookie
2006.02.15 - 1.7.6 in adjustSliderPos(), ensure that floating panel is positioned completely within the browser window (i.e., does not go beyond the right edge of the browser window)
2006.02.04 - 1.7.5 add 'var' to unintended global variable declarations to avoid FireFox 1.5.0.1 crash bug when assigning to globals
2006.01.18 - 1.7.4 only define adjustSliderPos() function if it has not already been provided by another plugin.  This lets other plugins 'hijack' the function even when they are loaded first.
2006.01.16 - 1.7.3 added adjustSliderPos(place,btn,panel,panelClass) function to permit specialized logic for placement of floating panels.  While it provides improved placement for many uses of floating panels, it exhibits a relative offset positioning error when used within *nested* floating panels.  Short-term workaround is to only adjust the position for 'top-level' floaters.
2006.01.16 - 1.7.2 added button property to slider panel elements so that slider panel can tell which button it belongs to.  Also, re-activated and corrected animation handling so that nested sliders aren't clipped by hijacking Slider.prototype.stop so that "overflow:hidden" can be reset to "overflow:visible" after animation ends
2006.01.14 - 1.7.1 added optional "^" syntax for floating panels.  Defines new CSS class, ".floatingPanel", as an alternative for standard in-line ".sliderPanel" styles.
2006.01.14 - 1.7.0 added optional "*" syntax for rollover handling to show/hide slider without requiring a click (Based on a suggestion by tw4efl)
2006.01.03 - 1.6.2 When using optional "!" heading style, instead of creating a clickable "Hn" element, create an "A" element inside the "Hn" element.  (allows click-through in SlideShowPlugin, which captures nearly all click events, except for hyperlinks)
2005.12.15 - 1.6.1 added optional "..." syntax to invoke deferred ('lazy') rendering for initially hidden sliders
removed checkbox option for 'global' application of lazy sliders
2005.11.25 - 1.6.0 added optional handling for 'lazy sliders' (deferred rendering for initially hidden sliders)
2005.11.21 - 1.5.1 revised regular expressions: if present, a single newline //preceding// and/or //following// a slider definition will be suppressed so start/end syntax can be place on separate lines in the tiddler 'source' for improved readability.  Similarly, any whitespace (newlines, tabs, spaces, etc.) trailing the 'start slider' syntax or preceding the 'end slider' syntax is also suppressed.
2005.11.20 - 1.5.0 added (cookiename) syntax for optional tracking and restoring of slider open/close state
2005.11.11 - 1.4.0 added !!!!! syntax to render slider label as a header (Hn) style instead of a button/link style
2005.11.07 - 1.3.0 removed alternative syntax {{{(((}}} and {{{)))}}} (so they can be used by other formatting extensions) and simplified/improved regular expressions to trim multiple excess newlines
2005.11.05 - 1.2.1 changed name to NestedSlidersPlugin
2005.11.04 - 1.2.0 added alternative character-mode syntax {{{(((}}} and {{{)))}}}
tweaked "eat newlines" logic for line-mode {{{+++}}} and {{{===}}} syntax
2005.11.03 - 1.1.1 fixed toggling of default tooltips ("more..." and "less...") when a non-default button label is used.  code cleanup, added documentation
2005.11.03 - 1.1.0 changed delimiter syntax from {{{(((}}} and {{{)))}}} to {{{+++}}} and {{{===}}}.  changed name to EasySlidersPlugin
2005.11.03 - 1.0.0 initial public release
<<<
/***
|Name:|NewHerePlugin|
|Description:|Creates the new here and new journal macros|
|Version:|3.0 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#NewHerePlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
merge(config.macros, {
	newHere: {
		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			wikify("<<newTiddler "+paramString+" tag:[["+tiddler.title+"]]>>",place,null,tiddler);
		}
	},
	newJournalHere: {
		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			wikify("<<newJournal "+paramString+" tag:[["+tiddler.title+"]]>>",place,null,tiddler);
		}
	}
});

//}}}
//{{{
config.macros.newTiddlerWithForm = {
	// Standard Properties
	label: "newTiddlerWithForm",
	version: {major: 1, minor: 0, revision: 1, date: new Date(2006, 1, 6)},
	prompt: "Creates a new Tiddler with a <<formTiddler ...>> macro"
}

config.macros.newTiddlerWithForm.handler = function(place,macroName,params) {
	// --- Parsing ------------------------------------------

	var i = 0; // index running over the params

	// get the name of the form template tiddler
	var formTemplateName = undefined;
	if (i < params.length) {
		formTemplateName = params[i];
		i++;
	}

	if (!formTemplateName) {
		config.macros.formTiddler.createErrorElement(place, "No form template specified in <<" + macroName + ">>.");
		return;
	}

	// get the button label
	var buttonLabel = undefined;
	if (i < params.length) {
		buttonLabel = params[i];
		i++;
	}

	if (!buttonLabel) {
		config.macros.formTiddler.createErrorElement(place, "No button label specified in <<" + macroName + ">>.");
		return;
	}

	// get the (optional) tiddlerName script and "askUser"
	var tiddlerNameScript = undefined;
	var askUser = false;
	if (i < params.length) {
		tiddlerNameScript = params[i];
		i++;

		if (i < params.length && params[i] == "askUser") {
			askUser = true;
			i++;
		}
	}

	// --- Processing ------------------------------------------

	if(!readOnly) {
		var onClick = function() {
			var tiddlerName;
			if (tiddlerNameScript) {
				try {
					tiddlerName = eval(tiddlerNameScript);
				} catch (ex) {
				}
			}
			if (!tiddlerName || askUser) {
				tiddlerName = prompt("Please specify a tiddler name.", askUser ? tiddlerName : "");
			}
			while (tiddlerName && store.getTiddler(tiddlerName)) {
				tiddlerName = prompt("A tiddler named '"+tiddlerName+"' already exists.\n\n"+"Please specify a tiddler name.", tiddlerName);
			}

			// tiddlerName is either null (user canceled) or a name that is not yet in the store.
			if (tiddlerName) {
				var body = "<<formTiddler [["+formTemplateName+"]]>>";
				var tags = [];
				store.saveTiddler(tiddlerName,tiddlerName,body,config.options.txtUserName,new Date(),tags);
				story.displayTiddler(null,tiddlerName,1);
			}
		}

		createTiddlyButton(place,buttonLabel,buttonLabel,onClick);
    }
}

//}}}
Alberto Molina Pérez, 2009
TiddlyWiki <<version>>

/***
|''Nombre:''|NewBookMacro|
|''Basado en:''|newTiddlerWithForm macro|
|''Source:''|http://tiddlywiki.abego-software.de/#FormTiddlerPlugin|
!Descripción
Muestra una página de internet dentro de un tiddler.
***/

//{{{
config.macros.newBookTiddler = {
	// Standard Properties
	label: "newBookTiddler",
	version: {major: 1, minor: 0, revision: 1, date: new Date(2006, 1, 6)},
	prompt: "Creates a new Tiddler with a <<formTiddler ...>> macro"
}

config.macros.newBookTiddler.handler = function(place,macroName,params) {
	// --- Parsing ------------------------------------------

	var i = 0; // index running over the params

	// get the name of the form template tiddler
	var formTemplateName = undefined;
	if (i < params.length) {
		formTemplateName = params[i];
		i++;
	}

	if (!formTemplateName) {
		config.macros.formTiddler.createErrorElement(place, "No form template specified in <<" + macroName + ">>.");
		return;
	}

	// get the button label
	var buttonLabel = undefined;
	if (i < params.length) {
		buttonLabel = params[i];
		i++;
	}

	if (!buttonLabel) {
		config.macros.formTiddler.createErrorElement(place, "No button label specified in <<" + macroName + ">>.");
		return;
	}

	// get the (optional) tiddlerName script and "askUser"
	var newIframeScript = undefined;
	var askUser = false;
	if (i < params.length) {
		newIframeScript = params[i];
		i++;

		if (i < params.length && params[i] == "askUser") {
			askUser = true;
			i++;
		}
	}

	// --- Processing ------------------------------------------

	if(!readOnly) {
		var onClick = function() {
			var newIframe;
			if (newIframeScript) {
				try {
					newIframe = eval(newIframeScript);
				} catch (ex) {
				}
			}
			if (!newIframe || askUser) {
				newIframe = prompt("Indica el título del libro.", askUser ? newIframe : "");
			}


			// newIframe is null.
			if (newIframe) {
				var texto = store.getTiddlerText('LibroVacio');
				var body =  "<<tiddler [["+formTemplateName+"]] with:'"+newIframe+"'>>"+texto;
				var tags = "Publicaciones";
				var tiddlerName = newIframe;
				store.saveTiddler(tiddlerName,tiddlerName,body,config.options.txtUserName,new Date(),tags);
				story.displayTiddler(null,tiddlerName,1);
			}
		}

		createTiddlyButton(place,buttonLabel,buttonLabel,onClick);
    }
}

//}}}
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
----
<<slider chkSliderMoreOptions MoreOptions "More options »" "Change TiddlyWiki other advanced options">>
<!--{{{-->
<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='macro' force='true' macro='slider chkSideBarTabs SideBarTabs "index »" "display lists of tiddlers"'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
[[Quiénes somos]] : [[Carmen Velayos]] : http://sites.google.com/site/cmnvelayos/Home/home/ {{floatright{<<fullscreen 'pantalla completa ↕'>>}}}
<html><div align="center"><iframe src="http://sites.google.com/site/cmnvelayos/Home/home" frameborder="0" width="100%" height="1120"></iframe></div></html>
[[Quiénes somos]] : [[David Rodríguez-Arias]] : [[www.dilemata.net/index.php/Actualidad-de-la-bioetica-medica/|http://www.dilemata.net/index.php/Actualidad-de-la-bioetica-medica/]] {{floatright{<<fullscreen 'pantalla completa ↕'>>}}}
<html><div align="center"><iframe src="http://www.dilemata.net/index.php/Actualidad-de-la-bioetica-medica/" frameborder="0" width="100%" height="1000"></iframe></div></html>
[[Quiénes somos]] : [[Teresa López de la Vieja]] : http://web.usal.es/~tlv/ {{floatright{<<fullscreen 'pantalla completa ↕'>>}}}
<html><div align="center"><iframe src="http://web.usal.es/~tlv/" frameborder="0" width="100%" height="560"></iframe></div></html>
{{sinbordes perfil justificado{
| <<tiddler [[$1::Foto]]>><br><<tiddler [[$1::Nombre]]>> |<<tiddler [[$1##CurriculumESP]]>>|
|~|<<tiddler [[$1##CurriculumENG]]>>|
|~|+++!![Publicaciones recientes / Latest publications »] <br> <<tiddler [[$1##Publicaciones]]>>=== |
}}}
/***
|''Name:''|PhotoGalleryPlugin|
|''Description:''|A photo gallery with optional subtitles|
|''Author:''|Paulo Soares|
|''Version:''|1.1.0|
|''Date:''|2009-03-13|
|''Source:''|http://www.math.ist.utl.pt/~psoares/addons.html|
|''Documentation:''|See the example|
|''License:''|[[Creative Commons Attribution-Share Alike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''~CoreVersion:''|2.5.0|
***/
//{{{
if(!version.extensions.photoGalleryPlugin) { //# ensure that the plugin is only installed once
version.extensions.photoGalleryPlugin = {installed: true};

(function($) {
config.macros.photoGallery = {};

config.macros.photoGallery.handler= function(place,macroName,params,wikifier,paramString,tiddler) {
  var i, args = paramString.parseParams(null,null,true);
  var url = getParam(args,"url",null);
  this.first = parseInt(getParam(args,"first",null));
  this.last = parseInt(getParam(args,"last",null));
  if(!url || !this.first || !this.last) return false;
  var height = getParam(args,"height",null);
  var width = getParam(args,"width",null);
  this.time = parseFloat(getParam(args,"time",0));
  this.labels = getParam(args,"labels",null);
  if(!store.tiddlerExists(this.labels)) this.labels = null;
  var argsArray = paramString.readMacroParams();
  this.numbers = ($.inArray('numbers',argsArray) > -1);
  var pictureHolder = document.createElement('CENTER');
  this.current = this.first;
  var pos = url.indexOf('*');
  var prefix = url.substring(0,pos);
  var postfix = url.substring(pos+1);
  var image;
  if(this.labels) this.labelsArray = store.getTiddlerText(this.labels).split("\n");
  for(i=this.first; i<=this.last; i++){
    image=pictureHolder.appendChild(document.createElement('IMG'));
    image.src = prefix+i+postfix;
    image.id = 'pgObject'+i;
    image.style.display='none';
    image.style.marginTop="0.5em";
    image.style.marginBottom="0.5em";
    if(height) image.height = height;
    if(width) image.width = width;
    place.appendChild(pictureHolder);
  }
  $('#pgObject'+this.current).toggle();
  var navBar = createTiddlyElement(pictureHolder,"DIV");
  navBar.style.marginBottom="0.5em";
  createTiddlyButton(navBar,"«","",this.firstImage);
  createTiddlyButton(navBar,"‹","",this.previousImage);
  if(this.time>0) {
    createTiddlyButton(navBar,"►",null,this.auto,null,"pgPlay");
  }
  createTiddlyButton(navBar,"›","",this.nextImage);
  createTiddlyButton(navBar,"»","",this.lastImage);
  if(this.labels) createTiddlyElement(pictureHolder,"DIV","pgLabel","",this.labelsArray[0]);
  if(this.numbers){
    this.nImages=this.last-this.first+1;
    createTiddlyElement(navBar,"SPAN","pgCounter","","1/"+this.nImages);
  }
}

config.macros.photoGallery.auto = function() {
  var cm = config.macros.photoGallery;
  if(this.autoAdvance) {
    clearInterval(this.autoAdvance);
    this.autoAdvance = null;
    $("#pgPlay").text('►');
  } else {
    if(cm.time>0) {
      this.autoAdvance = setInterval(config.macros.photoGallery.nextImage, cm.time);
      $("#pgPlay").text('▣');
    }
  }
}

config.macros.photoGallery.jump = function(step) {
  var target;
  switch (step) {
  case "f":
    target=this.first;
    break;
  case "l":
    target=this.last;
    break;
  case "n":
    target = ((this.current+1)>this.last) ? this.first : this.current+1; 
    break;
  case "p":
    target = ((this.current-1)<this.first) ? this.last : this.current-1; 
  }
  $('#pgObject'+this.current).toggle();
  this.current = target;
  $('#pgObject'+this.current).toggle();
  if(this.numbers) $("#pgCounter").text((target-this.first+1) + '/'+ this.nImages);
  if(this.labels) $("#pgLabel").text(this.labelsArray[target-this.first]);
}

config.macros.photoGallery.nextImage = function(){config.macros.photoGallery.jump('n');}
config.macros.photoGallery.previousImage = function(){config.macros.photoGallery.jump('p');}
config.macros.photoGallery.lastImage = function(){config.macros.photoGallery.jump('l');}
config.macros.photoGallery.firstImage = function(){config.macros.photoGallery.jump('f');}
})(jQuery)
}
//}}}
<<tiddler [[LibroTemplate]] with:'Política de la vitalidad'>>
{{oculto{
Foto: [img[Teresa López de la Vieja (ed.): Política de la vitalidad, 1996|FotosLibros/PoliticaVitalidad.jpg][Política de la vitalidad]]

Titulo: Política de la Vitalidad<br>//España Invertebrada// de José Ortega y Gasset

Autores: [[Teresa López de la Vieja]] (ed.)

OtrosDatos: Tecnos, 1996

Descripcion: 
}}}
<<tiddler [[LibroTemplate]] with:'Política y sociedad en José Ortega y Gasset'>>/%
Foto: [img[Teresa López de la Vieja (coord.): Política y sociedad en José Ortega y Gasset, 1997|FotosLibros/PoliticaSociedad.jpg][Política y sociedad en José Ortega y Gasset]]

Titulo: Política y sociedad en José Ortega y Gasset: en torno a "Vieja y nueva política"

Autores: [[Teresa López de la Vieja]] (coord.)

OtrosDatos: Anthropos, 1997

Descripcion: 
%/
<<tiddler [[LibroTemplate]] with:'Principios morales y casos prácticos'>>/%
Foto: [img[Teresa López de la Vieja: Principios morales y casos prácticos, 2000|FotosLibros/PrincipiosMorales.gif][Principios morales y casos prácticos]]

Titulo: Principios morales y casos prácticos

Autores: [[Teresa López de la Vieja]]

OtrosDatos: Tecnos, Madrid, 2000

Descripcion: El libro defiende un modelo de principios para analizar problemas de Ética aplicada. Los principios mas vinculados al pensamiento moderno, autonomía, justicia, tolerancia, ofrecen un marco apropiado para analiza cuestiones practicas. Eutanasia, interrupción del embarazo, maternidad subrogada constituyen auténticos "casos difíciles" en el campo de la Bioética. Por un lado, la opinión publica sigue dividida entre argumentos a favor y argumentos en contra, tal como sucedía en épocas anteriores. Por otro, los casos prácticos requieren soluciones mas acordes con la nueva sensibilidad de los agentes. En Ética ambiental, un enfoque antropocéntrico moderado permite abordar cuestiones mas complejas, sin modificar la estructura ni los conceptos de las teorías éticas. De acuerdo con esto, el principio de justicia entre generaciones apela a la responsabilidad hacia las generaciones futuras e, indirectamente, justifica las obligaciones de los humanos hacia otras especies y hacia el medio. Por ultimo, el principio de tolerancia favorece el respeto hacia las diferencias. Aquellas diferencias que son valiosas en las sociedades pluralistas.<br><br>
%/
/%{{centrado{
[img[EscudoEthicsSalamanca128.png]]
}}}%/

|sinbordes|k
|<<tiddler [[Ensayos sobre Bioética]]>>|
|<<tiddler [[Ética y ethos profesionales]]>>|
|<<tiddler [[Ética de la dependencia]]>>|
|<<tiddler [[Bioética y ciudadanía]]>>|
|<<tiddler [[Ética y cambio climático]]>>|
|<<tiddler [[Ética y experimentación con seres humanos]]>>|
|<<tiddler [[Bioethical Education]]>>|
|<<tiddler [[Feminismo ecológico]]>>|
|<<tiddler [[Repensar el fin de la vida]]>>|
|<<tiddler [[Responsabilidad política y medio ambiente]]>>|
|<<tiddler [[Debemos tolerarlo todo]]>>|
|<<tiddler [[Bioética. Entre la medicina y la ética]]>>|
|<<tiddler [[Bioética. Perspectivas emergentes]]>>|
|<<tiddler [[Una muerte razonable]]>>|
|<<tiddler [[Libres para morir]]>>|
|<<tiddler [[Ciudadanos de Europa]]>>|
|<<tiddler [[La mitad del mundo]]>>|
|<<tiddler [[Tomarse en serio la naturaleza]]>>|
|<<tiddler [[Códigos éticos en los negocios]]>>|
|<<tiddler [[Éticas en esbozo]]>>|
|<<tiddler [[Ética y literatura]]>>|
|<<tiddler [[Feminismo. Del pasado al presente]]>>|
|<<tiddler [[La dignidad de la naturaleza]]>>|
|<<tiddler [[Principios morales y casos prácticos]]>>|
|<<tiddler [[Política y sociedad en José Ortega y Gasset]]>>|
|<<tiddler [[La dimensión moral del ambiente natural]]>>|
|<<tiddler [[Política de la vitalidad]]>>|
|<<tiddler [[La faz oculta de la modernidad]]>>|
|<<tiddler [[Figuras del Logos]]>>|
|<<tiddler [[Ética. Procedimientos razonables]]>>|
|<<tiddler [[Éticas contemporáneas]]>>|
|<<tiddler [[Aranguren, la ética entre la religión y la política]]>>|
This package provides a toolbar of interactive 'power tools' that you can use while editing a tiddler to quickly insert TiddlyWiki tiddler links, images, macros, etc. or common formatting sequences directly into tiddler content, as well as perform other functions (such as find/replace, sort, split, convert, etc.) that can be used to modify the current tiddler's source content in a variety of ways.

<<tiddler QuickEditToolbar with: show>>
!!!!!Installation:
<<<
Individual ~QuickEdit buttons are defined in separate tiddlers (e.g., [[QuickEdit_replace]]) that have also been //transcluded// into a single toolbar definition named [[QuickEditToolbar]].  You can edit this definition to add, remove, or rearrange the toolbar buttons to best suit your needs, and then embed the [[QuickEditToolbar]] tiddler into your document's [[EditTemplate]], like this:
{{{
<div macro='tiddler QuickEditToolbar'></div>
}}}
Next, in order to support some of the formatting 'shortcuts' provided by the toolbar, add a reference to the shortcuts CSS class definitions in your [[StyleSheet]]:
{{{
[[StyleSheetShortcuts]]
}}}
By default, the QuickEdit toolbar is hidden until you enable it by using the ''toggleQuickEdit'' command, which you can add to the ~EditToolbar definition in [[ToolbarCommands]]:
{{{
|EditToolbar|... toggleQuickEdit ...|
}}}
You can also toggle the ~QuickEdit toolbar display via a single checkbox option that can be added to [[SideBarOptions]] (or any other desired location):
{{{
<<option chkShowQuickEdit>> show QuickEdit toolbar
}}}
Note: You can 'hard-code' the ''chkShowQuickEdit'' setting, so that the toolbar will be //initially// displayed, by creating a tiddler (e.g., ConfigTweaks), tagged with <<tag systemConfig>>, containing:
{{{
config.options.chkShowQuickEdit=true;
}}}
Alternatively, if you want the toolbar to //always// be displayed, regardless of the option setting, you can add a special keyword, ''show'', to the [[EditTemplate]] syntax, like this:
{{{
<div macro='tiddler QuickEditToolbar with: show'></div>
}}}
<<<
/***
|Name|QuickEditPlugin|
|Source|http://www.TiddlyTools.com/#QuickEditPlugin|
|Documentation|http://www.TiddlyTools.com/#QuickEditPlugin|
|Version|2.4.2|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|Support functions for ~QuickEdit package: styles, utility functions, and 'toggleQuickEdit' command|
!!!!!Revisions
<<<
2009.05.07 [2.4.2] added processed() function to abbreviate event handler code
2008.09.07 [2.4.1] added removeCookie() function for compatibility with [[CookieManagerPlugin]]
2008.05.17 [2.4.0] copied code from StickyPopupPlugin to remove dependency
2008.05.12 [2.3.0] added "toggleQuickEdit" command handler (replaces inline script command)
2008.01.11 [2.2.0] converted from inline script
2007.03.29 [1.0.0] initial release (as inline script)
<<<
!!!!!Code
***/
//{{{
version.extensions.QuickEditPlugin= {major: 2, minor: 4, revision: 2, date: new Date(2009,5,7)};

// SET STYLESHEET
setStylesheet("\
.quickEdit a { border:2px outset ButtonFace; padding:0px 3px !important; \
	-moz-border-radius:.5em; -webkit-border-radius:.5em; \
	-moz-appearance:button !important; -webkit-appearance:push-button !important; \
	background-color:ButtonFace; color:ButtonText !important;  \
	line-height:200%; font-weight:normal; } \
.quickEdit a:hover { border: 2px inset ButtonFace; background-color:ButtonFace; }\
", "quickEditStyles");

// REMOVE COOKIE
if (window.removeCookie===undefined) {
	window.removeCookie=function(name) {
		document.cookie = name+'=; expires=Thu, 01-Jan-1970 00:00:01 UTC; path=/;'; 
	}
}

// UTILITY FUNCTIONS
config.quickEdit = {
	processed: function(ev) {
		ev.cancelBubble=true;
		if(ev.stopPropagation) ev.stopPropagation();
		return false;
	},
	getField: function(where) {
		var here=story.findContainingTiddler(where); if (!here) return null;
		var e=story.getTiddlerField(here.getAttribute("tiddler"),"text");
		if (e&&e.getAttribute("edit")=="text") return e;
		return null;
	},
	setSelection: function(where,newtext) {
		var e=this.getField(where); if (!e) return false;
		e.focus(); replaceSelection(e,newtext);
		return false;
	},
	wrapSelection: function(where,before,after) {
		var e=this.getField(where); if (!e) return false;
		e.focus(); replaceSelection(e,before+config.quickEdit.getSelection(e)+after);
		return false;
	},
	getSelection: function(e) {
		var seltext="";
		if (e&&e.setSelectionRange)
			seltext=e.value.substr(e.selectionStart,e.selectionEnd-e.selectionStart);
		else if (document.selection) {
			var range = document.selection.createRange();
			if (range.parentElement()==e) seltext=range.text
		}
		return seltext;
	},
	promptForFilename: function(msg,path,file) {
		if(window.Components) { // moz
			try {
				netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
				var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
				var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
				picker.init(window, msg, nsIFilePicker.modeOpen);
				var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
				thispath.initWithPath(path);
				picker.displayDirectory=thispath;
				picker.defaultExtension='jpg';
				picker.defaultString=file;
				picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterImages);
				if (picker.show()!=nsIFilePicker.returnCancel)
					var result="file:///"+picker.file.persistentDescriptor.replace(/\\/g,'/');
			}
			catch(e) { alert('error during local file access: '+e.toString()) }
		}
		else { // IE
			try { // XP only
				var s = new ActiveXObject('UserAccounts.CommonDialog');
				s.Filter='All files|*.*|JPG files|*.jpg|GIF files|*.gif|PNG files|*.png|';
				s.FilterIndex=1; // default to JPG
				s.InitialDir=path;
				s.FileName=file;
				if (s.showOpen()) var result=s.FileName;
			}
			catch(e) { var result=prompt(msg,path+file); } // fallback for non-XP IE
		}
		return result;
	}
}
//}}}

//{{{
if (config.options.chkShowQuickEdit===undefined) config.options.chkShowQuickEdit=false;
config.commands.toggleQuickEdit = {
	hideReadOnly: true,
	getText: function() { return config.options.chkShowQuickEdit?'\u221Aquickedit':'quickedit'; },

	tooltip: 'show QuickEdit toolbar buttons',
	handler: function(event,src,title) {
		config.options.chkShowQuickEdit=!config.options.chkShowQuickEdit;
		config.macros.option.propagateOption("chkShowQuickEdit","checked", config.options.chkShowQuickEdit,"input");
		if (config.options.chkShowQuickEdit) saveOptionCookie("chkShowQuickEdit");
		else removeCookie("chkShowQuickEdit");
		src.innerHTML=config.commands.toggleQuickEdit.getText();
		story.forEachTiddler(function(t,e){if (story.isDirty(t)) refreshElements(e);});
		return false;
	}
};
//}}}

// // COPIED FROM [[StickyPopupPlugin]] TO ELIMINATE PLUGIN DEPENDENCY
//{{{
if (config.options.chkStickyPopups==undefined) config.options.chkStickyPopups=false;
Popup.stickyPopup_onDocumentClick = function(ev)
{
	// if click is in a sticky popup, ignore it so popup will remain visible
	var e = ev ? ev : window.event; var target = resolveTarget(e);
	var p=target; while (p) {
		if (hasClass(p,"popup") && (hasClass(p,"sticky")||config.options.chkStickyPopups)) break;
		else p=p.parentNode;
	}
	if (!p) // not in sticky popup (or sticky popups disabled)... use normal click handling
		Popup.onDocumentClick(ev);
	return true;
};
try{removeEvent(document,"click",Popup.onDocumentClick);}catch(e){};
try{addEvent(document,"click",Popup.stickyPopup_onDocumentClick);}catch(e){};
//}}}
/%
|Name|QuickEditToolbar|
|Source|http://www.TiddlyTools.com/#QuickEditToolbar|
|Version|2.3.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.2|
|Type|script|
|Requires|QuickEditPlugin, InlineJavascriptPlugin|
|Optional|QuickEdit_replace, QuickEdit_split, QuickEdit_link, QuickEdit_macro, QuickEdit_image, QuickEdit_tiddler, QuickEdit_file, QuickEdit_format, QuickEdit_sort|
|Overrides||
|Description|quickly insert TiddlyWiki tiddler links or common formatting sequences directly into tiddler content|

Usage (in EditTemplate): <div macro='tiddler QuickEditToolbar with: show'></div>

where "show" is an OPTIONAL keyword to force the toolbar to be displayed regardless of the current 'toggle' state

%/<<tiddler HideTiddlerTags>>/%

TOOLBAR DEFINITIONS BEGIN HERE...
= = = = = = = = = = = = = = = = =
%/{{hidden fine center quickEdit{
<script>
	// note: always show toolbar when directly viewing the tiddler containing the actual toolbar definition!
	var here=story.findContainingTiddler(place); if (here) var tid=here.getAttribute("tiddler");
	var show="$1"!="$"+"1"||config.options.chkShowQuickEdit||tid=="QuickEditToolbar" 
	place.style.display=show?"block":"none";
</script>/%
%/<<tiddler QuickEdit_replace>>/%
%/<<tiddler QuickEdit_split>>/%
%/<<tiddler QuickEdit_sort>>/%
%/<<tiddler QuickEdit_convert>>/%
%/ &nbsp;/% (SPACER)
%/<<tiddler QuickEdit_link>>/%
%/<<tiddler QuickEdit_insert>>/%
%/<<tiddler QuickEdit_macro>>/%
%/<<tiddler QuickEdit_image>>/%
%/<<tiddler QuickEdit_file>>/%
%/ &nbsp;/% (SPACER)
%/<<tiddler QuickEdit_format>>/%
%/<<tiddler QuickEdit_align>>/%
%/<<tiddler QuickEdit_color>>/%
%/<<tiddler QuickEdit_font>>/%
%/<<tiddler QuickEdit_custom>>/%
%/}}}
/%
|Name|QuickEdit_align|
|Source|http://www.TiddlyTools.com/#QuickEdit_align|
|Version|2.3.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.2|
|Type|script|
|Requires|QuickEditPlugin|
|Overrides||
|Description|definition for toolbar button for text alignment|

Usage:
QuickEditToolbar: <<tiddler QuickEdit_align>>
OR
EditTemplate: <span class='toolbar' macro='tiddler QuickEdit_align'></span>

**** ALIGNMENT ****
%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="align text"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('select text alignment...','');
	s.options[s.length]=new Option('left','left');
	s.options[s.length-1].title='{{left{...}}}';
	s.options[s.length]=new Option('center','center');
	s.options[s.length-1].title='{{center{...}}}';
	s.options[s.length]=new Option('right','right');
	s.options[s.length-1].title='{{right{...}}}';
	s.options[s.length]=new Option('justify','justify');
	s.options[s.length-1].title='{{justify{...}}}';
	s.options[s.length]=new Option('float left','floatleft');
	s.options[s.length-1].title='{{floatleft{...}}}';
	s.options[s.length]=new Option('float right','floatright');
	s.options[s.length-1].title='{{floatright{...}}}';
	s.size=s.length;
	s.onclick=function(){ if (!this.value.length) return;
		config.quickEdit.wrapSelection(this.button,'{{'+this.value+'{','}}}');
		Popup.remove(); return false;
	};
	s.onkeyup=function(ev){
		var k=(ev||window.event).keyCode; if (k==13) this.onclick(); if (k==27) Popup.remove();
	};
	Popup.show(p,false);
	s.focus();
	return config.quickEdit.processed(event);"
>align</a></html>
/%
|Name|QuickEdit_color|
|Source|http://www.TiddlyTools.com/#QuickEdit_color|
|Version|2.2.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.2|
|Type|script|
|Requires|QuickEditPlugin|
|Overrides||
|Description|definition of toolbar button for "color" command|

Usage:
QuickEditToolbar: <<tiddler QuickEdit_color>>
OR
EditTemplate: <span class='toolbar' macro='tiddler QuickEdit_color'></span>

**** COLOR ****
%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="text/background color - @@color:#RGB;background-color:#RGB;...@@"
onclick="var p=Popup.create(this,null,'popup sticky smallform'); if (!p) return false;
 	p.style.padding='2px';
	function hex(d) { return '0123456789ABCDEF'.substr(d,1); }
	var fg=createTiddlyElement(p,'select'); fg.button=this;
	fg.style.width='12em';
	fg.options[0]=new Option('text color...','');
	fg.options[1]=new Option('\xa0 or enter a value','_ask');
	fg.options[2]=new Option('\xa0 or use default color','');
	for (var r=0;r<16;r+=3) for (var g=0;g<16;g+=3) for (var b=0;b<16;b+=3) {
		var label=hex(r)+hex(g)+hex(b);
		fg.options[fg.length]=new Option(label,'#'+label);
		fg.options[fg.length-1].style.color='#'+label;
	}
	fg.onchange=function(){ var val=this.value;
		if (val=='_ask') { val=prompt('Enter a CSS color value');
		if (!val||!val.length) return false; }
		this.options[0].value=val; this.options[0].text=val.length?'text: '+val:'text color...';
		var bg=this.nextSibling;
		for (var i=3;i<bg.options.length;i++) bg.options[i].style.color=val;
		var preview=this.nextSibling.nextSibling.nextSibling;
		var t=config.quickEdit.getSelection(config.quickEdit.getField(this.button));
		t=t.replace(/^@@(color\:.+;)?(background-color\:.+;)?/,'').replace(/@@$/,'');
		if (!t.length) t='~AaBbCcDdEeFfGgHhIiJj 1234567890';
		var fg=this.value; if (fg.length) fg='color:'+fg+';';
		var bg=this.nextSibling.value; if (bg.length) bg='background-color:'+bg+';';
		if (fg.length||bg.length) t='@@'+fg+bg+t+'@@';
		removeChildren(preview); wikify(t,preview);
		this.selectedIndex=0; return false;
	};
	var bg=createTiddlyElement(p,'select'); bg.button=this;
	bg.style.width='12em';
	bg.options[0]=new Option('background color...','');
	bg.options[1]=new Option('\xa0 or enter a value','_ask');
	bg.options[2]=new Option('\xa0 or use default color','');
	for (var r=0;r<16;r+=3) for (var g=0;g<16;g+=3) for (var b=0;b<16;b+=3) {
		var label=hex(15-r)+hex(15-g)+hex(15-b);
		bg.options[bg.length]=new Option(label,'#'+label);
		bg.options[bg.length-1].style.backgroundColor='#'+label;
	}
	bg.onchange=function(){ var val=this.value;
		if (val=='_ask') { val=prompt('Enter a CSS color value');
		if (!val||!val.length) return false; }
		this.options[0].value=val;
		this.options[0].text=val.length?'background: '+val:'background color...';
		var fg=this.previousSibling;
		for (var i=3;i<fg.options.length;i++) fg.options[i].style.backgroundColor=val;
		var preview=this.nextSibling.nextSibling;
		var t=config.quickEdit.getSelection(config.quickEdit.getField(this.button));
		t=t.replace(/^@@(color\:.+;)?(background-color\:.+;)?/,'').replace(/@@$/,'');
		if (!t.length) t='~AaBbCcDdEeFfGgHhIiJj 1234567890';
		var fg=this.previousSibling.value; if (fg.length) fg='color:'+fg+';';
		var bg=this.value; if (bg.length) bg='background-color:'+bg+';';
		if (fg.length||bg.length) t='@@'+fg+bg+t+'@@';
		removeChildren(preview); wikify(t,preview);
		this.selectedIndex=0; return false;
	};
	var b=createTiddlyElement(p,'input',null,null,null,{type:'button'}); b.button=this;
	b.value='ok'; b.style.width='4em';
	b.onclick=function() {
		var fg=this.previousSibling.previousSibling.value; if (fg.length) fg='color:'+fg+';';
		var bg=this.previousSibling.value; if (bg.length) bg='background-color:'+bg+';';
		var t=config.quickEdit.getSelection(config.quickEdit.getField(this.button));
		t=t.replace(/^@@(color\:.+;)?(background-color\:.+;)?/,'').replace(/@@$/,'');
		if (fg.length||bg.length) config.quickEdit.setSelection(this.button,'@@'+fg+bg+t+'@@');
		Popup.remove(); return false;
	};
	var preview=createTiddlyElement(p,'div',null,'viewer'); var s=preview.style;
	s.border='1px solid'; s.margin='2px'; s.width='24em'; s.padding='3px'; s.MozBorderRadius='3px';
	s.overflow='hidden'; s.textAlign='center'; s.whiteSpace='normal';
	var t=config.quickEdit.getSelection(config.quickEdit.getField(this));
	wikify(t.length?t:'~AaBbCcDdEeFfGgHhIiJj 1234567890',preview);
	Popup.show(p,false);
	event.cancelBubble=true;if(event.stopPropagation)event.stopPropagation();return false;"
>color</a></html>
/%
|Name|QuickEdit_css|
|Source|http://www.TiddlyTools.com/#QuickEdit_css|
|Version|2.2.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.2|
|Type|script|
|Requires|QuickEditPlugin|
|Overrides||
|Description|definition for toolbar button for inline css and css class wrappers|

Usage:
QuickEditToolbar: <<tiddler QuickEdit_css>>
OR
EditTemplate: <span class='toolbar' macro='tiddler QuickEdit_css'></span>

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink"
	title="inline CSS styles - @@attr:value;attr:value;...@@"
	onclick="var css=prompt('Enter CSS attribute/value pairs (attr:val;attr:val;...;)','');
		if (!css) return false; /* cancelled by user */
		return config.quickEdit.wrapSelection(this,'@@'+css+';','@@');"
>style</a></html>/%

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink"
	title="CSS class wrapper - {{classname classname etc{...}}}"
	onclick="var c=prompt('Enter a CSS classname','');
		if (!c) return false; /* cancelled by user */
		return config.quickEdit.wrapSelection(this,'{{'+c+'{','}}}');"
>class</a></html>
/%
|Name|QuickEdit_equation|
|Source|http://latex.codecogs.com.com/integration/TiddlyWiki.php|
|Version|1.0.0|
|Author|Will Bateman - CodeCogs.com|
|License|http://www.codecogs.com|
|~CoreVersion|2.2|
|Type|script|
|Requires|QuickEditPlugin|
|Overrides||
|Description|definition for toolbar button for equation editing|

Usage:
QuickEditToolbar: <<tiddler QuickEdit_equation>>
OR
EditTemplate: <span class='toolbar' macro='tiddler QuickEdit_equation'></span>

**** INSERT EQUATION ****
%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink"
	title="embed an equation"
	onclick="config.quickEdit.id='eqntarget'; OpenLatexEditor('eqntarget','tw',''); "
>equation</a></html>
/%
|Name|QuickEdit_file|
|Source|http://www.TiddlyTools.com/#QuickEdit_file|
|Version|2.2.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.2|
|Type|script|
|Requires|QuickEditPlugin|
|Overrides||
|Description|definition for toolbar buttons that insert content from external files|

Usage:
QuickEditToolbar: <<tiddler QuickEdit_file>>
OR
EditTemplate: <span class='toolbar' macro='tiddler QuickEdit_file'></span>

**** INSERT FILE ****
%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink"
	title="insert content from an external text file"
	onclick="var fn=config.quickEdit.promptForFilename('Enter/select a text file',getLocalPath(document.location.href),'');
	if (!fn) return false; /* cancelled by user */
	var text=loadFile(getLocalPath(fn)); if (!text) { alert('Error: unable to read contents from \0027'+fn+'\0027'); return; }
	return config.quickEdit.setSelection(place,text);"
>file</a></html>
/%
|Name|QuickEdit_font|
|Source|http://www.TiddlyTools.com/#QuickEdit_font|
|Version|2.3.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.2|
|Type|script|
|Requires|QuickEditPlugin|
|Overrides||
|Description|definition for toolbar button that set font-family CSS attribute|

Usage:
QuickEditToolbar: <<tiddler QuickEdit_font>>
OR
EditTemplate: <span class='toolbar' macro='tiddler QuickEdit_macro'></span>

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="set font-family CSS attribute - @@font-family:facename;...@@"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('select a font family...','');
	var fonts=store.getTiddlerText('QuickEdit_fontList','').split('\n');
	for (var i=0; i<fonts.length; i++) {
		if (!fonts[i].length) continue;
		s.options[s.length]=new Option(fonts[i],fonts[i]);
		s.options[s.length-1].style.fontFamily=fonts[i];
	}
	s.options[s.length]=new Option('[Edit font list...]','_edit');
	s.options[s.length-1].title='enter fonts, one per line...';
	s.size=Math.min(s.length,15);
	s.onclick=function(){
		if (this.value=='_edit')
			story.displayTiddler(story.findContainingTiddler(this.button),'QuickEdit_fontList',DEFAULT_EDIT_TEMPLATE);			
		else
			config.quickEdit.wrapSelection(this.button,'@@font-family:\x22'+this.value+'\x22;','@@');
		Popup.remove(); return false;
	};
	s.onkeyup=function(ev){
		var k=(ev||window.event).keyCode; if (k==13) this.onclick(); if (k==27) Popup.remove();
	};
	Popup.show(p,false);
	s.focus();
	return config.quickEdit.processed(event);"
>font</a></html>
Arial,helvetica,sans-serif
Times New Roman,times,serif
Courier,monospaced
/%
|Name|QuickEdit_format|
|Source|http://www.TiddlyTools.com/#QuickEdit_format|
|Version|2.3.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.2|
|Type|script|
|Requires|QuickEditPlugin|
|Overrides||
|Description|definition for toolbar button for text formatting|

Usage:
QuickEditToolbar: <<tiddler QuickEdit_format>>
OR
EditTemplate: <span class='toolbar' macro='tiddler QuickEdit_format'></span>

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="plain text (remove ALL formatting)" accesskey="P" 
onclick="var e=config.quickEdit.getField(this); if (e) e.focus(); var txt=config.quickEdit.getSelection(e);
	config.quickEdit.setSelection(e,wikifyPlainText(txt)); return false;"
>&nbsp;~&nbsp;</a></html>/%

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="''bold''" accesskey="B"
onclick="config.quickEdit.wrapSelection(this,'\x27\x27','\x27\x27'); return false;"
>&nbsp;B&nbsp;</a></html>/%

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="//italics//" accesskey="I" 
onclick="config.quickEdit.wrapSelection(this,'//','//'); return false;"
>&nbsp;I&nbsp;</a></html>/%

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="__underline__" accesskey="U" 
onclick="config.quickEdit.wrapSelection(this,'__','__'); return false;"
>&nbsp;U&nbsp;</a></html>/%

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="--strikethrough--" accesskey="S" 
onclick="config.quickEdit.wrapSelection(this,'--','--'); return false;"
>&nbsp;S&nbsp;</a></html>/%

%/ &nbsp;/%  SPACER

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="format text"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('select text format...','');
	s.options[s.length]=new Option('CSS class wrapper','{{$1{,}}},Enter a CSS classname');
	s.options[s.length-1].title='CSS class wrapper - {{classname classname etc{...}}}';
	s.options[s.length]=new Option('inline CSS styles','@@$1,@@,Enter CSS (attribute:value;attribute:value;...;)');
	s.options[s.length-1].title='inline CSS styles - @@attr:value;attr:value;...@@';
	s.options[s.length]=new Option('heading 1','\n!,\n');
	s.options[s.length-1].title='H1 heading - !';
	s.options[s.length]=new Option('heading 2','\n!!,\n');
	s.options[s.length-1].title='H2 heading - !!';
	s.options[s.length]=new Option('heading 3','\n!!!,\n');
	s.options[s.length-1].title='H3 heading - !!!';
	s.options[s.length]=new Option('heading 4','\n!!!!,\n');
	s.options[s.length-1].title='H4 heading - !!!!';
	s.options[s.length]=new Option('heading 5','\n!!!!!,\n');
	s.options[s.length-1].title='H5 heading - !!!!!';
	s.options[s.length]=new Option('blockquote','\n\<\<\<\n,\n\<\<\<\n');
	s.options[s.length-1].title='indented blockquote - \<\<\<';
	s.options[s.length]=new Option('monospaced','{{{,}}}');
	s.options[s.length-1].title='inline monospaced text - {{{...}}}';
	s.options[s.length]=new Option('plain text','\n{{{\n,\n}}}\n');
	s.options[s.length-1].title='multi-line monospaced text box - {{{...}}}';
	s.options[s.length]=new Option('superscript','^^,^^');
	s.options[s.length-1].title='^^superscript^^';
	s.options[s.length]=new Option('subscript','~~,~~');
	s.options[s.length-1].title='~~subscript~~';
	s.options[s.length]=new Option('HTML','<html>,<\x2fhtml>');
	s.options[s.length-1].title='HTML syntax - <html>...<\x2fhtml>';
	s.options[s.length]=new Option('comment','/%,%/');
	s.options[s.length-1].title='comment (hidden content) - /%...%/';
	s.size=s.length;
	s.onclick=function(){ if (!this.value.length) return;
		var parts=this.value.split(',');
		var prefix=parts[0]; var suffix=parts[1]; var ask=parts[2];
		if (ask) {
			var val=prompt(ask); if (!val) { Popup.remove(); return false; }
			prefix=prefix.replace(/\$1/g,val); suffix=suffix.replace(/\$1/g,val);
		}
		config.quickEdit.wrapSelection(this.button,prefix,suffix);
		Popup.remove(); return false;
	};
	s.onkeyup=function(ev){
		var k=(ev||window.event).keyCode; if (k==13) this.onclick(); if (k==27) Popup.remove();
	};
	Popup.show(p,false);
	s.focus();
	return config.quickEdit.processed(event);"
>format</a></html>
/%
|Name|QuickEdit_image|
|Source|http://www.TiddlyTools.com/#QuickEdit_image|
|Version|2.2.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.2|
|Type|script|
|Requires|QuickEditPlugin|
|Overrides||
|Description|definition for toolbar buttons that insert embedded image references|

Usage:
QuickEditToolbar: <<tiddler QuickEdit_image>>
OR
EditTemplate: <span class='toolbar' macro='tiddler QuickEdit_image'></span>

**** INSERT IMAGE ****
%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
	title="embed an image (jpg/gif/png) - [img[tooltip|URL]] or [img[tooltip|path/to/file.ext]]"
	onclick="var fn=config.quickEdit.promptForFilename('Enter/select an image file',getLocalPath(document.location.href),'');
	if (!fn) return false;  /* cancelled by user */
	var tip=prompt('Enter a tooltip for this image',''); if (!tip) tip=''; else tip+='|';
	return config.quickEdit.setSelection(this,'[img['+tip+fn+']]');"
>image</a></html>
/%
|Name|QuickEdit_link|
|Source|http://www.TiddlyTools.com/#QuickEdit_link|
|Version|2.3.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.2|
|Type|script|
|Requires|QuickEditPlugin|
|Overrides||
|Description|toolbar button that inserts a ~PrettyTiddlyLink to a tiddler or external file|

Usage:
QuickEditToolbar: <<tiddler QuickEdit_link>>
OR
EditTemplate: <span class='toolbar' macro='tiddler QuickEdit_link'></span>

**** INSERT LINK ****
%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="add a link to a tiddler or external file - [[link text|TiddlerName]]"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';

	var s2=createTiddlyElement(p,'select'); s2.title='filter by tag';
	s2.options[0]=new Option('filter by tag...','');
	s2.options[s2.length]=new Option('[all tiddlers]','');
	var tags=store.getTags();
	for (var t=0; t<tags.length; t++) s2.options[s2.length]=new Option(tags[t][0],tags[t][0]);
	s2.onchange=function(){
		var tag=this.value;
		var tids=tag.length?store.reverseLookup('tags',tag,true):store.reverseLookup('tags','excludeLists');
		var list=this.nextSibling.nextSibling;
		while (list.length) list.options[0]=null;
		var prompt='select a tiddler or file...';
		if (tag.length) prompt='select a tagged tiddler ['+tids.length+' matches]...';
		list.options[0]=new Option(prompt,'');
		if (!tag.length) list.options[list.length]=new Option('[browse for file...]','_file');
		for (var t=0; t<tids.length; t++) {
			list.options[list.length]=new Option(tids[t].title,tids[t].title);
			list.options[list.length-1].title=tids[t].getSubtitle();
		}
		list.size=Math.min(list.length,10);
		list.selectedIndex=0; list.focus();
		this.style.width=list.offsetWidth+'px';
		if (!tag.length) this.selectedIndex=0;
	};
	createTiddlyElement(p,'br');

	var s=createTiddlyElement(p,'select'); s.button=this;
	s.title='select a tiddler or file';
	s.options[0]=new Option('select a tiddler or file...','');
	s.options[s.length]=new Option('[browse for file...]','_file');
	var tids=store.reverseLookup('tags','excludeLists');
	for (var t=0; t<tids.length; t++) {
		s.options[s.length]=new Option(tids[t].title,tids[t].title);
		s.options[s.length-1].title=tids[t].getSubtitle();
	}
	s.size=Math.min(s.length,10);
	s.onclick=function(){ if (!this.value.length) return false;
		var title=this.value; var txt=title;
		if (title=='_file') {
			title=config.quickEdit.promptForFilename('Select a file',
				getLocalPath(document.location.href),'');
			if (!title) { this.selectedIndex=0; this.focus(); return false; }
			var txt=title.substr(title.lastIndexOf('/')+1);
		}
		var txt=prompt('Enter the text to display for this link',txt);
		if (!txt) { this.selectedIndex=0; this.focus(); return false; }
		config.quickEdit.setSelection(this.button,'[['+txt+'|'+title+']]');
		Popup.remove(); return false;
	};
	s.onkeyup=function(ev){
		var k=(ev||window.event).keyCode; if (k==13) this.onclick(); if (k==27) Popup.remove();
	};
	Popup.show(p,false);
	s2.style.width=s.offsetWidth+'px';
	s.focus();
	return config.quickEdit.processed(event);"
>link</a></html>
/%
|Name|QuickEdit_macro|
|Source|http://www.TiddlyTools.com/#QuickEdit_macro|
|Version|2.3.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.2|
|Type|script|
|Requires|QuickEditPlugin|
|Overrides||
|Description|definition for toolbar button that inserts macros with guide text|

Usage:
QuickEditToolbar: <<tiddler QuickEdit_macro>>
OR
EditTemplate: <span class='toolbar' macro='tiddler QuickEdit_macro'></span>

**** INSERT MACRO ****
The "macro" command can include optional "guideText" for any given macro, as an aide to entering macro parameters, by embedding placeholders or recommended default values into the macro syntax that is inserted into your tiddler content.  For built-in TW core macros, this guideText is defined below.  You can add guideText to your own plugin-defined macros by using the following javascript syntax: config.macros.macroName.guideText="guide text goes here";
%/<<tiddler {{
	/* SET MACRO GUIDE TEXT (for built-in core macros) (11/17 - TBD - incomplete list) */
	config.macros.edit.guideText="fieldname #rows";
	config.macros.view.guideText="fieldname (link,wikified,date) format";
	config.macros.slider.guideText="cookie TiddlerName label tooltip";
	config.macros.option.guideText="(txtCookieName,chkCookieName)";
	config.macros.tiddler.guideText="TiddlerName with: params...";
	""; /* must return blank to suppress output */ }}>>/%

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="add a macro - \<\<macroName ...\>\>"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('select a macro...','');
	var macros=[]; for (var m in config.macros) if (config.macros[m].handler) macros.push(m); macros.sort();
	for (var i=0; i<macros.length; i++) { var m=macros[i];
		var help=config.macros[m].guideText; if (!help) help=''; else help=' '+help;
		s.options[s.length]=new Option(m,m+help);
		s.options[s.length-1].title='\<\<'+m+help+'\>\>';
	}
	s.size=Math.min(s.length,15);
	s.onclick=function(){ if (!this.value.length) return;
		config.quickEdit.setSelection(this.button,'\<\<'+this.value+'\>\>');
		Popup.remove(); return false;
	};
	s.onkeyup=function(ev){
		var k=(ev||window.event).keyCode; if (k==13) this.onclick(); if (k==27) Popup.remove();
	};
	Popup.show(p,false);
	s.focus();
	return config.quickEdit.processed(event);"
>macro</a></html>
/%
|Name|QuickEdit_replace|
|Source|http://www.TiddlyTools.com/#QuickEdit_replace|
|Version|2.2.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.2|
|Type|script|
|Requires|QuickEditPlugin|
|Overrides||
|Description|definition for find/replace toolbar button|

Usage:
QuickEditToolbar: <<tiddler QuickEdit_replace>>
OR
EditTemplate: <span class='toolbar' macro='tiddler QuickEdit_replace'></span>

**** FIND/REPLACE/NEXT/ALL ****
%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="find/replace selected text with replacement text"
onclick="var here=story.findContainingTiddler(this); if (!here) return false;
	var e=config.quickEdit.getField(here);
	var s=config.quickEdit.getSelection(e); 
	var p=Popup.create(this,null,'popup sticky smallform'); if (!p) return false;
	var t=createTiddlyElement(p,'input'); t.onfocus=function(){this.select()};
	t.value=s.length?s:'enter target text';
	var r=createTiddlyElement(p,'input'); r.onfocus=function(){this.select()};
	r.value='enter replacement text';
	var tid=here.getAttribute('tiddler');
	var b=createTiddlyElement(p,'button',null,null,'?',{tid:tid});
	b.style.width='2em';
	b.title='FIND/FIND NEXT target text';
	b.onclick=function(ev) { /* FIND */
		var e=story.getTiddlerField(this.getAttribute('tid'),'text');
		if (!e||e.getAttribute('edit')!='text') return;
		var t=this.previousSibling.previousSibling;
		e.focus();
		if (e.setSelectionRange) { /* MOZ */
			var newstart=e.value.indexOf(t.value,e.selectionStart+1);
			if (newstart==-1) newstart=e.value.indexOf(t.value); /* wrap around */
			if (newstart==-1) { alert('\u0022'+t.value+'\u0022 not found'); t.focus(); return; }
			e.setSelectionRange(newstart,newstart+t.value.length);
			var linecount=e.value.split('\n').length;
			var thisline=e.value.substr(0,e.selectionStart).split('\n').length;
			e.scrollTop=Math.floor((thisline-1-e.rows/2)*e.scrollHeight/linecount);
		} else if (document.selection) { /* IE */
			var range=document.selection.createRange();
			if(range.parentElement()==e) {
				range.collapse(false);
				var found=false; try{found=range.findText(t.value,e.value.length,4)}catch(e){}
				if (found) range.select();
				else { alert('\u0022'+t.value+'\u0022 not found'); t.focus(); }
			}
		}
	};
	b=createTiddlyElement(p,'button',null,null,'=',{tid:tid});
	b.style.width='2em';
	b.title='REPLACE selected text';
	b.onclick=function(ev) { /* REPLACE */
		var e=story.getTiddlerField(this.getAttribute('tid'),'text');
		if (!e||e.getAttribute('edit')!='text') return;
		var t=this.previousSibling.previousSibling.previousSibling;
		var r=this.previousSibling.previousSibling;
		if (   (e.selectionStart!==undefined && e.selectionEnd==e.selectionStart)
		    || (document.selection && document.selection.createRange().text==''))
			this.previousSibling.click(); /* no selection... do FIND first */
		if (   (e.selectionStart!==undefined && e.selectionEnd==e.selectionStart)
		    || (document.selection && document.selection.createRange().text==''))
			{ t.focus(); return; } /* still no selection... goto target input */
		e.focus(); replaceSelection(e,r.value);
	};
	b=createTiddlyElement(p,'button',null,null,'+',{tid:tid});
	b.style.width='2em';
	b.title='REPLACE selected text AND FIND NEXT target text';
	b.onclick=function(ev) { /* REPLACE and FIND NEXT */
		this.previousSibling.click();
		this.previousSibling.previousSibling.click();
	};
	b=createTiddlyElement(p,'button',null,null,'!',{tid:tid});
	b.style.width='2em';
	b.title='REPLACE ALL occurrences of target text';
	b.onclick=function(ev) { /* REPLACE ALL */
		var e=story.getTiddlerField(this.getAttribute('tid'),'text');
		if (!e||e.getAttribute('edit')!='text') return;
		var t=this.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling;
		var r=this.previousSibling.previousSibling.previousSibling.previousSibling;
		if (!t.value.length) { alert('Please enter the target text'); t.focus(); return; }
		var m='This will replace all occurences of:\n\n';
		m+='\''+t.value+'\'\n\nwith:\n\n\''+r.value+'\'\n\nAre you sure?';
		if (!confirm(m)) { r.focus(); r.select(); return; }
		e.value=e.value.replace(new RegExp(t.value.escapeRegExp(),'gm'),r.value);
		e.focus(); e.select(); Popup.remove();
	};
	Popup.show(p,false);
	if (!s.length) {t.focus();t.select()} else {r.focus();r.select()}
	event.cancelBubble=true;if(event.stopPropagation)event.stopPropagation();return false;"
>replace</a></html>
/%
|Name|QuickEdit_sort|
|Source|http://www.TiddlyTools.com/#QuickEdit_sort|
|Version|2.3.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.2|
|Type|script|
|Requires|QuickEditPlugin|
|Overrides||
|Description|definition for toolbar "sort" button|

Usage:
QuickEditToolbar: <<tiddler QuickEdit_sort>>
OR
EditTemplate: <span class='toolbar' macro='tiddler QuickEdit_sort'></span>

**** SORT LINES ****
%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="sort lines of text"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('select sort order...','');
	s.options[s.length]=new Option('ascending','A');
	s.options[s.length-1].title='ascending';
	s.options[s.length]=new Option('descending','D');
	s.options[s.length-1].title='descending';
	s.size=s.length;
	s.onclick=function(){ if (!this.value.length) return;
		var e=config.quickEdit.getField(this.button); if (!e) return false;
		var lines=config.quickEdit.getSelection(e).split('\n').sort();
		if (this.value=='D') lines=lines.reverse();
		replaceSelection(e,lines.join('\n'));
		e.focus();
		Popup.remove(); return false;
	};
	s.onkeyup=function(ev){
		var k=(ev||window.event).keyCode; if (k==13) this.onclick(); if (k==27) Popup.remove();
	};
	Popup.show(p,false);
	s.focus();
	return config.quickEdit.processed(event);"
>sort</a></html>
/%
|Name|QuickEdit_split|
|Source|http://www.TiddlyTools.com/#QuickEdit_split|
|Version|2.2.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.2|
|Type|script|
|Requires|QuickEditPlugin|
|Overrides||
|Description|toolbar button: split selected content into separate tiddler|

Based on ideas originally developed by YannPerrin
(http://yann.perrin.googlepages.com/twkd.html#easySlicer)

Usage
QuickEditToolbar: <<tiddler QuickEdit_split>>
OR
EditTemplate:
<div class='toolbar'>
	<span macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></span>
	<span macro='tiddler QuickEdit_split'></span>
</div>

**** SPLIT TIDDLER ****
%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="move selection to new tiddler and insert link, embedded tiddler, or slider"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	p.style.whiteSpace='nowrap';
	var i=createTiddlyElement(p,'input');
	i.defaultValue='Enter a new tiddler title';
	i.onfocus=function(){this.select()};
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('select type...','');
	s.options[0].title='select split type';
	s.options[1]=new Option('link','link');
	s.options[1].title='replace with [[TiddlerName]]';
	s.options[2]=new Option('embed','embed');
	s.options[2].title='replace with \<\<tiddler TiddlerName\>\>';
	s.options[3]=new Option('slider','slider');
	s.options[3].title='replace with \<\<slider \u0022\u0022 [[TiddlerName]] [[label]] [[tooltip]]\>\>';
	s.onchange=function(){
		if (s.previousSibling.value==s.previousSibling.defaultValue)
			{ alert('A tiddler title is required'); s.selectedIndex=0; s.previousSibling.focus(); return false; }
		var tid=s.previousSibling.value;
		if (store.tiddlerExists(tid) && !confirm(config.messages.overwriteWarning.format([tid])))
			{ s.previousSibling.focus(); return false; }
		switch(s.value) {
			case 'link':
				var newtxt='[['+tid+']]';
				break;
			case 'embed':
				var newtxt='\<\<tiddler [['+tid+']]\>\>';
				break;
			case 'slider':
				var label=prompt('Enter a slider label',tid);
				if (!label) { Popup.remove(); return false; }
				var tip=prompt('Enter a slider tooltip',label);
				if (!tip) { Popup.remove(); return false; }
				var newtxt='\<\<slider \u0022\u0022 [['+tid+']] [['+label+']] [['+tip+']]\>\>';
				break;
		}
		var txt=config.quickEdit.getSelection(config.quickEdit.getField(this.button));
		store.saveTiddler(tid,tid,txt,config.options.txtUserName,new Date(),[],{});
		story.displayTiddler(story.findContainingTiddler(this.button),tid);
		config.quickEdit.setSelection(this.button,newtxt);
		Popup.remove(); return false;
	};
	Popup.show(p,false);
	event.cancelBubble=true;if(event.stopPropagation)event.stopPropagation();return false;"
>split</a></html>
/%
|Name|QuickEdit_tiddler|
|Source|http://www.TiddlyTools.com/#QuickEdit_tiddler|
|Version|2.2.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.2|
|Type|script|
|Requires|QuickEditPlugin|
|Overrides||
|Description|definition for toolbar button that inserts content from another tiddler|

Usage:
QuickEditToolbar: <<tiddler QuickEdit_tiddler>>
OR
EditTemplate: <span class='toolbar' macro='tiddler QuickEdit_tiddler'></span>

**** INSERT TIDDLER ****
%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink"
title="copy content from another tiddler"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('select a tiddler...','');
	s.onchange=function(){
		var txt=store.getTiddlerText(this.value);
		if (!txt) { displayMessage(this.value+' not found'); this.selectedIndex=0; this.focus(); return false; }
		config.quickEdit.setSelection(this.button,txt);
		Popup.remove(); return false;
	};
	var tids=store.getTiddlers('title');
	for (var t=0; t<tids.length; t++) {
		s.options[s.length]=new Option(tids[t].title,tids[t].title);
		s.options[s.length-1].title=tids[t].getSubtitle();
	}
	var s=createTiddlyElement(p,'select');
	s.options[0]=new Option('match tag...','');
	s.onchange=function(){
		var tag=this.value;
		var tids=tag.length?store.getTaggedTiddlers(tag,'title'):store.getTiddlers('title');
		var list=this.previousSibling;
		while (list.length) list.options[0]=null;
		var prompt='select a '+(tag.length?'tagged ':'')+'tiddler'+(tag.length?(' ['+tids.length+' matches]'):'')+'...';
		list.options[0]=new Option(prompt,'');
		for (var t=0; t<tids.length; t++) {
			list.options[list.length]=new Option(tids[t].title,tids[t].title);
			list.options[list.length-1].title=tids[t].getSubtitle();
		}
	};
	var tags=store.getTags();
	for (var t=0; t<tags.length; t++) s.options[s.length]=new Option(tags[t][0],tags[t][0]);
	Popup.show(p,false);
	event.cancelBubble=true;if(event.stopPropagation)event.stopPropagation();return false;"
>tiddler</a></html>
/***
|Name:|QuickOpenTagPlugin|
|Description:|Changes tag links to make it easier to open tags as tiddlers|
|Version:|3.0.1 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#QuickOpenTagPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
config.quickOpenTag = {

	dropdownChar: (document.all ? "\u25bc" : "\u25be"), // the little one doesn't work in IE?

	createTagButton: function(place,tag,excludeTiddler) {
		// little hack so we can do this: <<tag PrettyTagName|RealTagName>>
		var splitTag = tag.split("|");
		var pretty = tag;
		if (splitTag.length == 2) {
			tag = splitTag[1];
			pretty = splitTag[0];
		}
		
		var sp = createTiddlyElement(place,"span",null,"quickopentag");
		createTiddlyText(createTiddlyLink(sp,tag,false),pretty);
		
		var theTag = createTiddlyButton(sp,config.quickOpenTag.dropdownChar,
                        config.views.wikified.tag.tooltip.format([tag]),onClickTag);
		theTag.setAttribute("tag",tag);
		if (excludeTiddler)
			theTag.setAttribute("tiddler",excludeTiddler);
    		return(theTag);
	},

	miniTagHandler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var tagged = store.getTaggedTiddlers(tiddler.title);
		if (tagged.length > 0) {
			var theTag = createTiddlyButton(place,config.quickOpenTag.dropdownChar,
                        	config.views.wikified.tag.tooltip.format([tiddler.title]),onClickTag);
			theTag.setAttribute("tag",tiddler.title);
			theTag.className = "miniTag";
		}
	},

	allTagsHandler: function(place,macroName,params) {
		var tags = store.getTags(params[0]);
		var filter = params[1]; // new feature
		var ul = createTiddlyElement(place,"ul");
		if(tags.length == 0)
			createTiddlyElement(ul,"li",null,"listTitle",this.noTags);
		for(var t=0; t<tags.length; t++) {
			var title = tags[t][0];
			if (!filter || (title.match(new RegExp('^'+filter)))) {
				var info = getTiddlyLinkInfo(title);
				var theListItem =createTiddlyElement(ul,"li");
				var theLink = createTiddlyLink(theListItem,tags[t][0],true);
				var theCount = " (" + tags[t][1] + ")";
				theLink.appendChild(document.createTextNode(theCount));
				var theDropDownBtn = createTiddlyButton(theListItem," " +
					config.quickOpenTag.dropdownChar,this.tooltip.format([tags[t][0]]),onClickTag);
				theDropDownBtn.setAttribute("tag",tags[t][0]);
			}
		}
	},

	// todo fix these up a bit
	styles: [
"/*{{{*/",
"/* created by QuickOpenTagPlugin */",
".tagglyTagged .quickopentag, .tagged .quickopentag ",
"	{ margin-right:1.2em; border:0px solid #eee; padding:2px; padding-right:0px; padding-left:1px; }",
".quickopentag .tiddlyLink { padding:2px; padding-left:3px; }",
".quickopentag a.button { padding:1px; padding-left:2px; padding-right:2px;}",
"/* extra specificity to make it work right */",
"#displayArea .viewer .quickopentag a.button, ",
"#displayArea .viewer .quickopentag a.tiddyLink, ",
"#mainMenu .quickopentag a.tiddyLink, ",
"#mainMenu .quickopentag a.tiddyLink ",
"	{ border:0px solid black; }",
"#displayArea .viewer .quickopentag a.button, ",
"#mainMenu .quickopentag a.button ",
"	{ margin-left:0px; padding-left:2px; }",
"#displayArea .viewer .quickopentag a.tiddlyLink, ",
"#mainMenu .quickopentag a.tiddlyLink ",
"	{ margin-right:0px; padding-right:0px; padding-left:0px; margin-left:0px; }",
"a.miniTag {font-size:150%;} ",
"#mainMenu .quickopentag a.button ",
"	/* looks better in right justified main menus */",
"	{ margin-left:0px; padding-left:2px; margin-right:0px; padding-right:0px; }", 
"#topMenu .quickopentag { padding:0px; margin:0px; border:0px; }",
"#topMenu .quickopentag .tiddlyLink { padding-right:1px; margin-right:0px; }",
"#topMenu .quickopentag .button { padding-left:1px; margin-left:0px; border:0px; }",
"/*}}}*/",
		""].join("\n"),

	init: function() {
		// we fully replace these builtins. can't hijack them easily
		window.createTagButton = this.createTagButton;
		config.macros.allTags.handler = this.allTagsHandler;
		config.macros.miniTag = { handler: this.miniTagHandler };
		config.shadowTiddlers["QuickOpenTagStyles"] = this.styles;
		store.addNotification("QuickOpenTagStyles",refreshStyles);
	}
}

config.quickOpenTag.init();

//}}}
{{centrado {
[img[EscudoEthicsSalamanca64.png]]
{{fuente18{Grupo de Ética}}}
{{fuente16{Grupo de excelencia ~GR41}}}
{{fuente12{Facultad de Filosofía<br>Universidad de Salamanca<br>Edificio FES, Campus M. de Unamuno<br>Salamanca 37007}}}
}}}
!Teresa López de la Vieja
<<tiddler [[Teresa López de la Vieja]]>>
!Enrique Bonete
<<tiddler [[Enrique Bonete]]>>
!Carmen Velayos
<<tiddler [[Carmen Velayos]]>>
!David ~Rodríguez-Arias
<<tiddler [[David Rodríguez-Arias]]>>
!Mar Cabezas
<<tiddler [[Mar Cabezas]]>>
Name: Reasoning Well
Background: #eee
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #cff
SecondaryLight: #9cd
SecondaryMid: #4ab
SecondaryDark: #148
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
Name: Red (Mptw)
Background: #fff
Foreground: #000
PrimaryPale: #eaa
PrimaryLight: #c55
PrimaryMid: #711
PrimaryDark: #500
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/***
|Name:|RenameTagsPlugin|
|Description:|Allows you to easily rename or delete tags across multiple tiddlers|
|Version:|3.0 ($Rev: 5501 $)|
|Date:|$Date: 2008-06-10 23:11:55 +1000 (Tue, 10 Jun 2008) $|
|Source:|http://mptw.tiddlyspot.com/#RenameTagsPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
Rename a tag and you will be prompted to rename it in all its tagged tiddlers.
***/
//{{{
config.renameTags = {

	prompts: {
		rename: "Rename the tag '%0' to '%1' in %2 tidder%3?",
		remove: "Remove the tag '%0' from %1 tidder%2?"
	},

	removeTag: function(tag,tiddlers) {
		store.suspendNotifications();
		for (var i=0;i<tiddlers.length;i++) {
			store.setTiddlerTag(tiddlers[i].title,false,tag);
		}
		store.resumeNotifications();
		store.notifyAll();
	},

	renameTag: function(oldTag,newTag,tiddlers) {
		store.suspendNotifications();
		for (var i=0;i<tiddlers.length;i++) {
			store.setTiddlerTag(tiddlers[i].title,false,oldTag); // remove old
			store.setTiddlerTag(tiddlers[i].title,true,newTag);  // add new
		}
		store.resumeNotifications();
		store.notifyAll();
	},

	storeMethods: {

		saveTiddler_orig_renameTags: TiddlyWiki.prototype.saveTiddler,

		saveTiddler: function(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created) {
			if (title != newTitle) {
				var tagged = this.getTaggedTiddlers(title);
				if (tagged.length > 0) {
					// then we are renaming a tag
					if (confirm(config.renameTags.prompts.rename.format([title,newTitle,tagged.length,tagged.length>1?"s":""])))
						config.renameTags.renameTag(title,newTitle,tagged);

					if (!this.tiddlerExists(title) && newBody == "")
						// dont create unwanted tiddler
						return null;
				}
			}
			return this.saveTiddler_orig_renameTags(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created);
		},

		removeTiddler_orig_renameTags: TiddlyWiki.prototype.removeTiddler,

		removeTiddler: function(title) {
			var tagged = this.getTaggedTiddlers(title);
			if (tagged.length > 0)
				if (confirm(config.renameTags.prompts.remove.format([title,tagged.length,tagged.length>1?"s":""])))
					config.renameTags.removeTag(title,tagged);
			return this.removeTiddler_orig_renameTags(title);
		}

	},

	init: function() {
		merge(TiddlyWiki.prototype,this.storeMethods);
	}
}

config.renameTags.init();

//}}}
<<tiddler [[LibroTemplate]] with:'Repensar el fin de la vida'>>/%
Foto: [img[Enrique Bonete: Repensar el fin de la vida, 2007|FotosLibros/RepensarFinVida.jpg][Repensar el fin de la vida]]

Titulo: Repensar el fin de la vida. Sentido ético del morir

Autores: [[Enrique Bonete]]

OtrosDatos: Ediciones Internacionales Universitarias, 2007

Descripcion: En una cultura como la nuetra, que oculta la precariedad y finitud de la existencia humana, este original libro constituye no sólo un atrevimiento intelectual, sino sobre todo un estímulo para "repensar" a fondo el sentido de la vida, que no puede obviar la pregunta por el "fin".<br>¿Quién soy yo? ¿Para qué vivo? ¿Cómo saborear la felicidad cotidiana? ¿Cómo vivir asumiendo la fragilidad? ¿Qué será de mí?... son algunos de los interrogantes que con sincera pluma el autor de esta obra replantea de modo tan personal como válido para cualquier ser humano que no cierre los ojos al implacable transcurrir del tiempo.<br>La claridad con la que estas páginas tratan inquietantes y profundas cuestiones en torno al vivir y morir, conducirá al lector sensible a tomar en serio su particular libertad y a convertir su ''existencia-con-otros'' en una tarea ética encaminada hacia el "más allá" del fin.
%/
<<tiddler [[LibroTemplate]] with:'Responsabilidad política y medio ambiente'>>/%
Foto: [img[Gómez-Heras & Velayos (eds.): Responsabilidad política y medio ambiente, 2007|FotosLibros/ResponsabilidadPoli­ticaMedioAmbiente.jpg][Responsabilidad política y medio ambiente]]

Titulo: Responsabilidad política y medio ambiente

Autores: José Mª García ~Gómez-Heras, [[Carmen Velayos]] (eds.)

OtrosDatos: Biblioteca Nueva, 2007

Descripcion: E. U. von Weizsácker afirmó hace décadas: ««El siglo XXI será el siglo del medio ambiente.» Ortega y Gasset lo habría repetido a su manera hoy día: «Es el tema de nuestro tiempo.» De hecho, el problema ecológico preocupa a filósofos, científicos, economistas, gestores públicos... A él se asocia un nuevo concepto de responsabilidad, que se proyecta sobre la Ética, el Derecho, la Biología y, por supuesto, Política. El presente volumen, coordinado por los profesores J. M.ª G.ª Gómez-Heras y C. Velayos Castelo, aborda esta temática una vez más, acentuando en esta ocasión su dimensión política.
%/
|Name|Rounded|
|Description|Custom Theme with some rounded corners (Firefox only)|
|ViewTemplate|CustomTheme##ViewTemplate|
|PageTemplate|CustomTheme##PageTemplate|
|StyleSheet|##StyleSheet|

!StyleSheet
/*{{{*/

[[CustomTheme##StyleSheet]]

.tiddler,
.sliderPanel,
.button,
.tiddlyLink,
.tabContents
{ -moz-border-radius: 1em; }

.tab {
	-moz-border-radius-topleft: 0.5em;
	-moz-border-radius-topright: 0.5em;
}
#topMenu {
	-moz-border-radius-bottomleft: 2em;
	-moz-border-radius-bottomright: 2em;
}

/*}}}*/
/***
|Name:|SelectThemePlugin|
|Description:|Lets you easily switch theme and palette|
|Version:|1.0.1 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#SelectThemePlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
* Borrows largely from ThemeSwitcherPlugin by Martin Budden http://www.martinswiki.com/#ThemeSwitcherPlugin
* Theme is cookie based. But set a default by setting config.options.txtTheme in MptwConfigPlugin (for example)
* Palette is not cookie based. It actually overwrites your ColorPalette tiddler when you select a palette, so beware. 
!Usage
* {{{<<selectTheme>>}}} makes a dropdown selector
* {{{<<selectPalette>>}}} makes a dropdown selector
* {{{<<applyTheme>>}}} applies the current tiddler as a theme
* {{{<<applyPalette>>}}} applies the current tiddler as a palette
* {{{<<applyTheme TiddlerName>>}}} applies TiddlerName as a theme
* {{{<<applyPalette TiddlerName>>}}} applies TiddlerName as a palette
***/
//{{{

config.macros.selectTheme = {
	label: {
      		selectTheme:"select theme",
      		selectPalette:"select palette"
	},
	prompt: {
		selectTheme:"Select the current theme",
		selectPalette:"Select the current palette"
	},
	tags: {
		selectTheme:'systemTheme',
		selectPalette:'systemPalette'
	}
};

config.macros.selectTheme.handler = function(place,macroName)
{
	var btn = createTiddlyButton(place,this.label[macroName],this.prompt[macroName],this.onClick);
	// want to handle palettes and themes with same code. use mode attribute to distinguish
	btn.setAttribute('mode',macroName);
};

config.macros.selectTheme.onClick = function(ev)
{
	var e = ev ? ev : window.event;
	var popup = Popup.create(this);
	var mode = this.getAttribute('mode');
	var tiddlers = store.getTaggedTiddlers(config.macros.selectTheme.tags[mode]);
	// for default
	if (mode == "selectPalette") {
		var btn = createTiddlyButton(createTiddlyElement(popup,'li'),"(default)","default color palette",config.macros.selectTheme.onClickTheme);
		btn.setAttribute('theme',"(default)");
		btn.setAttribute('mode',mode);
	}
	for(var i=0; i<tiddlers.length; i++) {
		var t = tiddlers[i].title;
		var name = store.getTiddlerSlice(t,'Name');
		var desc = store.getTiddlerSlice(t,'Description');
		var btn = createTiddlyButton(createTiddlyElement(popup,'li'), name?name:t, desc?desc:config.macros.selectTheme.label['mode'], config.macros.selectTheme.onClickTheme);
		btn.setAttribute('theme',t);
		btn.setAttribute('mode',mode);
	}
	Popup.show();
	return stopEvent(e);
};

config.macros.selectTheme.onClickTheme = function(ev)
{
	var mode = this.getAttribute('mode');
	var theme = this.getAttribute('theme');
	if (mode == 'selectTheme')
		story.switchTheme(theme);
	else // selectPalette
		config.macros.selectTheme.updatePalette(theme);
	return false;
};

config.macros.selectTheme.updatePalette = function(title)
{
	if (title != "") {
		store.deleteTiddler("ColorPalette");
		if (title != "(default)")
			store.saveTiddler("ColorPalette","ColorPalette",store.getTiddlerText(title),
					config.options.txtUserName,undefined,"");
		refreshAll();
		if(config.options.chkAutoSave)
			saveChanges(true);
	}
};

config.macros.applyTheme = {
	label: "apply",
	prompt: "apply this theme or palette" // i'm lazy
};

config.macros.applyTheme.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	var useTiddler = params[0] ? params[0] : tiddler.title;
	var btn = createTiddlyButton(place,this.label,this.prompt,config.macros.selectTheme.onClickTheme);
	btn.setAttribute('theme',useTiddler);
	btn.setAttribute('mode',macroName=="applyTheme"?"selectTheme":"selectPalette"); // a bit untidy here
}

config.macros.selectPalette = config.macros.selectTheme;
config.macros.applyPalette = config.macros.applyTheme;

config.macros.refreshAll = { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
	createTiddlyButton(place,"refresh","refresh layout and styles",function() { refreshAll(); });
}};

//}}}
{{derecha {
<<toggleSideBar cerrar>>
----
<<fontSize>>
}}}<<search>>
<<tabs txtMainTab "Nube" "Nube de palabras clave" TagCloud "Lista" "Lista de tiddlers" TabAll "fechas" "Lista de todas las entradas por fecha de modificación" TabTimeline "Tags" "Todas las etiquetas" TabTags "Más" "Más listas" TabMore>>
/***
|''Name''|SimpleSearchPlugin|
|''Description''|displays search results as a simple list of matching tiddlers|
|''Authors''|FND|
|''Version''|0.4.0|
|''Status''|stable|
|''Source''|http://devpad.tiddlyspot.com/#SimpleSearchPlugin|
|''CodeRepository''|http://svn.tiddlywiki.org/Trunk/contributors/FND/plugins/SimpleSearchPlugin.js|
|''License''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''Keywords''|search|
!Revision History
!!v0.2.0 (2008-08-18)
* initial release
!!v0.3.0 (2008-08-19)
* added Open All button (renders Classic Search option obsolete)
* sorting by relevance (title matches before content matches)
!!v0.4.0 (2008-08-26)
* added tag matching
!To Do
* tag matching optional
* animations for container creation and removal
* when clicking on search results, do not scroll to the respective tiddler (optional)
* use template for search results
!Code
***/
//{{{
if(!version.extensions.SimpleSearchPlugin) { //# ensure that the plugin is only installed once
version.extensions.SimpleSearchPlugin = { installed: true };

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

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

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

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

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

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

} //# end of "install only once"
//}}}
/***
|Name|SinglePageModePlugin|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Documentation|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|Version|2.9.6|
|Author|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.10.17 [2.9.6] changed chkSinglePageAutoScroll default to false
| Please see [[SinglePageModePluginInfo]] for previous revision details |
2005.08.15 [1.0.0] Initial Release.  Support for BACK/FORWARD buttons adapted from code developed by Clint Checketts.
<<<
!!!!!Code
***/
//{{{
version.extensions.SinglePageModePlugin= {major: 2, minor: 9, revision: 6, date: new Date(2008,10,17)};
//}}}
//{{{
config.paramifiers.SPM = { onstart: function(v) {
	config.options.chkSinglePageMode=eval(v);
	if (config.options.chkSinglePageMode && config.options.chkSinglePagePermalink && !config.browser.isSafari) {
		config.lastURL = window.location.hash;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	}
} };
//}}}
//{{{
if (config.options.chkSinglePageMode==undefined)
	config.options.chkSinglePageMode=false;
if (config.options.chkSinglePagePermalink==undefined)
	config.options.chkSinglePagePermalink=true;
if (config.options.chkSinglePageKeepFoldedTiddlers==undefined)
	config.options.chkSinglePageKeepFoldedTiddlers=false;
if (config.options.chkSinglePageKeepEditedTiddlers==undefined)
	config.options.chkSinglePageKeepEditedTiddlers=false;
if (config.options.chkTopOfPageMode==undefined)
	config.options.chkTopOfPageMode=false;
if (config.options.chkBottomOfPageMode==undefined)
	config.options.chkBottomOfPageMode=false;
if (config.options.chkSinglePageAutoScroll==undefined)
	config.options.chkSinglePageAutoScroll=false;
//}}}
//{{{
config.SPMTimer = 0;
config.lastURL = window.location.hash;
function checkLastURL()
{
	if (!config.options.chkSinglePageMode)
		{ window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }
	if (config.lastURL == window.location.hash) return; // no change in hash
	var tids=decodeURIComponent(window.location.hash.substr(1)).readBracketedList();
	if (tids.length==1) // permalink (single tiddler in URL)
		story.displayTiddler(null,tids[0]);
	else { // restore permaview or default view
		config.lastURL = window.location.hash;
		if (!tids.length) tids=store.getTiddlerText("DefaultTiddlers").readBracketedList();
		story.closeAllTiddlers();
		story.displayTiddlers(null,tids);
	}
}


if (Story.prototype.SPM_coreDisplayTiddler==undefined)
	Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,slowly)
{
	var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
	var tiddlerElem=document.getElementById(story.idPrefix+title); // ==null unless tiddler is already displayed
	var opt=config.options;
	var single=opt.chkSinglePageMode && !startingUp;
	var top=opt.chkTopOfPageMode && !startingUp;
	var bottom=opt.chkBottomOfPageMode && !startingUp;
	if (single) {
		story.forEachTiddler(function(tid,elem) {
			// skip current tiddler and, optionally, tiddlers that are folded.
			if (	tid==title
				|| (opt.chkSinglePageKeepFoldedTiddlers && elem.getAttribute("folded")=="true"))
				return;
			// if a tiddler is being edited, ask before closing
			if (elem.getAttribute("dirty")=="true") {
				if (opt.chkSinglePageKeepEditedTiddlers) return;
				// if tiddler to be displayed is already shown, then leave active tiddler editor as is
				// (occurs when switching between view and edit modes)
				if (tiddlerElem) return;
				// otherwise, ask for permission
				var msg="'"+tid+"' is currently being edited.\n\n";
				msg+="Press OK to save and close this tiddler\nor press Cancel to leave it opened";
				if (!confirm(msg)) return; else story.saveTiddler(tid);
			}
			story.closeTiddler(tid);
		});
	}
	else if (top)
		arguments[0]=null;
	else if (bottom)
		arguments[0]="bottom";
	if (single && opt.chkSinglePagePermalink && !config.browser.isSafari) {
		window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));
		config.lastURL = window.location.hash;
		document.title = wikifyPlain("SiteTitle") + " - " + title;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	}
	if (tiddlerElem && tiddlerElem.getAttribute("dirty")=="true") { // editing... move tiddler without re-rendering
		var isTopTiddler=(tiddlerElem.previousSibling==null);
		if (!isTopTiddler && (single || top))
			tiddlerElem.parentNode.insertBefore(tiddlerElem,tiddlerElem.parentNode.firstChild);
		else if (bottom)
			tiddlerElem.parentNode.insertBefore(tiddlerElem,null);
		else this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	} else
		this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	var tiddlerElem=document.getElementById(story.idPrefix+title);
	if (tiddlerElem&&opt.chkSinglePageAutoScroll) {
		// scroll to top of page or top of tiddler
		var isTopTiddler=(tiddlerElem.previousSibling==null);
		var yPos=isTopTiddler?0:ensureVisible(tiddlerElem);
		// if animating, defer scroll until after animation completes
		var delay=opt.chkAnimate?config.animDuration+10:0;
		setTimeout("window.scrollTo(0,"+yPos+")",delay); 
	}
}

if (Story.prototype.SPM_coreDisplayTiddlers==undefined)
	Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function() {
	// suspend single/top/bottom modes when showing multiple tiddlers
	var opt=config.options;
	var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
	var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
	var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
	this.SPM_coreDisplayTiddlers.apply(this,arguments);
	opt.chkBottomOfPageMode=saveBPM;
	opt.chkTopOfPageMode=saveTPM;
	opt.chkSinglePageMode=saveSPM;
}
//}}}
/***
|Name|SinglePageModePluginInfo|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Documentation|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|Version|2.9.6|
|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 SinglePageModePlugin|
Normally, as you click on the links in TiddlyWiki, more and more tiddlers are displayed on the page. The order of this tiddler display depends upon when and where you have clicked. Some people like this non-linear method of reading the document, while others have reported that when many tiddlers have been opened, it can get somewhat confusing.  SinglePageModePlugin allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one item displayed at a time.
!!!!!Usage
<<<
When the plugin is enabled, only one tiddler will be displayed at a time and the browser window's titlebar is updated to include the current tiddler title.  The browser's location URL is also updated with a 'permalink' for the current tiddler so that it is easier to create a browser 'bookmark' for the current tiddler.  Alternatively, even when displaying multiple tiddlers //is// permitted, you can still reduce the potential for confusion by forcing  tiddlers to always open at the top (or bottom) of the page instead of being displayed following the tiddler containing the link that was clicked.
<<<
!!!!!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:
* {{block{
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}}}. You can also use {{{SPM:expression}}}, where 'expression' is any javascript statement that evaluates to true or false.  This allows you to create hard-coded links in other documents that can selectively enable/disable the use of this option based on various programmatic conditions, such as the current username. For example, using
&nbsp;&nbsp;&nbsp;{{{#SPM:config.options.txtUserName!="SomeName"}}}
enables 'one tiddler at a time' display for all users //other than// "~SomeName")}}}
* If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.
* When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.
<<<
!!!!!Revisions
<<<
2008.10.17 [2.9.6] changed chkSinglePageAutoScroll default to false
2008.06.12 [2.9.5] corrected 'scroll to top of page' logic in auto-scroll handling
2008.06.11 [2.9.4] added chkSinglePageKeepEditedTiddlers option
2008.06.05 [2.9.3] in displayTiddler(), bypass single/top/bottom mode handling if startingUp.  Allows multiple tiddlers to be displayed during startup processing (e.g., #story:DefaultTiddlers), even if single/top/bottom mode is enabled.
2008.04.18 [2.9.2] in displayTiddler() and checkLastURL(), handling for Unicode in tiddler titles (remove explicit conversion between Unicode and UTF, as this is apparently done automatically by encode/decodeURIComponent, resulting in double-encoding!
2008.04.08 [2.9.1] don't automatically add options to AdvancedOptions shadow tiddler
2008.04.02 [2.9.0] in displayTiddler(), when single-page mode is in use and a tiddler is being edited, ask for permission to save-and-close that tiddler, instead of just leaving it open.
2008.03.29 [2.8.3] in displayTiddler(), get title from tiddler object (if needed).  Fixes errors caused when calling function passes a tiddler *object* instead of a tiddler *title*
2008.03.14 [2.8.2] in displayTiddler(), if editing specified tiddler, just move it to top/bottom of story *without* re-rendering (prevents discard of partial edits).
2008.03.06 [2.8.1] in paramifier handler, start 'checkURL' timer if chkSinglePageMode is enabled
2008.03.06 [2.8.0] added option, {{{config.options.chkSinglePageKeepFoldedTiddlers}}}, so folded tiddlers won't be closed when using single-page mode.  Also, in checkURL(), if hash is a ''permaview'' (e.g., "#foo bar baz"), then display multiple tiddlers rather than attempting to display "foo bar baz" as a single tiddler
2008.03.05 [2.7.0] added support for "SPM:" URL paramifier
2008.03.01 [2.6.0] in hijack of displayTiddler(), added 'title' argument to closeAllTiddlers() so that target tiddler isn't closed-and-reopened if it was already displayed.  Also, added config.options.chkSinglePageAutoScrolloption to bypass automatic 'scroll into view' logic (note: core still does it's own ensureVisible() handling)
2007.12.22 [2.5.3] in checkLastURL(), use decodeURIComponent() instead of decodeURI so that tiddler titles with commas (and/or other punctuation) are correctly handled.
2007.10.26 [2.5.2] documentation cleanup
2007.10.08 [2.5.1] in displayTiddler(), when using single-page or top-of-page mode, scrollTo(0,0) to ensure that page header is in view.
2007.09.13 [2.5.0] for TPM/BPM modes, don't force tiddler to redisplay if already shown.  Allows transition between view/edit or collapsed/view templates, without repositioning displayed tiddler.
2007.09.12 [2.4.0] added option to disable automatic permalink feature.  Also, Safari is now excluded from permalinking action to avoid bug where tiddlers don't display after hash is updated.
2007.03.03 [2.3.1] fix typo when adding BPM option to AdvancedOptions (prevented checkbox from appearing)
2007.03.03 [2.3.0] added support for BottomOfPageMode (BPM) based on request from DaveGarbutt
2007.02.06 [2.2.3] in Story.prototype.displayTiddler(), use convertUnicodeToUTF8() for correct I18N string handling when creating URL hash string from tiddler title (based on bug report from BidiX)
2007.01.08 [2.2.2] use apply() to invoke hijacked core functions
2006.07.04 [2.2.1] in hijack for displayTiddlers(), suspend TPM as well as SPM so that DefaultTiddlers displays in the correct order.
2006.06.01 [2.2.0] added chkTopOfPageMode (TPM) handling
2006.02.04 [2.1.1] moved global variable declarations to config.* to avoid FireFox 1.5.0.1 crash bug when assigning to globals
2005.12.27 [2.1.0] hijack displayTiddlers() so that SPM can be suspended during startup while displaying the DefaultTiddlers (or #hash list).  Also, corrected initialization for undefined SPM flag to "false", so default behavior is to display multiple tiddlers
2005.12.27 [2.0.0] Update for TW2.0
2005.11.24 [1.1.2] When the back and forward buttons are used, the page now changes to match the URL.  Based on code added by Clint Checketts
2005.10.14 [1.1.1] permalink creation now calls encodeTiddlyLink() to handle tiddler titles with spaces in them
2005.10.14 [1.1.0] added automatic setting of window title and location bar ('auto-permalink').  feature suggestion by David Dickens.
2005.10.09 [1.0.1] combined documentation and code in a single tiddler
2005.08.15 [1.0.0] Initial Release
<<<
<<tabs txtMainTab "Timeline" "Timeline" TabTimeline "All" "All tiddlers" TabAll "Tags" "All tags" TabTags "More" "More lists" TabMore>>
portal de ética de la Facultad de Filosofía de la Universidad de Salamanca
Ethics Salamanca
http://ethicsalamanca.usal.es/
<script>
var out=""
var tids=store.getTiddlers("title","excludeLists");
for (var t=0; t<tids.length; t++) {
   var url=store.getTiddlerText("SiteUrl");
   if (!url) url=document.location.href;
   var
permalink=encodeURIComponent(String.encodeTiddlyLink(tids[t].title));
   out+=url+"#"+permalink+"\n";
}

return out;
</script>
Name: Smoke (Mptw)
Background: #fff
Foreground: #000
PrimaryPale: #aaa
PrimaryLight: #777
PrimaryMid: #111
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/***
|''Name:''|SplashScreenPlugin|
|''Description:''|Provides a splash screen that consists of the rendered default tiddlers|
|''Author:''|Martin Budden|
|''~CodeRepository:''|http://svn.tiddlywiki.org/Trunk/contributors/MartinBudden/plugins/SplashScreenPlugin.js |
|''Version:''|0.1.4|
|''Date:''|April 17, 2008|
|''Comments:''|Please make comments at http://groups.google.co.uk/group/TiddlyWikiDev |
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]] |
|''~CoreVersion:''|2.4|

!!Description
Provides a splash screen that consists of the default tiddlers while TiddlyWiki is loading

!!Usage
!!TODO describe how to use the plugin - how a user should include it in their TiddlyWiki, parameters to the plugin etc

***/

//{{{
if(!version.extensions.SplashScreenPlugin) {
version.extensions.SplashScreenPlugin = {installed:true};

//config.macros.splashScreen = {};
//config.macros.splashScreen.init = function()
version.extensions.SplashScreenPlugin.setup = function()
{
	if(store.tiddlerExists("MarkupPostHead"))
		return;

	var text = "<!--{{{-->\n";
	text += "<style type=\"text/css\">\n";
	text += "#contentWrapper {display:none;}\n";
	text += "#splashScreen {display:block;}\n";

	var cp = "ColorPalette";
	var bg = store.getTiddlerSlice(cp,"Background");
	var fg = store.getTiddlerSlice(cp,"Foreground");
	var pp = store.getTiddlerSlice(cp,"PrimaryPale");
	var pl = store.getTiddlerSlice(cp,"PrimaryLight");
	var pm = store.getTiddlerSlice(cp,"PrimaryMid");
	var pd = store.getTiddlerSlice(cp,"PrimaryDark");
	var sp = store.getTiddlerSlice(cp,"SecondaryPale");
	var sl = store.getTiddlerSlice(cp,"SecondaryLight");
	var sm = store.getTiddlerSlice(cp,"SecondaryMid");
	var sd = store.getTiddlerSlice(cp,"SecondaryDark");
	var tp = store.getTiddlerSlice(cp,"TertiaryPale");
	var tl = store.getTiddlerSlice(cp,"TertiaryLight");
	var tm = store.getTiddlerSlice(cp,"TertiaryMid");
	var td = store.getTiddlerSlice(cp,"TertiaryDark");
	var er = store.getTiddlerSlice(cp,"Error");

	var sc = store.getTiddlerText("StyleSheetColors");
	sc += "\n" + store.getTiddlerText("StyleSheetLayout") + "\n";
	sc += "\n#splashScreen {display:block;}\n";

	sc += "\n" + store.getTiddlerText("StyleSheet") + "\n";
	sc = sc.replace(/#/mg,"#s_");
	sc = sc.replace("[[ColorPalette::Background]]",bg);
	sc = sc.replace("[[ColorPalette::Foreground]]",fg);
	sc = sc.replace("[[ColorPalette::PrimaryPale]]",pp);
	sc = sc.replace("[[ColorPalette::PrimaryLight]]",pl);
	sc = sc.replace("[[ColorPalette::PrimaryMid]]",pm);
	sc = sc.replace("[[ColorPalette::PrimaryDark]]",pd);
	sc = sc.replace("[[ColorPalette::SecondaryPale]]",sp);
	sc = sc.replace("[[ColorPalette::SecondaryLight]]",sl);
	sc = sc.replace("[[ColorPalette::SecondaryMid]]",sm);
	sc = sc.replace("[[ColorPalette::SecondaryDark]]",sd);
	sc = sc.replace("[[ColorPalette::TertiaryPale]]",tp);
	sc = sc.replace("[[ColorPalette::TertiaryLight]]",tl);
	sc = sc.replace("[[ColorPalette::TertiaryMid]]",tm);
	sc = sc.replace("[[ColorPalette::TertiaryDark]]",td);
	sc = sc.replace("[[ColorPalette::Error]]",er);
	
	text += sc;
	text += "#s_messageArea {display:none;}\n";
	text += "\n</style>\n";
	text += "<!--}}}-->\n";
	var tiddler = store.createTiddler("MarkupPostHead");
	tiddler.set(tiddler.title,text,config.options.txtUserName,null,"excludeLists excludeSearch");

	var sitetitle = store.getTiddlerText("SiteTitle");
	var sitesubtitle = store.getTiddlerText("SiteSubtitle");
	var pt = store.getTiddlerText("PageTemplate");
	pt = pt.replace(/<span class='siteTitle' refresh='content' tiddler='SiteTitle'><\/span>/mg,"<span class=\"siteTitle\">"+sitetitle+"</span>");
	pt = pt.replace(/<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'><\/span>/mg,"<span class=\"siteSubtitle\">"+sitesubtitle+"</span>");
	pt = pt.replace(/<!--\{\{\{-->/mg,"").replace(/<!--\}\}\}-->/mg,"");
	pt = pt.replace(/<div id='/mg,"<div id='s_");

	text = "";
	var filter = store.getTiddlerText("SplashTiddlers") || store.getTiddlerText("DefaultTiddlers");
	tiddlers = store.filterTiddlers(filter);
	for(i=0;i<tiddlers.length;i++) {
		tiddler = tiddlers[i];
		var title = tiddler.title;
		var tiddlerElem = createTiddlyElement(null,"div","tempId"+tiddler.title,"tiddler");
		tiddlerElem.style.display = "none";
		tiddlerElem.setAttribute("refresh","tiddler");
		var template = story.chooseTemplateForTiddler(title);
		var t = story.getTemplateForTiddler(title,template,tiddler);
		t = t.replace(/<div class=['"]toolbar[^<]*<\/div>/mg,"<div class=\"toolbar\"><br /></div>");
		t = t.replace(/<div class=['"]tagging['"][^>]*><\/div>\n/mg,"");
		t = t.replace(/<div class=['"]tagged['"][^>]*><\/div>\n/mg,"");
		tiddlerElem.innerHTML = t;
		applyHtmlMacros(tiddlerElem,tiddler);
		text += '<div id="splashId_' + tiddler.title + '" class="tiddler">\n';
		t = tiddlerElem.innerHTML;
		// remove all tiddler links
		t = t.replace(/<a tiddlylink=[^>]*>([^<]*)<\/a>/mg,"$1");
		t = t.replace(/<a tiddlyfields=[^>]*>([^<]*)<\/a>/mg,"$1");
		text += t + '\n</div>\n';
	}
	text = text.replace(/<!--\{\{\{-->/mg,"").replace(/<!--\}\}\}-->/mg,"");

	var splash = "<!--{{{-->\n\n";
	splash += "<div id=\"splashScreen\">\n";
	pt = pt.replace(/<div id='s_tiddlerDisplay'><\/div>/mg,"<div id=\"s_tiddlerDisplay\">"+text+"</div>");
	splash += pt;

	splash += "</div>\n";
	splash += "<!--}}}-->\n\n";
	splash += '<script type="text/javascript">\ndocument.getElementById("splashScreen").style.display="none";\n</script>\n';

	tiddler = store.createTiddler("MarkupPreBody");
	tiddler.set(tiddler.title,splash,config.options.txtUserName,null,"excludeLists excludeSearch");

	store.setDirty(true);
};

version.extensions.SplashScreenPlugin.saveChanges = saveChanges;
function saveChanges()
{
	version.extensions.SplashScreenPlugin.setup();
	version.extensions.SplashScreenPlugin.saveChanges();
}

} //# end of 'install only once'
//}}}
[[StyleSheet_Texto]]
[[StyleSheet_Imagen]]

/***
Couleurs pour le nuage de mots clefs
***/
/*{{{*/
.tagCloud span{height: 3.5em; margin: 10px; padding: 10px; width:
300px;}
.tagCloud1{font-size: 100%; font-weight: normal; padding-left: 8px;
color: #000000;}
.tagCloud2{font-size: 120%; font-weight: bold; padding-left: 8px;
color: #3355ff;}
.tagCloud3{font-size: 140%; font-weight: bold; padding-left: 5px;
color: #33bb00;}
.tagCloud4{font-size: 160%; font-weight: bold; padding-left: 5px;
color: #ff9900;}
.tagCloud5{font-size: 180%; font-weight: bold; padding-left: 5px;
color: #ff5511;}
.tagCloud6{font-size: 200%; font-weight: bold; padding-left: 5px;
color: #ff0000;} 
/*}}}*/


/***
!Quitar las cajas de etiquetas mediante la etiqueta: sinTags
***/
/*{{{*/
div[tags~="sinTags"].tiddler .tagged { display: none; }
/*}}}*/

/***
!Quitar el título de un tiddler mediante la etiqueta: sinTítulo o Publicaciones
***/
/*{{{*/
div[tags~="sinTítulo"].tiddler .title { display: none; }
div[tags~="sinTítulo"].tiddler .subtitle { display: none; }
div[tags~="Publicaciones"].tiddler .title { display: none; }
div[tags~="Publicaciones"].tiddler .subtitle { display: none; }

div[tags~="Anuncios"].tiddler { color: white;  margin-left: 0px; }
div[tags~="Anuncios"].tiddler .viewer { background-image: url(TablónAnuncios.jpg); background-position: top left; }
div[tags~="Anuncios"].tiddler .title { display: none; }
div[tags~="Anuncios"].tiddler .subtitle { display: none; }
div[tags~="Anuncios"].tiddler .tagged { display: none; }

/*}}}*/

/***
!Quitar la barra de herramientas de un tiddler mediante la etiqueta: sinBarra
***/
/*{{{*/
div[tags~="sinBarra"].tiddler .toolbar { display: none; }
/*}}}*/


/***
!Más cosas
***/
/*{{{*/
div[tags~="Fondo1"].tiddler .viewer { background: url(Fondo%201.jpg); }
div[tags~="Fondo2"].tiddler .viewer { background: url(Fondo%202.jpg); }
div[tags~="Fondo3"].tiddler .viewer { background: url(Fondo%203.jpg); }
div[tags~="Fondo4"].tiddler .viewer { background: url(Fondo%204.jpg); }
div[tags~="Fondo5"].tiddler .viewer { background: url(Fondo%205.jpg); }
div[tags~="Fondo6"].tiddler .viewer { background: url(Fondo%206.jpg); }
div[tags~="FondoClaro"].tiddler .viewer { background: url(FondoClaro.jpg); }
div[tags~="FondoBlanco"].tiddler .viewer { background-color: white; }
div[tags~="FondoAmarillo"].tiddler .viewer { background-color: #FFC; }


/* body { background-image: url(Fondo_grande.jpg);
     background-position: top right;
}
*/

#displayArea { margin-top: 0em; background: url(Fondo72.jpg); repeat: bottom; } 

/*}}}*/

/***
!Para evitar comportamientos extraños en IE
***/
/*{{{*/
body {position:static;}
.tagClear { margin-top:1em;clear:both; }
/*}}}*/

/***
|Name|StyleSheetShortcuts|
|Source|http://www.TiddlyTools.com/#StyleSheetShortcuts|
|Version||
|Author|Eric Shulman|
|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|CSS|
|Requires||
|Overrides||
|Description|'convenience' classes for common formatting, alignment, boxes, tables, etc.|

These 'style tweaks' can be easily included in other stylesheet tiddler so they can share a baseline look-and-feel that can then be customized to create a wide variety of 'flavors'.
***/
/*{{{*/

/* text alignments */
.left
	{ display:block;text-align:left; }
.center
	{ display:block;text-align:center; }
.center table
	{ margin:auto !important; }
.right	
	{ display:block;text-align:right; }
.justify
	{ display:block;text-align:justify; }
.indent
	{ display:block;margin:0;padding:0;border:0;margin-left:2em; }
.floatleft
	{ float:left; }
.floatright
	{ float:right; }
.valignTop, .valignTop table, .valignTop tbody, .valignTop th, .valignTop tr, .valignTop td
	{ vertical-align:top; }
.valignBottom, .valignBottom table, .valignBottom tbody, .valignBottom th, .valignBottom tr, .valignBottom td
	{ vertical-align:bottom; }
.clear
	{ clear:both; }
.wrap
	{ white-space:normal; }
.nowrap
	{ white-space:nowrap; }
.hidden
	{ display:none; }
.show
	{ display:inline !important; }
.span
	{ display:span; }
.block
	{ display:block; }
.relative
	{ position:relative; }
.absolute
	{ position:absolute; }

/* font sizes */
.big
	{ font-size:14pt;line-height:120% }
.medium
	{ font-size:12pt;line-height:120% }
.normal
	{ font-size:9pt;line-height:120% }
.small
	{ font-size:8pt;line-height:120% }
.fine
	{ font-size:7pt;line-height:120% }
.tiny
	{ font-size:6pt;line-height:120% }
.larger
	{ font-size:120%; }
.smaller
	{ font-size:80%; }

/* font styles */
.bold
	{ font-weight:bold; }
.italic
	{ font-style:italic; }
.underline
	{ text-decoration:underline; }

/* plain list items (no bullets or indent) */
.nobullets li { list-style-type: none; margin-left:-2em; }

/* multi-column tiddler content (not supported in Internet Explorer) */
.twocolumns { display:block;
	-moz-column-count:2; -moz-column-gap:1em; -moz-column-width:50%; /* FireFox */
	-webkit-column-count:2; -webkit-column-gap:1em; -webkit-column-width:50%; /* Safari */
	column-count:2; column-gap:1em; column-width:50%; /* Opera */
}
.threecolumns { display:block;
	-moz-column-count:3; -moz-column-gap:1em; -moz-column-width:33%; /* FireFox */
	-webkit-column-count:3; -webkit-column-gap:1em; -webkit-column-width:33%; /* Safari */
	column-count:3; column-gap:1em; column-width:33%; /* Opera */
}
.fourcolumns { display:block;
	-moz-column-count:4; -moz-column-gap:1em; -moz-column-width:25%; /* FireFox */
	-webkit-column-count:4; -webkit-column-gap:1em; -webkit-column-width:25%; /* Safari */
	column-count:4; column-gap:1em; column-width:25%; /* Opera */
}

/* show/hide browser-specific content for InternetExplorer vs. non-IE ("moz") browsers */
*[class="ieOnly"]
	{ display:none; } /* hide in moz (uses CSS selector) */
* html .mozOnly, *:first-child+html .mozOnly
	{ display: none; } /* hide in IE (uses IE6/IE7 CSS hacks) */

/* borderless tables */
.borderless, .borderless table, .borderless td, .borderless tr, .borderless th, .borderless tbody
	{ border:0 !important; margin:0 !important; padding:0 !important; }
.widetable, .widetable table
	{ width:100%; }

/* thumbnail images (fixed-sized scaled images) */
.thumbnail img { height:5em !important; }

/* stretchable images (auto-size to fit tiddler) */
.stretch img { width:95%; }

/* grouped content */
.outline
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid; }
.menubox
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid; background:#fff; color:#000; }
.menubox .button, .menubox .tiddlyLinkExisting, .menubox .tiddlyLinkNonExisting
	{ color:#009 !important; }
.groupbox
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid; background:#ffe; color:#000; }
.groupbox a, .groupbox .button, .groupbox .tiddlyLinkExisting, .groupbox .tiddlyLinkNonExisting
	{ color:#009 !important; }
.groupbox code
	{ color:#333 !important; }
.borderleft
	{ margin:0;padding:0;border:0;margin-left:1em; border-left:1px dotted; padding-left:.5em; }
.borderright
	{ margin:0;padding:0;border:0;margin-right:1em; border-right:1px dotted; padding-right:.5em; }
.borderbottom
	{ margin:0;padding:1px 0;border:0;border-bottom:1px dotted; margin-bottom:1px; padding-bottom:1px; }
.bordertop
	{ margin:0;padding:0;border:0;border-top:1px dotted; margin-top:1px; padding-top:1px; }

/* scrolled content */
.scrollbars { overflow:auto; }
.height10em { height:10em; }
.height15em { height:15em; }
.height20em { height:20em; }
.height25em { height:25em; }
.height30em { height:30em; }
.height35em { height:35em; }
.height40em { height:40em; }

/* compact form */
.smallform
	{ white-space:nowrap; }
.smallform input, .smallform textarea, .smallform button, .smallform checkbox, .smallform radio, .smallform select
	{ font-size:8pt; }

/* stretchable edit fields and textareas (auto-size to fit tiddler) */
.stretch input { width:99%; }
.stretch textarea { width:99%; }

/* compact input fields (limited to a few characters for entering percentages and other small values) */
.onechar input   { width:1em; }
.twochar input   { width:2em; }
.threechar input { width:3em; }
.fourchar input  { width:4em; }
.fivechar input  { width:5em; }

/* text colors */
.white { color:#fff !important }
.gray  { color:#999 !important }
.black { color:#000 !important }
.red   { color:#f66 !important }
.green { color:#0c0 !important }
.blue  { color:#99f !important }

/* rollover highlighting */
.mouseover 
	{color:[[ColorPalette::TertiaryLight]] !important;}
.mouseover a
	{color:[[ColorPalette::TertiaryLight]] !important;}
.selected .mouseover
	{color:[[ColorPalette::Foreground]] !important;}
.selected .mouseover .button, .selected .mouseover a
	{color:[[ColorPalette::PrimaryDark]] !important;}

/* rollover zoom text */
.zoomover
	{ font-size:80% !important; }
.selected .zoomover
	{ font-size:100% !important; }

/* [[ColorPalette]] text colors */
.Background	{ color:[[ColorPalette::Background]];	 }
.Foreground	{ color:[[ColorPalette::Foreground]];	 }
.PrimaryPale	{ color:[[ColorPalette::PrimaryPale]];	 }
.PrimaryLight	{ color:[[ColorPalette::PrimaryLight]];	 }
.PrimaryMid	{ color:[[ColorPalette::PrimaryMid]];	 }
.PrimaryDark	{ color:[[ColorPalette::PrimaryDark]];	 }
.SecondaryPale	{ color:[[ColorPalette::SecondaryPale]]; }
.SecondaryLight	{ color:[[ColorPalette::SecondaryLight]];}
.SecondaryMid	{ color:[[ColorPalette::SecondaryMid]];	 }
.SecondaryDark	{ color:[[ColorPalette::SecondaryDark]]; }
.TertiaryPale	{ color:[[ColorPalette::TertiaryPale]];	 }
.TertiaryLight	{ color:[[ColorPalette::TertiaryLight]]; }
.TertiaryMid	{ color:[[ColorPalette::TertiaryMid]];	 }
.TertiaryDark	{ color:[[ColorPalette::TertiaryDark]];	 }
.Error		{ color:[[ColorPalette::Error]];	 }

/* [[ColorPalette]] background colors */
.BGBackground	  { background-color:[[ColorPalette::Background]];	}
.BGForeground	  { background-color:[[ColorPalette::Foreground]];	}
.BGPrimaryPale	  { background-color:[[ColorPalette::PrimaryPale]];	}
.BGPrimaryLight	  { background-color:[[ColorPalette::PrimaryLight]];	}
.BGPrimaryMid	  { background-color:[[ColorPalette::PrimaryMid]];	}
.BGPrimaryDark	  { background-color:[[ColorPalette::PrimaryDark]];	}
.BGSecondaryPale  { background-color:[[ColorPalette::SecondaryPale]]; 	}
.BGSecondaryLight { background-color:[[ColorPalette::SecondaryLight]];	}
.BGSecondaryMid	  { background-color:[[ColorPalette::SecondaryMid]];	}
.BGSecondaryDark  { background-color:[[ColorPalette::SecondaryDark]]; 	}
.BGTertiaryPale	  { background-color:[[ColorPalette::TertiaryPale]];	}
.BGTertiaryLight  { background-color:[[ColorPalette::TertiaryLight]]; 	}
.BGTertiaryMid	  { background-color:[[ColorPalette::TertiaryMid]];	}
.BGTertiaryDark	  { background-color:[[ColorPalette::TertiaryDark]];	}
.BGError	  { background-color:[[ColorPalette::Error]];	 	}
/*}}}*/
/***
!Para las imágenes 
***/
/*{{{*/
.thumbnail img { height:5em !important; }
.icono img { height:20px !important; }
.miniatura img { height:5em !important; }
.peque img { height:150px !important; }
.mediana img { height:300px !important; }
.grande img { height:450px !important; }
.enorme img { height:600px !important; }
.gigante img { height:800px !important; }

.libro img { 
   margin-top: 1px;
   margin-right: 10px;
   margin-bottom: 10px;
   margin-left: 10px;
   width: 200px !important;
}

.perfil img { 
   margin-top: 1px;
   margin-right: 20px;
   margin-bottom: 1px;
   margin-left: 15px;
   width: 80px !important;
}

.margenes img { 
   margin-top: 5px;
   margin-right: 10px;
   margin-bottom: 5px;
   margin-left: 10px;
}


.marco img { 
           border-width: 2px;
           border-style: solid;
           border-color: black;
           padding-top: 5px;
           padding-right: 5px;
           padding-bottom: 5px;
           padding-left: 5px;
           margin-top: 10px;
           margin-right: 10px;
           margin-bottom: 10px;
           margin-left: 10px;
           background-color: white;
}

.logotipo img { 
           padding-top: 10px;
           padding-right: 10px;
           padding-bottom: 10px;
           padding-left: 10px;
           margin-top: 0px;
           margin-right: 10px;
           margin-bottom: 0px;
           margin-left: 10px;
           background-color: white;
}

.derecha img { float: right; margin-right: 5px; }
.izquierda img { float: left; margin-left: 5px; }
/*}}}*/
/***
! {{mayusculas{Apariencia}}} del {{parpadeo{texto}}}
***/
/*{{{*/
.negrita	{ font-weight:bold; }
.cursiva 	{ font-style:italics; }
.subrayado { text-decoration:underline; }
.tachado { text-decoration:line-through; }
.parpadeo { text-decoration:blink; }
.novedades { font-weight:bold; color:#f00 !important; text-decoration:blink; }

.izquierda { text-align:left; }
.derecha { text-align:right; }
.centrado { text-align:center; }
.justificado { text-align:justify; }
.arriba { vertical-align: top; }
.arriba table { vertical-align: top; }

.mayusculas { text-transform: uppercase; }
.minusculas { text-transform: lowercase; }
.mayusculas-p { font-variant:small-caps;}

.oculto { display:none; }

.letrina{ float:left; width:0.75em; font-size:400%; font-family:times,arial; line-height:60%; }

/%
.viewer:first-letter { float: left; font-size: 500%; }
/%

.Arial { font: Arial;}
.Times { font: Times;}
.Verdana { font: Verdana;}
.Helvetica { font: Helvetica;}
.Garamond {font: Garamond;}

.fuente18 { font-size:18pt;}
.fuente16 { font-size:16pt;}
.fuente15 {font-size:15pt;}
.fuente14 {font-size:14pt;}
.fuente13 {font-size:13pt;}
.fuente12 {font-size:12pt;}
.fuente11 {font-size:11pt;}
.fuente10 {font-size:10pt;}
.fuente9 {font-size:9pt;}
.fuente8 {font-size:8pt;}

.sangria { text-indent:15px;}
.sangria1 { text-indent:25px;}
.sangria2 { text-indent:50px;}
.sangria3 { text-indent:75px;}
.sangria4 { text-indent:100px;}
/*}}}*/

/***
!Columnas
***/
/*{{{*/
.doscolumnas { display:block; -moz-column-count:2; -moz-column-gap:1em; -moz-column-width:50%;}
.trescolumas { display:block; -moz-column-count:3; -moz-column-gap:1em; -moz-column-width:33%}
.cuatrocolumnas { display:block; -moz-column-count:4; -moz-column-gap:1em; -moz-column-width:25%}
/*}}}*/

/***
!Tablas sin bordes 
***/
/*{{{*/
.sinbordes, .sinbordes table, .sinbordes td, .sinbordes tr, .sinbordes th, .sinbordes tbody
	{ border:0 !important; margin:0 !important; padding:0 !important; }

.borderless, .borderless table, .borderless td, .borderless tr, .borderless th, .borderless tbody
	{ border:0 !important; margin:0 !important; padding:0 !important; }

.viewer div.centeredTable {
	text-align: center;
}

.viewer div.centeredTable table {
	margin: 0 auto;
	text-align: left;
}

.viewer div.tableRight {
	text-align: right;
}

.viewer div.tableRight table {
	margin: 0 auto;
	text-align: right;
}

/*}}}*/


/***
!Text Formatting
***/
/*{{{*/
.left 
	{ display:block;text-align:left; }
.center
	{ display:block;text-align:center; }
.right	
	{ display:block;text-align:right; }
.justify
	{ display:block;text-align:justify; }
.indent
	{ margin:0;padding:0;border:0;margin-left:2em; }
.floatleft
	{ float:left; }
.floatright
	{ float:right; }
.clear
	{ clear:both; }
.wrap
	{ white-space:normal; }
.nowrap
	{ white-space:nowrap; }
.hidden
	{ display:none; }
.span
	{ display:span; }
.block
	{ display:blockquote; }

/* !!font sizes */
.big
	{ font-size:14pt;line-height:120% }
.medium
	{ font-size:12pt;line-height:120% }
.normal
	{ font-size:9pt;line-height:120% }
.small
	{ font-size:8pt;line-height:120% }
.fine
	{ font-size:7pt;line-height:120% }
.tiny
	{ font-size:6pt;line-height:120% }
.larger
	{ font-size:120%; }
.smaller
	{ font-size:80%; }

/* font styles */
.bold
	{ font-weight:bold; }
.italics
	{ font-style:italics; }
.underline
	{ text-decoration:underline; }

/* multi-column tiddler content (not supported in Internet Explorer) */
.twocolumns
	{ display:block; -moz-column-count:2; -moz-column-gap:1em; -moz-column-width:50%;}
.threecolumns
	{ display:block; -moz-column-count:3; -moz-column-gap:1em; -moz-column-width:33%}
.fourcolumns
	{ display:block; -moz-column-count:4; -moz-column-gap:1em; -moz-column-width:25%}

/* grouped content */
.outline
	{ display:block; padding:1em; -moz-border-radius:1em; border:1px solid; }
.menubox
	{ display:block; padding:1em; -moz-border-radius:1em; border:1px solid; background:#ccccff; color:#000; }
.menubox .button, .menubox .tiddlyLinkExisting, .menubox .tiddlyLinkNonExisting
	{ color:#009 !important; }
.groupbox
	{ display:block; padding:1em; -moz-border-radius:1em; border:1px solid; background:#ffe; color:#000; }
.groupbox a, .groupbox .button, .groupbox .tiddlyLinkExisting, .groupbox .tiddlyLinkNonExisting
	{ color:#009 !important; }
.groupbox code
	{ color:#333 !important; }
.borderleft
	{ margin:0;padding:0;border:0;margin-left:1em; border-left:1px dotted; padding-left:.5em; }
.borderright
	{ margin:0;padding:0;border:0;margin-right:1em; border-right:1px dotted; padding-right:.5em; }
.borderbottom
	{ margin:0;padding:1px 0;border:0;border-bottom:1px dotted; margin-bottom:1px; padding-bottom:1px; }
.bordertop
	{ margin:0;padding:0;border:0;border-top:1px dotted; margin-top:1px; padding-top:1px; }

/* compact form */
.smallform
	{ white-space:nowrap; }
.smallform input, .smallform textarea, .smallform button, .smallform checkbox, .smallform radio, .smallform select
	{ font-size:8pt; }

/* colors */
.green { color:#6f6 !important }
.red { color:#f66 !important }
.blue { color:#99f !important }
/*}}}*/
/***
|''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
// %/
<br>
<<tiddler Anuncios>>

<html><script type="text/javascript" src="http://widgets.amung.us/classic.js"></script><script type="text/javascript">WAU_classic('sljsm55720cd')</script>
<script type="text/javascript" src="http://widgets.amung.us/classic.js"></script><script type="text/javascript">WAU_classic('sljsm55720cd')</script></html>
<<cloud action:goto limit:30 systemConfig systemConfigDisable systemTheme systemPalette formatting Help excludeMissing excludeLists framedLinks script excludeSearch sinTags sinTítulo examples DiscoveryPackage HawkTheme MochaTheme ReasoningWellTheme TagglyTagging TaskPackage pluginInfo TidIDEPackage features lewcidExtension Fondo5 Fondo1 NavigationPackage bookmarklet community MediaPackage options plugins sinBarra sinTitulo QuickEditPackage ScrollbarPackage IconPackage Template NestedSlidersPlugin FondoBlanco FondoAmarillo FondoClaro CSS package settings story Note ThemePackage [[Using the QuickEdit Toolbar]] WoodshopPackage Tools VisualTW>>
/***
|Name|TagCloudPlugin|
|Source|http://www.TiddlyTools.com/#TagCloudPlugin|
|Version|1.6.0|
|Author|Eric Shulman|
|Original Author|Clint Checketts|
|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|present a 'cloud' of tags (or links) using proportional font display|
!Usage
<<<
{{{
<<cloud type action:... limit:... tag tag tag ...>>
<<cloud type action:... limit:... +TiddlerName>>
<<cloud type action:... limit:... =tagvalue>>
}}}
where:
* //type// is a keyword, one of:
** ''tags'' (default) - displays a cloud of tags, based on frequency of use
** ''links'' - displays a cloud of tiddlers, based on number of links //from// each tiddler
** ''references'' - displays a cloud of tiddlers, based on number of links //to// each tiddler
* ''action:popup'' (default) - clicking a cloud item shows a popup with links to related tiddlers<br>//or//<br> ''action:goto'' - clicking a cloud item immediately opens the tiddler corresponding to that item
* ''limit:N'' (optional) - restricts the cloud display to only show the N most popular tags/links
* ''tag tag tag...'' (or ''title title title'' if ''links''/''references'' is used)<br>shows all tags/links in the document //except// for those listed as macro parameters
* ''+TiddlerName''<br>shows tags/links read from a space-separated, bracketed list stored in a separate tiddler.
* ''=tagvalue'' (//only if type=''tags''//)<br>shows only tags that are themselves tagged with the indicated tag value (i.e., ~TagglyTagging usage)
//note: for backward-compatibility, you can also use the macro {{{<<tagCloud ...>>}}} in place of {{{<<cloud ...>>}}}//
<<<
!Examples
<<<
//all tags excluding<<tag systemConfig>>, <<tag excludeMissing>> and <<tag script>>//
{{{<<cloud systemConfig excludeMissing script>>}}}
{{groupbox{<<cloud systemConfig excludeMissing script>>}}}
//top 10 tags excluding<<tag systemConfig>>, <<tag excludeMissing>> and <<tag script>>//
{{{<<cloud limit:10 systemConfig excludeMissing script>>}}}
{{groupbox{<<cloud limit:10 systemConfig excludeMissing script>>}}}
//tags listed in// [[FavoriteTags]]
{{{<<cloud +FavoriteTags>>}}}
{{groupbox{<<cloud +FavoriteTags>>}}}
//links to tiddlers tagged with 'package'//
{{{<<cloud action:goto =package>>}}}
{{groupbox{<<cloud action:goto =package>>}}}
//top 20 most referenced tiddlers//
{{{<<cloud references limit:20>>}}}
{{groupbox{<<cloud references limit:20>>}}}
//top 20 tiddlers that contain the most links//
{{{<<cloud links limit:20>>}}}
{{groupbox{<<cloud links limit:20>>}}}
<<<
!Revisions
<<<
2009.02.26 [1.6.0] added {{{action:...}}} parameter to apply popup vs. goto action when clicking cloud items
2009.02.05 [1.5.0] added ability to show links or back-links (references) instead of tags and renamed macro to {{{<<cloud>>}}} to reflect more generalized usage.
2008.12.16 [1.4.2] corrected group calculation to prevent 'group=0' error
2008.12.16 [1.4.1] revised tag filtering so excluded tags don't affect calculations
2008.12.15 [1.4.0] added {{{limit:...}}} parameter to restrict the number of tags displayed to the top N most popular
2008.11.15 [1.3.0] added {{{+TiddlerName}}} parameter to include only tags that are listed in the indicated tiddler
2008.09.05 [1.2.0] added '=tagname' parameter to include only tags that are themselves tagged with the specified value (i.e., ~TagglyTagging usage)
2008.07.03 [1.1.0] added 'segments' property to macro object.  Extensive code cleanup
<<<
!Code
***/
//{{{
version.extensions.TagCloudPlugin= {major: 1, minor: 6 , revision: 0, date: new Date(2009,2,26)};
//Originally created by Clint Checketts, contributions by Jonny Leroy and Eric Shulman
//Currently maintained and enhanced by Eric Shulman
//}}}
//{{{
config.macros.cloud = {
	tagstip: "%1 tiddlers tagged with '%0'",
	refslabel: " (%0 references)",
	refstip: "%1 tiddlers have links to '%0'",
	linkslabel: " (%0 links)",
	linkstip: "'%0' has links to %1 other tiddlers",
	groups: 9,
	init: function() {
		config.macros.tagCloud=config.macros.cloud; // for backward-compatibility
		config.shadowTiddlers.TagCloud='<<cloud>>';
		config.shadowTiddlers.StyleSheetTagCloud=
			'/*{{{*/\n'
			+'.tagCloud span {line-height: 3.5em; margin:3px;}\n'
			+'.tagCloud1{font-size: 80%;}\n'
			+'.tagCloud2{font-size: 100%;}\n'
			+'.tagCloud3{font-size: 120%;}\n'
			+'.tagCloud4{font-size: 140%;}\n'
			+'.tagCloud5{font-size: 160%;}\n'
			+'.tagCloud6{font-size: 180%;}\n'
			+'.tagCloud7{font-size: 200%;}\n'
			+'.tagCloud8{font-size: 220%;}\n'
			+'.tagCloud9{font-size: 240%;}\n'
			+'/*}}}*/\n';
		setStylesheet(store.getTiddlerText('StyleSheetTagCloud'),'tagCloudsStyles');
	},
	getLinks: function(tiddler) { // get list of links to existing tiddlers and shadows
		if (!tiddler.linksUpdated) tiddler.changed();
		var list=[]; for (var i=0; i<tiddler.links.length; i++) {
			var title=tiddler.links[i];
			if (store.isShadowTiddler(title)||store.tiddlerExists(title))
				list.push(title);
		}
		return list;
	},
	handler: function(place,macroName,params) {
		// unpack params
		var inc=[]; var ex=[]; var limit=0; var action='popup';
		var links=(params[0]&&params[0].toLowerCase()=='links'); if (links) params.shift();
		var refs=(params[0]&&params[0].toLowerCase()=='references'); if (refs) params.shift();
		if (params[0]&&params[0].substr(0,7).toLowerCase()=='action:')
			action=params.shift().substr(7).toLowerCase();
		if (params[0]&&params[0].substr(0,6).toLowerCase()=='limit:')
			limit=parseInt(params.shift().substr(6));
		if (params.length) {
			if (params[0].substr(0,1)=='+') { // get tag list from tiddler
				var inc=store.getTiddlerText(params[0].substr(1),'').readBracketedList();
			} else if (params[0].substr(0,1)=='=') { // get tag list using tagged tags
				var tagged=store.getTaggedTiddlers(params[0].substr(1));
				for (var t=0; t<tagged.length; t++) inc.push(tagged[t].title);
			} else ex=params; // exclude params
		}
		// get all items, include/exclude specific items
		var items=[];
		var list=(links||refs)?store.getTiddlers('title','excludeLists'):store.getTags();
		for (var t=0; t<list.length; t++) {
			var title=(links||refs)?list[t].title:list[t][0];
			if (links)	var count=this.getLinks(list[t]).length;
			else if (refs)	var count=store.getReferringTiddlers(title).length;
			else 		var count=list[t][1];
			if ((!inc.length||inc.contains(title))&&(!ex.length||!ex.contains(title)))
				items.push({ title:title, count:count });
		}
		if(!items.length) return;
		// sort by decending count, limit results (optional)
		items=items.sort(function(a,b){return(a.count==b.count)?0:(a.count>b.count?-1:1);});
		while (limit && items.length>limit) items.pop();
		// find min/max and group size
		var most=items[0].count;
		var least=items[items.length-1].count;
		var groupSize=(most-least+1)/this.groups;
		// sort by title and draw the cloud of items
		items=items.sort(function(a,b){return(a.title==b.title)?0:(a.title>b.title?1:-1);});
		var cloudWrapper = createTiddlyElement(place,'div',null,'tagCloud',null);
		for (var t=0; t<items.length; t++) {
			cloudWrapper.appendChild(document.createTextNode(' '));
			var group=Math.ceil((items[t].count-least)/groupSize)||1;
			var className='tagCloudtag tagCloud'+group;
			var tip=refs?this.refstip:links?this.linkstip:this.tagstip;
			tip=tip.format([items[t].title,items[t].count]);
			if (action=='goto') { // TAG/LINK/REFERENCES GOTO
				var btn=createTiddlyLink(cloudWrapper,items[t].title,true,className);
				btn.title=tip;
				btn.style.fontWeight='normal';
			} else if (!links&&!refs) { // TAG POPUP
				var btn=createTiddlyButton(cloudWrapper,items[t].title,tip,onClickTag,className);
				btn.setAttribute('tag',items[t].title);
			} else { // LINK/REFERENCES POPUP
				var btn=createTiddlyButton(cloudWrapper,items[t].title,tip,
					function(ev) { var e=ev||window.event; var cmt=config.macros.cloud;
						var popup = Popup.create(this);
						var title = this.getAttribute('tiddler');
						var count = this.getAttribute('count');
						var refs  = this.getAttribute('refs')=='T';
						var links = this.getAttribute('links')=='T';
						var label = (refs?cmt.refslabel:cmt.linkslabel).format([count]);
						createTiddlyLink(popup,title,true);
						createTiddlyText(popup,label);
						createTiddlyElement(popup,'hr');
						if (refs) {
							popup.setAttribute('tiddler',title);
							config.commands.references.handlePopup(popup,title);
						}
						if (links) {
							var tiddler = store.fetchTiddler(title);
							var links=config.macros.cloud.getLinks(tiddler);
							for(var i=0;i<links.length;i++)
								createTiddlyLink(createTiddlyElement(popup,'li'),
									links[i],true);
						}
						Popup.show();
						e.cancelBubble=true; if(e.stopPropagation) e.stopPropagation();
						return false;
					}, className);
				btn.setAttribute('tiddler',items[t].title);
				btn.setAttribute('count',items[t].count);
				btn.setAttribute('refs',refs?'T':'F');
				btn.setAttribute('links',links?'T':'F');
				btn.title=tip;
			}
		}
	}
};
//}}}
Note, this stuff is a bit old and in need of redrafting in some places. Apologies.
!Chapter 1
Early versions of TiddlyWiki didn't have tagging. A couple of smart TiddlyWiki hackers realised that being able to tag your data in TiddlyWiki would be really good and (as is often the case with TiddlyWiki) they were inspired to have a go at adding it themselves. The result was two TiddlyWiki adaptations that implemented tagging, one called TagglyWiki created by Jody Foo, and one called TiddlyTagWiki by Johnny ~LeRoy. 

TiddlyTagWiki used a 'tags as separate things' philosophy, space separated tags and popup menus when you click on a tag. TagglyWiki (and there was also a GTDTagglyWiki) had a 'tiddler is a tag is a tiddler' philosophy, had comma separated tags and introduced the concept of tiddlers displaying a list of their tagged tiddlers.

When Jeremy added tagging to the official TiddlyWiki version he considered both approaches and decided on the TiddlyTagWiki implementation. Jody Foo stopped maintaining TagglyWiki at around that time so TagglyWiki fans like me were forced to stick with their aging [[TagglyWiki]]s, missing out on numerous upgrades and cool new features as each revision of TiddlyWiki came out, until eventually they couldn't take it any more and started wondering what they could do to get hold of an up-to-date TiddlyWiki with TagglyWiki style tagging. (Okay, maybe that last part was just me!)

So when TiddlyWiki began to support enhancements via systemConfig plugins I decided to try to write a version of TagglyWiki style tagging as a plugin. It turned out to be easier than I thought. I managed to get it working and created MonkeyPirateTiddlyWiki (see [[Ancient Stuff]]) to share it (and my other plugins). Since then there have been a few enhancements like dynamic updating of tagged lists and the new sort controls.

TiddlyTagWiki has continued to be maintained by Johnny and now contains some interesting new plugins.

!Chapter 2
In TiddlyWiki version 2.0 Jeremy incorporated the "tiddler is a tag is a tiddler" concept into TiddlyWiki and introduced the "tagging" list, the other central component of TagglyTagging. Some of the main reasons for TagglyTagging's existence had vanished! But instead of disappearing TagglyTagging became the set of tools it is now, an enhanced tagging list with sort controls, some layout changes and a few other simple tools (NewHerePlugin, QuickOpenTagPlugin and RenameTagsPlugin) that facilitate using tags in the powerful TagglyTagging way.

!Chapter 3
After the TiddlyWiki 2.1 release TagglyTaggingPlugin was completely rewritten. Some new features were added like site map mode and better support for columns. Also support for the new refresh mechanism was added which greatly improved the efficiency of dynamically updating the tagging lists.
You can do this right here and now. Maybe you should print this out so it's easy to follow while working on screen. I presume you have some familiarity with TiddlyWiki basics. If you are having trouble following this then try this [[excellent tutorial|http://www.blogjones.com/TiddlyWikiTutorial.html]] first.

!Getting started: Create some content
* First hit "close others" to clear up your screen
* Click "new tiddler" from the main menu.
* Name the tiddler "~MyStuff" by typing into the title box.
* Add some contents to the contents box, for example "This is my stuff"
* Click the Done button to save the new tiddler. (We will return to this one later).
* Let's say you just returned from a meeting and want to enter a couple of notes about it
** Click "new tiddler"
** Enter tiddler title as "Meeting with Leo - 12 Oct"
** Add some meeting notes in the content box
** Don't click Done just yet...

!Tagging your content
* Before you save the "Meeting with Leo..." tiddler let's add some tags
** It's a meeting so let's give it a tag called "Meetings". Type Meetings in the tags box.
** The meeting was with Leo so let's give it a tag called Leo. Type Leo in the tags box.
** Let's say the meeting was about budget planning for example. Type Budget in the tags box.
** So your tags box should look like this: {{{Meetings Leo Budget}}}
*Now save the tiddler by clicking the Done button.

!Using the tags
*No big deal so far, right? Now we start to get into TagglyTagging territory.
*Notice the tags appear above the title. They are italicised to indicate they don't exist yet (just like any other tiddler that doesn't exist yet).
*Click on the Leo tag. You will open an empty tiddler called Leo.
**Give it some content like "Leo Runcible, ext 1234. Likes cats". Or whatever.
**Leo's a person so give him a tag of "People" by typing People in the tags box.
**Save it by clicking Done.

!Lets pick up the pace
*Go back to your "Meeting with Leo..." tiddler.
** Click on Meetings. Give Meetings a tag of ~MyStuff and save it.
** Click on People. Give People a tag of ~MyStuff and save it.
** Click on Budget. Give Budget a tag of Projects. Type something about the Budget project in the tiddler contents if you want. Save it.
** Now above the Budget title click on the Projects tag. Give Projects a tag of ~MyStuff. Save that.
* Now find your ~MyStuff tiddler. Look at the tagged tiddler list which appears at the bottom of the tiddler. It should be a list containing Meetings, People and Projects.
* Close a few tiddlers and try navigating to your meeting tiddler from ~MyStuff using the tagged tiddler lists.

That's a quick look at the basics of TagglyTagging. Hopefully by now you have some idea about what TagglyTagging can do. Play around with it a little more if you like. Then continue to...

!The New Here Button
* Click on People.
* Do you know any other people?
* If so click, "new here" in the People tiddler
** Notice that the tags box already contains the tag People. (This is what the new here button does. It creates a new tiddler with the tag already filled in).
** Type someone's name and some notes on that person. Click Done to Save.
* Add a couple more people for fun
** Notice what happens to the "tagged tiddler" list at the bottom of the People tiddler.

!Changing the structure of your data
Let's look at how easy it is to change your structure. Suppose you decide that you want to have different types of Projects: Ongoing, Current and Future
* Go to your Budget tiddler. Edit it and change the Projects tag to OngoingProjects. Save.
* Click the OngoingProjects tag. Give that a tag of "Projects".
* That's it. You're done. Well actually you haven't added the Ongoing and Future Projects but you can see that's not hard. Maybe click "new here" at the Projects tiddler. Or maybe just tag a project as Future Projects and do it from the bottom up.

!Another example
* Suppose your original meeting had an action item for you. Type it into the meeting notes as a wiki word or {{{[[}}}Do Something{{{]]}}}.
* Now click on it and give it a tag of Todo. Type any extra information about how you're going to do it when it's due by etc into the contents. Put a reminder in there if you have ReminderPlugin installed.
* Now make sure you can get to your Todos by tagging Todo tiddler as MyStuff.
* For convenience let's put a link to MyStuff in your MainMenu. This will put all your new organised information at your fingertips at all times.

!Sort Controls and Columns
* If you mouse over a tagged tiddler list you should see some buttons. Try them out. Note that if you save it remembers your choice.

!Wrapup
Hopefully you can see that TagglyTagging gives you a powerful way to organise and structure your information. Don't forget that you can still use conventional wiki links to navigate around your tiddlers. TagglyTagging just gives you another way to do cool stuff with your TiddlyWiki.


~~This tutorial is a draft. Feedback is welcome. Please [[contact|Contact]] me with comments and suggestions.~~
See [[TagglyTagging FAQ]].
/***
|Name:|TagglyTaggingPlugin|
|Description:|tagglyTagging macro is a replacement for the builtin tagging macro in your ViewTemplate|
|Version:|3.3.1 ($Rev: 6100 $)|
|Date:|$Date: 2008-07-27 01:42:07 +1000 (Sun, 27 Jul 2008) $|
|Source:|http://mptw.tiddlyspot.com/#TagglyTaggingPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
See http://mptw.tiddlyspot.com/#TagglyTagging
***/
//{{{

merge(String.prototype,{

	parseTagExpr: function(debug) {

		if (this.trim() == "")
			return "(true)";

		var anyLogicOp = /(!|&&|\|\||\(|\))/g;
		var singleLogicOp = /^(!|&&|\|\||\(|\))$/;

		var spaced = this.
			// because square brackets in templates are no good
			// this means you can use [(With Spaces)] instead of [[With Spaces]]
			replace(/\[\(/g," [[").
			replace(/\)\]/g,"]] "). 
			// space things out so we can use readBracketedList. tricky eh?
			replace(anyLogicOp," $1 ");

		var expr = "";

		var tokens = spaced.readBracketedList(false); // false means don't uniq the list. nice one JR!

		for (var i=0;i<tokens.length;i++)
			if (tokens[i].match(singleLogicOp))
				expr += tokens[i];
			else
				expr += "tiddler.tags.contains('%0')".format([tokens[i].replace(/'/,"\\'")]); // fix single quote bug. still have round bracket bug i think

		if (debug)
			alert(expr);

		return '('+expr+')';
	}

});

merge(TiddlyWiki.prototype,{
	getTiddlersByTagExpr: function(tagExpr,sortField) {

		var result = [];

		var expr = tagExpr.parseTagExpr();

		store.forEachTiddler(function(title,tiddler) {
			if (eval(expr))
				result.push(tiddler);
		});

		if(!sortField)
			sortField = "title";

		result.sort(function(a,b) {return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);});
		
		return result;
	}
});

config.taggly = {

	// for translations
	lingo: {
		labels: {
			asc:        "\u2191", // down arrow
			desc:       "\u2193", // up arrow
			title:      "title",
			modified:   "modified",
			created:    "created",
			show:       "+",
			hide:       "-",
			normal:     "normal",
			group:      "group",
			commas:     "commas",
			sitemap:    "sitemap",
			numCols:    "cols\u00b1", // plus minus sign
			label:      "Tagged as '%0':",
			exprLabel:  "Matching tag expression '%0':",
			excerpts:   "excerpts",
			descr:      "descr",
			slices:     "slices",
			contents:   "contents",
			sliders:    "sliders",
			noexcerpts: "title only",
			noneFound:  "(none)"
		},

		tooltips: {
			title:      "Click to sort by title",
			modified:   "Click to sort by modified date",
			created:    "Click to sort by created date",
			show:       "Click to show tagging list",
			hide:       "Click to hide tagging list",
			normal:     "Click to show a normal ungrouped list",
			group:      "Click to show list grouped by tag",
			sitemap:    "Click to show a sitemap style list",
			commas:     "Click to show a comma separated list",
			numCols:    "Click to change number of columns",
			excerpts:   "Click to show excerpts",
			descr:      "Click to show the description slice",
			slices:     "Click to show all slices",
			contents:   "Click to show entire tiddler contents",
			sliders:    "Click to show tiddler contents in sliders",
			noexcerpts: "Click to show entire title only"
		},

		tooDeepMessage: "* //sitemap too deep...//"
	},

	config: {
		showTaggingCounts: true,
		listOpts: {
			// the first one will be the default
			sortBy:     ["title","modified","created"],
			sortOrder:  ["asc","desc"],
			hideState:  ["show","hide"],
			listMode:   ["normal","group","sitemap","commas"],
			numCols:    ["1","2","3","4","5","6"],
			excerpts:   ["noexcerpts","excerpts","descr","slices","contents","sliders"]
		},
		valuePrefix: "taggly.",
		excludeTags: ["excludeLists","excludeTagging"],
		excerptSize: 50,
		excerptMarker: "/%"+"%/",
		siteMapDepthLimit: 25
	},

	getTagglyOpt: function(title,opt) {
		var val = store.getValue(title,this.config.valuePrefix+opt);
		return val ? val : this.config.listOpts[opt][0];
	},

	setTagglyOpt: function(title,opt,value) {
		if (!store.tiddlerExists(title))
			// create it silently
			store.saveTiddler(title,title,config.views.editor.defaultText.format([title]),config.options.txtUserName,new Date(),"");
		// if value is default then remove it to save space
		return store.setValue(title,
			this.config.valuePrefix+opt,
			value == this.config.listOpts[opt][0] ? null : value);
	},

	getNextValue: function(title,opt) {
		var current = this.getTagglyOpt(title,opt);
		var pos = this.config.listOpts[opt].indexOf(current);
		// a little usability enhancement. actually it doesn't work right for grouped or sitemap
		var limit = (opt == "numCols" ? store.getTiddlersByTagExpr(title).length : this.config.listOpts[opt].length);
		var newPos = (pos + 1) % limit;
		return this.config.listOpts[opt][newPos];
	},

	toggleTagglyOpt: function(title,opt) {
		var newVal = this.getNextValue(title,opt);
		this.setTagglyOpt(title,opt,newVal);
	}, 

	createListControl: function(place,title,type) {
		var lingo = config.taggly.lingo;
		var label;
		var tooltip;
		var onclick;

		if ((type == "title" || type == "modified" || type == "created")) {
			// "special" controls. a little tricky. derived from sortOrder and sortBy
			label = lingo.labels[type];
			tooltip = lingo.tooltips[type];

			if (this.getTagglyOpt(title,"sortBy") == type) {
				label += lingo.labels[this.getTagglyOpt(title,"sortOrder")];
				onclick = function() {
					config.taggly.toggleTagglyOpt(title,"sortOrder");
					return false;
				}
			}
			else {
				onclick = function() {
					config.taggly.setTagglyOpt(title,"sortBy",type);
					config.taggly.setTagglyOpt(title,"sortOrder",config.taggly.config.listOpts.sortOrder[0]);
					return false;
				}
			}
		}
		else {
			// "regular" controls, nice and simple
			label = lingo.labels[type == "numCols" ? type : this.getNextValue(title,type)];
			tooltip = lingo.tooltips[type == "numCols" ? type : this.getNextValue(title,type)];
			onclick = function() {
				config.taggly.toggleTagglyOpt(title,type);
				return false;
			}
		}

		// hide button because commas don't have columns
		if (!(this.getTagglyOpt(title,"listMode") == "commas" && type == "numCols"))
			createTiddlyButton(place,label,tooltip,onclick,type == "hideState" ? "hidebutton" : "button");
	},

	makeColumns: function(orig,numCols) {
		var listSize = orig.length;
		var colSize = listSize/numCols;
		var remainder = listSize % numCols;

		var upperColsize = colSize;
		var lowerColsize = colSize;

		if (colSize != Math.floor(colSize)) {
			// it's not an exact fit so..
			upperColsize = Math.floor(colSize) + 1;
			lowerColsize = Math.floor(colSize);
		}

		var output = [];
		var c = 0;
		for (var j=0;j<numCols;j++) {
			var singleCol = [];
			var thisSize = j < remainder ? upperColsize : lowerColsize;
			for (var i=0;i<thisSize;i++) 
				singleCol.push(orig[c++]);
			output.push(singleCol);
		}

		return output;
	},

	drawTable: function(place,columns,theClass) {
		var newTable = createTiddlyElement(place,"table",null,theClass);
		var newTbody = createTiddlyElement(newTable,"tbody");
		var newTr = createTiddlyElement(newTbody,"tr");
		for (var j=0;j<columns.length;j++) {
			var colOutput = "";
			for (var i=0;i<columns[j].length;i++) 
				colOutput += columns[j][i];
			var newTd = createTiddlyElement(newTr,"td",null,"tagglyTagging"); // todo should not need this class
			wikify(colOutput,newTd);
		}
		return newTable;
	},

	createTagglyList: function(place,title,isTagExpr) {
		switch(this.getTagglyOpt(title,"listMode")) {
			case "group":  return this.createTagglyListGrouped(place,title,isTagExpr); break;
			case "normal": return this.createTagglyListNormal(place,title,false,isTagExpr); break;
			case "commas": return this.createTagglyListNormal(place,title,true,isTagExpr); break;
			case "sitemap":return this.createTagglyListSiteMap(place,title,isTagExpr); break;
		}
	},

	getTaggingCount: function(title,isTagExpr) {
		// thanks to Doug Edmunds
		if (this.config.showTaggingCounts) {
			var tagCount = config.taggly.getTiddlers(title,'title',isTagExpr).length;
			if (tagCount > 0)
				return " ("+tagCount+")";
		}
		return "";
	},

	getTiddlers: function(titleOrExpr,sortBy,isTagExpr) {
		return isTagExpr ? store.getTiddlersByTagExpr(titleOrExpr,sortBy) : store.getTaggedTiddlers(titleOrExpr,sortBy);
	},

	getExcerpt: function(inTiddlerTitle,title,indent) {
		if (!indent)
			indent = 1;

		var displayMode = this.getTagglyOpt(inTiddlerTitle,"excerpts");
		var t = store.getTiddler(title);

		if (t && displayMode == "excerpts") {
			var text = t.text.replace(/\n/," ");
			var marker = text.indexOf(this.config.excerptMarker);
			if (marker != -1) {
				return " {{excerpt{<nowiki>" + text.substr(0,marker) + "</nowiki>}}}";
			}
			else if (text.length < this.config.excerptSize) {
				return " {{excerpt{<nowiki>" + t.text + "</nowiki>}}}";
			}
			else {
				return " {{excerpt{<nowiki>" + t.text.substr(0,this.config.excerptSize) + "..." + "</nowiki>}}}";
			}
		}
		else if (t && displayMode == "contents") {
			return "\n{{contents indent"+indent+"{\n" + t.text + "\n}}}";
		}
		else if (t && displayMode == "sliders") {
			return "<slider slide>\n{{contents{\n" + t.text + "\n}}}\n</slider>";
		}
		else if (t && displayMode == "descr") {
			var descr = store.getTiddlerSlice(title,'Description');
			return descr ? " {{excerpt{" + descr  + "}}}" : "";
		}
		else if (t && displayMode == "slices") {
			var result = "";
			var slices = store.calcAllSlices(title);
			for (var s in slices)
				result += "|%0|<nowiki>%1</nowiki>|\n".format([s,slices[s]]);
			return result ? "\n{{excerpt excerptIndent{\n" + result  + "}}}" : "";
		}
		return "";
	},

	notHidden: function(t,inTiddler) {
		if (typeof t == "string") 
			t = store.getTiddler(t);
		return (!t || !t.tags.containsAny(this.config.excludeTags) ||
				(inTiddler && this.config.excludeTags.contains(inTiddler)));
	},

	// this is for normal and commas mode
	createTagglyListNormal: function(place,title,useCommas,isTagExpr) {

		var list = config.taggly.getTiddlers(title,this.getTagglyOpt(title,"sortBy"),isTagExpr);

		if (this.getTagglyOpt(title,"sortOrder") == "desc")
			list = list.reverse();

		var output = [];
		var first = true;
		for (var i=0;i<list.length;i++) {
			if (this.notHidden(list[i],title)) {
				var countString = this.getTaggingCount(list[i].title);
				var excerpt = this.getExcerpt(title,list[i].title);
				if (useCommas)
					output.push((first ? "" : ", ") + "[[" + list[i].title + "]]" + countString + excerpt);
				else
					output.push("*[[" + list[i].title + "]]" + countString + excerpt + "\n");

				first = false;
			}
		}

		return this.drawTable(place,
			this.makeColumns(output,useCommas ? 1 : parseInt(this.getTagglyOpt(title,"numCols"))),
			useCommas ? "commas" : "normal");
	},

	// this is for the "grouped" mode
	createTagglyListGrouped: function(place,title,isTagExpr) {
		var sortBy = this.getTagglyOpt(title,"sortBy");
		var sortOrder = this.getTagglyOpt(title,"sortOrder");

		var list = config.taggly.getTiddlers(title,sortBy,isTagExpr);

		if (sortOrder == "desc")
			list = list.reverse();

		var leftOvers = []
		for (var i=0;i<list.length;i++)
			leftOvers.push(list[i].title);

		var allTagsHolder = {};
		for (var i=0;i<list.length;i++) {
			for (var j=0;j<list[i].tags.length;j++) {

				if (list[i].tags[j] != title) { // not this tiddler

					if (this.notHidden(list[i].tags[j],title)) {

						if (!allTagsHolder[list[i].tags[j]])
							allTagsHolder[list[i].tags[j]] = "";

						if (this.notHidden(list[i],title)) {
							allTagsHolder[list[i].tags[j]] += "**[["+list[i].title+"]]"
										+ this.getTaggingCount(list[i].title) + this.getExcerpt(title,list[i].title) + "\n";

							leftOvers.setItem(list[i].title,-1); // remove from leftovers. at the end it will contain the leftovers

						}
					}
				}
			}
		}

		var allTags = [];
		for (var t in allTagsHolder)
			allTags.push(t);

		var sortHelper = function(a,b) {
			if (a == b) return 0;
			if (a < b) return -1;
			return 1;
		};

		allTags.sort(function(a,b) {
			var tidA = store.getTiddler(a);
			var tidB = store.getTiddler(b);
			if (sortBy == "title") return sortHelper(a,b);
			else if (!tidA && !tidB) return 0;
			else if (!tidA) return -1;
			else if (!tidB) return +1;
			else return sortHelper(tidA[sortBy],tidB[sortBy]);
		});

		var leftOverOutput = "";
		for (var i=0;i<leftOvers.length;i++)
			if (this.notHidden(leftOvers[i],title))
				leftOverOutput += "*[["+leftOvers[i]+"]]" + this.getTaggingCount(leftOvers[i]) + this.getExcerpt(title,leftOvers[i]) + "\n";

		var output = [];

		if (sortOrder == "desc")
			allTags.reverse();
		else if (leftOverOutput != "")
			// leftovers first...
			output.push(leftOverOutput);

		for (var i=0;i<allTags.length;i++)
			if (allTagsHolder[allTags[i]] != "")
				output.push("*[["+allTags[i]+"]]" + this.getTaggingCount(allTags[i]) + this.getExcerpt(title,allTags[i]) + "\n" + allTagsHolder[allTags[i]]);

		if (sortOrder == "desc" && leftOverOutput != "")
			// leftovers last...
			output.push(leftOverOutput);

		return this.drawTable(place,
				this.makeColumns(output,parseInt(this.getTagglyOpt(title,"numCols"))),
				"grouped");

	},

	// used to build site map
	treeTraverse: function(title,depth,sortBy,sortOrder,isTagExpr) {

		var list = config.taggly.getTiddlers(title,sortBy,isTagExpr);

		if (sortOrder == "desc")
			list.reverse();

		var indent = "";
		for (var j=0;j<depth;j++)
			indent += "*"

		var childOutput = "";

		if (depth > this.config.siteMapDepthLimit)
			childOutput += indent + this.lingo.tooDeepMessage;
		else
			for (var i=0;i<list.length;i++)
				if (list[i].title != title)
					if (this.notHidden(list[i].title,this.config.inTiddler))
						childOutput += this.treeTraverse(list[i].title,depth+1,sortBy,sortOrder,false);

		if (depth == 0)
			return childOutput;
		else
			return indent + "[["+title+"]]" + this.getTaggingCount(title) + this.getExcerpt(this.config.inTiddler,title,depth) + "\n" + childOutput;
	},

	// this if for the site map mode
	createTagglyListSiteMap: function(place,title,isTagExpr) {
		this.config.inTiddler = title; // nasty. should pass it in to traverse probably
		var output = this.treeTraverse(title,0,this.getTagglyOpt(title,"sortBy"),this.getTagglyOpt(title,"sortOrder"),isTagExpr);
		return this.drawTable(place,
				this.makeColumns(output.split(/(?=^\*\[)/m),parseInt(this.getTagglyOpt(title,"numCols"))), // regexp magic
				"sitemap"
				);
	},

	macros: {
		tagglyTagging: {
			handler: function (place,macroName,params,wikifier,paramString,tiddler) {
				var parsedParams = paramString.parseParams("tag",null,true);
				var refreshContainer = createTiddlyElement(place,"div");

				// do some refresh magic to make it keep the list fresh - thanks Saq
				refreshContainer.setAttribute("refresh","macro");
				refreshContainer.setAttribute("macroName",macroName);

				var tag = getParam(parsedParams,"tag");
				var expr = getParam(parsedParams,"expr");

				if (expr) {
					refreshContainer.setAttribute("isTagExpr","true");
					refreshContainer.setAttribute("title",expr);
					refreshContainer.setAttribute("showEmpty","true");
				}
				else {
					refreshContainer.setAttribute("isTagExpr","false");
					if (tag) {
        				refreshContainer.setAttribute("title",tag);
						refreshContainer.setAttribute("showEmpty","true");
					}
					else {
        				refreshContainer.setAttribute("title",tiddler.title);
						refreshContainer.setAttribute("showEmpty","false");
					}
				}
				this.refresh(refreshContainer);
			},

			refresh: function(place) {
				var title = place.getAttribute("title");
				var isTagExpr = place.getAttribute("isTagExpr") == "true";
				var showEmpty = place.getAttribute("showEmpty") == "true";
				removeChildren(place);
				addClass(place,"tagglyTagging");
				var countFound = config.taggly.getTiddlers(title,'title',isTagExpr).length
				if (countFound > 0 || showEmpty) {
					var lingo = config.taggly.lingo;
					config.taggly.createListControl(place,title,"hideState");
					if (config.taggly.getTagglyOpt(title,"hideState") == "show") {
						createTiddlyElement(place,"span",null,"tagglyLabel",
								isTagExpr ? lingo.labels.exprLabel.format([title]) : lingo.labels.label.format([title]));
						config.taggly.createListControl(place,title,"title");
						config.taggly.createListControl(place,title,"modified");
						config.taggly.createListControl(place,title,"created");
						config.taggly.createListControl(place,title,"listMode");
						config.taggly.createListControl(place,title,"excerpts");
						config.taggly.createListControl(place,title,"numCols");
						config.taggly.createTagglyList(place,title,isTagExpr);
						if (countFound == 0 && showEmpty)
							createTiddlyElement(place,"div",null,"tagglyNoneFound",lingo.labels.noneFound);
					}
				}
			}
		}
	},

	// todo fix these up a bit
	styles: [
"/*{{{*/",
"/* created by TagglyTaggingPlugin */",
".tagglyTagging { padding-top:0.5em; }",
".tagglyTagging li.listTitle { display:none; }",
".tagglyTagging ul {",
"	margin-top:0px; padding-top:0.5em; padding-left:2em;",
"	margin-bottom:0px; padding-bottom:0px;",
"}",
".tagglyTagging { vertical-align: top; margin:0px; padding:0px; }",
".tagglyTagging table { margin:0px; padding:0px; }",
".tagglyTagging .button { visibility:hidden; margin-left:3px; margin-right:3px; }",
".tagglyTagging .button, .tagglyTagging .hidebutton {",
"	color:[[ColorPalette::TertiaryLight]]; font-size:90%;",
"	border:0px; padding-left:0.3em;padding-right:0.3em;",
"}",
".tagglyTagging .button:hover, .hidebutton:hover, ",
".tagglyTagging .button:active, .hidebutton:active  {",
"	border:0px; background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]];",
"}",
".selected .tagglyTagging .button { visibility:visible; }",
".tagglyTagging .hidebutton { color:[[ColorPalette::Background]]; }",
".selected .tagglyTagging .hidebutton { color:[[ColorPalette::TertiaryLight]] }",
".tagglyLabel { color:[[ColorPalette::TertiaryMid]]; font-size:90%; }",
".tagglyTagging ul {padding-top:0px; padding-bottom:0.5em; margin-left:1em; }",
".tagglyTagging ul ul {list-style-type:disc; margin-left:-1em;}",
".tagglyTagging ul ul li {margin-left:0.5em; }",
".editLabel { font-size:90%; padding-top:0.5em; }",
".tagglyTagging .commas { padding-left:1.8em; }",
"/* not technically tagglytagging but will put them here anyway */",
".tagglyTagged li.listTitle { display:none; }",
".tagglyTagged li { display: inline; font-size:90%; }",
".tagglyTagged ul { margin:0px; padding:0px; }",
".excerpt { color:[[ColorPalette::TertiaryDark]]; }",
".excerptIndent { margin-left:4em; }",
"div.tagglyTagging table,",
"div.tagglyTagging table tr,",
"td.tagglyTagging",
" {border-style:none!important; }",
".tagglyTagging .contents { border-bottom:2px solid [[ColorPalette::TertiaryPale]]; padding:0 1em 1em 0.5em;",
"  margin-bottom:0.5em; }",
".tagglyTagging .indent1  { margin-left:3em;  }",
".tagglyTagging .indent2  { margin-left:4em;  }",
".tagglyTagging .indent3  { margin-left:5em;  }",
".tagglyTagging .indent4  { margin-left:6em;  }",
".tagglyTagging .indent5  { margin-left:7em;  }",
".tagglyTagging .indent6  { margin-left:8em;  }",
".tagglyTagging .indent7  { margin-left:9em;  }",
".tagglyTagging .indent8  { margin-left:10em; }",
".tagglyTagging .indent9  { margin-left:11em; }",
".tagglyTagging .indent10 { margin-left:12em; }",
".tagglyNoneFound { margin-left:2em; color:[[ColorPalette::TertiaryMid]]; font-size:90%; font-style:italic; }",
"/*}}}*/",
		""].join("\n"),

	init: function() {
		merge(config.macros,this.macros);
		config.shadowTiddlers["TagglyTaggingStyles"] = this.styles;
		store.addNotification("TagglyTaggingStyles",refreshStyles);
	}
};

config.taggly.init();

//}}}

/***
InlineSlidersPlugin
By Saq Imtiaz
http://tw.lewcid.org/sandbox/#InlineSlidersPlugin

// syntax adjusted to not clash with NestedSlidersPlugin
// added + syntax to start open instead of closed

***/
//{{{
config.formatters.unshift( {
	name: "inlinesliders",
	// match: "\\+\\+\\+\\+|\\<slider",
	match: "\\<slider",
	// lookaheadRegExp: /(?:\+\+\+\+|<slider) (.*?)(?:>?)\n((?:.|\n)*?)\n(?:====|<\/slider>)/mg,
	lookaheadRegExp: /(?:<slider)(\+?) (.*?)(?:>)\n((?:.|\n)*?)\n(?:<\/slider>)/mg,
	handler: function(w) {
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart ) {
			var btn = createTiddlyButton(w.output,lookaheadMatch[2] + " "+"\u00BB",lookaheadMatch[2],this.onClickSlider,"button sliderButton");
			var panel = createTiddlyElement(w.output,"div",null,"sliderPanel");
			panel.style.display = (lookaheadMatch[1] == '+' ? "block" : "none");
			wikify(lookaheadMatch[3],panel);
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
		}
   },
   onClickSlider : function(e) {
		if(!e) var e = window.event;
		var n = this.nextSibling;
		n.style.display = (n.style.display=="none") ? "block" : "none";
		return false;
	}
});

//}}}
See [[TagglyTagging Tutorial]].

<<tiddler [[PerfilTemplate]] with:'Teresa López de la Vieja'>>

{{oculto{
Foto: [img[Contacto|FotosPersonales/Teresa_thumb.jpg][Contacto]]

Nombre: Teresa López<br>de la Vieja

!CurriculumESP
[[Mª Teresa López de la Vieja de la Torre|Teresa López de la Vieja]]. Catedrática de Filosofía Moral y Política, Facultad de Filosofía, Universidad de Salamanca. ''Proyectos de investigación financiados:'' DGICYT, Junta de Castilla y León, 6º Programa Marco UE, AECID. Investigadora responsable del ~GR41, grupo de excelencia de la Junta de Castilla y León, Unidad Asociada con el CSIC en Madrid. ''Líneas de investigación:'' Filosofía moral contemporánea, Ética aplicada, Teoría feminista, Filosofía política. ''Profesora invitada:'' Universidad de Heidelberg, Costa Rica, Case Western Reserve University, UNAM de Mexico,  Evora. ''Comites:'' Comite de Bioetica de la Universidad de Salamanca, Comisión de Igualdad de la Universidad. ([[Página web personal|http://web.usal.es/~tlv/]])

!CurriculumENG
<br>+++[english]
[[Mª Teresa López de la Vieja de la Torre|Teresa López de la Vieja]]. Professor of Moral Philosophy and Political Philosophy (with tenure), Facultad de Filosofía, Universidad de Salamanca. ''Research Projects:'' DGICYT, Junta de Castilla y León, 6th Framework Programme EU, AECID. Director of the Group ~GR41 (Junta de Castilla y León), responsible of the Associated Section of the Philosophy Institute of the CSIC, Madrid, in the University of Salamanca. ''Research interests:'' Contemporary Moral Philosophy, Applied Ethics, Feminism, Political Philosophy. ''Exchanges with Universities:'' University of Heidelberg, Costa Rica, Case Western Reserve University, UNAM (Mexico), Evora. ''Committees:'' Bioethics Committee of the University of Salamanca, Equality Commission of the University. ([[Personal web page|http://web.usal.es/~tlv/]])
===

!Publicaciones
<<tiddler [[Bioética y ciudadanía::Foto]]>><<tiddler [[Bioethical Education::Foto]]>><<tiddler [[Feminismo ecológico::Foto]]>><<tiddler [[Bioética. Entre la medicina y la ética::Foto]]>><<tiddler [[Ciudadanos de Europa::Foto]]>><<tiddler [[La mitad del mundo::Foto]]>><<tiddler [[Ética y literatura::Foto]]>><<tiddler [[Feminismo. Del pasado al presente::Foto]]>><<tiddler [[Principios morales y casos prácticos::Foto]]>>

| !''2009'' |<<tiddler [[Teresa López de la Vieja##2009]]>> |
| !''2008'' |<<tiddler [[Teresa López de la Vieja##2008]]>> |
| !''2007'' |<<tiddler [[Teresa López de la Vieja##2007]]>> |
| !''2006'' |<<tiddler [[Teresa López de la Vieja##2006]]>> |
| !''2005'' |<<tiddler [[Teresa López de la Vieja##2005]]>> |
| !''2004'' |<<tiddler [[Teresa López de la Vieja##2004]]>> |
| !''2003'' |<<tiddler [[Teresa López de la Vieja##2003]]>> |
| !''2001'' |<<tiddler [[Teresa López de la Vieja##2001]]>> |
| !''2000'' |<<tiddler [[Teresa López de la Vieja##2000]]>> |

Ver más publicaciones: [[Dialnet|http://dialnet.unirioja.es/servlet/autor?codigo=32498]] / [[Página personal|http://web.usal.es/~tlv/publicaciones.htm]]
!2009
*“Ética ambiental, sociedad civil”, Rubio Carracedo, J., Rosales, J.M., Toscano, M.:  //Democracia, ciudadanía y educación//, Akal, Madrid, 2009, 339-362.

!2008
*//[[Bioética y ciudadanía]]//, Biblioteca Nueva, Madrid, 2008;
*“Autonomy”, Herve. Ch. (ed.): //Visions compareés de la Bioethique//, L´Harmattan, Paris, 2008, 95-99;
*“Bioethics. Gender Issues”, Herve. Ch. (ed.): //Visions compareés de la Bioethique//, L´Harmattan, Paris, 2008, 101-104;
*“Dignidad y bienes públicos”, Ausin, T., Rodríguez A., R.: //In(ter)dependencia. Del bienestar a la dignidad//, Plaza y Valdés, Madrid, 2008, 51-68;
* “Bioetica femminista”, Girolami, P.: //L´educazione alla bioetica in Europa//, SEED, Torino, 2008, 43-55;
*“Justicia y cuidado”, Puleo, A.: //El reto de la igualdad de género//, Biblioteca Nueva, Madrid, 2008,  pp.238-25;
*“Organ Donors. Something for Nothing”, López de la Vieja, M.T., Velayos, C. (eds): //[[Educación en Bioética|Bioethical Education]]. Donación y transplante de órganos. [[Bioethical Education]]. Organ Procurement and Transplantation//, Publicaciones Universidad de Salamanca, Salamanca, 2008,  pp. 69-80;
*"Ética de la investigación: las buenas prácticas", //Arbor: Ciencia, pensamiento y cultura//, ''730'' (2008), pp. 233-245. [[ver|http://dialnet.unirioja.es/servlet/articulo?codigo=2575155]]

!2007
*“Lo ambiental es político”,  García ~Gómez-Heras, J.M., Velayos, C.: //[[Responsabilidad política y medio ambiente]]//, Biblioteca Nueva, Madrid, 2007, pp. 77-105;
!2006
*“Bioética feminista. Del cuidado al género”, //Estudios multidisciplinares de género//, ''3'', 2006, 107-127;
!2005
*(ed.) //[[Bioética. Entre la medicina y la ética]]//, Universidad de Salamanca, Salamanca, 2005;

!2004
*(ed.) //[[Ciudadanos de Europa]]//, Biblioteca Nueva, Madrid, 2004;
*//[[La mitad del mundo. Ética y Critica feminista|La mitad del mundo]]//, Universidad de Salamanca, Salamanca, 2004;

!2003
*//[[Ética y literatura]]//, Tecnos, Madrid, 2003;

!2001
*“Thinking Globalization, Rethinking Toleration”, Dallmayr, F.: //Beyond Nationalism? Sovereignty and Citizenship// Rowman,& Littlefield, Langham, 2001;

!2000
*(ed.) //[[Feminismo. Del pasado al presente]]//, Universidad de Salamanca, Salamanca, 2000;
*//[[Principios morales y casos prácticos]]//, Tecnos, Madrid, 2000;
|NameThemeTemplate|
|Description|Template Theme of TiddlyWiki|
|PageTemplate|##PageTemplate|
|ViewTemplate|##ViewTemplate|
|EditTemplate|##EditTemplate|
|StyleSheetLayout|##StyleSheetLayout|
|StyleSheet|##StyleSheet|


!PageTemplate
<!--{{{-->
qwerty
<!--}}}-->

!ViewTemplate
<!--{{{-->
qwerty
<!--}}}-->

!ViewTemplateToolbar
<!--{{{-->
qwerty
<!--}}}-->

!EditTemplate
<!--{{{-->
qwerty
<!--}}}-->

!StyleSheetLayout
/*{{{*/
qwertty
/*}}}*/

!StyleSheet
/*{{{*/


/* get user styles specified in StyleSheet */
[[StyleSheet]]

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

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

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

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

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

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

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

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

//}}}
/%
|Name|ToggleReadOnly|
|Source|http://www.TiddlyTools.com/#ToggleReadOnly|
|Version|1.1.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|script|
|Requires|InlineJavascriptPlugin|
|Overrides||
|Description|enable/disable global read-only state without reloading your document|
%/<<option chkHttpReadOnly>><script>
	var chk=place.lastChild;
	chk.style.margin=chk.style.padding="0";
	chk.title="enable/disable TiddlyWiki editing functions";
	chk.checked=readOnly;
	chk.coreOnChange=chk.onchange;
	chk.onchange=function() {
		if (this.coreOnChange) this.coreOnChange();
		this.checked=config.options.chkHttpReadOnly;
		readOnly=config.options.chkHttpReadOnly;
		story.switchTheme(config.options.txtTheme);
	};
</script><script label="read-only" title="enable/disable TiddlyWiki editing functions">
	place.previousSibling.click(); return false;
</script><script>
	var s=place.lastChild.style; s.display="inline"; s.fontWeight="normal";
</script>
/%
|Name|ToggleRightSidebar|
|Source|http://www.TiddlyTools.com/#ToggleRightSidebar|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|script|
|Requires|InlineJavascriptPlugin|
|Overrides||
|Description|show/hide right sidebar (MainMenu)|

Usage: <<tiddler ToggleRightSidebar with: "label">>

Config settings:
	config.options.chkShowRightSidebar (true)
	config.options.txtToggleRightSideBarLabelShow (◄)
	config.options.txtToggleRightSideBarLabelHide (►)

%/<script label="$1" title="show/hide right sidebar content">
	var co=config.options;
	if (co.chkShowRightSidebar=='undefined') co.chkShowRightSidebar=true;
	co.chkShowRightSidebar=!co.chkShowRightSidebar;
	var sb=document.getElementById('sidebar'); if (!sb) return;
	sb.style.display=co.chkShowRightSidebar?'block':'none';
	document.getElementById('displayArea').style.marginRight=co.chkShowRightSidebar?'':'1em';
	saveOptionCookie('chkShowRightSidebar');
	var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
	var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
	if (typeof(place)!='undefined' && '$1'=='$'+'1') {
		place.innerHTML=co.chkShowRightSidebar?labelHide:labelShow;
		place.title=(co.chkShowRightSidebar?'hide':'show')+' right sidebar';
	}
	var sm=document.getElementById('storyMenu'); if (sm) config.refreshers.content(sm);
</script><script>
	var co=config.options;
	if (co.chkShowRightSidebar=='undefined') co.chkShowRightSidebar=true;
	var sb=document.getElementById('sidebar'); if (!sb) return;
	sb.style.display=co.chkShowRightSidebar?'block':'none';
	document.getElementById('displayArea').style.marginRight=co.chkShowRightSidebar?'':'1em';
	if ('$1'=='$'+'1') {
		var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
		var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
		place.lastChild.innerHTML=co.chkShowRightSidebar?labelHide:labelShow;
		place.lastChild.title=(co.chkShowRightSidebar?'hide':'show')+' right sidebar';
	}
</script>
<<tiddler [[LibroTemplate]] with:'Tomarse en serio la naturaleza'>>/%
Foto:

Titulo: Tomarse en serio la naturaleza:  ética ambiental en perspectiva multidisciplinar

Autores: [[Carmen Velayos]], José Mª ~Gómez-Heras (coords.)

OtrosDatos: Biblioteca Nueva, 2004

Descripcion: 
%/
|~ViewToolbar| fullscreen fontSize editTiddler > closeTiddler permalink references jump|
|~EditToolbar|+saveTiddler -cancelTiddler deleteTiddler|
* [[Actividades]]
* [[Docencia]]
* [[Investigación]]
* [[Publicaciones]]
<<closeAll>><<permaview>><<saveChanges>>
{{{
// Specify your account number here!
_uacct = "UA-8942274-1";

// CustomTracker as a namespace for tracking related functions
var CustomTracker = {
// store a reference to the original displayTiddler function
displayTiddler: story.displayTiddler
};

CustomTracker.track = function() {
if (readOnly) {
urchinTracker.apply(this, arguments);
}
};

CustomTracker.trackAndDisplayTiddler = function(srcElement, titles) {
// log with the tracker
CustomTracker.track('/' + titles);
// call the original displayTiddler function
CustomTracker.displayTiddler.apply(this,arguments);
};

// replace the default displayTiddler function with a tracking version
story.displayTiddler = CustomTracker.trackAndDisplayTiddler;

// Call once for the initial page load
CustomTracker.track();
}}}
<<tiddler [[LibroTemplate]] with:'Una muerte razonable'>>/%
Foto: [img[David Rodríguez-Arias: Una muerte razonable, 2005|FotosLibros/MuerteRazonable.jpg][Una muerte razonable]]

Titulo: Una muerte razonable. Testamento vital y eutanasia

Autores: [[David Rodríguez-Arias]]

OtrosDatos: Desclée de Brouwer, 2005

Descripcion: No siempre es posible mantener la vida de quienes se encuentran gravemente enfermos: la vida es una guerra perdida contra la muerte. Lo verdaderamente interesante, y lo más complicado, es preservar la calidad de vida de las personas hasta el momento de la muerte. Por eso, algunas de ellas se plantean, junto con sus familiares y los profesionales que las atienden, limitar las medidas de soporte vital y de ese modo dejar paso a la muerte. Otras, sobre todo en los países en que se ha legalizado, solicitan a sus médicos que les practiquen una eutanasia para acelerar el proceso y terminar de manera rápida con una vida que consideran demasiado degradante. Un tercer escenario, cada vez más frecuente, es el de los enfermos hospitalizados que han perdido su capacidad para tomar decisiones sobre su salud. Estos pueden haber establecido por adelantado y por escrito los tratamientos que desearían o no recibir. El propósito de este libro es esclarecer y debatir desde un punto de vista ético todas esas prácticas relacionadas con el final de la vida, lejos de posturas apriorísticas, intransigentes e irracionales. 
%/
/*{{{*/
config.macros.search.label = "buscar";
config.macros.search.prompt = "buscar en este TiddlyWiki";
config.macros.search.successMsg = " artículos encontrados que tienen: ";
config.macros.search.failureMsg = "Ningún artículo encontrado que tuviera: ";
config.macros.tagging.label = "etiquetado: ";
config.macros.tagging.labelNotTag = "no etiquetado";
config.macros.tagging.tooltip = "Lista de artículos etiquetados con '%0'";

config.messages.backupFailed = "Falló al guardar el archivo de respaldo";
config.messages.backupSaved = "Archivo de respaldo guardado";
config.messages.cantSaveError = "No es posible guardar cambios con este navegador. Usa FireFox si puedes";
config.messages.customConfigError = "Se han producido problemas al cargar las extensiones. Ver pluginManager para más detalles";
config.messages.pluginError = "Error: %0";
config.messages.pluginDisabled = "No ejecutado, deshabilitado via 'sytemConfigDisable'";
config.messages.pluginForced = "Ejecutado, forzado via 'systemConfigForce' ";
config.messages.pluginVersionError = "No ejecutado porque este plugin necesita una nueva versión de TiddlyWiki";
config.messages.nothingSelected = "No hay nada seleccionado. Debe seleccionar primero una o más opciones";
config.messages.emptyFailed = "Falló al guardar una plantilla vacía";
config.messages.emptySaved = "Plantilla vacía guardada";
config.messages.tiddlerLinkTooltip = "%0 - %1, %2";
config.messages.externalLinkTooltip = "Enlace externo a %0 ";
config.messages.invalidFileError = "El archivo original no parece ser un TiddlyWiki: ";
config.messages.macroError = "Error ejecutando macro ";
config.messages.mainFailed = "Falló al guardar el archivo principal de TiddlyWiki. Tus cambios no han sido guardados";
config.messages.mainSaved = "Archivo principal de TiddlyWiki se guardó ";
config.messages.noTags = "No hay artículos etiquetados";
config.messages.notFileUrlError = "Necesitas guardar este TiddlyWiki a un archivo antes de que puedas guardar cambios";
config.messages.overwriteWarning = "Un artículo llamado '%0' ya existe. Presiona OK para sobreescribirlo";
config.messages.rssFailed = "Falló al guardar archivo RSS";
config.messages.rssSaved = "Archivo RSS guardado";
config.messages.savedSnapshotError = "Parece que este TiddlyWiki ha sido guardado incorrectamente. Por favor vea el sitio TiddlyWiki para más detalles";
config.messages.subtitleUnknown = "(desconocido )";
config.messages.undefinedTiddlerToolTip = "'%0' aún no existe";
config.messages.unsavedChangesWarning = "¡ADVERTENCIA! Hay cambios que aún no han sido guardados\n\nPresiona OK para guardarlos\nPresiona CANCEL para perder los cambios";
config.messages.dates.months = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre","Diciembre"];
config.messages.dates.days = ["Domingo", "Lunes","Martes", "Miércoles", "Jueves", "Viernes", "Sábado"];
config.messages.dates.shortMonths = ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"];
config.messages.dates.shortDays = ["Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab"];
config.messages.shadowedTiddlerToolTip = "El artículo '%0' no existe aún, pero tiene un valor oculto predefinido";

config.messages.messageClose.text = "cerrar";
config.messages.messageClose.tooltip = "cerrar el panel de mensajes";

config.shadowTiddlers.OptionsPanel = "'Estas opciones para personalizar TiddlyWiki están guardadas en tu navegador'\n\n'Tu nombre de usuario para firmar tus textos. Escríbelo como una PalabraWiki (por ej., JuanBloggs)'\n<<option txtUserName>>\n<<option chkSaveBackups>> GuardaRespaldos\n<<option chkAutoSave>> AutoGuardar\n<<option chkGenerateAnRssFeed>> GenerarUnArchivoRSS\n<<option chkRegExpSearch>> BuscaRegExp\n<<option chkCaseSensitiveSearch>> BuscaSensitivoMayúscula\n<<option chkAnimate>> ActivarAnimaciones\n\n Vea las OpcionesAvanzadas\nPluginManager\nImportTiddlers";
config.shadowTiddlers.SideBarOptions = "<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'opciones »' 'Cambiar opciones avanzadas de TiddlyWiki'>>";
config.shadowTiddlers.SideBarTabs = "<<tabs txtMainTab Fecha 'Tiddlers cronológicamente' TabTimeline Título 'Tiddlers por título' TabAll 'Etiquetas' 'Tiddlers que estén etiquetados' TabTags 'Más' 'Más opciones' TabMore>>";
config.shadowTiddlers.TabMore = "<<tabs txtMoreTab 'Perdidos' 'Artículos que no tienen contenido' TabMoreMissing 'Huerfanos' 'Artículos no enlazados' TabMoreOrphans 'Ocultos' 'Artículos ocultos con valores por defecto' TabMoreShadowed>>";
config.shadowTiddlers.OpcionesAvanzadas = "<<option chkOpenInNewWindow>> Abre Enlaces En Ventana Nueva\n<<option chkSaveEmptyTemplate>> Crea Plantilla Nueva (cuando guarda se generará una plantilla nueva) \n<<option chkToggleLinks>> Hacer clic en enlaces a artículos que ya están abiertos, los cierran.\n^^(desactívalo con Control u otra tecla modificadora)^^\n<<option chkHttpReadOnly>> Solo lectura cuando se abre desde web\n<<option chkForceMinorUpdate>> Trata las ediciones de un artículo existente como cambios menores y preserva la fecha y tiempo\n^^(desactívalo com la tecla Shift al hacer clik con el boton 'guardar' o por usando las teclas Ctrl-Shift-Enter^^";

config.views.editor.defaultText = "Escribe el texto para '%0'.";
config.views.editor.tagChooser.popupNone = "No hay etiquetas definidas";
config.views.editor.tagChooser.tagTooltip = "Agregar la etiqueta ";
config.views.editor.tagChooser.text = "etiquetas";
config.views.editor.tagChooser.tooltip = "Escoje etiquetas existente para añadir a este artículo";
config.views.editor.tagPrompt = "Escribe etiquetas separadas con espacios, [[usa doble paréntesis cuadrado]] si es necesario, o escoje una existente ";

config.views.wikified.tag.labelNoTags = "sin etiquetas";
config.views.wikified.tag.labelTags = "etiquetas: ";
config.views.wikified.tag.openTag = "Abrir etiqueta '%0'";
config.views.wikified.tag.tooltip = "Mostar artículos etiquetados con '%0'";
config.views.wikified.tag.openAllText = "Abrir todos";
config.views.wikified.tag.openAllTooltip = "Abrir todos estos artículos";
config.views.wikified.tag.popupNone = "No hay otros artículos etiquetados con '%0'";

config.views.wikified.defaultText = "El artículo '%0' no existe aún. Doble clic para crearlo";
config.views.wikified.defaultModifier = "(perdido)";
config.views.wikified.shadowModifier = "(artículo oculto incluido)";
config.views.wikified.createdPrompt = "creado";

config.commands.editTiddler.text = "editar";
config.commands.editTiddler.tooltip = "Editar este artículo"
config.commands.editTiddler.readonlyText = "ver";
config.commands.editTiddler.readonlyText = "Ver el fuente de este artículo";

config.commands.closeTiddler.text = "cerrar";
config.commands.closeTiddler.tooltip = "Cerrar este artículo";

config.commands.closeOthers.text = "cerrar otros";
config.commands.closeOthers.tooltip = "Cerrar todos los otros artículos";

config.commands.saveTiddler.text = "guardar";
config.commands.saveTiddler.tooltip = "Guardar este artículo";

config.commands.cancelTiddler.text = "cancelar";
config.commands.cancelTiddler.tooltip = "Deshacer cambios de este artículo";
config.commands.cancelTiddler.warning = "¿Estás seguro de cancelar los cambios de '%0' ?";
config.commands.cancelTiddler.readOnlyText = "hecho";
config.commands.cancelTiddler.readOnlyTooltip = "Ver este artículo nomalmente";

config.commands.deleteTiddler.text = "borrar";
config.commands.deleteTiddler.tooltip = "Borrar este artículo";
config.commands.deleteTiddler.warning = "¿Estás seguro de querer borrar '%0' ?";

config.commands.permalink.text = "enlace permanente";
config.commands.permalink.tooltip = "Enlace a este artículo";

config.commands.references.text = "referencias";
config.commands.references.tooltip = "Mostrar artículos que enlacen a éste";
config.commands.references.popupNone = "No hay referencias";

config.commands.jump.text = "saltar";
config.commands.jump.tooltip = "Saltar a otro artículo abierto";

/*}}}*/
{{centrado{
''Coordinación:'' [[David Rodríguez-Arias]]&nbsp;&nbsp;|&nbsp;&nbsp;''Webmaster:'' [[Alberto Molina Pérez|mailto:albertononi@gmail.com]]&nbsp;&nbsp;|&nbsp;&nbsp;''Gráficos:'' Carissa Veliz
[[TiddlyWiki|http://www.tiddlywiki.com]] <<version>>[[.|ConfigurationMaintenance]]
<script>
        var tiddlers=store.getTiddlers("modified");
        var last=tiddlers[tiddlers.length-1];
        var when=last.modified.formatString("0DD/0MM/YYYY at 0hh:0mm:0ss");
        return "Last Modified:  " +when
</script>
}}}
//{{{
//This ensures that the footer sticks to the bottom of the screen when there are no tiddlers open. If that is not desirable, it can be deleted.
function setFooter() {
 if (document.getElementById && document.getElementById("contentFooter") ) {
 var windowHeight=findWindowHeight();
 if (windowHeight>0) {
 var contentHeight= document.getElementById('mainMenu').offsetHeight + document.getElementById("header").offsetHeight + document.getElementById("contentFooter").offsetHeight;
 var menu= document.getElementById('mainMenu');
 if (windowHeight-(contentHeight)>=0) {
 menu.style.position='relative';
 menu.style.marginBottom=(windowHeight-(contentHeight))+'px';
 }
 else {
 menu.style.position='';
 menu.style.marginBottom='';
 }
 }
 }
}
window.onresize = function() {
 setFooter();
}

Story.prototype.refreshTiddler_footerhack=Story.prototype.refreshTiddler;
Story.prototype.refreshTiddler = function (title,template,force)
{ 
var theTiddler = Story.prototype.refreshTiddler_footerhack.apply(this,arguments);
setFooter();
 return theTiddler;}

//}}}


/***
|Name|HoverMenuPlugin|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#HoverMenuPlugin|
|Version|1.11|
|Requires|~TW2.x|
!Description:
Provides a hovering menu on the edge of the screen for commonly used commands, that scrolls with the page.

!Demo:
Observe the hovering menu on the right edge of the screen.

!Installation:
Copy the contents of this tiddler to your TW, tag with systemConfig, save and reload your TW.
To customize your HoverMenu, edit the HoverMenu shadow tiddler.

To customize whether the menu sticks to the right or left edge of the screen, and its start position, edit the HoverMenu configuration settings part of the code below. It's well documented, so don't be scared!

The menu has an id of hoverMenu, in case you want to style the buttons in it using css.

!Notes:
Since the default HoverMenu contains buttons for toggling the side bar and jumping to the top of the screen and to open tiddlers, the ToggleSideBarMacro, JumpMacro and the JumpToTopMacro are included in this tiddler, so you dont need to install them separately. Having them installed separately as well could lead to complications.

If you dont intend to use these three macros at all, feel free to remove those sections of code in this tiddler.

!To Do:
* rework code to allow multiple hovering menus in different positions, horizontal etc.
* incorporate code for keyboard shortcuts that correspond to the buttons in the hovermenu

!History:
*03-08-06, ver 1.1.2: compatibility fix with SelectThemePlugin
*03-08-06,  ver 1.11: fixed error with button tooltips
*27-07-06, ver 1.1 : added JumpMacro to hoverMenu
*23-07-06

!Code
***/

/***
start HoverMenu plugin code
***/
//{{{
config.hoverMenu={};
//}}}

/***
HoverMenu configuration settings
***/
//{{{
config.hoverMenu.settings={
               align: 'right',    //align menu to right or left side of screen, possible values are 'right' and 'left'               
               x: 1,              // horizontal distance of menu from side of screen, increase to your liking.
               y: 158            //vertical distance of menu from top of screen at start, increase or decrease to your liking
               };
//}}}

//{{{
//continue HoverMenu plugin code
config.hoverMenu.handler=function()
{              
               if (!document.getElementById("hoverMenu"))
               {
               var theMenu = createTiddlyElement(document.getElementById("contentWrapper"), "div","hoverMenu");
               theMenu.setAttribute("refresh","content");
               theMenu.setAttribute("tiddler","HoverMenu");
               var menuContent = store.getTiddlerText("HoverMenu");
               wikify(menuContent,theMenu);
              }

	       var Xloc = this.settings.x;
	       Yloc =this.settings.y;
	       var ns = (navigator.appName.indexOf("Netscape") != -1);
	       function SetMenu(id)
                        {
		        var GetElements=document.getElementById?document.getElementById(id):document.all?document.all[id]:document.layers[id];
		        if(document.layers)GetElements.style=GetElements;
		        GetElements.sP=function(x,y){this.style[config.hoverMenu.settings.align]=x +"px";this.style.top=y +"px";};
		        GetElements.x = Xloc;
		        GetElements.y = findScrollY();
		        GetElements.y += Yloc;
		        return GetElements;
	                }
               window.LoCate_XY=function()
                        {
		        var pY =  findScrollY();
                        ftlObj.y += (pY + Yloc - ftlObj.y)/15;
		        ftlObj.sP(ftlObj.x, ftlObj.y);
		        setTimeout("LoCate_XY()", 10);
	                }
               ftlObj = SetMenu("hoverMenu");
	       LoCate_XY();
};

window.old_lewcid_hovermenu_restart = restart;
restart = function()
{
               window.old_lewcid_hovermenu_restart();
               config.hoverMenu.handler();
};

setStylesheet(
"#hoverMenu .imgLink, #hoverMenu .imgLink:hover {border:none; padding:0px; float:right; margin-bottom:2px; margin-top:0px;}\n"+
"#hoverMenu  .button, #hoverMenu  .tiddlyLink {border:none; font-weight:bold; background:#18f; color:#FFF; padding:0 5px; float:right; margin-bottom:4px;}\n"+
"#hoverMenu .button:hover, #hoverMenu .tiddlyLink:hover {font-weight:bold; border:none; color:#fff; background:#000; padding:0 5px; float:right; margin-bottom:4px;}\n"+
"#hoverMenu .button {width:100%; text-align:center}"+
"#hoverMenu { position:absolute; width:7px;}\n"+
"\n","hoverMenuStyles");


config.macros.renameButton={};
config.macros.renameButton.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{

               if (place.lastChild.tagName!="BR")
                     {
                      place.lastChild.firstChild.data = params[0];
                      if (params[1]) {place.lastChild.title = params[1];}
                     }
};

config.shadowTiddlers["HoverMenu"]="<<top>>\n<<toggleSideBar>><<renameButton '>' >>\n<<jump j '' top>>\n<<saveChanges>><<renameButton s 'Save TiddlyWiki'>>\n<<newTiddler>><<renameButton n>>\n";
//}}}
//end HoverMenu plugin code

//Start ToggleSideBarMacro code
//{{{
config.macros.toggleSideBar={};

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

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

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

     return false;
}

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

//start JumpToTopMacro code
//{{{
config.macros.top={};
config.macros.top.handler=function(place,macroName)
{
               createTiddlyButton(place,"^","jump to top",this.onclick);
}
config.macros.top.onclick=function()
{
               window.scrollTo(0,0);
};

config.commands.top =
{
               text:" ^ ",
               tooltip:"jump to top"
};

config.commands.top.handler = function(event,src,title)
{
               window.scrollTo(0,0);
}
//}}}
//end JumpToStartMacro code

//start JumpMacro code
//{{{
config.macros.jump= {};
config.macros.jump.handler = function (place,macroName,params,wikifier,paramString,tiddler)
{
        var label = (params[0] && params[0]!=".")? params[0]: 'jump';
        var tooltip = (params[1] && params[1]!=".")? params[1]: 'jump to an open tiddler';
        var top = (params[2] && params[2]=='top') ? true: false;        

        var btn =createTiddlyButton(place,label,tooltip,this.onclick);
        if (top==true)
              btn.setAttribute("top","true")
}

config.macros.jump.onclick = function(e)
{
        if (!e) var e = window.event;
        var theTarget = resolveTarget(e);
        var top = theTarget.getAttribute("top");
	var popup = Popup.create(this);
	if(popup)
		{
                 if(top=="true")
                                {createTiddlyButton(createTiddlyElement(popup,"li"),'Top ↑','Top of TW',config.macros.jump.top);
                                 createTiddlyElement(popup,"hr");}
		
		story.forEachTiddler(function(title,element) {
			createTiddlyLink(createTiddlyElement(popup,"li"),title,true);
			});
                }
	Popup.show(popup,false);
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	return false;
}

config.macros.jump.top = function()
{
       window.scrollTo(0,0);
}
//}}}
//end JumpMacro code

//utility functions
//{{{
Popup.show = function(unused,slowly)
{
	var curr = Popup.stack[Popup.stack.length-1];
	var rootLeft = findPosX(curr.root);
	var rootTop = findPosY(curr.root);
	var rootHeight = curr.root.offsetHeight;
	var popupLeft = rootLeft;
	var popupTop = rootTop + rootHeight;
	var popupWidth = curr.popup.offsetWidth;
	var winWidth = findWindowWidth();
        if (isChild(curr.root,'hoverMenu'))
              var x = config.hoverMenu.settings.x;
        else
              var x = 0;
	if(popupLeft + popupWidth+x > winWidth)
		popupLeft = winWidth - popupWidth -x;
        if (isChild(curr.root,'hoverMenu'))
  	        {curr.popup.style.right = x + "px";}
        else
                curr.popup.style.left = popupLeft + "px";
	curr.popup.style.top = popupTop + "px";
	curr.popup.style.display = "block";
	addClass(curr.root,"highlight");
	if(config.options.chkAnimate)
		anim.startAnimating(new Scroller(curr.popup,slowly));
	else
		window.scrollTo(0,ensureVisible(curr.popup));
}

window.isChild = function(e,parentId) {
        while (e != null) {
                var parent = document.getElementById(parentId);
                if (parent == e) return true;
                e = e.parentNode;
                }
        return false;
};
//}}}
/*{{{*/
if (config.options.txtUserName != "AlbertoMolina") {
	readOnly = true;
	showBackstage = false;
}

if (readOnly) { showBackstage = false; }

/%config.options.chkShowRightSidebar=false; %/

config.options.chkSinglePageMode= true; 

/% Para elegir el tema por defecto %/
config.options.txtTheme = 'CustomTheme';  

/*}}}*/
<<tiddler [[LibroTemplate]] with:'Ética de la dependencia'>>/%
Foto: [img[Enrique Bonete: Ética de la dependencia, 2009|FotosLibros/EticaDependencia.jpg][Ética de la dependencia]]

Titulo: Ética de la dependencia.<br>Bases Morales, Debates Políticos E Implicaciones Médicas De La Ley De Dependencia

Autores: [[Enrique Bonete]]

OtrosDatos: Tecnos, 2009

Descripcion: Los relevantes campos de la actividad filosófica desarrollados en este libro (ética, teoría política y bioética), con ineludibles implicaciones prácticas, no deben obviar ni ocultar, so pena de aniquilar sus propios fines intelectuales más dignos, la situación de fragilidad, vulnerabilidad y debilidad en que nos encontramos los seres humanos durante nuestra corta o larga existencia. La reciente Ley de Dependencia ha de ser contemplada como el trasfondo desde el cual se propone en este volumen una relectura de significativos planteamientos morales, políticos y bioéticos. 
%/
<<tiddler [[LibroTemplate]] with:'Ética de la sexualidad'>>/%
Foto: [img[Enrique Bonete: Ética de la sexualidad. Diálogos para educar en el amor|FotosLibros/EticaSexualidad.jpg][Ética de la sexualidad]]

Titulo: Ética de la sexualidad. Diálogos para educar en el amor

Autores: [[Enrique Bonete]]

OtrosDatos: Desclée de Brouwer, 2007

Descripcion: El libro se estructura a modo de un diálogo en torno a preguntas de ética sexual: fecundación artificial, sexo en adolescentes,“píldora del día después”, aborto, métodos anticonceptivos, preservativo y SIDA, uniones homosexuales, masturbación, liberación sexual, rupturas matrimoniales, amor, educación moral... Las respuestas están todas ellas extraídas de párrafos literales de diversos documentos eclesiales recientemente publicados. Estamos, pues, ante un nuevo modo de presentar al público las posiciones éticas de la Iglesia sobre cuestiones sexuales: respuestas a preguntas directas que ciudadanos de una sociedad secularizada lanzan de modo desafiante a los católicos.<br>Este texto ofrece un oportuno servicio eclesial: será útil para catequistas laicos y sacerdotes implicados en la formación cristiana de los adultos, y para numerosos jóvenes que se preparan al sacramento del matrimonio. Es manejable en un marco familiar donde los padres se propongan ser los responsables de la educación sexual de sus hijos. Igualmente podrá ser usado en un contexto educativo: los profesores contarán con unas claras reflexiones morales para orientar a sus alumnos zarandeados por una cultura hedonista. 
%/
<<tiddler [[LibroTemplate]] with:'Ética y cambio climático'>>/%
Foto: [img[Carmen Velayos: Ética y cambio climático, 2008|FotosLibros/EticaCambioClimatico.jpg][Ética y cambio climático]]

Titulo: Ética y cambio climático

Autores: [[Carmen Velayos]]

OtrosDatos: Desclée de Brouwer, 2008

Descripcion: No es demasiado tarde, pero la humanidad necesita empezar a actuar colectivamente para poner freno a la crisis climática que padecemos y que, sin duda, es uno de los más graves retos sociales que jamás hayamos padecido. Organismos internacionales reconocen que el cambio climático es un problema eminentemente ético. En primer lugar, su origen es humano: el aumento global de emisiones de gases de efecto invernadero. Se ha de comenzar a entender la crisis climática como un daño producido y no como un mal inevitable. En segundo lugar, ni su generación ni su desenlace han sido ni serán equitativos. No todos hemos contaminado en la misma medida ni resultamos igualmente vulnerables a sus efectos. Los países que menos han contribuido al cambio climático seguramente se verán más afectados.<br>Todo esto genera importantes cuestiones éticas que inciden en el reparto de la responsabilidad, en la salvaguarda de derechos humanos básicos, en la precaución colectiva frente a los riesgos, en la pregunta por nuevos hábitos o por la búsqueda de la felicidad. Este libro se acerca de forma clara y concisa al debate moral recién iniciado sobre tan relevantes problemas sociales. 
%/
<<tiddler [[LibroTemplate]] with:'Ética y ethos profesionales'>>/%
Foto: [img[Carmen Velayos (ed.): Ética y ethos profesionales, 2009|FotosLibros/EticaEthosProfesionales.jpg][Ética y ethos profesionales]]

Titulo: Ética y ethos profesionales

Autores: [[Carmen Velayos]] (ed.)

OtrosDatos: Biblioteca de bolsillo, 2009

Descripcion: 
%/
<<tiddler [[LibroTemplate]] with:'Ética y experimentación con seres humanos'>>/%
Foto: [img[David Rodríguez-Arias, Grégoire Moutel, Christian Hervé (eds.): Ética de la experimentación con seres humanos, 2008|FotosLibros/ExperimentaciónSeresHumanos.jpg][Ética y experimentación con seres humanos]]

Titulo: Ética y experimentación con seres humanos

Autores: [[David Rodríguez-Arias]], Grégoire Moutel, Christian Hervé (eds.)

OtrosDatos: Desclée de Brouwer, 2006

Descripcion: Históricamente, y en nombre del progreso de la ciencia, se ha abusado y manipulado a ciertos grupos de personas, sometiéndolas a experimentos biomédicos: prisioneros, niños, pobres, enfermos mentales, soldados, ancianos, minorías étnicas... En este libro se identifican y discuten, partiendo de ejemplos prácticos, los problemas éticos que plantea la investigación biomédica cuando se realiza con estos grupos vulnerables de la población.<br>  La medicina actual necesita llevar a cabo rigurosos procesos de validación científica para legitimar sus intervenciones. Durante tales procedimientos, a menudo es inevitable someter a individuos a intervenciones cuyos riesgos y beneficios todavía se desconocen. La investigación biomédica -o experimentación con seres humanos- genera conocimientos esenciales para el tratamiento y la curación de millones de personas. Ahora bien, el método que emplea implica con frecuencia la instrumentalización de muchos sujetos, que ponen su cuerpo y su salud al servicio del interés común. Por eso, la investigación biomédica, siendo moralmente necesaria, también es éticamente cuestionable.
%/
<<tiddler [[LibroTemplate]] with:'Ética y literatura'>>/%
Foto: [img[Teresa López de la Vieja: Ética y literatura, 2003|FotosLibros/libEticaLiteratura_thumb.jpg][Ética y literatura]]

Titulo: Ética y literatura

Autores: [[Teresa López de la Vieja]]

OtrosDatos: Tecnos, Madrid, 2003

Descripcion: El libro defiende el uso cognitivo de la Literatura por parte de la Ética. "No se puede mirar", los grabados de Goya mostraban la violencia y los horrores de la guerra. En Literatura, P. Levi y M. del Castillo han expuesto el lado mas sombrío de la Historia contemporánea. Las novelas de M.Aub han demostrado el valor de la Literatura como conocimiento indirecto. El libro analiza el papel que puede desempeñar la Literatura en la Filosofía practica. (a) Como sufrimiento y daño interfieren en los recuerdos, las victimas de guerras y de atrocidades prefieren silenciar el pasado. Es "la escritura o la vida", en la expresión de J. Semprun. (b) No obstante, la Filosofía puede obtener información sobre el daño y las atrocidades a través de la ficción. Por ejemplo, la Literatura ofrece una vía indirecta para recordar lo sucedido durante la Guerra Civil, o durante la Segunda Guerra Mundial. De esta forma, la Literatura presta su voz a los derrotados de la Historia. En cierta manera, sirve para "hacer justicia". (c) El discurso filosófico y la ficción siguen reglas distintas. Sin embargo, un tipo de situaciones extremas solo resulta accesible a través de la información indirecta que procede de la Literatura. Los relatos aportan algunos ejemplos, recuperan formas de vida y, de forma indirecta, informan sobre experiencias trágicas.
%/
<<tiddler [[LibroTemplate]] with:'Ética. Procedimientos razonables'>>/%
Foto: [img[Teresa López de la Vieja: Ética. Procedimientos razonables, 1994|FotosLibros/EticaProcedimientosRazonables.jpg][Ética. Procedimientos razonables]]

Titulo: Ética. Procedimientos razonables

Autores: [[Teresa López de la Vieja]]

OtrosDatos: Novo Seculo, Iria Flavia, 1994

Descripcion: Las teorías normativas contemporáneas conceden singular importancia a los procedimientos, a fin de asegurar la justificación de las normas.  Sin embargo, el  énfasis en la racionalidad  práctica y en la universalidad de los  principios  suele dejar en un  segundo plano  ciertas a cuestiones sustantivas. Cuestiones que, de otro lado,  influyen en la conducta y en los motivos de los agentes. El libro aboga por procedimientos razonables, que permitan una  justificación  interna, racional, y, al mismo tiempo, dejen espacio a consideraciones sobre la situación real de los agentes, problemas derivados de sistemas de dominio, las voces de la diferencia, la necesidad de comprender otras pautas de cultura, la construcción de una identidad europea, etc. Procedimientos, en fin, como  instrumento para reflexionar sobre actividades concretas, sobre las teorías y su recepción, sobre los contextos de la Ética. Procedimientos “razonables” para que la teoría se ajuste a la complejidad  del pasado y del presente.
%/
<<tiddler [[LibroTemplate]] with:'Éticas contemporáneas'>>/%
Foto: [img[Enrique Bonete: Éticas contemporáneas, 1990|FotosLibros/EticasContemporaneas.jpg][Éticas contemporáneas]]

Titulo: Éticas contemporáneas

Autores: [[Enrique Bonete]]

OtrosDatos: Tecnos, 1990

Descripcion: 
%/
<<tiddler [[LibroTemplate]] with:'Éticas en esbozo'>>/%
Foto: [img[Enrique Bonete: Éticas en esbozo, 2003|FotosLibros/éticas en esbozo.jpg][Éticas en esbozo]]

Titulo: Éticas en esbozo. De política, felicidad y muerte

Autores: [[Enrique Bonete]]

OtrosDatos: Desclée de Brouwer, 2003

Descripcion: Este libro ofrece un conjunto de esbozos personales, abiertos a futuros desarrollos filosóficos, de algunos de los temas de ética más relevantes en nuestro contexto cultural (ética política, ética de la felicidad, ética de la muerte, ética del morir...), así como una lectura sugerente de la vertiente moral tanto de autores clásicos (Aristóteles, San Agustín, Kant, Marx), como de pensadores contemporáneos (Sartre, Apel, Rawls, Rorty, Unamuno, Zubiri, Marías...). Todo ello expuesto con un lenguaje que combina rigor y claridad expositiva, que hace de este libro una introducción a problemas éticos sumamente actuales desde una perspectiva personalista-cristiana.<br><br><br><br><br><br>
%/