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

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

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

#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:0em 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 .3em 0;}
#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;}

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

#contentWrapper {display:block;}
#splashScreen {display:none;}

#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 #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; 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;}
#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 use a logographic writing system and 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;}

.htmlarea .toolbarHA table {border:1px solid ButtonFace; margin:0em 0em;}
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox where print preview displays the noscript content */
noscript {display:none;}
<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 class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<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 id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></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 +saveTiddler -cancelTiddler deleteTiddler'></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'></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
!Quedada para Misión [[La amenaza colosal|]] 63+.
:Necesito esa ballesta!
Aquí tenéis una de las mejores páginas de Addons para el [[WoW|]]:

*[[Auctioneer|]]. Todo lo que necesitas para controlar los precios de los objetos y la AH.
*[[Titan Panel|]]. Barras con información adicional muy útil.
*[[KlhThreatMeter|]]. Muestra un medidor de agro para cada miembro de tu grupo que lo tenga instalado.
*[[MobInfo+MobHealth|]]. Muestra info de cualquier mob. Muy útil para ver su health y maná exactos.
*[[BanckItems|]]. Para poder ver los objetos del banco, equipados y del buzón en cualkier parte ''y de cualquier pj''.
*[[Gatherer|]]. Para poder ver los nodos de minería, herborísteria y tesoros en el mapa... Mira [[aquí|Modificar Gatherer para cliente en castellano]] para ver como hacerlo funcionar con el cliente en castellano.
*[[Atlas|]] y [[AtlasLoot Enhanced|]]. El primero te muestras los mapas de las instancias del juego, y el segundo los drops de los npj's y sus porcentajes...etc. Muy útiles.
*[[Extended Quest Log|]]. Otro gestor de quests que te marca que mobs y/o objetos son de quests.
*[[QuestGuru|]]. Gestor de quests que almacena las completadas (desde que instalas el addon).
*[[Recipe Radar|]]. Necesitas ayuda para encontrar alguna receta, este es tu addon. Te muestra (incluso en el radar) los vendedores por zona/profesión que la venden.
*[[Advanced TradeSkill Window|]]. Amplia la info y apariencia de tu libro de profesión. Añádele [[esto|]] para que muestre los levels a los que da xp cada objeto que puedes crear, y tendrás todo un imprescindible.
*[[Fishing Buddy|]]. Gestor de información para tus ratos de pesca. Te muestra dónde se puede pescar cada tipo de pez.

Para instalarlos solo debeis descomprimir el rar en "C:/ Archivos de Programa / World of Warcraft / Interface / Addons".

You are going to need a lot of herbs. Create an alt storage character to store these herbs and then farm (or have an alt farm) for the herbs needed. Use the in game mail system to send the herbs to the storage character. Don't forget to send some gold to the storage character, so she can send the herbs back.

Once you have all the components collected, everything has to be send back to your main character. The mailbox only shows the first 50 items you have in the mail. It also puts the last item send to you on top. So to avoid complications send the components you need first last: i.e peacebloom and silverleaf are needed first, so these are the last to be send back to your main, after the briarthorn, mageroyal, etc.

The recipe's used require vendor bought components such as vials. These cost gold. To learn recipe's from a trainer also costs gold. The amount of gold needed is approximately 40 to 50 gold if you farm all of the herbs. If you want to buy everything you need from the auction house expect to spend upwards to 225 gold. This does not include gold for recipe's from vendors or the auction house.

1 - 60
Minor Healing Potions (1 x Peacebloom, 1 x Sliverleaf, 1 x Empty Vial) x 60

61 - 110
Lesser Healing Potion (1 x Minor Healing Potion, 1 x Briarthorn) x 50

111 - 140
Healing Potion (1 x Bruiseweed, 1 x Briarthorn, 1 x Leaded Vial) x 30

141 - 155
Lesser Mana Potion (1 x Mageroyal, 1 x Stranglekelp, 1 x Leaded Vial) x 15

156 - 185
Greater Healing Potion (1 x Liferoot, 1 x Kingsblood, 1 x Leaded Vial) x 30

186 - 210
Elixir of Agility (1 x Stranglekelp, 1 x Goldthorn, 1 x Leaded Vial) x 25

211 - 215
Elixir of Greater Defence (1 x Steelbloom, 1 x Goldthorn, 1 x Leaded Vial) x 5

216 - 230
Superior Healing Potion (1 x Sungrass, 1 x Khadgar's Whisker, 1 x Crystal Vial) x 15

231 - 250
Elixir of Detect Undead (1 x Arthas' Tears, 1 x Crystal Vial) x 20

251 - 265
Elixir of Greater Agility (1 x Sungrass, 1 x Goldthorn, 1 x Crystal Vial) x 15

266 - 285
Superior Mana Potion (2 x Sungrass, 2 x Blindweed, 1 x Crystal Vial) x 20

286 - 300
Major Healing Potion (2 x Golden Sansam, 1 x Mountain Silversage, 1 x Crystal vial) x 20

301 - 315
Volatile Healing Potion (1 x Golden Sansam, 1 x Felweed, 1 x Imbued Vial) x 20
N.B.You can make Major Mana Potions up to this point if you prefer. You'll need to make about 25 though.

316 - 330
Sneaking Potion (2 x Ragveil, 1 x Felweed, 1 x Imbued Vial) x 20

331 - 350
Super Healing Potion (2 x Dreaming Glory, 1 x Felweed, 1 x Imbued Vial) x 20

351 - 375
Major Dreamless Sleep Potion (1 x Dreaming Glory, 1 x Nightmare Vine, 1 x Imbued Vial) x 40
Goes green at 370, but it's easier to skill up on this, now that it's in the game, than use low drop rate recipes or faction rewards.
Can be bought from Leeli Longhaggle in Allerian Stronghold (Terokkar Forest) for Alliance and from Daga Ramba in Thunderlord Stronghold (Blade's Edge Mountains) for Horde players.

Approximate Materials Required

20 x Golden Sansam
60 x Felweed
100 x Imbued Vial
40 x Ragveil
80 x Dreaming Glory
40 x Nightmare Vine
![img[]] @@color(green):Ashandel@@
>''level 63''
>''Desollador/ Peletero''
> Hermandad ''"Colosos del infierno"''
*Haciendo quests en ''Bosque de Terokkar, [[Terrallende|Mapa de Outland]]''.
<<calendar numberMonths:2>>

*Poner aquí cuando queráis ir (fecha, comentarios y jugadores).
*Poner aquí cuando queráis ir (fecha, comentarios y jugadores).
*''Misión:'' @@color(yellow):''[[La amenaza colosal|]]''@@ @@color(green):"COMPLETO"@@
**''Fecha:'' @@color(yellow):''15/10/2007''@@.

*[[Screenshots|Screens 2.3]] de los reinos de prueba con el ''patch 2.3''.
*[[Screenshots|Screens WOTLK]] de ''Wrath of the Lich King''.
* ''Delatorre'' @@color(yellow):''15/10/2007''@@:
Solicito ayuda para llevar a cabo las siguientes misiones:
: [[El legado de Terokk|]] 
: [[El deporte sangriento definitivo|]]  @@color(green):''COMPLETA'' @@ Gracias a [[Nedriel]] y [[Stimly]]
: [[El círculo de sangre: El desafío final|]]
La primera transcurrirá en la dungeon Salas Sethekk. Ruego que aquel que esté dispuesto a sacrificar
su vida por librar del mal la susodicha instance lo comunique inmediatamente.
Para la segunda deberemos acabar con la miserable vida (por llamarla de alguna manera) de la
bestia Colmillo, en Nagrand.
Y por último deberemos de derrotar al temible humanoide Mogor, en el norte de Nagrand.

Espero vuestra colaboración, la causa lo merece!
Fecha sugerida: 25/10/2007. Hora: a partir de las 19:00h.

* ''Vonstriader'' @@color(yellow):''18/10/2007''@@:
El reconocido y afamado paladin Klaus Vonstriader ya ha conseguido la amistad de un redimido garañon.
Muchas gracias por su colaboración en tan honorable mision a :
* Ashandel por Stratholme.
* Stimly por Masacre.
* Nedriel y Delatorre por Stratholme, Masacre, Scholomance y esos largos viajes.

* ''Delatorre'' @@color(yellow):''15/10/2007''@@:
El valiente y venerado enano Delatorre se ofrece para acompañar a Sir Vonstriader 
en tal valerosa contienda y ofrecer su vida, si tal cosa fuese necesario.

* ''Vonstriader'' @@color(yellow):''15/10/2007''@@:
Se necesita aguerridos aventureros dispuestos a defender la luz en el mundo.
 Muchas malignas criaturas desean impedir que el honorable paladin Klaus Vonstriader obtenga 
la montura  que necesita para librar nuestras tierras del mal.
Dichas criaturas se encuentran alojadas en :

* Stratholme
* La matanza
* Scholomance

Se necesitan voluntarios para esta lucha contra el mál, dispuestos a ayudar a cambio
de montañas de gratitud :D

* ''Vonstriader'':
Pues ya tengo los materiales y la pasta, me faltan las quest :D

* ''Stimly'':
yeeeeeeee ya estoy yo aqui tambien jejejeje,a cascarlaaaaaa xd

* ''Delatorre'': 
Empiezo yo! :D Vonstriader, ya te mandé el dinero y un diamante de Azeroth, espero que fuera eso lo q necesitabas,
por qué cristales arcanos no tengo... :( Ya me contarás!

Esta guía se basa en llegar de 1 a 300 con __materiales encontrados en ~PNJs__.

Pero date cuenta que es MUCHO mas fácil y barato subir Cocina mientras subes Pesca al mismo tiempo.

He intentado elegir las recetas mas baratas, fáciles y rápidas de hacer y donde es posible he intentado permanecer en recetas aprendidas de entrenadores. Así que mueve tu*@**^@# a un entrenador de Cocina y aprende la habilidad de ''Aprendiz de Cocina''.

Así que empecemos a cocinar :) 

__Niveles de 1 a 40__

Ves a ''Forjaz'',  aprende a hacer  ''Pan'', baja abajo y compra especias y harina para subir hasta 40.

__Niveles de 41 a 75__

Ves a ''Drac Roughcut en Thelsamar'', Loch Modan y compra la ''receta de Carne de oso ahumado''.
Mata osos alrededor de Loch Modan por carne de oso.

__Niveles de 76 a 85__

Entrenate como ''Cocinero Oficial'' y consigue la ''receta de Pastel de cangrejo'' (Crab cake recipe).
Mata los ''Correarrecifes'' allrededor de la ''Costa Oscura'' y ''Páramos de Poniente'' (Darkshore y Westfall) por ''carne de reptador'' (Crawler meat).
Necesitaras unas 10. __Y no vendas las Garras de Reptador__ (Crawler Claws), las necesitaras para el siguiente paso.

__Niveles de 86 a 100__

Ves hasta ''Ventormenta'' (Stormwind) y compra la receta ''Pinza de cangrejo cocida'' (Cooked crab claw) de ''Kendor Kabonka''. Compra unas 20 ''especias suaves'' (Mild spices).
Vuelve a ''Costa Oscura o Páramos de Poniente'' y sigue matando ''reptadores''.
Necesitaras unas 20.

__Niveles de 101 a 130__

Ves a ''Chef Grual'' en ''Bosque del Ocaso'' (Darkshire) y consigue la ''misión de el Kebab de lobo salpimentado'' (Seasoned wolf kabobs).
Consigue las ''Hierbas aromáticas de Ventormenta'' (Stormwind seasoning herbs) de ''Felicia Gump en Ventormenta'' (Distrito de Mercaderes - Trade District).
Mata ''lobos'' alrededor de el ''Bosque del Ocaso'' (Duskwood) por C''ostillar de lobo magro'' (Lean wolf flank).
Necesitaras unos 50-60 (incluyendo los que necesitas para la misión).

__Niveles de 131 a 175__

A nivel 125 aprende el ''Cocinero Experto''.
Para ello ves a el ''Lago Mystral'' (Mystral Lake) en ''Vallefresno'' (Ashenvale) y compra el libro de ''Experto en cocina''.
Vuelve a ''Kendor Kabonka en Ventormenta'' y compra la ''receta de Tortilla con un sabor curioso'' (Curiously tasty omelet).
Mata ''Raptores en Tierras Altas de Arathi'' por ''Huevos de raptor'' (Raptor eggs). (''Quédate con toda la carne que suelten'', las necesitaras para el proximo paso).
Necesitaras unos 55 huevos y 55 especias picantes (Hot spices).

__Niveles de 176 a 200__

Ves a ver al ''Cabo Bluth'' (Corporal Bluth) en el ''campamento rebelde'' (Rebel camp) en la ''Verga de Tuercespina'' (Stranglethorn Vale) y compra la receta de ''raptor asado'' (Roast raptor) y de paso ''compra 40 especias picantes''. Cocina todas las carnes de raptor que conseguiste en las Tierras altas de arathi y entonces ves a matar a ''Acechadores de la selva'' (Jungle Stalkers) cerca de la ''Arena de Gurabashi'' (Gurabashi Arena) hasta que consigas llegar a 200 de cocina.

__Niveles de 201 a 225__

Ves a un entrenador y aprende ''Salchichas de araña'' (Spider sausage).
Mata ''Arañas Colmilloumbríos'' (Darkfangs) alrededor de ''Marjal Revolcafango'' (Dustwallow Marsh) para conseguir ''Carne de araña blanca'' (White spider meat).
Necesitaras unas 30.

__Nivel 225__

Ves a ''Gadgetzan'' y habla con ''Dirge Hojágil'' (Dirge Quikcleave) para obtener ''la misión de Cocinero Artesano - Sorpresa de almejate'' (Clamlette Surprize). Mientras estas aquí, compra la receta de ''Chuleta de lobo tierna'' (Tender wolf steaks).
Necesitaras ''12 huevos gigantes (Giant eggs), 10 Carne de almeja sabrosa (Zesty clam meat) y 20 Queso suizo de Alterac (Alterac swiss)''. El Queso suizo de Alterac es lo mas fácil de conseguir, simplemente ves a la zona de mercaderes en ''Ventormenta'' y compraselo a ''Ben Trias''. Consigue los huevos de Lechubestias (Owlbeasts) en ''Tierras del Interior'' (The Hinterlands). Para la carne de almeja ves a ''Puerto Bonvapor'' (Steamwheedle Port) en ''Tanaris'' y mata ''tortugas''. Dejaran caer ''Almejas de boca grande'' (Big mouth clams) con mucha facilidad, que contienen la ''Carne de almeja sabrosa''.
Sigue matando ''Lechubestias'' en ''Tierras del Interior'' y consigue unos ''70-80 huevos'' mas. Tambien ''mata los lobos de alrededor'' para conseguir ''Carne de lobo tierna'' (Tender wolf meat).
Ves a ''Talonbranch Glade en Frondavil'' (Felwood) y compra la ''receta de Tortilla de monstruo'' (Monster omelet) y sobre ''140-160 especias calmantes'' (''aquí es donde beneficia tener Pesca, si no es realmente caro'').

__Niveles de 226 a 285__

Quedate en ''Frondavil'' y cocina esas ''Tortillas de monstruo y Carne de lobo tierna'' que tienes. Si no tenias suficiente para llegar a 285, ves a matar a los ''lobos'' alrededor de ''Frondavil'' para conseguir mas.

__Niveles de 286 a 300__

Ves hasta el ''Fuerte Cenarion'' (Cenarion Hold) en ''Silithus'' y habla con ''Calandrath'' para la ''cadena de misiones de las recetas del desierto''. Cuando llegues a la ''tercera misión'' conseguiras la ''receta para Bolas de masa del desierto ahumadas'' (Smoked Desert Dumplings).
Mata ''Artilleros'' y ''Trituradores de arrastre'' (Dredge Crushers y Strikers) para ''la carne de gusano de arena'' (Sandworm meat). Tienen muy baja posibilidad de caer pero solo necesitas unas 10 mas de lo que necesita la misión y unas 20 ''especias calmantes''.
Cocina hasta 300. 

__Niveles de 300 a 375__

[[Noticias actuales]]
![img[]]  @@color(green):Delatorre@@
>''level 66''
>''[[Ingeniero|Ingeniería 1-375]] / Minero''
> Hermandad [[La Luz Tenebrosa|]]
*Haciendo quests en ''Nagrand, [[Terrallende|Mapa de Outland]]''.
!Introducción. ¿Qué es una macro?
En un juego con el tamaño, complejidad y fondo de World of Warcraft hay muchas opciones 
que los jugadores pueden pasar por alto, incluso expertos veteranos que llevan años jugando. 
Hasta las opciones más utilizadas y populares a menudo esconden aspectos y otros grados 
de dificultad que quizá muchos jugadores no usan o desconocen.

En el fondo no son más que líneas de texto que ejecutan comandos del juego y permiten 
combinar múltiples acciones dentro de un botón personalizado, que se puede usar de la misma
forma que un hechizo o facultad. Por ejemplo, puedes tomar una cadena de comandos que 
normalmente usarías pulsando uno a uno, y combinarlos en un sólo botón que los ejecute 
todos seguidos. Estas útiles herramientas permiten mejorar y hacer más eficiente tu 
experiencia de juego.

Las macros tienen algo que ofrecer a todos los tipos de jugadores, ya sean jugadores ocasionales 
o jugadores asiduos, además de adaptarse a una gran variedad de estilos de juego y situaciones, 
como la de liderar una banda JcE, luchar en arenas JcJ, o simplemente, jugar a rol en Forjaz. 
Son quizá una de las herramientas más útiles en tu arsenal tanto para JcE y JcJ. Las macros 
ahorran tiempo, unifican múltiples acciones, ayudan a la comunicación, y en definitiva, hacen 
que tu experiencia en Azeroth sea más cómoda.

Lo que pretendemos con esta guía de macros es hacerte descubrir nuevas opciones. 
La sección para principiantes servirá de introducción para jugadores nuevos en el campo de 
las macros, y las secciones posteriores explicarán las funciones de programación de nivel más 
avanzado que las macros son capaces de realizar.
!Crear una macro básica

''La ventana de macros''
Ya que hemos explicado qué es una macro, veamos cómo crear una. Esta es la manera más 
directa de ilustrar algunas de sus características más básicas.
Las macros tienen su propio menú secundario en la ventana principal "Opciones". 
Pulsa la tecla "ESC" de tu teclado o haz clic sobre el icono con imagen de un ordenador 
situado en el extremo derecho de la barra de menú principal y luego en el botón "Macros" 
y se abrirá la ventana principal de macros. Otra manera de abrir esta ventana es escribiendo 
"/macro" o simplemente "/m".

La ventana tiene dos pestañas, una para hasta 18 macros generales, que puedes usar con 
todos tus personajes, y otra para 18 macros exclusivas de cada personaje. Lo mejor es 
utilizar estas últimas para facultades específicas de clase o raza. Las ranuras de las macros 
pueden sobrescribirse en cualquier momento, así que tómate la libertad de probar varias macros. 
Todas las macros se guardan en tu ordenador (ten esto en cuenta si juegas con tu cuenta en 
ordenadores diferentes).

Debajo de las ranuras hay una ventana que muestra el texto de la macro seleccionada en ese 
momento. Una macro puede tener hasta 255 caracteres (incluyendo espacios) en su campo 
de texto. Debajo de esta ventana se encuentra un botón llamado "Cambiar nombre/icono", que 
aparece junto al icono de la macro. Pero si es la primera vez que creas una macro, no habrá 
ningún icono todavía, ya que no hay ninguna macro guardada... ¡Vamos a cambiar eso!
''Tu primera macro''
Primero, selecciona "Nuevo" para crear una nueva macro. Aparecerá otra ventana con un 
espacio para el nombre de la macro en la parte de arriba. El nombre de la macro debería 
ser lo más corto y descriptivo posible, ya que su nombre se mostrará en el icono mismo, 
y si es demasiado largo quedará visualmente truncado. Por eso las abreviaturas y los 
acrónimos son buenos candidatos para nombrar a una macro. También es posible no 
mostrar ningún nombre si escribes un espacio como nombre. Usemos como ejemplo 
la macro “Hola”.

Debajo del campo para el nombre verás una selección de iconos disponibles para la macro. 
Aquí mostramos algunas pautas generales para elegir el icono apropiado:

    * El icono con forma de interrogación en la ranura superior izquierda asigna 
automáticamente un icono que corresponda con la primera facultad o hechizo de la 
macro (entraremos en detalles un poco más adelante). Por lo general, este es un buen 
icono por defecto a elegir, sobre todo si no te apetece ponerte a buscar dentro de una 
lista enorme. Puede haber veces en las que te veas creando una macro improvisada para 
adaptarte a una situación determinada rápidamente... ¡el tiempo es oro!
    * Escoge un icono que sea distintivo para poder identificar lo que la macro hace. 
Un icono de un estilo similar al tipo de macro ayuda a identificarla con rapidez en pleno 
combate. Incluso relaciones abstractas pueden servir con este propósito. Por ejemplo, 
si buscas un icono para la conocida macro "ayudar", le iría bien una espada, un escudo 
o una cara humanoide... cualquier cosa que te ayude a recordar.
    * Si eliges un icono que coincida con el de alguno de tus hechizos, podrías confundirte. 
Sin embargo, la macro mostrará su nombre en el icono, lo que te ayudará a distinguir 
entre tu piroexplosión normal y tu macro Alhaja/Poder arcano/Piroexplosión.
Por ahora, elige el icono de interrogación. Fíjate en que éste ya destaca. No obstante, 
deberás hacer clic sobre el icono para activarlo. Ahora deberías ver la macro en la ranura 
superior izquierda de la ventana. La macro seleccionada destaca y su texto se muestra 
en la ventana de comando más abajo. Sin embargo, esta macro no hará nada todavía, 
porque la ventana de comando está vacía. Sin texto, la macro es como un soldado que 
espera órdenes para ejecutarlas. Vamos por tanto a introducir un poco de texto para dar 
una función a esta macro: haz clic en cualquier lugar dentro de la ventana "Agregar 
órdenes de macro".
Introduce estos comandos en dos líneas separadas

    /decir ¡Hola a todos! 

Una vez que hayas introducido estos comandos, no tendrás que confirmar o guardar manualmente: 
la macro se actualiza en tiempo real. La próxima vez que vuelvas al menú de creación de 
macros, la ventana estará como la dejaste, con la última macro seleccionada y el texto en pantalla.

Arrastra el icono a una ranura vacía de tu barra de acción. Deberías ver el icono con el nombre 
"Hola" en pantalla. De nuevo, este nombre se habría truncado si el número de caracteres 
hubiera sido demasiado grande para caber en el icono. El icono debería aparecer con una 
interrogante, ya que aún no hay hechizos ni facultades en la macro. Todo bien hasta ahora.

Ahora llega el momento de la verdad: ¡haz clic en la macro! Deberías ver cómo tu personaje 
saluda alegremente a todos los que están en el área, o a la persona que has seleccionado 
en concreto, de forma verbal y no verbal. ¡Hurra!
''Añadir comandos adicionales''
El siguiente paso es probar a añadir otro comando a tu flamante obra maestra. Primero, 
elige una facultad que no sea agresiva y que se use con frecuencia de tu clase, como Sigilo 
de los pícaros y Aura de devoción de los paladines. Vuelve a la ventana de macros y verás 
tu macro "Hola" tal y como la dejaste.

Ahora, introduce la nueva facultad al principio de la ventana de comandos para que sea la 
nueva línea que está al principio de la macro:

    /lanzar Sigilo 

“Sigilo” se tiene que reemplazar con la facultad que desees, con espacio entre las palabras 
si el nombre de la facultad es compuesto, por ejemplo: Sanación superior. Asegúrate de que 
escribes el nombre tal y como aparece en tu libro de hechizos o la macro no lo reconocerá. 
Si hay más de un rango de facultad disponible, se usará el superior que conozca el personaje. 
Cuando hayas acabado, cierra la ventana de macros y mira el icono de tu macro en la barra 
de acción. ¡Si has elegido el icono con la marca de la interrogación, se cambiará automáticamente 
al icono propio de esa facultad!

Haz clic en la nueva macro y mira la acción que realiza mientras saluda. ¡Mola!
:Y con eso damos fin a la introducción a las macros. En la siguiente página, entraremos en más 
:detalles sobre los tipos de macros que puedes hacer con hechizos y facultades, objetos, 
:objetivos y comunicación.

[>img[][Guía de Macros (2)]]

!Los múltiples usos de las macros básicas
En nuestra primera sección, cubrimos los principios básicos de la creación de una 
macro simple: eso fue solo la punta del iceberg. En esta sección, cubriremos 
las funciones más usadas de las macros: usar y equipar objetos, lanzar hechizos 
y usar facultades, seleccionar objetivos según criterios y mejorar la comunicación. 
Tendrás una serie de brillantes macros nuevas en tu barra de acción en un santiamén. 
!Usar, equipar y gestionar objetos con macros
Los objetos se usan en las macros con el comando /usar. Se acabó el tener que 
rebuscar en las bolsas para encontrar el abalorio que necesitas equiparte o el objeto 
consumible que no tienes en la barra de acción (y más cuando el tiempo apremia). 
Existen varios métodos y guías para el comando /usar:

    * Usar objetos por nombre con /usar nombre de objeto, como /usar Poción de 
sanación de combate sublime. Este sencillo formato tiene las mismas restricciones 
que el comando /lanzar como la precisa reproducción del nombre del objeto 
(al menos no hay rangos de por medio de los que preocuparse). Pulsa Mayús y 
haz clic en el nombre del objeto para evitar equivocarte. Si pruebas esta macro con 
un abalorio JcJ se equipará automáticamente primero si no estaba ya equipado. 
Cuando el tiempo de reutilización inicial acabe, esta macro usará el abalorio si se 
pulsa de nuevo. Ten en cuenta que si estás en combate o en otro estado en el que 
no puedes intercambiar objetos, esta macro no funcionará.
    * Usar objetos según la ranura en la que estén equipados se puede hacer con el 
comando /usar ranura en el inventario, en el que ranura equivale a un número. Los 
objetos que se pueden equipar que se usan con más frecuencia son los abalorios, 
de manera que este comando se aplica en su mayoría a sus ranuras: 13 y 14 (hay 
una lista completa de ranuras más adelante). De esta forma, una macro para activar 
un abalorio que está en tu ranura de abalorio más alta tendría el comando /usar 13. 
Las bolsas también tienen asignados valores numéricos. Hablaremos de ellos en el 
siguiente ejemplo.
    * El comando /usar ranura de bolsa te permite usar un objeto de una ranura específica. 
Cada bolsa de tu barra inferior derecha de bolsas tiene asignado un valor numérico 
del 0 al 4, empezando por tu mochila y siguiendo hacia la izquierda. Al escribir dos 
números separados por espacios, la macro asume que estás haciendo referencia a una 
ranura de bolsa en lugar de a una ranura de inventario. El segundo número corresponde 
a una ranura de bolsa en concreto, empezando por el 1 y siguiendo hasta la última 
ranura en la bolsa. La ranura 1 de una bolsa es siempre la que está situada más arriba 
y a la izquierda y el orden sigue hacia la derecha hasta el final de la fila, momento en 
el que el patrón continúa en la fila situada más abajo. Por ejemplo, en una bolsa de 16 
ranuras, las ranuras están asignadas de la siguiente manera:
|1|	2|	3|	4|
|5|	6|	7|	8|
|9|	10|	11|	12|
|13|	14|	15|	16|
#  Un ejemplo del uso práctico de este comando sería el siguiente. Digamos que siempre 
pones el agua o la comida en la ranura superior izquierda de tu bolsa de la izquierda del todo. 
Podrías crear una macro con "/usar 4 1" para comer o beber lo que se encontrase en esa 
ranura en particular de forma automática. Esta macro específica ilustra cómo las macros 
pueden conservar un espacio valioso para tus barras de acción: en vez de ocupar varias
 ranuras con diferentes tipos y rangos de agua y comida, puedes consolidar múltiples 
tipos en un solo icono de macro.
# Para terminar, las macros pueden equipar objetos específicos por su nombre y equiparlas 
a ranuras de inventario específicas cuando es necesario. El comando

funciona de forma muy afín a los comandos /lanzar y /usar: – fijar el nombre exacto de un 
objeto y la macro lo sacará de tu bolsa y lo equipará a su ranura por defecto: "/equipar 
Bastón de noche del siemprevivo". El comando relacionado

especifica una ranura específica del inventario a la que quieres asignar el objeto: "/equipranu 
12 Sortija de celador de la Luz naaru" hará que el anillo vaya a la ranura inferior de anillo. 
La utilidad de este comando se hace evidente cuando equipas varios objetos que de otra 
manera se apilarían en la misma ranura por defecto: como los anillos, abalorios y armas de 
una mano. Por ejemplo, si has creado dos macros que lean "/equipar Sello de Garona" y 
"/equipar Anillo de un millar de marcas" respectivamente y después ejecutas ambas macros 
en una secuencia, el Anillo de un millar de marcas simplemente reemplazaría a Sello de 
Garona en vez de colocarse en la segunda ranura de anillo. El comando /equipranu evita 
que los objetos se reemplacen, algo que puede que ya hayas notado si has probado a equipar 
dos anillos haciendo simplemente doble clic derecho uno después de otro.

    * Esta es la lista actual de ranuras de inventarios y sus valores numéricos:
          o 0 = munición
          o 1 = cabeza
          o 2 = cuello
          o 3 = hombro
          o 4 = camisa
          o 5 = pecho
          o 6 = cinturón
          o 7 = piernas
          o 8 = pies
          o 9 = muñeca
          o 10 = guantes
          o 11 = dedo 1
          o 12 = dedo 2
          o 13 = alhaja 1
          o 14 = alhaja 2
          o 15 = espalda
          o 16 = mano derecha
          o 17 = mano izquierda
          o 18 = a distancia
          o 19 = tabardo
!Macros para hechizos y facultades
Tal y como hemos visto en la introducción a las macros precedente, el comando para 
usar un hechizo o una facultad en una macro es /lanzar. No tienes más que escribir 
"/lanzar" seguido de el nombre del hechizo en el campo de texto, por ejemplo, "/lanzar 
Raíces enredadoras(Rango 1)". Sin embargo, el comando /lanzar está sujeto a las siguientes pautas:

    * El nombre del hechizo debe escribirse exactamente tal y como aparece en el juego: 
deletreado y puntuado igual: como en "Palabra de poder: escudo".
    * Si quieres usar un rango específico, debes incluirlo como parte del nombre entre paréntesis, 
como en "Descarga de las Sombras(Rango 3)".
    * Si no especificas un rango, la macro lanzará de forma automática el rango más alto que conozca
 tu personaje.
    * Puedes hacer Mayús+clic en un hechizo de tu libro de hechizos mientras estás en la ventana 
Crear Macros para crear un acceso directo rápido y garantizado sin errores

El comando /lanzar cubre todas las facultades inherentes al jugador, incluyendo los efectos que se 
pueden considerar facultades en vez de hechizos: como Golpe mortal, Puñalada, y Grito de batalla, 
por ejemplo. También cubre las facultades raciales como Fusión de las Sombras, Voluntad de los 
Renegados y Artista del escape. Es más, el comando /lanzar también se puede usar para controlar 
a las mascotas: no tienes más que escribir el nombre de la facultad de la mascota tras "/lanzar" y
la macro reconocerá que es una facultad de mascota. Tal y como ocurre con las facultades de los 
jugadores, cualquier elemento que aparezca en el libro de hechizos de tu mascota que no sea una 
facultad pasiva se puede lanzar con una macro: incluyendo facultades básicas como Atacar.

El comando /lanzar en macros puede combinar múltiples facultades y hechizos con una sola macro, 
pero hay ciertas restricciones. Debido a la mecánica subyacente del juego que domina el uso de 
estos hechizos y facultades, una lista de comandos /lanzar sin más muchas veces no funcionará. 
Los hechizos que tienen tiempo de lanzamiento no se pueden encadenar uno detrás de otro con 
/lanzar y muchos hechizos de lanzamiento instantáneo se ven afectados por el tiempo de reutilización 
global. La forma de encadenar estos hechizos instantáneos en las macros cambiará con el parche 
2.3 (ver ejemplo más adelante), pero la importancia de este tema justifica que repasemos el 
funcionamiento de los lanzamientos de hechizos consecutivos antes de que cambie. Supone el 
uso del comando /pararlanzamiento.

    * El comando /pararlanzamiento solo funciona en conjunción con hechizos y facultades 
instantáneos que no activan el tiempo de reutilización global. Estos incluyen abalorios y otros 
objetos que tienen la facultad "al usar". Experimenta con tu propio arsenal de hechizos y facultades 
instantáneos para ver cuáles no activan el tiempo de reutilización global.
    * Al usar /pararlanzamiento tras un comando /lanzar para alguna facultad instantánea válida, 
este actuará como un retenedor entre múltiples /lanzar, y permitirá que una macro como esta 
funcione correctamente:
          o /usar Ábaco de probabilidades agresivas
          o /pararlanzamiento
          o /usar Broche de Ansia de Sangre
          o /pararlanzamiento
          o /lanzar Cólera de las bestias
          o /pararlanzamiento
          o /lanzar Intimidación
          o /mascataque
      Esta macro combina dos facultades de alhaja, dos facultades instantáneas de dominio de 
bestias y la orden de ataque de mascota creando un potente combo "yo gano". Ten en cuenta 
que a partir del parche 2.3 las macros de este tipo ya no necesitan el retenedor /pararlanzamiento 
entre lanzamientos. El único requisito que prevalece es que los hechizos activados por los 
comandos /lanzar no activen el tiempo de reutilización global.
    * Comenzar una macro con el comando /pararlanzamiento actúa como "parada de emergencia" 
y te permite usar un hechizo o facultad inmediatamente. Por ejemplo, esta macro de paladín 
interrumpirá el lanzamiento de un hechizo como Luz sagrada y activará Escudo divino:
          o /pararlanzamiento
          o /lanzar Escudo divino
      Sin el comando /pararlanzamiento, pulsar el botón de Escudo divino daría como resultado 
el mensaje de error "hay otra acción en curso".
!Seleccionar en las macros
El comando /objetivo cambia o te asigna un objetivo en la macro. Puede que hayas usado el 
comando /target en el juego para intentar ubicar a un jugador o PNJ cercano por su nombre, 
como por ejemplo "/objetivo Hogger". También puedes usar este comando y sus variantes en 
las macros, particularmente junto con otros comandos de macro como "/lanzar". En la siguiente 
parte de esta guía analizaremos la selección de objetivos en las macros con más detalle, pero, 
por ahora, aquí tienes algunos ejemplos y pautas básicas:

    * Usar "/objetivo" seguido de un nombre encontrará al jugador, monstruo o PNJ más cercano 
que tenga un nombre igual al que hayas introducido, siempre y cuando esta entidad se encuentre 
relativamente cerca de ti. Pero buscar por nombre no hace distinciones entre jugadores o entidades 
controladas por el ordenador, ni entre vivos y muertos. Además, si no existe una coincidencia 
exacta del nombre en la proximidad, puedes acabar seleccionando una entidad con un nombre parecido.
    * En lugar de seleccionar una unidad por su nombre, puedes seleccionar la ID de tu unidad objetivo. 
Aquí tienes una lista parcial actualizada de las ID de unidades:
          o player = el jugador actual
          o pet = la mascota del jugador actual
          o party# = tmiembro del grupo en la posición del valor en la configuración del grupo 
(sin incluir al propio jugador), donde # es 1, 2, 3 ó 4
          o partypet# = la mascota del miembro del grupo en la posición del valor en la configuración del grupo, 
donde # es 1, 2, 3 ó 4
          o raid# = el miembro de la banda que corresponda a la posición en la banda, donde # es un valor entre 
1 y 40. El # no tiene relación con el grupo del que el jugador forma parte. Además, raid1 siempre es el 
líder de la banda y el último número de la banda es siempre el jugador, de este modo en una banda de 25 
personas, raid25 es la ID del jugador.
          o raidpet# = la mascota del miembro de la banda con el valor de posición en la banda, donde # es 
un valor entre 1 y 40.
          o mouseover = la unidad sobre la cual se encuentra el ratón o la última unidad sobre la que ha pasado 
el ratón. Esta ID de unidad es especialmente interesante para las macros de sanación en las que puedes sanar 
a alguien rápidamente sin tener de deseleccionar a tu objetivo actual (normalmente el tanque principal)
          o Si añades "target" al final de la ID de cualquiera de estas unidades, como "playertarget", la 
seleccionaras como objetivo.
    * La macro /ayudar, tan comúnmente usada, puede que se encuentre entre las primeras que crees, 
normalmente a petición de otro jugador en una situación de grupo. La forma más simple es /ayudar nombre 
del jugador, aunque puedes usar cualquiera de las ID de unidad de arriba. Normalmente, esta macro se usa 
para coordinar ataques conjuntos a objetivos concretos y es extremadamente útil en JCJ y JcE.
    * La variable %t se puede usar en las macros para señalar a tu objetivo actual. Esta variable es muy útil 
para las macros sociales, ya que introduce el nombre de tu objetivo actual en lo que estés diciendo. Encontrarás 
un ejemplo de esto en la siguiente sección
    * El comando /ultimobjetivo cambia tu objetivo por el último jugador o monstruo que hayas seleccionado. 
Esto puede ser muy útil en situaciones en las que tienes que alternar rápidamente entre dos objetivos que están 
alejados el uno del otro, como cuando sanas a un jugador antes de volver a seleccionar al tanque principal.
    * Algunos comandos de selección alternativos duplican las funciones de los accesos desde el teclado 
configurados por defecto, pero pueden ser útiles en las macros. Estos incluyen /objetivoenemigo y /objetivoamistoso, 
así como /objetivogrupo y /objetivobanda. Parecidos a las funciones por defecto de Tab y Ctrl-Tab, estos comandos 
rotarán entre los jugadores o monstruos afectados por el comando. Para rotar a la inversa (similar a Shift-Tab) 
añade un "1" después del comando. El comando /objetivogrupo puede ser útil para lanzar beneficios: por ejemplo, 
activar la macro "/objetivogrupo /lanzar Palabra de poder: entereza" rotará por todos los miembros del grupo de un 
sacerdote y lanzará ese beneficio sobre cada uno de ellos.
!Macros de comunicación de grupo y banda
La buena comunicación es extremadamente importante en World of Warcraft, especialmente en 
situaciones de gran presión como bandas, JcJ y otras situaciones donde el trabajo en equipo es 
crucial para lograr el éxito. En este aspecto, las macros pueden hacerte la vida más fácil.

La macro que hemos usado como ejemplo introductorio era una muestra de cómo usar dos comandos 
sociales en una misma macro. Quizá te hayas dado cuenta de que los comandos de la macro se han 
ejecutado de forma simultánea. Sin embargo, como ya hemos visto, muchos comandos de macros tienen 
restricciones como el tiempo de reutilización global de los hechizos y facultades, por ello no se pueden 
ejecutar diversos comandos simultáneamente. Los comandos sociales no están sujetos a estas restricciones, 
así que puedes encadenarlos en cualquier macro para indicar a tu grupo lo que estás haciendo. Además, 
las macros de comunicación autónomas pueden otorgar a tu banda o grupo información y directrices 
cruciales para el combate. Aquí tienes algunos ejemplos:

    * Un líder de banda puede hacer una cantidad sin fin de macros de anuncios usando "/rw" seguido 
del mensaje deseado. Las instrucciones generales de banda como "/rw ¡atacad ahora!" o "/rw parad el 
DPS" se usan mucho, al igual que las macros específicas de los jefes para avisar a toda la banda de los 
ataques y para coordinar los movimientos. Aquí tienes un ejemplo de una macro específica de jefe para 
el infame hechizo Corona de llamas de la Sombra de Aran: "/rw lanzando Corona de llamas, ¡NO OS MOVÁIS!"
    * En JcJ, especialmente en las rápidas partidas de las arenas, la buena comunicación puede contribuir 
de forma significativa a la victoria o derrota. Con el comando /p en una macro, puedes mantener a tus 
compañeros informados de situaciones importantes. Puedes usar este comando para advertir de que estás 
incapacitado o de que estás usando una facultad con el tiempo de reutilización muy alto o para asegurarte 
de que tu equipo está atacando al mismo objetivo. Por ejemplo, un paladín que esté haciendo arenas quizá 
quiera crear una macro del tipo "/p Maldición de lenguas - ¡eliminar maldición, por favor!".
    * En general las macros para el juego en grupo contribuyen al trabajo en equipo y te ahorran tiempo. 
Por ejemplo, si eres un mago te puedes beneficiar de macros que informen a tu grupo cuando estés haciendo 
oveja a un objetivo, cuando estés abriendo un portal a una ciudad o cuando tengas abierto el departamento 
de reparto de agua. Este es un ejemplo de una macro que podría usar un brujo para informar a su grupo de 
a qué miembro del grupo está invocando y que los demás miembros pueden ayudar:
          o /lanzar Ritual de invocación
          o /p invocando %t, por favor, ayudad

:Esta es la primera parte de nuestra guía de macros. En la próxima actualización estudiaremos con más 
:detalle algunas funciones de macros de nivel más avanzado, incluyendo opciones de macros, condicionales y enfoque. 

[img[][Guía de Macros (1)]]

''Raising Blacksmith Skill''

You will want to equip yourself and your friends as your skill rises. If you keep your skill at 25 plus five times your level then you will always be able to make items you can equip at their minimum level. Outside of the items you make because you want to, or to fulfill the Blacksmith quests, there are a series of minimum-material items you can make to advance your skill, mostly consisting of stone, misc. items, and some low-material armor items.

Before I start, you need to realize this is not a 1-70 leveling guide, it's just a guide that will help you get your blacksmithing up quick, if you need a leveling guide, the best ones are: Joana's 1-70 Horde leveling Guide for horde, and Brian's 1-70 Alliance leveling guide for alliance.

''Apprentice Blacksmithing Path:''

This is done mostly with stone, saving your copper and bronze bars until later except when you need to equip yourself or your friends or clients. Make Rough Sharpening Stones (turns green at 15 and grey at 55) until you reach 25 and learn Rough Grinding Stones. (Save and use those Sharpening Stones as a combat buff.) Make Rough Grinding Stones (turns green at 45 and grey at 85) until you reach skill 65, keeping them for use later in making other items. Make Coarse Sharpening Stones (green when learned at 65, grey at 80) until you reach 75 and are a Journeyman. Copper items useful as skill ups include Copper Bracers (2 copper bars, green at 20), Copper Chain Pants (4 copper bars, green at 50) and Copper Chain Belt (6 copper bars, green at 75).

''Journeyman Blacksmithing Path:''

At 75 you learn Coarse Grinding Stone, which are green when learned. Make those until they turn grey at 100 and save them for making further items. Turn any tin and copper into bronze bars but save them. Make Silver Rods until they turn green at 105 (and sell them to Enchanters) then make Rough Bronze Leggings (with your saved bronze bars) until they turn green at 145 or even to grey at grey at 175. These take 6 Bronze Bars and sell to the vendors for 9.62 s each, so if you can buy stacks of 20 Bronze Bars for 30 s or less, you can actually make a profit while you skill up. Also at 125 you learn Heavy Grinding Stone. Make these until they turn grey at 150 and keep them for making other items. If you are able to learn the Deadly Bronze Poniard dropped plan at 125 then you can make and sell it at a profit until it turns green at 155 and grey at 185. The Patterned Bronze Bracer (green at 150) is required for a Badlands quest. At 145 you learn to make your first rare (blue) item, the Shining Silver Breastplate (green at 175) which sells well.

''Expert Blacksmithing Path:''

Beginning at 150, make Rough Bronze Leggings until they turn grey at 175. Iron Buckles are easy but turn grey at 155, while Golden Rods turn green at 155 and grey at 160. Golden skeleton keys are green when learned and grey at 170. You will want to equip yourself and friends with the Green Iron Set and that will provide some skill ups. If you are lucky enough to learn the Iron Shield Spike plan at 150 then you can make and sell these at a good profit until they turn green at 180 and grey at 210. Another profitable drop is the Iron Counterweight, green at 190 and grey at 210. At 200 you learn Solid Grinding Stone so make those until they turn grey at 210. To get from 210 to 225, make Golden Scale Bracers to 215, then make Steel Plate Helms to 225. You will also be equipping yourself with the Golden Scale armor set and the Moonsteel Broadsword is required for a quest in Dustwallow Marsh. A number of expert weapons and armor are saleable, including the rare Green Iron Hauberk at 180 (green at 205, grey at 230).

''Artisan Blacksmithing Path:''

At 225 make Steel Plate Helms until it turns green at 235. Then make Mithril Spurs to 250 (turns green at 255). At 250 make Dense Sharpening Stones until they turn grey at 260. The Heavy Mithril and Ornate Mithril armour items are good for their level, so you can also skill up some on making the mithril items for the Mithril Order quests. The Ornate Mithril Boots are popular with warriors for their remove root effect and they (and the Ornate Mithril Helm) turn green at 265. Go back to Mithril Spurs (which are readily saleable) until they turn grey at 275 and then make Thorium Bracers to 280. Now make Thorium Helms to 300. An alternative is the Imperial Plate armour set, starting with the Imperial Plate Belt and Shoulders at 265, Bracers at 270, and then Helm and Boots at 295. While these use more thorium than the Thorium armour items, they can be sold for a profit even if you buy the materials.

''Specialty Path:''

As an Armorsmith or Weaponsmith you can skill up making the items for your specialty Quest. Be sure to make them as soon as you learn them, and save the items to turn in for the quest, so you get your skillups. An Armorsmith can then skill up with Truesilver Gauntlets until they turn green at 245 (or grey at 265) and Truesilver Breastplate until it turns green at 265 (or grey at 285). Those are both saleable items. A Weaponsmith can gain skillups with the Shatterer, Phantom Blade, Blight and Truesilver Champion, as these are also saleable.


There is no one best path up because it depends on which dropped plans you get a hold of, which specialty you take, and which items you can make for guild mates or sell that give skillups, which will vary by guild and server. It also depends on whether you learn every plan going up or only the bare minimum because you are trying for a truly lowest cost or fastest power-leveling run up to 300. The path I outlined is a fairly optimal approach but it does include obtaining some dropped plans at the right times.

The faster you try to skill up the more it will cost you because you are likely going to have to vendor much of it. The market can only absorb so much of any one item. Whenever possible, spread out the items you make over time or make a variety so that you do not overload the market. If you want to minimize cost by selling your items, look at the Auction House to see which desirable green or blue items that give skillups are lacking or in short supply and go for them, bypassing those that are in large supply already. Remember that an item that costs 2 g to make is better than one that costs 1 g to make if you can sell the first for a profit but the second sells for a loss.

An example of this is the Imperial Plate Armor set, all of which (except bracer) can be sold for a profit while the cheaper Thorium or Radiant armor items use less materials but do not sell.

Another way to help yourself is to have one of your characters be an Enchanter and disenchant any green item that won't sell, since you can usually then sell the resulting reagents for more than the vendor would pay for the original item. This can often make it better to make more costly green items rather than the less costly white items, since you cannot disenchant the white items.

''New Blacksmith Plans:''

A new plan is dropped by Garr in Molten Core: Elemental Sharpening Stone. The rare plan is Bind on Pickup, so this will be a truly rare plan. I note that the plan does not specify sharp weapons, so I wonder if it applies to all weapons or if there is also an Elemental Whetstone plan out there.

Elemental Sharpening Stone [300] Use: Increase critical chance on a melee weapon by 2% for
30 minutes, Requires Level 50 (uncommon)(Rare dropped Bind on Pickup plan from Garr in MC)
- 2 Elemental Earth, 3 Dense Stone (2.5 s)

''Another new plan is:''

Helm of the Great Chief [300 Armoursmith] 292 AC, +12 Stamina, +30 Spirit, L 56, Mail (Rare)(Rare drop)
- 40 Thorium Bars, 4 Enchanted Thorium Bars, 60 Jet Black Feathers, 6 Large Opals, 2 Huge Emeralds (242.85 s)

This has dropped from Lord Kazzak and from Risen Warrior.

''Sulfuron Hammer:''

You get the plan by turning in a Sulfuron Ingot to Lokhtos Darkbargainer in the BRD bar. No reputation is required. Sulfuron Ingots are dropped by Golemagg the Incinerator, Molten Core Boss, at a 16% rate ( once in 6 kills). When the Sulfuron Ingot is in your inventory, you will be given a new dialogue option with Lohktos Darkbargainer. Follow this dialogue through to obtain the Thorium Brotherhood Contract.  

Once you have the Contract, speak with him again to turn in the Contract and the Sulfuron Ingot for the plans.

Sulfuron Hammer [300] 2H Hammer (143-239) Spd 3.00, Proc: Hurl fiery ball for 83-101 fire + 16 damage over 8 sec., L 60, 63.7 dps, (Epic, Bind on Equip)(Unique BoE plan sold by Lokhtos Darkbargainer in BRD bar for 1 Sulfuron Ingot via the Thorium Brotherhood Contract)
- 8 Sulfuron Ingots, 20 Dark Iron Bars, 50 Arcanite bars, 25 Essence of Fire, 10 Blood of the Mountain, 10 Lava Core, 10 Fiery Core.  

That only requires Artisan Blacksmith, however the materials required are extreme. However, there is a reason to make it. You gather the materials to make the Sulfuron Hammer and then kill Ragnaros and get the Eye of Sulfuras drop (6% drop chance)( )

You can then combine the Sulfuron Hammer and the Eye of Sulfuras to make this Legendary 2H Hammer:

Sulfuras, Hand of Ragnaros 2H Mace (223-372) Spd 3.70, +12 Strength, +12 Stamina, +30 Fire Resistance, Proc: Fireball for 273-333 Fire + 75 fire over 10 sec., Equip: Deals 5 Fire to an attacker who hits you with a melee attack., L 60, 80.4 DPS (Legendary, Bind on Pickup) 

 I gather that this is not a Blacksmith plan and that anyone can turn in a Sulfuron Hammer and the Eye of Sulfuras to get Sulfuras. The Sulfuron Hammer is not BoP so it can be made and then transferred.


Blacksmithing 300 to 375 by Highlander on ~EU-Terenas

300 - 315
Imperial Plate Boots (18 x Thorium Bar) x 15 (Thankyou to Tobius on EU-Aggramar for suggesting this)

315 - 320
Imperial Plate Chest (20 x Thorium Bar) x 5 (Thankyou to Stahlkinn on EU-Baelgun for suggesting this)

Alternatively you could do the following as suggested by Peavy on EU-Al'Akir:

300 - 320
Enchanted Thorium Blades (2 x Enchanted Thorium Bars, 6 x Thorium Bars, 1 x Rugged Leather) x 20
This really depends on how easy and/or cheap it is to get Enchanted Thorium Bars on your server.

320 - 325
Fel Iron Chain Tunic (9 x Fel Iron Bar) x 5

325 - 330
Lesser Rune of Warding (1 x Adamantite Bar) x 10

330 - 340
Adamantite Cleaver (8 x Adamantite Bar) x 10
N.B. This is a limited supply recipe sold by either of the following:
Aaron Hollman - Shattrath City
Arras - The Exodar
Eriden - Silvermoon City

340 - 350
Lesser Rune of Shielding (1 x Adamantite Bar) x 20
N.B. This is a limited supply recipe sold by either of the following:
Mari Stonehand - Wildhammer Stronghold (Shadowmoon Valley)
Rohok - Thrallmar (Hellfire Peninsula)

350 - 360
Adamantite Weightstone (1 x Adamantite Bar, 2 x Netherweave Cloth) x 20
Requires Honoured rep with cenarion Expedition, which is fairly easy to get

N.B. from 360 onwards it gets tough to get recipes that will skill you up, as trainers won't teach you anything worthwhile. Everything that will skill you up past 360, is either a random drop pattern or a rep reward. The two best and cheapest ways are to get Scryers or Aldors rep.

Aldor's Rep Path

360 - 370
Flamebane Gloves (8 x Fel Iron Bars, 4 x Primal Water, 4 x Primal fire) x 10
Requires Aldor honoured rep to buy pattern and it's BoP

370 - 375
Flamebane Breastplate (16 x Fel Iron Bars, 6 x Primal Water, 4 x Primal Fire) x 5
Requires Aldor revered rep to buy pattern and it's BoP

Scryer's Rep Path

360 - 370
Enchanted Adamantite Boots (3 x Hardened Adamantite Bars, 12 x Arcane Dust, 2 x Large Prismatic Shards) x 10
Requires Scryer honoured rep to buy pattern and it's BoP

370 - 375
Enchanted Adamantite Breastplate (4 x Hardened Adamantite Bars, 20 x Arcane Dust, 4 x Large Prismatic Shards) x 5
Requires Scryer revered rep to buy pattern and it's BoP

Alternatively, you could keep running Auchenai Crypts for the Felsteel Gloves plans as follows:

361 - 375
Felsteel Gloves (6 x Felsteel Bars) x 15

Approximate Materials Required

Aldor's Rep Path

370 X Thorium Bars (or 120 if you made Blades)
199 x Fel Iron Bar
130 x Adamantite Bar
40 x Netherweave Cloth
70 x Primal Water
60 x Primal Fire

If you made Enchanted Thorium Blades instead Imperial Plate Chest, add the following:
40 x Enchanted Thorium Bars
20 x Rugged Leather

Scryer's Rep Path

370 X Thorium Bars (or 120 if you made Blades)
39 x Fel Iron Bar
130 x Adamantite Bar
40 x Netherweave Cloth
50 x Hardened Adamantite Bars (That's 600 x Adamantite Bars)
220 x Arcane Dust
40 x Large Prismatic Shards

If you made Enchanted Thorium Blades instead Imperial Plate Chest, add the following:
40 x Enchanted Thorium Bars
20 x Rugged Leather 
''Shopping list of items needed:''

90 Rough Stones (AH) 
80 Coarse Stones(AH) 
75 Heavy Stones(AH) 
90 Solid Stones(AH) 
50 Dense Stones(AH) 
10 Wooden Stock (EVend) 
29 Weak Flux (EVend) 
50 Heavy Leather(AH) 
10 Wool Cloth (AH) 
10 Mageweave Cloth (AH) 
33 Runecloth(AH) 
51 Copper Bars(AH) 
10 Silver Bars(AH) 
55 Bronze Bars(AH) 
19 Iron Bars(AH) 
*4 Coal (EVend) 
4 Steel Bars (*get a blacksmith to make from iron and coal, MUCH cheaper.) 
126 Mithril Bars *cringes, sorry.*(AH) 
159 Thorium Bars *runs*(AH) 

Engineering trainers are usually found in major cities. 
Artisan engineers can be found in Orgrimmar and Ironforge. 
The single master engineer (for all engineers) can be found in Gadgetzan in Tanaris. His name is 
Buzzek Bracketswing. 


Level: Name of Skill, approx to keep. Keep more in case. [how many to buy from AH.] (recipe req. for each.) 

0: Buy a Blacksmith hammer. 
Buy Schematic: Green/Blue/Red Firework (Fireworks Merchant in Booty Buy/Iron Forge/Orgrimmar) 40s 
Buy Schematic: Thorium Widget - Engineering Supplies in Orgrimmar/Ironforge 1g 
Buy Schematic: Thorium Tube - Engineering Supplies in Winterspring (Everlook) 1g40s 
* Rough Blasting Powder, sell all [90 Rough Stones] (1xRough Stone) 
* Handful of Copper Bolt, used for 66-75.[10 Copper Bars] (1xCopper Bar) 
*[6xCopper Bar](6xCopper Bar) 
* Copper Tubes, 10 used for 66-75. 
[35 Copper Bars] (2x Copper Bar 1x Weak Flux) 
* Rough Boom Sticks, sell all ( 
(1x Copper Tube 1x Handful of Copper Bolts 1x Wooden Stock) 
* Coarse Blasting Powder, keep 20 for 121-125. 
[80 Coarse Stones] (1x Coarse Stone) 
* Silver Contacts, Keep 5 for 146-150, Keep 5 for 191-195. 
[10 Silver Bars](1x Silver Bar) 
* Bronze Tubes, sell all. 
[30 Bronze Bars](2x Bronze Bar 1x Weak Flux) 
* Small Bronze Bombs, sell all. 
[10 Bronze Bars, 10 Wool Cloth] 
(1x wool cloth 1x silver contact 4x coarse blasting powder 2x bronze bar) 
* Heavy Blasting Powder, 10 for 146-150, 50 for 150-175, 15 for 191-195. 
[75 Heavy Stones] (1x Heavy Stone) 
* Big Bronze Bombs, throw at friends or sell. 
[15 Bronze Bars] 
(2x Heavy Blasting Powder 3x Bronze Bar 1x Silver Contact) 

__150-175: __
*Fuego de artificio azul, rojo y verde, véndelos.
[50 Piedra Pesada] 
(1x Piedra Pesada 1x Cuero Pesado ) 
* Microajustador giromático
[4x Barras de Acero](4x Barras de Acero) 
* Pólvora Sólida, 10:206-210, 15:211-225, 16:236-245, 20:246-250 
[86 Piedras Sólidas](2x Piedra Sólida) 
* Bomba de hierro grande, véndelas 
[15 Barras de Hierro] 
(3x Barras de Hierro 3x Pólvora Potente 1x Contacto de plata) 
* Tubo de Mitril, véndelos. 
[30 Barra de Mitril](3x Barras de Mitril) 
* Activador inestable, 10 para 236-245. 
[10 Barra de Mitril,  10] 
(1x Mithril Bar 1x Paño de Tegido Mágico 1x Pólvora Sólida)(necesario para luego) 
* Balas de mitril de gran impacto, vender en AH o usar 
[15 Barras de Mitril, 15 Pólvora Sólida] 
(1x Barras de Mitril 1x 15 Pólvora Sólida) 

Desde aqui la marcha sera peligrosa, querrás almacenar 5-10 mas de cada cosa de las que he listado en caso de tener una suerte terrible, para cuando estes volando a Gadgetzan. Tambien puedes mirar mi sección mas abajo sobre ingenieria goblin/gnoma. Es una manera cara de subir y mi FAQ es la mas barata sin tener ke hacer una elección.
* Envoltura de mitril, 20 para 236-245. 
[60 Barra de Mitril] (3x Barra de Mitril) 
* Bomba altamente explosiva, véndelas. 
[20 Envoltura de Mitril, 20 Pólvora Sólida] 
(2x Envoltura de Mitril 1x Activador Inestable  2x Pólvora Sólida) 
* Girotiro de mitril, véndelas. 
[16 Barras de Mitril, 16 Pólvora Sólida] 
(2x Barras de Mitril 2x Pólvora Sólida) 
*Pólvora densa, guárdalo todo para venderlo!! 
[50 Piedra Densa](2x Piedra Densa) 
* Trasto de Torio, guardar para los materiales de alto lvl o vender. 
[99 Barra de Torio, 33 Paño Rúnico] (3x Barra de Torio 1x Paño Rúnico) 
*Aquí puedes hacer Trasto de Torio se encuentras la receta en la AH, pero puede resultar CARO, y ese no es el propósito de este FAQ(2x Barra de Torio 1x Pólvora Densa)) 
* Tubo de Torio, guardar para los materiales de alto lvl o vender. 
[60 Barra de Torio] (6x Barra de Torio) 

__''Ingeniería 300 a 375''__

300 - 310 
Para empezar:
-	40 x Envoltura de hierro vil (3 x Barra de hierro vil)
-	60 x Puñado de tornillos de hierro vil (1 x  Barra de hierro vil)
-	45 x Pólvora Elemental (1 x Mota de Fuego, 2 x Mota de Tierra)
 [180 x barra de hierro vil, 45 x Mota de Fuego, 90 x Mota de Tierra]

310 - 320 
Bomba de hierro vil x 10:
-	1 x Envoltura de hierro vil (3 x Barra de hierro vil)
-	2 x Puñado de tornillos de hierro vil (1 x Barra de hierro vil) 
-	1 x Pólvora Elemental (1 x Mota de Fuego, 1 x Mota de Tierra)
[50 x Barra de hierro vil, 10 x Mota de Fuego, 10 x Mota de Tierra)

320 - 335 
Mosquete de hierro vil x 15:
-	2 x Tubo de torio (12 x Barra de torio)
-	3 x Envoltura de hierro vil (9 x Barra de hierro vil)
-	4 x Puñado de tornillos de hierro vil (4 x Barra de hierro vil)
[195 x barra de hierro vil, 180 x Barra de torio]

335 - 350 
Bengala de humo blanco x 25:
-	1 x Paño de tejido abisal 
-	1 x Pólvora Elemental (1 x Mota de Fuego, 1 x Mota de Tierra)
[25 x Paño de tejido abisal, 25 x Mota de Fuego, 25 x Mota de Tierra]

350 – 355 
Estabilizador de acero vil x 5 
-	2 x Barra de acero vil) [10 x Barra de acero vil]

355 - 360 
Gafas de detección ultraespectrópicas x 5
-	4 x Pellejo nudoso grueso.
-	2 x Barra de Korio.
-	2 x Peridoto Intenso.
-	2 x Fragmento centelleante pequeño
[20 x Pellejo nudoso grueso, 10 x Barra de Korio. 10 x Periodito Intenso, 10 x Fragmento centelleante pequeño] 

360 - 375 
Mira de Korio x 15 
-	1 x Tubo de Adamantita endurecida (3 x Barra de Adamantita endurecida)
-	4 x Barra de Korio,
-	2 x Piedra del alba. 
[45 x Barra de Adamantita endurecida, 60 x Barra de Korio, 30 x Piedra del Alba]

Materiales requeridos (aproximadamente) 

255 x Barras de hierro vil.
35 x Mota de fuego.
35 x Mota de Tierra.
10 x Barra de acero vil.
20 x Pellejo nudoso grueso.
70 x Barra de Korio. 
10 x Periodito Intenso.
10 x Fragmento centelleante pequeño.
45 x Barra de Adamantita endurecida.
30 x Piedra del alba.
25 x Paño de tejido abisal.
180 x Barra de torio.

|Author|Eric Shulman - ELS Design Studios|
|License| <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|]]|
|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.
When installed, this plugin adds new wiki syntax for surrounding tiddler content with {{{<script>}}} and {{{</script>}}} markers, so that it can be treated as embedded javascript and executed each time the tiddler is rendered.

''Deferred execution from an 'onClick' link''
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

''External script source files:''
You can also load javascript 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.

''Display script source in tiddler output''
By including the keyword parameter "show", in the initial {{{<script>}}} marker, the plugin will include the script source code in the output that it displays in the tiddler.

''Defining javascript functions and libraries:''
Although the external javascript file is loaded while the tiddler content is being rendered, any functions it defines will not be available for use until //after// the rendering has been completed.  Thus, you cannot load a library and //immediately// use it's functions within the same tiddler.  However, once that tiddler has been loaded, the library functions can be freely used in any tiddler (even the one in which it was initially loaded).

To ensure that your javascript functions are always available when needed, you should load the libraries from a tiddler that will be rendered as soon as your TiddlyWiki document is opened.  For example, you could put your {{{<script src="..."></script>}}} syntax into a tiddler called LoadScripts, and then add {{{<<tiddler LoadScripts>>}}} in your MainMenu tiddler.

Since the MainMenu is always rendered immediately upon opening your document, the library will always be loaded before any other tiddlers that rely upon the functions it defines.  Loading an external javascript library does not produce any direct output in the tiddler, so these definitions should have no impact on the appearance of your MainMenu.

''Creating dynamic tiddler content''
An important difference between this implementation of embedded 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() 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 completely replaces the entire ~TiddlyWiki document in your browser window.
* To allow these scripts to work unmodified, the plugin automatically converts all occurences of document.write() so that the output is inserted into the tiddler content instead of replacing the entire ~TiddlyWiki document.

If your script does not use document.write() to create dynamically embedded content within a tiddler, your javascript can, as an alternative, explicitly return a text value that the plugin can then pass through the wikify() rendering engine to insert into the tiddler display.  For example, using {{{return "thistext"}}} will produce the same output as {{{document.write("thistext")}}}.

//Note: your script code is automatically 'wrapped' 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.//

''Accessing the ~TiddlyWiki DOM''
The plugin provides one pre-defined variable, 'place', that is passed in to your javascript code so that it can have direct access to the containing DOM element into which the tiddler output is currently being rendered.

Access to this DOM element allows you to create scripts that can:
* vary their actions based upon the specific location in which they are embedded
* access 'tiddler-relative' information (use findContainingTiddler(place))
* perform direct DOM manipulations (when returning wikified text is not enough)
an "alert" message box:
><script show>
	alert('InlineJavascriptPlugin: this is a demonstration message');
dynamic output:
><script show>
	return (new Date()).toString();
wikified dynamic output:
><script show>
	return "link to current user: [["+config.options.txtUserName+"]]";
dynamic output using 'place' to get size information for current tiddler:
><script show>
   if (!window.story) window.story=window;
   var title=story.findContainingTiddler(place).id.substr(7);
   return title+" is using "+store.getTiddlerText(title).length+" bytes";
creating an 'onclick' button/link that runs a script:
><script label="click here" title="clicking this link will show an 'alert' box" show>
   if (!window.story) window.story=window;
   alert("Hello World!\nlinktext='""'\ntiddler='"+story.findContainingTiddler(place).id.substr(7)+"'");
loading a script from a source url:
> contains:
>>{{{function demo() { alert('this output is from demo(), defined in demo.js') } }}}
>>{{{alert('InlineJavascriptPlugin: demo.js has been loaded'); }}}
><script src="demo.js" show>
	return "loading demo.js..."
><script label="click to execute demo() function" show>
import (or copy/paste) the following tiddlers into your document:
''InlineJavascriptPlugin'' (tagged with <<tag systemConfig>>)
!!!!!Revision History
''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
This feature was developed by EricShulman from [[ELS Design Studios|http:/]]
version.extensions.inlineJavascript= {major: 1, minor: 6, revision: 0, date: new Date(2007,2,19)};

config.formatters.push( {
	name: "inlineJavascript",
	match: "\\<script",
	lookahead: "\\<script(?: src=\\\"((?:.|\\n)*?)\\\")?(?: label=\\\"((?:.|\\n)*?)\\\")?(?: title=\\\"((?:.|\\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) {
			if (lookaheadMatch[1]) { // load a script library
				// make script tag, set src, add to body to execute, then remove for cleanup
				var script = document.createElement("script"); script.src = lookaheadMatch[1];
				document.body.appendChild(script); document.body.removeChild(script);
			if (lookaheadMatch[5]) { // there is script code
				if (lookaheadMatch[4]) // show inline script code in tiddler output
				if (lookaheadMatch[2]) { // create a link to an 'onclick' script
					// add a link, define click handler, save code in link (pass 'place'), set link attributes
					var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",lookaheadMatch[2]);
					link.code="function _out(place){"+lookaheadMatch[5]+"\n};_out(this);"
				else { // run inline script code
					var code="function _out(place){"+lookaheadMatch[5]+"\n};_out(w.output);"
					try { var out = eval(code); } catch(e) { out = e.description?e.description:e.toString(); }
					if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
} )
![img[]] @@color(green):Leonil@@
>''level 16''
> Hermandad ''...''
*Haciendo quests en ''Misiones de Páramos de Poniente y paseos por CrestaNevada''.
[[Actuales ¡HOT!|Noticias actuales]]
[[Archivadas|Noticias archivadas]]

<<quote 'Mapas¡HOT!' 'Mapas'>>
<<quote 'Profesiones' 'Profesiones'>>
[[Macros|Guía de Macros (1)]]
[[Calendario oficial|]]
<<quote 'Enlaces de interés' 'Enlaces de interés'>>


[[Calendario|Calendario de quedadas]]


Para añadirte como jugador en el panel de la izquierda, haz lo siguiente:
#Accede a [[MainMenu]] y haz click en ''edit''.
#Añade tu nombre debajo del último que aparece y de la misma forma, es decir, con los cuatro corchetes.
#Haz click en ''done''.
#Ya se habrá añadido tu nombre al panel, haz click sobre él para empezar a editarlo (edit), si quieres, fíjate como están hechos los demás y haz el tuyo de la misma manera.
#A cascarla!
<<quote 'Mapas' 'Mapas'>>
*Mapa de Zul'Aman:
>alianza (en negro)
<<quote 'General' 'general'>>
<<quote 'Azeroth' 'Azeroth' >>
<<quote 'Outland' 'Outland'>>
>Ir a ..\World of Warcraft\Interface\~AddOns\Gatherer\Swang\
>En ~LibSwag.lua poner lo siguiente debajo de myLib.lootSpells = {
>["Miner\195\173a"] = "MINE",
>["Recolectar hierbas"] = "HERB",
>["Abriendo"]= "OPEN",
>Eso es todo amigos!!!
![img[]] @@color(green):Nedriel@@
>''level 70''
>''[[Alquimista|Alquímia 1-375]] / Herborista''
> Hermandad [[La Luz Tenebrosa|]]
*Haciendo quests en ...
*''Añadido Atlas Online Oficial'':
:Acaban de lanzar otra novedad en el sitio web de World of Warcraft Europa: el [[Atlas Online|]]. Ya no tendrás que vagar por los mundos, perdido, cada vez que necesites un instructor de profesión, un mercader o cuando andes en busca de una zona de misiones. Con el Atlas Online, Azeroth y Terrallende se encuentran tan sólo a un clic de distancia. He aquí una muestra de lo que puedes encontrar en esos mapas:

:    * Niveles de regiones
:    * Instructores de profesión
:    * Rutas de vuelo, de zepelín y rutas por mar
:    * Información sobre mazmorras
:    * Información de región detallada

:¡Échale un vistazo en la sección de [[Mapas]].
*''Características Oficiales del patch 2.3 (Reino de Pruebas)'':
:Una nueva instance ([[Zul'Aman|]]), nuevas monturas y un banco para guilds entre otras cosas, lee el artículo completo en la [[página oficial|]].
:También tenéis capturas del reino de pruebas en la sección [[Capturas]], donde podréis ver sreenshots de las monturas y demás.
*''Añadida guía de Cocina''.
:Visita nuestra sección de Guía de [[Profesiones]] y échale un vistazo a la guía de [[Cocina 1-375]].
*''Guía de la creación de macros''.
:Visita la [[guía de macros|Guía de Macros (1)]], para aprovechar al máximo las opciones disponibles para tu personaje.
:Se irán añadiendo contenidos a esta guía con regularidad, no dejes de visitarla.
*''Activación del chat de voz''
:!Ya se ha activado el chat de voz en todos los reinos europeos!
:Para más información sobre esta característica, échale un vistazo a nuestra [[guía del chat de voz]].
* ''ALÍSTATE!!!!''
:Accede a la sección ''Jugadores'' y añádete!! Si no sabes cómo, pincha [[aquí|Manual añadir Jugador]].
* ''~WOW-WIKI... por fin!''
:Ya tenemos operativa la wiki del wow! A disfrutarla y hacer uso de ella!

[[resumen|Mapa de Outland]]
<div class='header' macro='gradient vert #000 #464646'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div id='mainMenu' refresh='content' tiddler='MainMenu' force='true'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
Materials Needed:

369 x Light Leather
586 x Medium Leather
389 x Heavy Leather
661 x Thick Leather
340 x Rugged Leather
8 x Cured Heavy Hide
5 x Iron Buckles
112 x Turtle Scales
4 x Wildvine
2 x Cured Thick Hides
In addition for the leatherworking quests you need an extra 10 Thick Leather and 7 Wildvine.

1 - 45
49 x Light Leather Armour Kits - 49 x Light Leather

45 - 55
16 x Handstiched Leather Cloaks - 32 x Light Leather

55 - 100
47 x Embossed Leather Gloves - 141 x Light Leather

100 - 123
29 x Fine Leather Belts - 174 x Light Leather
- 369 x Light Leather total

123 - 137
16 x Dark Leather Boots - 64 x Medium Leather

137 - 155
24 x Dark Leather Pants - 288 x Medium Leather

155 - 165
10 x Hillsman Leather Gloves - 140 x Medium Leather

165 - 180
19 x Heavy Armour Kits - 95 x Heavy Leather

180 - 183
7 x Hillsman Leather Gloves (green) - 98 x Medium Leather
- 586 x Medium Leather total

183 - 191
8 x Barbaric Shoulders - 64 x Heavy Leather & 8 x Cured Heavy Hide

191 - 196
5 x Barbaric Harnesses - 70 x Heavy Leather & 5 x Iron Buckles

10 x Dusky Bracers - 160 x Heavy Leather
- 389 x Heavy Leather, 8 x Cured Heavy Hide & 5 x Iron Buckles total

14 x Thick Leather Armour Kits (6 for Leatherworking quest) - 70 x Thick Leather

5 x Nightscape Headbands (2 for Leatherworking quest) - 25 x Thick Leather

2 x Turtle Scale Breastplates (Leatherworking quest) - 12 x Thick Leather & 24 x Turtle Scales

2 x Turtle Scale Gloves (Leatherworking quest) – 12 x Thick Leather & 16 x Turtle Scales

2 x Nightscape Tunics (Leatherworking quest) - 14 x Thick Leather

4 x Nightscape Headbands - 20 x Thick Leather

2 x Turtle Scale Bracers (Leatherworking quest) - 16 x Thick Leather & 24 x Turtle Scales

2 x Turtle Scale Helms (Leatherworking quest) - 28 x Thick Leather & 48 x Turtle Scales

2 x Nightscape Pants (Leatherworking quest) - 28 x Thick Leather

2 x Nightscape Boots (Leatherworking quest) - 32 x Thick Leather

1 x Wild Leather Vest (Tribal Leatherworking quest) - 12 x Thick Leather, 2 x Wildvine & 1 x Cured Thick Hide

1 x Wild Leather Helmet (Tribal Leatherworking quest) - 10 x Thick Leather, 2 x Wildvine & 1 x Cured Thick Hide

9 x Nightscape Pants - 126 x Thick Leather

16 x Nightscape Boots - 256 x Thick Leather
- 661 x Thick Leather total

20 x Wicked Leather Bracers - 160 x Rugged Leather

15 x Wicked Leather Headbands - 180 x Rugged Leather
- 340 x Rugged Leather total

In general I have tried to keep as much as possible to the main normal leather types, light, medium, heavy, thick and rugged. This is because it always easier to buy them on the auction house, whereas other ingredients are more difficult to obtain, and therefore more expensive. I haven't mentioned the ingredients that can be bought from vendors, since they are easy to obtain. I ran into trouble around the 180 mark, where most recipes require extra ingredient and I bought whatever had the cheapest buyout on the AH to get me there. Have a look to see what's cheapest at the time for you.

I could have used a lot less thick leather and started on rugged armour kits at 250, but at that time the price of rugged leather was high enough for it to be worth using huge amounts of thick instead (probably because I did this the week before the Darkmoon Faire was in town). If you can get the rugged leather cheaper it's probably worth switching earlier (5 rugged leather Vs 15 thick leather).

I have mostly kept to trainer taught recipes. The exceptions to this are the recipes gained through the leatherworking quests and the recipes for Wicked Leather Bracer and Headband, which I bought on the auction house for 5 and 2 gold respectively (you could substitute Wicked Leather Gauntlet for Wicked Leather Bracers. The recipe is vendor bought from leatherworking suppliers it's limited supply though, and after 20 minutes of camping for it I gave up).

I hope that this helps. I know that there are a few places where it could have been done a bit better but I don't think I made too many glaring errors.


Leatherworking 300 to 375 by Highlander on ~EU-Terenas

Knothide Leather (5 x Knothide Leather Scraps) x 20 = 100 x Knothide Leather Scraps
N.B. make as many as it takes to get to 310. Your going to need around 725 Knothide leather, so you may aswell get the skill up points for this.

Wild Draenish Gloves (9 x Knothide Leather, 3 x Rune Thread) x 10

Thick Draenic Boots (10 x Knothide Leather, 3 x Rune Thread) x 5

Heavy Knothide Leather (5 x Knothide Leather) x 90

Thick Draenic Vest (14 x Knothide Leather, 3 x Rune Thread) x 5

Felscale Breastplate (14 x Knothide Leather, 3 x Fel Scales, 3 x Rune Thread) x 15

N.B. as is common with all the professions now, getting from 350 to 375 is a huge pain. Trainers dont teach anything worthwhile, so the only way to do it, is via random world drop patterns or rep rewards. I'll use rep reward patterns in this guide.

For those with Scryers rep - Honoured:
Enchanted Felscale Gloves or Boots (4 x Heavy Knothide Leather, 10 x Fel Scales, 6 x Primal Mana) x 5

For those with The Consortium rep - Honored
Fel Leather Boots (10 x Heavy Knothide Leather, 8 x Fel Hide, 8 x Primal Shadow, 3 x Rune Thread) x 5

You need to be Friendly with Cenarion Expedition for the next part:
Heavy Clefthoof Boots (4 x Heavy Knothide Leather, 20 x Thick Clefthoof Leather, 4 x Primal Earth, 2 x Rune Thread) x 10

N.B. these last 10 points are going to cost you a LOT! (as if the last 15 didn't cost enough!) The materials required are fairly insane and so is the rep requirement, but at the moment I don't see a better way of levelling up.

If your Exalted with Thrallmar or Honor Hold, then make:
Nethercobra Leg Armor (4 x Heavy Knothide Leather, 4 x Cobra Scales, 8 x Primal Air, 1 x Primal Nether) x 5
N.B. The Cobra Scales and Primal Nether are a major pain to get and I would seriously urge you to work on Sha'tar rep and do the following:

Alternatively, if your exalted with The Sha'tar:
Drums of Battle (2 Heavy Knothide Leather, 1 x Primal Fire, 1 Primal Earth) x 5

N.B. any of the above three will take you to 375, but the material requirement makes for a LOT of farming, as those last 5 points can mean making another 20-30 items.

Your either going to have to make random world drop epics here with lots of insane material requirements OR go and get exalted with Keepers of Time.
Seeing as the epics are random world drop patterns, I'll go with Keepers of Time rep rewards. You'll need to be level 66 to start your Keepers of Time rep and spend a LOT of time in The Caverns of Time.

Drums of Panic (2 x Heavy Knothide Leather, 2 x Primal Shadow) x 5

Approximate Materials Required

With Scryers Rep
100 x Knothide Leather Scraps
715 x Knothide Leather
100 x Rune Thread
85 x Fel Scales
30 x Primal Mana
200 x Thick Clefthoof Leather
20 x Cobra Scales (if your Thrallmar or Honor Hold exalted)
40 x Primal Air (if your Thrallmar or Honor Hold exalted) or 5 x Primal Earth and 5 x Primal Fire if you went with Sha'tar rep)
5 x Primal Nether (Dont need these if you go with CE or Sha'tar rep)
20 x Primal Earth
10 x Primal Shadow

N.B. if you went with Sha'tar rep at 365, then you'll need 10 less Heavy Knothide Leather, 40 less Primal Air, 5 Primal Earth and 5 less Primal Nether. Gets complicated, dont it?

With The Consortium Rep
100 x Knothide Leather Scraps
675 x Knothide Leather
200 x Thick Clefthoof Leather
40 x Fel Hide
70 x Rune Thread
85 x Fel Scales
20 x Cobra Scales (if your Thrallmar or Honor Hold exalted)
40 x Primal Air (if your Thrallmar or Honor Hold exalted) or 5 x Primal Earth and 5 x Primal Fire if you went with Sha'tar rep)
5 x Primal Nether (Dont need these if you go with CE or Sha'tar rep)
20 x Primal Earth
50 x Primal Shadow

N.B. if you went with Sha'tar rep at 365, then you'll need 10 less Heavy Knothide Leather, 40 less Primal Air, 5 Primal Earth and 5 less Primal Nether.
|''Description:''|This plugin creates a custom Gregorian calendar|
|''Date:''|Mar 13, 2007|
|''Author:''|Paulo Soares (psoares (at) math (dot) ist (dot) utl (dot) pt)|
|''License:''|[[BSD open source license]]|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|
This plugin creates a custom Gregorian calendar. A single month calendar has navigation buttons at the top line in order to change month and year. With multiple months the calendar is static. Different categories of holidays can be defined in a configuration tiddler and those categories can be styled by the user. There's also a simple scheduling mechanism.
This plugin is based on previous work by [[TiagoDionízio|]]'s.
Copy this tiddler to your TW, tag it with 'systemConfig', save your TW, refresh your browser and drop {{{<<calendar>>}}} in a tiddler to get a calendar for the current month. You can also use any of the following options {{{<<calendar year:2007 month:6 numberMonths:6 numberColumns:2 tag:'work'>>}}}.

You can also label the schedules with multiple tags separating them with {{{#}}} such as {{{tag:'work#excludeLists'}}}. However only the first tag is used to display scheduled days in the calendar.
!Revision history
1.3.1 - 19/03/2006
*fixed missing schedules at the first day of any month (bug reported and fixed by Michael Lin)
1.3.0 - 18/09/2006
*small changes to work with TW2.1
1.2.1 - 04/06/2006
*restored the use of multiple tags
1.2.0 - 18/05/2006
*plugin name changed to PlasticCalendarPlugin (because there are other ~CalendarPlugin's out there...)
*now using named parameters
*added categories of holidays (suggested by Paco Rivière)
1.1.0 - 02/10/2005
*initial release
// --------------------------------------------------------------------
// Calendar
// --------------------------------------------------------------------

config.macros.calendar = {holidays: []};
config.macros.calendar.options = {
 // day week starts from (normally 0-Su or 1-Mo)
 calendarWeekStart: 1,
 calendarToday: "Today",
 calendarHoliday: "Holiday: ",
 calendarLongDateFormat: "0DD/0MM/YYYY",
 calendarShortDateFormat: "0DD/0MM",
 calendarTag: ["schedule"]

** Internal functions
var cldTag;

config.macros.calendar.calendarIsHoliday = function(date) {
 var cm = config.macros.calendar;
 var longHoliday = date.formatString(cm.options.calendarLongDateFormat);
 var shortHoliday = date.formatString(cm.options.calendarShortDateFormat);
 for(var i = 0; i < cm.holidays.length; i++) {
 if(cm.holidays[i][0] == longHoliday || cm.holidays[i][0] == shortHoliday) {
 return cm.holidays[i];
 return null;

config.macros.calendar.onClickOtherDay = function(e) {
 var day = this.getAttribute('tiddlylink');
 for(var i=0; i<cldTag.length;i++){
 story.setTiddlerTag(day, cldTag[i], 0);

config.macros.calendar.getPopupText = function(title) {
 var popup_entries = store.getTiddlerText(title).split("\n");
 var popup = popup_entries[0];
 if(popup_entries.length>1) popup += " ...";
 return popup;

config.macros.calendar.findCalendar = function(child) {
 var parent;
 while (child && child.parentNode) {
 parent = child.parentNode;
 if ( == "calendarWrapper") {
 return parent;
 child = parent;
 return null;

config.macros.calendar.selectDate = function(e) {
 if (!e) var e = window.event;
 var cm = config.macros.calendar;
 var calendar = cm.findCalendar(this);
 if (calendar) {
 var d = this.getAttribute("date");
 if (d != null) cm.makeCalendar(calendar, new Date(new Number(d)));
 e.cancelBubble = true;
 if (e.stopPropagation) e.stopPropagation();
 return false;

config.macros.calendar.makeCalendar = function(calendar, dt_current) {
 var cm = config.macros.calendar;
 var currentDay = new Date(new Number(calendar.getAttribute("currentDay")));
 var setControls = calendar.getAttribute("setControls");
 calendar.setAttribute("date", dt_current.valueOf());

 while (calendar.hasChildNodes())

 // get same date in the previous year
 var dt_prev_year = new Date(dt_current);
 dt_prev_year.setFullYear(dt_prev_year.getFullYear() - 1);
 if (dt_prev_year.getDate() != dt_current.getDate())

 // get same date in the next year
 var dt_next_year = new Date(dt_current);
 dt_next_year.setFullYear(dt_next_year.getFullYear() + 1);
 if (dt_next_year.getDate() != dt_current.getDate())

 // get same date in the previous month
 var dt_prev_month = new Date(dt_current);
 dt_prev_month.setMonth(dt_prev_month.getMonth() - 1);
 if (dt_prev_month.getDate() != dt_current.getDate())

 // get same date in the next month
 var dt_next_month = new Date(dt_current);
 dt_next_month.setMonth(dt_next_month.getMonth() + 1);
 if (dt_next_month.getDate() != dt_current.getDate())

 // get first day to display in the grid for current month
 var dt_firstday = new Date(dt_current);
 dt_firstday.setDate(1 - (7 + dt_firstday.getDay() - cm.options.calendarWeekStart) % 7);

 var area, header;
 var line, cell, i;

 // 1 - calendar header table
 // 2 - print weekdays titles
 // 3 - calendar days table 
calendar.cellPadding = 0;
calendar.cellSpacing = 0;
area = createTiddlyElement(calendar, "tbody");

 // 1 - calendar header table
 header = createTiddlyElement(area,"tr", "calendarHeader");
 header.cellPadding = 0;
 header.cellSpacing = 0;

var headerValues = [
 [ "<<", "selectYear", dt_prev_year.valueOf() ],
 [ "<", "selectMonth", dt_prev_month.valueOf() ],
 [ config.messages.dates.months[dt_current.getMonth()] + ' ' + dt_current.getFullYear(),
 "selectToday", currentDay.valueOf() ],
 [ ">", "selectMonth", dt_next_month.valueOf() ],
 [ ">>", "selectYear", dt_next_year.valueOf() ]

 for (i = 0; i < headerValues.length; ++i) {
 var link = createTiddlyElement(header,"td", null, null, headerValues[i][0]);
 if(i==2) link.colSpan=3;
 link.onclick = cm.selectDate;
 link.setAttribute("date", headerValues[i][2]);
} else {
 var link = createTiddlyElement(header,"td", null, null, 
config.messages.dates.months[dt_current.getMonth()] + ' ' + dt_current.getFullYear());

 // 2 - print weekdays titles
 line = createTiddlyElement(area, "tr", "weekNames");
 for (var n = 0; n < 7; ++n) {
 createTiddlyElement(line, "td", null, null, config.messages.dates.shortDays[(cm.options.calendarWeekStart + n)%7]);

 // 3 - calendar days table
 var dt_current_day = new Date(dt_firstday);
 var day_class;
 var title;
 var holiday;
 var popup;
 var clickHandler;

 while (dt_current_day.getMonth() == dt_current.getMonth() ||
 dt_current_day.getMonth() == dt_firstday.getMonth()) {

 // print row header
 line = createTiddlyElement(area, "tr", "calendarLine", null, null);
 for (var n_current_wday = 0; n_current_wday < 7; ++n_current_wday) {
 title = dt_current_day.formatString(cm.options.calendarLongDateFormat);
 clickHandler = cm.onClickOtherDay;
 popup = null;
 holiday = cm.calendarIsHoliday(dt_current_day);

 if (holiday != null) {
 // holidays
 day_class = (holiday.length==3)? holiday[2]: "holiDay";
 popup = cm.options.calendarHoliday + holiday[1];
 } else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6) {
 // weekend days
 day_class = "weekDay";
 } else {
 // print working days of current month
 day_class = "workingDay";

if(dt_current_day.getMonth() == dt_current.getMonth()){
 if (currentDay.valueOf() == dt_current_day.valueOf()) {
 // print current date
 if (store.tiddlerExists(title)){
 // day has a tiddler associated with it
 day_class += " currentscheduledDay";
 clickHandler = onClickTiddlerLink;
 popup = cm.options.calendarToday + ": "+ cm.getPopupText(title);
 } else {
 day_class += " currentDay";
 popup = cm.options.calendarToday;

 if (store.tiddlerExists(title) && store.getTiddler(title).isTagged(cldTag[0]))  {
 // day has a tiddler associated with it
 day_class += " scheduledDay";
 clickHandler = onClickTiddlerLink;
 popup = cm.getPopupText(title);

 // extra formatting for days of previous or next month
 if (dt_current_day.getMonth() != dt_current.getMonth()) {
 day_class += " otherMonthDay";

 var text = dt_current_day.getDate();
 var cell = createTiddlyElement(line, "td", null, day_class, text);
 cell.setAttribute("date", dt_current_day.valueOf());
 cell.setAttribute("tiddlyLink", title);
 if(popup) cell.setAttribute("title", popup);

config.macros.calendar.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
 var start_date = new Array();
 var date = new Date();
 var cldParams = paramString.parseParams('calendarParams', null, true);
 var cldYear = (cldParams[0].year)?parseFloat(cldParams[0].year[0]): date.getFullYear();
 var cldMonth = (cldParams[0].month)?parseFloat(cldParams[0].month[0]): date.getMonth();
 var n_months = (cldParams[0].numberMonths)?parseFloat(cldParams[0].numberMonths[0]): 1;
 var n_cols = (cldParams[0].numberColumns)?parseFloat(cldParams[0].numberColumns[0]): 3;
 cldTag = (cldParams[0].tag)?cldParams[0].tag[0].split("#"): config.macros.calendar.options.calendarTag;
 for(var i = 0; i < n_months; i++){
 start_date[i] = new Date(cldYear, cldMonth+i, 1);
 var n_rows = Math.max(1,Math.ceil(n_months/n_cols));
 n_cols = Math.min(n_cols,n_months);
 var setControls=(n_months>1)? 0: 1;
 var currentDay = new Date();
 currentDay = new Date(currentDay.getFullYear(), currentDay.getMonth(), currentDay.getDate());
 var holder = createTiddlyElement(place, "table", null,"calendarHolder");
 var holderTable = createTiddlyElement(holder, "tbody");
 for(var i = 0; i < n_rows; i++){
 var holderLine = createTiddlyElement(holderTable, "tr");
 for(var j = 0; j < n_cols; j++){
 var holderCell = createTiddlyElement(holderLine, "td");
 var calendar = createTiddlyElement(holderCell, "table", "calendarWrapper");
 calendar.setAttribute("name", "calendarWrapper");
 calendar.setAttribute("setControls", setControls);
 calendar.setAttribute("currentDay", currentDay.valueOf());
 config.macros.calendar.makeCalendar(calendar, start_date[n_cols*i+j]);

function refreshCalendars(hint) {
 var calendars = document.getElementsByName("calendarWrapper");
 var i, c;
 for (i = 0; i < calendars.length; ++i) {
 c = calendars.item(i);
 if ( == "calendarWrapper") {
 config.macros.calendar.makeCalendar(c, new Date(new Number(c.getAttribute("date"))));

setStylesheet("/***\n!Calendar Styles\n***/\n/*{{{*/\n .viewer .calendarHolder {\n margin-left: auto;\n margin-right: auto;\n border: none;\n}\n\n .viewer .calendarHolder table {\n border: none;\n margin: 0;\n}\n\n .viewer .calendarHolder tr {\n border: none;\n vertical-align: top;\n}\n\n .viewer .calendarHolder td {\n border: none;\n vertical-align: top;\n}\n\n .viewer #calendarWrapper {\n width: 21em;\n border: 2px solid #4682b4;\n cursor: pointer;\n}\n\n #calendarWrapper #calendarLine td {\n height: 2.5em;\n}\n\n #calendarWrapper tr {\n border:none;\n}\n\n #calendarWrapper td {\n text-align: center;\n vertical-align: middle;\n width: 14.28%;\n border:none;\n}\n\n #calendarWrapper #calendarHeader td{\n color: #ffffff;\n background-color: #4682b4;\n height: 2em;\n}\n\n #calendarWrapper #weekNames td {\n color: #ffffff;\n background-color: #87cefa;\n height: 2em;\n}\n\n #calendarWrapper .weekDay {\n background-color: #ccff99;\n}\n\n #calendarWrapper .holiDay {\n background-color: #006666;\n}\n\n #calendarWrapper .currentDay {\n border: solid #ff0000 2px;\n font-weight: bold;\n}\n\n #calendarWrapper .currentscheduledDay {\n border: solid #ff0000 2px;\n font-weight: bold;\n}\n\n #calendarWrapper .workingDay {\n color:#000000;\n background-color: #ffffff;\n}\n\n #calendarWrapper .scheduledDay {\n border: solid orange 2px;\n}\n\n #calendarWrapper .otherMonthDay {\n background-color: #999;\n}\n\n/*}}}*/","CalendarStyles");
[[Ingeniería|Ingeniería 1-375]](esp-eng)
[[Peletería|Peletería 1-375]](eng)
[[Alquímia|Alquímia 1-375]](eng)
[[Herrería|Herrería 1-375]](eng)
[[Sastrería|Sastrería 1-375]](eng)
[[Cocina|Cocina 1-375]](esp)
// //''Name:'' Quote Plugin
// //''Author:'' Tiago Dion�zio

// //''Syntax:'' 
// //{{{<<quote 'Text to display' 'Tiddler name' [open]>>}}}

// //''Description:'' 
// // Create a direct link to a tiddler using a normal button and a button that expands the specified tiddler inside the current tiddler.
// // To display the included tiddler initially visible just pass ''open'' in the third parameter (not actually the only possible value but you can interpret it like that).
// // The expand button can also collapse the included tiddler, this will actually remove the included contents. If the included tiddler is changed you can simply expand it again.

// //''Code section:''
// (you should not need to alter anything below here)//

version.extensions.quote = { major: 1, minor: 0, revision: 0, date: new Date(2005, 07, 15)};

config.macros.quote = {};
config.macros.quote.onClick = function(e) {
    if (!e) var e = window.event;
    var container = this.nextSibling;
    var isOpen = == "block";

    var tick;
    if (isOpen) { = "none";
        tick = " >>";
    else {
        tick = " <<";
        var title = container.getAttribute("tiddlyLink");
        var text = store.getTiddlerText(title);
            wikify(text,container,null,null); = "block";
config.macros.quote.handler = function(place,macroName,params) {
    // param 0: text button
    // param 1: tiddler name to display
    // param 2: initial display by default
    var label = params[0];
    var title = params[1];
    var isOpen = params[2] != null;
    var link = createTiddlyLink(place,title,false);
    var btn = createTiddlyButton(place, isOpen ? " <<" : " >>", "expand tiddler " + title, this.onClick);
    var container = createTiddlyElement(place, "blockquote");
    container.setAttribute("tiddlyLink", title); = isOpen ? "block" : "none";
    if (isOpen) {
        var text = store.getTiddlerText(title);

This guide will show you how to get your tailoring skill up from 0 to 300. The guide will only use recipe's available at a trainer until 275 and vendor available recipe's from 275 to 300.

This guide only uses recipes that require cloth and vendor bought material (thread, dye). The only exceptions are the vendor bought recipe's to get to 300 which require rugged leather. The leather needed is easily acquired through skinning or the auction house.

This guide does not tell you how to get all the different recipe's from quests, vendors or drops. What you do once you hit 300 is entirely up to you.

This guide is primarily aimed at those who want to switch profession at high level or have high level alts, friends or guild members.  Before I start, you need to realize this is not a leveling guide, it's just a guide that will help you get your tailoring up quick, if you need a leveling guide, the best ones are: Joana's 1-70 Horde leveling Guide for horde, and Brian's 1-70 Alliance leveling guide for alliance.

You are going to need a lot of linen and wool cloth and huge amounts of silk, mageweave and runecloth. Create an alt storage character to store these amounts of cloth and then farm (or have an alt farm) for the cloth needed. Use the in game mail system to send the cloth to the storage character. You may need more than one storage character. Don't forget to send some gold to the storage character, so she can send the cloth back.

Once you have all the components collected, everything has to be send back to your main character. The mailbox only shows the first 50 items you have in the mail. It also puts the last item send to you on top. So to avoid complications send the components you need first last: i.e the linen cloth are needed first, so these are the last to be send back to your main, after the wool, silk, etc.

The recipe's used require vendor bought components such as threads and dye. These cost gold. To learn recipe's from a trainer also costs gold. The amount of gold needed is approximately 40 to 50 gold if you farm all of the cloth. If you want to buy everything you need from the auction house expect to spend upwards to 250 gold. This does not include gold for recipe's from vendors or the auction house.

1 - 50
Bolt of Linen Cloth (2 x Linen Cloth) x 80

50 - 70
Linen Bag (3 x Bolt of Linen Cloth, 3 x Coarse Thread) x 20

70 - 75
Reinforced Linen Cape (2 x Bolt of Linen Cloth, 3 x Coarse Thread) x 5

75 - 105
Bolt of Woolen Cloth (3 x Wool Cloth) x 60

105 - 110
Gray Woolen Shirt (2 x Bolt of Woolen Cloth, 1 x Fine Thread, 1 x Gray Dye) x 5

110 - 125
Double-stitched Woolen Shoulders (3 x Bolt of Woolen Cloth, 2 x Fine Thread) x 15

125 - 145
Bolt of Silk Cloth (4 x Silk Cloth) x 190

145 - 160
Azure Silk Hood (2 x Bolt of Silk Cloth, 2 x Blue Dye, 1 x Fine Thread) x 15

160 - 170
Silk Headband (3 x Bolt of Silk Cloth, 2 x Fine Thread) x 10

170 - 175
Formal White Shirt (3 x Bolt of Silk Cloth, 2 x Bleach, 1 x Fine Thread) x 5

175 - 185
Bolt of Mageweave (5x Mageweave Cloth) x 100

185 - 200
Crimson Silk Vest (4 x Bolt of Silk Cloth, 2 x Red Dye, 2 x Fine Thread) x 30

200 - 215
Crimson Silk Pantaloons (4 x Bolt of Silk Cloth, 2 x Red Dye, 2 x Silken Thread) x 15

215 - 220
Black Mageweave Leggings or Black Mageweave Vest (2 x Bolt of Mageweave, 3 x Silken Thread) x 5

220 - 230
Black Mageweave Gloves (2 x Bolt of Mageweave, 2 x Heavy Silken Thread) x 10

230 - 250
Black Mageweave Headband or Black Mageweave Shoulders (3 x Bolt of Mageweave, 2 x Heavy Silken Thread) x 20

250 - 260
Bolt of Runecloth (5 x Runecloth) x 180

260 - 275
Runecloth Belt (3 x Bolt of Runecloth, 1 x Rune Thread) x 15

275 - 280
Runecloth Bag (5 x Bolt of Runecloth, 2 x Rugged Leather, 1 x Rune Thread) x 5

280 - 300
Runecloth Gloves (4 x Bolt of Runecloth, 4 x Rugged Leather, 1 x Rune Thread) x 20

300 - 325
Bolts of Netherweave (6 x Netherweave Cloth each)
(Seriously, your going to need about 430 bolts, so you may aswell get the skill up's for it)

325 - 340
Bolts of Imbued Netherweave (3 x Bolts of Netherweave, 2 x Arcane Dust each)
(You'll need at least 60 bolts for later, so that should see you through to 340)

340 - 350
Netherweave Boots (6 x Bolts of Netherweave, 2 x Knothide Leather, 1 x Rune Thread each) x 10

350 - 360
Netherweave Tunic (8 x Bolts of Netherweave, 2 x Rune Thread each) x 10

360 - 370
Imbued Netherweave Tunic¹ (6 x Imbued Netherweave Bolts, 2 x Netherweb Spider Silk, 1 x Rune Thread each) x 10

¹Pattern is sold by Arrond in Shadowmoon Valley. You need to have Scryers rep to be able to talk to him or be neutral with both Scryers and Aldors, but they are not BoP, so if your aligned with the Aldors, get someone else to buy them for you. They are also a limited supply recipe, which isn't ideal, but they are by far the best way to level Tailoring from 360 to 370, so it's worth camping for them.

It's worth noting that Imbued Netherweave Tunic could take you all the way to 375, but could mean making 20-30 of them or even more to get the last 5 points. Or you could get really lucky like Selenia on EU-Magtheridon and get the 5 points from the first 5 they made past 370. However I would recommend that whilst trying to farm mats for the last 5 points that you do the following:

370 - 375
Arcanoweave Boots (8 x Bolts of Netherweave, 16 x Arcane dust, 2 x Rune Thread each) x 5
N.B. The pattern for Arcanoweave Boots, drops from Sunseeker Astromage in The Mechanar. It's BoP and the drop rate is ~1%, but it's still worth spending the time trying to get it, because if you don't get it, you'll have to make items that require mats from this dungeon anyway, to get those last five points. Thanks to Shoguni on EU-Doomhammer for finding this out :o)

N.B. If your an enchanter, disenchant all the Netherweave Robes and Tunics for Arcane Dust. If your not, get a friend or guildmate who is to do it for you. This will save you some money on Arcane Dust. Thanks to Chiyochan on EU-Bladefist for pointing this out :o)

Approximate Materials Required

2160 x Netherweave Cloth
200 x Arcance Dust
25 x Netherweb Spider silk
40 x Rune Thread
20 x Knothide Leather
!Nuevas monturas patch 2.3
>Con la salida del nuevo patch y si no pasa nada, podréis verme sobre vuestras cabezas montado en uno de estos... :D
>Podeis ver un video es su [[sección|Videos]] correspondiente.
>''Solo para ingenieros de lvl alto...''
>Habrán dos versiones: normal y épica (que creo que es esta):
>Se ve que las regalan... :D
>Y para los que no seáis ingenieros aquí tenéis (debéis ser exaltados con los Cenarion):
>Otra muy curiosa, y de quest. Ya la quisiera Harry Potter...
>Entrar en [[Videos]] para verla en movimiento.
>Aquí su quest y su drop:
>Os habéis fijado en el ''tamaño'' de su... inventario! :D
>Bear Mount:
>Según Blizzard, esta montura se podrá dropear del primer boss de la nueva dungeon [[Zul'Aman|]]: @@color(purple):Nalorakk@@
>Podeis ver un ''video'' de Nalorakk en su [[sección|Videos]] correspondiente. Este es su aspecto:

Imágenes pertenecientes a los reinos de prueba.
<<tiddler SetTiddlerBackground with: #rgb #rrggbb title>>

|Author|Eric Shulman - ELS Design Studios|
|License| <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|]]|
|Description|set tiddler background and font color CSS attributes|

	<<tiddler SetTiddlerBackground with: bgstyle fgstyle matchtag class>>
	'bgstyle' and 'fgstyle' (optional, but specify at least one)
		are CSS background style attributes (most often color values, e.g., #rgb or #rrggbb)
	'matchtag' (optional)
		is a tag value that allows selective control of tiddler background/foreground colors
	'class' (optional)
		is the class of the tiddler element to which the fgstyle/bgstyle will be applied (default is "viewer").
		Use "title" to set the background of the tiddler's 'title' area instead of its 'viewer' area.

The bgstyle and fgstyle assignments are only performed if the tiddler has the matching tag (or if no matchtag value is specfied).  In addition, to set just the background or the foreground color (but not both), you can use a dash ("-") as a placeholder value for whichever value you do NOT want to set.  For example:
	<<tiddler SetTiddlerBackground with: #F00 - urgent>>
sets the background color (but NOT the foreground color) to RED for only those tiddlers tagged with "urgent".

You can use this script several times in a row to define a set of tag-to-color mappings, stored in a *single* convenient tiddler... first, create a tiddler (e.g. [[BackgroundColors]]) containing something like this:
	<<tiddler SetTiddlerBackground with: red - urgent>>
	<<tiddler SetTiddlerBackground with: yellow - active>>
	<<tiddler SetTiddlerBackground with: green - done>>
Then, to apply the tag-based color mapping to any specific tiddler, just embed:
	<<tiddler BackgroundColors>>
directly in that tiddler's content and set the appropriate tag to select the desired background color.

Alternatively, you could add:
        <span macro="tiddler BackgroundColors"></span>
in your [[ViewTemplate]] to automatically apply the color mapping to ALL tiddlers in your document.  Then, anytime you want to add another tag-to-color mapping, all you have to do is just edit the [[BackgroundColors]] tiddler and then start tagging the desired tiddlers accordingly, without having to embed the <<tiddler BackgroundColors>> macro into each 'colorized' tiddler.

Also, note that in that instead of using #RGB color definitions, you can also use CSS color keywords (i.e., "red", "yellow",
"green") or *any* other valid CSS value that can be applied to the 'background' style attribute.  For example, to use a background image for any tiddler tagged with "wallpaper", you can write:
        <<tiddler SetTiddlerBackground url(images/bg.jpg) - wallpaper>>

	if ("$1"!="$"+"1" && "$1"!="-") var bg="$1";
	if ("$2"!="$"+"2" && "$2"!="-") var fg="$2";
	if ("$3"!="$"+"3" && "$3"!="-") var tag="$3";
	if ("$4"!="$"+"4" && "$4"!="-") var class="$4"; else var class="viewer";
	var here=story.findContainingTiddler(place); if (!here) return;
	var tiddler=store.getTiddler(here.getAttribute("tiddler"));
	if (tag && (!tiddler||!tiddler.isTagged(tag))) return;
	var children=here.getElementsByTagName("*");
	for (var i=0; i<children.length; i++) if (hasClass(children[i],class)) { var target=children[i]; break; }
	if (!target) return;
	if (bg);
	if (fg);

<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<tiddler TspotSidebar>><<slider chkSliderOptionsPanel OptionsPanel 'opciones »' 'Cambiar opciones avanzadas de TiddlyWiki'>>
|Author|Eric Shulman - ELS Design Studios|
|License| <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|]]|
|Overrides|Story.prototype.displayTiddler(), Story.prototype.displayTiddlers()|
|Description|Display tiddlers one at a time with automatic update of URL (permalink).  Also, options to always open tiddlers at top/bottom of page|

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.

SinglePageMode allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one item displayed at a time.  When SinglePageMode is enabled, the title of the current tiddler is automatically displayed in the browser window's titlebar.  In addition, the browser's location URL is updated with a 'permalink' for the current tiddler so that it is easier to create a browser 'bookmark' for the current tiddler.  You can disable the URL update action

Even when SinglePageMode is disabled (i.e., displaying multiple tiddlers is permitted), you can reduce the potential for confusion by enable TopOfPageMode (or BottomOfPageMode), which forces 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.

note: when used on the Safari browser, adding the permalink to the URL seems to create a problem whereby tiddlers cannot be properly displayed.  In the short-term, to avoid this problem, this feature is disabled when using Safari.  This does not affect usage under other browsers, and other plugin options will still be applied as configured below...
When installed, this plugin automatically adds checkboxes in the AdvancedOptions tiddler so you can enable/disable the plugin behavior.  For convenience, these checkboxes are also included here:

<<option chkSinglePageMode>> Display one tiddler at a time
<<option chkSinglePagePermalink>> Automatically permalink current tiddler
<<option chkTopOfPageMode>> Always open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Always open tiddlers at the bottom of the page
//(note: if both 'top' and 'bottom' settings are selected, "top of page" is used)//
import (or copy/paste) the following tiddlers into your document:
''SinglePageModePlugin'' (tagged with <<tag systemConfig>>)

When installed, this plugin automatically adds checkboxes in the ''shadow'' AdvancedOptions tiddler so you can enable/disable this behavior.  However, if you have customized your AdvancedOptions, you may need to ''manually add these checkboxes to your customized tiddler.''
!!!!!Revision History
2007.10.08 [2.5.1] if 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 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
This feature was developed by EricShulman from [[ELS Design Studios|http:/]].
Support for BACK/FORWARD buttons adapted from code developed by Clint Checketts
version.extensions.SinglePageMode= {major: 2, minor: 5, revision: 1, date: new Date(2007,10,8)};

if (config.options.chkSinglePageMode==undefined) config.options.chkSinglePageMode=false;
if (config.options.chkSinglePagePermalink==undefined) config.options.chkSinglePagePermalink=true;
if (config.options.chkTopOfPageMode==undefined) config.options.chkTopOfPageMode=false;
if (config.options.chkBottomOfPageMode==undefined) config.options.chkBottomOfPageMode=false;

if (config.optionsDesc) {
	config.optionsDesc.chkSinglePageMode="Display one tiddler at a time";
	config.optionsDesc.chkSinglePagePermalink="Automatically permalink current tiddler";
	config.optionsDesc.chkTopOfPageMode="Always open tiddlers at the top of the page";
	config.optionsDesc.chkBottomOfPageMode="Always open tiddlers at the bottom of the page";
} else {
	config.shadowTiddlers.AdvancedOptions += "\
		\n<<option chkSinglePageMode>> Display one tiddler at a time \
		\n<<option chkSinglePagePermalink>> Automatically permalink current tiddler \
		\n<<option chkTopOfPageMode>> Always open tiddlers at the top of the page \
		\n<<option chkBottomOfPageMode>> Always open tiddlers at the bottom of the page";

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)
	var tiddlerName = convertUTF8ToUnicode(decodeURI(window.location.hash.substr(1)));
	tiddlerName=tiddlerName.replace(/\[\[/,"").replace(/\]\]/,""); // strip any [[ ]] bracketing
	if (tiddlerName.length) story.displayTiddler(null,tiddlerName,1,null,null);

if (Story.prototype.SPM_coreDisplayTiddler==undefined) Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,title,template,animate,slowly)
	if (config.options.chkSinglePageMode)
	else if (config.options.chkTopOfPageMode)
	else if (config.options.chkBottomOfPageMode)
	if (config.options.chkSinglePageMode && config.options.chkSinglePagePermalink && !config.browser.isSafari) {
		window.location.hash = encodeURIComponent(convertUnicodeToUTF8(String.encodeTiddlyLink(title)));
		config.lastURL = window.location.hash;
		document.title = wikifyPlain("SiteTitle") + " - " + title;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	var tiddlerElem=document.getElementById(story.idPrefix+title);
	if (tiddlerElem) {
		var yPos=ensureVisible(tiddlerElem); // scroll to top of tiddler
		if (config.options.chkSinglePageMode||config.options.chkTopOfPageMode)
			yPos=0; // scroll to top of page instead of top of tiddler
		if (config.options.chkAnimate) // defer scroll until 200ms after animation completes
			window.scrollTo(0,yPos); // scroll immediately

if (Story.prototype.SPM_coreDisplayTiddlers==undefined) Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function(srcElement,titles,template,unused1,unused2,animate,slowly)
	// suspend single-page mode (and/or top/bottom display options) when showing multiple tiddlers
	var saveSPM=config.options.chkSinglePageMode; config.options.chkSinglePageMode=false;
	var saveTPM=config.options.chkTopOfPageMode; config.options.chkTopOfPageMode=false;
	var saveBPM=config.options.chkBottomOfPageMode; config.options.chkBottomOfPageMode=false;

<IMG SRC="" align=MIDDLE>

config.options.txtUserName = "FranJa";

config.macros.allTags.noTags = "No hay artículos con etiquetas";
config.macros.allTags.tooltip = "Abrir artículos con la etiqueta ";
config.macros.closeAll.label = "cerrar todos";
config.macros.closeAll.prompt = "Cerrar todos los artículos que están abiertos (pero no los que están siendo redactados)";
config.macros.list.all.prompt = "Todos los artículos en orden alfabético";
config.macros.list.missing.prompt = "Artículos que tienen enlaces a ellos pero no existen";
config.macros.list.orphans.prompt = "Artículos que no tienen enlaces de ningún otro artículo";
config.macros.list.shadowed.prompt = "Artículos ocultos con contenido por defecto";
config.macros.newJournal.label = "nuevo diario";
config.macros.newJournal.months = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre","Diciembre"];
config.macros.newJournal.prompt = "Crear un nuevo artículo con la fecha y hora actual";
config.macros.newTiddler.label = "nuevo artículo";
config.macros.newTiddler.prompt = "Crear un nuevo artículo";
config.macros.newTiddler.title = "Nuevo Artículo";
config.macros.permaview.label = "enlace permanente";
config.macros.permaview.prompt = "Enlace a una URL que muestra todos los artículos que están abiertos";
config.macros.saveChanges.label = "guardar cambios";
config.macros.saveChanges.prompt = "Guardar todos los cambios a un archivo"; = "buscar"; = "buscar en este TiddlyWiki"; = " artículos encontrados que tienen: "; = "Ningún artículo encontrado que tuviera: ";
config.macros.timeline.dateFormat = "DD MMM YYYY";
config.macros.tagging.label = "etiquetado: ";
config.macros.tagging.labelNotTag = "no etiquetado";
config.macros.tagging.tooltip = "Lista de artículos etiquetados con '%0'";
config.macros.plugins.skippedText = "(Esta extensión no ha sido ejecutado porque fue añadido al inicio)";
config.macros.plugins.noPluginText = "No hay extensiones instaladas";
config.macros.plugins.confirmDeleteText = "Estás seguro de querer borrar estos artículos:\n\n%0";
config.macros.refreshDisplay.label = "actualizar";
config.macros.refreshDisplay.prompt = "Actualizar la vista de TiddlyWiki";
config.macros.importTiddlers.readOnlyWarning = "No puede importar artículos en un TiddlyWiki de solo lectura. Intenta abrir el TiddlyWiki desde el disco duro como file:// URL";
config.macros.importTiddlers.defaultPath = "";
config.macros.importTiddlers.fetchLabel = "importar";
config.macros.importTiddlers.fetchPrompt = "Archivo a importar";
config.macros.importTiddlers.fetchError = "Hay problemas al importar el archivo";
config.macros.importTiddlers.confirmOverwriteText = "¿Estás seguro de querer sobrescribir estos artículos:\n\n%0";
config.macros.importTiddlers.wizardTitle = "Importar artículos desde otro archivo TiddlyWiki";
config.macros.importTiddlers.step1 = "Paso 1: Localizar el archivo TiddlyWiki";
config.macros.importTiddlers.step1prompt = "Introducir la URL o la ruta : ";
config.macros.importTiddlers.step1promptFile = "...abrir un archivo: ";
config.macros.importTiddlers.step1promptFeeds = "...o seleccionar un rss pre-definido: ";
config.macros.importTiddlers.step1feedPrompt = "Elegir...";
config.macros.importTiddlers.step2 = "Paso 2: Cargando el archivo TiddlyWiki";
config.macros.importTiddlers.step2Text = "Por favor espere mientras se carga el archivo desde:  %0";
config.macros.importTiddlers.step3 = "Paso 3: Elegir los artículos a importar";
config.macros.importTiddlers.step4 = "%0 artículo(s) importados";
config.macros.importTiddlers.step5 = "Hecho";

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";
![img[]] @@color(green):Stimly@@
>''level 66''
>''Peletero / Desollador''
> Hermandad [[La Luz Tenebrosa|]]
*Haciendo quests en ''Nagrand, [[Terrallende|Mapa de Outland]]''.
Author: Clint Checketts

body {
background: #000;
!Link styles /% ============================================================= %/
#mainMenu a.button,
#sidebarOptions .sliderPanel a{
 color: #ffbf00;
 border: 0;
 background: transparent;
#mainMenu a.button:hover,
#sidebarOptions .sliderPanel a:hover
#sidebarOptions .sliderPanel a:active{
 color: #ff7f00;
 border: 0;
 border-bottom: #ff7f00 1px dashed;
 background: transparent;
 text-decoration: none;

#displayArea .button.highlight{
 color: #ffbf00;
 background: #4c4c4c;
!Header styles /% ============================================================= %/
 border-bottom: 2px solid #ffbf00;
 color: #fff;

.headerForeground a {
 color: #fff;

.header a:hover {
 border-bottom: 1px dashed #fff;

!Main menu styles /% ============================================================= %/
#mainMenu {color: #fff;
 background-image: url("");padding-top: 65px;
#mainMenu h1{
 font-size: 1.1em;

#mainMenu li,#mainMenu ul{
 list-style: none;
 margin: 0;
 padding: 0;
!Sidebar styles /% ============================================================= %/
#sidebar {
 right: 0;
 color: #fff;
 border: 2px solid #ffbf00;
 border-width: 0 0 2px 2px;
#sidebarOptions {
 background-color: #4c4c4c;
 padding: 0;

#sidebarOptions a{
 margin: 0;
 color: #ffbf00;
 border: 0;
#sidebarOptions a:hover {
 color: #4c4c4c;
 background-color: #ffbf00;


#sidebarOptions a:active {
 color: #ffbf00;
 background-color: transparent;

#sidebarOptions .sliderPanel {
 background-color: #333;
 margin: 0;

#sidebarTabs {background-color: #4c4c4c;}
#sidebarTabs .tabSelected {
 padding: 3px 3px;
 cursor: default;
 color: #ffbf00;
 background-color: #666;
#sidebarTabs .tabUnselected {
 color: #ffbf00;
 background-color: #5f5f5f;
 padding: 0 4px;

#sidebarTabs .tabUnselected:hover,
#sidebarTabs .tabContents {
 background-color: #666;

.listTitle{color: #FFF;}
#sidebarTabs .tabContents a{
 color: #ffbf00;

#sidebarTabs .tabContents a:hover{
 color: #ff7f00;
 background: transparent;

#sidebarTabs .txtMoreTab .tabSelected,
#sidebarTabs .txtMoreTab .tab:hover,
#sidebarTabs .txtMoreTab .tabContents{
 color: #ffbf00;
 background: #4c4c4c;

#sidebarTabs .txtMoreTab .tabUnselected {
 color: #ffbf00;
 background: #5f5f5f;

.tab.tabSelected, .tab.tabSelected:hover{color: #ffbf00; border: 0; background-color: #4c4c4c;cursor:default;}
.tab.tabUnselected {background-color: #666;}
.tab.tabUnselected:hover{color:#ffbf00; border: 0;background-color: #4c4c4c;}
.tabContents {
 background-color: #4c4c4c;
 border: 0;
.tabContents .tabContents{background: #666;}
.tabContents .tabSelected{background: #666;}
.tabContents .tabUnselected{background: #5f5f5f;}
.tabContents .tab:hover{background: #666;}
!Message area styles /% ============================================================= %/
#messageArea {background-color: #666; color: #fff; border: 2px solid #ffbf00;}
#messageArea a:link, #messageArea a:visited {color: #ffbf00; text-decoration:none;}
#messageArea a:hover {color: #ff7f00;}
#messageArea a:active {color: #ff7f00;}
#messageArea .messageToolbar a{
 border: 1px solid #ffbf00;
 background: #4c4c4c;
!Popup styles /% ============================================================= %/
.popup {color: #fff; background-color: #4c4c4c; border: 1px solid #ffbf00;}
.popup li.disabled{color: #fff;}
.popup a {color: #ffbf00; }
.popup a:hover { background: transparent; color: #ff7f00; border: 0;}
.popup hr {color: #ffbf00; background: #ffbf00;}
!Tiddler Display styles /% ============================================================= %/
{color: #fff;
 background-image: url("");
 text-align: center;
 font-size: 205%; 
 color: #FFCC33;
 font-family: "Charlemagne Std";
 font-variant: small-caps;
h1, h2, h3, h4, h5 {
 color: #fff;
 background-color: transparent;
 border-bottom: 1px solid #333;

 color: #666;
 background-image: url("");
 text-align: right;

.viewer {color: #fff; }

.viewer table{background: #666; color: #fff;}

.viewer th {background-color: #996; color: #fff;}

.viewer pre, .viewer code {color: #ddd; background-color: #4c4c4c; border: 1px solid #ffbf00;}

.viewer hr {color: #666;}

.tiddler .button {color: #4c4c4c;}
.tiddler .button:hover { color: #ffbf00; background-color: #4c4c4c;}
.tiddler .button:active {color: #ffbf00; background-color: #4c4c4c;}

.toolbar {
 color: #4c4c4c;

.toolbar a.button,
.toolbar a.button:hover,
.toolbar a.button:active,
.editorFooter a{
 border: 0;

.footer {
 color: #ddd;

.selected .footer {
 color: #888;

.highlight, .marked {
 color: #000;
 background-color: #ffe72f;
.editorFooter {
 color: #aaa;

-moz-border-radius-topleft: 3px;
-moz-border-radius-topright: 3px;

 background: #4c4c4c;
 border: 1px solid #4c4c4c; 

.selected .tagging,
.selected .tagged{
 background-color: #333;
 border: 1px solid #ffbf00;

.tagging .listTitle,
.tagged .listTitle{
 color: #fff;

.tagging .button,
.tagged .button{
 color: #ffbf00;
 border: 0;
 padding: 0;

.tagging .button:hover,
.tagged .button:hover{
background: transparent;

.selected .isTag .tagging.simple,
.selected .tagged.simple,
.isTag .tagging.simple,
.tagged.simple {
 float: none;
 display: inline;
 border: 0;
 background: transparent;
 color: #fff;
 margin: 0;

.cascade {
 background: #4c4c4c;
 color: #ddd;
 border: 1px solid #ffbf00;
|Author|Eric Shulman - ELS Design Studios|
|License| <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|]]|
|Description|show/hide right sidebar (SideBarOptions)|
%/<script label="show/hide right sidebar">
	var show=document.getElementById('sidebar').style.display=='none';
	if (!show) {
		var margin='1em';
	else {
		var margin=config.options.txtDisplayAreaRightMargin?config.options.txtDisplayAreaRightMargin:"";
	place.innerHTML=(show?"&gt;&gt;&gt;":"&lt;&lt;&lt;"); // SET LINK TEXT
	place.title=show?"hide sidebar":"show sidebar"; // SET TOOLTIP
	var sm=document.getElementById("storyMenu"); if (sm) config.refreshers.content(sm);
	return false;
	if (config.options.chkShowRightSidebar==undefined)
	if (!config.options.txtDisplayAreaRightMargin||!config.options.txtDisplayAreaRightMargin.length)
	var show=config.options.chkShowRightSidebar;
	place.lastChild.innerHTML=(show?"&gt;&gt;&gt;":"&lt;&lt;&lt;"); // SET LINK TEXT
	place.lastChild.title=show?"hide sidebar":"show sidebar"; // SET TOOLTIP"normal";
Contains the stuff you need to use Tiddlyspot
Note you must also have UploadPlugin installed

// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'wowsite';

// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)

// disable autosave in d3
if (window.location.protocol != "file:")
	config.options.chkGTDLazyAutoSave = false;

// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
	SiteUrl = 'http://'+config.tiddlyspotSiteId+'';
	SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
	OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
	DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[Welcome to Tiddlyspot]] ");
	MainMenu = MainMenu.replace(/^/,"[[Welcome to Tiddlyspot]] ");

// create some shadow tiddler content

'Welcome to Tiddlyspot':[
 "This document is a ~TiddlyWiki from  A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
 "@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below.  Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + "]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
 "<<tiddler TspotControls>>",
 "See also GettingStarted.",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick.  You can make changes and save them locally without being connected to the Internet.  When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[|]].  Also visit [[TiddlyWiki Guides|]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|]], which is an excellent place to ask questions and get help.  If you have a tiddlyspot related problem email [[tiddlyspot support|]].",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your site.  Please email [[|]] with any comments or suggestions."

 "| tiddlyspot password:|<<option pasUploadPassword>>|",
 "| site management:|<<upload http://" + config.tiddlyspotSiteId + " index.html . .  " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<<br>>[[control panel|http://" + config.tiddlyspotSiteId + "]], [[download (go offline)|http://" + config.tiddlyspotSiteId + "]]|",
 "| links:|[[|]], [[FAQs|]], [[announcements|]], [[blog|]], email [[support|]] & [[feedback|]], [[donate|]]|"

 "<<upload http://" + config.tiddlyspotSiteId + " index.html . .  " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + "' class='button'>download</a></html>"

 "tiddlyspot password:",
 "<<option pasUploadPassword>>",

| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 24/10/2007 11:32:19 | Delatorre | [[/|]] | [[store.cgi|]] | . | [[index.html |]] | . |
| 25/10/2007 12:18:46 | Delatorre | [[/|]] | [[store.cgi|]] | . | [[index.html |]] | . | ok |
| 25/10/2007 12:19:04 | Delatorre | [[/|]] | [[store.cgi|]] | . | [[index.html |]] | . |
| 25/10/2007 12:45:23 | Delatorre | [[/|]] | [[store.cgi|]] | . | [[index.html |]] | . |
| 26/10/2007 00:48:33 | Delatorre | [[/|]] | [[store.cgi|]] | . | [[index.html |]] | . |
| 26/10/2007 11:18:37 | Delatorre | [[/|]] | [[store.cgi|]] | . | [[index.html |]] | . | ok |
| 26/10/2007 11:20:59 | Delatorre | [[/|]] | [[store.cgi|]] | . | [[index.html |]] | . |
| 29/10/2007 13:26:42 | Delatorre | [[/|]] | [[store.cgi|]] | . | [[index.html |]] | . |
| 29/10/2007 13:38:15 | Delatorre | [[/|]] | [[store.cgi|]] | . | [[index.html |]] | . |
| 31/10/2007 16:14:07 | Delatorre | [[/|]] | [[store.cgi|]] | . | [[index.html |]] | . |
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Date:''|Apr 19, 2007|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license| ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: '',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|]]',
	coreVersion: '2.2.0 (Beta 5)'

config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");

merge(config.macros.option.types, {
	'pas': {
		elementType: "input",
		valueField: "value",
		eventName: "onkeyup",
		className: "pasOptionInput",
		typeValue: config.macros.option.passwordInputType,
		create: function(place,type,opt,className,desc) {
			// password field
			// checkbox linked with this password "save this password on this computer"
			// text savePasswordCheckboxLabel
		onChange: config.macros.option.genericOnChange

merge(config.optionHandlers['chk'], {
	get: function(name) {
		// is there an option linked with this chk ?
		var opt = name.substr(3);
		if (config.options[opt]) 
		return config.options[name] ? "true" : "false";

merge(config.optionHandlers, {
	'pas': {
 		get: function(name) {
			if (config.options["chk"+name]) {
				return encodeCookie(config.options[name].toString());
			} else {
				return "";
		set: function(name,value) {config.options[name] = decodeCookie(value);}

// need to reload options to load passwordOptions

if (!config.options['pasPassword'])
	config.options['pasPassword'] = '';

		pasPassword: "Test password"

|''Description:''|Save to web a TiddlyWiki|
|''Date:''|May 5, 2007|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license| ]]|
|''~CoreVersion:''|2.2.0 (#3125)|
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 0,
	date: new Date("May 5, 2007"),
	source: '',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0 (#3125)'

// Environment

if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false;	// true to activate both in Plugin and UploadService
// Upload Macro

config.macros.upload = {
// default values
	defaultBackupDir: '',	//no backup
	defaultStoreScript: "store.php",
	defaultToFilename: "index.html",
	defaultUploadDir: ".",
	authenticateUser: true	// UploadService Authenticate User
config.macros.upload.label = {
	promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
	promptParamMacro: "Save and Upload this TiddlyWiki in %0",
	saveLabel: "save to web", 
	saveToDisk: "save to disk",
	uploadLabel: "upload"	

config.macros.upload.messages = {
	noStoreUrl: "No store URL in parmeters or options",
	usernameOrPasswordMissing: "Username or password missing"

config.macros.upload.handler = function(place,macroName,params) {
	if (readOnly)
	var label;
	if (document.location.toString().substr(0,4) == "http") 
		label = this.label.saveLabel;
		label = this.label.uploadLabel;
	var prompt;
	if (params[0]) {
		prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0], 
			(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
	} else {
		prompt = this.label.promptOption;
	createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);

config.macros.upload.action = function(params)
		// for missing macro parameter set value from options
		var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
		var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
		var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
		var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
		var username = params[4] ? params[4] : config.options.txtUploadUserName;
		var password = config.options.pasUploadPassword; // for security reason no password as macro parameter	
		// for still missing parameter set default value
		if ((!storeUrl) && (document.location.toString().substr(0,4) == "http")) 
			storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
		if (storeUrl.substr(0,4) != "http")
			storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
		if (!toFilename)
			toFilename = bidix.basename(window.location.toString());
		if (!toFilename)
			toFilename = config.macros.upload.defaultToFilename;
		if (!uploadDir)
			uploadDir = config.macros.upload.defaultUploadDir;
		if (!backupDir)
			backupDir = config.macros.upload.defaultBackupDir;
		// report error if still missing
		if (!storeUrl) {
			return false;
		if (config.macros.upload.authenticateUser && (!username || !password)) {
			return false;
		bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password); 
		return false; 

config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir) 
	if (!storeUrl)
		return null;
		var dest = bidix.dirname(storeUrl);
		if (uploadDir && uploadDir != '.')
			dest = dest + '/' + uploadDir;
		dest = dest + '/' + toFilename;
	return dest;

// uploadOptions Macro

config.macros.uploadOptions = {
	handler: function(place,macroName,params) {
		var wizard = new Wizard();
		var markList = wizard.getElement("markList");
		var listWrapper = document.createElement("div");
		var uploadCaption;
		if (document.location.toString().substr(0,4) == "http") 
			uploadCaption = config.macros.upload.label.saveLabel;
			uploadCaption = config.macros.upload.label.uploadLabel;
				{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption, 
					onClick: config.macros.upload.action},
				{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
	refreshOptions: function(listWrapper) {
		var uploadOpts = [
		var opts = [];
		for(i=0; i<uploadOpts.length; i++) {
			var opt = {};
			opt.option = "";
			n = uploadOpts[i]; = n;
			opt.lowlight = !config.optionsDesc[n];
			opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
		var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
		for(n=0; n<opts.length; n++) {
			var type = opts[n].name.substr(0,3);
			var h = config.macros.option.types[type];
			if (h && h.create) {
	onCancel: function(e)
		return false;
	wizardTitle: "Upload with options",
	step1Title: "These options are saved in cookies in your browser",
	step1Html: "<input type='hidden' name='markList'></input><br>",
	cancelButton: "Cancel",
	cancelButtonPrompt: "Cancel prompt",
	listViewTemplate: {
		columns: [
			{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 

// upload functions

if (!bidix.upload) bidix.upload = {};

if (!bidix.upload.messages) bidix.upload.messages = {
	//from saving
	invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
	backupSaved: "Backup saved",
	backupFailed: "Failed to upload backup file",
	rssSaved: "RSS feed uploaded",
	rssFailed: "Failed to upload RSS feed file",
	emptySaved: "Empty template uploaded",
	emptyFailed: "Failed to upload empty template file",
	mainSaved: "Main TiddlyWiki file uploaded",
	mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
	//specific upload
	loadOriginalHttpPostError: "Can't get original file",
	aboutToSaveOnHttpPost: 'About to upload on %0 ...',
	storePhpNotFound: "The store script '%0' was not found."

bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
	var callback = function(status,uploadParams,original,url,xhr) {
		if (!status) {
		if (bidix.debugMode) 
		// Locate the storeArea div's 
		var posDiv = locateStoreArea(original);
		if((posDiv[0] == -1) || (posDiv[1] == -1)) {
	if(onlyIfDirty && !store.isDirty())
	// save on localdisk ?
	if (document.location.toString().substr(0,4) == "file") {
		var path = document.location.toString();
		var localPath = getLocalPath(path);
	// get original
	var uploadParams = Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
	var originalPath = document.location.toString();
	// If url is a directory : add index.html
	if (originalPath.charAt(originalPath.length-1) == "/")
		originalPath = originalPath + "index.html";
	var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
	var log = new bidix.UploadLog();
	log.startUpload(storeUrl, dest, uploadDir,  backupDir);
	if (bidix.debugMode) 
		alert("about to execute Http - GET on "+originalPath);
	var r = doHttp("GET",originalPath,null,null,null,null,callback,uploadParams,null);
	if (typeof r == "string")
	return r;

bidix.upload.uploadRss = function(uploadParams,original,posDiv) 
	var callback = function(status,params,responseText,url,xhr) {
		if(status) {
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
		} else {
	// do uploadRss
	if(config.options.chkGenerateAnRssFeed) {
		var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
		var rssUploadParams = Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
	} else {

bidix.upload.uploadMain = function(uploadParams,original,posDiv) 
	var callback = function(status,params,responseText,url,xhr) {
		var log = new bidix.UploadLog();
		if(status) {
			// if backupDir specified
			if ((params[3]) && (responseText.indexOf("backupfile:") > -1))  {
				var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
		} else {
	// do uploadMain
	var revised = bidix.upload.updateOriginal(original,posDiv);

bidix.upload.httpUpload = function(uploadParams,data,callback,params)
	var localCallback = function(status,params,responseText,url,xhr) {
		url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
		if (xhr.status == httpStatus.NotFound)
		if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
			if (responseText.indexOf("Debug mode") >= 0 )
				responseText = responseText.substring(responseText.indexOf("\n\n")+2);
		} else if (responseText.charAt(0) != '0') 
		if (responseText.charAt(0) != '0')
			status = null;
	// do httpUpload
	var boundary = "---------------------------"+"AaB03x";	
	var uploadFormName = "UploadPlugin";
	// compose headers data
	var sheader = "";
	sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
	sheader += uploadFormName +"\"\r\n\r\n";
	sheader += "backupDir="+uploadParams[3] +
				";user=" + uploadParams[4] +
				";password=" + uploadParams[5] +
				";uploaddir=" + uploadParams[2];
	if (bidix.debugMode)
		sheader += ";debug=1";
	sheader += ";;\r\n"; 
	sheader += "\r\n" + "--" + boundary + "\r\n";
	sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
	sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
	sheader += "Content-Length: " + data.length + "\r\n\r\n";
	// compose trailer data
	var strailer = new String();
	strailer = "\r\n--" + boundary + "--\r\n";
	data = sheader + data + strailer;
	if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
	var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
	if (typeof r == "string")
	return r;

// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
	if (!posDiv)
		posDiv = locateStoreArea(original);
	if((posDiv[0] == -1) || (posDiv[1] == -1)) {
	var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
				store.allTiddlersAsHtml() + "\n" +
	var newSiteTitle = getPageTitle().htmlEncode();
	revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
	revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
	revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
	revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
	revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
	return revised;

// UploadLog
// config.options.chkUploadLog :
//		false : no logging
//		true : logging
// config.options.txtUploadLogMaxLine :
//		-1 : no limit
//      0 :  no Log lines but UploadLog is still in place
//		n :  the last n lines are only kept
//		NaN : no limit (-1)

bidix.UploadLog = function() {
	if (!config.options.chkUploadLog) 
		return; // this.tiddler = null
	this.tiddler = store.getTiddler("UploadLog");
	if (!this.tiddler) {
		this.tiddler = new Tiddler();
		this.tiddler.title = "UploadLog";
		this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
		this.tiddler.created = new Date();
		this.tiddler.modifier = config.options.txtUserName;
		this.tiddler.modified = new Date();
	return this;

bidix.UploadLog.prototype.addText = function(text) {
	if (!this.tiddler)
	// retrieve maxLine when we need it
	var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
	if (isNaN(maxLine))
		maxLine = -1;
	// add text
	if (maxLine != 0) 
		this.tiddler.text = this.tiddler.text + text;
	// Trunck to maxLine
	if (maxLine >= 0) {
		var textArray = this.tiddler.text.split('\n');
		if (textArray.length > maxLine + 1)
			this.tiddler.text = textArray.join('\n');		
	// update tiddler fields
	this.tiddler.modifier = config.options.txtUserName;
	this.tiddler.modified = new Date();
	// refresh and notifiy for immediate update
	store.notify(this.tiddler.title, true);

bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir,  backupDir) {
	if (!this.tiddler)
	var now = new Date();
	var text = "\n| ";
	var filename = bidix.basename(document.location.toString());
	if (!filename) filename = '/';
	text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
	text += config.options.txtUserName + " | ";
	text += "[["+filename+"|"+location + "]] |";
	text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
	text += uploadDir + " | ";
	text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
	text += backupDir + " |";

bidix.UploadLog.prototype.endUpload = function(status) {
	if (!this.tiddler)
	this.addText(" "+status+" |");

// Utilities

bidix.checkPlugin = function(plugin, major, minor, revision) {
	var ext = version.extensions[plugin];
	if (!
		(ext  && 
			((ext.major > major) || 
			((ext.major == major) && (ext.minor > minor))  ||
			((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
			// write error in PluginManager
			if (pluginInfo)
				pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
			eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"

bidix.dirname = function(filePath) {
	if (!filePath) 
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(0, lastpos);
	} else {
		return filePath.substring(0, filePath.lastIndexOf("\\"));

bidix.basename = function(filePath) {
	if (!filePath) 
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("#")) != -1) 
		filePath = filePath.substring(0, lastpos);
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(lastpos + 1);
	} else
		return filePath.substring(filePath.lastIndexOf("\\")+1);

bidix.initOption = function(name,value) {
	if (!config.options[name])
		config.options[name] = value;

// Initializations

// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);

// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");

	txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
	txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
	txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
	txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
	txtUploadUserName: "Upload Username",
	pasUploadPassword: "Upload Password",
	chkUploadLog: "do Logging in UploadLog (default: true)",
	txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"

// Options Initializations

/* don't want this for tiddlyspot sites

// Backstage
	uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}



*''No podía faltar el capítulo __completo__ de @@color(red):SOUTH PARK@@'':

<html><object codebase="" height="240" width="320" classid="clsid:67DABFBF-D0AB-41fa-9C46-CC0F21721616"><param name="autoplay" value="false"><param name="src" value="" /><param name="custommode" value="Stage6" /><param name="showpostplaybackad" value="false" /><embed type="video/divx" src="" pluginspage="" showpostplaybackad="false" custommode="Stage6" autoplay="false" height="240" width="320" /></object></html>

*''El video de Pat, por supuesto:''

<html><object width="425" height="350"><param name="movie" value=""></param><param name="wmode" value="transparent"></param><embed src="" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></html>

*''Muerte de Nolarakk en Zul'Aman:''

<html><object width="425" height="355"><param name="movie" value=""></param><param name="wmode" value="transparent"></param><embed src="" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></html>

*''Montura voladora para ingenieros:''

<html><object width="425" height="355"><param name="movie" value=""></param><param name="wmode" value="transparent"></param><embed src="" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></html>

*''Escoba voladora'' (creo que el video es de una quest de halloween de hace un año, pero sirve para hacerse una idea):

<html><object width="425" height="355"><param name="movie" value=""></param><param name="wmode" value="transparent"></param><embed src="" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></html>

*''Retribution Paladin en PTR 2.3'. Este video se lo dedico a Vonstriader:

<html><object width="425" height="355"><param name="movie" value=""></param><param name="wmode" value="transparent"></param><embed src="" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></html>

*"Este si que es un video de Retribution Paladin en PVP"

<html><embed id="VideoPlayback" flashvars="" src="" type="application/x-shockwave-flash" style="width: 400px; height: 326px;"/></html>

>Su hoja de se os caiga la baba...''[[aquí|]]''

*''Wrath of the Lich King Trailer'':

<html><object width="425" height="355"><param name="movie" value=""></param><param name="wmode" value="transparent"></param><embed src="" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></html>


![img[]] @@color(green):Vonstriader@@
>''level 63''
>''Minero/ Herrero''
> Hermandad [[La Luz Tenebrosa|]]
*Haciendo quests en ''Marisma de Zangar, Terrallende & Epica de paladin''.
|''Version:''|2.1.1 (2007-03-11)|
|''Source:''| ([[|]])|
|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|
|''Licence:''|[[BSD open source license (abego Software)|]]|
|''Copyright:''|&copy; 2005-2006 [[abego Software|]]|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; ~InternetExplorer 6.0|
!About YourSearch
YourSearch gives you a bunch of new features to simplify and speed up your daily searches in TiddlyWiki. It seamlessly integrates into the standard TiddlyWiki search: just start typing into the 'search' field and explore!

For more information see [[Help|YourSearch Help]].
This plugin requires TiddlyWiki 2.1. 
Check the [[archive|]] for ~YourSearchPlugins supporting older versions of TiddlyWiki.
!Source Code
This plugin's source code is compressed (and hidden). Use this [[link|]] to get the readable source code.
if(!version.extensions.YourSearchPlugin){version.extensions.YourSearchPlugin={major:2,minor:1,revision:1,source:"",licence:"[[BSD open source license (abego Software)|]]",copyright:"Copyright (c) abego Software GmbH, 2005-2007 ("};if(!window.abego){window.abego={};}if(!Array.forEach){Array.forEach=function(_1,_2,_3){for(var i=0,len=_1.length;i<len;i++){,_1[i],i,_1);}};Array.prototype.forEach=function(_5,_6){for(var i=0,len=this.length;i<len;i++){,this[i],i,this);}};}abego.toInt=function(s,_9){if(!s){return _9;}var n=parseInt(s);return (n==NaN)?_9:n;};abego.createEllipsis=function(_b){var e=createTiddlyElement(_b,"span");e.innerHTML="&hellip;";};abego.shallowCopy=function(_d){if(!_d){return _d;}var _e={};for(var n in _d){_e[n]=_d[n];}return _e;};abego.copyOptions=function(_10){return !_10?{}:abego.shallowCopy(_10);};abego.countStrings=function(_11,s){if(!s){return 0;}var len=s.length;var n=0;var _15=0;while(1){var i=_11.indexOf(s,_15);if(i<0){return n;}n++;_15=i+len;}return n;};abego.getBracedText=function(_17,_18,_19){if(!_18){_18=0;}var re=/\{([^\}]*)\}/gm;re.lastIndex=_18;var m=re.exec(_17);if(m){var s=m[1];var _1d=abego.countStrings(s,"{");if(!_1d){if(_19){_19.lastIndex=re.lastIndex;}return s;}var len=_17.length;for(var i=re.lastIndex;i<len&&_1d;i++){var c=_17.charAt(i);if(c=="{"){_1d++;}else{if(c=="}"){_1d--;}}}if(!_1d){if(_19){_19.lastIndex=i-1;}return _17.substring(m.index+1,i-1);}}};,_22,_23,_24){if(!_24){_24=[];}_21.forEach(function(t){if(,t)){_24.push(t);}});return _24;};abego.TiddlerFilterTerm=function(_26,_27){if(!_27){_27={};}var _28=_26;if(!_27.textIsRegExp){_28=_26.escapeRegExp();if(_27.fullWordMatch){_28="\\b"+_28+"\\b";}}var _29=new RegExp(_28,"m"+(_27.caseSensitive?"":"i"));this.tester=new abego.MultiFieldRegExpTester(_29,_27.fields,_27.withExtendedFields);};abego.TiddlerFilterTerm.prototype.test=function(_2a){return this.tester.test(_2a);};abego.parseNewTiddlerCommandLine=function(s){var m=/(.*?)\.(?:\s+|$)([^#]*)(#.*)?/.exec(s);if(!m){m=/([^#]*)()(#.*)?/.exec(s);}if(m){var r;if(m[3]){var s2=m[3].replace(/#/g,"");r=s2.parseParams("tag");}else{r=[[]];}var _2f=m[2]?m[2].trim():"";r.push({name:"text",value:_2f});r[0].text=[_2f];return {title:m[1].trim(),params:r};}else{return {title:s.trim(),params:[[]]};}};abego.parseTiddlerFilterTerm=function(_30,_31,_32){var re=/\s*(?:(?:\{([^\}]*)\})|(?:(=)|([#%!])|(?:(\w+)\s*\:(?!\/\/))|(?:(?:("(?:(?:\\")|[^"])+")|(?:\/((?:(?:\\\/)|[^\/])+)\/)|(\w+\:\/\/[^\s]+)|([^\s\)\-\"]+)))))/mg;var _34={"!":"title","%":"text","#":"tags"};var _35={};var _36;re.lastIndex=_31;while(1){var i=re.lastIndex;var m=re.exec(_30);if(!m||m.index!=i){throw "Word or String literal expected";}if(m[1]){var _39={};var _3a=abego.getBracedText(_30,0,_39);if(!_3a){throw "Invalid {...} syntax";}var f=Function("tiddler","return ("+_3a+");");return {func:f,lastIndex:_39.lastIndex,markRE:null};}if(m[2]){_36=true;}else{if(m[3]){_35[_34[m[3]]]=1;}else{if(m[4]){_35[m[4]]=1;}else{var _3c=m[6];var _3d=m[5]?window.eval(m[5]):m[6]?m[6]:m[7]?m[7]:m[8];var _3e=abego.copyOptions(_3e);_3e.fullWordMatch=_36;_3e.textIsRegExp=_3c;var _3f=[];for(var n in _35){_3f.push(n);}if(_3f.length==0){_3e.fields=_3e.defaultFields;}else{_3e.fields=_3f;_3e.withExtendedFields=false;}var _41=new abego.TiddlerFilterTerm(_3d,_3e);var _42=_3c?_3d:_3d.escapeRegExp();if(_42&&_36){_42="\\b"+_42+"\\b";}return {func:function(_43){return _41.test(_43);},lastIndex:re.lastIndex,markRE:_42?"(?:"+_42+")":null};}}}}};abego.BoolExp=function(s,_45,_46){this.s=s;var _47=_46&&_46.defaultOperationIs_OR;var _48=/\s*(?:(\-|not)|(\())/gi;var _49=/\s*\)/g;var _4a=/\s*(?:(and|\&\&)|(or|\|\|))/gi;var _4b=/\s*[^\)\s]/g;var _4c=/\s*(\-|not)?(\s*\()?/gi;var _4d;var _4e=function(_4f){_4c.lastIndex=_4f;var m=_4c.exec(s);var _51;var _52;if(m&&m.index==_4f){_4f=_4c.lastIndex;_51=m[1];if(m[2]){var e=_4d(_4f);_49.lastIndex=e.lastIndex;if(!_49.exec(s)){throw "Missing ')'";}_52={func:e.func,lastIndex:_49.lastIndex,markRE:e.markRE};}}if(!_52){_52=_45(s,_4f,_46);}if(_51){_52.func=(function(f){return function(_55){return !f(_55);};})(_52.func);_52.markRE=null;}return _52;};_4d=function(_56){var _57=_4e(_56);while(1){var l=_57.lastIndex;_4a.lastIndex=l;var m=_4a.exec(s);var _5a;var _5b;if(m&&m.index==l){_5a=!m[1];_5b=_4e(_4a.lastIndex);}else{try{_5b=_4e(l);}catch(e){return _57;}_5a=_47;}_57.func=(function(_5c,_5d,_5e){return _5e?function(_5f){return _5c(_5f)||_5d(_5f);}:function(_60){return _5c(_60)&&_5d(_60);};})(_57.func,_5b.func,_5a);_57.lastIndex=_5b.lastIndex;if(!_57.markRE){_57.markRE=_5b.markRE;}else{if(_5b.markRE){_57.markRE=_57.markRE+"|"+_5b.markRE;}}}};var _61=_4d(0);this.evalFunc=_61.func;if(_61.markRE){this.markRegExp=new RegExp(_61.markRE,_46.caseSensitive?"mg":"img");}};abego.BoolExp.prototype.exec=function(){return this.evalFunc.apply(this,arguments);};abego.BoolExp.prototype.getMarkRegExp=function(){return this.markRegExp;};abego.BoolExp.prototype.toString=function(){return this.s;};abego.MultiFieldRegExpTester=function(re,_63,_64){;this.fields=_63?_63:["title","text","tags"];this.withExtendedFields=_64;};abego.MultiFieldRegExpTester.prototype.test=function(_65){var;for(var i=0;i<this.fields.length;i++){var s=store.getValue(_65,this.fields[i]);if(typeof s=="string"&&re.test(s)){return this.fields[i];}}if(this.withExtendedFields){return store.forEachField(_65,function(_69,_6a,_6b){return typeof _6b=="string"&&re.test(_6b)?_6a:null;},true);}return null;};abego.TiddlerQuery=function(_6c,_6d,_6e,_6f,_70){if(_6e){this.regExp=new RegExp(_6c,_6d?"mg":"img");this.tester=new abego.MultiFieldRegExpTester(this.regExp,_6f,_70);}else{this.expr=new abego.BoolExp(_6c,abego.parseTiddlerFilterTerm,{defaultFields:_6f,caseSensitive:_6d,withExtendedFields:_70});}this.getQueryText=function(){return _6c;};this.getUseRegExp=function(){return _6e;};this.getCaseSensitive=function(){return _6d;};this.getDefaultFields=function(){return _6f;};this.getWithExtendedFields=function(){return _70;};};abego.TiddlerQuery.prototype.test=function(_71){if(!_71){return false;}if(this.regExp){return this.tester.test(_71);}return this.expr.exec(_71);};abego.TiddlerQuery.prototype.filter=function(_72){return,this.test,this);};abego.TiddlerQuery.prototype.getMarkRegExp=function(){if(this.regExp){return "".search(this.regExp)>=0?null:this.regExp;}return this.expr.getMarkRegExp();};abego.TiddlerQuery.prototype.toString=function(){return (this.regExp?this.regExp:this.expr).toString();};abego.PageWiseRenderer=function(){this.firstIndexOnPage=0;};merge(abego.PageWiseRenderer.prototype,{setItems:function(_73){this.items=_73;this.setFirstIndexOnPage(0);},getMaxPagesInNavigation:function(){return 10;},getItemsCount:function(_74){return this.items?this.items.length:0;},getCurrentPageIndex:function(){return Math.floor(this.firstIndexOnPage/this.getItemsPerPage());},getLastPageIndex:function(){return Math.floor((this.getItemsCount()-1)/this.getItemsPerPage());},setFirstIndexOnPage:function(_75){this.firstIndexOnPage=Math.min(Math.max(0,_75),this.getItemsCount()-1);},getFirstIndexOnPage:function(){this.firstIndexOnPage=Math.floor(this.firstIndexOnPage/this.getItemsPerPage())*this.getItemsPerPage();return this.firstIndexOnPage;},getLastIndexOnPage:function(){return Math.min(this.getFirstIndexOnPage()+this.getItemsPerPage()-1,this.getItemsCount()-1);},onPageChanged:function(_76,_77){},renderPage:function(_78){if(_78.beginRendering){_78.beginRendering(this);}try{if(this.getItemsCount()){var _79=this.getLastIndexOnPage();var _7a=-1;for(var i=this.getFirstIndexOnPage();i<=_79;i++){_7a++;_78.render(this,this.items[i],i,_7a);}}}finally{if(_78.endRendering){_78.endRendering(this);}}},addPageNavigation:function(_7c){if(!this.getItemsCount()){return;}var _7d=this;var _7e=function(e){if(!e){var e=window.event;}var _81=abego.toInt(this.getAttribute("page"),0);var _82=_7d.getCurrentPageIndex();if(_81==_82){return;}var _83=_81*_7d.getItemsPerPage();_7d.setFirstIndexOnPage(_83);_7d.onPageChanged(_81,_82);};var _84;var _85=this.getCurrentPageIndex();var _86=this.getLastPageIndex();if(_85>0){_84=createTiddlyButton(_7c,"Previous","Go to previous page (Shortcut: Alt-'<')",_7e,"prev");_84.setAttribute("page",(_85-1).toString());_84.setAttribute("accessKey","<");}for(var i=-this.getMaxPagesInNavigation();i<this.getMaxPagesInNavigation();i++){var _88=_85+i;if(_88<0){continue;}if(_88>_86){break;}var _89=(i+_85+1).toString();var _8a=_88==_85?"currentPage":"otherPage";_84=createTiddlyButton(_7c,_89,"Go to page %0".format([_89]),_7e,_8a);_84.setAttribute("page",(_88).toString());}if(_85<_86){_84=createTiddlyButton(_7c,"Next","Go to next page (Shortcut: Alt-'>')",_7e,"next");_84.setAttribute("page",(_85+1).toString());_84.setAttribute("accessKey",">");}}});abego.LimitedTextRenderer=function(){var _8b=40;var _8c=4;var _8d=function(_8e,_8f,_90){var n=_8e.length;if(n==0){_8e.push({start:_8f,end:_90});return;}var i=0;for(;i<n;i++){var _93=_8e[i];if(_93.start<=_90&&_8f<=_93.end){var r;var _95=i+1;for(;_95<n;_95++){r=_8e[_95];if(r.start>_90||_8f>_93.end){break;}}var _96=_8f;var _97=_90;for(var j=i;j<_95;j++){r=_8e[j];_96=Math.min(_96,r.start);_97=Math.max(_97,r.end);}_8e.splice(i,_95-i,{start:_96,end:_97});return;}if(_93.start>_90){break;}}_8e.splice(i,0,{start:_8f,end:_90});};var _99=function(_9a){var _9b=0;for(var i=0;i<_9a.length;i++){var _9d=_9a[i];_9b+=_9d.end-_9d.start;}return _9b;};var _9e=function(c){return (c>="a"&&c<="z")||(c>="A"&&c<="Z")||c=="_";};var _a0=function(s,_a2){if(!_9e(s[_a2])){return null;}for(var i=_a2-1;i>=0&&_9e(s[i]);i--){}var _a4=i+1;var n=s.length;for(i=_a2+1;i<n&&_9e(s[i]);i++){}return {start:_a4,end:i};};var _a6=function(s,_a8,_a9){var _aa;if(_a9){_aa=_a0(s,_a8);}else{if(_a8<=0){return _a8;}_aa=_a0(s,_a8-1);}if(!_aa){return _a8;}if(_a9){if(_aa.start>=_a8-_8c){return _aa.start;}if(_aa.end<=_a8+_8c){return _aa.end;}}else{if(_aa.end<=_a8+_8c){return _aa.end;}if(_aa.start>=_a8-_8c){return _aa.start;}}return _a8;};var _ab=function(s,_ad){var _ae=[];if(_ad){var _af=0;var n=s.length;var _b1=0;do{_ad.lastIndex=_af;var _b2=_ad.exec(s);if(_b2){if(_af<_b2.index){var t=s.substring(_af,_b2.index);_ae.push({text:t});}_ae.push({text:_b2[0],isMatch:true});_af=_b2.index+_b2[0].length;}else{_ae.push({text:s.substr(_af)});break;}}while(true);}else{_ae.push({text:s});}return _ae;};var _b4=function(_b5){var _b6=0;for(var i=0;i<_b5.length;i++){if(_b5[i].isMatch){_b6++;}}return _b6;};var _b8=function(s,_ba,_bb,_bc,_bd){var _be=Math.max(Math.floor(_bd/(_bc+1)),_8b);var _bf=Math.max(_be-(_bb-_ba),0);var _c0=Math.min(Math.floor(_bb+_bf/3),s.length);var _c1=Math.max(_c0-_be,0);_c1=_a6(s,_c1,true);_c0=_a6(s,_c0,false);return {start:_c1,end:_c0};};var _c2=function(_c3,s,_c5){var _c6=[];var _c7=_b4(_c3);var pos=0;for(var i=0;i<_c3.length;i++){var t=_c3[i];var _cb=t.text;if(t.isMatch){var _cc=_b8(s,pos,pos+_cb.length,_c7,_c5);_8d(_c6,_cc.start,_cc.end);}pos+=_cb.length;}return _c6;};var _cd=function(s,_cf,_d0){var _d1=_d0-_99(_cf);while(_d1>0){if(_cf.length==0){_8d(_cf,0,_a6(s,_d0,false));return;}else{var _d2=_cf[0];var _d3;var _d4;if(_d2.start==0){_d3=_d2.end;if(_cf.length>1){_d4=_cf[1].start;}else{_8d(_cf,_d3,_a6(s,_d3+_d1,false));return;}}else{_d3=0;_d4=_d2.start;}var _d5=Math.min(_d4,_d3+_d1);_8d(_cf,_d3,_d5);_d1-=(_d5-_d3);}}};var _d6=function(_d7,s,_d9,_da,_db){if(_da.length==0){return;}var _dc=function(_dd,s,_df,_e0,_e1){var t;var _e3;var pos=0;var i=0;var _e6=0;for(;i<_df.length;i++){t=_df[i];_e3=t.text;if(_e0<pos+_e3.length){_e6=_e0-pos;break;}pos+=_e3.length;}var _e7=_e1-_e0;for(;i<_df.length&&_e7>0;i++){t=_df[i];_e3=t.text.substr(_e6);_e6=0;if(_e3.length>_e7){_e3=_e3.substr(0,_e7);}if(t.isMatch){createTiddlyElement(_dd,"span",null,"marked",_e3);}else{createTiddlyText(_dd,_e3);}_e7-=_e3.length;}if(_e1<s.length){abego.createEllipsis(_dd);}};if(_da[0].start>0){abego.createEllipsis(_d7);}var _e8=_db;for(var i=0;i<_da.length&&_e8>0;i++){var _ea=_da[i];var len=Math.min(_ea.end-_ea.start,_e8);_dc(_d7,s,_d9,_ea.start,_ea.start+len);_e8-=len;}};this.render=function(_ec,s,_ee,_ef){if(s.length<_ee){_ee=s.length;}var _f0=_ab(s,_ef);var _f1=_c2(_f0,s,_ee);_cd(s,_f1,_ee);_d6(_ec,s,_f0,_f1,_ee);};};(function(){function alertAndThrow(msg){alert(msg);throw msg;}if(version.major<2||(version.major==2&&version.minor<1)){alertAndThrow("YourSearchPlugin requires TiddlyWiki 2.1 or newer.\n\nCheck the archive for YourSearch plugins\nsupporting older versions of TiddlyWiki.\n\nArchive:");}abego.YourSearch={};var _f3;var _f4;var _f5=function(_f6){_f3=_f6;};var _f7=function(){return _f3?_f3:[];};var _f8=function(){return _f3?_f3.length:0;};var _f9=4;var _fa=10;var _fb=2;var _fc=function(s,re){var m=s.match(re);return m?m.length:0;};var _100=function(_101,_102){var _103=_102.getMarkRegExp();if(!_103){return 1;}var _104=_101.title.match(_103);var _105=_104?_104.length:0;var _106=_fc(_101.getTags(),_103);var _107=_104?_104.join("").length:0;var _108=_101.title.length>0?_107/_101.title.length:0;var rank=_105*_f9+_106*_fb+_108*_fa+1;return rank;};var _10a=function(_10b,_10c,_10d,_10e,_10f,_110){_f4=null;var _111=_10b.reverseLookup("tags",_110,false);try{var _112=[];if(config.options.chkSearchInTitle){_112.push("title");}if(config.options.chkSearchInText){_112.push("text");}if(config.options.chkSearchInTags){_112.push("tags");}_f4=new abego.TiddlerQuery(_10c,_10d,_10e,_112,config.options.chkSearchExtendedFields);}catch(e){return [];}var _113=_f4.filter(_111);var _114=abego.YourSearch.getRankFunction();for(var i=0;i<_113.length;i++){var _116=_113[i];var rank=_114(_116,_f4);_116.searchRank=rank;}if(!_10f){_10f="title";}var _118=function(a,b){var _11b=a.searchRank-b.searchRank;if(_11b==0){if(a[_10f]==b[_10f]){return (0);}else{return (a[_10f]<b[_10f])?-1:+1;}}else{return (_11b>0)?-1:+1;}};_113.sort(_118);return _113;};var _11c=80;var _11d=50;var _11e=250;var _11f=50;var _120=25;var _121=10;var _122="yourSearchResult";var _123="yourSearchResultItems";var _124;var _125;var _126;var _127;var _128;var _129=function(){if(version.extensions.YourSearchPlugin.styleSheetInited){return;}version.extensions.YourSearchPlugin.styleSheetInited=true;setStylesheet(store.getTiddlerText("YourSearchStyleSheet"),"yourSearch");};var _12a=function(){return _125!=null&&_125.parentNode==document.body;};var _12b=function(){if(_12a()){document.body.removeChild(_125);}};var _12c=function(e){_12b();var _12e=this.getAttribute("tiddlyLink");if(_12e){var _12f=this.getAttribute("withHilite");var _130=highlightHack;if(_12f&&_12f=="true"&&_f4){highlightHack=_f4.getMarkRegExp();}story.displayTiddler(this,_12e);highlightHack=_130;}return (false);};var _131=function(){if(!_126){return;}var root=_126;var _133=findPosX(root);var _134=findPosY(root);var _135=root.offsetHeight;var _136=_133;var _137=_134+_135;var _138=findWindowWidth();if(_138<_125.offsetWidth){"px";_138=findWindowWidth();}var _139=_125.offsetWidth;if(_136+_139>_138){_136=_138-_139-30;}if(_136<0){_136=0;}"px";"px";"block";};var _13a=function(){if(_125){window.scrollTo(0,ensureVisible(_125));}if(_126){window.scrollTo(0,ensureVisible(_126));}};var _13b=function(){_131();_13a();};var _13c;var _13d;var _13e=new abego.PageWiseRenderer();var _13f=function(_140){this.itemHtml=store.getTiddlerText("YourSearchItemTemplate");if(!this.itemHtml){alertAndThrow("YourSearchItemTemplate not found");};if(!{,"div",_123);}};merge(_13f.prototype,{render:function(_141,_142,_143,_144){_13c=_144;_13d=_142;var item=createTiddlyElement(,"div",null,"yourSearchItem");item.innerHTML=this.itemHtml;applyHtmlMacros(item,null);refreshElements(item,null);},endRendering:function(_146){_13d=null;}});var _147=function(){if(!_125||!_126){return;}var html=store.getTiddlerText("YourSearchResultTemplate");if(!html){html="<b>Tiddler YourSearchResultTemplate not found</b>";}_125.innerHTML=html;applyHtmlMacros(_125,null);refreshElements(_125,null);var _149=new _13f(_125);_13e.renderPage(_149);_13b();};_13e.getItemsPerPage=function(){var n=(config.options.chkPreviewText)?abego.toInt(config.options.txtItemsPerPageWithPreview,_121):abego.toInt(config.options.txtItemsPerPage,_120);return (n>0)?n:1;};_13e.onPageChanged=function(){_147();};var _14b=function(){if(_126==null||!config.options.chkUseYourSearch){return;}if((_126.value==_124)&&_124&&!_12a()){if(_125&&(_125.parentNode!=document.body)){document.body.appendChild(_125);_13b();}else{abego.YourSearch.onShowResult(true);}}};var _14c=function(){_12b();_125=null;_124=null;};var _14d=function(self,e){while(e!=null){if(self==e){return true;}e=e.parentNode;}return false;};var _150=function(e){if({return;}if({return;}if(_125&&_14d(_125,{return;}_12b();};var _152=function(e){if(e.keyCode==27){_12b();}};addEvent(document,"click",_150);addEvent(document,"keyup",_152);var _154=function(text,_156,_157){_124=text;_f5(_10a(store,text,_156,_157,"title","excludeSearch"));abego.YourSearch.onShowResult();};var _158=function(_159,_15a,_15b,_15c,_15d,_15e){_129();_124="";var _15f=null;var _160=function(txt){if(config.options.chkUseYourSearch){_154(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);}else{,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);}_124=txt.value;};var _162=function(e){_160(_126);return false;};var _164=function(e){if(!e){var e=window.event;}_126=this;switch(e.keyCode){case 13:if(e.ctrlKey&&_128&&_12a()){_128.onclick.apply(_128,[e]);}else{_160(this);}break;case 27:if(_12a()){_12b();}else{this.value="";clearMessage();}break;}if(String.fromCharCode(e.keyCode)==this.accessKey||e.altKey){_14b();}if(this.value.length<3&&_15f){clearTimeout(_15f);}if(this.value.length>2){if(this.value!=_124){if(!config.options.chkUseYourSearch||config.options.chkSearchAsYouType){if(_15f){clearTimeout(_15f);}var txt=this;_15f=setTimeout(function(){_160(txt);},500);}}else{if(_15f){clearTimeout(_15f);}}}if(this.value.length==0){_12b();}};var _168=function(e){;clearMessage();_14b();};var args=_15d.parseParams("list",null,true);var _16b=getFlag(args,"buttonAtRight");var _16c=getParam(args,"sizeTextbox",this.sizeTextbox);var btn;if(!_16b){btn=createTiddlyButton(_159,this.label,this.prompt,_162);}var txt=createTiddlyElement(_159,"input",null,null,null);if(_15b[0]){txt.value=_15b[0];}txt.onkeyup=_164;txt.onfocus=_168;txt.setAttribute("size",_16c);txt.setAttribute("accessKey",this.accessKey);txt.setAttribute("autocomplete","off");if(config.browser.isSafari){txt.setAttribute("type","search");txt.setAttribute("results","5");}else{txt.setAttribute("type","text");}if(_16b){btn=createTiddlyButton(_159,this.label,this.prompt,_162);}_126=txt;_127=btn;};var _16f=function(){_12b();var _170=_f7();var n=_170.length;if(n){var _172=[];for(var i=0;i<n;i++){_172.push(_170[i].title);}story.displayTiddlers(null,_172);}};var _174=function(_175,_176,_177,_178){invokeMacro(_175,"option",_176,_177,_178);var elem=_175.lastChild;var _17a=elem.onclick;elem.onclick=function(e){var _17c=_17a.apply(this,arguments);_147();return _17c;};return elem;};var _17d=function(s){var _17f=["''","{{{","}}}","//","<<<","/***","***/"];var _180="";for(var i=0;i<_17f.length;i++){if(i!=0){_180+="|";}_180+="("+_17f[i].escapeRegExp()+")";}return s.replace(new RegExp(_180,"mg"),"").trim();};var _182=function(){var i=_13c;return (i>=0&&i<=9)?(i<9?(i+1):0):-1;};var _184=new abego.LimitedTextRenderer();var _185=function(_186,s,_188){_184.render(_186,s,_188,_f4.getMarkRegExp());};var _189=TiddlyWiki.prototype.saveTiddler;TiddlyWiki.prototype.saveTiddler=function(_18a,_18b,_18c,_18d,_18e,tags,_190){_189.apply(this,arguments);_14c();};var _191=TiddlyWiki.prototype.removeTiddler;TiddlyWiki.prototype.removeTiddler=function(_192){_191.apply(this,arguments);_14c();};config.macros.yourSearch={label:"yourSearch",prompt:"Gives access to the current/last YourSearch result",handler:function(_193,_194,_195,_196,_197,_198){if(_195.length==0){return;}var name=_195[0];var func=config.macros.yourSearch.funcs[name];if(func){func(_193,_194,_195,_196,_197,_198);}},tests:{"true":function(){return true;},"false":function(){return false;},"found":function(){return _f8()>0;},"previewText":function(){return config.options.chkPreviewText;}},funcs:{itemRange:function(_19b){if(_f8()){var _19c=_13e.getLastIndexOnPage();var s="%0 - %1".format([_13e.getFirstIndexOnPage()+1,_19c+1]);createTiddlyText(_19b,s);}},count:function(_19e){createTiddlyText(_19e,_f8().toString());},query:function(_19f){if(_f4){createTiddlyText(_19f,_f4.toString());}},version:function(_1a0){var t="YourSearch %0.%1.%2".format([version.extensions.YourSearchPlugin.major,version.extensions.YourSearchPlugin.minor,version.extensions.YourSearchPlugin.revision]);var e=createTiddlyElement(_1a0,"a");e.setAttribute("href","");e.innerHTML="<font color=\"black\" face=\"Arial, Helvetica, sans-serif\">"+t+"<font>";},copyright:function(_1a3){var e=createTiddlyElement(_1a3,"a");e.setAttribute("href","");e.innerHTML="<font color=\"black\" face=\"Arial, Helvetica, sans-serif\">&copy; 2005-2006 <b><font color=\"red\">abego</font></b> Software<font>";},newTiddlerButton:function(_1a5){if(_f4){var r=abego.parseNewTiddlerCommandLine(_f4.getQueryText());var btn=config.macros.newTiddler.createNewTiddlerButton(_1a5,r.title,r.params,"new tiddler","Create a new tiddler based on search text. (Shortcut: Ctrl-Enter; Separators: '.', '#')",null,"text");var _1a8=btn.onclick;btn.onclick=function(){_12b();_1a8.apply(this,arguments);};_128=btn;}},linkButton:function(_1a9,_1aa,_1ab,_1ac,_1ad,_1ae){if(_1ab<2){return;}var _1af=_1ab[1];var text=_1ab<3?_1af:_1ab[2];var _1b1=_1ab<4?text:_1ab[3];var _1b2=_1ab<5?null:_1ab[4];var btn=createTiddlyButton(_1a9,text,_1b1,_12c,null,null,_1b2);btn.setAttribute("tiddlyLink",_1af);},closeButton:function(_1b4,_1b5,_1b6,_1b7,_1b8,_1b9){var _1ba=createTiddlyButton(_1b4,"close","Close the Search Results (Shortcut: ESC)",_12b);},openAllButton:function(_1bb,_1bc,_1bd,_1be,_1bf,_1c0){var n=_f8();if(n==0){return;}var _1c2=n==1?"open tiddler":"open all %0 tiddlers".format([n]);var _1c3=createTiddlyButton(_1bb,_1c2,"Open all found tiddlers (Shortcut: Alt-O)",_16f);_1c3.setAttribute("accessKey","O");},naviBar:function(_1c4,_1c5,_1c6,_1c7,_1c8,_1c9){_13e.addPageNavigation(_1c4);},"if":function(_1ca,_1cb,_1cc,_1cd,_1ce,_1cf){if(_1cc.length<2){return;}var _1d0=_1cc[1];var _1d1=(_1d0=="not");if(_1d1){if(_1cc.length<3){return;}_1d0=_1cc[2];}var test=config.macros.yourSearch.tests[_1d0];var _1d3=false;try{if(test){_1d3=test(_1ca,_1cb,_1cc,_1cd,_1ce,_1cf)!=_1d1;}else{_1d3=(!eval(_1d0))==_1d1;}}catch(ex){}if(!_1d3){"none";}},chkPreviewText:function(_1d4,_1d5,_1d6,_1d7,_1d8,_1d9){var _1da=_1d6.slice(1).join(" ");var elem=_174(_1d4,"chkPreviewText",_1d7,_1d9);elem.setAttribute("accessKey","P");elem.title="Show text preview of found tiddlers (Shortcut: Alt-P)";return elem;}}};config.macros.foundTiddler={label:"foundTiddler",prompt:"Provides information on the tiddler currently processed on the YourSearch result page",handler:function(_1dc,_1dd,_1de,_1df,_1e0,_1e1){var name=_1de[0];var func=config.macros.foundTiddler.funcs[name];if(func){func(_1dc,_1dd,_1de,_1df,_1e0,_1e1);}},funcs:{title:function(_1e4,_1e5,_1e6,_1e7,_1e8,_1e9){if(!_13d){return;}var _1ea=_182();var _1eb=_1ea>=0?"Open tiddler (Shortcut: Alt-%0)".format([_1ea.toString()]):"Open tiddler";var btn=createTiddlyButton(_1e4,null,_1eb,_12c,null);btn.setAttribute("tiddlyLink",_13d.title);btn.setAttribute("withHilite","true");_185(btn,_13d.title,_11c);if(_1ea>=0){btn.setAttribute("accessKey",_1ea.toString());}},tags:function(_1ed,_1ee,_1ef,_1f0,_1f1,_1f2){if(!_13d){return;}_185(_1ed,_13d.getTags(),_11d);},text:function(_1f3,_1f4,_1f5,_1f6,_1f7,_1f8){if(!_13d){return;}_185(_1f3,_17d(_13d.text),_11e);},field:function(_1f9,_1fa,_1fb,_1fc,_1fd,_1fe){if(!_13d){return;}var name=_1fb[1];var len=_1fb.length>2?abego.toInt(_1fb[2],_11f):_11f;var v=store.getValue(_13d,name);if(v){_185(_1f9,_17d(v),len);}},number:function(_202,_203,_204,_205,_206,_207){var _208=_182();if(_208>=0){var text="%0)".format([_208.toString()]);createTiddlyElement(_202,"span",null,"shortcutNumber",text);}}}};var opts={chkUseYourSearch:true,chkPreviewText:true,chkSearchAsYouType:true,chkSearchInTitle:true,chkSearchInText:true,chkSearchInTags:true,chkSearchExtendedFields:true,txtItemsPerPage:_120,txtItemsPerPageWithPreview:_121};for(var n in opts){if(config.options[n]==undefined){config.options[n]=opts[n];}}config.shadowTiddlers.AdvancedOptions+="\n<<option chkUseYourSearch>> Use 'Your Search' //([[more options|YourSearch Options]]) ([[help|YourSearch Help]])// ";config.shadowTiddlers["YourSearch Help"]="!Field Search\nWith the Field Search you can restrict your search to certain fields of a tiddler, e.g"+" only search the tags or only the titles. The general form is //fieldname//'':''//textToSearch// (e."+"g. {{{title:intro}}}). In addition one-character shortcuts are also supported for the standard field"+"s {{{title}}}, {{{text}}} and {{{tags}}}:\n|!What you want|!What you type|!Example|\n|Search ''titles "+"only''|start word with ''!''|{{{!jonny}}} (shortcut for {{{title:jonny}}})|\n|Search ''contents/text "+"only''|start word with ''%''|{{{%football}}} (shortcut for {{{text:football}}})|\n|Search ''tags only"+"''|start word with ''#''|{{{#Plugin}}} (shortcut for {{{tags:Plugin}}})|\n\nUsing this feature you may"+" also search the extended fields (\"Metadata\") introduced with TiddlyWiki 2.1, e.g. use {{{priority:1"+"}}} to find all tiddlers with the priority field set to \"1\".\n\nYou may search a word in more than one"+" field. E.g. {{{!#Plugin}}} (or {{{title:tags:Plugin}}} in the \"long form\") finds tiddlers containin"+"g \"Plugin\" either in the title or in the tags (but does not look for \"Plugin\" in the text). \n\n!Boole"+"an Search\nThe Boolean Search is useful when searching for multiple words.\n|!What you want|!What you "+"type|!Example|\n|''All words'' must exist|List of words|{{{jonny jeremy}}} (or {{{jonny and jeremy}}}"+")|\n|''At least one word'' must exist|Separate words by ''or''|{{{jonny or jeremy}}}|\n|A word ''must "+"not exist''|Start word with ''-''|{{{-jonny}}} (or {{{not jonny}}})|\n\n''Note:'' When you specify two"+" words, separated with a space, YourSearch finds all tiddlers that contain both words, but not neces"+"sarily next to each other. If you want to find a sequence of word, e.g. '{{{John Brown}}}', you need"+" to put the words into quotes. I.e. you type: {{{\"john brown\"}}}.\n\nUsing parenthesis you may change "+"the default \"left to right\" evaluation of the boolean search. E.g. {{{not (jonny or jeremy)}}} finds"+" all tiddlers that contain neither \"jonny\" nor \"jeremy. In contrast to this {{{not jonny or jeremy}}"+"} (i.e. without parenthesis) finds all tiddlers that either don't contain \"jonny\" or that contain \"j"+"eremy\".\n\n!'Exact Word' Search\nBy default a search result all matches that 'contain' the searched tex"+"t. E.g. if you search for {{{Task}}} you will get all tiddlers containing 'Task', but also '~Complet"+"edTask', '~TaskForce' etc.\n\nIf you only want to get the tiddlers that contain 'exactly the word' you"+" need to prefix it with a '='. E.g. typing '=Task' will find the tiddlers that contain the word 'Tas"+"k', ignoring words that just contain 'Task' as a substring.\n\n!~CaseSensitiveSearch and ~RegExpSearch"+"\nThe standard search options ~CaseSensitiveSearch and ~RegExpSearch are fully supported by YourSearc"+"h. However when ''~RegExpSearch'' is on Filtered and Boolean Search are disabled.\n\nIn addition you m"+"ay do a \"regular expression\" search even with the ''~RegExpSearch'' set to false by directly enterin"+"g the regular expression into the search field, framed with {{{/.../}}}. \n\nExample: {{{/m[ae][iy]er/"+"}}} will find all tiddlers that contain either \"maier\", \"mayer\", \"meier\" or \"meyer\".\n\n!~JavaScript E"+"xpression Filtering\nIf you are familiar with JavaScript programming and know some TiddlyWiki interna"+"ls you may also use JavaScript expression for the search. Just enter a JavaScript boolean expression"+" into the search field, framed with {{{ { ... } }}}. In the code refer to the variable tiddler and e"+"valuate to {{{true}}} when the given tiddler should be included in the result. \n\nExample: {{{ { tidd"+"ler.modified > new Date(\"Jul 4, 2005\")} }}} returns all tiddler modified after July 4th, 2005.\n\n!Com"+"bined Search\nYou are free to combine the various search options. \n\n''Examples''\n|!What you type|!Res"+"ult|\n|{{{!jonny !jeremy -%football}}}|all tiddlers with both {{{jonny}}} and {{{jeremy}}} in its tit"+"les, but no {{{football}}} in content.|\n|{{{#=Task}}}|All tiddlers tagged with 'Task' (the exact wor"+"d). Tags named '~CompletedTask', '~TaskForce' etc. are not considered.|\n\n!Access Keys\nYou are encour"+"aged to use the access keys (also called \"shortcut\" keys) for the most frequently used operations. F"+"or quick reference these shortcuts are also mentioned in the tooltip for the various buttons etc.\n\n|"+"!Key|!Operation|\n|{{{Alt-F}}}|''The most important keystroke'': It moves the cursor to the search in"+"put field so you can directly start typing your query. Pressing {{{Alt-F}}} will also display the pr"+"evious search result. This way you can quickly display multiple tiddlers using \"Press {{{Alt-F}}}. S"+"elect tiddler.\" sequences.|\n|{{{ESC}}}|Closes the [[YourSearch Result]]. When the [[YourSearch Resul"+"t]] is already closed and the cursor is in the search input field the field's content is cleared so "+"you start a new query.|\n|{{{Alt-1}}}, {{{Alt-2}}},... |Pressing these keys opens the first, second e"+"tc. tiddler from the result list.|\n|{{{Alt-O}}}|Opens all found tiddlers.|\n|{{{Alt-P}}}|Toggles the "+"'Preview Text' mode.|\n|{{{Alt-'<'}}}, {{{Alt-'>'}}}|Displays the previous or next page in the [[Your"+"Search Result]].|\n|{{{Return}}}|When you have turned off the 'as you type' search mode pressing the "+"{{{Return}}} key actually starts the search (as does pressing the 'search' button).|\n\n//If some of t"+"hese shortcuts don't work for you check your browser if you have other extensions installed that alr"+"eady \"use\" these shortcuts.//";config.shadowTiddlers["YourSearch Options"]="|>|!YourSearch Options|\n|>|<<option chkUseYourSearch>> Use 'Your Search'|\n|!|<<option chkPreviewText"+">> Show Text Preview|\n|!|<<option chkSearchAsYouType>> 'Search As You Type' Mode (No RETURN required"+" to start search)|\n|!|Default Search Filter:<<option chkSearchInTitle>>Title ('!')     <<option chk"+"SearchInText>>Text ('%')     <<option chkSearchInTags>>Tags ('#')    <<option chkSearchExtendedFiel"+"ds>>Extended Fields<html><br><font size=\"-2\">The fields of a tiddlers that are searched when you don"+"'t explicitly specify a filter in the search text <br>(Explictly specify fields using one or more '!"+"', '%', '#' or 'fieldname:' prefix before the word/text to find).</font></html>|\n|!|Number of items "+"on search result page: <<option txtItemsPerPage>>|\n|!|Number of items on search result page with pre"+"view text: <<option txtItemsPerPageWithPreview>>|\n";config.shadowTiddlers["YourSearchStyleSheet"]="/***\n!~YourSearchResult Stylesheet\n***/\n/*{{{*/\n.yourSearchResult {\n\tposition: absolute;\n\twidth: 800"+"px;\n\n\tpadding: 0.2em;\n\tlist-style: none;\n\tmargin: 0;\n\n\tbackground: #ffd;\n\tborder: 1px solid DarkGra"+"y;\n}\n\n/*}}}*/\n/***\n!!Summary Section\n***/\n/*{{{*/\n.yourSearchResult .summary {\n\tborder-bottom-width:"+" thin;\n\tborder-bottom-style: solid;\n\tborder-bottom-color: #999999;\n\tpadding-bottom: 4px;\n}\n\n.yourSea"+"rchRange, .yourSearchCount, .yourSearchQuery   {\n\tfont-weight: bold;\n}\n\n.yourSearchResult .summary ."+"button {\n\tfont-size: 10px;\n\n\tpadding-left: 0.3em;\n\tpadding-right: 0.3em;\n}\n\n.yourSearchResult .summa"+"ry .chkBoxLabel {\n\tfont-size: 10px;\n\n\tpadding-right: 0.3em;\n}\n\n/*}}}*/\n/***\n!!Items Area\n***/\n/*{{{*"+"/\n.yourSearchResult .marked {\n\tbackground: none;\n\tfont-weight: bold;\n}\n\n.yourSearchItem {\n\tmargin-to"+"p: 2px;\n}\n\n.yourSearchNumber {\n\tcolor: #808080;\n}\n\n\n.yourSearchTags {\n\tcolor: #008000;\n}\n\n.yourSearc"+"hText {\n\tcolor: #808080;\n\tmargin-bottom: 6px;\n}\n\n/*}}}*/\n/***\n!!Footer\n***/\n/*{{{*/\n.yourSearchFoote"+"r {\n\tmargin-top: 8px;\n\tborder-top-width: thin;\n\tborder-top-style: solid;\n\tborder-top-color: #999999;"+"\n}\n\n.yourSearchFooter a:hover{\n\tbackground: none;\n\tcolor: none;\n}\n/*}}}*/\n/***\n!!Navigation Bar\n***/"+"\n/*{{{*/\n.yourSearchNaviBar a {\n\tfont-size: 16px;\n\tmargin-left: 4px;\n\tmargin-right: 4px;\n\tcolor: bla"+"ck;\n\ttext-decoration: underline;\n}\n\n.yourSearchNaviBar a:hover {\n\tbackground-color: none;\n}\n\n.yourSe"+"archNaviBar .prev {\n\tfont-weight: bold;\n\tcolor: blue;\n}\n\n.yourSearchNaviBar .currentPage {\n\tcolor: #"+"FF0000;\n\tfont-weight: bold;\n\ttext-decoration: none;\n}\n\n.yourSearchNaviBar .next {\n\tfont-weight: bold"+";\n\tcolor: blue;\n}\n/*}}}*/\n";config.shadowTiddlers["YourSearchResultTemplate"]="<!--\n{{{\n-->\n<span macro=\"yourSearch if found\">\n<!-- The Summary Header ============================"+"================ -->\n<table class=\"summary\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">"+"<tbody>\n  <tr>\n\t<td align=\"left\">\n\t\tYourSearch Result <span class=\"yourSearchRange\" macro=\"yourSearc"+"h itemRange\"></span>\n\t\t&nbsp;of&nbsp;<span class=\"yourSearchCount\" macro=\"yourSearch count\"></span>\n"+"\t\tfor&nbsp;<span class=\"yourSearchQuery\" macro=\"yourSearch query\"></span>\n\t</td>\n\t<td class=\"yourSea"+"rchButtons\" align=\"right\">\n\t\t<span macro=\"yourSearch chkPreviewText\"></span><span class=\"chkBoxLabel"+"\">preview text</span>\n\t\t<span macro=\"yourSearch newTiddlerButton\"></span>\n\t\t<span macro=\"yourSearch openAllButton\"></span>\n\t\t<span macro=\"yourSearch lin"+"kButton 'YourSearch Options' options 'Configure YourSearch'\"></span>\n\t\t<span macro=\"yourSearch linkB"+"utton 'YourSearch Help' help 'Get help how to use YourSearch'\"></span>\n\t\t<span macro=\"yourSearch clo"+"seButton\"></span>\n\t</td>\n  </tr>\n</tbody></table>\n\n<!-- The List of Found Tiddlers ================="+"=========================== -->\n<div id=\"yourSearchResultItems\" itemsPerPage=\"25\" itemsPerPageWithPr"+"eview=\"10\"></div>\n\n<!-- The Footer (with the Navigation) ==========================================="+"= -->\n<table class=\"yourSearchFooter\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tbody"+">\n  <tr>\n\t<td align=\"left\">\n\t\tResult page: <span class=\"yourSearchNaviBar\" macro=\"yourSearch naviBar"+"\"></span>\n\t</td>\n\t<td align=\"right\"><span macro=\"yourSearch version\"></span>, <span macro=\"yourSearc"+"h copyright\"></span>\n\t</td>\n  </tr>\n</tbody></table>\n<!-- end of the 'tiddlers found' case ========="+"================================== -->\n</span>\n\n\n<!-- The \"No tiddlers found\" case ================="+"========================== -->\n<span macro=\"yourSearch if not found\">\n<table class=\"summary\" border="+"\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tbody>\n  <tr>\n\t<td align=\"left\">\n\t\tYourSearch Resu"+"lt: No tiddlers found for <span class=\"yourSearchQuery\" macro=\"yourSearch query\"></span>.\n\t</td>\n\t<t"+"d class=\"yourSearchButtons\" align=\"right\">\n\t\t<span macro=\"yourSearch newTiddlerButton\"></span>\n\t\t<span macro=\"yourSearch linkButton 'YourSearch Options'"+" options 'Configure YourSearch'\"></span>\n\t\t<span macro=\"yourSearch linkButton 'YourSearch Help' help"+" 'Get help how to use YourSearch'\"></span>\n\t\t<span macro=\"yourSearch closeButton\"></span>\n\t</td>\n  <"+"/tr>\n</tbody></table>\n</span>\n\n\n<!--\n}}}\n-->\n";config.shadowTiddlers["YourSearchItemTemplate"]="<!--\n{{{\n-->\n<span class='yourSearchNumber' macro='foundTiddler number'></span>\n<span class='yourSea"+"rchTitle' macro='foundTiddler title'/></span>&nbsp;-&nbsp;\n<span class='yourSearchTags' macro='found"+"Tiddler field tags 50'/></span>\n<span macro=\"yourSearch if previewText\"><div class='yourSearchText' macro='fo"+"undTiddler field text 250'/></div></span>\n<!--\n}}}\n-->";config.shadowTiddlers["YourSearch"]="<<tiddler [[YourSearch Help]]>>";config.shadowTiddlers["YourSearch Result"]="The popup-like window displaying the result of a YourSearch query.";;var _20c=function(){if(!=_158){alert("Message from YourSearchPlugin:\n\n\nAnother plugin has disabled the 'Your Search' features.\n\n\nYou may "+"disable the other plugin or change the load order of \nthe plugins (by changing the names of the tidd"+"lers)\nto enable the 'Your Search' features.");}};setTimeout(_20c,5000);abego.YourSearch.getStandardRankFunction=function(){return _100;};abego.YourSearch.getRankFunction=function(){return abego.YourSearch.getStandardRankFunction();};abego.YourSearch.getCurrentTiddler=function(){return _13d;};abego.YourSearch.closeResult=function(){_12b();};abego.YourSearch.getFoundTiddlers=function(){return _f3;};abego.YourSearch.getQuery=function(){return _f4;};abego.YourSearch.onShowResult=function(_20d){highlightHack=_f4?_f4.getMarkRegExp():null;if(!_20d){_13e.setItems(_f7());}if(!_125){_125=createTiddlyElement(document.body,"div",_122,"yourSearchResult");}else{if(_125.parentNode!=document.body){document.body.appendChild(_125);}}_147();highlightHack=null;};})();}
El chat de texto online es casi tan viejo como Internet. No obstante, aunque puedas chatear 
con tus amigos en tiempo real, eso no quiere decir que siempre sea la manera más eficaz de 
comunicarte. Imagina lo que sería escribir texto como un loco para advertir a los miembros de 
tu grupo sobre el próximo movimiento de un jefe de mazmorras mientras encadenáis juntos una 
serie de movimientos para mantener la atención del personaje, o enfrentarte en la Arena contra 
inteligentes oponentes humanos que se anticiparán tus movimientos y se aprovecharán de 
cualquiera de tus puntos débiles. Enviar un mensaje a tu equipo requiere segundos muy 
valiosos, un tiempo que podrías usar para lanzar un contraataque a tu enemigo o incluso eliminar 
a alguno de sus aliados. En definitiva, no siempre es fácil tener un momento para escribir 
con tranquilidad.

El chat de voz, una novedad introducida en el parche 2.2, os permitirá a ti y a tus amigos 
comunicaros directamente usando un micrófono o unos auriculares con micrófono incorporado 
en lugar del chat de texto. Con esta interesante y nueva característica podrás hablar con 
miembros de tu grupo, de tu banda, de tu campo de batalla, e incluso con jugadores de canales 
personalizados, que puedes crear y moderar. Todas estas características están integradas 
en una interfaz intuitiva y fácil de usar que te permitirá administrar, moderar y modificar todos
tus canales de chat.


Activar el chat de voz en World of Warcraft es un procedimiento sencillo y directo:

   1. Comprueba que tu micrófono esté conectado a tu ordenador y activo antes de empezar a jugar.
 Comprueba también que no esté en modo "silencio".
   2. Abre el menú "Opciones" de World of Warcraft.
   3. Entra en la configuración de sonido y voz (este menú solo aparecerá como "Sonido y Voz" 
si el chat de voz está activado en tu reino).
   4. Haz clic en la pestaña "Voz" en la parte inferior de la interfaz para abrir las opciones de chat 
de voz.
   5. Una vez dentro de la pantalla "Opciones de voz", haz clic en "Activar chat de voz" para marcar 
la casilla.
   6. Ahora el chat de voz está activado.

[¡Sanad al tanque, sanad al tanque! ¡Sacerdotes!] En cuanto hayas activado tu chat de voz, ya podrás
comenzar a utilizarlo. Sin embargo, quizás sería una buena idea que ajustaras la configuración para
asegurarte de que consigues el mejor rendimiento de tu sistema.

    * Activar micrófono. Fíjate en que esta opción esté marcada para poder hablar con tu micrófono. 
Selecciona la entrada de tu micrófono del menú desplegable que se encuentra justo debajo de esta casilla.
    * Volumen del micrófono. Ajusta el volumen de tu micrófono. El volumen ideal puede variar dependiendo 
del tipo de micrófono, así que quizás sea una buena idea que pruebes hasta encontrar el volumen adecuado.
    * Prueba de micrófono. Cuando ajustes el volumen, utiliza esta prueba para ver cómo oirían tu voz los demás. 
Haz clic en el botón de grabación para empezar a grabar tu voz y luego el botón "Play" para escucharla. 
Ve probando hasta que encuentres el volumen adecuado.
    * Altavoces. Aquí puedes seleccionar el dispositivo de salida desde el que oirás el sonido del juego. 
Si utilizas un conjunto de auriculares y micrófono, por ejemplo, puedes elegir oír el juego con tus altavoces 
o con tus auriculares.
    * Regular sonidos del juego. Esto te permite ajustar el volumen del sonido y música del juego cuando 
otras personas hablan con el chat de voz. Resulta especialmente útil durante las luchas de jefe llenas de 
acción, en donde los sonidos del combate pueden tapar las voces de tus aliados.

La configuración "Modo de chat de voz" te permite controlar cómo quieres empezar a usar el canal de 
chat de voz. Existen dos opciones: "Pulsar-para-hablar" y "Activación por voz":

    * Pulsar-para-hablar.Tendrás que pulsar una tecla si quieres hablar, como si fuera un walkie-talkie. 
Puedes asignar cualquier tecla a esta función. Si quieres que se active un sonido cada vez que presionas 
o sueltas "Pulsar-para-hablar", selecciona la casilla "Sonido de Pulsar-para-hablar". Con esta opción 
podrás controlar completamente cuándo te oyen los otros jugadores, pero debes activarla manualmente.
    * Activación por voz. En el momento que tu micrófono detecte un sonido superior a cierto nivel, el chat 
de voz se activará. Esto es útil si quieres chatear con total libertad, pero puede activarse por cualquier 
sonido, no solo con tu voz. Si estás jugando en un ambiente ruidoso, es preferible que utilices la opción