<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://www.gvkik.hu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=V%C3%A9rtes+Bal%C3%A1zs%2A</id>
	<title>Gödöllő - Felhasználó közreműködései [hu]</title>
	<link rel="self" type="application/atom+xml" href="https://www.gvkik.hu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=V%C3%A9rtes+Bal%C3%A1zs%2A"/>
	<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php/Speci%C3%A1lis:Szerkeszt%C5%91_k%C3%B6zrem%C5%B1k%C3%B6d%C3%A9sei/V%C3%A9rtes_Bal%C3%A1zs*"/>
	<updated>2026-04-07T08:26:48Z</updated>
	<subtitle>Felhasználó közreműködései</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=Szinvai_P%C3%A1l&amp;diff=4538</id>
		<title>Szinvai Pál</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=Szinvai_P%C3%A1l&amp;diff=4538"/>
		<updated>2017-03-29T10:03:12Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fájl:szinvai23.jpg|thumb|right|300px|Szinvai Pál]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Szinvai Pál&#039;&#039;&#039; (Budapest, 1961. március 10.–) szobrász. Tanulmányait a Magyar Iparművészeti Főiskolán végezte, tagja a [[Gödöllői Művészbarátok]] csoportjának.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tanulmányok ==&lt;br /&gt;
&lt;br /&gt;
*1982-87 - Magyar Iparművészeti Főiskola - mesterei: Csekovszky Árpád, Schrammel Imre&lt;br /&gt;
*1987-91 - Akademie der Bildende Künste, München - mestere: Hubertus von Pilgrim&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Díjak ==&lt;br /&gt;
&lt;br /&gt;
*1990 - Donnerstiftung Doppelkopf pályázat II. díja&lt;br /&gt;
*1994 - Kecskeméti Nemzetközi Kerámia Stúdió ösztöndíja&lt;br /&gt;
*1996 - &amp;quot;A Sótartó - Hommage a Cellini&amp;quot; Nemzetközi Kerámia Szimpózium, De Forma-ösztöndíj&lt;br /&gt;
*1998 - Junior Szimpózium, Kecskeméti Nemzetközi Kerámia Stúdió, a Magyar Képzőművészek és Iparművészek Szövetsége ösztöndíja&lt;br /&gt;
&lt;br /&gt;
Munkái a samottos agyagból felépített figurális plasztikák, porcelánfigurák (öntés technikával).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mesterei ==&lt;br /&gt;
[[Fájl:szinvai2.jpg|thumb|right|300px|Szinvai Pál: Én és ők]]&lt;br /&gt;
*Csekovszky Árpád&lt;br /&gt;
*Schrammel Imre&lt;br /&gt;
*Hubertus von Pilgrim.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kiállítások ==&lt;br /&gt;
&lt;br /&gt;
=== Egyéni kiállítások ===&lt;br /&gt;
&lt;br /&gt;
*1991 - Atelier Ausstellung, Graz (Svenda Istvánnal)&lt;br /&gt;
*1994 - ETH Galéria, Budapest&lt;br /&gt;
*1994 - Ericsson Székház&lt;br /&gt;
*1996 - Megyei és Városi Könyvtár, Kaposvár (Krizsán Györggyel)&lt;br /&gt;
*1996 - Gyergyai Galéria, Kaposvár (Krizsán Györggyel)&lt;br /&gt;
*1996 - Mátyás Király Gimnázium, Fonyód (Krizsán Györggyel)&lt;br /&gt;
*1997 - Por és hamu, Nevelők Háza Egyesület Galéria, Pécs (Krizsán Györggyel)&lt;br /&gt;
*2009 - Egyképes kiállítás, Gödöllő &lt;br /&gt;
[[Fájl:szinvai3.jpg|thumb|right|300px|Szinvai Pál: Ő és ők]]&lt;br /&gt;
=== Csoportos kiállítások (Válogatás) ===&lt;br /&gt;
&lt;br /&gt;
*1990 - International Cartoon Fesztivál, Budapest&lt;br /&gt;
*1990 - Országos Groteszk pályázat kiállítása, Kaposvár&lt;br /&gt;
*1990-94 - XI-XIV. Országos Kerámia Biennálé, Pécs&lt;br /&gt;
*1991 - Atelier Ausstellung (Svenda Istvánnal), Graz&lt;br /&gt;
*1991 - &amp;quot;Konfrontation - Dresden-München-Stuttgart&amp;quot;, G. in der HFBK, Drezda&lt;br /&gt;
*1991 - Református Magyarok Világtalálkozója Képzőművészeti Kiállítása, Református Kollégium, Debrecen&lt;br /&gt;
*1993 - Országos Groteszk pályázat kiállítása, Kaposvár&lt;br /&gt;
*1995 - I. Siófoki Nemzetközi Művésztelep Kiállítása, Hotel Ezüstpart, Siófok • &amp;quot;Múzeumalapítás&amp;quot;, Iparművészeti Múzeum, Budapest&lt;br /&gt;
*1996 - &amp;quot;A Sótartó - Hommage à Cellini&amp;quot;, Pécsi Galéria, Pécs&lt;br /&gt;
*1996 - Megyei és Városi Könyvtár (Krizsán Györggyel), Kaposvár&lt;br /&gt;
*1996 - Gyergyai G. (Krizsán Györggyel), Kaposvár&lt;br /&gt;
*1996 - Por és hamu (Krizsán Györggyel), Nevelők Háza Egyesület Galéria, Pécs&lt;br /&gt;
*1996 - XI-XIV. Országos Kerámia Biennálé, Pécs&lt;br /&gt;
*1998 - Künstliche Beatmung, Puschninvilla, Drezda&lt;br /&gt;
*1998 - Junior kiállítás, Árpád Galéria, Budapest&lt;br /&gt;
*1998 - IX. Őszi Kerámia Tárlat, Palme Ház, Budapest&lt;br /&gt;
*2012 - Szentiványi Székely Enikő (textil), Rehák Júlia (porcelán), Szinvai Pál (plasztika), Székely Bertalan Műteremház, Szada &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Köztéri művei==&lt;br /&gt;
[[Fájl:szinvai4.|thumb|right|300px|Szinvai Pál: VIII. Stáció]]&lt;br /&gt;
*1988 - 12 kerámia dombormű-portré ([[Rehák Júliával]]), Magyarok Nagyasszonya Kápolna, Cegléd (samottos agyag)&lt;br /&gt;
*1992 - kerámia vázák, Budapest, Hotel Tusculanum&lt;br /&gt;
*1994 - samottos agyagfigurák, Kecskeméti Nemzetközi Kerámia Stúdió&lt;br /&gt;
*1994 - Káin és Ábel, Ericsson G., ETH (samottos agyag)&lt;br /&gt;
*1995 - Bárka I-II-III., Siófok, Hotel Ezüstpart&lt;br /&gt;
*2008 - 14 kerámia dombormű, Premontrei Rend Kápolna, Gödöllő&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Művek közgyűjteményekben ==&lt;br /&gt;
&lt;br /&gt;
*DeForma Alapítvány Gyűjteménye, Pécs&lt;br /&gt;
*Nemzetközi Kerámia Stúdió Gyűjteménye, Kecskemét&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Irodalom ==&lt;br /&gt;
&lt;br /&gt;
*VON PILGRIM, H.: Donnerstiftung (kat., 1990)&lt;br /&gt;
*LANUSCHNY, A.: Entwicklungslabor der Künste - Spiel - &amp;quot;Platz für die junge kunst&amp;quot;, München Journal 1991/IX.&lt;br /&gt;
*SÁRKÁNY J.: &amp;quot;A Sótartó - Hommage a Cellini&amp;quot;, Magyar Iparművészet, 1996/4.&lt;br /&gt;
*WEISS, G.: Körpersprache, Neue Keramik, 1994/3. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forrás ==&lt;br /&gt;
&lt;br /&gt;
*[http://www.levendulagaleria.hu/muveszek/szobraszok/szinvaipal/szinvaipal.html Levendula Galéria honlapja]&lt;br /&gt;
*[http://artportal.hu/lexikon/muveszek/szinvai_pal/ Artportal]&lt;br /&gt;
*[http://www.tankonyvtar.hu/hu/tartalom/tkt/kortars-magyar-muveszeti/ch33s09.html Kortárs Magyar Művészeti Lexikon]&lt;br /&gt;
*[http://www.gkrte.hu/public/magazin.php?id=3162&amp;amp;kat_id=0 Gödöllő Környéki Regionális Turisztikai Egyesület honlapja]&lt;br /&gt;
*[http://szolgalat.com/gszolga080501.pdf Gödöllői Szolgálat 2008. május 1. XVII. évf. 17. szám]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategória:Személyek]]&lt;br /&gt;
[[Kategória:Képzőművészek]]&lt;br /&gt;
[[Kategória:Gödöllői Művészbarátok]]&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Gadget-sablonmester.js&amp;diff=1754</id>
		<title>MediaWiki:Gadget-sablonmester.js</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Gadget-sablonmester.js&amp;diff=1754"/>
		<updated>2012-07-21T09:48:34Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;//## File: tm_locals_de.js ####################################&lt;br /&gt;
 &lt;br /&gt;
/*&lt;br /&gt;
* Lokalisierung &amp;quot;Deutsch&amp;quot; des Vorlagen-Meister&lt;br /&gt;
* Copyright (C) 2007-2009 [[:de:Benutzer:Revvar]] &amp;lt;revvar@gmx.de&amp;gt;&lt;br /&gt;
* Released under the GPL license version 2&lt;br /&gt;
* http://www.gnu.org/copyleft/gpl.html&lt;br /&gt;
*&lt;br /&gt;
* This program is free software; you can redistribute it and/or modify&lt;br /&gt;
* it under the terms of the GNU General Public License version 2 as&lt;br /&gt;
* published by the Free Software Foundation.&lt;br /&gt;
*&lt;br /&gt;
* This program is distributed in the hope that it will be useful,&lt;br /&gt;
* but WITHOUT ANY WARRANTY; without even the implied warranty&lt;br /&gt;
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE.&lt;br /&gt;
* See the GNU General Public License for more details.&lt;br /&gt;
*/&lt;br /&gt;
 &lt;br /&gt;
function tm_get_locals()&lt;br /&gt;
{&lt;br /&gt;
	var locals = new Object();&lt;br /&gt;
        locals[&amp;quot;ButtonText&amp;quot;] = &amp;quot;SM&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;User&amp;quot;] = &amp;quot;User&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;Template&amp;quot;] = &amp;quot;Sablon&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;Submit&amp;quot;] = &amp;quot;Elküld&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;Cancel&amp;quot;] = &amp;quot;Mégse&amp;quot;;&lt;br /&gt;
	locals[&amp;quot;CreateXML&amp;quot;] = &amp;quot;XML-Leírás generálása...&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;Progress&amp;quot;] = &amp;quot;Betöltés folyamatban&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_load_error&amp;quot;] = &amp;quot;A(z) \&amp;quot;$1\&amp;quot; sablont nem lehet betölteni.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_no_usage_section&amp;quot;] = &amp;quot;A(z) \&amp;quot;$1\&amp;quot; sablonhoz nem található XML-leírás.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_no_such_template&amp;quot;] = &amp;quot;Nem található \&amp;quot;$1\&amp;quot; nevű sablon.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_no_help&amp;quot;] = &amp;quot;(Nincs rendelkezésre álló segítség.)&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_invalid_condition&amp;quot;] = &amp;quot;Az XML-leírás egy érvénytelen feltétel-paramétert tartalmaz: \&amp;quot;$1\&amp;quot;.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_invalid_value&amp;quot;] = &amp;quot;Nem megfelelő érték&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_enter_value&amp;quot;] = &amp;quot;Adj meg egy értéket!&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_enter_valid_value&amp;quot;] = &amp;quot;Adj meg egy megfelelő értéket!&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_please_correct_errors&amp;quot;] = &amp;quot;Hiba történt. Javítsd ki a pirossal jelzett mezőket.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_question_repeat_http_request&amp;quot;] = &amp;quot;Szeretnéd a kérést megismételni=[OK] vagy [félbeszakítani] ?&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_question_wait_for_http_response&amp;quot;] = &amp;quot;A szerver már több, mint $1 másodperce foglalt. Szeretnél még várni=[Ok]?&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_unknown_parameter&amp;quot;] = &amp;quot;A sablonszöveg a következő ismeretlen paramétert tartalmazza: \&amp;quot;$1\&amp;quot;. Okok: elütés, pl. kis- és nagybetűk nem lettek figyelembe véve, vagy a sablon leírása hiányos.&amp;quot;;&lt;br /&gt;
	locals[&amp;quot;sys_xml_generated_summary&amp;quot;] = &amp;quot;Automatikusan létrehozva a [[Wikipédia:Sablonmester|Sablonmester]] segítségével&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;w2t plugin selection&amp;quot;] = &amp;quot;Válassz egy sablont, amellyel a kijelölt szöveget szeretnéd kitölteni:&amp;quot;;&lt;br /&gt;
	return locals;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
//## File: tm_formular.xsl.js #################################&lt;br /&gt;
 &lt;br /&gt;
function get_xsl_dom() {&lt;br /&gt;
return parseXML(&lt;br /&gt;
&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;\n&#039;+&lt;br /&gt;
&#039;&amp;lt;!--\n&#039;+&lt;br /&gt;
&#039;* Copyright (C) 2007-2009 [[:de:Benutzer:Revvar]] &amp;lt;revvar@gmx.de&amp;gt;\n&#039;+&lt;br /&gt;
&#039;* Released under the GPL license\n&#039;+&lt;br /&gt;
&#039;* http://www.gnu.org/copyleft/gpl.html\n&#039;+&lt;br /&gt;
&#039;--&amp;gt;\n&#039;+&lt;br /&gt;
&#039;&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; &amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:output method = &amp;quot;html&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_submit&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_cancel&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_createxml&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_template&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_nohelp&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_version&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:template match=&amp;quot;/TemplateUsage&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;!-- create basic gui --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id=&amp;quot;tm_main_frame&amp;quot; class=&amp;quot;tm_main_frame&amp;quot; tm_output=&amp;quot;{@output}&amp;quot; tm_max_value_indentation=&amp;quot;{@max_value_indentation}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id=&amp;quot;tm_header&amp;quot; class=&amp;quot;tm_header&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;span class=&amp;quot;tm_template&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_template&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_template&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_template&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;: &amp;lt;/span&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;tm_template&amp;quot; class=&amp;quot;tm_template&amp;quot; size=&amp;quot;32&amp;quot; disabled=&amp;quot;true&amp;quot;/&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;span class=&amp;quot;tm_version&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_version&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_version&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_version&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/span&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id=&amp;quot;tm_group_selector&amp;quot; class=&amp;quot;tm_group_selector&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:apply-templates mode=&amp;quot;group_selector&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id= &amp;quot;tm_form&amp;quot; class=&amp;quot;tm_form&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;!-- create formular --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;form&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:for-each select=&amp;quot;Group&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;div id=&amp;quot;tm_group_{position()}&amp;quot; class=&amp;quot;tm_group&amp;quot; tabindex=&amp;quot;{4000+position()}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;xsl:when test=&amp;quot;@showempty=\&#039;false\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;xsl:attribute name=&amp;quot;tm_showempty&amp;quot;&amp;gt;false&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;xsl:attribute name=&amp;quot;tm_showempty&amp;quot;&amp;gt;true&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:if test=&amp;quot;@name&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;h3 class=&amp;quot;tm_group_heading&amp;quot;  tm_name=&amp;quot;tm_formelem&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/h3&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:for-each select=&amp;quot;Parameter&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;div class=&amp;quot;tm_formelem&amp;quot;&amp;gt;&amp;lt;table class=&amp;quot;tm_table&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;xsl:if test=&amp;quot;@length=\&#039;max\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_table tm_table_max&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;count(Value)=1&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;input type=&amp;quot;checkbox&amp;quot; tm_name=&amp;quot;tm_formelem&amp;quot; value=&amp;quot;{Value}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:call-template name=&amp;quot;SetBasicAttributes&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/input&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;span&amp;gt;&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:when test=&amp;quot;@label&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:value-of select=&amp;quot;@label&amp;quot;/&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/xsl:choose&amp;gt;&amp;lt;/span&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;tr class=&amp;quot;tm_tr&amp;quot;&amp;gt;&amp;lt;td class=&amp;quot;tm_td_label&amp;quot;&amp;gt;&amp;lt;span&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:when test=&amp;quot;@null=\&#039;false\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_param&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_opt_param&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:when test=&amp;quot;@label&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:value-of select=&amp;quot;@label&amp;quot;/&amp;gt;:\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;:\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;tm_td_content&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;Value&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;select tm_name=&amp;quot;tm_formelem&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:call-template name=&amp;quot;SetBasicAttributes&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:if test=&amp;quot;not (@null=\&#039;false\&#039;)&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;option /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:for-each select=&amp;quot;Value&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;option value=&amp;quot;{text()}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;tm_form_&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;_&amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@label&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:value-of select=&amp;quot;@label&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;												&amp;lt;xsl:value-of select=&amp;quot;text()&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:if test=&amp;quot;position()=0&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;												&amp;lt;xsl:attribute name=&amp;quot;selected&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;/option&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:for-each&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/select&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:when test=&amp;quot;@height&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;textarea tm_name=&amp;quot;tm_formelem&amp;quot; rows=&amp;quot;{@height}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:call-template name=&amp;quot;SetBasicAttributes&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@length=\&#039;max\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_textarea tm_textarea_max&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_textarea tm_textarea_auto&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;cols&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@length&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;												&amp;lt;xsl:value-of select=&amp;quot;@length&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:otherwise&amp;gt;20&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:value-of select=&amp;quot;Default&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/textarea&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;input type=&amp;quot;text&amp;quot; tm_name=&amp;quot;tm_formelem&amp;quot; value=&amp;quot;{Default}&amp;quot; class=&amp;quot;tm_input&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:call-template name=&amp;quot;SetBasicAttributes&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@length=\&#039;max\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_input tm_input_max&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;size&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@length&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;												&amp;lt;xsl:value-of select=&amp;quot;@length&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:otherwise&amp;gt;20&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/input&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/table&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;/xsl:for-each&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:for-each&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/form&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;!-- end formular creation --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt; &amp;lt;!-- formular --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id=&amp;quot;tm_footer&amp;quot; class=&amp;quot;tm_footer&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				 &amp;lt;div id=&amp;quot;tm_state&amp;quot; class=&amp;quot;tm_state&amp;quot;&amp;gt;:-)&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				 &amp;lt;button id=&amp;quot;tm_submit&amp;quot; class=&amp;quot;tm_button&amp;quot; tabindex=&amp;quot;5000&amp;quot; disabled=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_submit&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_submit&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_submit&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/button&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				 &amp;lt;button id=&amp;quot;tm_cancel&amp;quot; class=&amp;quot;tm_button&amp;quot; tabindex=&amp;quot;5001&amp;quot; disabled=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_cancel&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_cancel&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_cancel&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/button&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				 &amp;lt;button id=&amp;quot;tm_createxml&amp;quot; class=&amp;quot;tm_button&amp;quot; tabindex=&amp;quot;5002&amp;quot; disabled=&amp;quot;true&amp;quot; style=&amp;quot;visibility:hidden&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_createxml&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_createxml&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_createxml&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/button&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt; &amp;lt;!-- main frame --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;/xsl:template&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:template match=&amp;quot;Group&amp;quot; mode=&amp;quot;group_selector&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:if test=&amp;quot;@name&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;a id=&amp;quot;tm_group_select_{position() div 2}&amp;quot; class=&amp;quot;tm_button tm_selector tm_group_selector&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;/xsl:template&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:template name=&amp;quot;SetBasicAttributes&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;tm_form_&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;title&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:when test=&amp;quot;Help&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:value-of select=&amp;quot;Help&amp;quot;/&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:otherwise&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_nohelp&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_nohelp&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_nohelp&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:choose&amp;gt;	&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;tm_condition&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Condition&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;tabindex&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;20+count(preceding::*)&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:when test=&amp;quot;@null=\&#039;false\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:attribute name=&amp;quot;tm_null&amp;quot;&amp;gt;false&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:attribute name=&amp;quot;tm_null&amp;quot;&amp;gt;true&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:when test=&amp;quot;@predefined=\&#039;true\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:attribute name=&amp;quot;tm_predefined&amp;quot;&amp;gt;true&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:attribute name=&amp;quot;tm_predefined&amp;quot;&amp;gt;false&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;tm_error&amp;quot;&amp;gt;false&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;/xsl:template&amp;gt;\n&#039;+&lt;br /&gt;
&#039;&amp;lt;/xsl:stylesheet&amp;gt;&#039;&lt;br /&gt;
);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
//## File: vorlagenmeister.js #################################&lt;br /&gt;
 &lt;br /&gt;
/*&lt;br /&gt;
* Vorlagen-Meister, Version: 0.4.3beta, Date: 2009-10-17&lt;br /&gt;
* Copyright (C) 2007-2009 [[de:Benutzer:Revvar]] &amp;lt;revvar@gmx.de&amp;gt;&lt;br /&gt;
* Released under the GPL license version 2&lt;br /&gt;
* http://www.gnu.org/copyleft/gpl.html&lt;br /&gt;
*&lt;br /&gt;
* This program is free software; you can redistribute it and/or modify&lt;br /&gt;
* it under the terms of the GNU General Public License version 2 as&lt;br /&gt;
* published by the Free Software Foundation.&lt;br /&gt;
*&lt;br /&gt;
* This program is distributed in the hope that it will be useful,&lt;br /&gt;
* but WITHOUT ANY WARRANTY; without even the implied warranty&lt;br /&gt;
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE.&lt;br /&gt;
* See the GNU General Public License for more details.&lt;br /&gt;
*/&lt;br /&gt;
 &lt;br /&gt;
/* Plugin objects */&lt;br /&gt;
var TM_PluginList = new Array(); //&amp;lt; list with the plugins&lt;br /&gt;
 &lt;br /&gt;
/**&lt;br /&gt;
 Abstract PlugIn objects, to announce a plugin to the TemplateMaster&lt;br /&gt;
*/&lt;br /&gt;
function TM_Plugin()&lt;br /&gt;
{&lt;br /&gt;
	this.opGetName = null; //&amp;lt; returns plugin name for the user as String&lt;br /&gt;
	this.opGetType = null; //&amp;lt; returns plugin type as String&lt;br /&gt;
	this.opGetTemplate = null;  //&amp;lt; returns the template name the PlugIn is written for as String&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/**&lt;br /&gt;
 Abstract object for a Wiki2Template plugin.&lt;br /&gt;
*/&lt;br /&gt;
function TM_P_Wiki2Template()&lt;br /&gt;
{&lt;br /&gt;
	var self=this;&lt;br /&gt;
	TM_Plugin.call(this);&lt;br /&gt;
 &lt;br /&gt;
	var type = &amp;quot;Wiki2Template&amp;quot;;&lt;br /&gt;
	this.opGetType = function() {return type;};&lt;br /&gt;
 &lt;br /&gt;
	this.opTransform = function(wiki_text) {&lt;br /&gt;
		if (!((wiki_text) &amp;amp;&amp;amp; (typeof(wiki_text) == &amp;quot;string&amp;quot;) &amp;amp;&amp;amp; (wiki_text.length&amp;gt;0))) throw(&amp;quot;(TMP_Wiki2Template:contructor) Error: Invalid arguments.&amp;quot;);&lt;br /&gt;
		return wiki_text;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
TM_P_Wiki2Template.prototype=new TM_Plugin();&lt;br /&gt;
 &lt;br /&gt;
/*END: Plugin objects */&lt;br /&gt;
 &lt;br /&gt;
function tm_init() {&lt;br /&gt;
	// bug: Doesn&#039;t works with Webkit&lt;br /&gt;
	if (is_safari || is_khtml) return;&lt;br /&gt;
	/* check if edit page, otherwise exit*/&lt;br /&gt;
	var url=document.location.toString();&lt;br /&gt;
	var Textbox = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
	if (url.search(/action=(edit|submit)/g) &amp;lt; 0) return;&lt;br /&gt;
	if (Textbox == null) return;&lt;br /&gt;
	if (document.getElementById(&amp;quot;wpSave&amp;quot;) == null) return;&lt;br /&gt;
 &lt;br /&gt;
	// check if editing xml page from this tool&lt;br /&gt;
	if (url.search(/\/XML&amp;amp;tm_xml_content=/g) &amp;gt; 0) {&lt;br /&gt;
		var tm_xml_content = decodeURIComponent(url.replace(/^.*\&amp;amp;tm_xml_content=(.*)$/g, &amp;quot;$1&amp;quot;));&lt;br /&gt;
		Textbox.value = tm_xml_content;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	  // oHTTPRequest  globals&lt;br /&gt;
	var HTTPTIMEOUT=30000;&lt;br /&gt;
	var iRequestID=0;&lt;br /&gt;
	var bBreak=false;&lt;br /&gt;
 &lt;br /&gt;
	if ( typeof $.wikiEditor == &amp;quot;undefined&amp;quot; ) {&lt;br /&gt;
		var toolbar = document.getElementById(&amp;quot;toolbar&amp;quot;);&lt;br /&gt;
		if (toolbar == null) {&lt;br /&gt;
			var toolbar = cNode(null,&amp;quot;div&amp;quot;,null, null);&lt;br /&gt;
			Textbox.parentNode.insertBefore(toolbar, Textbox);&lt;br /&gt;
		}&lt;br /&gt;
	}else{&lt;br /&gt;
		var toolbarParent = document.getElementById(&amp;quot;wikiEditor-ui-toolbar&amp;quot;);&lt;br /&gt;
		var toolbar = cNode(null, &amp;quot;div&amp;quot;, null, {&amp;quot;id&amp;quot;:&amp;quot;tm_tab&amp;quot;,&amp;quot;class&amp;quot;:&amp;quot;group&amp;quot;});&lt;br /&gt;
		toolbarParent.firstChild.appendChild(toolbar);&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	var locals = null;&lt;br /&gt;
	try {&lt;br /&gt;
		locals = tm_get_locals();&lt;br /&gt;
	} catch(e) {&lt;br /&gt;
		log_message(e.message);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	// globals&lt;br /&gt;
	var VERSION=&amp;quot;0.4.2 beta&amp;quot;;&lt;br /&gt;
	var State = null;&lt;br /&gt;
	var Template = new Object();&lt;br /&gt;
	var Tm_box = null;&lt;br /&gt;
	var act_view = &amp;quot;EB&amp;quot;;&lt;br /&gt;
	var is_khtml = navigator.vendor == &#039;KDE&#039; || ( document.childNodes &amp;amp;&amp;amp; !document.all &amp;amp;&amp;amp; !navigator.taintEnabled );&lt;br /&gt;
	var is_ie = !(is_gecko || is_opera || is_safari || is_khtml);&lt;br /&gt;
	var Act_input = null;&lt;br /&gt;
	var is_xml_generated = false;&lt;br /&gt;
	var generated_xml = &#039;&#039;;&lt;br /&gt;
	var max_value_indentation = 32;&lt;br /&gt;
 &lt;br /&gt;
	var vm_button = cNode(null, &amp;quot;div&amp;quot;, locals[&amp;quot;ButtonText&amp;quot;], {&amp;quot;id&amp;quot;:&amp;quot;tm_switch_button&amp;quot;,&amp;quot;class&amp;quot;:&amp;quot;tm_switch_button&amp;quot;});&lt;br /&gt;
	addEventListener(vm_button, &amp;quot;click&amp;quot;, show);&lt;br /&gt;
	if (toolbar.firstChild == null) toolbar.appendChild(vm_button); else toolbar.insertBefore(vm_button, toolbar.firstChild);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
	if ( typeof(tm_autostart) === &amp;quot;object&amp;quot; &amp;amp;&amp;amp; wgPageName.indexOf(&amp;quot;/doc&amp;quot;) == -1 &amp;amp;&amp;amp; wgPageName.indexOf(&amp;quot;/XML&amp;quot;) == -1 ) {&lt;br /&gt;
		for (	var i=0;&lt;br /&gt;
				i&amp;lt;tm_autostart.length&lt;br /&gt;
				&amp;amp;&amp;amp; (wgPageName.search(new RegExp(tm_autostart[i].url, &amp;quot;i&amp;quot;)) == -1&lt;br /&gt;
				|| Textbox.value.search(new RegExp(tm_autostart[i].text, &amp;quot;i&amp;quot;)) == -1)&lt;br /&gt;
			; ++i){}&lt;br /&gt;
		if (i &amp;gt; tm_autostart.length) {&lt;br /&gt;
			var templateStartPos = Textbox.value.search(&amp;quot;\{\{&amp;quot;+tm_autostart[i].tl+&amp;quot;&amp;quot;, &amp;quot;i&amp;quot;)+2;&lt;br /&gt;
			if(Textbox.setSelectionRange){&lt;br /&gt;
				Textbox.focus();&lt;br /&gt;
				Textbox.setSelectionRange(templateStartPos,templateStartPos);&lt;br /&gt;
			}else if (Textbox.createTextRange) {&lt;br /&gt;
				var range = Textbox.createTextRange();&lt;br /&gt;
				range.collapse(true);&lt;br /&gt;
				range.moveEnd(&#039;character&#039;, templateStartPos);&lt;br /&gt;
				range.moveStart(&#039;character&#039;, templateStartPos);&lt;br /&gt;
				range.select();&lt;br /&gt;
			}&lt;br /&gt;
 &lt;br /&gt;
			show();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	return;&lt;br /&gt;
 &lt;br /&gt;
/* shows the template master */&lt;br /&gt;
function show()&lt;br /&gt;
{&lt;br /&gt;
	/* set some globals to there defaults */&lt;br /&gt;
	bBreak = false;&lt;br /&gt;
	State = null;&lt;br /&gt;
	if (document.getElementById(&amp;quot;tm_dummy_div&amp;quot;) != null) {&lt;br /&gt;
		switch_view_to();&lt;br /&gt;
		switchOnWikEd();&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* check if cursor within template wikisource and parse it */&lt;br /&gt;
	var template_source = null;&lt;br /&gt;
	var Template_given = null;&lt;br /&gt;
	var Target = new Object();&lt;br /&gt;
	var Editbox = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
	Target[&amp;quot;Editbox&amp;quot;] = Editbox;&lt;br /&gt;
 &lt;br /&gt;
	switchOffWikEd();&lt;br /&gt;
 &lt;br /&gt;
	/* get cursor/mark position (browser indendend, depends on wikibits.js) */&lt;br /&gt;
	if (is_ie) {&lt;br /&gt;
		var marker_start = &amp;quot;####template_master_cursor_marker_start####&amp;quot;;&lt;br /&gt;
		var marker_end = &amp;quot;####template_master_cursor_marker_end####&amp;quot;;&lt;br /&gt;
		insertTags(marker_start, marker_end, &amp;quot;&amp;quot;);&lt;br /&gt;
		Target[&amp;quot;start&amp;quot;]  = Editbox.value.search(marker_start);&lt;br /&gt;
		Editbox.value = Editbox.value.replace(marker_start,&amp;quot;&amp;quot;);&lt;br /&gt;
		Target[&amp;quot;end&amp;quot;]  = Editbox.value.search(marker_end) - 1;&lt;br /&gt;
		Editbox.value = Editbox.value.replace(marker_end,&amp;quot;&amp;quot;);&lt;br /&gt;
	} else {&lt;br /&gt;
		Target[&amp;quot;cursor&amp;quot;] = Editbox.selectionStart;&lt;br /&gt;
		Target[&amp;quot;start&amp;quot;]  = Editbox.selectionStart;&lt;br /&gt;
		Target[&amp;quot;end&amp;quot;] = Editbox.selectionEnd - 1;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* search if cursor within a template */&lt;br /&gt;
 &lt;br /&gt;
	/* (1) replace syntax chars within nowiki-tags and html-comments */&lt;br /&gt;
	var x_nowiki = /(&amp;lt;nowiki&amp;gt;.*?)[{|}](.*?&amp;lt;\/nowiki&amp;gt;)/g;&lt;br /&gt;
	var source = replace_all(Editbox.value, x_nowiki, &amp;quot;$1#$2&amp;quot;);&lt;br /&gt;
	var x_htmlcomment = /(&amp;lt;!--.*?)[{|}](.*?--&amp;gt;)/g;&lt;br /&gt;
	var source = replace_all(Editbox.value, x_htmlcomment, &amp;quot;$1#$2&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
	/* (2) create a list of all remaining template tags */&lt;br /&gt;
	var tag_list = new Array();&lt;br /&gt;
	var depth = 0;&lt;br /&gt;
	var x_tag = /(\{\{|\}\})/;&lt;br /&gt;
	var tag_pos = -2, new_pos = 0;&lt;br /&gt;
	do {&lt;br /&gt;
		new_pos = (source.substring(tag_pos + 2)).search(x_tag);&lt;br /&gt;
		if (new_pos &amp;gt;= 0) {&lt;br /&gt;
			tag_pos += new_pos + 2;&lt;br /&gt;
			switch (source.substring(tag_pos, tag_pos + 2)) {&lt;br /&gt;
				case &amp;quot;{{&amp;quot;: {&lt;br /&gt;
					tag_list.push({&amp;quot;type&amp;quot;:0, &amp;quot;depth&amp;quot;:depth, &amp;quot;position&amp;quot;:tag_pos});&lt;br /&gt;
					depth++;&lt;br /&gt;
				}; break;&lt;br /&gt;
				case &amp;quot;}}&amp;quot;: {&lt;br /&gt;
					depth--;&lt;br /&gt;
					tag_list.push({&amp;quot;type&amp;quot;:1, &amp;quot;depth&amp;quot;:depth, &amp;quot;position&amp;quot;:tag_pos});&lt;br /&gt;
				};break;&lt;br /&gt;
				default: alert(&amp;quot;Internal error: Searching template tags failed (&amp;quot;+source.substring(tag_pos, tag_pos + 2)+&amp;quot;).&amp;quot;);return;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	} while (new_pos &amp;gt;= 0);&lt;br /&gt;
 &lt;br /&gt;
	/* (3) find nearest tag pair (same depth) around the cursor position */&lt;br /&gt;
	var  start = -1, end = -1, act_depth = 0;&lt;br /&gt;
	var cursor_pos = Target[&amp;quot;start&amp;quot;] ;&lt;br /&gt;
	var cursor_depth = 0;&lt;br /&gt;
	/* (a) find the depth at cursor pos */&lt;br /&gt;
	for (var i = 0; i &amp;lt; tag_list.length; i++) {&lt;br /&gt;
		if (cursor_pos &amp;lt; tag_list[i].position) {&lt;br /&gt;
			cursor_depth = tag_list[i].depth;&lt;br /&gt;
		} else break;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* (b) search */&lt;br /&gt;
	for (var i = 0; i &amp;lt; tag_list.length; i++) {&lt;br /&gt;
		if (cursor_pos &amp;gt;= tag_list[i].position) {&lt;br /&gt;
			if ((0 == tag_list[i].type) &amp;amp;&amp;amp; (cursor_depth &amp;gt;= tag_list[i].depth)) {&lt;br /&gt;
				start = tag_list[i].position;&lt;br /&gt;
				act_depth = tag_list[i].depth;&lt;br /&gt;
			}&lt;br /&gt;
			if ((start &amp;gt; -1 ) &amp;amp;&amp;amp; (1 == tag_list[i].type) &amp;amp;&amp;amp; (act_depth == tag_list[i].depth)) start = -1;&lt;br /&gt;
		} else break;&lt;br /&gt;
	}&lt;br /&gt;
	if (start &amp;gt; -1) for (var i = tag_list.length - 1; i &amp;gt; 0 ; i--) {&lt;br /&gt;
		if (cursor_pos &amp;lt; tag_list[i].position) {&lt;br /&gt;
			if (cursor_depth &amp;gt;= tag_list[i].depth) {&lt;br /&gt;
				if ((1 == tag_list[i].type) &amp;amp;&amp;amp; (act_depth == tag_list[i].depth)) {&lt;br /&gt;
					end = tag_list[i].position;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		} else break;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* (4) get template source code without the surounding brackets */&lt;br /&gt;
	if ((start&amp;gt;=0) &amp;amp;&amp;amp; (end&amp;gt;=0)) {&lt;br /&gt;
		template_source = Editbox.value.substring(start + 2, end);&lt;br /&gt;
	} else template_source = null;&lt;br /&gt;
 &lt;br /&gt;
	/* parse source */&lt;br /&gt;
	if (template_source != null) {&lt;br /&gt;
		Template_given = parse_template_source(template_source);&lt;br /&gt;
		if (Template_given != null) {&lt;br /&gt;
			// save new positions only, if template parsed successfull&lt;br /&gt;
			Target[&amp;quot;start&amp;quot;] = start;&lt;br /&gt;
			Target[&amp;quot;end&amp;quot;] = end + 1;&lt;br /&gt;
		} else template_source = null;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	switch_view_to();&lt;br /&gt;
	/* dummy main div */&lt;br /&gt;
	Tm_box = cNode(Editbox.parentNode, &amp;quot;div&amp;quot;, null, {&amp;quot;id&amp;quot;:&amp;quot;tm_dummy_div&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;position:absolute;z-index:99;left:&amp;quot;+(Editbox.offsetLeft)+&amp;quot;px;top:&amp;quot;+(Editbox.offsetTop)+&amp;quot;px;width:&amp;quot;+(Editbox.offsetWidth)+&amp;quot;px;height:&amp;quot;+(Editbox.offsetHeight)+&amp;quot;px;&amp;quot;+((is_ie)?&amp;quot;overflow-x:hidden;overflow-y:auto;&amp;quot;:&amp;quot;overflow:auto;&amp;quot;)});&lt;br /&gt;
 &lt;br /&gt;
	if ((template_source == null) &amp;amp;&amp;amp; (Target[&amp;quot;start&amp;quot;] &amp;lt;= Target[&amp;quot;end&amp;quot;])) {&lt;br /&gt;
		// ask, if the user want to use a Wikisource_To_Template-Plugin&lt;br /&gt;
		if ((TM_PluginList) &amp;amp;&amp;amp; (TM_PluginList.length)) {&lt;br /&gt;
			/* create plugin list */&lt;br /&gt;
			var plugins = new Array();&lt;br /&gt;
			for (var i = 0; i &amp;lt; TM_PluginList.length; i++) {&lt;br /&gt;
				try {&lt;br /&gt;
					var name = TM_PluginList[i].opGetName();&lt;br /&gt;
					var type = TM_PluginList[i].opGetType();&lt;br /&gt;
					if ((type !=null) &amp;amp;&amp;amp; (type ==&amp;quot;Wiki2Template&amp;quot;) &amp;amp;&amp;amp; (name != null)) plugins.push(TM_PluginList[i]);&lt;br /&gt;
				} catch(e) {&lt;br /&gt;
					log_message(&amp;quot;Incompatible Plugin: &amp;quot; + e.message);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			if (plugins.length &amp;gt; 0) {&lt;br /&gt;
				var Plugin_div = cNode(null, &amp;quot;div&amp;quot;, locals[&amp;quot;w2t plugin selection&amp;quot;], {&amp;quot;class&amp;quot;:&amp;quot;tm_plugin_selector&amp;quot;});&lt;br /&gt;
				for (var i = 0; i &amp;lt; plugins.length; i++) {&lt;br /&gt;
					var A_plugin = cNode(Plugin_div, &amp;quot;a&amp;quot;, plugins[i].opGetName(), {&amp;quot;class&amp;quot;:&amp;quot;tm_button tm_v_selector tm_plugin_selector&amp;quot;});&lt;br /&gt;
					A_plugin.tm_plugin = plugins[i];&lt;br /&gt;
					addEventListener(A_plugin, &amp;quot;click&amp;quot;, function(e) {&lt;br /&gt;
						var plugin = ((is_ie)?e.srcElement:e.target).tm_plugin;&lt;br /&gt;
						if (plugin != null) {&lt;br /&gt;
							Template_given = plugin.opTransform(Editbox.value.substring(Target[&amp;quot;start&amp;quot;], Target[&amp;quot;end&amp;quot;] + 1));&lt;br /&gt;
							if (Template_given != null) {&lt;br /&gt;
								Plugin_div.parentNode.removeChild(Plugin_div);&lt;br /&gt;
								show_template(Tm_box,&amp;quot;none&amp;quot;, Template_given, Target);&lt;br /&gt;
							}&lt;br /&gt;
						} else alert(&amp;quot;Internal error: No tm_plugin attribute found.&amp;quot;);&lt;br /&gt;
					});&lt;br /&gt;
				}&lt;br /&gt;
				var A_cancel = cNode(Plugin_div, &amp;quot;a&amp;quot;, locals[&amp;quot;Cancel&amp;quot;], {&amp;quot;class&amp;quot;:&amp;quot;tm_button tm_v_selector tm_cancel_button&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;margin-top:8px !important&amp;quot;});&lt;br /&gt;
				addEventListener(A_cancel, &amp;quot;click&amp;quot;, function(e) {&lt;br /&gt;
					Plugin_div.parentNode.removeChild(Plugin_div);&lt;br /&gt;
					show_template(Tm_box,&amp;quot;none&amp;quot;, null, Target);&lt;br /&gt;
				});&lt;br /&gt;
				Tm_box.appendChild(Plugin_div);&lt;br /&gt;
			}&lt;br /&gt;
/*			log_message(plugins.join(&amp;quot;,&amp;quot;));&lt;br /&gt;
			Template_given = TM_PluginList[0].opTransform(Editbox.value.substring(Target[&amp;quot;start&amp;quot;], Target[&amp;quot;end&amp;quot;] + 1));*/&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		/* load given template */&lt;br /&gt;
		show_template(Tm_box,&amp;quot;none&amp;quot;, Template_given, Target);&lt;br /&gt;
	}&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
// switch off wikEd frame&lt;br /&gt;
function switchOffWikEd() {&lt;br /&gt;
	if (typeof(wikEd) != &#039;undefined&#039; &amp;amp;&amp;amp; wikEd.useWikEd == true) {&lt;br /&gt;
		var marker_start = &amp;quot;####template_master_cursor_marker_start####&amp;quot;;&lt;br /&gt;
		var marker_end = &amp;quot;####template_master_cursor_marker_end####&amp;quot;;&lt;br /&gt;
		insertTags(marker_start, marker_end, &amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		wikEd.UpdateTextarea();&lt;br /&gt;
		wikEd.SetEditArea(false);&lt;br /&gt;
		wikEd.useWikEd = false;&lt;br /&gt;
		wikEd.SetPersistent(&#039;wikEdUseClassic&#039;, &#039;1&#039;, 0, &#039;/&#039;);&lt;br /&gt;
		tm_wikEd_on = true;&lt;br /&gt;
 &lt;br /&gt;
		var tb = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
		var tbSelectionStart = tb.value.indexOf(marker_start);&lt;br /&gt;
		tb.value = tb.value.replace(marker_start,&amp;quot;&amp;quot;);&lt;br /&gt;
		var tbSelectionEnd   = tb.value.indexOf(marker_end);&lt;br /&gt;
		tb.value = tb.value.replace(marker_end,&amp;quot;&amp;quot;);&lt;br /&gt;
		tb.selectionStart = tbSelectionStart;&lt;br /&gt;
		tb.selectionEnd   = tbSelectionEnd;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/* switch on wikEd frame */&lt;br /&gt;
function switchOnWikEd() {&lt;br /&gt;
	if (typeof(wikEd) != &#039;undefined&#039; &amp;amp;&amp;amp; typeof(tm_wikEd_on) != &#039;undefined&#039; &amp;amp;&amp;amp; tm_wikEd_on === true) {&lt;br /&gt;
		wikEd.UpdateFrame();&lt;br /&gt;
		wikEd.SetEditArea(true);&lt;br /&gt;
		wikEd.useWikEd = true;&lt;br /&gt;
		wikEd.SetPersistent(&#039;wikEdUseClassic&#039;, &#039;0&#039;, 0, &#039;/&#039;);&lt;br /&gt;
		wikEd.ExecuteHook(wikEd.config.frameHook);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/* shows specific template */&lt;br /&gt;
function show_template(Root_node, template_name, Template_given, Target)&lt;br /&gt;
{&lt;br /&gt;
	// check parameter&lt;br /&gt;
	if ((Template_given != null) &amp;amp;&amp;amp; (Template_given[&amp;quot;template_name&amp;quot;] != template_name)) template_name = Template_given[&amp;quot;template_name&amp;quot;];&lt;br /&gt;
 &lt;br /&gt;
	// create empty formular&lt;br /&gt;
	if ((Template_given == null) &amp;amp;&amp;amp; (template_name == &amp;quot;none&amp;quot;)) {&lt;br /&gt;
		var rv = new Object();&lt;br /&gt;
// 		rv.responseText=&#039;&amp;lt;div id=&amp;quot;template_usage&amp;quot;&amp;gt;&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;amp;gt;&amp;amp;lt;TemplateUsage&amp;amp;gt;&amp;amp;lt;Group&amp;amp;gt;&amp;amp;lt;/Group&amp;amp;gt;&amp;amp;lt;/TemplateUsage&amp;amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
		rv.responseText=&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&amp;lt;TemplateUsage&amp;gt;&amp;lt;Group&amp;gt;&amp;lt;/Group&amp;gt;&amp;lt;/TemplateUsage&amp;gt;&#039;;&lt;br /&gt;
		parseUsage(rv, &#039;&#039;);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	var Template_new = new Object();&lt;br /&gt;
	Template_new[&amp;quot;template_name&amp;quot;] = template_name;&lt;br /&gt;
 &lt;br /&gt;
	if (restoreTemplate(template_name) == true) return;&lt;br /&gt;
	else load_template();&lt;br /&gt;
	return;&lt;br /&gt;
 &lt;br /&gt;
	function load_template()&lt;br /&gt;
	{&lt;br /&gt;
		var Dummy_div = document.getElementById(&amp;quot;tm_dummy_div&amp;quot;);&lt;br /&gt;
		var Progress_div = cNode(Dummy_div, &amp;quot;div&amp;quot;, locals[&amp;quot;Template&amp;quot;]+ &amp;quot; \&amp;quot;&amp;quot; + template_name+&amp;quot;\&amp;quot; &amp;quot; +locals[&amp;quot;Progress&amp;quot;] +&amp;quot; .&amp;quot;, {&amp;quot;class&amp;quot;:&amp;quot;tm_load_progress&amp;quot;, &amp;quot;id&amp;quot;:&amp;quot;tm_load_progress&amp;quot;});&lt;br /&gt;
 &lt;br /&gt;
		var A_cancel = cNode(Progress_div, &amp;quot;a&amp;quot;, locals[&amp;quot;Cancel&amp;quot;], {&amp;quot;class&amp;quot;:&amp;quot;tm_button tm_v_selector tm_cancel_button&amp;quot;});&lt;br /&gt;
		addEventListener(A_cancel, &amp;quot;click&amp;quot;, function(e) {&lt;br /&gt;
			bBreak = true;&lt;br /&gt;
			switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
		});&lt;br /&gt;
 &lt;br /&gt;
		var full_name = ((template_name.search(new RegExp(locals[&amp;quot;User&amp;quot;]+&amp;quot;( [^:]+){0,1}:&amp;quot;),&amp;quot;&amp;quot;)&amp;gt;=0)?(&amp;quot;&amp;quot;):(locals[&amp;quot;Template&amp;quot;]+&amp;quot;:&amp;quot;))+template_name;&lt;br /&gt;
 &lt;br /&gt;
		oXmlHttpRequest({&lt;br /&gt;
			&#039;method&#039;:&#039;GET&#039;,&lt;br /&gt;
			&#039;url&#039;: wgServer + wgScriptPath + &amp;quot;/index.php?title=&amp;quot; + full_name +&amp;quot;/XML&amp;amp;action=raw&amp;quot;,&lt;br /&gt;
			&#039;headers&#039;:{&#039;User-agent&#039;: &#039;Skript:TM(wp_de_user_Revvar)&#039;},&lt;br /&gt;
			&#039;onload&#039;: function(rD) {&lt;br /&gt;
				parseUsage(rD, full_name);&lt;br /&gt;
			},&lt;br /&gt;
			&#039;onerror&#039;:function(rD) {&lt;br /&gt;
				log_message(locals[&amp;quot;sys_load_error&amp;quot;].replace(&amp;quot;$1&amp;quot;, template_name));&lt;br /&gt;
				switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
			},&lt;br /&gt;
			&#039;onreadystatechange&#039;:function() {&lt;br /&gt;
				Progress_div.firstChild.data += &amp;quot;.&amp;quot;;&lt;br /&gt;
			},&lt;br /&gt;
   			&#039;on_cancel&#039;: function() {switch_view_to(&amp;quot;EB&amp;quot;);}&lt;br /&gt;
		});&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function parseUsage(rv, full_name)&lt;br /&gt;
	{&lt;br /&gt;
		try {&lt;br /&gt;
			var usage_text = rv.responseText;&lt;br /&gt;
			var Xml_dom=null;&lt;br /&gt;
			var Xsl_dom=null;&lt;br /&gt;
			var Dummy_div = document.getElementById(&amp;quot;tm_dummy_div&amp;quot;);&lt;br /&gt;
			var Progress_div = document.getElementById(&amp;quot;tm_load_progress&amp;quot;);&lt;br /&gt;
			is_xml_generated = false;&lt;br /&gt;
 &lt;br /&gt;
			if (usage_text.length == 0) {&lt;br /&gt;
				oXmlHttpRequest({&lt;br /&gt;
					&#039;method&#039;:&#039;GET&#039;,&lt;br /&gt;
					&#039;url&#039;: wgServer + wgScriptPath +&#039;/api.php?action=query&amp;amp;prop=revisions&amp;amp;rvprop=content&amp;amp;rvlimit=1&amp;amp;format=json&amp;amp;titles=&#039;+encodeURIComponent(full_name),&lt;br /&gt;
					&#039;headers&#039;:{&#039;User-agent&#039;: &#039;Skript:TM(wp_de_user_Revvar)&#039;},&lt;br /&gt;
					&#039;onload&#039;: function(rD) {&lt;br /&gt;
						try {&lt;br /&gt;
							if (Dummy_div &amp;amp;&amp;amp; Progress_div) Dummy_div.removeChild(Progress_div);&lt;br /&gt;
 &lt;br /&gt;
							var rT = rD.responseText;&lt;br /&gt;
							var startPos = rT.search(&#039;\\[\\{&amp;quot;\\*&amp;quot;:&amp;quot;&#039;)+7;&lt;br /&gt;
							var endPos = rT.search(&#039;&amp;quot;\\}\\]\\}\\}\\},&amp;quot;&#039;);&lt;br /&gt;
 &lt;br /&gt;
							if (endPos &amp;lt; 0) {&lt;br /&gt;
								log_message(locals[&amp;quot;sys_no_such_template&amp;quot;].replace(&amp;quot;$1&amp;quot;, template_name));&lt;br /&gt;
								switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
								return;&lt;br /&gt;
							}&lt;br /&gt;
 &lt;br /&gt;
							rT = rT.substring(startPos, endPos);&lt;br /&gt;
							var xVarname = /\{\{\{[\s]*([^\s\|\}]([^\|\}]*[^\s\|\}]){0,1})[\s\|\}]/g;&lt;br /&gt;
							var names = rT.match(xVarname);&lt;br /&gt;
							var vars = new Object();&lt;br /&gt;
							if (names) {&lt;br /&gt;
								for (var i = 0; i &amp;lt; names.length; i++) {&lt;br /&gt;
									var tmp = names[i].replace(xVarname, &amp;quot;$1&amp;quot;);&lt;br /&gt;
									tmp = tmp.replace(/&amp;lt;[^&amp;gt;]+&amp;gt;/g, &#039;&#039;);&lt;br /&gt;
									tmp = decodeURI(tmp);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00f6&#039;, &#039;ö&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00fc&#039;, &#039;ü&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00e4&#039;, &#039;ä&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00df&#039;, &#039;ß&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00d6&#039;, &#039;Ö&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00dc&#039;, &#039;Ü&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00c4&#039;, &#039;Ä&#039;);&lt;br /&gt;
									vars[tmp] = true;&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
							usage_text =  &#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;\n&#039;;&lt;br /&gt;
							usage_text += &#039;&amp;lt;?mediawiki &amp;quot;{{XML-Warnung|&#039; + template_name +&#039;}}&amp;quot;?&amp;gt;\n&#039;;&lt;br /&gt;
 &lt;br /&gt;
							usage_text += &#039; &amp;lt;TemplateUsage output=&amp;quot;expand&amp;quot;&amp;gt;\n&#039;;&lt;br /&gt;
							usage_text += &#039;   &amp;lt;Group&amp;gt;\n&#039;;&lt;br /&gt;
							for (var varname in vars) {&lt;br /&gt;
								usage_text += &#039;     &amp;lt;Parameter name=&amp;quot;&#039; + varname + &#039;&amp;quot;&amp;gt;\n&#039;;&lt;br /&gt;
								usage_text += &#039;       &amp;lt;Help&amp;gt;&amp;lt;/Help&amp;gt;\n&#039;;&lt;br /&gt;
								usage_text += &#039;     &amp;lt;/Parameter&amp;gt;\n&#039;;&lt;br /&gt;
							}&lt;br /&gt;
							usage_text += &#039;   &amp;lt;/Group&amp;gt;\n&#039;;&lt;br /&gt;
							usage_text += &#039; &amp;lt;/TemplateUsage&amp;gt;\n&#039;;&lt;br /&gt;
 &lt;br /&gt;
							Xml_dom=parseXML(usage_text);&lt;br /&gt;
							Xsl_dom=get_xsl_dom();&lt;br /&gt;
 &lt;br /&gt;
							is_xml_generated = true;&lt;br /&gt;
							generated_xml = usage_text;&lt;br /&gt;
 &lt;br /&gt;
							onload();&lt;br /&gt;
							return;&lt;br /&gt;
						} catch (e) {&lt;br /&gt;
							log_message(e.message);&lt;br /&gt;
							switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
							return;&lt;br /&gt;
						}&lt;br /&gt;
					},&lt;br /&gt;
					&#039;onerror&#039;:function(rD) {&lt;br /&gt;
						log_message(locals[&amp;quot;sys_load_error&amp;quot;].replace(&amp;quot;$1&amp;quot;, template_name));&lt;br /&gt;
						switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					},&lt;br /&gt;
					&#039;onreadystatechange&#039;:function() {&lt;br /&gt;
						Progress_div.firstChild.data += &amp;quot;.&amp;quot;;&lt;br /&gt;
					},&lt;br /&gt;
					&#039;on_cancel&#039;: function() {&lt;br /&gt;
						switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			if (Dummy_div &amp;amp;&amp;amp; Progress_div) Dummy_div.removeChild(Progress_div);&lt;br /&gt;
 &lt;br /&gt;
			/* create document from XML text */&lt;br /&gt;
			Xml_dom=parseXML(usage_text);&lt;br /&gt;
			Xsl_dom=get_xsl_dom();&lt;br /&gt;
 &lt;br /&gt;
			/* load style sheet for the transformation */&lt;br /&gt;
// 			var Xsl_dom = document.implementation.createDocument(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, null);&lt;br /&gt;
// 			Xsl_dom.addEventListener(&amp;quot;load&amp;quot;, onload, false);&lt;br /&gt;
// 			Xsl_dom.load(&amp;quot;http://tools.wikimedia.de/~revvar/tm_formular.xsl&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
			/* next step &amp;quot;function onload&amp;quot;*/&lt;br /&gt;
			onload();&lt;br /&gt;
			return;&lt;br /&gt;
 &lt;br /&gt;
		} catch(e) {&lt;br /&gt;
			log_message(e.message);&lt;br /&gt;
			switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		return;&lt;br /&gt;
 &lt;br /&gt;
		function onload() {&lt;br /&gt;
			var dom = createForm(Xml_dom, Xsl_dom);&lt;br /&gt;
			if (dom) {&lt;br /&gt;
				attachForm(dom);&lt;br /&gt;
 &lt;br /&gt;
				/* cache template */&lt;br /&gt;
				Template[template_name] = new Object();&lt;br /&gt;
				Template[template_name].Xml_dom = Xml_dom;&lt;br /&gt;
				Template[template_name].Xsl_dom = Xsl_dom;&lt;br /&gt;
			} else switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function createForm(Xml_dom, Xsl_dom) {&lt;br /&gt;
		try {&lt;br /&gt;
			/* transform the XML Formular Specification with the loaded stylesheet */&lt;br /&gt;
			var Result_dom = null;&lt;br /&gt;
			if (is_ie) {&lt;br /&gt;
				var result_xml = Xml_dom.transformNode(Xsl_dom.documentElement);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_submit&amp;quot;, locals[&amp;quot;Submit&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_cancel&amp;quot;, locals[&amp;quot;Cancel&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_createxml&amp;quot;, locals[&amp;quot;CreateXML&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_template&amp;quot;, locals[&amp;quot;Template&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(new RegExp(&amp;quot;locals_nohelp&amp;quot;,&amp;quot;g&amp;quot;), locals[&amp;quot;sys_no_help&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_version&amp;quot;, VERSION);&lt;br /&gt;
				var Result_div = cNode(null, &amp;quot;div&amp;quot;, null, {&amp;quot;id&amp;quot;:&amp;quot;tm_dummy_ie_div&amp;quot;, &amp;quot;style&amp;quot;:&amp;quot;visibility:hidden;&amp;quot;});&lt;br /&gt;
				Result_div.innerHTML = result_xml;&lt;br /&gt;
				Root_node.appendChild(Result_div);&lt;br /&gt;
				Result_dom = document;&lt;br /&gt;
				var group_div = document.getElementById(&amp;quot;tm_group_selector&amp;quot;);&lt;br /&gt;
				if (group_div.firstChild == null) {&lt;br /&gt;
					group_div.parentNode.removeChild(group_div);&lt;br /&gt;
				}&lt;br /&gt;
			} else {&lt;br /&gt;
				var Processor = new XSLTProcessor()&lt;br /&gt;
				Processor.importStylesheet(Xsl_dom);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_submit&amp;quot;, locals[&amp;quot;Submit&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_cancel&amp;quot;, locals[&amp;quot;Cancel&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_createxml&amp;quot;, locals[&amp;quot;CreateXML&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_template&amp;quot;, locals[&amp;quot;Template&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_nohelp&amp;quot;,locals[&amp;quot;sys_no_help&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_version&amp;quot;,VERSION);&lt;br /&gt;
 &lt;br /&gt;
				Result_dom = Processor.transformToDocument(Xml_dom);&lt;br /&gt;
			}&lt;br /&gt;
 &lt;br /&gt;
			/* add program logic */&lt;br /&gt;
			completeForm(Result_dom);&lt;br /&gt;
 &lt;br /&gt;
			return Result_dom;&lt;br /&gt;
		} catch(e) {&lt;br /&gt;
			log_message(e.message);&lt;br /&gt;
			return null;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function attachForm(dom) {&lt;br /&gt;
		/* append formular to root node */&lt;br /&gt;
		var Mf = dom.getElementById(&amp;quot;tm_main_frame&amp;quot;);&lt;br /&gt;
		if (is_ie) Root_node.removeChild(document.getElementById(&amp;quot;tm_dummy_ie_div&amp;quot;));&lt;br /&gt;
		Root_node.appendChild(Mf);&lt;br /&gt;
 &lt;br /&gt;
		var Tm_main = document.getElementById(&amp;quot;tm_main_frame&amp;quot;);&lt;br /&gt;
		var Tm_header=document.getElementById(&amp;quot;tm_header&amp;quot;);&lt;br /&gt;
		var Tm_form=document.getElementById(&amp;quot;tm_form&amp;quot;);&lt;br /&gt;
		var Tm_footer=document.getElementById(&amp;quot;tm_footer&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		/* resize all input boxes*/&lt;br /&gt;
		var Input_node = null;&lt;br /&gt;
		Input_node = traverse(Tm_form, &amp;quot;tm_formelem&amp;quot;);&lt;br /&gt;
		for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
			if (Input_node[i].className == &amp;quot;tm_input&amp;quot;) {&lt;br /&gt;
				resizeInputBox(Input_node[i], 1);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
		/* resize formular */&lt;br /&gt;
		var new_height = Root_node.offsetHeight;&lt;br /&gt;
		new_height = new_height - Tm_header.offsetHeight - Tm_footer.offsetHeight;&lt;br /&gt;
		setStyleAttribute(Tm_form, {&amp;quot;height&amp;quot;:(new_height+ &amp;quot;px&amp;quot;)});&lt;br /&gt;
		setStyleAttribute(Tm_form, {&amp;quot;height&amp;quot;:((new_height + (Root_node.offsetHeight - Tm_main.offsetHeight) )+ &amp;quot;px&amp;quot;)});&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function removeForm() {&lt;br /&gt;
		Root_node.removeChild(document.getElementById(&amp;quot;tm_main_frame&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function restoreTemplate(name)&lt;br /&gt;
	{&lt;br /&gt;
		if (Template[name]) {&lt;br /&gt;
			var dom = createForm(Template[name].Xml_dom, Template[name].Xsl_dom);&lt;br /&gt;
			if (dom) {&lt;br /&gt;
				attachForm(dom);&lt;br /&gt;
				return true;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function traverse(Parent, name)&lt;br /&gt;
	{&lt;br /&gt;
		var childs = new Array();&lt;br /&gt;
		var Child = Parent.firstChild;&lt;br /&gt;
		while (Child != null) {&lt;br /&gt;
			if ((Child.getAttribute) &amp;amp;&amp;amp; (Child.getAttribute(&amp;quot;tm_name&amp;quot;))) {&lt;br /&gt;
				if (((&amp;quot;&amp;quot;+Child.getAttribute(&amp;quot;tm_name&amp;quot;)).search(name) == 0)) childs.push(Child);&lt;br /&gt;
			}&lt;br /&gt;
			if (Child.firstChild != null) childs = childs.concat(traverse(Child, name));&lt;br /&gt;
			Child = Child.nextSibling;&lt;br /&gt;
		}&lt;br /&gt;
		return childs;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function mapParameter(Temp_plugin, Temp_real) {&lt;br /&gt;
		var Temp_given = new Object();&lt;br /&gt;
		for (var id in Temp_real) {&lt;br /&gt;
			if (Temp_plugin[id] != null) {&lt;br /&gt;
				Temp_given[id] = Temp_plugin[id];&lt;br /&gt;
				Temp_plugin[id] = null;&lt;br /&gt;
			} else {&lt;br /&gt;
				for (var pi_id in Temp_plugin) if (Temp_plugin[pi_id] != null) {&lt;br /&gt;
					if (id.toLowerCase() == pi_id.toLowerCase()) {&lt;br /&gt;
						Temp_given[id] = Temp_plugin[pi_id];&lt;br /&gt;
						Temp_plugin[pi_id] = null;&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* append all unknown params */&lt;br /&gt;
		for (var pi_id in Temp_plugin) if (Temp_plugin[pi_id] != null) Temp_given[pi_id] = Temp_plugin[pi_id];&lt;br /&gt;
		return Temp_given;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function completeForm(dom)&lt;br /&gt;
	{&lt;br /&gt;
		State = dom.getElementById(&amp;quot;tm_state&amp;quot;).firstChild;&lt;br /&gt;
		var Name_node = dom.getElementById(&amp;quot;tm_template&amp;quot;);&lt;br /&gt;
		Name_node.value= template_name;&lt;br /&gt;
		if (template_name.length &amp;gt; 32) Name_node.size = template_name.length;&lt;br /&gt;
		if (template_name != &amp;quot;none&amp;quot;) Name_node.readOnly = true;&lt;br /&gt;
		else {&lt;br /&gt;
			Name_node.value = &amp;quot;&amp;quot;;&lt;br /&gt;
			addEventListener(Name_node, &amp;quot;keypress&amp;quot;, template_name_changed);&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		var is_changed = false;&lt;br /&gt;
		function template_name_changed(e)&lt;br /&gt;
		{&lt;br /&gt;
			if (is_changed) return;&lt;br /&gt;
			if (e.type == &amp;quot;keypress&amp;quot;) {&lt;br /&gt;
				if (e.which) {&lt;br /&gt;
					if (e.which != 13) return;&lt;br /&gt;
				} else if (e.keyCode) {&lt;br /&gt;
					if (e.keyCode != 13) return;&lt;br /&gt;
				} else return;&lt;br /&gt;
			}&lt;br /&gt;
			var new_name = Name_node.value + &amp;quot;&amp;quot;;&lt;br /&gt;
			if (new_name.length == 0) return;&lt;br /&gt;
			is_changed = true;&lt;br /&gt;
			removeForm();&lt;br /&gt;
			show_template(Root_node, new_name, null, Target);&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* fix an ie width problem for the group divs */&lt;br /&gt;
 		if (is_ie) {&lt;br /&gt;
			var group_count = 1;&lt;br /&gt;
			do {&lt;br /&gt;
				var Group_div = dom.getElementById(&amp;quot;tm_group_&amp;quot; + group_count);&lt;br /&gt;
  				if ((Group_div) &amp;amp;&amp;amp; (Group_div.className) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot; + Group_div.className).search(&amp;quot;tm_ie_group&amp;quot;) &amp;lt; 0)) {&lt;br /&gt;
 					Group_div.className = &amp;quot;tm_group tm_ie_group&amp;quot;;&lt;br /&gt;
				}&lt;br /&gt;
				group_count++;&lt;br /&gt;
			} while (Group_div != null);&lt;br /&gt;
  		}&lt;br /&gt;
 &lt;br /&gt;
		var Input_node = null;&lt;br /&gt;
		Input_node = traverse(dom, &amp;quot;tm_formelem&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		/* save references to nodes and set help attribute */&lt;br /&gt;
		var comment_counter = 0;&lt;br /&gt;
		for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
			if (Input_node[i].className == &amp;quot;tm_group_heading&amp;quot;) {&lt;br /&gt;
				var id = &amp;quot;tm_comment_&amp;quot; + comment_counter;&lt;br /&gt;
				Template_new[id] = new Object();&lt;br /&gt;
				Template_new[id].showempty = (Input_node[i].parentNode.getAttribute(&amp;quot;tm_showempty&amp;quot;) == &amp;quot;true&amp;quot;);&lt;br /&gt;
				Template_new[id].value = &amp;quot;&amp;quot;;&lt;br /&gt;
				if (comment_counter &amp;gt; 0) Template_new[id].value += &amp;quot;\n&amp;quot;;&lt;br /&gt;
				Template_new[id].value += &amp;quot;&amp;lt;!-- &amp;quot; + Input_node[i].firstChild.data + &amp;quot; --&amp;gt;\n&amp;quot;;&lt;br /&gt;
				comment_counter++;&lt;br /&gt;
			} else  {&lt;br /&gt;
				var id = Input_node[i].id;&lt;br /&gt;
				if (id == null) {&lt;br /&gt;
					log_message(&amp;quot;Internal error: XSLT created input node without id.&amp;quot;);&lt;br /&gt;
					switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				if (Template_new[id] != null) {&lt;br /&gt;
					log_message(&amp;quot;Internal error: Duplicate id \&amp;quot;&amp;quot; + id + &amp;quot;\&amp;quot;.&amp;quot;);&lt;br /&gt;
					switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				Input_node[i].tm_help = Input_node[i].title;&lt;br /&gt;
				Template_new[id] = Input_node[i];&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* transform all condition attributes from text to a RegExp */&lt;br /&gt;
		for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
			var condition_text = Input_node[i].getAttribute(&amp;quot;tm_condition&amp;quot;);&lt;br /&gt;
			if ((condition_text != null) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot;+condition_text).length &amp;gt; 0)) {&lt;br /&gt;
				try {&lt;br /&gt;
					Input_node[i].tm_condition = new RegExp(condition_text);&lt;br /&gt;
				} catch(e) {&lt;br /&gt;
					log_message(e.message+&amp;quot;\n&amp;quot;+locals[&amp;quot;sys_invalid_condition&amp;quot;].replace(&amp;quot;$1&amp;quot;, condition_text));&lt;br /&gt;
					switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* map suggested to existing parameter names */&lt;br /&gt;
		if ((Template_given != null) &amp;amp;&amp;amp; (Template_given[&amp;quot;source&amp;quot;]) &amp;amp;&amp;amp; (Template_given[&amp;quot;source&amp;quot;] == &amp;quot;plug-in&amp;quot;)) {&lt;br /&gt;
			/* create a list with all valid parameter names */&lt;br /&gt;
			var Temp_real = new Object();&lt;br /&gt;
			for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
				var name = &amp;quot;&amp;quot; + Input_node[i].id;&lt;br /&gt;
				if ((name !=null) &amp;amp;&amp;amp; (name.length) &amp;amp;&amp;amp; (name.length&amp;gt;0)) Temp_real[name] = true;&lt;br /&gt;
			}&lt;br /&gt;
 &lt;br /&gt;
			Template_given = mapParameter(Template_given, Temp_real);&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* fill the formular with the given template and add resize handler */&lt;br /&gt;
		var Template_used = new Object();&lt;br /&gt;
		if (Template_given != null) {&lt;br /&gt;
			for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
				var name = &amp;quot;&amp;quot; + Input_node[i].id;&lt;br /&gt;
				if (Template_given[name] != null) Template_used[name] = true; /* mark given parameter to find unknown */&lt;br /&gt;
				if ((name !=null) &amp;amp;&amp;amp; (name.length) &amp;amp;&amp;amp; (name.length&amp;gt;0) &amp;amp;&amp;amp; (Template_given[name] != null) &amp;amp;&amp;amp; (Template_given[name].length&amp;gt;0)) {&lt;br /&gt;
					if (Input_node[i].nodeName.search(/^select$/i) == 0) {&lt;br /&gt;
							Input_node[i].value = Template_given[name];&lt;br /&gt;
							if (Input_node[i].value != Template_given[name]) {&lt;br /&gt;
								Input_node[i].title = locals[&amp;quot;sys_invalid_value&amp;quot;] + &amp;quot;: \&amp;quot;&amp;quot;+Template_given[name]+&amp;quot;\&amp;quot;! &amp;quot;+Input_node[i].tm_help;&lt;br /&gt;
								Input_node[i].className = &amp;quot;tm_input tm_error&amp;quot;;&lt;br /&gt;
								Input_node[i].setAttribute(&amp;quot;tm_error&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
							}&lt;br /&gt;
					} else {&lt;br /&gt;
						if (Input_node[i].type.search(/^checkbox$/i) == 0) {&lt;br /&gt;
							Input_node[i].checked = true;&lt;br /&gt;
						} else  {&lt;br /&gt;
							Input_node[i].value = Template_given[name];&lt;br /&gt;
							if (Input_node[i].nodeName.search(/^input$/i) == 0) {&lt;br /&gt;
								/* (1) replace newlines with &amp;lt;br /&amp;gt; */&lt;br /&gt;
								Input_node[i].value = replace_all(Input_node[i].value, new RegExp(&amp;quot;\n&amp;quot;,&amp;quot;g&amp;quot;), &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* add function to show help text at state bar on focus and to trace act input field + add resize handler */&lt;br /&gt;
		for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
			addEventListener(Input_node[i], &amp;quot;focus&amp;quot;, showHelp);&lt;br /&gt;
			if ((Input_node[i].nodeName.search(/^input$/i) == 0) &amp;amp;&amp;amp; (Input_node[i].type.search(/^text$/i) == 0) &amp;amp;&amp;amp; (Input_node[i].className.search(/tm_input_max/i) &amp;lt; 0)) {&lt;br /&gt;
				addEventListener(Input_node[i], &amp;quot;keyup&amp;quot;, resizeHandler);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* add function for the group selection button */&lt;br /&gt;
		var Group_selector = dom.getElementById(&amp;quot;tm_group_selector&amp;quot;);&lt;br /&gt;
		if (Group_selector  != null) {&lt;br /&gt;
			var Group_button = Group_selector.firstChild;&lt;br /&gt;
			while (Group_button != null) {&lt;br /&gt;
				if (Group_button.nodeName.search(/^a$/i) == 0) addEventListener(Group_button, &amp;quot;click&amp;quot;, selectGroup);&lt;br /&gt;
				Group_button = Group_button.nextSibling;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* search unknown given named parameter*/&lt;br /&gt;
		if ((Template_given != null) &amp;amp;&amp;amp; (Template_used != null)) {&lt;br /&gt;
			var unknown_parameter = new Array();&lt;br /&gt;
			for (var id in Template_given) if (!((Template_used[id]) &amp;amp;&amp;amp; (Template_used[id] == true))) {&lt;br /&gt;
				if (((&amp;quot;&amp;quot;+id).search(/^(source|template_name)$/) &amp;lt; 0) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot;+id).search(&amp;quot;tm_form_parameter&amp;quot;) &amp;lt; 0))&lt;br /&gt;
					unknown_parameter.push(id.replace(/^tm_form_(.+)$/, &amp;quot;$1&amp;quot;));&lt;br /&gt;
			}&lt;br /&gt;
			if (unknown_parameter.length &amp;gt; 0) {&lt;br /&gt;
				var unknown_div = cNode(dom.getElementById(&amp;quot;tm_group_selector&amp;quot;), &amp;quot;div&amp;quot;, null, {&amp;quot;class&amp;quot;:&amp;quot;tm_unknown_selector&amp;quot;,&amp;quot;id&amp;quot;:&amp;quot;tm_unknown_selector&amp;quot;});&lt;br /&gt;
				for (var i = 0; i &amp;lt; unknown_parameter.length; i++) {&lt;br /&gt;
					var Unknown_link = cNode(unknown_div, &amp;quot;a&amp;quot;, unknown_parameter[i] , {&amp;quot;class&amp;quot;:&amp;quot;tm_button tm_selector tm_unknown_selector&amp;quot;,&amp;quot;title&amp;quot;:Template_given[&amp;quot;tm_form_&amp;quot; + unknown_parameter[i]]});&lt;br /&gt;
					addEventListener(Unknown_link, &amp;quot;click&amp;quot;, insertUnknown);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* buttons */&lt;br /&gt;
		var Button_submit = dom.getElementById(&amp;quot;tm_submit&amp;quot;);&lt;br /&gt;
		addEventListener(Button_submit, &amp;quot;click&amp;quot;, submitTemplate);&lt;br /&gt;
		var Button_cancel = dom.getElementById(&amp;quot;tm_cancel&amp;quot;);&lt;br /&gt;
		addEventListener(Button_cancel, &amp;quot;click&amp;quot;, cancelTemplate);&lt;br /&gt;
		if ((is_xml_generated) &amp;amp;&amp;amp; (!is_opera)) {&lt;br /&gt;
			var Button_createxml = dom.getElementById(&amp;quot;tm_createxml&amp;quot;);&lt;br /&gt;
			setStyleAttribute(Button_createxml, {&#039;visibility&#039;:&#039;visible&#039;});&lt;br /&gt;
			Button_createxml.removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
			if (Button_createxml) addEventListener(Button_createxml, &amp;quot;click&amp;quot;, createXML);&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* last op (possible race condition!): enable Template_name node and buttons */&lt;br /&gt;
		Name_node.removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
		Button_cancel.removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
		if (template_name != &amp;quot;none&amp;quot;) Button_submit.removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function submitTemplate(e)&lt;br /&gt;
	{&lt;br /&gt;
		if (!is_ie) e.preventDefault();&lt;br /&gt;
 &lt;br /&gt;
		/* read all results and correct them if necessary */&lt;br /&gt;
		var success = true;&lt;br /&gt;
		var First_error_node = null;&lt;br /&gt;
		for (var id in Template_new) if (id.search(/^(source|template_name|tm_comment_)/) &amp;lt; 0) {&lt;br /&gt;
			var Node = Template_new[id];&lt;br /&gt;
			switch ((&amp;quot;&amp;quot;+Node.nodeName).toLowerCase()) {&lt;br /&gt;
				case &amp;quot;textarea&amp;quot;: {&lt;br /&gt;
					Node.tm_value = trim(Node.value);&lt;br /&gt;
					var lines = Node.tm_value.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
					if ((lines.length - 1 &amp;gt; 1) &amp;amp;&amp;amp; (lines[lines.length - 1].search(/[\S]/) &amp;lt; 0)) lines.pop();&lt;br /&gt;
					Node.tm_value = lines.join(&amp;quot;\n&amp;quot;);&lt;br /&gt;
					if (lines.length &amp;gt; 1) Node.tm_value = &amp;quot;\n&amp;quot; + Node.tm_value;&lt;br /&gt;
				};break;&lt;br /&gt;
				case &amp;quot;input&amp;quot;: {&lt;br /&gt;
					if ((&amp;quot;&amp;quot;+Node.type).toLowerCase() == &amp;quot;checkbox&amp;quot;) {&lt;br /&gt;
						if (Node.checked == true) Node.tm_value = trim(Node.value);&lt;br /&gt;
						else Node.tm_value = &amp;quot;&amp;quot;;&lt;br /&gt;
					} else {&lt;br /&gt;
						Node.tm_value = trim(Node.value);&lt;br /&gt;
					}&lt;br /&gt;
				};break;&lt;br /&gt;
 &lt;br /&gt;
				case &amp;quot;select&amp;quot;: {&lt;br /&gt;
					Node.tm_value = trim(Node.value);&lt;br /&gt;
				};break;&lt;br /&gt;
 &lt;br /&gt;
				default: {&lt;br /&gt;
					log_message(&amp;quot;Internal Error: Unknown Node type \&amp;quot;&amp;quot; + Node.nodeName + &amp;quot;\&amp;quot;.&amp;quot;);&lt;br /&gt;
					switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
 &lt;br /&gt;
			/* verify values */&lt;br /&gt;
			var node_success = true;&lt;br /&gt;
			if ((Node.getAttribute(&amp;quot;tm_null&amp;quot;) == &amp;quot;false&amp;quot;) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot;+Node.tm_value).length==0)) {&lt;br /&gt;
				success = false; node_success = false;&lt;br /&gt;
				if (First_error_node == null) First_error_node=Node;&lt;br /&gt;
				Node.title = locals[&amp;quot;sys_enter_value&amp;quot;]+&amp;quot; &amp;quot;+Node.tm_help;&lt;br /&gt;
				Node.className = &amp;quot;tm_input tm_error&amp;quot;;&lt;br /&gt;
				Node.setAttribute(&amp;quot;tm_error&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
			} else if (Node.tm_condition != null) {&lt;br /&gt;
				if ((!((Node.getAttribute(&amp;quot;tm_null&amp;quot;) == &amp;quot;true&amp;quot;) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot;+Node.value).length==0))) &amp;amp;&amp;amp;&lt;br /&gt;
				((&amp;quot;&amp;quot;+Node.tm_value).search(Node.tm_condition) != 0)) {&lt;br /&gt;
					success = false; node_success = false;&lt;br /&gt;
					if (First_error_node == null) First_error_node=Node;&lt;br /&gt;
					Node.title = locals[&amp;quot;sys_enter_valid_value&amp;quot;]+&amp;quot; &amp;quot;+Node.tm_help;&lt;br /&gt;
					Node.className = &amp;quot;tm_input tm_error&amp;quot;;&lt;br /&gt;
					Node.setAttribute(&amp;quot;tm_error&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			if (node_success == true) {&lt;br /&gt;
				Node.setAttribute(&amp;quot;tm_error&amp;quot;, &amp;quot;false&amp;quot;);&lt;br /&gt;
				Node.className = &amp;quot;tm_input&amp;quot;;&lt;br /&gt;
				Node.title = Node.tm_help;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (success==false) {&lt;br /&gt;
			if (State) State.data = locals[&amp;quot;sys_please_correct_errors&amp;quot;];&lt;br /&gt;
			First_error_node.focus();&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* create new template source */&lt;br /&gt;
		var x_param = /^tm_form_(.+)$/;&lt;br /&gt;
		var output = document.getElementById(&amp;quot;tm_main_frame&amp;quot;);&lt;br /&gt;
		if (output != null) {&lt;br /&gt;
			if (output.getAttribute(&amp;quot;tm_max_value_indentation&amp;quot;)) {&lt;br /&gt;
				max_value_indentation = 0+output.getAttribute(&amp;quot;tm_max_value_indentation&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			output = ((&amp;quot;&amp;quot;+output.getAttribute(&amp;quot;tm_output&amp;quot;)).search(/^expand$/)==0);&lt;br /&gt;
		} else output=false;&lt;br /&gt;
		var new_template = &amp;quot;{{&amp;quot; + Template_new[&amp;quot;template_name&amp;quot;] + ((output)?&amp;quot;\n&amp;quot;:&amp;quot;&amp;quot;);&lt;br /&gt;
		var group_count = 0;&lt;br /&gt;
		var group_template = &amp;quot;&amp;quot;;&lt;br /&gt;
		var group_showempty = false;&lt;br /&gt;
 &lt;br /&gt;
		// get max parameter length&lt;br /&gt;
		var max_parameter_length = 0;&lt;br /&gt;
		for (id in Template_new) if (id.search(/^(source|template_name)$/) &amp;lt; 0) {&lt;br /&gt;
			if ((output || ((&amp;quot;&amp;quot;+Template_new[id].tm_value).length &amp;gt; 0)) &amp;amp;&amp;amp; ((id.search(&amp;quot;tm_comment_&amp;quot;) &amp;lt; 0))) {&lt;br /&gt;
				var tmp_param = (&amp;quot;&amp;quot;+id).replace(x_param,&amp;quot;$1&amp;quot;);&lt;br /&gt;
				if (max_parameter_length &amp;lt; tmp_param.length) max_parameter_length = tmp_param.length;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		var parameter_space = &amp;quot;&amp;quot;;&lt;br /&gt;
		var xNumber = /^[0-9]+$/g;&lt;br /&gt;
		var prevEmptyNumbers = &#039;&#039;;&lt;br /&gt;
		for (var i = 0; i &amp;lt; ((max_parameter_length &amp;gt; max_value_indentation) ? max_value_indentation : max_parameter_length); i++) parameter_space += &amp;quot; &amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
		for (id in Template_new) if (id.search(/^(source|template_name)$/) &amp;lt; 0) {&lt;br /&gt;
			var tmp_param = (&amp;quot;&amp;quot;+id).replace(x_param,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			if (output == true) {&lt;br /&gt;
				if (id.search(&amp;quot;tm_comment_&amp;quot;) == 0) {&lt;br /&gt;
					if ((group_count &amp;gt; 0) || (group_showempty == true)) new_template += group_template;&lt;br /&gt;
					group_count = 0;&lt;br /&gt;
					group_template = &amp;quot;&amp;quot;;&lt;br /&gt;
					group_showempty = Template_new[id].showempty;&lt;br /&gt;
//  					group_template += Template_new[id].value;&lt;br /&gt;
				} else {&lt;br /&gt;
					if (tmp_param.length &amp;lt; parameter_space.length) tmp_param = (tmp_param + parameter_space).substr(0, parameter_space.length);&lt;br /&gt;
					if (tmp_param.search(xNumber) == 0) {&lt;br /&gt;
						group_template += &amp;quot;|&amp;quot;;&lt;br /&gt;
					} else {&lt;br /&gt;
						group_template += &amp;quot;| &amp;quot; + tmp_param;&lt;br /&gt;
					}&lt;br /&gt;
					if (((&amp;quot;&amp;quot;+Template_new[id].tm_value).length &amp;gt; 0) || (Template_new[id].getAttribute(&amp;quot;tm_predefined&amp;quot;) == &amp;quot;false&amp;quot;)) {&lt;br /&gt;
						if (tmp_param.search(xNumber) == 0) {&lt;br /&gt;
							group_template += Template_new[id].tm_value;&lt;br /&gt;
						} else {&lt;br /&gt;
							group_template += &amp;quot;= &amp;quot; + Template_new[id].tm_value;&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					group_template += &amp;quot;\n&amp;quot;;&lt;br /&gt;
					if ((&amp;quot;&amp;quot;+Template_new[id].tm_value).length &amp;gt; 0) group_count++;&lt;br /&gt;
				}&lt;br /&gt;
			} else if (((&amp;quot;&amp;quot;+Template_new[id].tm_value).length &amp;gt; 0) &amp;amp;&amp;amp; ((id.search(&amp;quot;tm_comment_&amp;quot;) &amp;lt; 0))) {&lt;br /&gt;
				if (tmp_param.length &amp;lt; parameter_space.length) tmp_param = (tmp_param + parameter_space).substr(0, parameter_space.length);&lt;br /&gt;
				new_template += prevEmptyNumbers;&lt;br /&gt;
				prevEmptyNumbers = &#039;&#039;;&lt;br /&gt;
				if (tmp_param.search(xNumber) == 0) {&lt;br /&gt;
					new_template += &amp;quot;|&amp;quot;+ Template_new[id].tm_value;&lt;br /&gt;
				} else {&lt;br /&gt;
					new_template += &amp;quot;| &amp;quot;+ tmp_param + &amp;quot;= &amp;quot; + Template_new[id].tm_value;&lt;br /&gt;
				}&lt;br /&gt;
			} else if (tmp_param.search(xNumber) == 0) prevEmptyNumbers += &#039;|&#039;;&lt;br /&gt;
		}&lt;br /&gt;
		if (output == true) if ((group_count &amp;gt; 0) || (group_showempty == true)) new_template += group_template;&lt;br /&gt;
		new_template += &amp;quot;}}&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
		switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		/* insert source into Editbox at cursor */&lt;br /&gt;
 		var scroll_top = Target[&amp;quot;Editbox&amp;quot;].scrollTop;&lt;br /&gt;
		Target[&amp;quot;Editbox&amp;quot;].value = Target[&amp;quot;Editbox&amp;quot;].value.substring(0, Target[&amp;quot;start&amp;quot;]) + new_template + Target[&amp;quot;Editbox&amp;quot;].value.substring(Target[&amp;quot;end&amp;quot;] + 1);&lt;br /&gt;
		if (is_ie) {&lt;br /&gt;
			var Range = Target[&amp;quot;Editbox&amp;quot;].createTextRange();&lt;br /&gt;
			Range.collapse(true);&lt;br /&gt;
			Range.moveEnd(&#039;character&#039;, Target[&amp;quot;start&amp;quot;]);&lt;br /&gt;
			Range.moveStart(&#039;character&#039;, Target[&amp;quot;start&amp;quot;]);&lt;br /&gt;
			Range.select();&lt;br /&gt;
		} else {&lt;br /&gt;
			Target[&amp;quot;Editbox&amp;quot;].selectionStart = Target[&amp;quot;cursor&amp;quot;];&lt;br /&gt;
			Target[&amp;quot;Editbox&amp;quot;].selectionEnd = Target[&amp;quot;cursor&amp;quot;];&lt;br /&gt;
			Target[&amp;quot;Editbox&amp;quot;].scrollTop = scroll_top;&lt;br /&gt;
		}&lt;br /&gt;
		switchOnWikEd();&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function cancelTemplate(e)&lt;br /&gt;
	{&lt;br /&gt;
		if (!is_ie) e.preventDefault();&lt;br /&gt;
		switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
		switchOnWikEd();&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function createXML(e) {&lt;br /&gt;
		if (!is_ie) e.preventDefault();&lt;br /&gt;
 &lt;br /&gt;
		var full_name = ((template_name.search(new RegExp(locals[&amp;quot;User&amp;quot;]+&amp;quot;( [^:]+){0,1}:&amp;quot;),&amp;quot;&amp;quot;)&amp;gt;=0)?(&amp;quot;&amp;quot;):(locals[&amp;quot;Template&amp;quot;]+&amp;quot;:&amp;quot;))+template_name;&lt;br /&gt;
		var xml_window = window.open(wgServer + wgScriptPath + &#039;/index.php?action=edit&amp;amp;summary=&#039; + encodeURIComponent(locals[&amp;quot;sys_xml_generated_summary&amp;quot;]) + &#039;&amp;amp;title=&#039; + encodeURIComponent(full_name) + &#039;/XML&#039;);&lt;br /&gt;
		xml_window.focus();&lt;br /&gt;
		var textbox = xml_window.document.getElementById(&#039;wpTextbox1&#039;);&lt;br /&gt;
		if (textbox) textbox.value = generated_xml;&lt;br /&gt;
		else {&lt;br /&gt;
			addEventListener(xml_window, &#039;load&#039;, function (e) {&lt;br /&gt;
				var textbox = xml_window.document.getElementById(&#039;wpTextbox1&#039;);&lt;br /&gt;
				if (textbox) textbox.value = generated_xml;&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function switch_view_to(view)&lt;br /&gt;
{&lt;br /&gt;
	var Editbox = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
	var Tm_box = document.getElementById(&amp;quot;tm_dummy_div&amp;quot;);&lt;br /&gt;
	if (view == null) view = &amp;quot;&amp;quot;;&lt;br /&gt;
	if (((view == &amp;quot;VM&amp;quot;)  || (view == &amp;quot;&amp;quot;)) &amp;amp;&amp;amp; (act_view == &amp;quot;EB&amp;quot;)) {&lt;br /&gt;
		if (Editbox != null) {&lt;br /&gt;
			setStyleAttribute(Editbox, {&amp;quot;visibility&amp;quot;:&amp;quot;hidden&amp;quot;});&lt;br /&gt;
			Editbox.readOnly = true;&lt;br /&gt;
			document.getElementById(&amp;quot;wpSave&amp;quot;).disabled = true;&lt;br /&gt;
			document.getElementById(&amp;quot;wpPreview&amp;quot;).disabled = true;&lt;br /&gt;
			document.getElementById(&amp;quot;wpDiff&amp;quot;).disabled = true;&lt;br /&gt;
		}&lt;br /&gt;
		if (Tm_box != null) setStyleAttribute(Tm_box, {&amp;quot;z-index&amp;quot;:&amp;quot;99&amp;quot;, &amp;quot;visibility&amp;quot;:&amp;quot;visible&amp;quot;});&lt;br /&gt;
		act_view = &amp;quot;VM&amp;quot;;&lt;br /&gt;
	} else if (((view == &amp;quot;EB&amp;quot;)  || (view == &amp;quot;&amp;quot;)) &amp;amp;&amp;amp; (act_view == &amp;quot;VM&amp;quot;)) {&lt;br /&gt;
		if (Tm_box != null) setStyleAttribute(Tm_box, {&amp;quot;visibility&amp;quot;:&amp;quot;hidden&amp;quot;, &amp;quot;z-index&amp;quot;:&amp;quot;0&amp;quot;});&lt;br /&gt;
		if (Editbox != null) {&lt;br /&gt;
			if (view == &amp;quot;EB&amp;quot;) {&lt;br /&gt;
				// removes user interface&lt;br /&gt;
				if (Tm_box) Tm_box.parentNode.removeChild(Tm_box);&lt;br /&gt;
				Tm_box = null;&lt;br /&gt;
 &lt;br /&gt;
				if (is_ie) Editbox.removeAttribute(&amp;quot;readOnly&amp;quot;);&lt;br /&gt;
				else Editbox.removeAttribute(&amp;quot;readonly&amp;quot;);&lt;br /&gt;
				document.getElementById(&amp;quot;wpSave&amp;quot;).removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
				document.getElementById(&amp;quot;wpPreview&amp;quot;).removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
				document.getElementById(&amp;quot;wpDiff&amp;quot;).removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			setStyleAttribute(Editbox, {&amp;quot;visibility&amp;quot;:&amp;quot;visible&amp;quot;});&lt;br /&gt;
			Editbox.focus();&lt;br /&gt;
		}&lt;br /&gt;
		act_view = &amp;quot;EB&amp;quot;;&lt;br /&gt;
	} else {&lt;br /&gt;
		log_message(&amp;quot;Internal error: act_view conflicts with view parameter&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
var help_mutex = false;&lt;br /&gt;
function showHelp(e)&lt;br /&gt;
{&lt;br /&gt;
	if (help_mutex == true) return;&lt;br /&gt;
	help_mutex = true;&lt;br /&gt;
	if (!is_ie) e.preventDefault();&lt;br /&gt;
	Act_input = ((is_ie)?e.srcElement:e.target);&lt;br /&gt;
	var text = Act_input.title;&lt;br /&gt;
	/* write help text and resize formular */&lt;br /&gt;
	var Tm_main = document.getElementById(&amp;quot;tm_main_frame&amp;quot;);&lt;br /&gt;
	var Tm_header=document.getElementById(&amp;quot;tm_header&amp;quot;);&lt;br /&gt;
	var Tm_form=document.getElementById(&amp;quot;tm_form&amp;quot;);&lt;br /&gt;
	var rel_scroll_pos = Tm_form.scrollTop / Tm_form.scrollHeight;&lt;br /&gt;
	var Tm_footer=document.getElementById(&amp;quot;tm_footer&amp;quot;);&lt;br /&gt;
	var new_height = Tm_main.parentNode.offsetHeight;&lt;br /&gt;
 &lt;br /&gt;
	document.getElementById(&amp;quot;tm_state&amp;quot;).firstChild.data = text;&lt;br /&gt;
 &lt;br /&gt;
	new_height = new_height - Tm_header.offsetHeight - Tm_footer.offsetHeight;&lt;br /&gt;
	setStyleAttribute(Tm_form, {&amp;quot;height&amp;quot;:(new_height+ &amp;quot;px&amp;quot;)});&lt;br /&gt;
	setStyleAttribute(Tm_form, {&amp;quot;height&amp;quot;:((new_height + (Tm_main.parentNode.offsetHeight - Tm_main.offsetHeight) )+ &amp;quot;px&amp;quot;)});&lt;br /&gt;
	Tm_form.scrollTop = Tm_form.scrollHeight * rel_scroll_pos;&lt;br /&gt;
	help_mutex = false;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function resizeHandler(e)&lt;br /&gt;
{&lt;br /&gt;
	Act_input = ((is_ie)?e.srcElement:e.target);&lt;br /&gt;
	Act_input.tm_old_size = Act_input.size;&lt;br /&gt;
	resizeInputBox(Act_input, 1);&lt;br /&gt;
	if ((is_gecko) &amp;amp;&amp;amp; (Act_input.tm_old_size != Act_input.size)) {&lt;br /&gt;
		var org_value = Act_input.value;&lt;br /&gt;
		var org_start = Act_input.selectionStart;&lt;br /&gt;
		var org_end = Act_input.selectionEnd;&lt;br /&gt;
		Act_input.value = &amp;quot;&amp;quot;;&lt;br /&gt;
		Act_input.value = org_value;&lt;br /&gt;
		if (org_end &amp;gt;= org_start) Act_input.selectionEnd = org_end;&lt;br /&gt;
		Act_input.selectionStart = org_start;&lt;br /&gt;
		if (org_end &amp;lt; org_start) Act_input.selectionEnd = org_end;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function insertUnknown(e)&lt;br /&gt;
{&lt;br /&gt;
	if (!is_ie) e.preventDefault();&lt;br /&gt;
	var text = ((is_ie)?e.srcElement:e.target).title;&lt;br /&gt;
	if ((Act_input != null) &amp;amp;&amp;amp; (Act_input.nodeName.search(/^(input|select|textarea)$/i) ==0) &amp;amp;&amp;amp; (Act_input.type.search(/^checkbox$/i) &amp;lt; 0)) Act_input.value = text;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function selectGroup(e)&lt;br /&gt;
{&lt;br /&gt;
	if (!is_ie) e.preventDefault();&lt;br /&gt;
	try {&lt;br /&gt;
		var text = &amp;quot;&amp;quot; + ((is_ie)?e.srcElement:e.target).id;&lt;br /&gt;
		var position = Math.round(parseFloat(text.replace(/^.+_([0-9\.]+)$/,&amp;quot;$1&amp;quot;)) * ((is_ie)?2:1));&lt;br /&gt;
		var Group_div = document.getElementById(&amp;quot;tm_group_&amp;quot;+position);&lt;br /&gt;
		var Form_div = document.getElementById(&amp;quot;tm_form&amp;quot;);&lt;br /&gt;
		Form_div.scrollTop = Group_div.offsetTop - Group_div.parentNode.offsetTop;&lt;br /&gt;
	} catch(e) {&lt;br /&gt;
		log_message(e.message+&amp;quot;\n&amp;quot;+&amp;quot;Internal error: Can&#039;t select group div with id=\&amp;quot;tm_group_&amp;quot;+position+&amp;quot;\&amp;quot;.&amp;quot;);&lt;br /&gt;
		switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function parse_template_source(source)&lt;br /&gt;
{&lt;br /&gt;
	var x_comment = /&amp;lt;!--.*?--&amp;gt;/g;&lt;br /&gt;
	source = replace_all(source, x_comment, &amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
	/* replace split chars within nowiki segments and nested templates */&lt;br /&gt;
	var x_nowiki_1 = /(&amp;lt;nowiki&amp;gt;.*?)[|](.*?&amp;lt;\/nowiki&amp;gt;)/g;&lt;br /&gt;
	var x_nested = /((?:^|[^{])\{\{[^{}]*?)[|]([^{}]*?\}\}(?:$|[^}]))/g;&lt;br /&gt;
	source = replace_all(source, x_nowiki_1, &amp;quot;$1###TM###$2&amp;quot;);&lt;br /&gt;
	source = replace_all(source, x_nested, &amp;quot;$1###TM###$2&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
	/* replace split chars within wikilinks */&lt;br /&gt;
	var x_wikilinks = /(\[\[[^\]]+)\|([^\]]*)/g;&lt;br /&gt;
	source = replace_all(source, x_wikilinks, &amp;quot;$1###TM###$2&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
	var parameter = source.split(&amp;quot;|&amp;quot;);&lt;br /&gt;
	var Template_given = new Object();&lt;br /&gt;
	for (var i = 0; i &amp;lt; parameter.length; i++) {&lt;br /&gt;
		parameter[i] = replace_all(parameter[i], /###TM###/g, &amp;quot;|&amp;quot;);&lt;br /&gt;
		parameter[i] = trim(parameter[i]);&lt;br /&gt;
		if (i==0) {&lt;br /&gt;
			Template_given[&amp;quot;template_name&amp;quot;] = parameter[i];&lt;br /&gt;
		} else {&lt;br /&gt;
			var parameter_name = &amp;quot;&amp;quot;;&lt;br /&gt;
			var parameter_value = &amp;quot;&amp;quot;;&lt;br /&gt;
			var first_equal_char = parameter[i].search(&amp;quot;=&amp;quot;);&lt;br /&gt;
			if (first_equal_char &amp;lt; 0) {&lt;br /&gt;
				parameter_name = &amp;quot;tm_form_&amp;quot; + i;&lt;br /&gt;
				parameter_value = parameter[i];&lt;br /&gt;
			} else {&lt;br /&gt;
				parameter_name = &amp;quot;tm_form_&amp;quot; + trim(parameter[i].substring(0, first_equal_char));&lt;br /&gt;
				parameter_value = trim(parameter[i].substring(first_equal_char + 1));&lt;br /&gt;
			}&lt;br /&gt;
			if (Template_given[parameter_name] != null) {&lt;br /&gt;
				log_message(&amp;quot;Syntax error: Parameter name \&amp;quot;&amp;quot;+parameter_name+&amp;quot;\&amp;quot; already in use.&amp;quot;);&lt;br /&gt;
				return null;&lt;br /&gt;
			}&lt;br /&gt;
			/* correct format errors */&lt;br /&gt;
 &lt;br /&gt;
			Template_given[parameter_name] = parameter_value;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	Template_given[&amp;quot;source&amp;quot;] = &amp;quot;source code&amp;quot;;&lt;br /&gt;
	return Template_given;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/* ==helper functions===================================================*/&lt;br /&gt;
function replace_all(text, regexp, replacement)&lt;br /&gt;
{&lt;br /&gt;
	var count_tmp = 0;&lt;br /&gt;
	while (text.search(regexp) &amp;gt;= 0) {&lt;br /&gt;
		text = text.replace(regexp, replacement);&lt;br /&gt;
		count_tmp++;&lt;br /&gt;
		if (count_tmp &amp;gt; 1000) {&lt;br /&gt;
			log_message(&amp;quot;replace_all: Internal error - endless loop.&amp;quot;);&lt;br /&gt;
			return null;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return text;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function trim(text)&lt;br /&gt;
{&lt;br /&gt;
	text = &amp;quot;&amp;quot; + text;&lt;br /&gt;
	text = replace_all(text, /^\s+/g, &amp;quot;&amp;quot;);&lt;br /&gt;
	text = replace_all(text, /^(.*?)\s+$/, &amp;quot;$1&amp;quot;);&lt;br /&gt;
	text = replace_all(text, &amp;quot;\n\n&amp;quot;, &amp;quot;\n&amp;quot;);&lt;br /&gt;
	if (text.search(/[^\s]/) &amp;lt; 0) text = &amp;quot;&amp;quot;;&lt;br /&gt;
	return text;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/**&lt;br /&gt;
  Creates a new GUI node.&lt;br /&gt;
 &lt;br /&gt;
 @author [[de:Benutzer:Revvar]]&lt;br /&gt;
 @param nRoot null or reference to the prefered root node object&lt;br /&gt;
 @param nType HTML type string (&amp;quot;div&amp;quot; for example)&lt;br /&gt;
 @param nText null or string with the text for the text child node&lt;br /&gt;
 @param nAttr null or object with attribute attributes, ({style:&amp;quot;...&amp;quot;,width:&amp;quot;100%&amp;quot;} for example)&lt;br /&gt;
 @return the new node object&lt;br /&gt;
*/&lt;br /&gt;
function cNode(nRoot,nType,nText,nAttr)&lt;br /&gt;
{&lt;br /&gt;
	var elem=document.createElement(nType);&lt;br /&gt;
	if (nAttr) for (var aid in nAttr) {&lt;br /&gt;
		if (aid == &amp;quot;style&amp;quot;) {&lt;br /&gt;
			var style_attr = nAttr[aid].split(&amp;quot;;&amp;quot;);&lt;br /&gt;
			var style_obj = new Object();&lt;br /&gt;
			for (var i = 0; i &amp;lt; style_attr.length; i++) {&lt;br /&gt;
				var style_id = style_attr[i].replace(/^\s*([^:]+):.*$/,&amp;quot;$1&amp;quot;);&lt;br /&gt;
				var style_value = style_attr[i].replace(/^\s*[^:]+:\s*([^\s;]+)[\s;]*$/,&amp;quot;$1&amp;quot;);&lt;br /&gt;
				if (style_id.length &amp;gt; 0) style_obj[style_id] = style_value;&lt;br /&gt;
// 				log_message(style_id + &amp;quot;:&amp;quot; + style_value);&lt;br /&gt;
			}&lt;br /&gt;
		  setStyleAttribute(elem, style_obj);&lt;br /&gt;
		} else {&lt;br /&gt;
			if (aid == &amp;quot;class&amp;quot;) elem.className = nAttr[aid];&lt;br /&gt;
			else elem.setAttribute(aid, nAttr[aid]);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	if (nText) elem.appendChild(document.createTextNode(nText));&lt;br /&gt;
	if (nRoot) nRoot.appendChild(elem);&lt;br /&gt;
	return elem;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
function setStyleAttribute(Node, Attribute)&lt;br /&gt;
{&lt;br /&gt;
	if ((Node) &amp;amp;&amp;amp; (Attribute)) {&lt;br /&gt;
		 for (var aid in Attribute) {&lt;br /&gt;
			 Node.style[aid] = Attribute[aid];&lt;br /&gt;
		 }&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function addEventListener(Node, event, callback)&lt;br /&gt;
{&lt;br /&gt;
	if (is_ie) Node.attachEvent(&amp;quot;on&amp;quot;+event, callback);&lt;br /&gt;
	else Node.addEventListener(event, callback, false);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function removeEventListener(Node, event, callback)&lt;br /&gt;
{&lt;br /&gt;
	if (is_ie) Node.detachEvent(&amp;quot;on&amp;quot;+event, callback);&lt;br /&gt;
	else Node.removeEventListener(event, callback, false);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
//XMLHttpRequest wrapper, with timeout support&lt;br /&gt;
function oXmlHttpRequest(data)&lt;br /&gt;
{&lt;br /&gt;
	//preconditions&lt;br /&gt;
	if ((data.onload==null) || (data.onreadystatechange==null)) throw(&amp;quot;oXmlHttpRequest-precondition&amp;quot;);&lt;br /&gt;
	var orgHandler={id:(iRequestID++),onload:data.onload,onreadystatechange:data.onreadystatechange,onerror:data.onerror,timeout:null,valid:true};&lt;br /&gt;
 &lt;br /&gt;
	data.onload=function (rD) {&lt;br /&gt;
		if (orgHandler.timeout) clearTimeout(orgHandler.timeout);&lt;br /&gt;
		if (bBreak) return; //cancel by user&lt;br /&gt;
		if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
		orgHandler.onload(rD);&lt;br /&gt;
		orgHandler.valid=false;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	data.onreadystatechange=function (rD) {&lt;br /&gt;
		if (orgHandler.timeout) clearTimeout(orgHandler.timeout);&lt;br /&gt;
		if (bBreak) return; //cancel by user&lt;br /&gt;
		if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
		orgHandler.onreadystatechange(rD);&lt;br /&gt;
		orgHandler.timeout=setTimeout(fTimeout,HTTPTIMEOUT);&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	data.onerror=function (rD)&lt;br /&gt;
	{&lt;br /&gt;
		if (orgHandler.timeout) clearTimeout(orgHandler.timeout);&lt;br /&gt;
		if (bBreak) return; //cancel by user&lt;br /&gt;
		if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
		orgHandler.valid=false;//discard request&lt;br /&gt;
		if (orgHandler.onerror) orgHandler.onerror(rD);&lt;br /&gt;
		log_message(&amp;quot;HTTP-Error &amp;quot;+rD.status+&amp;quot;:&amp;quot;+rD.statusText);&lt;br /&gt;
		fRetry(&amp;quot;Error: &amp;quot;+rD.status+&amp;quot;.&amp;quot;);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function fRetry(text)&lt;br /&gt;
	{&lt;br /&gt;
		if (data.silent) return;&lt;br /&gt;
		var bRetry=confirm(text+&amp;quot; &amp;quot;+locals[&amp;quot;sys_question_repeat_http_request&amp;quot;]);&lt;br /&gt;
		if (bRetry==false) {&lt;br /&gt;
			bBreak=true;&lt;br /&gt;
			if (data.on_cancel) data.on_cancel();&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		//retry request&lt;br /&gt;
		setTimeout(function() {oXmlHttpRequest({method:data.method,url:data.url,headers:data.headers,data:data.data,onload:orgHandler.onload,onerror:orgHandler.onerror,onreadystatechange:orgHandler.onreadystatechange})},10);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function fTimeout()&lt;br /&gt;
	{&lt;br /&gt;
		if (orgHandler.timeout) clearTimeout(orgHandler.timeout);&lt;br /&gt;
		if (bBreak) return; //cancel by user&lt;br /&gt;
		if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
		var bWait=false;&lt;br /&gt;
		if (!data.silent) bWait=confirm(locals[&amp;quot;sys_question_wait_for_http_response&amp;quot;].replace(&amp;quot;$1&amp;quot;, Math.round(HTTPTIMEOUT/1000)));&lt;br /&gt;
		if (bWait==false) {&lt;br /&gt;
			orgHandler.valid=false;//discard request&lt;br /&gt;
			fRetry(&amp;quot;Timeout: &amp;quot;+data.url+&amp;quot;\n&amp;quot;);&lt;br /&gt;
		} else {&lt;br /&gt;
			if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
			orgHandler.timeout=setTimeout(fTimeout,HTTPTIMEOUT);&lt;br /&gt;
		}&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	orgHandler.timeout=setTimeout(fTimeout,HTTPTIMEOUT);&lt;br /&gt;
	GM_xmlhttpRequest(data);&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function GM_xmlhttpRequest(req)&lt;br /&gt;
{&lt;br /&gt;
	if (is_gecko &amp;amp;&amp;amp; (url.search(&amp;quot;file://&amp;quot;) == 0)) {&lt;br /&gt;
		/* Debugging with a local copy */&lt;br /&gt;
		try {&lt;br /&gt;
			netscape.security.PrivilegeManager.enablePrivilege(&amp;quot;UniversalBrowserRead&amp;quot;);&lt;br /&gt;
		} catch (e) {&lt;br /&gt;
			alert(&amp;quot;Internal error: Permission UniversalBrowserRead denied.&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	var xmlHttp = sajax_init_object();// gets the XMLHttpRequest object (depends on ajax.js)&lt;br /&gt;
 &lt;br /&gt;
	xmlHttp.open(req.method, req.url, true);&lt;br /&gt;
	xmlHttp.onreadystatechange = function () {&lt;br /&gt;
		if (xmlHttp.readyState == 4) {&lt;br /&gt;
			req.onload(xmlHttp);&lt;br /&gt;
		} else req.onreadystatechange;&lt;br /&gt;
	};&lt;br /&gt;
	for (var name in req.headers) {&lt;br /&gt;
		xmlHttp.setRequestHeader(name, req.headers[name]);&lt;br /&gt;
	}&lt;br /&gt;
	xmlHttp.send(req.data);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
var resize_mutex = false;&lt;br /&gt;
 function resizeInputBox(oInputBox, extra_spaces) {&lt;br /&gt;
	if (resize_mutex == true) return;&lt;br /&gt;
	resize_mutex = true;&lt;br /&gt;
	if (!((oInputBox.nodeName) &amp;amp;&amp;amp; (oInputBox.nodeName.search(/^input$/i) == 0) &amp;amp;&amp;amp; (oInputBox.type) &amp;amp;&amp;amp; (oInputBox.type.search(/^text$/i) == 0))) {&lt;br /&gt;
		alert(&amp;quot;Internal error: call of CInputBoxResizer.opResize with an unsupported node type: &amp;quot; + oInputBox);&lt;br /&gt;
		resize_mutex = false;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* first call for this node ? */&lt;br /&gt;
	if (!(oInputBox.tm_org_size)) {&lt;br /&gt;
		oInputBox.tm_org_size = oInputBox.size; // save orginal size&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	if (oInputBox.tm_org_size &amp;gt;= oInputBox.value.length)  {&lt;br /&gt;
		resize_mutex = false;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	oInputBox.size = oInputBox.value.length + extra_spaces;&lt;br /&gt;
	var right_pos = oInputBox.offsetWidth;&lt;br /&gt;
	var tmp_str = &amp;quot;&amp;quot;;&lt;br /&gt;
	var node = oInputBox;&lt;br /&gt;
	var table_node = null;&lt;br /&gt;
	do {&lt;br /&gt;
		if (node.className.search(&amp;quot;tm_table&amp;quot;) &amp;gt;= 0) table_node = node;&lt;br /&gt;
		else {&lt;br /&gt;
			right_pos += node.offsetLeft;&lt;br /&gt;
			tmp_str += node.offsetLeft + &amp;quot;px +&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
		node = node.parentNode;&lt;br /&gt;
	} while (node.className.search(&amp;quot;tm_group&amp;quot;) &amp;lt; 0);&lt;br /&gt;
	if ((right_pos + 8) &amp;gt; node.offsetWidth) {&lt;br /&gt;
		if (is_ie) {&lt;br /&gt;
			while ((right_pos + 8) &amp;gt; node.offsetWidth) {&lt;br /&gt;
				var old_width = oInputBox.offsetWidth;&lt;br /&gt;
				oInputBox.size--;&lt;br /&gt;
				right_pos -= old_width - oInputBox.offsetWidth;&lt;br /&gt;
			}&lt;br /&gt;
		} else {&lt;br /&gt;
			oInputBox.size = oInputBox.tm_org_size;&lt;br /&gt;
			var child = node.firstChild;&lt;br /&gt;
			if (table_node != null) table_node.className = &amp;quot;tm_table tm_table_max&amp;quot;; else alert(&amp;quot;internal error: table not found&amp;quot;);&lt;br /&gt;
			oInputBox.className = &amp;quot;tm_input tm_input_max&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
		removeEventListener(oInputBox, &amp;quot;keyup&amp;quot;, resizeHandler);&lt;br /&gt;
	}&lt;br /&gt;
	resize_mutex = false;&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
} // tm_init&lt;br /&gt;
 &lt;br /&gt;
/* XXX: public for the xsl include hack */&lt;br /&gt;
function parseXML(text)&lt;br /&gt;
{&lt;br /&gt;
	var dom = null;&lt;br /&gt;
	if (window.ActiveXObject)&lt;br /&gt;
	{&lt;br /&gt;
			dom=new ActiveXObject(&amp;quot;Microsoft.XMLDOM&amp;quot;);&lt;br /&gt;
			dom.async=&amp;quot;false&amp;quot;;&lt;br /&gt;
			dom.loadXML(text);&lt;br /&gt;
			return dom;&lt;br /&gt;
	} else {&lt;br /&gt;
		var parser=new DOMParser();&lt;br /&gt;
		dom=parser.parseFromString(text,&amp;quot;text/xml&amp;quot;);&lt;br /&gt;
		var error=dom.getElementsByTagName(&amp;quot;parsererror&amp;quot;);&lt;br /&gt;
		if (!error[0]) {&lt;br /&gt;
			return dom;&lt;br /&gt;
		} else {&lt;br /&gt;
			var sError=error[0].firstChild.nodeValue;&lt;br /&gt;
			log_message(sError);&lt;br /&gt;
			var aError=sError.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
			if (aError[2]) {&lt;br /&gt;
				aLocation=aError[2].match(/[0-9]+/g);&lt;br /&gt;
				if (aLocation[0]) {&lt;br /&gt;
					var aHtmlText=text.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
					log_message(&amp;quot;error line:&amp;quot;+aHtmlText[aLocation[0]-1]);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
			} else log_message(&amp;quot;no error position&amp;quot;);&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function log_message(msg)&lt;br /&gt;
{&lt;br /&gt;
	alert(msg);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
hookEvent(&amp;quot;load&amp;quot;, tm_init);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
//## File: tm_w2t_infobox_schienenfahrzeug.js #################&lt;br /&gt;
 &lt;br /&gt;
/**&lt;br /&gt;
* Wiki2Template-Plugin des Vorlagen-Meister fuer die Vorlage &amp;quot;Infobox Schienenfahrzeug&amp;quot;, Version: 0.1beta, Date: 2007-02-04&lt;br /&gt;
* Copyright (C) 2007 [[de:Benutzer:Revvar]] &amp;lt;revvar@gmx.de&amp;gt;&lt;br /&gt;
* Released under the GPL license version 2&lt;br /&gt;
* http://www.gnu.org/copyleft/gpl.html&lt;br /&gt;
*&lt;br /&gt;
* This program is free software; you can redistribute it and/or modify&lt;br /&gt;
* it under the terms of the GNU General Public License version 2 as&lt;br /&gt;
* published by the Free Software Foundation.&lt;br /&gt;
*&lt;br /&gt;
* This program is distributed in the hope that it will be useful,&lt;br /&gt;
* but WITHOUT ANY WARRANTY; without even the implied warranty&lt;br /&gt;
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE.&lt;br /&gt;
* See the GNU General Public License for more details.&lt;br /&gt;
*/&lt;br /&gt;
 &lt;br /&gt;
function TM_P_Infobox_Schienenfahrzeug()&lt;br /&gt;
{&lt;br /&gt;
	var self = this;&lt;br /&gt;
	TM_P_Wiki2Template.call(this);&lt;br /&gt;
 &lt;br /&gt;
	var name = &amp;quot;Infobox Schienenfahrzeug&amp;quot;;&lt;br /&gt;
	this.opGetName = function() {return name;};&lt;br /&gt;
 &lt;br /&gt;
	var template = &amp;quot;Infobox Schienenfahrzeug&amp;quot;;&lt;br /&gt;
	this.opGetTemplate = function() {return template;};&lt;br /&gt;
 &lt;br /&gt;
	var super_opTransform = this.opTransform;&lt;br /&gt;
	this.opTransform = function(wiki_text) {&lt;br /&gt;
		wiki_text = super_opTransform(wiki_text);&lt;br /&gt;
		var Template = new Object();&lt;br /&gt;
		Template[&amp;quot;template_name&amp;quot;] = template;&lt;br /&gt;
		Template[&amp;quot;source&amp;quot;] = &amp;quot;plug-in&amp;quot;;&lt;br /&gt;
		var line = wiki_text.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
		for (var i = 0; i &amp;lt; line.length; i++) if ((line[i].search(/\s*(\|-|\|\}|\{\|)/) != 0) &amp;amp;&amp;amp; (line[i].search(/\|\|/) &amp;gt; 0)) {&lt;br /&gt;
			var entry = line[i].split(&amp;quot;||&amp;quot;);&lt;br /&gt;
			if (entry.length != 2) {alert(&amp;quot;TM_P_Infobox_Schienenfahrzeug: Momentan wird nur ein ||-Trenner pro Zeile unterstützt.&amp;quot;);return null;}&lt;br /&gt;
			var x_wikilink = /\[\[[^|]+\|([^\]]+)\]\]/;&lt;br /&gt;
			if (entry[0].search(x_wikilink) &amp;gt;= 0) entry[0] = entry[0].replace(x_wikilink, &amp;quot;$1&amp;quot;);&lt;br /&gt;
			entry[0] = entry[0].replace(/^\s*\|\s*/g, &amp;quot;&amp;quot;).replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;).replace(/[^a-zA-ZäöüÄÖÜß0-9_]/g,&amp;quot;&amp;quot;);&lt;br /&gt;
			entry[1] = entry[1].replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			if (entry[1].charAt(0) == &amp;quot;|&amp;quot;) entry[1] = entry[1].substring(1);&lt;br /&gt;
			if (entry[0].search(/^Indienststellung$/i) == 0) entry[0] = &amp;quot;Baujahre&amp;quot;;&lt;br /&gt;
			if ((entry[1].search(/^\s*k\s*\.\s*A\s*(\.){0,1}\s*$/) &amp;lt; 0) &amp;amp;&amp;amp; (entry[1].search(/^\s*-+\s*/) &amp;lt; 0)) {&lt;br /&gt;
				Template[&amp;quot;tm_form_&amp;quot;+entry[0]] = entry[1];&lt;br /&gt;
			}&lt;br /&gt;
		} else if (line[i].search(/^\s*!.*((color:|background)[^\|]*){2,2}\|.*/) == 0) {&lt;br /&gt;
			var base_color_name = {&amp;quot;aqua&amp;quot;:&amp;quot;00ffff&amp;quot;, &amp;quot;black&amp;quot;:&amp;quot;000000&amp;quot;, &amp;quot;blue&amp;quot;:&amp;quot;0000ff&amp;quot;, &amp;quot;fuchsia&amp;quot;:&amp;quot;ff00ff&amp;quot;, &amp;quot;gray&amp;quot;:&amp;quot;808080&amp;quot;, &amp;quot;green&amp;quot;:&amp;quot;008000&amp;quot;, &amp;quot;lime&amp;quot;:&amp;quot;00ff00&amp;quot;, &amp;quot;maroon&amp;quot;:&amp;quot;800000&amp;quot;, &amp;quot;navy&amp;quot;:&amp;quot;000080&amp;quot;, &amp;quot;olive&amp;quot;:&amp;quot;808000&amp;quot;, &amp;quot;purple&amp;quot;:&amp;quot;800080&amp;quot;, &amp;quot;red&amp;quot;:&amp;quot;ff0000&amp;quot;, &amp;quot;silver&amp;quot;:&amp;quot;c0c0c0&amp;quot;, &amp;quot;teal&amp;quot;:&amp;quot;008080&amp;quot;, &amp;quot;white&amp;quot;:&amp;quot;ffffff&amp;quot;, &amp;quot;yellow&amp;quot;:&amp;quot;ffff00&amp;quot;};&lt;br /&gt;
			// Baureihe, Farbe1 und Farbe2&lt;br /&gt;
			var baureihe = line[i].substring(line[i].search(/\|/) + 1).replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			var farbe2 = line[i].replace(/^.*[^a-zA-Z]color\s*:\s*(#[a-fA-F0-9]{6,6}|[a-zA-Z]+).*/,&amp;quot;$1&amp;quot;).replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			var farbe1 = line[i].replace(/^.*[^a-zA-Z]background(-color){0,1}\s*:\s*(#[a-fA-F0-9]{6,6}|[a-zA-Z]+).*/,&amp;quot;$2&amp;quot;).replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			if (farbe1.charAt(0) == &amp;quot;#&amp;quot;) farbe1 = farbe1.substring(1);&lt;br /&gt;
			else if (base_color_name[farbe1.toLowerCase()]) farbe1 = base_color_name[farbe1.toLowerCase()]; else farbe1 = null;&lt;br /&gt;
			if (farbe2.charAt(0) == &amp;quot;#&amp;quot;) farbe2 = farbe2.substring(1);&lt;br /&gt;
			else if (base_color_name[farbe2.toLowerCase()]) farbe2 = base_color_name[farbe2.toLowerCase()]; else farbe2 = null;&lt;br /&gt;
			Template[&amp;quot;tm_form_Baureihe&amp;quot;] = baureihe;&lt;br /&gt;
			if (farbe1 != null) Template[&amp;quot;tm_form_Farbe1&amp;quot;] = farbe1;&lt;br /&gt;
			if (farbe2 != null) Template[&amp;quot;tm_form_Farbe2&amp;quot;] = farbe2;&lt;br /&gt;
		} else if (line[i].search(/^\s*(!|\|[^\-]).*\[\[(Bild|Image):[^\]]+\]\]/) == 0) {&lt;br /&gt;
			var bild = line[i].replace(/^\s*(!|\|).*\[\[(Bild|Image):([^\]]+)\]\].*/,&amp;quot;$3&amp;quot;);&lt;br /&gt;
			bild = bild.split(&amp;quot;|&amp;quot;);&lt;br /&gt;
			Template[&amp;quot;tm_form_Abbildung&amp;quot;] = bild[0];&lt;br /&gt;
			for (var k = 1; k &amp;lt; bild.length; k++) if (bild[k].search(&amp;quot;[0-9]px&amp;quot;) &amp;lt; 0) {&lt;br /&gt;
				Template[&amp;quot;tm_form_Name&amp;quot;] = bild[k].replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return Template;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
TM_P_Infobox_Schienenfahrzeug.prototype=new TM_P_Wiki2Template();&lt;br /&gt;
 &lt;br /&gt;
TM_PluginList.push(new TM_P_Infobox_Schienenfahrzeug()); // register plugin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
//test for autostart&lt;br /&gt;
//When the page loads,  tm starts automatically.&lt;br /&gt;
//If &amp;quot;url&amp;quot; and &amp;quot;text&amp;quot; regexp conditions are met, tm finds template &amp;quot;tl&amp;quot; and show it&lt;br /&gt;
 &lt;br /&gt;
var tm_autostart = [&lt;br /&gt;
	{&amp;quot;tl&amp;quot;: &amp;quot;Népesség&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;Sablon:Népesség\/&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;&amp;quot;}&lt;br /&gt;
];&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Gadget-sablonmester.js&amp;diff=1753</id>
		<title>MediaWiki:Gadget-sablonmester.js</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Gadget-sablonmester.js&amp;diff=1753"/>
		<updated>2012-07-21T09:47:40Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;//## File: tm_locals_de.js ####################################&lt;br /&gt;
 &lt;br /&gt;
/*&lt;br /&gt;
* Lokalisierung &amp;quot;Deutsch&amp;quot; des Vorlagen-Meister&lt;br /&gt;
* Copyright (C) 2007-2009 [[:de:Benutzer:Revvar]] &amp;lt;revvar@gmx.de&amp;gt;&lt;br /&gt;
* Released under the GPL license version 2&lt;br /&gt;
* http://www.gnu.org/copyleft/gpl.html&lt;br /&gt;
*&lt;br /&gt;
* This program is free software; you can redistribute it and/or modify&lt;br /&gt;
* it under the terms of the GNU General Public License version 2 as&lt;br /&gt;
* published by the Free Software Foundation.&lt;br /&gt;
*&lt;br /&gt;
* This program is distributed in the hope that it will be useful,&lt;br /&gt;
* but WITHOUT ANY WARRANTY; without even the implied warranty&lt;br /&gt;
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE.&lt;br /&gt;
* See the GNU General Public License for more details.&lt;br /&gt;
*/&lt;br /&gt;
 &lt;br /&gt;
function tm_get_locals()&lt;br /&gt;
{&lt;br /&gt;
	var locals = new Object();&lt;br /&gt;
        locals[&amp;quot;ButtonText&amp;quot;] = &amp;quot;SM&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;User&amp;quot;] = &amp;quot;User&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;Template&amp;quot;] = &amp;quot;Sablon&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;Submit&amp;quot;] = &amp;quot;Elküld&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;Cancel&amp;quot;] = &amp;quot;Mégse&amp;quot;;&lt;br /&gt;
	locals[&amp;quot;CreateXML&amp;quot;] = &amp;quot;XML-Leírás generálása...&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;Progress&amp;quot;] = &amp;quot;Betöltés folyamatban&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_load_error&amp;quot;] = &amp;quot;A(z) \&amp;quot;$1\&amp;quot; sablont nem lehet betölteni.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_no_usage_section&amp;quot;] = &amp;quot;A(z) \&amp;quot;$1\&amp;quot; sablonhoz nem található XML-leírás.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_no_such_template&amp;quot;] = &amp;quot;Nem található \&amp;quot;$1\&amp;quot; nevű sablon.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_no_help&amp;quot;] = &amp;quot;(Nincs rendelkezésre álló segítség.)&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_invalid_condition&amp;quot;] = &amp;quot;Az XML-leírás egy érvénytelen feltétel-paramétert tartalmaz: \&amp;quot;$1\&amp;quot;.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_invalid_value&amp;quot;] = &amp;quot;Nem megfelelő érték&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_enter_value&amp;quot;] = &amp;quot;Adj meg egy értéket!&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_enter_valid_value&amp;quot;] = &amp;quot;Adj meg egy megfelelő értéket!&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_please_correct_errors&amp;quot;] = &amp;quot;Hiba történt. Javítsd ki a pirossal jelzett mezőket.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_question_repeat_http_request&amp;quot;] = &amp;quot;Szeretnéd a kérést megismételni=[OK] vagy [félbeszakítani] ?&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_question_wait_for_http_response&amp;quot;] = &amp;quot;A szerver már több, mint $1 másodperce foglalt. Szeretnél még várni=[Ok]?&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_unknown_parameter&amp;quot;] = &amp;quot;A sablonszöveg a következő ismeretlen paramétert tartalmazza: \&amp;quot;$1\&amp;quot;. Okok: elütés, pl. kis- és nagybetűk nem lettek figyelembe véve, vagy a sablon leírása hiányos.&amp;quot;;&lt;br /&gt;
	locals[&amp;quot;sys_xml_generated_summary&amp;quot;] = &amp;quot;Automatikusan létrehozva a [[Wikipédia:Sablonmester|Sablonmester]] segítségével&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;w2t plugin selection&amp;quot;] = &amp;quot;Válassz egy sablont, amellyel a kijelölt szöveget szeretnéd kitölteni:&amp;quot;;&lt;br /&gt;
	return locals;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
//## File: tm_formular.xsl.js #################################&lt;br /&gt;
 &lt;br /&gt;
function get_xsl_dom() {&lt;br /&gt;
return parseXML(&lt;br /&gt;
&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;\n&#039;+&lt;br /&gt;
&#039;&amp;lt;!--\n&#039;+&lt;br /&gt;
&#039;* Copyright (C) 2007-2009 [[:de:Benutzer:Revvar]] &amp;lt;revvar@gmx.de&amp;gt;\n&#039;+&lt;br /&gt;
&#039;* Released under the GPL license\n&#039;+&lt;br /&gt;
&#039;* http://www.gnu.org/copyleft/gpl.html\n&#039;+&lt;br /&gt;
&#039;--&amp;gt;\n&#039;+&lt;br /&gt;
&#039;&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; &amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:output method = &amp;quot;html&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_submit&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_cancel&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_createxml&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_template&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_nohelp&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_version&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:template match=&amp;quot;/TemplateUsage&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;!-- create basic gui --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id=&amp;quot;tm_main_frame&amp;quot; class=&amp;quot;tm_main_frame&amp;quot; tm_output=&amp;quot;{@output}&amp;quot; tm_max_value_indentation=&amp;quot;{@max_value_indentation}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id=&amp;quot;tm_header&amp;quot; class=&amp;quot;tm_header&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;span class=&amp;quot;tm_template&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_template&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_template&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_template&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;: &amp;lt;/span&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;tm_template&amp;quot; class=&amp;quot;tm_template&amp;quot; size=&amp;quot;32&amp;quot; disabled=&amp;quot;true&amp;quot;/&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;span class=&amp;quot;tm_version&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_version&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_version&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_version&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/span&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id=&amp;quot;tm_group_selector&amp;quot; class=&amp;quot;tm_group_selector&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:apply-templates mode=&amp;quot;group_selector&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id= &amp;quot;tm_form&amp;quot; class=&amp;quot;tm_form&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;!-- create formular --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;form&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:for-each select=&amp;quot;Group&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;div id=&amp;quot;tm_group_{position()}&amp;quot; class=&amp;quot;tm_group&amp;quot; tabindex=&amp;quot;{4000+position()}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;xsl:when test=&amp;quot;@showempty=\&#039;false\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;xsl:attribute name=&amp;quot;tm_showempty&amp;quot;&amp;gt;false&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;xsl:attribute name=&amp;quot;tm_showempty&amp;quot;&amp;gt;true&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:if test=&amp;quot;@name&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;h3 class=&amp;quot;tm_group_heading&amp;quot;  tm_name=&amp;quot;tm_formelem&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/h3&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:for-each select=&amp;quot;Parameter&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;div class=&amp;quot;tm_formelem&amp;quot;&amp;gt;&amp;lt;table class=&amp;quot;tm_table&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;xsl:if test=&amp;quot;@length=\&#039;max\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_table tm_table_max&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;count(Value)=1&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;input type=&amp;quot;checkbox&amp;quot; tm_name=&amp;quot;tm_formelem&amp;quot; value=&amp;quot;{Value}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:call-template name=&amp;quot;SetBasicAttributes&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/input&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;span&amp;gt;&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:when test=&amp;quot;@label&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:value-of select=&amp;quot;@label&amp;quot;/&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/xsl:choose&amp;gt;&amp;lt;/span&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;tr class=&amp;quot;tm_tr&amp;quot;&amp;gt;&amp;lt;td class=&amp;quot;tm_td_label&amp;quot;&amp;gt;&amp;lt;span&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:when test=&amp;quot;@null=\&#039;false\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_param&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_opt_param&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:when test=&amp;quot;@label&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:value-of select=&amp;quot;@label&amp;quot;/&amp;gt;:\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;:\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;tm_td_content&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;Value&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;select tm_name=&amp;quot;tm_formelem&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:call-template name=&amp;quot;SetBasicAttributes&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:if test=&amp;quot;not (@null=\&#039;false\&#039;)&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;option /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:for-each select=&amp;quot;Value&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;option value=&amp;quot;{text()}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;tm_form_&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;_&amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@label&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:value-of select=&amp;quot;@label&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;												&amp;lt;xsl:value-of select=&amp;quot;text()&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:if test=&amp;quot;position()=0&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;												&amp;lt;xsl:attribute name=&amp;quot;selected&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;/option&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:for-each&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/select&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:when test=&amp;quot;@height&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;textarea tm_name=&amp;quot;tm_formelem&amp;quot; rows=&amp;quot;{@height}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:call-template name=&amp;quot;SetBasicAttributes&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@length=\&#039;max\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_textarea tm_textarea_max&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_textarea tm_textarea_auto&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;cols&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@length&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;												&amp;lt;xsl:value-of select=&amp;quot;@length&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:otherwise&amp;gt;20&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:value-of select=&amp;quot;Default&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/textarea&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;input type=&amp;quot;text&amp;quot; tm_name=&amp;quot;tm_formelem&amp;quot; value=&amp;quot;{Default}&amp;quot; class=&amp;quot;tm_input&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:call-template name=&amp;quot;SetBasicAttributes&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@length=\&#039;max\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_input tm_input_max&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;size&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@length&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;												&amp;lt;xsl:value-of select=&amp;quot;@length&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:otherwise&amp;gt;20&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/input&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/table&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;/xsl:for-each&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:for-each&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/form&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;!-- end formular creation --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt; &amp;lt;!-- formular --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id=&amp;quot;tm_footer&amp;quot; class=&amp;quot;tm_footer&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				 &amp;lt;div id=&amp;quot;tm_state&amp;quot; class=&amp;quot;tm_state&amp;quot;&amp;gt;:-)&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				 &amp;lt;button id=&amp;quot;tm_submit&amp;quot; class=&amp;quot;tm_button&amp;quot; tabindex=&amp;quot;5000&amp;quot; disabled=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_submit&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_submit&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_submit&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/button&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				 &amp;lt;button id=&amp;quot;tm_cancel&amp;quot; class=&amp;quot;tm_button&amp;quot; tabindex=&amp;quot;5001&amp;quot; disabled=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_cancel&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_cancel&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_cancel&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/button&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				 &amp;lt;button id=&amp;quot;tm_createxml&amp;quot; class=&amp;quot;tm_button&amp;quot; tabindex=&amp;quot;5002&amp;quot; disabled=&amp;quot;true&amp;quot; style=&amp;quot;visibility:hidden&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_createxml&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_createxml&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_createxml&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/button&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt; &amp;lt;!-- main frame --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;/xsl:template&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:template match=&amp;quot;Group&amp;quot; mode=&amp;quot;group_selector&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:if test=&amp;quot;@name&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;a id=&amp;quot;tm_group_select_{position() div 2}&amp;quot; class=&amp;quot;tm_button tm_selector tm_group_selector&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;/xsl:template&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:template name=&amp;quot;SetBasicAttributes&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;tm_form_&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;title&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:when test=&amp;quot;Help&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:value-of select=&amp;quot;Help&amp;quot;/&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:otherwise&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_nohelp&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_nohelp&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_nohelp&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:choose&amp;gt;	&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;tm_condition&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Condition&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;tabindex&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;20+count(preceding::*)&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:when test=&amp;quot;@null=\&#039;false\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:attribute name=&amp;quot;tm_null&amp;quot;&amp;gt;false&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:attribute name=&amp;quot;tm_null&amp;quot;&amp;gt;true&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:when test=&amp;quot;@predefined=\&#039;true\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:attribute name=&amp;quot;tm_predefined&amp;quot;&amp;gt;true&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:attribute name=&amp;quot;tm_predefined&amp;quot;&amp;gt;false&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;tm_error&amp;quot;&amp;gt;false&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;/xsl:template&amp;gt;\n&#039;+&lt;br /&gt;
&#039;&amp;lt;/xsl:stylesheet&amp;gt;&#039;&lt;br /&gt;
);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
//## File: vorlagenmeister.js #################################&lt;br /&gt;
 &lt;br /&gt;
/*&lt;br /&gt;
* Vorlagen-Meister, Version: 0.4.3beta, Date: 2009-10-17&lt;br /&gt;
* Copyright (C) 2007-2009 [[de:Benutzer:Revvar]] &amp;lt;revvar@gmx.de&amp;gt;&lt;br /&gt;
* Released under the GPL license version 2&lt;br /&gt;
* http://www.gnu.org/copyleft/gpl.html&lt;br /&gt;
*&lt;br /&gt;
* This program is free software; you can redistribute it and/or modify&lt;br /&gt;
* it under the terms of the GNU General Public License version 2 as&lt;br /&gt;
* published by the Free Software Foundation.&lt;br /&gt;
*&lt;br /&gt;
* This program is distributed in the hope that it will be useful,&lt;br /&gt;
* but WITHOUT ANY WARRANTY; without even the implied warranty&lt;br /&gt;
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE.&lt;br /&gt;
* See the GNU General Public License for more details.&lt;br /&gt;
*/&lt;br /&gt;
 &lt;br /&gt;
/* Plugin objects */&lt;br /&gt;
var TM_PluginList = new Array(); //&amp;lt; list with the plugins&lt;br /&gt;
 &lt;br /&gt;
/**&lt;br /&gt;
 Abstract PlugIn objects, to announce a plugin to the TemplateMaster&lt;br /&gt;
*/&lt;br /&gt;
function TM_Plugin()&lt;br /&gt;
{&lt;br /&gt;
	this.opGetName = null; //&amp;lt; returns plugin name for the user as String&lt;br /&gt;
	this.opGetType = null; //&amp;lt; returns plugin type as String&lt;br /&gt;
	this.opGetTemplate = null;  //&amp;lt; returns the template name the PlugIn is written for as String&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/**&lt;br /&gt;
 Abstract object for a Wiki2Template plugin.&lt;br /&gt;
*/&lt;br /&gt;
function TM_P_Wiki2Template()&lt;br /&gt;
{&lt;br /&gt;
	var self=this;&lt;br /&gt;
	TM_Plugin.call(this);&lt;br /&gt;
 &lt;br /&gt;
	var type = &amp;quot;Wiki2Template&amp;quot;;&lt;br /&gt;
	this.opGetType = function() {return type;};&lt;br /&gt;
 &lt;br /&gt;
	this.opTransform = function(wiki_text) {&lt;br /&gt;
		if (!((wiki_text) &amp;amp;&amp;amp; (typeof(wiki_text) == &amp;quot;string&amp;quot;) &amp;amp;&amp;amp; (wiki_text.length&amp;gt;0))) throw(&amp;quot;(TMP_Wiki2Template:contructor) Error: Invalid arguments.&amp;quot;);&lt;br /&gt;
		return wiki_text;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
TM_P_Wiki2Template.prototype=new TM_Plugin();&lt;br /&gt;
 &lt;br /&gt;
/*END: Plugin objects */&lt;br /&gt;
 &lt;br /&gt;
function tm_init() {&lt;br /&gt;
	// bug: Doesn&#039;t works with Webkit&lt;br /&gt;
	if (is_safari || is_khtml) return;&lt;br /&gt;
	/* check if edit page, otherwise exit*/&lt;br /&gt;
	var url=document.location.toString();&lt;br /&gt;
	var Textbox = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
	if (url.search(/action=(edit|submit)/g) &amp;lt; 0) return;&lt;br /&gt;
	if (Textbox == null) return;&lt;br /&gt;
	if (document.getElementById(&amp;quot;wpSave&amp;quot;) == null) return;&lt;br /&gt;
 &lt;br /&gt;
	// check if editing xml page from this tool&lt;br /&gt;
	if (url.search(/\/XML&amp;amp;tm_xml_content=/g) &amp;gt; 0) {&lt;br /&gt;
		var tm_xml_content = decodeURIComponent(url.replace(/^.*\&amp;amp;tm_xml_content=(.*)$/g, &amp;quot;$1&amp;quot;));&lt;br /&gt;
		Textbox.value = tm_xml_content;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	  // oHTTPRequest  globals&lt;br /&gt;
	var HTTPTIMEOUT=30000;&lt;br /&gt;
	var iRequestID=0;&lt;br /&gt;
	var bBreak=false;&lt;br /&gt;
 &lt;br /&gt;
	/*if ( typeof $.wikiEditor == &amp;quot;undefined&amp;quot; ) {&lt;br /&gt;
		var toolbar = document.getElementById(&amp;quot;toolbar&amp;quot;);&lt;br /&gt;
		if (toolbar == null) {&lt;br /&gt;
			var toolbar = cNode(null,&amp;quot;div&amp;quot;,null, null);&lt;br /&gt;
			Textbox.parentNode.insertBefore(toolbar, Textbox);&lt;br /&gt;
		}&lt;br /&gt;
	}else{*/&lt;br /&gt;
		var toolbarParent = document.getElementById(&amp;quot;wikiEditor-ui-toolbar&amp;quot;);&lt;br /&gt;
		var toolbar = cNode(null, &amp;quot;div&amp;quot;, null, {&amp;quot;id&amp;quot;:&amp;quot;tm_tab&amp;quot;,&amp;quot;class&amp;quot;:&amp;quot;group&amp;quot;});&lt;br /&gt;
		toolbarParent.firstChild.appendChild(toolbar);&lt;br /&gt;
	//}&lt;br /&gt;
 &lt;br /&gt;
	var locals = null;&lt;br /&gt;
	try {&lt;br /&gt;
		locals = tm_get_locals();&lt;br /&gt;
	} catch(e) {&lt;br /&gt;
		log_message(e.message);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	// globals&lt;br /&gt;
	var VERSION=&amp;quot;0.4.2 beta&amp;quot;;&lt;br /&gt;
	var State = null;&lt;br /&gt;
	var Template = new Object();&lt;br /&gt;
	var Tm_box = null;&lt;br /&gt;
	var act_view = &amp;quot;EB&amp;quot;;&lt;br /&gt;
	var is_khtml = navigator.vendor == &#039;KDE&#039; || ( document.childNodes &amp;amp;&amp;amp; !document.all &amp;amp;&amp;amp; !navigator.taintEnabled );&lt;br /&gt;
	var is_ie = !(is_gecko || is_opera || is_safari || is_khtml);&lt;br /&gt;
	var Act_input = null;&lt;br /&gt;
	var is_xml_generated = false;&lt;br /&gt;
	var generated_xml = &#039;&#039;;&lt;br /&gt;
	var max_value_indentation = 32;&lt;br /&gt;
 &lt;br /&gt;
	var vm_button = cNode(null, &amp;quot;div&amp;quot;, locals[&amp;quot;ButtonText&amp;quot;], {&amp;quot;id&amp;quot;:&amp;quot;tm_switch_button&amp;quot;,&amp;quot;class&amp;quot;:&amp;quot;tm_switch_button&amp;quot;});&lt;br /&gt;
	addEventListener(vm_button, &amp;quot;click&amp;quot;, show);&lt;br /&gt;
	if (toolbar.firstChild == null) toolbar.appendChild(vm_button); else toolbar.insertBefore(vm_button, toolbar.firstChild);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
	if ( typeof(tm_autostart) === &amp;quot;object&amp;quot; &amp;amp;&amp;amp; wgPageName.indexOf(&amp;quot;/doc&amp;quot;) == -1 &amp;amp;&amp;amp; wgPageName.indexOf(&amp;quot;/XML&amp;quot;) == -1 ) {&lt;br /&gt;
		for (	var i=0;&lt;br /&gt;
				i&amp;lt;tm_autostart.length&lt;br /&gt;
				&amp;amp;&amp;amp; (wgPageName.search(new RegExp(tm_autostart[i].url, &amp;quot;i&amp;quot;)) == -1&lt;br /&gt;
				|| Textbox.value.search(new RegExp(tm_autostart[i].text, &amp;quot;i&amp;quot;)) == -1)&lt;br /&gt;
			; ++i){}&lt;br /&gt;
		if (i &amp;gt; tm_autostart.length) {&lt;br /&gt;
			var templateStartPos = Textbox.value.search(&amp;quot;\{\{&amp;quot;+tm_autostart[i].tl+&amp;quot;&amp;quot;, &amp;quot;i&amp;quot;)+2;&lt;br /&gt;
			if(Textbox.setSelectionRange){&lt;br /&gt;
				Textbox.focus();&lt;br /&gt;
				Textbox.setSelectionRange(templateStartPos,templateStartPos);&lt;br /&gt;
			}else if (Textbox.createTextRange) {&lt;br /&gt;
				var range = Textbox.createTextRange();&lt;br /&gt;
				range.collapse(true);&lt;br /&gt;
				range.moveEnd(&#039;character&#039;, templateStartPos);&lt;br /&gt;
				range.moveStart(&#039;character&#039;, templateStartPos);&lt;br /&gt;
				range.select();&lt;br /&gt;
			}&lt;br /&gt;
 &lt;br /&gt;
			show();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	return;&lt;br /&gt;
 &lt;br /&gt;
/* shows the template master */&lt;br /&gt;
function show()&lt;br /&gt;
{&lt;br /&gt;
	/* set some globals to there defaults */&lt;br /&gt;
	bBreak = false;&lt;br /&gt;
	State = null;&lt;br /&gt;
	if (document.getElementById(&amp;quot;tm_dummy_div&amp;quot;) != null) {&lt;br /&gt;
		switch_view_to();&lt;br /&gt;
		switchOnWikEd();&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* check if cursor within template wikisource and parse it */&lt;br /&gt;
	var template_source = null;&lt;br /&gt;
	var Template_given = null;&lt;br /&gt;
	var Target = new Object();&lt;br /&gt;
	var Editbox = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
	Target[&amp;quot;Editbox&amp;quot;] = Editbox;&lt;br /&gt;
 &lt;br /&gt;
	switchOffWikEd();&lt;br /&gt;
 &lt;br /&gt;
	/* get cursor/mark position (browser indendend, depends on wikibits.js) */&lt;br /&gt;
	if (is_ie) {&lt;br /&gt;
		var marker_start = &amp;quot;####template_master_cursor_marker_start####&amp;quot;;&lt;br /&gt;
		var marker_end = &amp;quot;####template_master_cursor_marker_end####&amp;quot;;&lt;br /&gt;
		insertTags(marker_start, marker_end, &amp;quot;&amp;quot;);&lt;br /&gt;
		Target[&amp;quot;start&amp;quot;]  = Editbox.value.search(marker_start);&lt;br /&gt;
		Editbox.value = Editbox.value.replace(marker_start,&amp;quot;&amp;quot;);&lt;br /&gt;
		Target[&amp;quot;end&amp;quot;]  = Editbox.value.search(marker_end) - 1;&lt;br /&gt;
		Editbox.value = Editbox.value.replace(marker_end,&amp;quot;&amp;quot;);&lt;br /&gt;
	} else {&lt;br /&gt;
		Target[&amp;quot;cursor&amp;quot;] = Editbox.selectionStart;&lt;br /&gt;
		Target[&amp;quot;start&amp;quot;]  = Editbox.selectionStart;&lt;br /&gt;
		Target[&amp;quot;end&amp;quot;] = Editbox.selectionEnd - 1;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* search if cursor within a template */&lt;br /&gt;
 &lt;br /&gt;
	/* (1) replace syntax chars within nowiki-tags and html-comments */&lt;br /&gt;
	var x_nowiki = /(&amp;lt;nowiki&amp;gt;.*?)[{|}](.*?&amp;lt;\/nowiki&amp;gt;)/g;&lt;br /&gt;
	var source = replace_all(Editbox.value, x_nowiki, &amp;quot;$1#$2&amp;quot;);&lt;br /&gt;
	var x_htmlcomment = /(&amp;lt;!--.*?)[{|}](.*?--&amp;gt;)/g;&lt;br /&gt;
	var source = replace_all(Editbox.value, x_htmlcomment, &amp;quot;$1#$2&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
	/* (2) create a list of all remaining template tags */&lt;br /&gt;
	var tag_list = new Array();&lt;br /&gt;
	var depth = 0;&lt;br /&gt;
	var x_tag = /(\{\{|\}\})/;&lt;br /&gt;
	var tag_pos = -2, new_pos = 0;&lt;br /&gt;
	do {&lt;br /&gt;
		new_pos = (source.substring(tag_pos + 2)).search(x_tag);&lt;br /&gt;
		if (new_pos &amp;gt;= 0) {&lt;br /&gt;
			tag_pos += new_pos + 2;&lt;br /&gt;
			switch (source.substring(tag_pos, tag_pos + 2)) {&lt;br /&gt;
				case &amp;quot;{{&amp;quot;: {&lt;br /&gt;
					tag_list.push({&amp;quot;type&amp;quot;:0, &amp;quot;depth&amp;quot;:depth, &amp;quot;position&amp;quot;:tag_pos});&lt;br /&gt;
					depth++;&lt;br /&gt;
				}; break;&lt;br /&gt;
				case &amp;quot;}}&amp;quot;: {&lt;br /&gt;
					depth--;&lt;br /&gt;
					tag_list.push({&amp;quot;type&amp;quot;:1, &amp;quot;depth&amp;quot;:depth, &amp;quot;position&amp;quot;:tag_pos});&lt;br /&gt;
				};break;&lt;br /&gt;
				default: alert(&amp;quot;Internal error: Searching template tags failed (&amp;quot;+source.substring(tag_pos, tag_pos + 2)+&amp;quot;).&amp;quot;);return;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	} while (new_pos &amp;gt;= 0);&lt;br /&gt;
 &lt;br /&gt;
	/* (3) find nearest tag pair (same depth) around the cursor position */&lt;br /&gt;
	var  start = -1, end = -1, act_depth = 0;&lt;br /&gt;
	var cursor_pos = Target[&amp;quot;start&amp;quot;] ;&lt;br /&gt;
	var cursor_depth = 0;&lt;br /&gt;
	/* (a) find the depth at cursor pos */&lt;br /&gt;
	for (var i = 0; i &amp;lt; tag_list.length; i++) {&lt;br /&gt;
		if (cursor_pos &amp;lt; tag_list[i].position) {&lt;br /&gt;
			cursor_depth = tag_list[i].depth;&lt;br /&gt;
		} else break;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* (b) search */&lt;br /&gt;
	for (var i = 0; i &amp;lt; tag_list.length; i++) {&lt;br /&gt;
		if (cursor_pos &amp;gt;= tag_list[i].position) {&lt;br /&gt;
			if ((0 == tag_list[i].type) &amp;amp;&amp;amp; (cursor_depth &amp;gt;= tag_list[i].depth)) {&lt;br /&gt;
				start = tag_list[i].position;&lt;br /&gt;
				act_depth = tag_list[i].depth;&lt;br /&gt;
			}&lt;br /&gt;
			if ((start &amp;gt; -1 ) &amp;amp;&amp;amp; (1 == tag_list[i].type) &amp;amp;&amp;amp; (act_depth == tag_list[i].depth)) start = -1;&lt;br /&gt;
		} else break;&lt;br /&gt;
	}&lt;br /&gt;
	if (start &amp;gt; -1) for (var i = tag_list.length - 1; i &amp;gt; 0 ; i--) {&lt;br /&gt;
		if (cursor_pos &amp;lt; tag_list[i].position) {&lt;br /&gt;
			if (cursor_depth &amp;gt;= tag_list[i].depth) {&lt;br /&gt;
				if ((1 == tag_list[i].type) &amp;amp;&amp;amp; (act_depth == tag_list[i].depth)) {&lt;br /&gt;
					end = tag_list[i].position;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		} else break;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* (4) get template source code without the surounding brackets */&lt;br /&gt;
	if ((start&amp;gt;=0) &amp;amp;&amp;amp; (end&amp;gt;=0)) {&lt;br /&gt;
		template_source = Editbox.value.substring(start + 2, end);&lt;br /&gt;
	} else template_source = null;&lt;br /&gt;
 &lt;br /&gt;
	/* parse source */&lt;br /&gt;
	if (template_source != null) {&lt;br /&gt;
		Template_given = parse_template_source(template_source);&lt;br /&gt;
		if (Template_given != null) {&lt;br /&gt;
			// save new positions only, if template parsed successfull&lt;br /&gt;
			Target[&amp;quot;start&amp;quot;] = start;&lt;br /&gt;
			Target[&amp;quot;end&amp;quot;] = end + 1;&lt;br /&gt;
		} else template_source = null;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	switch_view_to();&lt;br /&gt;
	/* dummy main div */&lt;br /&gt;
	Tm_box = cNode(Editbox.parentNode, &amp;quot;div&amp;quot;, null, {&amp;quot;id&amp;quot;:&amp;quot;tm_dummy_div&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;position:absolute;z-index:99;left:&amp;quot;+(Editbox.offsetLeft)+&amp;quot;px;top:&amp;quot;+(Editbox.offsetTop)+&amp;quot;px;width:&amp;quot;+(Editbox.offsetWidth)+&amp;quot;px;height:&amp;quot;+(Editbox.offsetHeight)+&amp;quot;px;&amp;quot;+((is_ie)?&amp;quot;overflow-x:hidden;overflow-y:auto;&amp;quot;:&amp;quot;overflow:auto;&amp;quot;)});&lt;br /&gt;
 &lt;br /&gt;
	if ((template_source == null) &amp;amp;&amp;amp; (Target[&amp;quot;start&amp;quot;] &amp;lt;= Target[&amp;quot;end&amp;quot;])) {&lt;br /&gt;
		// ask, if the user want to use a Wikisource_To_Template-Plugin&lt;br /&gt;
		if ((TM_PluginList) &amp;amp;&amp;amp; (TM_PluginList.length)) {&lt;br /&gt;
			/* create plugin list */&lt;br /&gt;
			var plugins = new Array();&lt;br /&gt;
			for (var i = 0; i &amp;lt; TM_PluginList.length; i++) {&lt;br /&gt;
				try {&lt;br /&gt;
					var name = TM_PluginList[i].opGetName();&lt;br /&gt;
					var type = TM_PluginList[i].opGetType();&lt;br /&gt;
					if ((type !=null) &amp;amp;&amp;amp; (type ==&amp;quot;Wiki2Template&amp;quot;) &amp;amp;&amp;amp; (name != null)) plugins.push(TM_PluginList[i]);&lt;br /&gt;
				} catch(e) {&lt;br /&gt;
					log_message(&amp;quot;Incompatible Plugin: &amp;quot; + e.message);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			if (plugins.length &amp;gt; 0) {&lt;br /&gt;
				var Plugin_div = cNode(null, &amp;quot;div&amp;quot;, locals[&amp;quot;w2t plugin selection&amp;quot;], {&amp;quot;class&amp;quot;:&amp;quot;tm_plugin_selector&amp;quot;});&lt;br /&gt;
				for (var i = 0; i &amp;lt; plugins.length; i++) {&lt;br /&gt;
					var A_plugin = cNode(Plugin_div, &amp;quot;a&amp;quot;, plugins[i].opGetName(), {&amp;quot;class&amp;quot;:&amp;quot;tm_button tm_v_selector tm_plugin_selector&amp;quot;});&lt;br /&gt;
					A_plugin.tm_plugin = plugins[i];&lt;br /&gt;
					addEventListener(A_plugin, &amp;quot;click&amp;quot;, function(e) {&lt;br /&gt;
						var plugin = ((is_ie)?e.srcElement:e.target).tm_plugin;&lt;br /&gt;
						if (plugin != null) {&lt;br /&gt;
							Template_given = plugin.opTransform(Editbox.value.substring(Target[&amp;quot;start&amp;quot;], Target[&amp;quot;end&amp;quot;] + 1));&lt;br /&gt;
							if (Template_given != null) {&lt;br /&gt;
								Plugin_div.parentNode.removeChild(Plugin_div);&lt;br /&gt;
								show_template(Tm_box,&amp;quot;none&amp;quot;, Template_given, Target);&lt;br /&gt;
							}&lt;br /&gt;
						} else alert(&amp;quot;Internal error: No tm_plugin attribute found.&amp;quot;);&lt;br /&gt;
					});&lt;br /&gt;
				}&lt;br /&gt;
				var A_cancel = cNode(Plugin_div, &amp;quot;a&amp;quot;, locals[&amp;quot;Cancel&amp;quot;], {&amp;quot;class&amp;quot;:&amp;quot;tm_button tm_v_selector tm_cancel_button&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;margin-top:8px !important&amp;quot;});&lt;br /&gt;
				addEventListener(A_cancel, &amp;quot;click&amp;quot;, function(e) {&lt;br /&gt;
					Plugin_div.parentNode.removeChild(Plugin_div);&lt;br /&gt;
					show_template(Tm_box,&amp;quot;none&amp;quot;, null, Target);&lt;br /&gt;
				});&lt;br /&gt;
				Tm_box.appendChild(Plugin_div);&lt;br /&gt;
			}&lt;br /&gt;
/*			log_message(plugins.join(&amp;quot;,&amp;quot;));&lt;br /&gt;
			Template_given = TM_PluginList[0].opTransform(Editbox.value.substring(Target[&amp;quot;start&amp;quot;], Target[&amp;quot;end&amp;quot;] + 1));*/&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		/* load given template */&lt;br /&gt;
		show_template(Tm_box,&amp;quot;none&amp;quot;, Template_given, Target);&lt;br /&gt;
	}&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
// switch off wikEd frame&lt;br /&gt;
function switchOffWikEd() {&lt;br /&gt;
	if (typeof(wikEd) != &#039;undefined&#039; &amp;amp;&amp;amp; wikEd.useWikEd == true) {&lt;br /&gt;
		var marker_start = &amp;quot;####template_master_cursor_marker_start####&amp;quot;;&lt;br /&gt;
		var marker_end = &amp;quot;####template_master_cursor_marker_end####&amp;quot;;&lt;br /&gt;
		insertTags(marker_start, marker_end, &amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		wikEd.UpdateTextarea();&lt;br /&gt;
		wikEd.SetEditArea(false);&lt;br /&gt;
		wikEd.useWikEd = false;&lt;br /&gt;
		wikEd.SetPersistent(&#039;wikEdUseClassic&#039;, &#039;1&#039;, 0, &#039;/&#039;);&lt;br /&gt;
		tm_wikEd_on = true;&lt;br /&gt;
 &lt;br /&gt;
		var tb = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
		var tbSelectionStart = tb.value.indexOf(marker_start);&lt;br /&gt;
		tb.value = tb.value.replace(marker_start,&amp;quot;&amp;quot;);&lt;br /&gt;
		var tbSelectionEnd   = tb.value.indexOf(marker_end);&lt;br /&gt;
		tb.value = tb.value.replace(marker_end,&amp;quot;&amp;quot;);&lt;br /&gt;
		tb.selectionStart = tbSelectionStart;&lt;br /&gt;
		tb.selectionEnd   = tbSelectionEnd;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/* switch on wikEd frame */&lt;br /&gt;
function switchOnWikEd() {&lt;br /&gt;
	if (typeof(wikEd) != &#039;undefined&#039; &amp;amp;&amp;amp; typeof(tm_wikEd_on) != &#039;undefined&#039; &amp;amp;&amp;amp; tm_wikEd_on === true) {&lt;br /&gt;
		wikEd.UpdateFrame();&lt;br /&gt;
		wikEd.SetEditArea(true);&lt;br /&gt;
		wikEd.useWikEd = true;&lt;br /&gt;
		wikEd.SetPersistent(&#039;wikEdUseClassic&#039;, &#039;0&#039;, 0, &#039;/&#039;);&lt;br /&gt;
		wikEd.ExecuteHook(wikEd.config.frameHook);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/* shows specific template */&lt;br /&gt;
function show_template(Root_node, template_name, Template_given, Target)&lt;br /&gt;
{&lt;br /&gt;
	// check parameter&lt;br /&gt;
	if ((Template_given != null) &amp;amp;&amp;amp; (Template_given[&amp;quot;template_name&amp;quot;] != template_name)) template_name = Template_given[&amp;quot;template_name&amp;quot;];&lt;br /&gt;
 &lt;br /&gt;
	// create empty formular&lt;br /&gt;
	if ((Template_given == null) &amp;amp;&amp;amp; (template_name == &amp;quot;none&amp;quot;)) {&lt;br /&gt;
		var rv = new Object();&lt;br /&gt;
// 		rv.responseText=&#039;&amp;lt;div id=&amp;quot;template_usage&amp;quot;&amp;gt;&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;amp;gt;&amp;amp;lt;TemplateUsage&amp;amp;gt;&amp;amp;lt;Group&amp;amp;gt;&amp;amp;lt;/Group&amp;amp;gt;&amp;amp;lt;/TemplateUsage&amp;amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
		rv.responseText=&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&amp;lt;TemplateUsage&amp;gt;&amp;lt;Group&amp;gt;&amp;lt;/Group&amp;gt;&amp;lt;/TemplateUsage&amp;gt;&#039;;&lt;br /&gt;
		parseUsage(rv, &#039;&#039;);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	var Template_new = new Object();&lt;br /&gt;
	Template_new[&amp;quot;template_name&amp;quot;] = template_name;&lt;br /&gt;
 &lt;br /&gt;
	if (restoreTemplate(template_name) == true) return;&lt;br /&gt;
	else load_template();&lt;br /&gt;
	return;&lt;br /&gt;
 &lt;br /&gt;
	function load_template()&lt;br /&gt;
	{&lt;br /&gt;
		var Dummy_div = document.getElementById(&amp;quot;tm_dummy_div&amp;quot;);&lt;br /&gt;
		var Progress_div = cNode(Dummy_div, &amp;quot;div&amp;quot;, locals[&amp;quot;Template&amp;quot;]+ &amp;quot; \&amp;quot;&amp;quot; + template_name+&amp;quot;\&amp;quot; &amp;quot; +locals[&amp;quot;Progress&amp;quot;] +&amp;quot; .&amp;quot;, {&amp;quot;class&amp;quot;:&amp;quot;tm_load_progress&amp;quot;, &amp;quot;id&amp;quot;:&amp;quot;tm_load_progress&amp;quot;});&lt;br /&gt;
 &lt;br /&gt;
		var A_cancel = cNode(Progress_div, &amp;quot;a&amp;quot;, locals[&amp;quot;Cancel&amp;quot;], {&amp;quot;class&amp;quot;:&amp;quot;tm_button tm_v_selector tm_cancel_button&amp;quot;});&lt;br /&gt;
		addEventListener(A_cancel, &amp;quot;click&amp;quot;, function(e) {&lt;br /&gt;
			bBreak = true;&lt;br /&gt;
			switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
		});&lt;br /&gt;
 &lt;br /&gt;
		var full_name = ((template_name.search(new RegExp(locals[&amp;quot;User&amp;quot;]+&amp;quot;( [^:]+){0,1}:&amp;quot;),&amp;quot;&amp;quot;)&amp;gt;=0)?(&amp;quot;&amp;quot;):(locals[&amp;quot;Template&amp;quot;]+&amp;quot;:&amp;quot;))+template_name;&lt;br /&gt;
 &lt;br /&gt;
		oXmlHttpRequest({&lt;br /&gt;
			&#039;method&#039;:&#039;GET&#039;,&lt;br /&gt;
			&#039;url&#039;: wgServer + wgScriptPath + &amp;quot;/index.php?title=&amp;quot; + full_name +&amp;quot;/XML&amp;amp;action=raw&amp;quot;,&lt;br /&gt;
			&#039;headers&#039;:{&#039;User-agent&#039;: &#039;Skript:TM(wp_de_user_Revvar)&#039;},&lt;br /&gt;
			&#039;onload&#039;: function(rD) {&lt;br /&gt;
				parseUsage(rD, full_name);&lt;br /&gt;
			},&lt;br /&gt;
			&#039;onerror&#039;:function(rD) {&lt;br /&gt;
				log_message(locals[&amp;quot;sys_load_error&amp;quot;].replace(&amp;quot;$1&amp;quot;, template_name));&lt;br /&gt;
				switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
			},&lt;br /&gt;
			&#039;onreadystatechange&#039;:function() {&lt;br /&gt;
				Progress_div.firstChild.data += &amp;quot;.&amp;quot;;&lt;br /&gt;
			},&lt;br /&gt;
   			&#039;on_cancel&#039;: function() {switch_view_to(&amp;quot;EB&amp;quot;);}&lt;br /&gt;
		});&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function parseUsage(rv, full_name)&lt;br /&gt;
	{&lt;br /&gt;
		try {&lt;br /&gt;
			var usage_text = rv.responseText;&lt;br /&gt;
			var Xml_dom=null;&lt;br /&gt;
			var Xsl_dom=null;&lt;br /&gt;
			var Dummy_div = document.getElementById(&amp;quot;tm_dummy_div&amp;quot;);&lt;br /&gt;
			var Progress_div = document.getElementById(&amp;quot;tm_load_progress&amp;quot;);&lt;br /&gt;
			is_xml_generated = false;&lt;br /&gt;
 &lt;br /&gt;
			if (usage_text.length == 0) {&lt;br /&gt;
				oXmlHttpRequest({&lt;br /&gt;
					&#039;method&#039;:&#039;GET&#039;,&lt;br /&gt;
					&#039;url&#039;: wgServer + wgScriptPath +&#039;/api.php?action=query&amp;amp;prop=revisions&amp;amp;rvprop=content&amp;amp;rvlimit=1&amp;amp;format=json&amp;amp;titles=&#039;+encodeURIComponent(full_name),&lt;br /&gt;
					&#039;headers&#039;:{&#039;User-agent&#039;: &#039;Skript:TM(wp_de_user_Revvar)&#039;},&lt;br /&gt;
					&#039;onload&#039;: function(rD) {&lt;br /&gt;
						try {&lt;br /&gt;
							if (Dummy_div &amp;amp;&amp;amp; Progress_div) Dummy_div.removeChild(Progress_div);&lt;br /&gt;
 &lt;br /&gt;
							var rT = rD.responseText;&lt;br /&gt;
							var startPos = rT.search(&#039;\\[\\{&amp;quot;\\*&amp;quot;:&amp;quot;&#039;)+7;&lt;br /&gt;
							var endPos = rT.search(&#039;&amp;quot;\\}\\]\\}\\}\\},&amp;quot;&#039;);&lt;br /&gt;
 &lt;br /&gt;
							if (endPos &amp;lt; 0) {&lt;br /&gt;
								log_message(locals[&amp;quot;sys_no_such_template&amp;quot;].replace(&amp;quot;$1&amp;quot;, template_name));&lt;br /&gt;
								switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
								return;&lt;br /&gt;
							}&lt;br /&gt;
 &lt;br /&gt;
							rT = rT.substring(startPos, endPos);&lt;br /&gt;
							var xVarname = /\{\{\{[\s]*([^\s\|\}]([^\|\}]*[^\s\|\}]){0,1})[\s\|\}]/g;&lt;br /&gt;
							var names = rT.match(xVarname);&lt;br /&gt;
							var vars = new Object();&lt;br /&gt;
							if (names) {&lt;br /&gt;
								for (var i = 0; i &amp;lt; names.length; i++) {&lt;br /&gt;
									var tmp = names[i].replace(xVarname, &amp;quot;$1&amp;quot;);&lt;br /&gt;
									tmp = tmp.replace(/&amp;lt;[^&amp;gt;]+&amp;gt;/g, &#039;&#039;);&lt;br /&gt;
									tmp = decodeURI(tmp);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00f6&#039;, &#039;ö&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00fc&#039;, &#039;ü&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00e4&#039;, &#039;ä&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00df&#039;, &#039;ß&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00d6&#039;, &#039;Ö&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00dc&#039;, &#039;Ü&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00c4&#039;, &#039;Ä&#039;);&lt;br /&gt;
									vars[tmp] = true;&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
							usage_text =  &#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;\n&#039;;&lt;br /&gt;
							usage_text += &#039;&amp;lt;?mediawiki &amp;quot;{{XML-Warnung|&#039; + template_name +&#039;}}&amp;quot;?&amp;gt;\n&#039;;&lt;br /&gt;
 &lt;br /&gt;
							usage_text += &#039; &amp;lt;TemplateUsage output=&amp;quot;expand&amp;quot;&amp;gt;\n&#039;;&lt;br /&gt;
							usage_text += &#039;   &amp;lt;Group&amp;gt;\n&#039;;&lt;br /&gt;
							for (var varname in vars) {&lt;br /&gt;
								usage_text += &#039;     &amp;lt;Parameter name=&amp;quot;&#039; + varname + &#039;&amp;quot;&amp;gt;\n&#039;;&lt;br /&gt;
								usage_text += &#039;       &amp;lt;Help&amp;gt;&amp;lt;/Help&amp;gt;\n&#039;;&lt;br /&gt;
								usage_text += &#039;     &amp;lt;/Parameter&amp;gt;\n&#039;;&lt;br /&gt;
							}&lt;br /&gt;
							usage_text += &#039;   &amp;lt;/Group&amp;gt;\n&#039;;&lt;br /&gt;
							usage_text += &#039; &amp;lt;/TemplateUsage&amp;gt;\n&#039;;&lt;br /&gt;
 &lt;br /&gt;
							Xml_dom=parseXML(usage_text);&lt;br /&gt;
							Xsl_dom=get_xsl_dom();&lt;br /&gt;
 &lt;br /&gt;
							is_xml_generated = true;&lt;br /&gt;
							generated_xml = usage_text;&lt;br /&gt;
 &lt;br /&gt;
							onload();&lt;br /&gt;
							return;&lt;br /&gt;
						} catch (e) {&lt;br /&gt;
							log_message(e.message);&lt;br /&gt;
							switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
							return;&lt;br /&gt;
						}&lt;br /&gt;
					},&lt;br /&gt;
					&#039;onerror&#039;:function(rD) {&lt;br /&gt;
						log_message(locals[&amp;quot;sys_load_error&amp;quot;].replace(&amp;quot;$1&amp;quot;, template_name));&lt;br /&gt;
						switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					},&lt;br /&gt;
					&#039;onreadystatechange&#039;:function() {&lt;br /&gt;
						Progress_div.firstChild.data += &amp;quot;.&amp;quot;;&lt;br /&gt;
					},&lt;br /&gt;
					&#039;on_cancel&#039;: function() {&lt;br /&gt;
						switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			if (Dummy_div &amp;amp;&amp;amp; Progress_div) Dummy_div.removeChild(Progress_div);&lt;br /&gt;
 &lt;br /&gt;
			/* create document from XML text */&lt;br /&gt;
			Xml_dom=parseXML(usage_text);&lt;br /&gt;
			Xsl_dom=get_xsl_dom();&lt;br /&gt;
 &lt;br /&gt;
			/* load style sheet for the transformation */&lt;br /&gt;
// 			var Xsl_dom = document.implementation.createDocument(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, null);&lt;br /&gt;
// 			Xsl_dom.addEventListener(&amp;quot;load&amp;quot;, onload, false);&lt;br /&gt;
// 			Xsl_dom.load(&amp;quot;http://tools.wikimedia.de/~revvar/tm_formular.xsl&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
			/* next step &amp;quot;function onload&amp;quot;*/&lt;br /&gt;
			onload();&lt;br /&gt;
			return;&lt;br /&gt;
 &lt;br /&gt;
		} catch(e) {&lt;br /&gt;
			log_message(e.message);&lt;br /&gt;
			switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		return;&lt;br /&gt;
 &lt;br /&gt;
		function onload() {&lt;br /&gt;
			var dom = createForm(Xml_dom, Xsl_dom);&lt;br /&gt;
			if (dom) {&lt;br /&gt;
				attachForm(dom);&lt;br /&gt;
 &lt;br /&gt;
				/* cache template */&lt;br /&gt;
				Template[template_name] = new Object();&lt;br /&gt;
				Template[template_name].Xml_dom = Xml_dom;&lt;br /&gt;
				Template[template_name].Xsl_dom = Xsl_dom;&lt;br /&gt;
			} else switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function createForm(Xml_dom, Xsl_dom) {&lt;br /&gt;
		try {&lt;br /&gt;
			/* transform the XML Formular Specification with the loaded stylesheet */&lt;br /&gt;
			var Result_dom = null;&lt;br /&gt;
			if (is_ie) {&lt;br /&gt;
				var result_xml = Xml_dom.transformNode(Xsl_dom.documentElement);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_submit&amp;quot;, locals[&amp;quot;Submit&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_cancel&amp;quot;, locals[&amp;quot;Cancel&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_createxml&amp;quot;, locals[&amp;quot;CreateXML&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_template&amp;quot;, locals[&amp;quot;Template&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(new RegExp(&amp;quot;locals_nohelp&amp;quot;,&amp;quot;g&amp;quot;), locals[&amp;quot;sys_no_help&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_version&amp;quot;, VERSION);&lt;br /&gt;
				var Result_div = cNode(null, &amp;quot;div&amp;quot;, null, {&amp;quot;id&amp;quot;:&amp;quot;tm_dummy_ie_div&amp;quot;, &amp;quot;style&amp;quot;:&amp;quot;visibility:hidden;&amp;quot;});&lt;br /&gt;
				Result_div.innerHTML = result_xml;&lt;br /&gt;
				Root_node.appendChild(Result_div);&lt;br /&gt;
				Result_dom = document;&lt;br /&gt;
				var group_div = document.getElementById(&amp;quot;tm_group_selector&amp;quot;);&lt;br /&gt;
				if (group_div.firstChild == null) {&lt;br /&gt;
					group_div.parentNode.removeChild(group_div);&lt;br /&gt;
				}&lt;br /&gt;
			} else {&lt;br /&gt;
				var Processor = new XSLTProcessor()&lt;br /&gt;
				Processor.importStylesheet(Xsl_dom);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_submit&amp;quot;, locals[&amp;quot;Submit&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_cancel&amp;quot;, locals[&amp;quot;Cancel&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_createxml&amp;quot;, locals[&amp;quot;CreateXML&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_template&amp;quot;, locals[&amp;quot;Template&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_nohelp&amp;quot;,locals[&amp;quot;sys_no_help&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_version&amp;quot;,VERSION);&lt;br /&gt;
 &lt;br /&gt;
				Result_dom = Processor.transformToDocument(Xml_dom);&lt;br /&gt;
			}&lt;br /&gt;
 &lt;br /&gt;
			/* add program logic */&lt;br /&gt;
			completeForm(Result_dom);&lt;br /&gt;
 &lt;br /&gt;
			return Result_dom;&lt;br /&gt;
		} catch(e) {&lt;br /&gt;
			log_message(e.message);&lt;br /&gt;
			return null;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function attachForm(dom) {&lt;br /&gt;
		/* append formular to root node */&lt;br /&gt;
		var Mf = dom.getElementById(&amp;quot;tm_main_frame&amp;quot;);&lt;br /&gt;
		if (is_ie) Root_node.removeChild(document.getElementById(&amp;quot;tm_dummy_ie_div&amp;quot;));&lt;br /&gt;
		Root_node.appendChild(Mf);&lt;br /&gt;
 &lt;br /&gt;
		var Tm_main = document.getElementById(&amp;quot;tm_main_frame&amp;quot;);&lt;br /&gt;
		var Tm_header=document.getElementById(&amp;quot;tm_header&amp;quot;);&lt;br /&gt;
		var Tm_form=document.getElementById(&amp;quot;tm_form&amp;quot;);&lt;br /&gt;
		var Tm_footer=document.getElementById(&amp;quot;tm_footer&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		/* resize all input boxes*/&lt;br /&gt;
		var Input_node = null;&lt;br /&gt;
		Input_node = traverse(Tm_form, &amp;quot;tm_formelem&amp;quot;);&lt;br /&gt;
		for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
			if (Input_node[i].className == &amp;quot;tm_input&amp;quot;) {&lt;br /&gt;
				resizeInputBox(Input_node[i], 1);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
		/* resize formular */&lt;br /&gt;
		var new_height = Root_node.offsetHeight;&lt;br /&gt;
		new_height = new_height - Tm_header.offsetHeight - Tm_footer.offsetHeight;&lt;br /&gt;
		setStyleAttribute(Tm_form, {&amp;quot;height&amp;quot;:(new_height+ &amp;quot;px&amp;quot;)});&lt;br /&gt;
		setStyleAttribute(Tm_form, {&amp;quot;height&amp;quot;:((new_height + (Root_node.offsetHeight - Tm_main.offsetHeight) )+ &amp;quot;px&amp;quot;)});&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function removeForm() {&lt;br /&gt;
		Root_node.removeChild(document.getElementById(&amp;quot;tm_main_frame&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function restoreTemplate(name)&lt;br /&gt;
	{&lt;br /&gt;
		if (Template[name]) {&lt;br /&gt;
			var dom = createForm(Template[name].Xml_dom, Template[name].Xsl_dom);&lt;br /&gt;
			if (dom) {&lt;br /&gt;
				attachForm(dom);&lt;br /&gt;
				return true;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function traverse(Parent, name)&lt;br /&gt;
	{&lt;br /&gt;
		var childs = new Array();&lt;br /&gt;
		var Child = Parent.firstChild;&lt;br /&gt;
		while (Child != null) {&lt;br /&gt;
			if ((Child.getAttribute) &amp;amp;&amp;amp; (Child.getAttribute(&amp;quot;tm_name&amp;quot;))) {&lt;br /&gt;
				if (((&amp;quot;&amp;quot;+Child.getAttribute(&amp;quot;tm_name&amp;quot;)).search(name) == 0)) childs.push(Child);&lt;br /&gt;
			}&lt;br /&gt;
			if (Child.firstChild != null) childs = childs.concat(traverse(Child, name));&lt;br /&gt;
			Child = Child.nextSibling;&lt;br /&gt;
		}&lt;br /&gt;
		return childs;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function mapParameter(Temp_plugin, Temp_real) {&lt;br /&gt;
		var Temp_given = new Object();&lt;br /&gt;
		for (var id in Temp_real) {&lt;br /&gt;
			if (Temp_plugin[id] != null) {&lt;br /&gt;
				Temp_given[id] = Temp_plugin[id];&lt;br /&gt;
				Temp_plugin[id] = null;&lt;br /&gt;
			} else {&lt;br /&gt;
				for (var pi_id in Temp_plugin) if (Temp_plugin[pi_id] != null) {&lt;br /&gt;
					if (id.toLowerCase() == pi_id.toLowerCase()) {&lt;br /&gt;
						Temp_given[id] = Temp_plugin[pi_id];&lt;br /&gt;
						Temp_plugin[pi_id] = null;&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* append all unknown params */&lt;br /&gt;
		for (var pi_id in Temp_plugin) if (Temp_plugin[pi_id] != null) Temp_given[pi_id] = Temp_plugin[pi_id];&lt;br /&gt;
		return Temp_given;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function completeForm(dom)&lt;br /&gt;
	{&lt;br /&gt;
		State = dom.getElementById(&amp;quot;tm_state&amp;quot;).firstChild;&lt;br /&gt;
		var Name_node = dom.getElementById(&amp;quot;tm_template&amp;quot;);&lt;br /&gt;
		Name_node.value= template_name;&lt;br /&gt;
		if (template_name.length &amp;gt; 32) Name_node.size = template_name.length;&lt;br /&gt;
		if (template_name != &amp;quot;none&amp;quot;) Name_node.readOnly = true;&lt;br /&gt;
		else {&lt;br /&gt;
			Name_node.value = &amp;quot;&amp;quot;;&lt;br /&gt;
			addEventListener(Name_node, &amp;quot;keypress&amp;quot;, template_name_changed);&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		var is_changed = false;&lt;br /&gt;
		function template_name_changed(e)&lt;br /&gt;
		{&lt;br /&gt;
			if (is_changed) return;&lt;br /&gt;
			if (e.type == &amp;quot;keypress&amp;quot;) {&lt;br /&gt;
				if (e.which) {&lt;br /&gt;
					if (e.which != 13) return;&lt;br /&gt;
				} else if (e.keyCode) {&lt;br /&gt;
					if (e.keyCode != 13) return;&lt;br /&gt;
				} else return;&lt;br /&gt;
			}&lt;br /&gt;
			var new_name = Name_node.value + &amp;quot;&amp;quot;;&lt;br /&gt;
			if (new_name.length == 0) return;&lt;br /&gt;
			is_changed = true;&lt;br /&gt;
			removeForm();&lt;br /&gt;
			show_template(Root_node, new_name, null, Target);&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* fix an ie width problem for the group divs */&lt;br /&gt;
 		if (is_ie) {&lt;br /&gt;
			var group_count = 1;&lt;br /&gt;
			do {&lt;br /&gt;
				var Group_div = dom.getElementById(&amp;quot;tm_group_&amp;quot; + group_count);&lt;br /&gt;
  				if ((Group_div) &amp;amp;&amp;amp; (Group_div.className) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot; + Group_div.className).search(&amp;quot;tm_ie_group&amp;quot;) &amp;lt; 0)) {&lt;br /&gt;
 					Group_div.className = &amp;quot;tm_group tm_ie_group&amp;quot;;&lt;br /&gt;
				}&lt;br /&gt;
				group_count++;&lt;br /&gt;
			} while (Group_div != null);&lt;br /&gt;
  		}&lt;br /&gt;
 &lt;br /&gt;
		var Input_node = null;&lt;br /&gt;
		Input_node = traverse(dom, &amp;quot;tm_formelem&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		/* save references to nodes and set help attribute */&lt;br /&gt;
		var comment_counter = 0;&lt;br /&gt;
		for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
			if (Input_node[i].className == &amp;quot;tm_group_heading&amp;quot;) {&lt;br /&gt;
				var id = &amp;quot;tm_comment_&amp;quot; + comment_counter;&lt;br /&gt;
				Template_new[id] = new Object();&lt;br /&gt;
				Template_new[id].showempty = (Input_node[i].parentNode.getAttribute(&amp;quot;tm_showempty&amp;quot;) == &amp;quot;true&amp;quot;);&lt;br /&gt;
				Template_new[id].value = &amp;quot;&amp;quot;;&lt;br /&gt;
				if (comment_counter &amp;gt; 0) Template_new[id].value += &amp;quot;\n&amp;quot;;&lt;br /&gt;
				Template_new[id].value += &amp;quot;&amp;lt;!-- &amp;quot; + Input_node[i].firstChild.data + &amp;quot; --&amp;gt;\n&amp;quot;;&lt;br /&gt;
				comment_counter++;&lt;br /&gt;
			} else  {&lt;br /&gt;
				var id = Input_node[i].id;&lt;br /&gt;
				if (id == null) {&lt;br /&gt;
					log_message(&amp;quot;Internal error: XSLT created input node without id.&amp;quot;);&lt;br /&gt;
					switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				if (Template_new[id] != null) {&lt;br /&gt;
					log_message(&amp;quot;Internal error: Duplicate id \&amp;quot;&amp;quot; + id + &amp;quot;\&amp;quot;.&amp;quot;);&lt;br /&gt;
					switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				Input_node[i].tm_help = Input_node[i].title;&lt;br /&gt;
				Template_new[id] = Input_node[i];&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* transform all condition attributes from text to a RegExp */&lt;br /&gt;
		for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
			var condition_text = Input_node[i].getAttribute(&amp;quot;tm_condition&amp;quot;);&lt;br /&gt;
			if ((condition_text != null) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot;+condition_text).length &amp;gt; 0)) {&lt;br /&gt;
				try {&lt;br /&gt;
					Input_node[i].tm_condition = new RegExp(condition_text);&lt;br /&gt;
				} catch(e) {&lt;br /&gt;
					log_message(e.message+&amp;quot;\n&amp;quot;+locals[&amp;quot;sys_invalid_condition&amp;quot;].replace(&amp;quot;$1&amp;quot;, condition_text));&lt;br /&gt;
					switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* map suggested to existing parameter names */&lt;br /&gt;
		if ((Template_given != null) &amp;amp;&amp;amp; (Template_given[&amp;quot;source&amp;quot;]) &amp;amp;&amp;amp; (Template_given[&amp;quot;source&amp;quot;] == &amp;quot;plug-in&amp;quot;)) {&lt;br /&gt;
			/* create a list with all valid parameter names */&lt;br /&gt;
			var Temp_real = new Object();&lt;br /&gt;
			for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
				var name = &amp;quot;&amp;quot; + Input_node[i].id;&lt;br /&gt;
				if ((name !=null) &amp;amp;&amp;amp; (name.length) &amp;amp;&amp;amp; (name.length&amp;gt;0)) Temp_real[name] = true;&lt;br /&gt;
			}&lt;br /&gt;
 &lt;br /&gt;
			Template_given = mapParameter(Template_given, Temp_real);&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* fill the formular with the given template and add resize handler */&lt;br /&gt;
		var Template_used = new Object();&lt;br /&gt;
		if (Template_given != null) {&lt;br /&gt;
			for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
				var name = &amp;quot;&amp;quot; + Input_node[i].id;&lt;br /&gt;
				if (Template_given[name] != null) Template_used[name] = true; /* mark given parameter to find unknown */&lt;br /&gt;
				if ((name !=null) &amp;amp;&amp;amp; (name.length) &amp;amp;&amp;amp; (name.length&amp;gt;0) &amp;amp;&amp;amp; (Template_given[name] != null) &amp;amp;&amp;amp; (Template_given[name].length&amp;gt;0)) {&lt;br /&gt;
					if (Input_node[i].nodeName.search(/^select$/i) == 0) {&lt;br /&gt;
							Input_node[i].value = Template_given[name];&lt;br /&gt;
							if (Input_node[i].value != Template_given[name]) {&lt;br /&gt;
								Input_node[i].title = locals[&amp;quot;sys_invalid_value&amp;quot;] + &amp;quot;: \&amp;quot;&amp;quot;+Template_given[name]+&amp;quot;\&amp;quot;! &amp;quot;+Input_node[i].tm_help;&lt;br /&gt;
								Input_node[i].className = &amp;quot;tm_input tm_error&amp;quot;;&lt;br /&gt;
								Input_node[i].setAttribute(&amp;quot;tm_error&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
							}&lt;br /&gt;
					} else {&lt;br /&gt;
						if (Input_node[i].type.search(/^checkbox$/i) == 0) {&lt;br /&gt;
							Input_node[i].checked = true;&lt;br /&gt;
						} else  {&lt;br /&gt;
							Input_node[i].value = Template_given[name];&lt;br /&gt;
							if (Input_node[i].nodeName.search(/^input$/i) == 0) {&lt;br /&gt;
								/* (1) replace newlines with &amp;lt;br /&amp;gt; */&lt;br /&gt;
								Input_node[i].value = replace_all(Input_node[i].value, new RegExp(&amp;quot;\n&amp;quot;,&amp;quot;g&amp;quot;), &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* add function to show help text at state bar on focus and to trace act input field + add resize handler */&lt;br /&gt;
		for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
			addEventListener(Input_node[i], &amp;quot;focus&amp;quot;, showHelp);&lt;br /&gt;
			if ((Input_node[i].nodeName.search(/^input$/i) == 0) &amp;amp;&amp;amp; (Input_node[i].type.search(/^text$/i) == 0) &amp;amp;&amp;amp; (Input_node[i].className.search(/tm_input_max/i) &amp;lt; 0)) {&lt;br /&gt;
				addEventListener(Input_node[i], &amp;quot;keyup&amp;quot;, resizeHandler);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* add function for the group selection button */&lt;br /&gt;
		var Group_selector = dom.getElementById(&amp;quot;tm_group_selector&amp;quot;);&lt;br /&gt;
		if (Group_selector  != null) {&lt;br /&gt;
			var Group_button = Group_selector.firstChild;&lt;br /&gt;
			while (Group_button != null) {&lt;br /&gt;
				if (Group_button.nodeName.search(/^a$/i) == 0) addEventListener(Group_button, &amp;quot;click&amp;quot;, selectGroup);&lt;br /&gt;
				Group_button = Group_button.nextSibling;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* search unknown given named parameter*/&lt;br /&gt;
		if ((Template_given != null) &amp;amp;&amp;amp; (Template_used != null)) {&lt;br /&gt;
			var unknown_parameter = new Array();&lt;br /&gt;
			for (var id in Template_given) if (!((Template_used[id]) &amp;amp;&amp;amp; (Template_used[id] == true))) {&lt;br /&gt;
				if (((&amp;quot;&amp;quot;+id).search(/^(source|template_name)$/) &amp;lt; 0) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot;+id).search(&amp;quot;tm_form_parameter&amp;quot;) &amp;lt; 0))&lt;br /&gt;
					unknown_parameter.push(id.replace(/^tm_form_(.+)$/, &amp;quot;$1&amp;quot;));&lt;br /&gt;
			}&lt;br /&gt;
			if (unknown_parameter.length &amp;gt; 0) {&lt;br /&gt;
				var unknown_div = cNode(dom.getElementById(&amp;quot;tm_group_selector&amp;quot;), &amp;quot;div&amp;quot;, null, {&amp;quot;class&amp;quot;:&amp;quot;tm_unknown_selector&amp;quot;,&amp;quot;id&amp;quot;:&amp;quot;tm_unknown_selector&amp;quot;});&lt;br /&gt;
				for (var i = 0; i &amp;lt; unknown_parameter.length; i++) {&lt;br /&gt;
					var Unknown_link = cNode(unknown_div, &amp;quot;a&amp;quot;, unknown_parameter[i] , {&amp;quot;class&amp;quot;:&amp;quot;tm_button tm_selector tm_unknown_selector&amp;quot;,&amp;quot;title&amp;quot;:Template_given[&amp;quot;tm_form_&amp;quot; + unknown_parameter[i]]});&lt;br /&gt;
					addEventListener(Unknown_link, &amp;quot;click&amp;quot;, insertUnknown);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* buttons */&lt;br /&gt;
		var Button_submit = dom.getElementById(&amp;quot;tm_submit&amp;quot;);&lt;br /&gt;
		addEventListener(Button_submit, &amp;quot;click&amp;quot;, submitTemplate);&lt;br /&gt;
		var Button_cancel = dom.getElementById(&amp;quot;tm_cancel&amp;quot;);&lt;br /&gt;
		addEventListener(Button_cancel, &amp;quot;click&amp;quot;, cancelTemplate);&lt;br /&gt;
		if ((is_xml_generated) &amp;amp;&amp;amp; (!is_opera)) {&lt;br /&gt;
			var Button_createxml = dom.getElementById(&amp;quot;tm_createxml&amp;quot;);&lt;br /&gt;
			setStyleAttribute(Button_createxml, {&#039;visibility&#039;:&#039;visible&#039;});&lt;br /&gt;
			Button_createxml.removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
			if (Button_createxml) addEventListener(Button_createxml, &amp;quot;click&amp;quot;, createXML);&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* last op (possible race condition!): enable Template_name node and buttons */&lt;br /&gt;
		Name_node.removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
		Button_cancel.removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
		if (template_name != &amp;quot;none&amp;quot;) Button_submit.removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function submitTemplate(e)&lt;br /&gt;
	{&lt;br /&gt;
		if (!is_ie) e.preventDefault();&lt;br /&gt;
 &lt;br /&gt;
		/* read all results and correct them if necessary */&lt;br /&gt;
		var success = true;&lt;br /&gt;
		var First_error_node = null;&lt;br /&gt;
		for (var id in Template_new) if (id.search(/^(source|template_name|tm_comment_)/) &amp;lt; 0) {&lt;br /&gt;
			var Node = Template_new[id];&lt;br /&gt;
			switch ((&amp;quot;&amp;quot;+Node.nodeName).toLowerCase()) {&lt;br /&gt;
				case &amp;quot;textarea&amp;quot;: {&lt;br /&gt;
					Node.tm_value = trim(Node.value);&lt;br /&gt;
					var lines = Node.tm_value.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
					if ((lines.length - 1 &amp;gt; 1) &amp;amp;&amp;amp; (lines[lines.length - 1].search(/[\S]/) &amp;lt; 0)) lines.pop();&lt;br /&gt;
					Node.tm_value = lines.join(&amp;quot;\n&amp;quot;);&lt;br /&gt;
					if (lines.length &amp;gt; 1) Node.tm_value = &amp;quot;\n&amp;quot; + Node.tm_value;&lt;br /&gt;
				};break;&lt;br /&gt;
				case &amp;quot;input&amp;quot;: {&lt;br /&gt;
					if ((&amp;quot;&amp;quot;+Node.type).toLowerCase() == &amp;quot;checkbox&amp;quot;) {&lt;br /&gt;
						if (Node.checked == true) Node.tm_value = trim(Node.value);&lt;br /&gt;
						else Node.tm_value = &amp;quot;&amp;quot;;&lt;br /&gt;
					} else {&lt;br /&gt;
						Node.tm_value = trim(Node.value);&lt;br /&gt;
					}&lt;br /&gt;
				};break;&lt;br /&gt;
 &lt;br /&gt;
				case &amp;quot;select&amp;quot;: {&lt;br /&gt;
					Node.tm_value = trim(Node.value);&lt;br /&gt;
				};break;&lt;br /&gt;
 &lt;br /&gt;
				default: {&lt;br /&gt;
					log_message(&amp;quot;Internal Error: Unknown Node type \&amp;quot;&amp;quot; + Node.nodeName + &amp;quot;\&amp;quot;.&amp;quot;);&lt;br /&gt;
					switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
 &lt;br /&gt;
			/* verify values */&lt;br /&gt;
			var node_success = true;&lt;br /&gt;
			if ((Node.getAttribute(&amp;quot;tm_null&amp;quot;) == &amp;quot;false&amp;quot;) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot;+Node.tm_value).length==0)) {&lt;br /&gt;
				success = false; node_success = false;&lt;br /&gt;
				if (First_error_node == null) First_error_node=Node;&lt;br /&gt;
				Node.title = locals[&amp;quot;sys_enter_value&amp;quot;]+&amp;quot; &amp;quot;+Node.tm_help;&lt;br /&gt;
				Node.className = &amp;quot;tm_input tm_error&amp;quot;;&lt;br /&gt;
				Node.setAttribute(&amp;quot;tm_error&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
			} else if (Node.tm_condition != null) {&lt;br /&gt;
				if ((!((Node.getAttribute(&amp;quot;tm_null&amp;quot;) == &amp;quot;true&amp;quot;) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot;+Node.value).length==0))) &amp;amp;&amp;amp;&lt;br /&gt;
				((&amp;quot;&amp;quot;+Node.tm_value).search(Node.tm_condition) != 0)) {&lt;br /&gt;
					success = false; node_success = false;&lt;br /&gt;
					if (First_error_node == null) First_error_node=Node;&lt;br /&gt;
					Node.title = locals[&amp;quot;sys_enter_valid_value&amp;quot;]+&amp;quot; &amp;quot;+Node.tm_help;&lt;br /&gt;
					Node.className = &amp;quot;tm_input tm_error&amp;quot;;&lt;br /&gt;
					Node.setAttribute(&amp;quot;tm_error&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			if (node_success == true) {&lt;br /&gt;
				Node.setAttribute(&amp;quot;tm_error&amp;quot;, &amp;quot;false&amp;quot;);&lt;br /&gt;
				Node.className = &amp;quot;tm_input&amp;quot;;&lt;br /&gt;
				Node.title = Node.tm_help;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (success==false) {&lt;br /&gt;
			if (State) State.data = locals[&amp;quot;sys_please_correct_errors&amp;quot;];&lt;br /&gt;
			First_error_node.focus();&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* create new template source */&lt;br /&gt;
		var x_param = /^tm_form_(.+)$/;&lt;br /&gt;
		var output = document.getElementById(&amp;quot;tm_main_frame&amp;quot;);&lt;br /&gt;
		if (output != null) {&lt;br /&gt;
			if (output.getAttribute(&amp;quot;tm_max_value_indentation&amp;quot;)) {&lt;br /&gt;
				max_value_indentation = 0+output.getAttribute(&amp;quot;tm_max_value_indentation&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			output = ((&amp;quot;&amp;quot;+output.getAttribute(&amp;quot;tm_output&amp;quot;)).search(/^expand$/)==0);&lt;br /&gt;
		} else output=false;&lt;br /&gt;
		var new_template = &amp;quot;{{&amp;quot; + Template_new[&amp;quot;template_name&amp;quot;] + ((output)?&amp;quot;\n&amp;quot;:&amp;quot;&amp;quot;);&lt;br /&gt;
		var group_count = 0;&lt;br /&gt;
		var group_template = &amp;quot;&amp;quot;;&lt;br /&gt;
		var group_showempty = false;&lt;br /&gt;
 &lt;br /&gt;
		// get max parameter length&lt;br /&gt;
		var max_parameter_length = 0;&lt;br /&gt;
		for (id in Template_new) if (id.search(/^(source|template_name)$/) &amp;lt; 0) {&lt;br /&gt;
			if ((output || ((&amp;quot;&amp;quot;+Template_new[id].tm_value).length &amp;gt; 0)) &amp;amp;&amp;amp; ((id.search(&amp;quot;tm_comment_&amp;quot;) &amp;lt; 0))) {&lt;br /&gt;
				var tmp_param = (&amp;quot;&amp;quot;+id).replace(x_param,&amp;quot;$1&amp;quot;);&lt;br /&gt;
				if (max_parameter_length &amp;lt; tmp_param.length) max_parameter_length = tmp_param.length;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		var parameter_space = &amp;quot;&amp;quot;;&lt;br /&gt;
		var xNumber = /^[0-9]+$/g;&lt;br /&gt;
		var prevEmptyNumbers = &#039;&#039;;&lt;br /&gt;
		for (var i = 0; i &amp;lt; ((max_parameter_length &amp;gt; max_value_indentation) ? max_value_indentation : max_parameter_length); i++) parameter_space += &amp;quot; &amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
		for (id in Template_new) if (id.search(/^(source|template_name)$/) &amp;lt; 0) {&lt;br /&gt;
			var tmp_param = (&amp;quot;&amp;quot;+id).replace(x_param,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			if (output == true) {&lt;br /&gt;
				if (id.search(&amp;quot;tm_comment_&amp;quot;) == 0) {&lt;br /&gt;
					if ((group_count &amp;gt; 0) || (group_showempty == true)) new_template += group_template;&lt;br /&gt;
					group_count = 0;&lt;br /&gt;
					group_template = &amp;quot;&amp;quot;;&lt;br /&gt;
					group_showempty = Template_new[id].showempty;&lt;br /&gt;
//  					group_template += Template_new[id].value;&lt;br /&gt;
				} else {&lt;br /&gt;
					if (tmp_param.length &amp;lt; parameter_space.length) tmp_param = (tmp_param + parameter_space).substr(0, parameter_space.length);&lt;br /&gt;
					if (tmp_param.search(xNumber) == 0) {&lt;br /&gt;
						group_template += &amp;quot;|&amp;quot;;&lt;br /&gt;
					} else {&lt;br /&gt;
						group_template += &amp;quot;| &amp;quot; + tmp_param;&lt;br /&gt;
					}&lt;br /&gt;
					if (((&amp;quot;&amp;quot;+Template_new[id].tm_value).length &amp;gt; 0) || (Template_new[id].getAttribute(&amp;quot;tm_predefined&amp;quot;) == &amp;quot;false&amp;quot;)) {&lt;br /&gt;
						if (tmp_param.search(xNumber) == 0) {&lt;br /&gt;
							group_template += Template_new[id].tm_value;&lt;br /&gt;
						} else {&lt;br /&gt;
							group_template += &amp;quot;= &amp;quot; + Template_new[id].tm_value;&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					group_template += &amp;quot;\n&amp;quot;;&lt;br /&gt;
					if ((&amp;quot;&amp;quot;+Template_new[id].tm_value).length &amp;gt; 0) group_count++;&lt;br /&gt;
				}&lt;br /&gt;
			} else if (((&amp;quot;&amp;quot;+Template_new[id].tm_value).length &amp;gt; 0) &amp;amp;&amp;amp; ((id.search(&amp;quot;tm_comment_&amp;quot;) &amp;lt; 0))) {&lt;br /&gt;
				if (tmp_param.length &amp;lt; parameter_space.length) tmp_param = (tmp_param + parameter_space).substr(0, parameter_space.length);&lt;br /&gt;
				new_template += prevEmptyNumbers;&lt;br /&gt;
				prevEmptyNumbers = &#039;&#039;;&lt;br /&gt;
				if (tmp_param.search(xNumber) == 0) {&lt;br /&gt;
					new_template += &amp;quot;|&amp;quot;+ Template_new[id].tm_value;&lt;br /&gt;
				} else {&lt;br /&gt;
					new_template += &amp;quot;| &amp;quot;+ tmp_param + &amp;quot;= &amp;quot; + Template_new[id].tm_value;&lt;br /&gt;
				}&lt;br /&gt;
			} else if (tmp_param.search(xNumber) == 0) prevEmptyNumbers += &#039;|&#039;;&lt;br /&gt;
		}&lt;br /&gt;
		if (output == true) if ((group_count &amp;gt; 0) || (group_showempty == true)) new_template += group_template;&lt;br /&gt;
		new_template += &amp;quot;}}&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
		switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		/* insert source into Editbox at cursor */&lt;br /&gt;
 		var scroll_top = Target[&amp;quot;Editbox&amp;quot;].scrollTop;&lt;br /&gt;
		Target[&amp;quot;Editbox&amp;quot;].value = Target[&amp;quot;Editbox&amp;quot;].value.substring(0, Target[&amp;quot;start&amp;quot;]) + new_template + Target[&amp;quot;Editbox&amp;quot;].value.substring(Target[&amp;quot;end&amp;quot;] + 1);&lt;br /&gt;
		if (is_ie) {&lt;br /&gt;
			var Range = Target[&amp;quot;Editbox&amp;quot;].createTextRange();&lt;br /&gt;
			Range.collapse(true);&lt;br /&gt;
			Range.moveEnd(&#039;character&#039;, Target[&amp;quot;start&amp;quot;]);&lt;br /&gt;
			Range.moveStart(&#039;character&#039;, Target[&amp;quot;start&amp;quot;]);&lt;br /&gt;
			Range.select();&lt;br /&gt;
		} else {&lt;br /&gt;
			Target[&amp;quot;Editbox&amp;quot;].selectionStart = Target[&amp;quot;cursor&amp;quot;];&lt;br /&gt;
			Target[&amp;quot;Editbox&amp;quot;].selectionEnd = Target[&amp;quot;cursor&amp;quot;];&lt;br /&gt;
			Target[&amp;quot;Editbox&amp;quot;].scrollTop = scroll_top;&lt;br /&gt;
		}&lt;br /&gt;
		switchOnWikEd();&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function cancelTemplate(e)&lt;br /&gt;
	{&lt;br /&gt;
		if (!is_ie) e.preventDefault();&lt;br /&gt;
		switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
		switchOnWikEd();&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function createXML(e) {&lt;br /&gt;
		if (!is_ie) e.preventDefault();&lt;br /&gt;
 &lt;br /&gt;
		var full_name = ((template_name.search(new RegExp(locals[&amp;quot;User&amp;quot;]+&amp;quot;( [^:]+){0,1}:&amp;quot;),&amp;quot;&amp;quot;)&amp;gt;=0)?(&amp;quot;&amp;quot;):(locals[&amp;quot;Template&amp;quot;]+&amp;quot;:&amp;quot;))+template_name;&lt;br /&gt;
		var xml_window = window.open(wgServer + wgScriptPath + &#039;/index.php?action=edit&amp;amp;summary=&#039; + encodeURIComponent(locals[&amp;quot;sys_xml_generated_summary&amp;quot;]) + &#039;&amp;amp;title=&#039; + encodeURIComponent(full_name) + &#039;/XML&#039;);&lt;br /&gt;
		xml_window.focus();&lt;br /&gt;
		var textbox = xml_window.document.getElementById(&#039;wpTextbox1&#039;);&lt;br /&gt;
		if (textbox) textbox.value = generated_xml;&lt;br /&gt;
		else {&lt;br /&gt;
			addEventListener(xml_window, &#039;load&#039;, function (e) {&lt;br /&gt;
				var textbox = xml_window.document.getElementById(&#039;wpTextbox1&#039;);&lt;br /&gt;
				if (textbox) textbox.value = generated_xml;&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function switch_view_to(view)&lt;br /&gt;
{&lt;br /&gt;
	var Editbox = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
	var Tm_box = document.getElementById(&amp;quot;tm_dummy_div&amp;quot;);&lt;br /&gt;
	if (view == null) view = &amp;quot;&amp;quot;;&lt;br /&gt;
	if (((view == &amp;quot;VM&amp;quot;)  || (view == &amp;quot;&amp;quot;)) &amp;amp;&amp;amp; (act_view == &amp;quot;EB&amp;quot;)) {&lt;br /&gt;
		if (Editbox != null) {&lt;br /&gt;
			setStyleAttribute(Editbox, {&amp;quot;visibility&amp;quot;:&amp;quot;hidden&amp;quot;});&lt;br /&gt;
			Editbox.readOnly = true;&lt;br /&gt;
			document.getElementById(&amp;quot;wpSave&amp;quot;).disabled = true;&lt;br /&gt;
			document.getElementById(&amp;quot;wpPreview&amp;quot;).disabled = true;&lt;br /&gt;
			document.getElementById(&amp;quot;wpDiff&amp;quot;).disabled = true;&lt;br /&gt;
		}&lt;br /&gt;
		if (Tm_box != null) setStyleAttribute(Tm_box, {&amp;quot;z-index&amp;quot;:&amp;quot;99&amp;quot;, &amp;quot;visibility&amp;quot;:&amp;quot;visible&amp;quot;});&lt;br /&gt;
		act_view = &amp;quot;VM&amp;quot;;&lt;br /&gt;
	} else if (((view == &amp;quot;EB&amp;quot;)  || (view == &amp;quot;&amp;quot;)) &amp;amp;&amp;amp; (act_view == &amp;quot;VM&amp;quot;)) {&lt;br /&gt;
		if (Tm_box != null) setStyleAttribute(Tm_box, {&amp;quot;visibility&amp;quot;:&amp;quot;hidden&amp;quot;, &amp;quot;z-index&amp;quot;:&amp;quot;0&amp;quot;});&lt;br /&gt;
		if (Editbox != null) {&lt;br /&gt;
			if (view == &amp;quot;EB&amp;quot;) {&lt;br /&gt;
				// removes user interface&lt;br /&gt;
				if (Tm_box) Tm_box.parentNode.removeChild(Tm_box);&lt;br /&gt;
				Tm_box = null;&lt;br /&gt;
 &lt;br /&gt;
				if (is_ie) Editbox.removeAttribute(&amp;quot;readOnly&amp;quot;);&lt;br /&gt;
				else Editbox.removeAttribute(&amp;quot;readonly&amp;quot;);&lt;br /&gt;
				document.getElementById(&amp;quot;wpSave&amp;quot;).removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
				document.getElementById(&amp;quot;wpPreview&amp;quot;).removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
				document.getElementById(&amp;quot;wpDiff&amp;quot;).removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			setStyleAttribute(Editbox, {&amp;quot;visibility&amp;quot;:&amp;quot;visible&amp;quot;});&lt;br /&gt;
			Editbox.focus();&lt;br /&gt;
		}&lt;br /&gt;
		act_view = &amp;quot;EB&amp;quot;;&lt;br /&gt;
	} else {&lt;br /&gt;
		log_message(&amp;quot;Internal error: act_view conflicts with view parameter&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
var help_mutex = false;&lt;br /&gt;
function showHelp(e)&lt;br /&gt;
{&lt;br /&gt;
	if (help_mutex == true) return;&lt;br /&gt;
	help_mutex = true;&lt;br /&gt;
	if (!is_ie) e.preventDefault();&lt;br /&gt;
	Act_input = ((is_ie)?e.srcElement:e.target);&lt;br /&gt;
	var text = Act_input.title;&lt;br /&gt;
	/* write help text and resize formular */&lt;br /&gt;
	var Tm_main = document.getElementById(&amp;quot;tm_main_frame&amp;quot;);&lt;br /&gt;
	var Tm_header=document.getElementById(&amp;quot;tm_header&amp;quot;);&lt;br /&gt;
	var Tm_form=document.getElementById(&amp;quot;tm_form&amp;quot;);&lt;br /&gt;
	var rel_scroll_pos = Tm_form.scrollTop / Tm_form.scrollHeight;&lt;br /&gt;
	var Tm_footer=document.getElementById(&amp;quot;tm_footer&amp;quot;);&lt;br /&gt;
	var new_height = Tm_main.parentNode.offsetHeight;&lt;br /&gt;
 &lt;br /&gt;
	document.getElementById(&amp;quot;tm_state&amp;quot;).firstChild.data = text;&lt;br /&gt;
 &lt;br /&gt;
	new_height = new_height - Tm_header.offsetHeight - Tm_footer.offsetHeight;&lt;br /&gt;
	setStyleAttribute(Tm_form, {&amp;quot;height&amp;quot;:(new_height+ &amp;quot;px&amp;quot;)});&lt;br /&gt;
	setStyleAttribute(Tm_form, {&amp;quot;height&amp;quot;:((new_height + (Tm_main.parentNode.offsetHeight - Tm_main.offsetHeight) )+ &amp;quot;px&amp;quot;)});&lt;br /&gt;
	Tm_form.scrollTop = Tm_form.scrollHeight * rel_scroll_pos;&lt;br /&gt;
	help_mutex = false;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function resizeHandler(e)&lt;br /&gt;
{&lt;br /&gt;
	Act_input = ((is_ie)?e.srcElement:e.target);&lt;br /&gt;
	Act_input.tm_old_size = Act_input.size;&lt;br /&gt;
	resizeInputBox(Act_input, 1);&lt;br /&gt;
	if ((is_gecko) &amp;amp;&amp;amp; (Act_input.tm_old_size != Act_input.size)) {&lt;br /&gt;
		var org_value = Act_input.value;&lt;br /&gt;
		var org_start = Act_input.selectionStart;&lt;br /&gt;
		var org_end = Act_input.selectionEnd;&lt;br /&gt;
		Act_input.value = &amp;quot;&amp;quot;;&lt;br /&gt;
		Act_input.value = org_value;&lt;br /&gt;
		if (org_end &amp;gt;= org_start) Act_input.selectionEnd = org_end;&lt;br /&gt;
		Act_input.selectionStart = org_start;&lt;br /&gt;
		if (org_end &amp;lt; org_start) Act_input.selectionEnd = org_end;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function insertUnknown(e)&lt;br /&gt;
{&lt;br /&gt;
	if (!is_ie) e.preventDefault();&lt;br /&gt;
	var text = ((is_ie)?e.srcElement:e.target).title;&lt;br /&gt;
	if ((Act_input != null) &amp;amp;&amp;amp; (Act_input.nodeName.search(/^(input|select|textarea)$/i) ==0) &amp;amp;&amp;amp; (Act_input.type.search(/^checkbox$/i) &amp;lt; 0)) Act_input.value = text;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function selectGroup(e)&lt;br /&gt;
{&lt;br /&gt;
	if (!is_ie) e.preventDefault();&lt;br /&gt;
	try {&lt;br /&gt;
		var text = &amp;quot;&amp;quot; + ((is_ie)?e.srcElement:e.target).id;&lt;br /&gt;
		var position = Math.round(parseFloat(text.replace(/^.+_([0-9\.]+)$/,&amp;quot;$1&amp;quot;)) * ((is_ie)?2:1));&lt;br /&gt;
		var Group_div = document.getElementById(&amp;quot;tm_group_&amp;quot;+position);&lt;br /&gt;
		var Form_div = document.getElementById(&amp;quot;tm_form&amp;quot;);&lt;br /&gt;
		Form_div.scrollTop = Group_div.offsetTop - Group_div.parentNode.offsetTop;&lt;br /&gt;
	} catch(e) {&lt;br /&gt;
		log_message(e.message+&amp;quot;\n&amp;quot;+&amp;quot;Internal error: Can&#039;t select group div with id=\&amp;quot;tm_group_&amp;quot;+position+&amp;quot;\&amp;quot;.&amp;quot;);&lt;br /&gt;
		switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function parse_template_source(source)&lt;br /&gt;
{&lt;br /&gt;
	var x_comment = /&amp;lt;!--.*?--&amp;gt;/g;&lt;br /&gt;
	source = replace_all(source, x_comment, &amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
	/* replace split chars within nowiki segments and nested templates */&lt;br /&gt;
	var x_nowiki_1 = /(&amp;lt;nowiki&amp;gt;.*?)[|](.*?&amp;lt;\/nowiki&amp;gt;)/g;&lt;br /&gt;
	var x_nested = /((?:^|[^{])\{\{[^{}]*?)[|]([^{}]*?\}\}(?:$|[^}]))/g;&lt;br /&gt;
	source = replace_all(source, x_nowiki_1, &amp;quot;$1###TM###$2&amp;quot;);&lt;br /&gt;
	source = replace_all(source, x_nested, &amp;quot;$1###TM###$2&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
	/* replace split chars within wikilinks */&lt;br /&gt;
	var x_wikilinks = /(\[\[[^\]]+)\|([^\]]*)/g;&lt;br /&gt;
	source = replace_all(source, x_wikilinks, &amp;quot;$1###TM###$2&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
	var parameter = source.split(&amp;quot;|&amp;quot;);&lt;br /&gt;
	var Template_given = new Object();&lt;br /&gt;
	for (var i = 0; i &amp;lt; parameter.length; i++) {&lt;br /&gt;
		parameter[i] = replace_all(parameter[i], /###TM###/g, &amp;quot;|&amp;quot;);&lt;br /&gt;
		parameter[i] = trim(parameter[i]);&lt;br /&gt;
		if (i==0) {&lt;br /&gt;
			Template_given[&amp;quot;template_name&amp;quot;] = parameter[i];&lt;br /&gt;
		} else {&lt;br /&gt;
			var parameter_name = &amp;quot;&amp;quot;;&lt;br /&gt;
			var parameter_value = &amp;quot;&amp;quot;;&lt;br /&gt;
			var first_equal_char = parameter[i].search(&amp;quot;=&amp;quot;);&lt;br /&gt;
			if (first_equal_char &amp;lt; 0) {&lt;br /&gt;
				parameter_name = &amp;quot;tm_form_&amp;quot; + i;&lt;br /&gt;
				parameter_value = parameter[i];&lt;br /&gt;
			} else {&lt;br /&gt;
				parameter_name = &amp;quot;tm_form_&amp;quot; + trim(parameter[i].substring(0, first_equal_char));&lt;br /&gt;
				parameter_value = trim(parameter[i].substring(first_equal_char + 1));&lt;br /&gt;
			}&lt;br /&gt;
			if (Template_given[parameter_name] != null) {&lt;br /&gt;
				log_message(&amp;quot;Syntax error: Parameter name \&amp;quot;&amp;quot;+parameter_name+&amp;quot;\&amp;quot; already in use.&amp;quot;);&lt;br /&gt;
				return null;&lt;br /&gt;
			}&lt;br /&gt;
			/* correct format errors */&lt;br /&gt;
 &lt;br /&gt;
			Template_given[parameter_name] = parameter_value;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	Template_given[&amp;quot;source&amp;quot;] = &amp;quot;source code&amp;quot;;&lt;br /&gt;
	return Template_given;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/* ==helper functions===================================================*/&lt;br /&gt;
function replace_all(text, regexp, replacement)&lt;br /&gt;
{&lt;br /&gt;
	var count_tmp = 0;&lt;br /&gt;
	while (text.search(regexp) &amp;gt;= 0) {&lt;br /&gt;
		text = text.replace(regexp, replacement);&lt;br /&gt;
		count_tmp++;&lt;br /&gt;
		if (count_tmp &amp;gt; 1000) {&lt;br /&gt;
			log_message(&amp;quot;replace_all: Internal error - endless loop.&amp;quot;);&lt;br /&gt;
			return null;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return text;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function trim(text)&lt;br /&gt;
{&lt;br /&gt;
	text = &amp;quot;&amp;quot; + text;&lt;br /&gt;
	text = replace_all(text, /^\s+/g, &amp;quot;&amp;quot;);&lt;br /&gt;
	text = replace_all(text, /^(.*?)\s+$/, &amp;quot;$1&amp;quot;);&lt;br /&gt;
	text = replace_all(text, &amp;quot;\n\n&amp;quot;, &amp;quot;\n&amp;quot;);&lt;br /&gt;
	if (text.search(/[^\s]/) &amp;lt; 0) text = &amp;quot;&amp;quot;;&lt;br /&gt;
	return text;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/**&lt;br /&gt;
  Creates a new GUI node.&lt;br /&gt;
 &lt;br /&gt;
 @author [[de:Benutzer:Revvar]]&lt;br /&gt;
 @param nRoot null or reference to the prefered root node object&lt;br /&gt;
 @param nType HTML type string (&amp;quot;div&amp;quot; for example)&lt;br /&gt;
 @param nText null or string with the text for the text child node&lt;br /&gt;
 @param nAttr null or object with attribute attributes, ({style:&amp;quot;...&amp;quot;,width:&amp;quot;100%&amp;quot;} for example)&lt;br /&gt;
 @return the new node object&lt;br /&gt;
*/&lt;br /&gt;
function cNode(nRoot,nType,nText,nAttr)&lt;br /&gt;
{&lt;br /&gt;
	var elem=document.createElement(nType);&lt;br /&gt;
	if (nAttr) for (var aid in nAttr) {&lt;br /&gt;
		if (aid == &amp;quot;style&amp;quot;) {&lt;br /&gt;
			var style_attr = nAttr[aid].split(&amp;quot;;&amp;quot;);&lt;br /&gt;
			var style_obj = new Object();&lt;br /&gt;
			for (var i = 0; i &amp;lt; style_attr.length; i++) {&lt;br /&gt;
				var style_id = style_attr[i].replace(/^\s*([^:]+):.*$/,&amp;quot;$1&amp;quot;);&lt;br /&gt;
				var style_value = style_attr[i].replace(/^\s*[^:]+:\s*([^\s;]+)[\s;]*$/,&amp;quot;$1&amp;quot;);&lt;br /&gt;
				if (style_id.length &amp;gt; 0) style_obj[style_id] = style_value;&lt;br /&gt;
// 				log_message(style_id + &amp;quot;:&amp;quot; + style_value);&lt;br /&gt;
			}&lt;br /&gt;
		  setStyleAttribute(elem, style_obj);&lt;br /&gt;
		} else {&lt;br /&gt;
			if (aid == &amp;quot;class&amp;quot;) elem.className = nAttr[aid];&lt;br /&gt;
			else elem.setAttribute(aid, nAttr[aid]);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	if (nText) elem.appendChild(document.createTextNode(nText));&lt;br /&gt;
	if (nRoot) nRoot.appendChild(elem);&lt;br /&gt;
	return elem;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
function setStyleAttribute(Node, Attribute)&lt;br /&gt;
{&lt;br /&gt;
	if ((Node) &amp;amp;&amp;amp; (Attribute)) {&lt;br /&gt;
		 for (var aid in Attribute) {&lt;br /&gt;
			 Node.style[aid] = Attribute[aid];&lt;br /&gt;
		 }&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function addEventListener(Node, event, callback)&lt;br /&gt;
{&lt;br /&gt;
	if (is_ie) Node.attachEvent(&amp;quot;on&amp;quot;+event, callback);&lt;br /&gt;
	else Node.addEventListener(event, callback, false);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function removeEventListener(Node, event, callback)&lt;br /&gt;
{&lt;br /&gt;
	if (is_ie) Node.detachEvent(&amp;quot;on&amp;quot;+event, callback);&lt;br /&gt;
	else Node.removeEventListener(event, callback, false);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
//XMLHttpRequest wrapper, with timeout support&lt;br /&gt;
function oXmlHttpRequest(data)&lt;br /&gt;
{&lt;br /&gt;
	//preconditions&lt;br /&gt;
	if ((data.onload==null) || (data.onreadystatechange==null)) throw(&amp;quot;oXmlHttpRequest-precondition&amp;quot;);&lt;br /&gt;
	var orgHandler={id:(iRequestID++),onload:data.onload,onreadystatechange:data.onreadystatechange,onerror:data.onerror,timeout:null,valid:true};&lt;br /&gt;
 &lt;br /&gt;
	data.onload=function (rD) {&lt;br /&gt;
		if (orgHandler.timeout) clearTimeout(orgHandler.timeout);&lt;br /&gt;
		if (bBreak) return; //cancel by user&lt;br /&gt;
		if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
		orgHandler.onload(rD);&lt;br /&gt;
		orgHandler.valid=false;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	data.onreadystatechange=function (rD) {&lt;br /&gt;
		if (orgHandler.timeout) clearTimeout(orgHandler.timeout);&lt;br /&gt;
		if (bBreak) return; //cancel by user&lt;br /&gt;
		if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
		orgHandler.onreadystatechange(rD);&lt;br /&gt;
		orgHandler.timeout=setTimeout(fTimeout,HTTPTIMEOUT);&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	data.onerror=function (rD)&lt;br /&gt;
	{&lt;br /&gt;
		if (orgHandler.timeout) clearTimeout(orgHandler.timeout);&lt;br /&gt;
		if (bBreak) return; //cancel by user&lt;br /&gt;
		if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
		orgHandler.valid=false;//discard request&lt;br /&gt;
		if (orgHandler.onerror) orgHandler.onerror(rD);&lt;br /&gt;
		log_message(&amp;quot;HTTP-Error &amp;quot;+rD.status+&amp;quot;:&amp;quot;+rD.statusText);&lt;br /&gt;
		fRetry(&amp;quot;Error: &amp;quot;+rD.status+&amp;quot;.&amp;quot;);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function fRetry(text)&lt;br /&gt;
	{&lt;br /&gt;
		if (data.silent) return;&lt;br /&gt;
		var bRetry=confirm(text+&amp;quot; &amp;quot;+locals[&amp;quot;sys_question_repeat_http_request&amp;quot;]);&lt;br /&gt;
		if (bRetry==false) {&lt;br /&gt;
			bBreak=true;&lt;br /&gt;
			if (data.on_cancel) data.on_cancel();&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		//retry request&lt;br /&gt;
		setTimeout(function() {oXmlHttpRequest({method:data.method,url:data.url,headers:data.headers,data:data.data,onload:orgHandler.onload,onerror:orgHandler.onerror,onreadystatechange:orgHandler.onreadystatechange})},10);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function fTimeout()&lt;br /&gt;
	{&lt;br /&gt;
		if (orgHandler.timeout) clearTimeout(orgHandler.timeout);&lt;br /&gt;
		if (bBreak) return; //cancel by user&lt;br /&gt;
		if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
		var bWait=false;&lt;br /&gt;
		if (!data.silent) bWait=confirm(locals[&amp;quot;sys_question_wait_for_http_response&amp;quot;].replace(&amp;quot;$1&amp;quot;, Math.round(HTTPTIMEOUT/1000)));&lt;br /&gt;
		if (bWait==false) {&lt;br /&gt;
			orgHandler.valid=false;//discard request&lt;br /&gt;
			fRetry(&amp;quot;Timeout: &amp;quot;+data.url+&amp;quot;\n&amp;quot;);&lt;br /&gt;
		} else {&lt;br /&gt;
			if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
			orgHandler.timeout=setTimeout(fTimeout,HTTPTIMEOUT);&lt;br /&gt;
		}&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	orgHandler.timeout=setTimeout(fTimeout,HTTPTIMEOUT);&lt;br /&gt;
	GM_xmlhttpRequest(data);&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function GM_xmlhttpRequest(req)&lt;br /&gt;
{&lt;br /&gt;
	if (is_gecko &amp;amp;&amp;amp; (url.search(&amp;quot;file://&amp;quot;) == 0)) {&lt;br /&gt;
		/* Debugging with a local copy */&lt;br /&gt;
		try {&lt;br /&gt;
			netscape.security.PrivilegeManager.enablePrivilege(&amp;quot;UniversalBrowserRead&amp;quot;);&lt;br /&gt;
		} catch (e) {&lt;br /&gt;
			alert(&amp;quot;Internal error: Permission UniversalBrowserRead denied.&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	var xmlHttp = sajax_init_object();// gets the XMLHttpRequest object (depends on ajax.js)&lt;br /&gt;
 &lt;br /&gt;
	xmlHttp.open(req.method, req.url, true);&lt;br /&gt;
	xmlHttp.onreadystatechange = function () {&lt;br /&gt;
		if (xmlHttp.readyState == 4) {&lt;br /&gt;
			req.onload(xmlHttp);&lt;br /&gt;
		} else req.onreadystatechange;&lt;br /&gt;
	};&lt;br /&gt;
	for (var name in req.headers) {&lt;br /&gt;
		xmlHttp.setRequestHeader(name, req.headers[name]);&lt;br /&gt;
	}&lt;br /&gt;
	xmlHttp.send(req.data);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
var resize_mutex = false;&lt;br /&gt;
 function resizeInputBox(oInputBox, extra_spaces) {&lt;br /&gt;
	if (resize_mutex == true) return;&lt;br /&gt;
	resize_mutex = true;&lt;br /&gt;
	if (!((oInputBox.nodeName) &amp;amp;&amp;amp; (oInputBox.nodeName.search(/^input$/i) == 0) &amp;amp;&amp;amp; (oInputBox.type) &amp;amp;&amp;amp; (oInputBox.type.search(/^text$/i) == 0))) {&lt;br /&gt;
		alert(&amp;quot;Internal error: call of CInputBoxResizer.opResize with an unsupported node type: &amp;quot; + oInputBox);&lt;br /&gt;
		resize_mutex = false;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* first call for this node ? */&lt;br /&gt;
	if (!(oInputBox.tm_org_size)) {&lt;br /&gt;
		oInputBox.tm_org_size = oInputBox.size; // save orginal size&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	if (oInputBox.tm_org_size &amp;gt;= oInputBox.value.length)  {&lt;br /&gt;
		resize_mutex = false;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	oInputBox.size = oInputBox.value.length + extra_spaces;&lt;br /&gt;
	var right_pos = oInputBox.offsetWidth;&lt;br /&gt;
	var tmp_str = &amp;quot;&amp;quot;;&lt;br /&gt;
	var node = oInputBox;&lt;br /&gt;
	var table_node = null;&lt;br /&gt;
	do {&lt;br /&gt;
		if (node.className.search(&amp;quot;tm_table&amp;quot;) &amp;gt;= 0) table_node = node;&lt;br /&gt;
		else {&lt;br /&gt;
			right_pos += node.offsetLeft;&lt;br /&gt;
			tmp_str += node.offsetLeft + &amp;quot;px +&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
		node = node.parentNode;&lt;br /&gt;
	} while (node.className.search(&amp;quot;tm_group&amp;quot;) &amp;lt; 0);&lt;br /&gt;
	if ((right_pos + 8) &amp;gt; node.offsetWidth) {&lt;br /&gt;
		if (is_ie) {&lt;br /&gt;
			while ((right_pos + 8) &amp;gt; node.offsetWidth) {&lt;br /&gt;
				var old_width = oInputBox.offsetWidth;&lt;br /&gt;
				oInputBox.size--;&lt;br /&gt;
				right_pos -= old_width - oInputBox.offsetWidth;&lt;br /&gt;
			}&lt;br /&gt;
		} else {&lt;br /&gt;
			oInputBox.size = oInputBox.tm_org_size;&lt;br /&gt;
			var child = node.firstChild;&lt;br /&gt;
			if (table_node != null) table_node.className = &amp;quot;tm_table tm_table_max&amp;quot;; else alert(&amp;quot;internal error: table not found&amp;quot;);&lt;br /&gt;
			oInputBox.className = &amp;quot;tm_input tm_input_max&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
		removeEventListener(oInputBox, &amp;quot;keyup&amp;quot;, resizeHandler);&lt;br /&gt;
	}&lt;br /&gt;
	resize_mutex = false;&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
} // tm_init&lt;br /&gt;
 &lt;br /&gt;
/* XXX: public for the xsl include hack */&lt;br /&gt;
function parseXML(text)&lt;br /&gt;
{&lt;br /&gt;
	var dom = null;&lt;br /&gt;
	if (window.ActiveXObject)&lt;br /&gt;
	{&lt;br /&gt;
			dom=new ActiveXObject(&amp;quot;Microsoft.XMLDOM&amp;quot;);&lt;br /&gt;
			dom.async=&amp;quot;false&amp;quot;;&lt;br /&gt;
			dom.loadXML(text);&lt;br /&gt;
			return dom;&lt;br /&gt;
	} else {&lt;br /&gt;
		var parser=new DOMParser();&lt;br /&gt;
		dom=parser.parseFromString(text,&amp;quot;text/xml&amp;quot;);&lt;br /&gt;
		var error=dom.getElementsByTagName(&amp;quot;parsererror&amp;quot;);&lt;br /&gt;
		if (!error[0]) {&lt;br /&gt;
			return dom;&lt;br /&gt;
		} else {&lt;br /&gt;
			var sError=error[0].firstChild.nodeValue;&lt;br /&gt;
			log_message(sError);&lt;br /&gt;
			var aError=sError.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
			if (aError[2]) {&lt;br /&gt;
				aLocation=aError[2].match(/[0-9]+/g);&lt;br /&gt;
				if (aLocation[0]) {&lt;br /&gt;
					var aHtmlText=text.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
					log_message(&amp;quot;error line:&amp;quot;+aHtmlText[aLocation[0]-1]);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
			} else log_message(&amp;quot;no error position&amp;quot;);&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function log_message(msg)&lt;br /&gt;
{&lt;br /&gt;
	alert(msg);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
hookEvent(&amp;quot;load&amp;quot;, tm_init);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
//## File: tm_w2t_infobox_schienenfahrzeug.js #################&lt;br /&gt;
 &lt;br /&gt;
/**&lt;br /&gt;
* Wiki2Template-Plugin des Vorlagen-Meister fuer die Vorlage &amp;quot;Infobox Schienenfahrzeug&amp;quot;, Version: 0.1beta, Date: 2007-02-04&lt;br /&gt;
* Copyright (C) 2007 [[de:Benutzer:Revvar]] &amp;lt;revvar@gmx.de&amp;gt;&lt;br /&gt;
* Released under the GPL license version 2&lt;br /&gt;
* http://www.gnu.org/copyleft/gpl.html&lt;br /&gt;
*&lt;br /&gt;
* This program is free software; you can redistribute it and/or modify&lt;br /&gt;
* it under the terms of the GNU General Public License version 2 as&lt;br /&gt;
* published by the Free Software Foundation.&lt;br /&gt;
*&lt;br /&gt;
* This program is distributed in the hope that it will be useful,&lt;br /&gt;
* but WITHOUT ANY WARRANTY; without even the implied warranty&lt;br /&gt;
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE.&lt;br /&gt;
* See the GNU General Public License for more details.&lt;br /&gt;
*/&lt;br /&gt;
 &lt;br /&gt;
function TM_P_Infobox_Schienenfahrzeug()&lt;br /&gt;
{&lt;br /&gt;
	var self = this;&lt;br /&gt;
	TM_P_Wiki2Template.call(this);&lt;br /&gt;
 &lt;br /&gt;
	var name = &amp;quot;Infobox Schienenfahrzeug&amp;quot;;&lt;br /&gt;
	this.opGetName = function() {return name;};&lt;br /&gt;
 &lt;br /&gt;
	var template = &amp;quot;Infobox Schienenfahrzeug&amp;quot;;&lt;br /&gt;
	this.opGetTemplate = function() {return template;};&lt;br /&gt;
 &lt;br /&gt;
	var super_opTransform = this.opTransform;&lt;br /&gt;
	this.opTransform = function(wiki_text) {&lt;br /&gt;
		wiki_text = super_opTransform(wiki_text);&lt;br /&gt;
		var Template = new Object();&lt;br /&gt;
		Template[&amp;quot;template_name&amp;quot;] = template;&lt;br /&gt;
		Template[&amp;quot;source&amp;quot;] = &amp;quot;plug-in&amp;quot;;&lt;br /&gt;
		var line = wiki_text.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
		for (var i = 0; i &amp;lt; line.length; i++) if ((line[i].search(/\s*(\|-|\|\}|\{\|)/) != 0) &amp;amp;&amp;amp; (line[i].search(/\|\|/) &amp;gt; 0)) {&lt;br /&gt;
			var entry = line[i].split(&amp;quot;||&amp;quot;);&lt;br /&gt;
			if (entry.length != 2) {alert(&amp;quot;TM_P_Infobox_Schienenfahrzeug: Momentan wird nur ein ||-Trenner pro Zeile unterstützt.&amp;quot;);return null;}&lt;br /&gt;
			var x_wikilink = /\[\[[^|]+\|([^\]]+)\]\]/;&lt;br /&gt;
			if (entry[0].search(x_wikilink) &amp;gt;= 0) entry[0] = entry[0].replace(x_wikilink, &amp;quot;$1&amp;quot;);&lt;br /&gt;
			entry[0] = entry[0].replace(/^\s*\|\s*/g, &amp;quot;&amp;quot;).replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;).replace(/[^a-zA-ZäöüÄÖÜß0-9_]/g,&amp;quot;&amp;quot;);&lt;br /&gt;
			entry[1] = entry[1].replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			if (entry[1].charAt(0) == &amp;quot;|&amp;quot;) entry[1] = entry[1].substring(1);&lt;br /&gt;
			if (entry[0].search(/^Indienststellung$/i) == 0) entry[0] = &amp;quot;Baujahre&amp;quot;;&lt;br /&gt;
			if ((entry[1].search(/^\s*k\s*\.\s*A\s*(\.){0,1}\s*$/) &amp;lt; 0) &amp;amp;&amp;amp; (entry[1].search(/^\s*-+\s*/) &amp;lt; 0)) {&lt;br /&gt;
				Template[&amp;quot;tm_form_&amp;quot;+entry[0]] = entry[1];&lt;br /&gt;
			}&lt;br /&gt;
		} else if (line[i].search(/^\s*!.*((color:|background)[^\|]*){2,2}\|.*/) == 0) {&lt;br /&gt;
			var base_color_name = {&amp;quot;aqua&amp;quot;:&amp;quot;00ffff&amp;quot;, &amp;quot;black&amp;quot;:&amp;quot;000000&amp;quot;, &amp;quot;blue&amp;quot;:&amp;quot;0000ff&amp;quot;, &amp;quot;fuchsia&amp;quot;:&amp;quot;ff00ff&amp;quot;, &amp;quot;gray&amp;quot;:&amp;quot;808080&amp;quot;, &amp;quot;green&amp;quot;:&amp;quot;008000&amp;quot;, &amp;quot;lime&amp;quot;:&amp;quot;00ff00&amp;quot;, &amp;quot;maroon&amp;quot;:&amp;quot;800000&amp;quot;, &amp;quot;navy&amp;quot;:&amp;quot;000080&amp;quot;, &amp;quot;olive&amp;quot;:&amp;quot;808000&amp;quot;, &amp;quot;purple&amp;quot;:&amp;quot;800080&amp;quot;, &amp;quot;red&amp;quot;:&amp;quot;ff0000&amp;quot;, &amp;quot;silver&amp;quot;:&amp;quot;c0c0c0&amp;quot;, &amp;quot;teal&amp;quot;:&amp;quot;008080&amp;quot;, &amp;quot;white&amp;quot;:&amp;quot;ffffff&amp;quot;, &amp;quot;yellow&amp;quot;:&amp;quot;ffff00&amp;quot;};&lt;br /&gt;
			// Baureihe, Farbe1 und Farbe2&lt;br /&gt;
			var baureihe = line[i].substring(line[i].search(/\|/) + 1).replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			var farbe2 = line[i].replace(/^.*[^a-zA-Z]color\s*:\s*(#[a-fA-F0-9]{6,6}|[a-zA-Z]+).*/,&amp;quot;$1&amp;quot;).replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			var farbe1 = line[i].replace(/^.*[^a-zA-Z]background(-color){0,1}\s*:\s*(#[a-fA-F0-9]{6,6}|[a-zA-Z]+).*/,&amp;quot;$2&amp;quot;).replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			if (farbe1.charAt(0) == &amp;quot;#&amp;quot;) farbe1 = farbe1.substring(1);&lt;br /&gt;
			else if (base_color_name[farbe1.toLowerCase()]) farbe1 = base_color_name[farbe1.toLowerCase()]; else farbe1 = null;&lt;br /&gt;
			if (farbe2.charAt(0) == &amp;quot;#&amp;quot;) farbe2 = farbe2.substring(1);&lt;br /&gt;
			else if (base_color_name[farbe2.toLowerCase()]) farbe2 = base_color_name[farbe2.toLowerCase()]; else farbe2 = null;&lt;br /&gt;
			Template[&amp;quot;tm_form_Baureihe&amp;quot;] = baureihe;&lt;br /&gt;
			if (farbe1 != null) Template[&amp;quot;tm_form_Farbe1&amp;quot;] = farbe1;&lt;br /&gt;
			if (farbe2 != null) Template[&amp;quot;tm_form_Farbe2&amp;quot;] = farbe2;&lt;br /&gt;
		} else if (line[i].search(/^\s*(!|\|[^\-]).*\[\[(Bild|Image):[^\]]+\]\]/) == 0) {&lt;br /&gt;
			var bild = line[i].replace(/^\s*(!|\|).*\[\[(Bild|Image):([^\]]+)\]\].*/,&amp;quot;$3&amp;quot;);&lt;br /&gt;
			bild = bild.split(&amp;quot;|&amp;quot;);&lt;br /&gt;
			Template[&amp;quot;tm_form_Abbildung&amp;quot;] = bild[0];&lt;br /&gt;
			for (var k = 1; k &amp;lt; bild.length; k++) if (bild[k].search(&amp;quot;[0-9]px&amp;quot;) &amp;lt; 0) {&lt;br /&gt;
				Template[&amp;quot;tm_form_Name&amp;quot;] = bild[k].replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return Template;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
TM_P_Infobox_Schienenfahrzeug.prototype=new TM_P_Wiki2Template();&lt;br /&gt;
 &lt;br /&gt;
TM_PluginList.push(new TM_P_Infobox_Schienenfahrzeug()); // register plugin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
//test for autostart&lt;br /&gt;
//When the page loads,  tm starts automatically.&lt;br /&gt;
//If &amp;quot;url&amp;quot; and &amp;quot;text&amp;quot; regexp conditions are met, tm finds template &amp;quot;tl&amp;quot; and show it&lt;br /&gt;
 &lt;br /&gt;
var tm_autostart = [&lt;br /&gt;
	{&amp;quot;tl&amp;quot;: &amp;quot;Népesség&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;Sablon:Népesség\/&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;&amp;quot;}&lt;br /&gt;
];&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Gadget-sablonmester.css&amp;diff=1752</id>
		<title>MediaWiki:Gadget-sablonmester.css</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Gadget-sablonmester.css&amp;diff=1752"/>
		<updated>2012-07-21T09:42:16Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: Új oldal, tartalma: „div.tm_group {background-color:#eff5ff;float:left;clear:both;border:solid #9090B0 1px;margin-bottom:4px; margin-top:4px;width:99%;} div.tm_ie_group {width:97%;} div.tm_for…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;div.tm_group {background-color:#eff5ff;float:left;clear:both;border:solid #9090B0 1px;margin-bottom:4px; margin-top:4px;width:99%;}&lt;br /&gt;
div.tm_ie_group {width:97%;}&lt;br /&gt;
div.tm_formelem {background-color:transparent;float:left;padding:4px;margin:4px;margin-top:0px;page-break-inside:avoid;}&lt;br /&gt;
div.tm_main_frame {background-color:#ffffff;border:inset 2px #aaaaff;padding:4px;line-height:normal;}&lt;br /&gt;
div.tm_header {background-color:#dfe5ef;padding:4px;vertical-align:middle;float:left;width:99%;}&lt;br /&gt;
div.tm_form {overflow:auto;width:100%;clear:both;}&lt;br /&gt;
div.tm_group_selector {background-color:#cfd5df;width:100%;border-bottom:1px solid #bbbbbb;padding:1px;clear:both;float:left}&lt;br /&gt;
div.tm_unknown_selector {background-color:#e5efdf;padding:1px;width:100%;overflow:hidden;clear:both;}&lt;br /&gt;
div.tm_footer {background-color:#dfe5ef;width:100%;}&lt;br /&gt;
div.tm_state {background-color:#efdfef;padding-left:4px;padding-right:4px;overflow:hidden;border:solid #bbbbbb 1px;}&lt;br /&gt;
div.tm_plugin_selector {background-color:#ffffff;padding:8px;overflow:hidden;border:2px outset blue;width:320px;}&lt;br /&gt;
div.tm_load_progress {background-color:#ffffff;padding:8px;overflow:hidden;border:2px outset blue;width:480px;}&lt;br /&gt;
 &lt;br /&gt;
textarea.tm_textarea, input.tm_input {font-family:monospace;font-style:normal;font-variant:normal;font-weight:normal;font-size:9pt;font-stretch:normal;}&lt;br /&gt;
textarea.tm_textarea_auto {width:auto !important;}&lt;br /&gt;
textarea.tm_textarea_max {width:100% !important;}&lt;br /&gt;
table.tm_table {background-color:transparent;}&lt;br /&gt;
table.tm_table_max {width:100% !important;}&lt;br /&gt;
tr.tm_tr {background-color:transparent;}&lt;br /&gt;
td.tm_td_label {background-color:transparent;width:5em;white-space:nowrap;}&lt;br /&gt;
td.tm_td_content {background-color:transparent;}&lt;br /&gt;
input.tm_input_max {width:100% !important;}&lt;br /&gt;
 &lt;br /&gt;
span.tm_opt_param {vertical-align:top;margin-right:8px;white-space:nowrap;}&lt;br /&gt;
span.tm_param {vertical-align:top;margin-right:8px;text-decoration:underline;white-space:nowrap;}&lt;br /&gt;
span.tm_template {font-weight:bold;float:left;}&lt;br /&gt;
span.tm_version {font-size:60%;color:#777777;float:right;}&lt;br /&gt;
input.tm_template {float:left;}&lt;br /&gt;
 &lt;br /&gt;
div.tm_switch_button {float:left;width:23px;height:22px;background-image:url(//de.wikipedia.org/skins-1.5/common/images/button_template.png);background-repeat:no-repeat;font-size:9px;font-weight:bold;color:black;text-align:center;padding-top:2px;cursor:pointer;margin-right:2px;}&lt;br /&gt;
div.tm_switch_button:hover {float:left;width:23px;height:22px;background-image:url(//de.wikipedia.org/skins-1.5/common/images/button_template.png);background-repeat:no-repeat;font-size:9px;font-weight:bold;color:yellow;text-align:center;padding-top:2px;cursor:pointer;margin-right:2px;}&lt;br /&gt;
 &lt;br /&gt;
a.tm_button {background-image:none !important;text-decoration:none !important;font-weight:normal !important;color:black !important;page-break-inside:avoid;float:left;border:1px outset black;}&lt;br /&gt;
a.tm_selector {font-size:70%;padding:2px;margin:1px;}&lt;br /&gt;
a.tm_group_selector {background-color:#dfe5ef !important;}&lt;br /&gt;
a.tm_group_selector:hover {background-color:#eff5ff !important;}&lt;br /&gt;
a.tm_unknown_selector {background-color:#e5efdf !important;}&lt;br /&gt;
a.tm_unknown_selector:hover {background-color:#f5ffef !important;}&lt;br /&gt;
a.tm_v_selector {padding:4px;margin:2px;clear:both;}&lt;br /&gt;
a.tm_plugin_selector {background-color:#fefeff !important;}&lt;br /&gt;
a.tm_plugin_selector:hover {background-color:#dededf !important;}&lt;br /&gt;
a.tm_cancel_button {background-color:#ffeeee !important;}&lt;br /&gt;
a.tm_cancel_button:hover {background-color:#dfcece !important;}&lt;br /&gt;
 &lt;br /&gt;
h3.tm_group_heading {margin-top:2px;margin-left:2px;}&lt;br /&gt;
input.tm_error, select.tm_error {background-color:#ffc0c0;}&lt;br /&gt;
a.tm_toolbar {border-width:2px;border-color:gray;padding-left:3px;padding-right:3px;margin:0px;margin-right:4px;background-color:#BDCEE6 !important;vertical-align:bottom;}&lt;br /&gt;
a.tm_toolbar:hover {border-width:2px;border-color:gray;padding-left:3px;padding-right:3px;margin:0px;margin-right:4px;background-color:#BDDEFF !important;vertical-align:bottom;}&lt;br /&gt;
a.tm_toolbar:active {border:1px inset black;padding:1px;padding-left:5px;padding-right:3px;margin:0px;margin-right:4px;background-color:#BDDEFF !important;vertical-align:bottom;color:#9090ff !important;}&lt;br /&gt;
 &lt;br /&gt;
#tm_submit, #tm_cancel {padding:3px 15px;font-weight:bold;}&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Gadget-sablonmester.js&amp;diff=1751</id>
		<title>MediaWiki:Gadget-sablonmester.js</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Gadget-sablonmester.js&amp;diff=1751"/>
		<updated>2012-07-21T09:41:40Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: Új oldal, tartalma: „//## File: tm_locals_de.js ####################################   /* * Lokalisierung &amp;quot;Deutsch&amp;quot; des Vorlagen-Meister * Copyright (C) 2007-2009 :de:Benutzer:Revvar &amp;lt;revv…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;//## File: tm_locals_de.js ####################################&lt;br /&gt;
 &lt;br /&gt;
/*&lt;br /&gt;
* Lokalisierung &amp;quot;Deutsch&amp;quot; des Vorlagen-Meister&lt;br /&gt;
* Copyright (C) 2007-2009 [[:de:Benutzer:Revvar]] &amp;lt;revvar@gmx.de&amp;gt;&lt;br /&gt;
* Released under the GPL license version 2&lt;br /&gt;
* http://www.gnu.org/copyleft/gpl.html&lt;br /&gt;
*&lt;br /&gt;
* This program is free software; you can redistribute it and/or modify&lt;br /&gt;
* it under the terms of the GNU General Public License version 2 as&lt;br /&gt;
* published by the Free Software Foundation.&lt;br /&gt;
*&lt;br /&gt;
* This program is distributed in the hope that it will be useful,&lt;br /&gt;
* but WITHOUT ANY WARRANTY; without even the implied warranty&lt;br /&gt;
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE.&lt;br /&gt;
* See the GNU General Public License for more details.&lt;br /&gt;
*/&lt;br /&gt;
 &lt;br /&gt;
function tm_get_locals()&lt;br /&gt;
{&lt;br /&gt;
	var locals = new Object();&lt;br /&gt;
        locals[&amp;quot;ButtonText&amp;quot;] = &amp;quot;SM&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;User&amp;quot;] = &amp;quot;User&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;Template&amp;quot;] = &amp;quot;Sablon&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;Submit&amp;quot;] = &amp;quot;Elküld&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;Cancel&amp;quot;] = &amp;quot;Mégse&amp;quot;;&lt;br /&gt;
	locals[&amp;quot;CreateXML&amp;quot;] = &amp;quot;XML-Leírás generálása...&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;Progress&amp;quot;] = &amp;quot;Betöltés folyamatban&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_load_error&amp;quot;] = &amp;quot;A(z) \&amp;quot;$1\&amp;quot; sablont nem lehet betölteni.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_no_usage_section&amp;quot;] = &amp;quot;A(z) \&amp;quot;$1\&amp;quot; sablonhoz nem található XML-leírás.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_no_such_template&amp;quot;] = &amp;quot;Nem található \&amp;quot;$1\&amp;quot; nevű sablon.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_no_help&amp;quot;] = &amp;quot;(Nincs rendelkezésre álló segítség.)&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_invalid_condition&amp;quot;] = &amp;quot;Az XML-leírás egy érvénytelen feltétel-paramétert tartalmaz: \&amp;quot;$1\&amp;quot;.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_invalid_value&amp;quot;] = &amp;quot;Nem megfelelő érték&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_enter_value&amp;quot;] = &amp;quot;Adj meg egy értéket!&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_enter_valid_value&amp;quot;] = &amp;quot;Adj meg egy megfelelő értéket!&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_please_correct_errors&amp;quot;] = &amp;quot;Hiba történt. Javítsd ki a pirossal jelzett mezőket.&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_question_repeat_http_request&amp;quot;] = &amp;quot;Szeretnéd a kérést megismételni=[OK] vagy [félbeszakítani] ?&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_question_wait_for_http_response&amp;quot;] = &amp;quot;A szerver már több, mint $1 másodperce foglalt. Szeretnél még várni=[Ok]?&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;sys_unknown_parameter&amp;quot;] = &amp;quot;A sablonszöveg a következő ismeretlen paramétert tartalmazza: \&amp;quot;$1\&amp;quot;. Okok: elütés, pl. kis- és nagybetűk nem lettek figyelembe véve, vagy a sablon leírása hiányos.&amp;quot;;&lt;br /&gt;
	locals[&amp;quot;sys_xml_generated_summary&amp;quot;] = &amp;quot;Automatikusan létrehozva a [[Wikipédia:Sablonmester|Sablonmester]] segítségével&amp;quot;;&lt;br /&gt;
        locals[&amp;quot;w2t plugin selection&amp;quot;] = &amp;quot;Válassz egy sablont, amellyel a kijelölt szöveget szeretnéd kitölteni:&amp;quot;;&lt;br /&gt;
	return locals;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
//## File: tm_formular.xsl.js #################################&lt;br /&gt;
 &lt;br /&gt;
function get_xsl_dom() {&lt;br /&gt;
return parseXML(&lt;br /&gt;
&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;\n&#039;+&lt;br /&gt;
&#039;&amp;lt;!--\n&#039;+&lt;br /&gt;
&#039;* Copyright (C) 2007-2009 [[:de:Benutzer:Revvar]] &amp;lt;revvar@gmx.de&amp;gt;\n&#039;+&lt;br /&gt;
&#039;* Released under the GPL license\n&#039;+&lt;br /&gt;
&#039;* http://www.gnu.org/copyleft/gpl.html\n&#039;+&lt;br /&gt;
&#039;--&amp;gt;\n&#039;+&lt;br /&gt;
&#039;&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; &amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:output method = &amp;quot;html&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_submit&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_cancel&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_createxml&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_template&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_nohelp&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:param name=&amp;quot;locals_version&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:template match=&amp;quot;/TemplateUsage&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;!-- create basic gui --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id=&amp;quot;tm_main_frame&amp;quot; class=&amp;quot;tm_main_frame&amp;quot; tm_output=&amp;quot;{@output}&amp;quot; tm_max_value_indentation=&amp;quot;{@max_value_indentation}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id=&amp;quot;tm_header&amp;quot; class=&amp;quot;tm_header&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;span class=&amp;quot;tm_template&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_template&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_template&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_template&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;: &amp;lt;/span&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;tm_template&amp;quot; class=&amp;quot;tm_template&amp;quot; size=&amp;quot;32&amp;quot; disabled=&amp;quot;true&amp;quot;/&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;span class=&amp;quot;tm_version&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_version&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_version&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_version&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/span&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id=&amp;quot;tm_group_selector&amp;quot; class=&amp;quot;tm_group_selector&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:apply-templates mode=&amp;quot;group_selector&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id= &amp;quot;tm_form&amp;quot; class=&amp;quot;tm_form&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;!-- create formular --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;form&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:for-each select=&amp;quot;Group&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;div id=&amp;quot;tm_group_{position()}&amp;quot; class=&amp;quot;tm_group&amp;quot; tabindex=&amp;quot;{4000+position()}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;xsl:when test=&amp;quot;@showempty=\&#039;false\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;xsl:attribute name=&amp;quot;tm_showempty&amp;quot;&amp;gt;false&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;xsl:attribute name=&amp;quot;tm_showempty&amp;quot;&amp;gt;true&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:if test=&amp;quot;@name&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;h3 class=&amp;quot;tm_group_heading&amp;quot;  tm_name=&amp;quot;tm_formelem&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/h3&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:for-each select=&amp;quot;Parameter&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;div class=&amp;quot;tm_formelem&amp;quot;&amp;gt;&amp;lt;table class=&amp;quot;tm_table&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;xsl:if test=&amp;quot;@length=\&#039;max\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_table tm_table_max&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;count(Value)=1&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;input type=&amp;quot;checkbox&amp;quot; tm_name=&amp;quot;tm_formelem&amp;quot; value=&amp;quot;{Value}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:call-template name=&amp;quot;SetBasicAttributes&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/input&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;span&amp;gt;&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:when test=&amp;quot;@label&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:value-of select=&amp;quot;@label&amp;quot;/&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/xsl:choose&amp;gt;&amp;lt;/span&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;tr class=&amp;quot;tm_tr&amp;quot;&amp;gt;&amp;lt;td class=&amp;quot;tm_td_label&amp;quot;&amp;gt;&amp;lt;span&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:when test=&amp;quot;@null=\&#039;false\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_param&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_opt_param&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:when test=&amp;quot;@label&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:value-of select=&amp;quot;@label&amp;quot;/&amp;gt;:\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;:\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;tm_td_content&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;Value&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;select tm_name=&amp;quot;tm_formelem&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:call-template name=&amp;quot;SetBasicAttributes&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:if test=&amp;quot;not (@null=\&#039;false\&#039;)&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;option /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:for-each select=&amp;quot;Value&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;option value=&amp;quot;{text()}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;tm_form_&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;_&amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@label&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:value-of select=&amp;quot;@label&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;												&amp;lt;xsl:value-of select=&amp;quot;text()&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:if test=&amp;quot;position()=0&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;												&amp;lt;xsl:attribute name=&amp;quot;selected&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;/option&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:for-each&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/select&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:when test=&amp;quot;@height&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;textarea tm_name=&amp;quot;tm_formelem&amp;quot; rows=&amp;quot;{@height}&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:call-template name=&amp;quot;SetBasicAttributes&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@length=\&#039;max\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_textarea tm_textarea_max&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_textarea tm_textarea_auto&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;cols&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@length&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;												&amp;lt;xsl:value-of select=&amp;quot;@length&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:otherwise&amp;gt;20&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:value-of select=&amp;quot;Default&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/textarea&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;input type=&amp;quot;text&amp;quot; tm_name=&amp;quot;tm_formelem&amp;quot; value=&amp;quot;{Default}&amp;quot; class=&amp;quot;tm_input&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:call-template name=&amp;quot;SetBasicAttributes&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@length=\&#039;max\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;class&amp;quot;&amp;gt;tm_input tm_input_max&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;xsl:attribute name=&amp;quot;size&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;@length&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;												&amp;lt;xsl:value-of select=&amp;quot;@length&amp;quot; /&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;											&amp;lt;xsl:otherwise&amp;gt;20&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;										&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;									&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;								&amp;lt;/input&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;							&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;\n&#039;+&lt;br /&gt;
&#039;						&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/table&amp;gt;\n&#039;+&lt;br /&gt;
&#039;					&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;/xsl:for-each&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:for-each&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/form&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;!-- end formular creation --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt; &amp;lt;!-- formular --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;div id=&amp;quot;tm_footer&amp;quot; class=&amp;quot;tm_footer&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				 &amp;lt;div id=&amp;quot;tm_state&amp;quot; class=&amp;quot;tm_state&amp;quot;&amp;gt;:-)&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				 &amp;lt;button id=&amp;quot;tm_submit&amp;quot; class=&amp;quot;tm_button&amp;quot; tabindex=&amp;quot;5000&amp;quot; disabled=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_submit&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_submit&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_submit&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/button&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				 &amp;lt;button id=&amp;quot;tm_cancel&amp;quot; class=&amp;quot;tm_button&amp;quot; tabindex=&amp;quot;5001&amp;quot; disabled=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_cancel&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_cancel&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_cancel&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/button&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				 &amp;lt;button id=&amp;quot;tm_createxml&amp;quot; class=&amp;quot;tm_button&amp;quot; tabindex=&amp;quot;5002&amp;quot; disabled=&amp;quot;true&amp;quot; style=&amp;quot;visibility:hidden&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_createxml&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_createxml&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_createxml&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/button&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/div&amp;gt; &amp;lt;!-- main frame --&amp;gt;\n&#039;+&lt;br /&gt;
&#039;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;/xsl:template&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:template match=&amp;quot;Group&amp;quot; mode=&amp;quot;group_selector&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:if test=&amp;quot;@name&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;a id=&amp;quot;tm_group_select_{position() div 2}&amp;quot; class=&amp;quot;tm_button tm_selector tm_group_selector&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:if&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;/xsl:template&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;xsl:template name=&amp;quot;SetBasicAttributes&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;tm_form_&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;title&amp;quot;&amp;gt;&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:when test=&amp;quot;Help&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:value-of select=&amp;quot;Help&amp;quot;/&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:otherwise&amp;gt;&amp;lt;xsl:choose&amp;gt;&amp;lt;xsl:when test=&amp;quot;$locals_nohelp&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$locals_nohelp&amp;quot; /&amp;gt;&amp;lt;/xsl:when&amp;gt;&amp;lt;xsl:otherwise&amp;gt;locals_nohelp&amp;lt;/xsl:otherwise&amp;gt;&amp;lt;/xsl:choose&amp;gt;&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:choose&amp;gt;	&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;tm_condition&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Condition&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;tabindex&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;20+count(preceding::*)&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:when test=&amp;quot;@null=\&#039;false\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:attribute name=&amp;quot;tm_null&amp;quot;&amp;gt;false&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:attribute name=&amp;quot;tm_null&amp;quot;&amp;gt;true&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:when test=&amp;quot;@predefined=\&#039;true\&#039;&amp;quot;&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:attribute name=&amp;quot;tm_predefined&amp;quot;&amp;gt;true&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:when&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;				&amp;lt;xsl:attribute name=&amp;quot;tm_predefined&amp;quot;&amp;gt;false&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;			&amp;lt;/xsl:otherwise&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;/xsl:choose&amp;gt;\n&#039;+&lt;br /&gt;
&#039;		&amp;lt;xsl:attribute name=&amp;quot;tm_error&amp;quot;&amp;gt;false&amp;lt;/xsl:attribute&amp;gt;\n&#039;+&lt;br /&gt;
&#039;	&amp;lt;/xsl:template&amp;gt;\n&#039;+&lt;br /&gt;
&#039;&amp;lt;/xsl:stylesheet&amp;gt;&#039;&lt;br /&gt;
);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
//## File: vorlagenmeister.js #################################&lt;br /&gt;
 &lt;br /&gt;
/*&lt;br /&gt;
* Vorlagen-Meister, Version: 0.4.3beta, Date: 2009-10-17&lt;br /&gt;
* Copyright (C) 2007-2009 [[de:Benutzer:Revvar]] &amp;lt;revvar@gmx.de&amp;gt;&lt;br /&gt;
* Released under the GPL license version 2&lt;br /&gt;
* http://www.gnu.org/copyleft/gpl.html&lt;br /&gt;
*&lt;br /&gt;
* This program is free software; you can redistribute it and/or modify&lt;br /&gt;
* it under the terms of the GNU General Public License version 2 as&lt;br /&gt;
* published by the Free Software Foundation.&lt;br /&gt;
*&lt;br /&gt;
* This program is distributed in the hope that it will be useful,&lt;br /&gt;
* but WITHOUT ANY WARRANTY; without even the implied warranty&lt;br /&gt;
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE.&lt;br /&gt;
* See the GNU General Public License for more details.&lt;br /&gt;
*/&lt;br /&gt;
 &lt;br /&gt;
/* Plugin objects */&lt;br /&gt;
var TM_PluginList = new Array(); //&amp;lt; list with the plugins&lt;br /&gt;
 &lt;br /&gt;
/**&lt;br /&gt;
 Abstract PlugIn objects, to announce a plugin to the TemplateMaster&lt;br /&gt;
*/&lt;br /&gt;
function TM_Plugin()&lt;br /&gt;
{&lt;br /&gt;
	this.opGetName = null; //&amp;lt; returns plugin name for the user as String&lt;br /&gt;
	this.opGetType = null; //&amp;lt; returns plugin type as String&lt;br /&gt;
	this.opGetTemplate = null;  //&amp;lt; returns the template name the PlugIn is written for as String&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/**&lt;br /&gt;
 Abstract object for a Wiki2Template plugin.&lt;br /&gt;
*/&lt;br /&gt;
function TM_P_Wiki2Template()&lt;br /&gt;
{&lt;br /&gt;
	var self=this;&lt;br /&gt;
	TM_Plugin.call(this);&lt;br /&gt;
 &lt;br /&gt;
	var type = &amp;quot;Wiki2Template&amp;quot;;&lt;br /&gt;
	this.opGetType = function() {return type;};&lt;br /&gt;
 &lt;br /&gt;
	this.opTransform = function(wiki_text) {&lt;br /&gt;
		if (!((wiki_text) &amp;amp;&amp;amp; (typeof(wiki_text) == &amp;quot;string&amp;quot;) &amp;amp;&amp;amp; (wiki_text.length&amp;gt;0))) throw(&amp;quot;(TMP_Wiki2Template:contructor) Error: Invalid arguments.&amp;quot;);&lt;br /&gt;
		return wiki_text;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
TM_P_Wiki2Template.prototype=new TM_Plugin();&lt;br /&gt;
 &lt;br /&gt;
/*END: Plugin objects */&lt;br /&gt;
 &lt;br /&gt;
function tm_init() {&lt;br /&gt;
	// bug: Doesn&#039;t works with Webkit&lt;br /&gt;
	if (is_safari || is_khtml) return;&lt;br /&gt;
	/* check if edit page, otherwise exit*/&lt;br /&gt;
	var url=document.location.toString();&lt;br /&gt;
	var Textbox = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
	if (url.search(/action=(edit|submit)/g) &amp;lt; 0) return;&lt;br /&gt;
	if (Textbox == null) return;&lt;br /&gt;
	if (document.getElementById(&amp;quot;wpSave&amp;quot;) == null) return;&lt;br /&gt;
 &lt;br /&gt;
	// check if editing xml page from this tool&lt;br /&gt;
	if (url.search(/\/XML&amp;amp;tm_xml_content=/g) &amp;gt; 0) {&lt;br /&gt;
		var tm_xml_content = decodeURIComponent(url.replace(/^.*\&amp;amp;tm_xml_content=(.*)$/g, &amp;quot;$1&amp;quot;));&lt;br /&gt;
		Textbox.value = tm_xml_content;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	  // oHTTPRequest  globals&lt;br /&gt;
	var HTTPTIMEOUT=30000;&lt;br /&gt;
	var iRequestID=0;&lt;br /&gt;
	var bBreak=false;&lt;br /&gt;
 &lt;br /&gt;
	if ( typeof $.wikiEditor == &amp;quot;undefined&amp;quot; ) {&lt;br /&gt;
		var toolbar = document.getElementById(&amp;quot;toolbar&amp;quot;);&lt;br /&gt;
		if (toolbar == null) {&lt;br /&gt;
			var toolbar = cNode(null,&amp;quot;div&amp;quot;,null, null);&lt;br /&gt;
			Textbox.parentNode.insertBefore(toolbar, Textbox);&lt;br /&gt;
		}&lt;br /&gt;
	}else{&lt;br /&gt;
		var toolbarParent = document.getElementById(&amp;quot;wikiEditor-ui-toolbar&amp;quot;);&lt;br /&gt;
		var toolbar = cNode(null, &amp;quot;div&amp;quot;, null, {&amp;quot;id&amp;quot;:&amp;quot;tm_tab&amp;quot;,&amp;quot;class&amp;quot;:&amp;quot;group&amp;quot;});&lt;br /&gt;
		toolbarParent.firstChild.appendChild(toolbar);&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	var locals = null;&lt;br /&gt;
	try {&lt;br /&gt;
		locals = tm_get_locals();&lt;br /&gt;
	} catch(e) {&lt;br /&gt;
		log_message(e.message);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	// globals&lt;br /&gt;
	var VERSION=&amp;quot;0.4.2 beta&amp;quot;;&lt;br /&gt;
	var State = null;&lt;br /&gt;
	var Template = new Object();&lt;br /&gt;
	var Tm_box = null;&lt;br /&gt;
	var act_view = &amp;quot;EB&amp;quot;;&lt;br /&gt;
	var is_khtml = navigator.vendor == &#039;KDE&#039; || ( document.childNodes &amp;amp;&amp;amp; !document.all &amp;amp;&amp;amp; !navigator.taintEnabled );&lt;br /&gt;
	var is_ie = !(is_gecko || is_opera || is_safari || is_khtml);&lt;br /&gt;
	var Act_input = null;&lt;br /&gt;
	var is_xml_generated = false;&lt;br /&gt;
	var generated_xml = &#039;&#039;;&lt;br /&gt;
	var max_value_indentation = 32;&lt;br /&gt;
 &lt;br /&gt;
	var vm_button = cNode(null, &amp;quot;div&amp;quot;, locals[&amp;quot;ButtonText&amp;quot;], {&amp;quot;id&amp;quot;:&amp;quot;tm_switch_button&amp;quot;,&amp;quot;class&amp;quot;:&amp;quot;tm_switch_button&amp;quot;});&lt;br /&gt;
	addEventListener(vm_button, &amp;quot;click&amp;quot;, show);&lt;br /&gt;
	if (toolbar.firstChild == null) toolbar.appendChild(vm_button); else toolbar.insertBefore(vm_button, toolbar.firstChild);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
	if ( typeof(tm_autostart) === &amp;quot;object&amp;quot; &amp;amp;&amp;amp; wgPageName.indexOf(&amp;quot;/doc&amp;quot;) == -1 &amp;amp;&amp;amp; wgPageName.indexOf(&amp;quot;/XML&amp;quot;) == -1 ) {&lt;br /&gt;
		for (	var i=0;&lt;br /&gt;
				i&amp;lt;tm_autostart.length&lt;br /&gt;
				&amp;amp;&amp;amp; (wgPageName.search(new RegExp(tm_autostart[i].url, &amp;quot;i&amp;quot;)) == -1&lt;br /&gt;
				|| Textbox.value.search(new RegExp(tm_autostart[i].text, &amp;quot;i&amp;quot;)) == -1)&lt;br /&gt;
			; ++i){}&lt;br /&gt;
		if (i &amp;gt; tm_autostart.length) {&lt;br /&gt;
			var templateStartPos = Textbox.value.search(&amp;quot;\{\{&amp;quot;+tm_autostart[i].tl+&amp;quot;&amp;quot;, &amp;quot;i&amp;quot;)+2;&lt;br /&gt;
			if(Textbox.setSelectionRange){&lt;br /&gt;
				Textbox.focus();&lt;br /&gt;
				Textbox.setSelectionRange(templateStartPos,templateStartPos);&lt;br /&gt;
			}else if (Textbox.createTextRange) {&lt;br /&gt;
				var range = Textbox.createTextRange();&lt;br /&gt;
				range.collapse(true);&lt;br /&gt;
				range.moveEnd(&#039;character&#039;, templateStartPos);&lt;br /&gt;
				range.moveStart(&#039;character&#039;, templateStartPos);&lt;br /&gt;
				range.select();&lt;br /&gt;
			}&lt;br /&gt;
 &lt;br /&gt;
			show();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	return;&lt;br /&gt;
 &lt;br /&gt;
/* shows the template master */&lt;br /&gt;
function show()&lt;br /&gt;
{&lt;br /&gt;
	/* set some globals to there defaults */&lt;br /&gt;
	bBreak = false;&lt;br /&gt;
	State = null;&lt;br /&gt;
	if (document.getElementById(&amp;quot;tm_dummy_div&amp;quot;) != null) {&lt;br /&gt;
		switch_view_to();&lt;br /&gt;
		switchOnWikEd();&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* check if cursor within template wikisource and parse it */&lt;br /&gt;
	var template_source = null;&lt;br /&gt;
	var Template_given = null;&lt;br /&gt;
	var Target = new Object();&lt;br /&gt;
	var Editbox = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
	Target[&amp;quot;Editbox&amp;quot;] = Editbox;&lt;br /&gt;
 &lt;br /&gt;
	switchOffWikEd();&lt;br /&gt;
 &lt;br /&gt;
	/* get cursor/mark position (browser indendend, depends on wikibits.js) */&lt;br /&gt;
	if (is_ie) {&lt;br /&gt;
		var marker_start = &amp;quot;####template_master_cursor_marker_start####&amp;quot;;&lt;br /&gt;
		var marker_end = &amp;quot;####template_master_cursor_marker_end####&amp;quot;;&lt;br /&gt;
		insertTags(marker_start, marker_end, &amp;quot;&amp;quot;);&lt;br /&gt;
		Target[&amp;quot;start&amp;quot;]  = Editbox.value.search(marker_start);&lt;br /&gt;
		Editbox.value = Editbox.value.replace(marker_start,&amp;quot;&amp;quot;);&lt;br /&gt;
		Target[&amp;quot;end&amp;quot;]  = Editbox.value.search(marker_end) - 1;&lt;br /&gt;
		Editbox.value = Editbox.value.replace(marker_end,&amp;quot;&amp;quot;);&lt;br /&gt;
	} else {&lt;br /&gt;
		Target[&amp;quot;cursor&amp;quot;] = Editbox.selectionStart;&lt;br /&gt;
		Target[&amp;quot;start&amp;quot;]  = Editbox.selectionStart;&lt;br /&gt;
		Target[&amp;quot;end&amp;quot;] = Editbox.selectionEnd - 1;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* search if cursor within a template */&lt;br /&gt;
 &lt;br /&gt;
	/* (1) replace syntax chars within nowiki-tags and html-comments */&lt;br /&gt;
	var x_nowiki = /(&amp;lt;nowiki&amp;gt;.*?)[{|}](.*?&amp;lt;\/nowiki&amp;gt;)/g;&lt;br /&gt;
	var source = replace_all(Editbox.value, x_nowiki, &amp;quot;$1#$2&amp;quot;);&lt;br /&gt;
	var x_htmlcomment = /(&amp;lt;!--.*?)[{|}](.*?--&amp;gt;)/g;&lt;br /&gt;
	var source = replace_all(Editbox.value, x_htmlcomment, &amp;quot;$1#$2&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
	/* (2) create a list of all remaining template tags */&lt;br /&gt;
	var tag_list = new Array();&lt;br /&gt;
	var depth = 0;&lt;br /&gt;
	var x_tag = /(\{\{|\}\})/;&lt;br /&gt;
	var tag_pos = -2, new_pos = 0;&lt;br /&gt;
	do {&lt;br /&gt;
		new_pos = (source.substring(tag_pos + 2)).search(x_tag);&lt;br /&gt;
		if (new_pos &amp;gt;= 0) {&lt;br /&gt;
			tag_pos += new_pos + 2;&lt;br /&gt;
			switch (source.substring(tag_pos, tag_pos + 2)) {&lt;br /&gt;
				case &amp;quot;{{&amp;quot;: {&lt;br /&gt;
					tag_list.push({&amp;quot;type&amp;quot;:0, &amp;quot;depth&amp;quot;:depth, &amp;quot;position&amp;quot;:tag_pos});&lt;br /&gt;
					depth++;&lt;br /&gt;
				}; break;&lt;br /&gt;
				case &amp;quot;}}&amp;quot;: {&lt;br /&gt;
					depth--;&lt;br /&gt;
					tag_list.push({&amp;quot;type&amp;quot;:1, &amp;quot;depth&amp;quot;:depth, &amp;quot;position&amp;quot;:tag_pos});&lt;br /&gt;
				};break;&lt;br /&gt;
				default: alert(&amp;quot;Internal error: Searching template tags failed (&amp;quot;+source.substring(tag_pos, tag_pos + 2)+&amp;quot;).&amp;quot;);return;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	} while (new_pos &amp;gt;= 0);&lt;br /&gt;
 &lt;br /&gt;
	/* (3) find nearest tag pair (same depth) around the cursor position */&lt;br /&gt;
	var  start = -1, end = -1, act_depth = 0;&lt;br /&gt;
	var cursor_pos = Target[&amp;quot;start&amp;quot;] ;&lt;br /&gt;
	var cursor_depth = 0;&lt;br /&gt;
	/* (a) find the depth at cursor pos */&lt;br /&gt;
	for (var i = 0; i &amp;lt; tag_list.length; i++) {&lt;br /&gt;
		if (cursor_pos &amp;lt; tag_list[i].position) {&lt;br /&gt;
			cursor_depth = tag_list[i].depth;&lt;br /&gt;
		} else break;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* (b) search */&lt;br /&gt;
	for (var i = 0; i &amp;lt; tag_list.length; i++) {&lt;br /&gt;
		if (cursor_pos &amp;gt;= tag_list[i].position) {&lt;br /&gt;
			if ((0 == tag_list[i].type) &amp;amp;&amp;amp; (cursor_depth &amp;gt;= tag_list[i].depth)) {&lt;br /&gt;
				start = tag_list[i].position;&lt;br /&gt;
				act_depth = tag_list[i].depth;&lt;br /&gt;
			}&lt;br /&gt;
			if ((start &amp;gt; -1 ) &amp;amp;&amp;amp; (1 == tag_list[i].type) &amp;amp;&amp;amp; (act_depth == tag_list[i].depth)) start = -1;&lt;br /&gt;
		} else break;&lt;br /&gt;
	}&lt;br /&gt;
	if (start &amp;gt; -1) for (var i = tag_list.length - 1; i &amp;gt; 0 ; i--) {&lt;br /&gt;
		if (cursor_pos &amp;lt; tag_list[i].position) {&lt;br /&gt;
			if (cursor_depth &amp;gt;= tag_list[i].depth) {&lt;br /&gt;
				if ((1 == tag_list[i].type) &amp;amp;&amp;amp; (act_depth == tag_list[i].depth)) {&lt;br /&gt;
					end = tag_list[i].position;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		} else break;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* (4) get template source code without the surounding brackets */&lt;br /&gt;
	if ((start&amp;gt;=0) &amp;amp;&amp;amp; (end&amp;gt;=0)) {&lt;br /&gt;
		template_source = Editbox.value.substring(start + 2, end);&lt;br /&gt;
	} else template_source = null;&lt;br /&gt;
 &lt;br /&gt;
	/* parse source */&lt;br /&gt;
	if (template_source != null) {&lt;br /&gt;
		Template_given = parse_template_source(template_source);&lt;br /&gt;
		if (Template_given != null) {&lt;br /&gt;
			// save new positions only, if template parsed successfull&lt;br /&gt;
			Target[&amp;quot;start&amp;quot;] = start;&lt;br /&gt;
			Target[&amp;quot;end&amp;quot;] = end + 1;&lt;br /&gt;
		} else template_source = null;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	switch_view_to();&lt;br /&gt;
	/* dummy main div */&lt;br /&gt;
	Tm_box = cNode(Editbox.parentNode, &amp;quot;div&amp;quot;, null, {&amp;quot;id&amp;quot;:&amp;quot;tm_dummy_div&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;position:absolute;z-index:99;left:&amp;quot;+(Editbox.offsetLeft)+&amp;quot;px;top:&amp;quot;+(Editbox.offsetTop)+&amp;quot;px;width:&amp;quot;+(Editbox.offsetWidth)+&amp;quot;px;height:&amp;quot;+(Editbox.offsetHeight)+&amp;quot;px;&amp;quot;+((is_ie)?&amp;quot;overflow-x:hidden;overflow-y:auto;&amp;quot;:&amp;quot;overflow:auto;&amp;quot;)});&lt;br /&gt;
 &lt;br /&gt;
	if ((template_source == null) &amp;amp;&amp;amp; (Target[&amp;quot;start&amp;quot;] &amp;lt;= Target[&amp;quot;end&amp;quot;])) {&lt;br /&gt;
		// ask, if the user want to use a Wikisource_To_Template-Plugin&lt;br /&gt;
		if ((TM_PluginList) &amp;amp;&amp;amp; (TM_PluginList.length)) {&lt;br /&gt;
			/* create plugin list */&lt;br /&gt;
			var plugins = new Array();&lt;br /&gt;
			for (var i = 0; i &amp;lt; TM_PluginList.length; i++) {&lt;br /&gt;
				try {&lt;br /&gt;
					var name = TM_PluginList[i].opGetName();&lt;br /&gt;
					var type = TM_PluginList[i].opGetType();&lt;br /&gt;
					if ((type !=null) &amp;amp;&amp;amp; (type ==&amp;quot;Wiki2Template&amp;quot;) &amp;amp;&amp;amp; (name != null)) plugins.push(TM_PluginList[i]);&lt;br /&gt;
				} catch(e) {&lt;br /&gt;
					log_message(&amp;quot;Incompatible Plugin: &amp;quot; + e.message);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			if (plugins.length &amp;gt; 0) {&lt;br /&gt;
				var Plugin_div = cNode(null, &amp;quot;div&amp;quot;, locals[&amp;quot;w2t plugin selection&amp;quot;], {&amp;quot;class&amp;quot;:&amp;quot;tm_plugin_selector&amp;quot;});&lt;br /&gt;
				for (var i = 0; i &amp;lt; plugins.length; i++) {&lt;br /&gt;
					var A_plugin = cNode(Plugin_div, &amp;quot;a&amp;quot;, plugins[i].opGetName(), {&amp;quot;class&amp;quot;:&amp;quot;tm_button tm_v_selector tm_plugin_selector&amp;quot;});&lt;br /&gt;
					A_plugin.tm_plugin = plugins[i];&lt;br /&gt;
					addEventListener(A_plugin, &amp;quot;click&amp;quot;, function(e) {&lt;br /&gt;
						var plugin = ((is_ie)?e.srcElement:e.target).tm_plugin;&lt;br /&gt;
						if (plugin != null) {&lt;br /&gt;
							Template_given = plugin.opTransform(Editbox.value.substring(Target[&amp;quot;start&amp;quot;], Target[&amp;quot;end&amp;quot;] + 1));&lt;br /&gt;
							if (Template_given != null) {&lt;br /&gt;
								Plugin_div.parentNode.removeChild(Plugin_div);&lt;br /&gt;
								show_template(Tm_box,&amp;quot;none&amp;quot;, Template_given, Target);&lt;br /&gt;
							}&lt;br /&gt;
						} else alert(&amp;quot;Internal error: No tm_plugin attribute found.&amp;quot;);&lt;br /&gt;
					});&lt;br /&gt;
				}&lt;br /&gt;
				var A_cancel = cNode(Plugin_div, &amp;quot;a&amp;quot;, locals[&amp;quot;Cancel&amp;quot;], {&amp;quot;class&amp;quot;:&amp;quot;tm_button tm_v_selector tm_cancel_button&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;margin-top:8px !important&amp;quot;});&lt;br /&gt;
				addEventListener(A_cancel, &amp;quot;click&amp;quot;, function(e) {&lt;br /&gt;
					Plugin_div.parentNode.removeChild(Plugin_div);&lt;br /&gt;
					show_template(Tm_box,&amp;quot;none&amp;quot;, null, Target);&lt;br /&gt;
				});&lt;br /&gt;
				Tm_box.appendChild(Plugin_div);&lt;br /&gt;
			}&lt;br /&gt;
/*			log_message(plugins.join(&amp;quot;,&amp;quot;));&lt;br /&gt;
			Template_given = TM_PluginList[0].opTransform(Editbox.value.substring(Target[&amp;quot;start&amp;quot;], Target[&amp;quot;end&amp;quot;] + 1));*/&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		/* load given template */&lt;br /&gt;
		show_template(Tm_box,&amp;quot;none&amp;quot;, Template_given, Target);&lt;br /&gt;
	}&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
// switch off wikEd frame&lt;br /&gt;
function switchOffWikEd() {&lt;br /&gt;
	if (typeof(wikEd) != &#039;undefined&#039; &amp;amp;&amp;amp; wikEd.useWikEd == true) {&lt;br /&gt;
		var marker_start = &amp;quot;####template_master_cursor_marker_start####&amp;quot;;&lt;br /&gt;
		var marker_end = &amp;quot;####template_master_cursor_marker_end####&amp;quot;;&lt;br /&gt;
		insertTags(marker_start, marker_end, &amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		wikEd.UpdateTextarea();&lt;br /&gt;
		wikEd.SetEditArea(false);&lt;br /&gt;
		wikEd.useWikEd = false;&lt;br /&gt;
		wikEd.SetPersistent(&#039;wikEdUseClassic&#039;, &#039;1&#039;, 0, &#039;/&#039;);&lt;br /&gt;
		tm_wikEd_on = true;&lt;br /&gt;
 &lt;br /&gt;
		var tb = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
		var tbSelectionStart = tb.value.indexOf(marker_start);&lt;br /&gt;
		tb.value = tb.value.replace(marker_start,&amp;quot;&amp;quot;);&lt;br /&gt;
		var tbSelectionEnd   = tb.value.indexOf(marker_end);&lt;br /&gt;
		tb.value = tb.value.replace(marker_end,&amp;quot;&amp;quot;);&lt;br /&gt;
		tb.selectionStart = tbSelectionStart;&lt;br /&gt;
		tb.selectionEnd   = tbSelectionEnd;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/* switch on wikEd frame */&lt;br /&gt;
function switchOnWikEd() {&lt;br /&gt;
	if (typeof(wikEd) != &#039;undefined&#039; &amp;amp;&amp;amp; typeof(tm_wikEd_on) != &#039;undefined&#039; &amp;amp;&amp;amp; tm_wikEd_on === true) {&lt;br /&gt;
		wikEd.UpdateFrame();&lt;br /&gt;
		wikEd.SetEditArea(true);&lt;br /&gt;
		wikEd.useWikEd = true;&lt;br /&gt;
		wikEd.SetPersistent(&#039;wikEdUseClassic&#039;, &#039;0&#039;, 0, &#039;/&#039;);&lt;br /&gt;
		wikEd.ExecuteHook(wikEd.config.frameHook);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/* shows specific template */&lt;br /&gt;
function show_template(Root_node, template_name, Template_given, Target)&lt;br /&gt;
{&lt;br /&gt;
	// check parameter&lt;br /&gt;
	if ((Template_given != null) &amp;amp;&amp;amp; (Template_given[&amp;quot;template_name&amp;quot;] != template_name)) template_name = Template_given[&amp;quot;template_name&amp;quot;];&lt;br /&gt;
 &lt;br /&gt;
	// create empty formular&lt;br /&gt;
	if ((Template_given == null) &amp;amp;&amp;amp; (template_name == &amp;quot;none&amp;quot;)) {&lt;br /&gt;
		var rv = new Object();&lt;br /&gt;
// 		rv.responseText=&#039;&amp;lt;div id=&amp;quot;template_usage&amp;quot;&amp;gt;&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;amp;gt;&amp;amp;lt;TemplateUsage&amp;amp;gt;&amp;amp;lt;Group&amp;amp;gt;&amp;amp;lt;/Group&amp;amp;gt;&amp;amp;lt;/TemplateUsage&amp;amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
		rv.responseText=&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&amp;lt;TemplateUsage&amp;gt;&amp;lt;Group&amp;gt;&amp;lt;/Group&amp;gt;&amp;lt;/TemplateUsage&amp;gt;&#039;;&lt;br /&gt;
		parseUsage(rv, &#039;&#039;);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	var Template_new = new Object();&lt;br /&gt;
	Template_new[&amp;quot;template_name&amp;quot;] = template_name;&lt;br /&gt;
 &lt;br /&gt;
	if (restoreTemplate(template_name) == true) return;&lt;br /&gt;
	else load_template();&lt;br /&gt;
	return;&lt;br /&gt;
 &lt;br /&gt;
	function load_template()&lt;br /&gt;
	{&lt;br /&gt;
		var Dummy_div = document.getElementById(&amp;quot;tm_dummy_div&amp;quot;);&lt;br /&gt;
		var Progress_div = cNode(Dummy_div, &amp;quot;div&amp;quot;, locals[&amp;quot;Template&amp;quot;]+ &amp;quot; \&amp;quot;&amp;quot; + template_name+&amp;quot;\&amp;quot; &amp;quot; +locals[&amp;quot;Progress&amp;quot;] +&amp;quot; .&amp;quot;, {&amp;quot;class&amp;quot;:&amp;quot;tm_load_progress&amp;quot;, &amp;quot;id&amp;quot;:&amp;quot;tm_load_progress&amp;quot;});&lt;br /&gt;
 &lt;br /&gt;
		var A_cancel = cNode(Progress_div, &amp;quot;a&amp;quot;, locals[&amp;quot;Cancel&amp;quot;], {&amp;quot;class&amp;quot;:&amp;quot;tm_button tm_v_selector tm_cancel_button&amp;quot;});&lt;br /&gt;
		addEventListener(A_cancel, &amp;quot;click&amp;quot;, function(e) {&lt;br /&gt;
			bBreak = true;&lt;br /&gt;
			switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
		});&lt;br /&gt;
 &lt;br /&gt;
		var full_name = ((template_name.search(new RegExp(locals[&amp;quot;User&amp;quot;]+&amp;quot;( [^:]+){0,1}:&amp;quot;),&amp;quot;&amp;quot;)&amp;gt;=0)?(&amp;quot;&amp;quot;):(locals[&amp;quot;Template&amp;quot;]+&amp;quot;:&amp;quot;))+template_name;&lt;br /&gt;
 &lt;br /&gt;
		oXmlHttpRequest({&lt;br /&gt;
			&#039;method&#039;:&#039;GET&#039;,&lt;br /&gt;
			&#039;url&#039;: wgServer + wgScriptPath + &amp;quot;/index.php?title=&amp;quot; + full_name +&amp;quot;/XML&amp;amp;action=raw&amp;quot;,&lt;br /&gt;
			&#039;headers&#039;:{&#039;User-agent&#039;: &#039;Skript:TM(wp_de_user_Revvar)&#039;},&lt;br /&gt;
			&#039;onload&#039;: function(rD) {&lt;br /&gt;
				parseUsage(rD, full_name);&lt;br /&gt;
			},&lt;br /&gt;
			&#039;onerror&#039;:function(rD) {&lt;br /&gt;
				log_message(locals[&amp;quot;sys_load_error&amp;quot;].replace(&amp;quot;$1&amp;quot;, template_name));&lt;br /&gt;
				switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
			},&lt;br /&gt;
			&#039;onreadystatechange&#039;:function() {&lt;br /&gt;
				Progress_div.firstChild.data += &amp;quot;.&amp;quot;;&lt;br /&gt;
			},&lt;br /&gt;
   			&#039;on_cancel&#039;: function() {switch_view_to(&amp;quot;EB&amp;quot;);}&lt;br /&gt;
		});&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function parseUsage(rv, full_name)&lt;br /&gt;
	{&lt;br /&gt;
		try {&lt;br /&gt;
			var usage_text = rv.responseText;&lt;br /&gt;
			var Xml_dom=null;&lt;br /&gt;
			var Xsl_dom=null;&lt;br /&gt;
			var Dummy_div = document.getElementById(&amp;quot;tm_dummy_div&amp;quot;);&lt;br /&gt;
			var Progress_div = document.getElementById(&amp;quot;tm_load_progress&amp;quot;);&lt;br /&gt;
			is_xml_generated = false;&lt;br /&gt;
 &lt;br /&gt;
			if (usage_text.length == 0) {&lt;br /&gt;
				oXmlHttpRequest({&lt;br /&gt;
					&#039;method&#039;:&#039;GET&#039;,&lt;br /&gt;
					&#039;url&#039;: wgServer + wgScriptPath +&#039;/api.php?action=query&amp;amp;prop=revisions&amp;amp;rvprop=content&amp;amp;rvlimit=1&amp;amp;format=json&amp;amp;titles=&#039;+encodeURIComponent(full_name),&lt;br /&gt;
					&#039;headers&#039;:{&#039;User-agent&#039;: &#039;Skript:TM(wp_de_user_Revvar)&#039;},&lt;br /&gt;
					&#039;onload&#039;: function(rD) {&lt;br /&gt;
						try {&lt;br /&gt;
							if (Dummy_div &amp;amp;&amp;amp; Progress_div) Dummy_div.removeChild(Progress_div);&lt;br /&gt;
 &lt;br /&gt;
							var rT = rD.responseText;&lt;br /&gt;
							var startPos = rT.search(&#039;\\[\\{&amp;quot;\\*&amp;quot;:&amp;quot;&#039;)+7;&lt;br /&gt;
							var endPos = rT.search(&#039;&amp;quot;\\}\\]\\}\\}\\},&amp;quot;&#039;);&lt;br /&gt;
 &lt;br /&gt;
							if (endPos &amp;lt; 0) {&lt;br /&gt;
								log_message(locals[&amp;quot;sys_no_such_template&amp;quot;].replace(&amp;quot;$1&amp;quot;, template_name));&lt;br /&gt;
								switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
								return;&lt;br /&gt;
							}&lt;br /&gt;
 &lt;br /&gt;
							rT = rT.substring(startPos, endPos);&lt;br /&gt;
							var xVarname = /\{\{\{[\s]*([^\s\|\}]([^\|\}]*[^\s\|\}]){0,1})[\s\|\}]/g;&lt;br /&gt;
							var names = rT.match(xVarname);&lt;br /&gt;
							var vars = new Object();&lt;br /&gt;
							if (names) {&lt;br /&gt;
								for (var i = 0; i &amp;lt; names.length; i++) {&lt;br /&gt;
									var tmp = names[i].replace(xVarname, &amp;quot;$1&amp;quot;);&lt;br /&gt;
									tmp = tmp.replace(/&amp;lt;[^&amp;gt;]+&amp;gt;/g, &#039;&#039;);&lt;br /&gt;
									tmp = decodeURI(tmp);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00f6&#039;, &#039;ö&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00fc&#039;, &#039;ü&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00e4&#039;, &#039;ä&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00df&#039;, &#039;ß&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00d6&#039;, &#039;Ö&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00dc&#039;, &#039;Ü&#039;);&lt;br /&gt;
									tmp = tmp.replace(&#039;\\u00c4&#039;, &#039;Ä&#039;);&lt;br /&gt;
									vars[tmp] = true;&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
							usage_text =  &#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;\n&#039;;&lt;br /&gt;
							usage_text += &#039;&amp;lt;?mediawiki &amp;quot;{{XML-Warnung|&#039; + template_name +&#039;}}&amp;quot;?&amp;gt;\n&#039;;&lt;br /&gt;
 &lt;br /&gt;
							usage_text += &#039; &amp;lt;TemplateUsage output=&amp;quot;expand&amp;quot;&amp;gt;\n&#039;;&lt;br /&gt;
							usage_text += &#039;   &amp;lt;Group&amp;gt;\n&#039;;&lt;br /&gt;
							for (var varname in vars) {&lt;br /&gt;
								usage_text += &#039;     &amp;lt;Parameter name=&amp;quot;&#039; + varname + &#039;&amp;quot;&amp;gt;\n&#039;;&lt;br /&gt;
								usage_text += &#039;       &amp;lt;Help&amp;gt;&amp;lt;/Help&amp;gt;\n&#039;;&lt;br /&gt;
								usage_text += &#039;     &amp;lt;/Parameter&amp;gt;\n&#039;;&lt;br /&gt;
							}&lt;br /&gt;
							usage_text += &#039;   &amp;lt;/Group&amp;gt;\n&#039;;&lt;br /&gt;
							usage_text += &#039; &amp;lt;/TemplateUsage&amp;gt;\n&#039;;&lt;br /&gt;
 &lt;br /&gt;
							Xml_dom=parseXML(usage_text);&lt;br /&gt;
							Xsl_dom=get_xsl_dom();&lt;br /&gt;
 &lt;br /&gt;
							is_xml_generated = true;&lt;br /&gt;
							generated_xml = usage_text;&lt;br /&gt;
 &lt;br /&gt;
							onload();&lt;br /&gt;
							return;&lt;br /&gt;
						} catch (e) {&lt;br /&gt;
							log_message(e.message);&lt;br /&gt;
							switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
							return;&lt;br /&gt;
						}&lt;br /&gt;
					},&lt;br /&gt;
					&#039;onerror&#039;:function(rD) {&lt;br /&gt;
						log_message(locals[&amp;quot;sys_load_error&amp;quot;].replace(&amp;quot;$1&amp;quot;, template_name));&lt;br /&gt;
						switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					},&lt;br /&gt;
					&#039;onreadystatechange&#039;:function() {&lt;br /&gt;
						Progress_div.firstChild.data += &amp;quot;.&amp;quot;;&lt;br /&gt;
					},&lt;br /&gt;
					&#039;on_cancel&#039;: function() {&lt;br /&gt;
						switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			if (Dummy_div &amp;amp;&amp;amp; Progress_div) Dummy_div.removeChild(Progress_div);&lt;br /&gt;
 &lt;br /&gt;
			/* create document from XML text */&lt;br /&gt;
			Xml_dom=parseXML(usage_text);&lt;br /&gt;
			Xsl_dom=get_xsl_dom();&lt;br /&gt;
 &lt;br /&gt;
			/* load style sheet for the transformation */&lt;br /&gt;
// 			var Xsl_dom = document.implementation.createDocument(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, null);&lt;br /&gt;
// 			Xsl_dom.addEventListener(&amp;quot;load&amp;quot;, onload, false);&lt;br /&gt;
// 			Xsl_dom.load(&amp;quot;http://tools.wikimedia.de/~revvar/tm_formular.xsl&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
			/* next step &amp;quot;function onload&amp;quot;*/&lt;br /&gt;
			onload();&lt;br /&gt;
			return;&lt;br /&gt;
 &lt;br /&gt;
		} catch(e) {&lt;br /&gt;
			log_message(e.message);&lt;br /&gt;
			switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		return;&lt;br /&gt;
 &lt;br /&gt;
		function onload() {&lt;br /&gt;
			var dom = createForm(Xml_dom, Xsl_dom);&lt;br /&gt;
			if (dom) {&lt;br /&gt;
				attachForm(dom);&lt;br /&gt;
 &lt;br /&gt;
				/* cache template */&lt;br /&gt;
				Template[template_name] = new Object();&lt;br /&gt;
				Template[template_name].Xml_dom = Xml_dom;&lt;br /&gt;
				Template[template_name].Xsl_dom = Xsl_dom;&lt;br /&gt;
			} else switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function createForm(Xml_dom, Xsl_dom) {&lt;br /&gt;
		try {&lt;br /&gt;
			/* transform the XML Formular Specification with the loaded stylesheet */&lt;br /&gt;
			var Result_dom = null;&lt;br /&gt;
			if (is_ie) {&lt;br /&gt;
				var result_xml = Xml_dom.transformNode(Xsl_dom.documentElement);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_submit&amp;quot;, locals[&amp;quot;Submit&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_cancel&amp;quot;, locals[&amp;quot;Cancel&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_createxml&amp;quot;, locals[&amp;quot;CreateXML&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_template&amp;quot;, locals[&amp;quot;Template&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(new RegExp(&amp;quot;locals_nohelp&amp;quot;,&amp;quot;g&amp;quot;), locals[&amp;quot;sys_no_help&amp;quot;]);&lt;br /&gt;
				result_xml = result_xml.replace(&amp;quot;locals_version&amp;quot;, VERSION);&lt;br /&gt;
				var Result_div = cNode(null, &amp;quot;div&amp;quot;, null, {&amp;quot;id&amp;quot;:&amp;quot;tm_dummy_ie_div&amp;quot;, &amp;quot;style&amp;quot;:&amp;quot;visibility:hidden;&amp;quot;});&lt;br /&gt;
				Result_div.innerHTML = result_xml;&lt;br /&gt;
				Root_node.appendChild(Result_div);&lt;br /&gt;
				Result_dom = document;&lt;br /&gt;
				var group_div = document.getElementById(&amp;quot;tm_group_selector&amp;quot;);&lt;br /&gt;
				if (group_div.firstChild == null) {&lt;br /&gt;
					group_div.parentNode.removeChild(group_div);&lt;br /&gt;
				}&lt;br /&gt;
			} else {&lt;br /&gt;
				var Processor = new XSLTProcessor()&lt;br /&gt;
				Processor.importStylesheet(Xsl_dom);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_submit&amp;quot;, locals[&amp;quot;Submit&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_cancel&amp;quot;, locals[&amp;quot;Cancel&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_createxml&amp;quot;, locals[&amp;quot;CreateXML&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_template&amp;quot;, locals[&amp;quot;Template&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_nohelp&amp;quot;,locals[&amp;quot;sys_no_help&amp;quot;]);&lt;br /&gt;
				Processor.setParameter(null, &amp;quot;locals_version&amp;quot;,VERSION);&lt;br /&gt;
 &lt;br /&gt;
				Result_dom = Processor.transformToDocument(Xml_dom);&lt;br /&gt;
			}&lt;br /&gt;
 &lt;br /&gt;
			/* add program logic */&lt;br /&gt;
			completeForm(Result_dom);&lt;br /&gt;
 &lt;br /&gt;
			return Result_dom;&lt;br /&gt;
		} catch(e) {&lt;br /&gt;
			log_message(e.message);&lt;br /&gt;
			return null;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function attachForm(dom) {&lt;br /&gt;
		/* append formular to root node */&lt;br /&gt;
		var Mf = dom.getElementById(&amp;quot;tm_main_frame&amp;quot;);&lt;br /&gt;
		if (is_ie) Root_node.removeChild(document.getElementById(&amp;quot;tm_dummy_ie_div&amp;quot;));&lt;br /&gt;
		Root_node.appendChild(Mf);&lt;br /&gt;
 &lt;br /&gt;
		var Tm_main = document.getElementById(&amp;quot;tm_main_frame&amp;quot;);&lt;br /&gt;
		var Tm_header=document.getElementById(&amp;quot;tm_header&amp;quot;);&lt;br /&gt;
		var Tm_form=document.getElementById(&amp;quot;tm_form&amp;quot;);&lt;br /&gt;
		var Tm_footer=document.getElementById(&amp;quot;tm_footer&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		/* resize all input boxes*/&lt;br /&gt;
		var Input_node = null;&lt;br /&gt;
		Input_node = traverse(Tm_form, &amp;quot;tm_formelem&amp;quot;);&lt;br /&gt;
		for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
			if (Input_node[i].className == &amp;quot;tm_input&amp;quot;) {&lt;br /&gt;
				resizeInputBox(Input_node[i], 1);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
		/* resize formular */&lt;br /&gt;
		var new_height = Root_node.offsetHeight;&lt;br /&gt;
		new_height = new_height - Tm_header.offsetHeight - Tm_footer.offsetHeight;&lt;br /&gt;
		setStyleAttribute(Tm_form, {&amp;quot;height&amp;quot;:(new_height+ &amp;quot;px&amp;quot;)});&lt;br /&gt;
		setStyleAttribute(Tm_form, {&amp;quot;height&amp;quot;:((new_height + (Root_node.offsetHeight - Tm_main.offsetHeight) )+ &amp;quot;px&amp;quot;)});&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function removeForm() {&lt;br /&gt;
		Root_node.removeChild(document.getElementById(&amp;quot;tm_main_frame&amp;quot;));&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function restoreTemplate(name)&lt;br /&gt;
	{&lt;br /&gt;
		if (Template[name]) {&lt;br /&gt;
			var dom = createForm(Template[name].Xml_dom, Template[name].Xsl_dom);&lt;br /&gt;
			if (dom) {&lt;br /&gt;
				attachForm(dom);&lt;br /&gt;
				return true;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function traverse(Parent, name)&lt;br /&gt;
	{&lt;br /&gt;
		var childs = new Array();&lt;br /&gt;
		var Child = Parent.firstChild;&lt;br /&gt;
		while (Child != null) {&lt;br /&gt;
			if ((Child.getAttribute) &amp;amp;&amp;amp; (Child.getAttribute(&amp;quot;tm_name&amp;quot;))) {&lt;br /&gt;
				if (((&amp;quot;&amp;quot;+Child.getAttribute(&amp;quot;tm_name&amp;quot;)).search(name) == 0)) childs.push(Child);&lt;br /&gt;
			}&lt;br /&gt;
			if (Child.firstChild != null) childs = childs.concat(traverse(Child, name));&lt;br /&gt;
			Child = Child.nextSibling;&lt;br /&gt;
		}&lt;br /&gt;
		return childs;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function mapParameter(Temp_plugin, Temp_real) {&lt;br /&gt;
		var Temp_given = new Object();&lt;br /&gt;
		for (var id in Temp_real) {&lt;br /&gt;
			if (Temp_plugin[id] != null) {&lt;br /&gt;
				Temp_given[id] = Temp_plugin[id];&lt;br /&gt;
				Temp_plugin[id] = null;&lt;br /&gt;
			} else {&lt;br /&gt;
				for (var pi_id in Temp_plugin) if (Temp_plugin[pi_id] != null) {&lt;br /&gt;
					if (id.toLowerCase() == pi_id.toLowerCase()) {&lt;br /&gt;
						Temp_given[id] = Temp_plugin[pi_id];&lt;br /&gt;
						Temp_plugin[pi_id] = null;&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* append all unknown params */&lt;br /&gt;
		for (var pi_id in Temp_plugin) if (Temp_plugin[pi_id] != null) Temp_given[pi_id] = Temp_plugin[pi_id];&lt;br /&gt;
		return Temp_given;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function completeForm(dom)&lt;br /&gt;
	{&lt;br /&gt;
		State = dom.getElementById(&amp;quot;tm_state&amp;quot;).firstChild;&lt;br /&gt;
		var Name_node = dom.getElementById(&amp;quot;tm_template&amp;quot;);&lt;br /&gt;
		Name_node.value= template_name;&lt;br /&gt;
		if (template_name.length &amp;gt; 32) Name_node.size = template_name.length;&lt;br /&gt;
		if (template_name != &amp;quot;none&amp;quot;) Name_node.readOnly = true;&lt;br /&gt;
		else {&lt;br /&gt;
			Name_node.value = &amp;quot;&amp;quot;;&lt;br /&gt;
			addEventListener(Name_node, &amp;quot;keypress&amp;quot;, template_name_changed);&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		var is_changed = false;&lt;br /&gt;
		function template_name_changed(e)&lt;br /&gt;
		{&lt;br /&gt;
			if (is_changed) return;&lt;br /&gt;
			if (e.type == &amp;quot;keypress&amp;quot;) {&lt;br /&gt;
				if (e.which) {&lt;br /&gt;
					if (e.which != 13) return;&lt;br /&gt;
				} else if (e.keyCode) {&lt;br /&gt;
					if (e.keyCode != 13) return;&lt;br /&gt;
				} else return;&lt;br /&gt;
			}&lt;br /&gt;
			var new_name = Name_node.value + &amp;quot;&amp;quot;;&lt;br /&gt;
			if (new_name.length == 0) return;&lt;br /&gt;
			is_changed = true;&lt;br /&gt;
			removeForm();&lt;br /&gt;
			show_template(Root_node, new_name, null, Target);&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* fix an ie width problem for the group divs */&lt;br /&gt;
 		if (is_ie) {&lt;br /&gt;
			var group_count = 1;&lt;br /&gt;
			do {&lt;br /&gt;
				var Group_div = dom.getElementById(&amp;quot;tm_group_&amp;quot; + group_count);&lt;br /&gt;
  				if ((Group_div) &amp;amp;&amp;amp; (Group_div.className) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot; + Group_div.className).search(&amp;quot;tm_ie_group&amp;quot;) &amp;lt; 0)) {&lt;br /&gt;
 					Group_div.className = &amp;quot;tm_group tm_ie_group&amp;quot;;&lt;br /&gt;
				}&lt;br /&gt;
				group_count++;&lt;br /&gt;
			} while (Group_div != null);&lt;br /&gt;
  		}&lt;br /&gt;
 &lt;br /&gt;
		var Input_node = null;&lt;br /&gt;
		Input_node = traverse(dom, &amp;quot;tm_formelem&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		/* save references to nodes and set help attribute */&lt;br /&gt;
		var comment_counter = 0;&lt;br /&gt;
		for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
			if (Input_node[i].className == &amp;quot;tm_group_heading&amp;quot;) {&lt;br /&gt;
				var id = &amp;quot;tm_comment_&amp;quot; + comment_counter;&lt;br /&gt;
				Template_new[id] = new Object();&lt;br /&gt;
				Template_new[id].showempty = (Input_node[i].parentNode.getAttribute(&amp;quot;tm_showempty&amp;quot;) == &amp;quot;true&amp;quot;);&lt;br /&gt;
				Template_new[id].value = &amp;quot;&amp;quot;;&lt;br /&gt;
				if (comment_counter &amp;gt; 0) Template_new[id].value += &amp;quot;\n&amp;quot;;&lt;br /&gt;
				Template_new[id].value += &amp;quot;&amp;lt;!-- &amp;quot; + Input_node[i].firstChild.data + &amp;quot; --&amp;gt;\n&amp;quot;;&lt;br /&gt;
				comment_counter++;&lt;br /&gt;
			} else  {&lt;br /&gt;
				var id = Input_node[i].id;&lt;br /&gt;
				if (id == null) {&lt;br /&gt;
					log_message(&amp;quot;Internal error: XSLT created input node without id.&amp;quot;);&lt;br /&gt;
					switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				if (Template_new[id] != null) {&lt;br /&gt;
					log_message(&amp;quot;Internal error: Duplicate id \&amp;quot;&amp;quot; + id + &amp;quot;\&amp;quot;.&amp;quot;);&lt;br /&gt;
					switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				Input_node[i].tm_help = Input_node[i].title;&lt;br /&gt;
				Template_new[id] = Input_node[i];&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* transform all condition attributes from text to a RegExp */&lt;br /&gt;
		for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
			var condition_text = Input_node[i].getAttribute(&amp;quot;tm_condition&amp;quot;);&lt;br /&gt;
			if ((condition_text != null) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot;+condition_text).length &amp;gt; 0)) {&lt;br /&gt;
				try {&lt;br /&gt;
					Input_node[i].tm_condition = new RegExp(condition_text);&lt;br /&gt;
				} catch(e) {&lt;br /&gt;
					log_message(e.message+&amp;quot;\n&amp;quot;+locals[&amp;quot;sys_invalid_condition&amp;quot;].replace(&amp;quot;$1&amp;quot;, condition_text));&lt;br /&gt;
					switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* map suggested to existing parameter names */&lt;br /&gt;
		if ((Template_given != null) &amp;amp;&amp;amp; (Template_given[&amp;quot;source&amp;quot;]) &amp;amp;&amp;amp; (Template_given[&amp;quot;source&amp;quot;] == &amp;quot;plug-in&amp;quot;)) {&lt;br /&gt;
			/* create a list with all valid parameter names */&lt;br /&gt;
			var Temp_real = new Object();&lt;br /&gt;
			for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
				var name = &amp;quot;&amp;quot; + Input_node[i].id;&lt;br /&gt;
				if ((name !=null) &amp;amp;&amp;amp; (name.length) &amp;amp;&amp;amp; (name.length&amp;gt;0)) Temp_real[name] = true;&lt;br /&gt;
			}&lt;br /&gt;
 &lt;br /&gt;
			Template_given = mapParameter(Template_given, Temp_real);&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* fill the formular with the given template and add resize handler */&lt;br /&gt;
		var Template_used = new Object();&lt;br /&gt;
		if (Template_given != null) {&lt;br /&gt;
			for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
				var name = &amp;quot;&amp;quot; + Input_node[i].id;&lt;br /&gt;
				if (Template_given[name] != null) Template_used[name] = true; /* mark given parameter to find unknown */&lt;br /&gt;
				if ((name !=null) &amp;amp;&amp;amp; (name.length) &amp;amp;&amp;amp; (name.length&amp;gt;0) &amp;amp;&amp;amp; (Template_given[name] != null) &amp;amp;&amp;amp; (Template_given[name].length&amp;gt;0)) {&lt;br /&gt;
					if (Input_node[i].nodeName.search(/^select$/i) == 0) {&lt;br /&gt;
							Input_node[i].value = Template_given[name];&lt;br /&gt;
							if (Input_node[i].value != Template_given[name]) {&lt;br /&gt;
								Input_node[i].title = locals[&amp;quot;sys_invalid_value&amp;quot;] + &amp;quot;: \&amp;quot;&amp;quot;+Template_given[name]+&amp;quot;\&amp;quot;! &amp;quot;+Input_node[i].tm_help;&lt;br /&gt;
								Input_node[i].className = &amp;quot;tm_input tm_error&amp;quot;;&lt;br /&gt;
								Input_node[i].setAttribute(&amp;quot;tm_error&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
							}&lt;br /&gt;
					} else {&lt;br /&gt;
						if (Input_node[i].type.search(/^checkbox$/i) == 0) {&lt;br /&gt;
							Input_node[i].checked = true;&lt;br /&gt;
						} else  {&lt;br /&gt;
							Input_node[i].value = Template_given[name];&lt;br /&gt;
							if (Input_node[i].nodeName.search(/^input$/i) == 0) {&lt;br /&gt;
								/* (1) replace newlines with &amp;lt;br /&amp;gt; */&lt;br /&gt;
								Input_node[i].value = replace_all(Input_node[i].value, new RegExp(&amp;quot;\n&amp;quot;,&amp;quot;g&amp;quot;), &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* add function to show help text at state bar on focus and to trace act input field + add resize handler */&lt;br /&gt;
		for (var i = 0; i &amp;lt; Input_node.length; i++) {&lt;br /&gt;
			addEventListener(Input_node[i], &amp;quot;focus&amp;quot;, showHelp);&lt;br /&gt;
			if ((Input_node[i].nodeName.search(/^input$/i) == 0) &amp;amp;&amp;amp; (Input_node[i].type.search(/^text$/i) == 0) &amp;amp;&amp;amp; (Input_node[i].className.search(/tm_input_max/i) &amp;lt; 0)) {&lt;br /&gt;
				addEventListener(Input_node[i], &amp;quot;keyup&amp;quot;, resizeHandler);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* add function for the group selection button */&lt;br /&gt;
		var Group_selector = dom.getElementById(&amp;quot;tm_group_selector&amp;quot;);&lt;br /&gt;
		if (Group_selector  != null) {&lt;br /&gt;
			var Group_button = Group_selector.firstChild;&lt;br /&gt;
			while (Group_button != null) {&lt;br /&gt;
				if (Group_button.nodeName.search(/^a$/i) == 0) addEventListener(Group_button, &amp;quot;click&amp;quot;, selectGroup);&lt;br /&gt;
				Group_button = Group_button.nextSibling;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* search unknown given named parameter*/&lt;br /&gt;
		if ((Template_given != null) &amp;amp;&amp;amp; (Template_used != null)) {&lt;br /&gt;
			var unknown_parameter = new Array();&lt;br /&gt;
			for (var id in Template_given) if (!((Template_used[id]) &amp;amp;&amp;amp; (Template_used[id] == true))) {&lt;br /&gt;
				if (((&amp;quot;&amp;quot;+id).search(/^(source|template_name)$/) &amp;lt; 0) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot;+id).search(&amp;quot;tm_form_parameter&amp;quot;) &amp;lt; 0))&lt;br /&gt;
					unknown_parameter.push(id.replace(/^tm_form_(.+)$/, &amp;quot;$1&amp;quot;));&lt;br /&gt;
			}&lt;br /&gt;
			if (unknown_parameter.length &amp;gt; 0) {&lt;br /&gt;
				var unknown_div = cNode(dom.getElementById(&amp;quot;tm_group_selector&amp;quot;), &amp;quot;div&amp;quot;, null, {&amp;quot;class&amp;quot;:&amp;quot;tm_unknown_selector&amp;quot;,&amp;quot;id&amp;quot;:&amp;quot;tm_unknown_selector&amp;quot;});&lt;br /&gt;
				for (var i = 0; i &amp;lt; unknown_parameter.length; i++) {&lt;br /&gt;
					var Unknown_link = cNode(unknown_div, &amp;quot;a&amp;quot;, unknown_parameter[i] , {&amp;quot;class&amp;quot;:&amp;quot;tm_button tm_selector tm_unknown_selector&amp;quot;,&amp;quot;title&amp;quot;:Template_given[&amp;quot;tm_form_&amp;quot; + unknown_parameter[i]]});&lt;br /&gt;
					addEventListener(Unknown_link, &amp;quot;click&amp;quot;, insertUnknown);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* buttons */&lt;br /&gt;
		var Button_submit = dom.getElementById(&amp;quot;tm_submit&amp;quot;);&lt;br /&gt;
		addEventListener(Button_submit, &amp;quot;click&amp;quot;, submitTemplate);&lt;br /&gt;
		var Button_cancel = dom.getElementById(&amp;quot;tm_cancel&amp;quot;);&lt;br /&gt;
		addEventListener(Button_cancel, &amp;quot;click&amp;quot;, cancelTemplate);&lt;br /&gt;
		if ((is_xml_generated) &amp;amp;&amp;amp; (!is_opera)) {&lt;br /&gt;
			var Button_createxml = dom.getElementById(&amp;quot;tm_createxml&amp;quot;);&lt;br /&gt;
			setStyleAttribute(Button_createxml, {&#039;visibility&#039;:&#039;visible&#039;});&lt;br /&gt;
			Button_createxml.removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
			if (Button_createxml) addEventListener(Button_createxml, &amp;quot;click&amp;quot;, createXML);&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* last op (possible race condition!): enable Template_name node and buttons */&lt;br /&gt;
		Name_node.removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
		Button_cancel.removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
		if (template_name != &amp;quot;none&amp;quot;) Button_submit.removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function submitTemplate(e)&lt;br /&gt;
	{&lt;br /&gt;
		if (!is_ie) e.preventDefault();&lt;br /&gt;
 &lt;br /&gt;
		/* read all results and correct them if necessary */&lt;br /&gt;
		var success = true;&lt;br /&gt;
		var First_error_node = null;&lt;br /&gt;
		for (var id in Template_new) if (id.search(/^(source|template_name|tm_comment_)/) &amp;lt; 0) {&lt;br /&gt;
			var Node = Template_new[id];&lt;br /&gt;
			switch ((&amp;quot;&amp;quot;+Node.nodeName).toLowerCase()) {&lt;br /&gt;
				case &amp;quot;textarea&amp;quot;: {&lt;br /&gt;
					Node.tm_value = trim(Node.value);&lt;br /&gt;
					var lines = Node.tm_value.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
					if ((lines.length - 1 &amp;gt; 1) &amp;amp;&amp;amp; (lines[lines.length - 1].search(/[\S]/) &amp;lt; 0)) lines.pop();&lt;br /&gt;
					Node.tm_value = lines.join(&amp;quot;\n&amp;quot;);&lt;br /&gt;
					if (lines.length &amp;gt; 1) Node.tm_value = &amp;quot;\n&amp;quot; + Node.tm_value;&lt;br /&gt;
				};break;&lt;br /&gt;
				case &amp;quot;input&amp;quot;: {&lt;br /&gt;
					if ((&amp;quot;&amp;quot;+Node.type).toLowerCase() == &amp;quot;checkbox&amp;quot;) {&lt;br /&gt;
						if (Node.checked == true) Node.tm_value = trim(Node.value);&lt;br /&gt;
						else Node.tm_value = &amp;quot;&amp;quot;;&lt;br /&gt;
					} else {&lt;br /&gt;
						Node.tm_value = trim(Node.value);&lt;br /&gt;
					}&lt;br /&gt;
				};break;&lt;br /&gt;
 &lt;br /&gt;
				case &amp;quot;select&amp;quot;: {&lt;br /&gt;
					Node.tm_value = trim(Node.value);&lt;br /&gt;
				};break;&lt;br /&gt;
 &lt;br /&gt;
				default: {&lt;br /&gt;
					log_message(&amp;quot;Internal Error: Unknown Node type \&amp;quot;&amp;quot; + Node.nodeName + &amp;quot;\&amp;quot;.&amp;quot;);&lt;br /&gt;
					switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
 &lt;br /&gt;
			/* verify values */&lt;br /&gt;
			var node_success = true;&lt;br /&gt;
			if ((Node.getAttribute(&amp;quot;tm_null&amp;quot;) == &amp;quot;false&amp;quot;) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot;+Node.tm_value).length==0)) {&lt;br /&gt;
				success = false; node_success = false;&lt;br /&gt;
				if (First_error_node == null) First_error_node=Node;&lt;br /&gt;
				Node.title = locals[&amp;quot;sys_enter_value&amp;quot;]+&amp;quot; &amp;quot;+Node.tm_help;&lt;br /&gt;
				Node.className = &amp;quot;tm_input tm_error&amp;quot;;&lt;br /&gt;
				Node.setAttribute(&amp;quot;tm_error&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
			} else if (Node.tm_condition != null) {&lt;br /&gt;
				if ((!((Node.getAttribute(&amp;quot;tm_null&amp;quot;) == &amp;quot;true&amp;quot;) &amp;amp;&amp;amp; ((&amp;quot;&amp;quot;+Node.value).length==0))) &amp;amp;&amp;amp;&lt;br /&gt;
				((&amp;quot;&amp;quot;+Node.tm_value).search(Node.tm_condition) != 0)) {&lt;br /&gt;
					success = false; node_success = false;&lt;br /&gt;
					if (First_error_node == null) First_error_node=Node;&lt;br /&gt;
					Node.title = locals[&amp;quot;sys_enter_valid_value&amp;quot;]+&amp;quot; &amp;quot;+Node.tm_help;&lt;br /&gt;
					Node.className = &amp;quot;tm_input tm_error&amp;quot;;&lt;br /&gt;
					Node.setAttribute(&amp;quot;tm_error&amp;quot;, &amp;quot;true&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			if (node_success == true) {&lt;br /&gt;
				Node.setAttribute(&amp;quot;tm_error&amp;quot;, &amp;quot;false&amp;quot;);&lt;br /&gt;
				Node.className = &amp;quot;tm_input&amp;quot;;&lt;br /&gt;
				Node.title = Node.tm_help;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (success==false) {&lt;br /&gt;
			if (State) State.data = locals[&amp;quot;sys_please_correct_errors&amp;quot;];&lt;br /&gt;
			First_error_node.focus();&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		/* create new template source */&lt;br /&gt;
		var x_param = /^tm_form_(.+)$/;&lt;br /&gt;
		var output = document.getElementById(&amp;quot;tm_main_frame&amp;quot;);&lt;br /&gt;
		if (output != null) {&lt;br /&gt;
			if (output.getAttribute(&amp;quot;tm_max_value_indentation&amp;quot;)) {&lt;br /&gt;
				max_value_indentation = 0+output.getAttribute(&amp;quot;tm_max_value_indentation&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			output = ((&amp;quot;&amp;quot;+output.getAttribute(&amp;quot;tm_output&amp;quot;)).search(/^expand$/)==0);&lt;br /&gt;
		} else output=false;&lt;br /&gt;
		var new_template = &amp;quot;{{&amp;quot; + Template_new[&amp;quot;template_name&amp;quot;] + ((output)?&amp;quot;\n&amp;quot;:&amp;quot;&amp;quot;);&lt;br /&gt;
		var group_count = 0;&lt;br /&gt;
		var group_template = &amp;quot;&amp;quot;;&lt;br /&gt;
		var group_showempty = false;&lt;br /&gt;
 &lt;br /&gt;
		// get max parameter length&lt;br /&gt;
		var max_parameter_length = 0;&lt;br /&gt;
		for (id in Template_new) if (id.search(/^(source|template_name)$/) &amp;lt; 0) {&lt;br /&gt;
			if ((output || ((&amp;quot;&amp;quot;+Template_new[id].tm_value).length &amp;gt; 0)) &amp;amp;&amp;amp; ((id.search(&amp;quot;tm_comment_&amp;quot;) &amp;lt; 0))) {&lt;br /&gt;
				var tmp_param = (&amp;quot;&amp;quot;+id).replace(x_param,&amp;quot;$1&amp;quot;);&lt;br /&gt;
				if (max_parameter_length &amp;lt; tmp_param.length) max_parameter_length = tmp_param.length;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		var parameter_space = &amp;quot;&amp;quot;;&lt;br /&gt;
		var xNumber = /^[0-9]+$/g;&lt;br /&gt;
		var prevEmptyNumbers = &#039;&#039;;&lt;br /&gt;
		for (var i = 0; i &amp;lt; ((max_parameter_length &amp;gt; max_value_indentation) ? max_value_indentation : max_parameter_length); i++) parameter_space += &amp;quot; &amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
		for (id in Template_new) if (id.search(/^(source|template_name)$/) &amp;lt; 0) {&lt;br /&gt;
			var tmp_param = (&amp;quot;&amp;quot;+id).replace(x_param,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			if (output == true) {&lt;br /&gt;
				if (id.search(&amp;quot;tm_comment_&amp;quot;) == 0) {&lt;br /&gt;
					if ((group_count &amp;gt; 0) || (group_showempty == true)) new_template += group_template;&lt;br /&gt;
					group_count = 0;&lt;br /&gt;
					group_template = &amp;quot;&amp;quot;;&lt;br /&gt;
					group_showempty = Template_new[id].showempty;&lt;br /&gt;
//  					group_template += Template_new[id].value;&lt;br /&gt;
				} else {&lt;br /&gt;
					if (tmp_param.length &amp;lt; parameter_space.length) tmp_param = (tmp_param + parameter_space).substr(0, parameter_space.length);&lt;br /&gt;
					if (tmp_param.search(xNumber) == 0) {&lt;br /&gt;
						group_template += &amp;quot;|&amp;quot;;&lt;br /&gt;
					} else {&lt;br /&gt;
						group_template += &amp;quot;| &amp;quot; + tmp_param;&lt;br /&gt;
					}&lt;br /&gt;
					if (((&amp;quot;&amp;quot;+Template_new[id].tm_value).length &amp;gt; 0) || (Template_new[id].getAttribute(&amp;quot;tm_predefined&amp;quot;) == &amp;quot;false&amp;quot;)) {&lt;br /&gt;
						if (tmp_param.search(xNumber) == 0) {&lt;br /&gt;
							group_template += Template_new[id].tm_value;&lt;br /&gt;
						} else {&lt;br /&gt;
							group_template += &amp;quot;= &amp;quot; + Template_new[id].tm_value;&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					group_template += &amp;quot;\n&amp;quot;;&lt;br /&gt;
					if ((&amp;quot;&amp;quot;+Template_new[id].tm_value).length &amp;gt; 0) group_count++;&lt;br /&gt;
				}&lt;br /&gt;
			} else if (((&amp;quot;&amp;quot;+Template_new[id].tm_value).length &amp;gt; 0) &amp;amp;&amp;amp; ((id.search(&amp;quot;tm_comment_&amp;quot;) &amp;lt; 0))) {&lt;br /&gt;
				if (tmp_param.length &amp;lt; parameter_space.length) tmp_param = (tmp_param + parameter_space).substr(0, parameter_space.length);&lt;br /&gt;
				new_template += prevEmptyNumbers;&lt;br /&gt;
				prevEmptyNumbers = &#039;&#039;;&lt;br /&gt;
				if (tmp_param.search(xNumber) == 0) {&lt;br /&gt;
					new_template += &amp;quot;|&amp;quot;+ Template_new[id].tm_value;&lt;br /&gt;
				} else {&lt;br /&gt;
					new_template += &amp;quot;| &amp;quot;+ tmp_param + &amp;quot;= &amp;quot; + Template_new[id].tm_value;&lt;br /&gt;
				}&lt;br /&gt;
			} else if (tmp_param.search(xNumber) == 0) prevEmptyNumbers += &#039;|&#039;;&lt;br /&gt;
		}&lt;br /&gt;
		if (output == true) if ((group_count &amp;gt; 0) || (group_showempty == true)) new_template += group_template;&lt;br /&gt;
		new_template += &amp;quot;}}&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
		switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
		/* insert source into Editbox at cursor */&lt;br /&gt;
 		var scroll_top = Target[&amp;quot;Editbox&amp;quot;].scrollTop;&lt;br /&gt;
		Target[&amp;quot;Editbox&amp;quot;].value = Target[&amp;quot;Editbox&amp;quot;].value.substring(0, Target[&amp;quot;start&amp;quot;]) + new_template + Target[&amp;quot;Editbox&amp;quot;].value.substring(Target[&amp;quot;end&amp;quot;] + 1);&lt;br /&gt;
		if (is_ie) {&lt;br /&gt;
			var Range = Target[&amp;quot;Editbox&amp;quot;].createTextRange();&lt;br /&gt;
			Range.collapse(true);&lt;br /&gt;
			Range.moveEnd(&#039;character&#039;, Target[&amp;quot;start&amp;quot;]);&lt;br /&gt;
			Range.moveStart(&#039;character&#039;, Target[&amp;quot;start&amp;quot;]);&lt;br /&gt;
			Range.select();&lt;br /&gt;
		} else {&lt;br /&gt;
			Target[&amp;quot;Editbox&amp;quot;].selectionStart = Target[&amp;quot;cursor&amp;quot;];&lt;br /&gt;
			Target[&amp;quot;Editbox&amp;quot;].selectionEnd = Target[&amp;quot;cursor&amp;quot;];&lt;br /&gt;
			Target[&amp;quot;Editbox&amp;quot;].scrollTop = scroll_top;&lt;br /&gt;
		}&lt;br /&gt;
		switchOnWikEd();&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function cancelTemplate(e)&lt;br /&gt;
	{&lt;br /&gt;
		if (!is_ie) e.preventDefault();&lt;br /&gt;
		switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
		switchOnWikEd();&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function createXML(e) {&lt;br /&gt;
		if (!is_ie) e.preventDefault();&lt;br /&gt;
 &lt;br /&gt;
		var full_name = ((template_name.search(new RegExp(locals[&amp;quot;User&amp;quot;]+&amp;quot;( [^:]+){0,1}:&amp;quot;),&amp;quot;&amp;quot;)&amp;gt;=0)?(&amp;quot;&amp;quot;):(locals[&amp;quot;Template&amp;quot;]+&amp;quot;:&amp;quot;))+template_name;&lt;br /&gt;
		var xml_window = window.open(wgServer + wgScriptPath + &#039;/index.php?action=edit&amp;amp;summary=&#039; + encodeURIComponent(locals[&amp;quot;sys_xml_generated_summary&amp;quot;]) + &#039;&amp;amp;title=&#039; + encodeURIComponent(full_name) + &#039;/XML&#039;);&lt;br /&gt;
		xml_window.focus();&lt;br /&gt;
		var textbox = xml_window.document.getElementById(&#039;wpTextbox1&#039;);&lt;br /&gt;
		if (textbox) textbox.value = generated_xml;&lt;br /&gt;
		else {&lt;br /&gt;
			addEventListener(xml_window, &#039;load&#039;, function (e) {&lt;br /&gt;
				var textbox = xml_window.document.getElementById(&#039;wpTextbox1&#039;);&lt;br /&gt;
				if (textbox) textbox.value = generated_xml;&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function switch_view_to(view)&lt;br /&gt;
{&lt;br /&gt;
	var Editbox = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
	var Tm_box = document.getElementById(&amp;quot;tm_dummy_div&amp;quot;);&lt;br /&gt;
	if (view == null) view = &amp;quot;&amp;quot;;&lt;br /&gt;
	if (((view == &amp;quot;VM&amp;quot;)  || (view == &amp;quot;&amp;quot;)) &amp;amp;&amp;amp; (act_view == &amp;quot;EB&amp;quot;)) {&lt;br /&gt;
		if (Editbox != null) {&lt;br /&gt;
			setStyleAttribute(Editbox, {&amp;quot;visibility&amp;quot;:&amp;quot;hidden&amp;quot;});&lt;br /&gt;
			Editbox.readOnly = true;&lt;br /&gt;
			document.getElementById(&amp;quot;wpSave&amp;quot;).disabled = true;&lt;br /&gt;
			document.getElementById(&amp;quot;wpPreview&amp;quot;).disabled = true;&lt;br /&gt;
			document.getElementById(&amp;quot;wpDiff&amp;quot;).disabled = true;&lt;br /&gt;
		}&lt;br /&gt;
		if (Tm_box != null) setStyleAttribute(Tm_box, {&amp;quot;z-index&amp;quot;:&amp;quot;99&amp;quot;, &amp;quot;visibility&amp;quot;:&amp;quot;visible&amp;quot;});&lt;br /&gt;
		act_view = &amp;quot;VM&amp;quot;;&lt;br /&gt;
	} else if (((view == &amp;quot;EB&amp;quot;)  || (view == &amp;quot;&amp;quot;)) &amp;amp;&amp;amp; (act_view == &amp;quot;VM&amp;quot;)) {&lt;br /&gt;
		if (Tm_box != null) setStyleAttribute(Tm_box, {&amp;quot;visibility&amp;quot;:&amp;quot;hidden&amp;quot;, &amp;quot;z-index&amp;quot;:&amp;quot;0&amp;quot;});&lt;br /&gt;
		if (Editbox != null) {&lt;br /&gt;
			if (view == &amp;quot;EB&amp;quot;) {&lt;br /&gt;
				// removes user interface&lt;br /&gt;
				if (Tm_box) Tm_box.parentNode.removeChild(Tm_box);&lt;br /&gt;
				Tm_box = null;&lt;br /&gt;
 &lt;br /&gt;
				if (is_ie) Editbox.removeAttribute(&amp;quot;readOnly&amp;quot;);&lt;br /&gt;
				else Editbox.removeAttribute(&amp;quot;readonly&amp;quot;);&lt;br /&gt;
				document.getElementById(&amp;quot;wpSave&amp;quot;).removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
				document.getElementById(&amp;quot;wpPreview&amp;quot;).removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
				document.getElementById(&amp;quot;wpDiff&amp;quot;).removeAttribute(&amp;quot;disabled&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			setStyleAttribute(Editbox, {&amp;quot;visibility&amp;quot;:&amp;quot;visible&amp;quot;});&lt;br /&gt;
			Editbox.focus();&lt;br /&gt;
		}&lt;br /&gt;
		act_view = &amp;quot;EB&amp;quot;;&lt;br /&gt;
	} else {&lt;br /&gt;
		log_message(&amp;quot;Internal error: act_view conflicts with view parameter&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
var help_mutex = false;&lt;br /&gt;
function showHelp(e)&lt;br /&gt;
{&lt;br /&gt;
	if (help_mutex == true) return;&lt;br /&gt;
	help_mutex = true;&lt;br /&gt;
	if (!is_ie) e.preventDefault();&lt;br /&gt;
	Act_input = ((is_ie)?e.srcElement:e.target);&lt;br /&gt;
	var text = Act_input.title;&lt;br /&gt;
	/* write help text and resize formular */&lt;br /&gt;
	var Tm_main = document.getElementById(&amp;quot;tm_main_frame&amp;quot;);&lt;br /&gt;
	var Tm_header=document.getElementById(&amp;quot;tm_header&amp;quot;);&lt;br /&gt;
	var Tm_form=document.getElementById(&amp;quot;tm_form&amp;quot;);&lt;br /&gt;
	var rel_scroll_pos = Tm_form.scrollTop / Tm_form.scrollHeight;&lt;br /&gt;
	var Tm_footer=document.getElementById(&amp;quot;tm_footer&amp;quot;);&lt;br /&gt;
	var new_height = Tm_main.parentNode.offsetHeight;&lt;br /&gt;
 &lt;br /&gt;
	document.getElementById(&amp;quot;tm_state&amp;quot;).firstChild.data = text;&lt;br /&gt;
 &lt;br /&gt;
	new_height = new_height - Tm_header.offsetHeight - Tm_footer.offsetHeight;&lt;br /&gt;
	setStyleAttribute(Tm_form, {&amp;quot;height&amp;quot;:(new_height+ &amp;quot;px&amp;quot;)});&lt;br /&gt;
	setStyleAttribute(Tm_form, {&amp;quot;height&amp;quot;:((new_height + (Tm_main.parentNode.offsetHeight - Tm_main.offsetHeight) )+ &amp;quot;px&amp;quot;)});&lt;br /&gt;
	Tm_form.scrollTop = Tm_form.scrollHeight * rel_scroll_pos;&lt;br /&gt;
	help_mutex = false;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function resizeHandler(e)&lt;br /&gt;
{&lt;br /&gt;
	Act_input = ((is_ie)?e.srcElement:e.target);&lt;br /&gt;
	Act_input.tm_old_size = Act_input.size;&lt;br /&gt;
	resizeInputBox(Act_input, 1);&lt;br /&gt;
	if ((is_gecko) &amp;amp;&amp;amp; (Act_input.tm_old_size != Act_input.size)) {&lt;br /&gt;
		var org_value = Act_input.value;&lt;br /&gt;
		var org_start = Act_input.selectionStart;&lt;br /&gt;
		var org_end = Act_input.selectionEnd;&lt;br /&gt;
		Act_input.value = &amp;quot;&amp;quot;;&lt;br /&gt;
		Act_input.value = org_value;&lt;br /&gt;
		if (org_end &amp;gt;= org_start) Act_input.selectionEnd = org_end;&lt;br /&gt;
		Act_input.selectionStart = org_start;&lt;br /&gt;
		if (org_end &amp;lt; org_start) Act_input.selectionEnd = org_end;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function insertUnknown(e)&lt;br /&gt;
{&lt;br /&gt;
	if (!is_ie) e.preventDefault();&lt;br /&gt;
	var text = ((is_ie)?e.srcElement:e.target).title;&lt;br /&gt;
	if ((Act_input != null) &amp;amp;&amp;amp; (Act_input.nodeName.search(/^(input|select|textarea)$/i) ==0) &amp;amp;&amp;amp; (Act_input.type.search(/^checkbox$/i) &amp;lt; 0)) Act_input.value = text;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function selectGroup(e)&lt;br /&gt;
{&lt;br /&gt;
	if (!is_ie) e.preventDefault();&lt;br /&gt;
	try {&lt;br /&gt;
		var text = &amp;quot;&amp;quot; + ((is_ie)?e.srcElement:e.target).id;&lt;br /&gt;
		var position = Math.round(parseFloat(text.replace(/^.+_([0-9\.]+)$/,&amp;quot;$1&amp;quot;)) * ((is_ie)?2:1));&lt;br /&gt;
		var Group_div = document.getElementById(&amp;quot;tm_group_&amp;quot;+position);&lt;br /&gt;
		var Form_div = document.getElementById(&amp;quot;tm_form&amp;quot;);&lt;br /&gt;
		Form_div.scrollTop = Group_div.offsetTop - Group_div.parentNode.offsetTop;&lt;br /&gt;
	} catch(e) {&lt;br /&gt;
		log_message(e.message+&amp;quot;\n&amp;quot;+&amp;quot;Internal error: Can&#039;t select group div with id=\&amp;quot;tm_group_&amp;quot;+position+&amp;quot;\&amp;quot;.&amp;quot;);&lt;br /&gt;
		switch_view_to(&amp;quot;EB&amp;quot;);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function parse_template_source(source)&lt;br /&gt;
{&lt;br /&gt;
	var x_comment = /&amp;lt;!--.*?--&amp;gt;/g;&lt;br /&gt;
	source = replace_all(source, x_comment, &amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
	/* replace split chars within nowiki segments and nested templates */&lt;br /&gt;
	var x_nowiki_1 = /(&amp;lt;nowiki&amp;gt;.*?)[|](.*?&amp;lt;\/nowiki&amp;gt;)/g;&lt;br /&gt;
	var x_nested = /((?:^|[^{])\{\{[^{}]*?)[|]([^{}]*?\}\}(?:$|[^}]))/g;&lt;br /&gt;
	source = replace_all(source, x_nowiki_1, &amp;quot;$1###TM###$2&amp;quot;);&lt;br /&gt;
	source = replace_all(source, x_nested, &amp;quot;$1###TM###$2&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
	/* replace split chars within wikilinks */&lt;br /&gt;
	var x_wikilinks = /(\[\[[^\]]+)\|([^\]]*)/g;&lt;br /&gt;
	source = replace_all(source, x_wikilinks, &amp;quot;$1###TM###$2&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
	var parameter = source.split(&amp;quot;|&amp;quot;);&lt;br /&gt;
	var Template_given = new Object();&lt;br /&gt;
	for (var i = 0; i &amp;lt; parameter.length; i++) {&lt;br /&gt;
		parameter[i] = replace_all(parameter[i], /###TM###/g, &amp;quot;|&amp;quot;);&lt;br /&gt;
		parameter[i] = trim(parameter[i]);&lt;br /&gt;
		if (i==0) {&lt;br /&gt;
			Template_given[&amp;quot;template_name&amp;quot;] = parameter[i];&lt;br /&gt;
		} else {&lt;br /&gt;
			var parameter_name = &amp;quot;&amp;quot;;&lt;br /&gt;
			var parameter_value = &amp;quot;&amp;quot;;&lt;br /&gt;
			var first_equal_char = parameter[i].search(&amp;quot;=&amp;quot;);&lt;br /&gt;
			if (first_equal_char &amp;lt; 0) {&lt;br /&gt;
				parameter_name = &amp;quot;tm_form_&amp;quot; + i;&lt;br /&gt;
				parameter_value = parameter[i];&lt;br /&gt;
			} else {&lt;br /&gt;
				parameter_name = &amp;quot;tm_form_&amp;quot; + trim(parameter[i].substring(0, first_equal_char));&lt;br /&gt;
				parameter_value = trim(parameter[i].substring(first_equal_char + 1));&lt;br /&gt;
			}&lt;br /&gt;
			if (Template_given[parameter_name] != null) {&lt;br /&gt;
				log_message(&amp;quot;Syntax error: Parameter name \&amp;quot;&amp;quot;+parameter_name+&amp;quot;\&amp;quot; already in use.&amp;quot;);&lt;br /&gt;
				return null;&lt;br /&gt;
			}&lt;br /&gt;
			/* correct format errors */&lt;br /&gt;
 &lt;br /&gt;
			Template_given[parameter_name] = parameter_value;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	Template_given[&amp;quot;source&amp;quot;] = &amp;quot;source code&amp;quot;;&lt;br /&gt;
	return Template_given;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/* ==helper functions===================================================*/&lt;br /&gt;
function replace_all(text, regexp, replacement)&lt;br /&gt;
{&lt;br /&gt;
	var count_tmp = 0;&lt;br /&gt;
	while (text.search(regexp) &amp;gt;= 0) {&lt;br /&gt;
		text = text.replace(regexp, replacement);&lt;br /&gt;
		count_tmp++;&lt;br /&gt;
		if (count_tmp &amp;gt; 1000) {&lt;br /&gt;
			log_message(&amp;quot;replace_all: Internal error - endless loop.&amp;quot;);&lt;br /&gt;
			return null;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return text;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function trim(text)&lt;br /&gt;
{&lt;br /&gt;
	text = &amp;quot;&amp;quot; + text;&lt;br /&gt;
	text = replace_all(text, /^\s+/g, &amp;quot;&amp;quot;);&lt;br /&gt;
	text = replace_all(text, /^(.*?)\s+$/, &amp;quot;$1&amp;quot;);&lt;br /&gt;
	text = replace_all(text, &amp;quot;\n\n&amp;quot;, &amp;quot;\n&amp;quot;);&lt;br /&gt;
	if (text.search(/[^\s]/) &amp;lt; 0) text = &amp;quot;&amp;quot;;&lt;br /&gt;
	return text;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/**&lt;br /&gt;
  Creates a new GUI node.&lt;br /&gt;
 &lt;br /&gt;
 @author [[de:Benutzer:Revvar]]&lt;br /&gt;
 @param nRoot null or reference to the prefered root node object&lt;br /&gt;
 @param nType HTML type string (&amp;quot;div&amp;quot; for example)&lt;br /&gt;
 @param nText null or string with the text for the text child node&lt;br /&gt;
 @param nAttr null or object with attribute attributes, ({style:&amp;quot;...&amp;quot;,width:&amp;quot;100%&amp;quot;} for example)&lt;br /&gt;
 @return the new node object&lt;br /&gt;
*/&lt;br /&gt;
function cNode(nRoot,nType,nText,nAttr)&lt;br /&gt;
{&lt;br /&gt;
	var elem=document.createElement(nType);&lt;br /&gt;
	if (nAttr) for (var aid in nAttr) {&lt;br /&gt;
		if (aid == &amp;quot;style&amp;quot;) {&lt;br /&gt;
			var style_attr = nAttr[aid].split(&amp;quot;;&amp;quot;);&lt;br /&gt;
			var style_obj = new Object();&lt;br /&gt;
			for (var i = 0; i &amp;lt; style_attr.length; i++) {&lt;br /&gt;
				var style_id = style_attr[i].replace(/^\s*([^:]+):.*$/,&amp;quot;$1&amp;quot;);&lt;br /&gt;
				var style_value = style_attr[i].replace(/^\s*[^:]+:\s*([^\s;]+)[\s;]*$/,&amp;quot;$1&amp;quot;);&lt;br /&gt;
				if (style_id.length &amp;gt; 0) style_obj[style_id] = style_value;&lt;br /&gt;
// 				log_message(style_id + &amp;quot;:&amp;quot; + style_value);&lt;br /&gt;
			}&lt;br /&gt;
		  setStyleAttribute(elem, style_obj);&lt;br /&gt;
		} else {&lt;br /&gt;
			if (aid == &amp;quot;class&amp;quot;) elem.className = nAttr[aid];&lt;br /&gt;
			else elem.setAttribute(aid, nAttr[aid]);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	if (nText) elem.appendChild(document.createTextNode(nText));&lt;br /&gt;
	if (nRoot) nRoot.appendChild(elem);&lt;br /&gt;
	return elem;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
function setStyleAttribute(Node, Attribute)&lt;br /&gt;
{&lt;br /&gt;
	if ((Node) &amp;amp;&amp;amp; (Attribute)) {&lt;br /&gt;
		 for (var aid in Attribute) {&lt;br /&gt;
			 Node.style[aid] = Attribute[aid];&lt;br /&gt;
		 }&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function addEventListener(Node, event, callback)&lt;br /&gt;
{&lt;br /&gt;
	if (is_ie) Node.attachEvent(&amp;quot;on&amp;quot;+event, callback);&lt;br /&gt;
	else Node.addEventListener(event, callback, false);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function removeEventListener(Node, event, callback)&lt;br /&gt;
{&lt;br /&gt;
	if (is_ie) Node.detachEvent(&amp;quot;on&amp;quot;+event, callback);&lt;br /&gt;
	else Node.removeEventListener(event, callback, false);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
//XMLHttpRequest wrapper, with timeout support&lt;br /&gt;
function oXmlHttpRequest(data)&lt;br /&gt;
{&lt;br /&gt;
	//preconditions&lt;br /&gt;
	if ((data.onload==null) || (data.onreadystatechange==null)) throw(&amp;quot;oXmlHttpRequest-precondition&amp;quot;);&lt;br /&gt;
	var orgHandler={id:(iRequestID++),onload:data.onload,onreadystatechange:data.onreadystatechange,onerror:data.onerror,timeout:null,valid:true};&lt;br /&gt;
 &lt;br /&gt;
	data.onload=function (rD) {&lt;br /&gt;
		if (orgHandler.timeout) clearTimeout(orgHandler.timeout);&lt;br /&gt;
		if (bBreak) return; //cancel by user&lt;br /&gt;
		if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
		orgHandler.onload(rD);&lt;br /&gt;
		orgHandler.valid=false;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	data.onreadystatechange=function (rD) {&lt;br /&gt;
		if (orgHandler.timeout) clearTimeout(orgHandler.timeout);&lt;br /&gt;
		if (bBreak) return; //cancel by user&lt;br /&gt;
		if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
		orgHandler.onreadystatechange(rD);&lt;br /&gt;
		orgHandler.timeout=setTimeout(fTimeout,HTTPTIMEOUT);&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	data.onerror=function (rD)&lt;br /&gt;
	{&lt;br /&gt;
		if (orgHandler.timeout) clearTimeout(orgHandler.timeout);&lt;br /&gt;
		if (bBreak) return; //cancel by user&lt;br /&gt;
		if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
		orgHandler.valid=false;//discard request&lt;br /&gt;
		if (orgHandler.onerror) orgHandler.onerror(rD);&lt;br /&gt;
		log_message(&amp;quot;HTTP-Error &amp;quot;+rD.status+&amp;quot;:&amp;quot;+rD.statusText);&lt;br /&gt;
		fRetry(&amp;quot;Error: &amp;quot;+rD.status+&amp;quot;.&amp;quot;);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function fRetry(text)&lt;br /&gt;
	{&lt;br /&gt;
		if (data.silent) return;&lt;br /&gt;
		var bRetry=confirm(text+&amp;quot; &amp;quot;+locals[&amp;quot;sys_question_repeat_http_request&amp;quot;]);&lt;br /&gt;
		if (bRetry==false) {&lt;br /&gt;
			bBreak=true;&lt;br /&gt;
			if (data.on_cancel) data.on_cancel();&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		//retry request&lt;br /&gt;
		setTimeout(function() {oXmlHttpRequest({method:data.method,url:data.url,headers:data.headers,data:data.data,onload:orgHandler.onload,onerror:orgHandler.onerror,onreadystatechange:orgHandler.onreadystatechange})},10);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function fTimeout()&lt;br /&gt;
	{&lt;br /&gt;
		if (orgHandler.timeout) clearTimeout(orgHandler.timeout);&lt;br /&gt;
		if (bBreak) return; //cancel by user&lt;br /&gt;
		if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
		var bWait=false;&lt;br /&gt;
		if (!data.silent) bWait=confirm(locals[&amp;quot;sys_question_wait_for_http_response&amp;quot;].replace(&amp;quot;$1&amp;quot;, Math.round(HTTPTIMEOUT/1000)));&lt;br /&gt;
		if (bWait==false) {&lt;br /&gt;
			orgHandler.valid=false;//discard request&lt;br /&gt;
			fRetry(&amp;quot;Timeout: &amp;quot;+data.url+&amp;quot;\n&amp;quot;);&lt;br /&gt;
		} else {&lt;br /&gt;
			if (!orgHandler.valid) return; //old discarded request&lt;br /&gt;
			orgHandler.timeout=setTimeout(fTimeout,HTTPTIMEOUT);&lt;br /&gt;
		}&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	orgHandler.timeout=setTimeout(fTimeout,HTTPTIMEOUT);&lt;br /&gt;
	GM_xmlhttpRequest(data);&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function GM_xmlhttpRequest(req)&lt;br /&gt;
{&lt;br /&gt;
	if (is_gecko &amp;amp;&amp;amp; (url.search(&amp;quot;file://&amp;quot;) == 0)) {&lt;br /&gt;
		/* Debugging with a local copy */&lt;br /&gt;
		try {&lt;br /&gt;
			netscape.security.PrivilegeManager.enablePrivilege(&amp;quot;UniversalBrowserRead&amp;quot;);&lt;br /&gt;
		} catch (e) {&lt;br /&gt;
			alert(&amp;quot;Internal error: Permission UniversalBrowserRead denied.&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	var xmlHttp = sajax_init_object();// gets the XMLHttpRequest object (depends on ajax.js)&lt;br /&gt;
 &lt;br /&gt;
	xmlHttp.open(req.method, req.url, true);&lt;br /&gt;
	xmlHttp.onreadystatechange = function () {&lt;br /&gt;
		if (xmlHttp.readyState == 4) {&lt;br /&gt;
			req.onload(xmlHttp);&lt;br /&gt;
		} else req.onreadystatechange;&lt;br /&gt;
	};&lt;br /&gt;
	for (var name in req.headers) {&lt;br /&gt;
		xmlHttp.setRequestHeader(name, req.headers[name]);&lt;br /&gt;
	}&lt;br /&gt;
	xmlHttp.send(req.data);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
var resize_mutex = false;&lt;br /&gt;
 function resizeInputBox(oInputBox, extra_spaces) {&lt;br /&gt;
	if (resize_mutex == true) return;&lt;br /&gt;
	resize_mutex = true;&lt;br /&gt;
	if (!((oInputBox.nodeName) &amp;amp;&amp;amp; (oInputBox.nodeName.search(/^input$/i) == 0) &amp;amp;&amp;amp; (oInputBox.type) &amp;amp;&amp;amp; (oInputBox.type.search(/^text$/i) == 0))) {&lt;br /&gt;
		alert(&amp;quot;Internal error: call of CInputBoxResizer.opResize with an unsupported node type: &amp;quot; + oInputBox);&lt;br /&gt;
		resize_mutex = false;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	/* first call for this node ? */&lt;br /&gt;
	if (!(oInputBox.tm_org_size)) {&lt;br /&gt;
		oInputBox.tm_org_size = oInputBox.size; // save orginal size&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	if (oInputBox.tm_org_size &amp;gt;= oInputBox.value.length)  {&lt;br /&gt;
		resize_mutex = false;&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	oInputBox.size = oInputBox.value.length + extra_spaces;&lt;br /&gt;
	var right_pos = oInputBox.offsetWidth;&lt;br /&gt;
	var tmp_str = &amp;quot;&amp;quot;;&lt;br /&gt;
	var node = oInputBox;&lt;br /&gt;
	var table_node = null;&lt;br /&gt;
	do {&lt;br /&gt;
		if (node.className.search(&amp;quot;tm_table&amp;quot;) &amp;gt;= 0) table_node = node;&lt;br /&gt;
		else {&lt;br /&gt;
			right_pos += node.offsetLeft;&lt;br /&gt;
			tmp_str += node.offsetLeft + &amp;quot;px +&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
		node = node.parentNode;&lt;br /&gt;
	} while (node.className.search(&amp;quot;tm_group&amp;quot;) &amp;lt; 0);&lt;br /&gt;
	if ((right_pos + 8) &amp;gt; node.offsetWidth) {&lt;br /&gt;
		if (is_ie) {&lt;br /&gt;
			while ((right_pos + 8) &amp;gt; node.offsetWidth) {&lt;br /&gt;
				var old_width = oInputBox.offsetWidth;&lt;br /&gt;
				oInputBox.size--;&lt;br /&gt;
				right_pos -= old_width - oInputBox.offsetWidth;&lt;br /&gt;
			}&lt;br /&gt;
		} else {&lt;br /&gt;
			oInputBox.size = oInputBox.tm_org_size;&lt;br /&gt;
			var child = node.firstChild;&lt;br /&gt;
			if (table_node != null) table_node.className = &amp;quot;tm_table tm_table_max&amp;quot;; else alert(&amp;quot;internal error: table not found&amp;quot;);&lt;br /&gt;
			oInputBox.className = &amp;quot;tm_input tm_input_max&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
		removeEventListener(oInputBox, &amp;quot;keyup&amp;quot;, resizeHandler);&lt;br /&gt;
	}&lt;br /&gt;
	resize_mutex = false;&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
} // tm_init&lt;br /&gt;
 &lt;br /&gt;
/* XXX: public for the xsl include hack */&lt;br /&gt;
function parseXML(text)&lt;br /&gt;
{&lt;br /&gt;
	var dom = null;&lt;br /&gt;
	if (window.ActiveXObject)&lt;br /&gt;
	{&lt;br /&gt;
			dom=new ActiveXObject(&amp;quot;Microsoft.XMLDOM&amp;quot;);&lt;br /&gt;
			dom.async=&amp;quot;false&amp;quot;;&lt;br /&gt;
			dom.loadXML(text);&lt;br /&gt;
			return dom;&lt;br /&gt;
	} else {&lt;br /&gt;
		var parser=new DOMParser();&lt;br /&gt;
		dom=parser.parseFromString(text,&amp;quot;text/xml&amp;quot;);&lt;br /&gt;
		var error=dom.getElementsByTagName(&amp;quot;parsererror&amp;quot;);&lt;br /&gt;
		if (!error[0]) {&lt;br /&gt;
			return dom;&lt;br /&gt;
		} else {&lt;br /&gt;
			var sError=error[0].firstChild.nodeValue;&lt;br /&gt;
			log_message(sError);&lt;br /&gt;
			var aError=sError.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
			if (aError[2]) {&lt;br /&gt;
				aLocation=aError[2].match(/[0-9]+/g);&lt;br /&gt;
				if (aLocation[0]) {&lt;br /&gt;
					var aHtmlText=text.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
					log_message(&amp;quot;error line:&amp;quot;+aHtmlText[aLocation[0]-1]);&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
			} else log_message(&amp;quot;no error position&amp;quot;);&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
function log_message(msg)&lt;br /&gt;
{&lt;br /&gt;
	alert(msg);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
hookEvent(&amp;quot;load&amp;quot;, tm_init);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
//## File: tm_w2t_infobox_schienenfahrzeug.js #################&lt;br /&gt;
 &lt;br /&gt;
/**&lt;br /&gt;
* Wiki2Template-Plugin des Vorlagen-Meister fuer die Vorlage &amp;quot;Infobox Schienenfahrzeug&amp;quot;, Version: 0.1beta, Date: 2007-02-04&lt;br /&gt;
* Copyright (C) 2007 [[de:Benutzer:Revvar]] &amp;lt;revvar@gmx.de&amp;gt;&lt;br /&gt;
* Released under the GPL license version 2&lt;br /&gt;
* http://www.gnu.org/copyleft/gpl.html&lt;br /&gt;
*&lt;br /&gt;
* This program is free software; you can redistribute it and/or modify&lt;br /&gt;
* it under the terms of the GNU General Public License version 2 as&lt;br /&gt;
* published by the Free Software Foundation.&lt;br /&gt;
*&lt;br /&gt;
* This program is distributed in the hope that it will be useful,&lt;br /&gt;
* but WITHOUT ANY WARRANTY; without even the implied warranty&lt;br /&gt;
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE.&lt;br /&gt;
* See the GNU General Public License for more details.&lt;br /&gt;
*/&lt;br /&gt;
 &lt;br /&gt;
function TM_P_Infobox_Schienenfahrzeug()&lt;br /&gt;
{&lt;br /&gt;
	var self = this;&lt;br /&gt;
	TM_P_Wiki2Template.call(this);&lt;br /&gt;
 &lt;br /&gt;
	var name = &amp;quot;Infobox Schienenfahrzeug&amp;quot;;&lt;br /&gt;
	this.opGetName = function() {return name;};&lt;br /&gt;
 &lt;br /&gt;
	var template = &amp;quot;Infobox Schienenfahrzeug&amp;quot;;&lt;br /&gt;
	this.opGetTemplate = function() {return template;};&lt;br /&gt;
 &lt;br /&gt;
	var super_opTransform = this.opTransform;&lt;br /&gt;
	this.opTransform = function(wiki_text) {&lt;br /&gt;
		wiki_text = super_opTransform(wiki_text);&lt;br /&gt;
		var Template = new Object();&lt;br /&gt;
		Template[&amp;quot;template_name&amp;quot;] = template;&lt;br /&gt;
		Template[&amp;quot;source&amp;quot;] = &amp;quot;plug-in&amp;quot;;&lt;br /&gt;
		var line = wiki_text.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
		for (var i = 0; i &amp;lt; line.length; i++) if ((line[i].search(/\s*(\|-|\|\}|\{\|)/) != 0) &amp;amp;&amp;amp; (line[i].search(/\|\|/) &amp;gt; 0)) {&lt;br /&gt;
			var entry = line[i].split(&amp;quot;||&amp;quot;);&lt;br /&gt;
			if (entry.length != 2) {alert(&amp;quot;TM_P_Infobox_Schienenfahrzeug: Momentan wird nur ein ||-Trenner pro Zeile unterstützt.&amp;quot;);return null;}&lt;br /&gt;
			var x_wikilink = /\[\[[^|]+\|([^\]]+)\]\]/;&lt;br /&gt;
			if (entry[0].search(x_wikilink) &amp;gt;= 0) entry[0] = entry[0].replace(x_wikilink, &amp;quot;$1&amp;quot;);&lt;br /&gt;
			entry[0] = entry[0].replace(/^\s*\|\s*/g, &amp;quot;&amp;quot;).replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;).replace(/[^a-zA-ZäöüÄÖÜß0-9_]/g,&amp;quot;&amp;quot;);&lt;br /&gt;
			entry[1] = entry[1].replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			if (entry[1].charAt(0) == &amp;quot;|&amp;quot;) entry[1] = entry[1].substring(1);&lt;br /&gt;
			if (entry[0].search(/^Indienststellung$/i) == 0) entry[0] = &amp;quot;Baujahre&amp;quot;;&lt;br /&gt;
			if ((entry[1].search(/^\s*k\s*\.\s*A\s*(\.){0,1}\s*$/) &amp;lt; 0) &amp;amp;&amp;amp; (entry[1].search(/^\s*-+\s*/) &amp;lt; 0)) {&lt;br /&gt;
				Template[&amp;quot;tm_form_&amp;quot;+entry[0]] = entry[1];&lt;br /&gt;
			}&lt;br /&gt;
		} else if (line[i].search(/^\s*!.*((color:|background)[^\|]*){2,2}\|.*/) == 0) {&lt;br /&gt;
			var base_color_name = {&amp;quot;aqua&amp;quot;:&amp;quot;00ffff&amp;quot;, &amp;quot;black&amp;quot;:&amp;quot;000000&amp;quot;, &amp;quot;blue&amp;quot;:&amp;quot;0000ff&amp;quot;, &amp;quot;fuchsia&amp;quot;:&amp;quot;ff00ff&amp;quot;, &amp;quot;gray&amp;quot;:&amp;quot;808080&amp;quot;, &amp;quot;green&amp;quot;:&amp;quot;008000&amp;quot;, &amp;quot;lime&amp;quot;:&amp;quot;00ff00&amp;quot;, &amp;quot;maroon&amp;quot;:&amp;quot;800000&amp;quot;, &amp;quot;navy&amp;quot;:&amp;quot;000080&amp;quot;, &amp;quot;olive&amp;quot;:&amp;quot;808000&amp;quot;, &amp;quot;purple&amp;quot;:&amp;quot;800080&amp;quot;, &amp;quot;red&amp;quot;:&amp;quot;ff0000&amp;quot;, &amp;quot;silver&amp;quot;:&amp;quot;c0c0c0&amp;quot;, &amp;quot;teal&amp;quot;:&amp;quot;008080&amp;quot;, &amp;quot;white&amp;quot;:&amp;quot;ffffff&amp;quot;, &amp;quot;yellow&amp;quot;:&amp;quot;ffff00&amp;quot;};&lt;br /&gt;
			// Baureihe, Farbe1 und Farbe2&lt;br /&gt;
			var baureihe = line[i].substring(line[i].search(/\|/) + 1).replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			var farbe2 = line[i].replace(/^.*[^a-zA-Z]color\s*:\s*(#[a-fA-F0-9]{6,6}|[a-zA-Z]+).*/,&amp;quot;$1&amp;quot;).replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			var farbe1 = line[i].replace(/^.*[^a-zA-Z]background(-color){0,1}\s*:\s*(#[a-fA-F0-9]{6,6}|[a-zA-Z]+).*/,&amp;quot;$2&amp;quot;).replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			if (farbe1.charAt(0) == &amp;quot;#&amp;quot;) farbe1 = farbe1.substring(1);&lt;br /&gt;
			else if (base_color_name[farbe1.toLowerCase()]) farbe1 = base_color_name[farbe1.toLowerCase()]; else farbe1 = null;&lt;br /&gt;
			if (farbe2.charAt(0) == &amp;quot;#&amp;quot;) farbe2 = farbe2.substring(1);&lt;br /&gt;
			else if (base_color_name[farbe2.toLowerCase()]) farbe2 = base_color_name[farbe2.toLowerCase()]; else farbe2 = null;&lt;br /&gt;
			Template[&amp;quot;tm_form_Baureihe&amp;quot;] = baureihe;&lt;br /&gt;
			if (farbe1 != null) Template[&amp;quot;tm_form_Farbe1&amp;quot;] = farbe1;&lt;br /&gt;
			if (farbe2 != null) Template[&amp;quot;tm_form_Farbe2&amp;quot;] = farbe2;&lt;br /&gt;
		} else if (line[i].search(/^\s*(!|\|[^\-]).*\[\[(Bild|Image):[^\]]+\]\]/) == 0) {&lt;br /&gt;
			var bild = line[i].replace(/^\s*(!|\|).*\[\[(Bild|Image):([^\]]+)\]\].*/,&amp;quot;$3&amp;quot;);&lt;br /&gt;
			bild = bild.split(&amp;quot;|&amp;quot;);&lt;br /&gt;
			Template[&amp;quot;tm_form_Abbildung&amp;quot;] = bild[0];&lt;br /&gt;
			for (var k = 1; k &amp;lt; bild.length; k++) if (bild[k].search(&amp;quot;[0-9]px&amp;quot;) &amp;lt; 0) {&lt;br /&gt;
				Template[&amp;quot;tm_form_Name&amp;quot;] = bild[k].replace(/^\s*(\S.*\S)\s*$/g,&amp;quot;$1&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return Template;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
TM_P_Infobox_Schienenfahrzeug.prototype=new TM_P_Wiki2Template();&lt;br /&gt;
 &lt;br /&gt;
TM_PluginList.push(new TM_P_Infobox_Schienenfahrzeug()); // register plugin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
//test for autostart&lt;br /&gt;
//When the page loads,  tm starts automatically.&lt;br /&gt;
//If &amp;quot;url&amp;quot; and &amp;quot;text&amp;quot; regexp conditions are met, tm finds template &amp;quot;tl&amp;quot; and show it&lt;br /&gt;
 &lt;br /&gt;
var tm_autostart = [&lt;br /&gt;
	{&amp;quot;tl&amp;quot;: &amp;quot;Népesség&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;Sablon:Népesség\/&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;&amp;quot;}&lt;br /&gt;
];&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Gadgets-definition&amp;diff=1750</id>
		<title>MediaWiki:Gadgets-definition</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Gadgets-definition&amp;diff=1750"/>
		<updated>2012-07-21T07:53:22Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: Új oldal, tartalma: „* sablonmester|sablonmester.js|sablonmester.css”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* sablonmester|sablonmester.js|sablonmester.css&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Common.css&amp;diff=566</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Common.css&amp;diff=566"/>
		<updated>2011-09-14T07:14:33Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Közös CSS az összes felületnek */&lt;br /&gt;
&lt;br /&gt;
#t-specialpages {&lt;br /&gt;
display:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#t-permalink {&lt;br /&gt;
display:none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Common.css&amp;diff=565</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Common.css&amp;diff=565"/>
		<updated>2011-09-14T07:11:16Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Közös CSS az összes felületnek */&lt;br /&gt;
&lt;br /&gt;
#t-specialpages {&lt;br /&gt;
display:block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#t-permalink {&lt;br /&gt;
display:none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Common.css&amp;diff=466</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Common.css&amp;diff=466"/>
		<updated>2011-08-30T07:35:17Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Közös CSS az összes felületnek */&lt;br /&gt;
&lt;br /&gt;
#t-specialpages {&lt;br /&gt;
display:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#t-permalink {&lt;br /&gt;
display:none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Common.css&amp;diff=457</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Common.css&amp;diff=457"/>
		<updated>2011-08-27T10:48:20Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Közös CSS az összes felületnek */&lt;br /&gt;
&lt;br /&gt;
#t-specialpages {&lt;br /&gt;
/*display:none;*/&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#t-permalink {&lt;br /&gt;
display:none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Common.css&amp;diff=456</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Common.css&amp;diff=456"/>
		<updated>2011-08-27T10:17:18Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Közös CSS az összes felületnek */&lt;br /&gt;
&lt;br /&gt;
#t-specialpages {&lt;br /&gt;
display:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#t-permalink {&lt;br /&gt;
display:none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Common.css&amp;diff=455</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Common.css&amp;diff=455"/>
		<updated>2011-08-27T10:16:20Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: Új oldal, tartalma: „/* Közös CSS az összes felületnek */  #t-specialpages { display:none; }”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Közös CSS az összes felületnek */&lt;br /&gt;
&lt;br /&gt;
#t-specialpages {&lt;br /&gt;
display:none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Sidebar&amp;diff=454</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=MediaWiki:Sidebar&amp;diff=454"/>
		<updated>2011-08-27T09:59:19Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: Új oldal, tartalma: „* navigation ** mainpage|mainpage-description ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help * SEARCH * TOOLBOX * LANGUAGES”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=G%C3%B6d%C3%B6ll%C5%91i_Wiki&amp;diff=438</id>
		<title>Gödöllői Wiki</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=G%C3%B6d%C3%B6ll%C5%91i_Wiki&amp;diff=438"/>
		<updated>2011-08-26T07:46:54Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: Visszavontam Vértes Balázs* (vita | szerkesztései) szerkesztését (oldid: 437)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fájl:gvkik_000.jpg|thumb|300px|center|Gödöllői Városi Könyvtár és Információs Központ]]&lt;br /&gt;
&lt;br /&gt;
== Építészek ==&lt;br /&gt;
*[[Toroczkai Wigand Ede]]&lt;br /&gt;
&lt;br /&gt;
== Írók ==&lt;br /&gt;
*[[Csiki Kovács Dénes]]&lt;br /&gt;
*[[Petőfi Sándor]]&lt;br /&gt;
*[[Rezek Román Sándor]]&lt;br /&gt;
*[[Mikszáth Kálmán]]&lt;br /&gt;
*[[Dr. Kalocsay Kálmán]]&lt;br /&gt;
*[[Toroczkai Wigand Ede]]&lt;br /&gt;
&lt;br /&gt;
== Képzőművészek ==&lt;br /&gt;
&lt;br /&gt;
*[[Sződi István]]&lt;br /&gt;
*[[Olajos Béla]]&lt;br /&gt;
*[[Róna József]]&lt;br /&gt;
*[[Nagy Sándor]]&lt;br /&gt;
*[[Zichy István]]&lt;br /&gt;
*[[Zala (Mayer) György]]&lt;br /&gt;
&lt;br /&gt;
== Könyvtárosok ==&lt;br /&gt;
*[[Polónyi Péter]]&lt;br /&gt;
&lt;br /&gt;
== Nyomdászok ==&lt;br /&gt;
*[[Malatin Antal]]&lt;br /&gt;
&lt;br /&gt;
== Orvosok ==&lt;br /&gt;
*[[Dr. Szabó Béláné dr. Szanathy Júlia]]&lt;br /&gt;
*[[Dr. Mészáros István]]&lt;br /&gt;
*[[Kotlán Sándor]]&lt;br /&gt;
*[[Dr. Kalocsay Kálmán]]&lt;br /&gt;
&lt;br /&gt;
== Politikusok ==&lt;br /&gt;
*[[Ifj. Horthy Miklós]]&lt;br /&gt;
*[[Klebelsberg Kúnó]]&lt;br /&gt;
*[[Széchenyi István]]&lt;br /&gt;
&lt;br /&gt;
== Színészek ==&lt;br /&gt;
*[[Harmos (Schlesinger) Ilona (Görög Ilona)]]&lt;br /&gt;
&lt;br /&gt;
== Sportolók ==&lt;br /&gt;
*[[Dr. Lumniczer Sándor]]&lt;br /&gt;
&lt;br /&gt;
== Tanárok ==&lt;br /&gt;
*[[Kirchhofer József]]&lt;br /&gt;
*[[Pecznik János]]&lt;br /&gt;
*[[Kosáry Domokos]]&lt;br /&gt;
&lt;br /&gt;
== Történészek ==&lt;br /&gt;
*[[Hegedüs László]]&lt;br /&gt;
*[[Fallenbüchl Zoltán]]&lt;br /&gt;
*[[Kampis Antal]]&lt;br /&gt;
*[[Kosáry Domokos]]&lt;br /&gt;
&lt;br /&gt;
== Uralkodók ==&lt;br /&gt;
*[[Mária Terézia]]&lt;br /&gt;
*[[Zita királyné]]&lt;br /&gt;
*[[Mária Valéria]]&lt;br /&gt;
&lt;br /&gt;
== Zenészek, Zeneszerzők ==&lt;br /&gt;
*[[Remsey Gábor]]&lt;br /&gt;
*[[Winkler Nándor ]]&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
	<entry>
		<id>https://www.gvkik.hu/wiki/index.php?title=G%C3%B6d%C3%B6ll%C5%91i_Wiki&amp;diff=437</id>
		<title>Gödöllői Wiki</title>
		<link rel="alternate" type="text/html" href="https://www.gvkik.hu/wiki/index.php?title=G%C3%B6d%C3%B6ll%C5%91i_Wiki&amp;diff=437"/>
		<updated>2011-08-26T07:41:26Z</updated>

		<summary type="html">&lt;p&gt;Vértes Balázs*: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fájl:gvkik_000.jpg|thumb|300px|right|Gödöllői Városi Könyvtár és Információs Központ]]&lt;br /&gt;
&lt;br /&gt;
== Építészek ==&lt;br /&gt;
*[[Toroczkai Wigand Ede]]&lt;br /&gt;
&lt;br /&gt;
== Írók ==&lt;br /&gt;
*[[Csiki Kovács Dénes]]&lt;br /&gt;
*[[Petőfi Sándor]]&lt;br /&gt;
*[[Rezek Román Sándor]]&lt;br /&gt;
*[[Mikszáth Kálmán]]&lt;br /&gt;
*[[Dr. Kalocsay Kálmán]]&lt;br /&gt;
*[[Toroczkai Wigand Ede]]&lt;br /&gt;
&lt;br /&gt;
== Képzőművészek ==&lt;br /&gt;
&lt;br /&gt;
*[[Sződi István]]&lt;br /&gt;
*[[Olajos Béla]]&lt;br /&gt;
*[[Róna József]]&lt;br /&gt;
*[[Nagy Sándor]]&lt;br /&gt;
*[[Zichy István]]&lt;br /&gt;
*[[Zala (Mayer) György]]&lt;br /&gt;
&lt;br /&gt;
== Könyvtárosok ==&lt;br /&gt;
*[[Polónyi Péter]]&lt;br /&gt;
&lt;br /&gt;
== Nyomdászok ==&lt;br /&gt;
*[[Malatin Antal]]&lt;br /&gt;
&lt;br /&gt;
== Orvosok ==&lt;br /&gt;
*[[Dr. Szabó Béláné dr. Szanathy Júlia]]&lt;br /&gt;
*[[Dr. Mészáros István]]&lt;br /&gt;
*[[Kotlán Sándor]]&lt;br /&gt;
*[[Dr. Kalocsay Kálmán]]&lt;br /&gt;
&lt;br /&gt;
== Politikusok ==&lt;br /&gt;
*[[Ifj. Horthy Miklós]]&lt;br /&gt;
*[[Klebelsberg Kúnó]]&lt;br /&gt;
*[[Széchenyi István]]&lt;br /&gt;
&lt;br /&gt;
== Színészek ==&lt;br /&gt;
*[[Harmos (Schlesinger) Ilona (Görög Ilona)]]&lt;br /&gt;
&lt;br /&gt;
== Sportolók ==&lt;br /&gt;
*[[Dr. Lumniczer Sándor]]&lt;br /&gt;
&lt;br /&gt;
== Tanárok ==&lt;br /&gt;
*[[Kirchhofer József]]&lt;br /&gt;
*[[Pecznik János]]&lt;br /&gt;
*[[Kosáry Domokos]]&lt;br /&gt;
&lt;br /&gt;
== Történészek ==&lt;br /&gt;
*[[Hegedüs László]]&lt;br /&gt;
*[[Fallenbüchl Zoltán]]&lt;br /&gt;
*[[Kampis Antal]]&lt;br /&gt;
*[[Kosáry Domokos]]&lt;br /&gt;
&lt;br /&gt;
== Uralkodók ==&lt;br /&gt;
*[[Mária Terézia]]&lt;br /&gt;
*[[Zita királyné]]&lt;br /&gt;
*[[Mária Valéria]]&lt;br /&gt;
&lt;br /&gt;
== Zenészek, Zeneszerzők ==&lt;br /&gt;
*[[Remsey Gábor]]&lt;br /&gt;
*[[Winkler Nándor ]]&lt;/div&gt;</summary>
		<author><name>Vértes Balázs*</name></author>
	</entry>
</feed>