<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blog.aspnet.sk/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>xxxmatko blog : Javascript</title><link>http://blog.aspnet.sk/xxxmatko/archive/tags/Javascript/default.aspx</link><description>Štítky: Javascript</description><dc:language>sk-SK</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Ako na dojo.deferred</title><link>http://blog.aspnet.sk/xxxmatko/archive/2012/11/22/ako-na-dojo-deferred.aspx</link><pubDate>Thu, 22 Nov 2012 13:14:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307336</guid><dc:creator>xxxmatko</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/xxxmatko/rsscomments.aspx?PostID=307336</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2012/11/22/ako-na-dojo-deferred.aspx#comments</comments><description>		&lt;p&gt;
			Dnes by som chcel ukázať ako možno využiť &lt;a href="http://dojotoolkit.org/api/1.8/dojo/Deferred" target="_blank"&gt;dojo.Deferred&lt;/a&gt; 
			na &amp;quot;synchronizáciu&amp;quot; viacerých asynchrónnych úloh.
		&lt;/p&gt;
		&lt;p&gt;
			Nasledovný kód simuluje tri asynchrónne operácie, pre ktoré treba určiť kedy dobehli, inak povedané je potrebné vykonať nejakú operáciu,
			ale až potom ako boli ukončené uvedené tri operácie.
		&lt;/p&gt;		
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="black"&gt;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Skoncilo&amp;nbsp;volanie&amp;nbsp;1&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;2000&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Skoncilo&amp;nbsp;volanie&amp;nbsp;2&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1000&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Skoncilo&amp;nbsp;volanie&amp;nbsp;3&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;3500&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Asynchrónne operácie
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Na synchronizáciu môžeme použiť &lt;a href="http://dojotoolkit.org/api/1.8/dojo/Deferred" target="_blank"&gt;dojo.Deferred&lt;/a&gt; objekt a counter
			pomocou ktorého budeme sledovať počet vykonaných/nevykonaných operácií.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="darkgreen"&gt;//&amp;nbsp;Vytvorime&amp;nbsp;Deferred&amp;nbsp;objekt&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.Deferred()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Pocitadlo&amp;nbsp;zostavajucich&amp;nbsp;uloh&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;d.counter&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;3&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Napojime&amp;nbsp;callbacky&amp;nbsp;pre&amp;nbsp;deferred&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;d.then(&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Callback&amp;nbsp;pre&amp;nbsp;udalost&amp;nbsp;ked&amp;nbsp;je&amp;nbsp;deferred&amp;nbsp;objekt&amp;nbsp;resolved&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;(result)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.info(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Ulohy&amp;nbsp;ukoncene:&amp;nbsp;&amp;#39;&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;+&amp;nbsp;result&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;&amp;#39;&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;ErrorCallback&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;null&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Callback&amp;nbsp;pre&amp;nbsp;udalost&amp;nbsp;zmeny&amp;nbsp;progresu&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;(update)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Znizime&amp;nbsp;counter&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.counter--&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Ak&amp;nbsp;uz&amp;nbsp;je&amp;nbsp;counter&amp;nbsp;na&amp;nbsp;nule&amp;nbsp;resolvujeme&amp;nbsp;deferred&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&lt;/font&gt;&lt;font color="black"&gt;(d.counter&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d.resolve(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Ok!&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Skoncilo&amp;nbsp;volanie&amp;nbsp;1&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Nahlasime&amp;nbsp;zmenu&amp;nbsp;stavu&amp;nbsp;pre&amp;nbsp;deferred&amp;nbsp;objekt&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.progress(&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;2000&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Skoncilo&amp;nbsp;volanie&amp;nbsp;2&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Nahlasime&amp;nbsp;zmenu&amp;nbsp;stavu&amp;nbsp;pre&amp;nbsp;deferred&amp;nbsp;objekt&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.progress(&lt;/font&gt;&lt;font color="maroon"&gt;2&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1000&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Skoncilo&amp;nbsp;volanie&amp;nbsp;3&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Nahlasime&amp;nbsp;zmenu&amp;nbsp;stavu&amp;nbsp;pre&amp;nbsp;deferred&amp;nbsp;objekt&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.progress(&lt;/font&gt;&lt;font color="maroon"&gt;3&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;3500&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Synchronizácia pomocou dojo.Deferred
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Ak nechceme použiť counter premennú, tak môžeme využiť aj &lt;a href="http://dojotoolkit.org/api/1.8/dojo/DeferredList" target="_blank"&gt;dojo.DeferredList&lt;/a&gt;.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="darkgreen"&gt;//&amp;nbsp;Vytvorime&amp;nbsp;pole&amp;nbsp;deferred&amp;nbsp;objektov&amp;nbsp;-&amp;nbsp;jeden&amp;nbsp;objekt&amp;nbsp;pre&amp;nbsp;jednu&amp;nbsp;operaciu&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dArray&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;[&lt;/font&gt;&lt;font color="blue"&gt;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.Deferred(),&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.Deferred(),&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.Deferred()]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Inicializujeme&amp;nbsp;deferred&amp;nbsp;list&amp;nbsp;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dList&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.DeferredList(dArray)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Callback&amp;nbsp;pri&amp;nbsp;ukonceni&amp;nbsp;vsetkych&amp;nbsp;deferred&amp;nbsp;objektov&amp;nbsp;v&amp;nbsp;zozname&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;dList.then(&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;(result){&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.info(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Ulohy&amp;nbsp;ukoncene:&amp;nbsp;&amp;#39;&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;+&amp;nbsp;result&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;&amp;#39;&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Skoncilo&amp;nbsp;volanie&amp;nbsp;1&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Nahlasime&amp;nbsp;ukoncenie&amp;nbsp;pre&amp;nbsp;deferred&amp;nbsp;objekt&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dArray[&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;].resolve(&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;2000&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Skoncilo&amp;nbsp;volanie&amp;nbsp;2&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Nahlasime&amp;nbsp;ukoncenie&amp;nbsp;pre&amp;nbsp;deferred&amp;nbsp;objekt&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dArray[&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;].resolve(&lt;/font&gt;&lt;font color="maroon"&gt;2&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1000&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Skoncilo&amp;nbsp;volanie&amp;nbsp;3&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Nahlasime&amp;nbsp;ukoncenie&amp;nbsp;pre&amp;nbsp;deferred&amp;nbsp;objekt&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dArray[&lt;/font&gt;&lt;font color="maroon"&gt;2&lt;/font&gt;&lt;font color="black"&gt;].resolve(&lt;/font&gt;&lt;font color="maroon"&gt;3&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;3500&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Synchronizácia pomocou dojo.DeferredList
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;	
		&lt;p&gt;
			Dojo.Deferred sa používa v dojo framework-u ako návratový typ pre mnohé volania (napr. dojo AJAX volania) a aj v iných 
			framework-och postavených na dojo (napr. Esri JsAPI). Preto dúfam, že aj táto krátka ukážka bude niekomu aspoň trochu
			nápomocná.
		&lt;/p&gt;
		&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;&lt;fb:like href="" show_faces="true" width="450" font=""&gt;&lt;/fb:like&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=307336" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/dojo/default.aspx">dojo</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/synchronization/default.aspx">synchronization</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/esri/default.aspx">esri</category></item><item><title>Obmedzenie zobrazenia mapovej služby podľa mierky</title><link>http://blog.aspnet.sk/xxxmatko/archive/2012/09/25/obmedzenie-zobrazenia-mapovej-slu-by-pod-a-mierky.aspx</link><pubDate>Tue, 25 Sep 2012 07:15:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307302</guid><dc:creator>xxxmatko</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/xxxmatko/rsscomments.aspx?PostID=307302</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2012/09/25/obmedzenie-zobrazenia-mapovej-slu-by-pod-a-mierky.aspx#comments</comments><description>		&lt;p&gt;
			Esri js api od verzie &lt;a href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jshelp/new_v31.html" target="_blank"&gt;3.1&lt;/a&gt; prináša 
			okrem iného aj novú funkcionalitu, ktorá umožňuje pre jednotlivé vrstvy nastaviť minimálnu a maximálnu zobrazovanú mierku. Inak povedané,
			ak je aktuálna mierka mimo tohto rozsahu, tak sa vrstva nezobrazuje, ale čo je dôležité, nedochádza ani k predtým zbytočnému requestu na
			mapovú službu, ktorá tak či tak v takomto prípade vracala prázdny obrázok. I keď táto funkčnosť tu mohla byť už dávno, nevadí, radšej neskôr 
			ako nikdy.
		&lt;/p&gt;
		&lt;p&gt;
			Aplikácia, v ktorej som chcel túto funkčnosť použiť bola postavená na staršej verzii api. Takže, ďalší krok bol veľmi jasný - treba použiť 
			nové api. Esri api však od verzie 3.0 interne používa &lt;b&gt;dojo&lt;/b&gt; verziu 1.7, ktoré v zmienej verzii podporuje už aj 
			&lt;a href="http://dojotoolkit.org/blog/learn-more-about-amd" target="_blank"&gt;AMD&lt;/a&gt;. Napriek tomu, že dojo samotné až do verzie 2.0 má
			podporovať súčasne AMD aj legacy (synchrónny) mód, a teda aj aplikácie postavené na starších verziách dojo frameworku by mali fungovať,
			v kombinácii s esri js api to tak nebolo. Začali sa objavovať &amp;quot;zázračné&amp;quot; chybové hlášky. Odstrániť ich bude možné asi iba aplikovaním
			prvého z dvoch odporúčaných postupov esri, pre prechod na novšiu 
			verziu &lt;b&gt;&lt;i&gt;&amp;quot;Re-factor application code to use the loader to load custom classes&amp;quot;&lt;/i&gt;&lt;/b&gt; :-(. 
			Keďže refaktorovanie by zabralo veľa času, rozhodol som sa implementovať min-max funkčnosť aj pre staršie verzie esri js api.
		&lt;/p&gt;
		&lt;p&gt;
			Každý layer v esri js api dedí zo základnej triedy 
			&lt;a href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jsapi/layer.htm" target="_blank"&gt;esri.layers.Layer&lt;/a&gt;. Preto najprv rozšírime
			túto triedu o minScale a maxScale vlastnosti:
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="black"&gt;dojo.extend(esri.layers.Layer,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Základná&amp;nbsp;maximálna&amp;nbsp;mierka&amp;nbsp;je&amp;nbsp;1:1&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;maxScale:&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Základná&amp;nbsp;minimálna&amp;nbsp;mierka&amp;nbsp;je&amp;nbsp;1:int.MAX&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;minScale:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;Math&lt;/font&gt;&lt;font color="black"&gt;.pow(&lt;/font&gt;&lt;font color="maroon"&gt;2&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;32&lt;/font&gt;&lt;font color="black"&gt;)&lt;br /&gt;
						})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Rozšírenie esri.layers.Layer o minScale a maxScale vlastnosti
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Ďalším krokom je pri vytváraní nejakej vrstvy (napr. 
			&lt;a href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jsapi/arcgisdynamicmapservicelayer.htm" target="_blank"&gt;ArcGISDynamicMapServiceLayer&lt;/a&gt;)
			nastaviť tieto atribúty na požadované hodnoty.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="darkgreen"&gt;//&amp;nbsp;Vytvorim&amp;nbsp;ArcGISDynamicMapServiceLayer&amp;nbsp;vrstvu&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;layer&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;esri.layers.ArcGISDynamicMapServiceLayer(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;service&amp;nbsp;url&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;id&amp;nbsp;vrstvy&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;imageParameters:&amp;nbsp;{},&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;visible:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;true&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Vrstva&amp;nbsp;sa&amp;nbsp;ma&amp;nbsp;zobrazovat&amp;nbsp;od&amp;nbsp;mierky&amp;nbsp;1:500&amp;nbsp;000&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;layer.minScale&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;500000&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Vrstva&amp;nbsp;sa&amp;nbsp;ma&amp;nbsp;zobrazovat&amp;nbsp;do&amp;nbsp;mierky&amp;nbsp;1:100&amp;nbsp;000&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;layer.maxScale&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;100000&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Inicializácia dynamickej vrstvy a nastavenie minScale a maxScale
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;	
		&lt;p&gt;
			Keď už vieme ako nastaviť požadované parametre, treba ešte upraviť funkčnosť vrstvy ako takej, aby pred samotným vykonamím
			requestu na obrázok s mapou, skontrolovala, či aktuálna mierka mapy zodpovedá obmedzeniam pre danú vrstvu. Vrstva reaguje na
			rôzne udalosti v mape. Jednou z nich je aj zmena &lt;b&gt;extent&lt;/b&gt;-u (výrezu) mapy, ktorý vrstva obsluhuje handlerom
			&lt;b&gt;_onExtentChangeHandler&lt;/b&gt;. Tento handler je aj miestom, kde treba vykonať kontrolu mierky, a ak je mimo rozsah, zastaviť
			ďalšie spracovanie.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="black"&gt;dojo.extend(esri.layers.DynamicMapServiceLayer,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Uchovame&amp;nbsp;si&amp;nbsp;referenciu&amp;nbsp;na&amp;nbsp;povodny&amp;nbsp;handler&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;__onExtentChangeHandler:&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;esri.layers.DynamicMapServiceLayer.prototype._onExtentChangeHandler,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Implementujeme&amp;nbsp;vlastny&amp;nbsp;handler&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;_onExtentChangeHandler:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(extent,&amp;nbsp;point,&amp;nbsp;c,&amp;nbsp;lod)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Notifikujeme&amp;nbsp;mapu&amp;nbsp;o&amp;nbsp;tom&amp;nbsp;ze&amp;nbsp;zacal&amp;nbsp;update&amp;nbsp;vrstvy&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;._fireUpdateStart()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Zistime&amp;nbsp;mierku&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;scale&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;-&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(lod)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Ak&amp;nbsp;ma&amp;nbsp;mapa&amp;nbsp;pevne&amp;nbsp;definovany&amp;nbsp;zoznam&amp;nbsp;LOD&amp;nbsp;(Level&amp;nbsp;Of&amp;nbsp;Detail)&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;tak&amp;nbsp;netreba&amp;nbsp;mierku&amp;nbsp;pocitat&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;scale&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;lod.scale&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;else&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Vypocitame&amp;nbsp;mierku&amp;nbsp;podla&amp;nbsp;noveho&amp;nbsp;extentu,&amp;nbsp;velkosti&amp;nbsp;mapy&amp;nbsp;a&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;pouziteho&amp;nbsp;suradnicoveho&amp;nbsp;systemu&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;scale&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;Math&lt;/font&gt;&lt;font color="black"&gt;.round(esri.geometry.getScale(extent,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;._map.width,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;extent.spatialReference.wkid))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Je&amp;nbsp;vrstva&amp;nbsp;v&amp;nbsp;danej&amp;nbsp;mierke&amp;nbsp;viditelna?&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;isLayerVisible&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.minScale&amp;nbsp;&amp;gt;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;scale)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.maxScale&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;scale)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Ak&amp;nbsp;je&amp;nbsp;vrstva&amp;nbsp;nezobrazovana&amp;nbsp;v&amp;nbsp;danej&amp;nbsp;mierke&amp;nbsp;tak&amp;nbsp;zastavime&amp;nbsp;request&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!isLayerVisible)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Notifikujeme&amp;nbsp;mapu&amp;nbsp;o&amp;nbsp;tom,&amp;nbsp;ze&amp;nbsp;skoncil&amp;nbsp;update&amp;nbsp;mapy&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;._fireUpdateEnd()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Musime&amp;nbsp;skryt&amp;nbsp;aj&amp;nbsp;div&amp;nbsp;element&amp;nbsp;s&amp;nbsp;obrazkom&amp;nbsp;mapy&amp;nbsp;s&amp;nbsp;predoslej&amp;nbsp;mierky&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;esri.hide(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;._div)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Vrstva&amp;nbsp;je&amp;nbsp;viditelna&amp;nbsp;v&amp;nbsp;danej&amp;nbsp;mierke&amp;nbsp;tak&amp;nbsp;znova&amp;nbsp;zobrazime&amp;nbsp;div&amp;nbsp;element&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;ktory&amp;nbsp;obsahuje&amp;nbsp;obrazok&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.visible)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;esri.show(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;._div)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Zavolame&amp;nbsp;povodnu&amp;nbsp;implementaciu&amp;nbsp;handlera&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.__onExtentChangeHandler.apply(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;arguments)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Rozšírenie triedy esri.layers.DynamicMapServiceLayer o kontrolu na povolenú mierku
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;	
			Povedzme, že máme mapovú aplikáciu v ktorej máme päť služieb, čo sa týka zobrazovanej mierky, zreťazených tak, že vždy je viditeľná
			len jedna služba. Ak použijeme minScale/maxScale funkčnosť, v konkrétnom okamihu sa namiesto piatich requestov bude vykonávať vždy len jeden, 
			čím môžeme výrazne zrýchliť aplikáciu ako takú.
		&lt;/p&gt;
		&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;&lt;fb:like href="" show_faces="true" width="450" font=""&gt;&lt;/fb:like&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=307302" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/dojo/default.aspx">dojo</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/esri/default.aspx">esri</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/ArcGIS/default.aspx">ArcGIS</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/ArcGIS+JS+API/default.aspx">ArcGIS JS API</category></item><item><title>dojo masked input plugin</title><link>http://blog.aspnet.sk/xxxmatko/archive/2012/08/31/dojo-masked-input-plugin.aspx</link><pubDate>Fri, 31 Aug 2012 08:39:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307294</guid><dc:creator>xxxmatko</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/xxxmatko/rsscomments.aspx?PostID=307294</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2012/08/31/dojo-masked-input-plugin.aspx#comments</comments><description>		&lt;p&gt;
			Síce &lt;b&gt;&lt;a href="http://dojotoolkit.org/api/" target="_blank"&gt;dojo&lt;/a&gt;&lt;/b&gt; framework poskytuje mnoho hotových UI komponentov,
			osobne mi medzi nimi chýba &lt;b&gt;MaskedTextBox&lt;/b&gt;, tak ako ho poznám z &lt;b&gt;jQuery&lt;/b&gt; (viď. 
			&lt;a href="http://digitalbush.com/projects/masked-input-plugin/" target="_blank"&gt;Masked Input Plugin&lt;/a&gt;).
			Naprieč rôznymi typmi textboxov (&lt;a href="http://dojotoolkit.org/reference-guide/1.8/dijit/form/MappedTextBox.html" target="_blank"&gt;MappedTextBox&lt;/a&gt;,
			&lt;a href="http://dojotoolkit.org/reference-guide/1.8/dijit/form/ValidationTextBox.html" target="_blank"&gt;ValidationTextBox&lt;/a&gt;, ...)
			tento typ mi tam chýba, a nenašiel som žiadnu jeho implementáciu.
			Tak som si jedno poobedie sadol za počítač, a &amp;quot;jemne&amp;quot; inšpirovaný spomínaným jQuery pluginom som dal dokopy veľmi podobný plugin aj pre dojo.
		&lt;/p&gt;
		&lt;p&gt;
			Samotný &lt;b&gt;mask&lt;/b&gt; plugin na svoje správane fungovanie potrebuje ešte jeden plugin, a to &lt;b&gt;caret&lt;/b&gt; plugin, pre pozicovanie kurzora v textboxe.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="black"&gt;define(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;xDev/plugins/caret&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,[&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;dojo/_base/lang&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;dojo/dom&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;],&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(lang,&amp;nbsp;dom)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(dojo.caret)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lang.mixin(dojo,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;caret:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(node,&amp;nbsp;begin,&amp;nbsp;end)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(node)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;string&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dom.byId(node)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!node)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;throw&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Error(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Node&amp;nbsp;is&amp;nbsp;undefined.&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(begin)&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;number&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(node.setSelectionRange)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node.selectionStart&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;end&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node.selectionEnd&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;else&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;document&lt;/font&gt;&lt;font color="black"&gt;.selection&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;document&lt;/font&gt;&lt;font color="black"&gt;.selection.createRange)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;range&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;document&lt;/font&gt;&lt;font color="black"&gt;.selection.createRange()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;begin&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;-&amp;nbsp;range.duplicate().moveStart(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;character&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;-&lt;/font&gt;&lt;font color="maroon"&gt;100000&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;end&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;begin&amp;nbsp;+&amp;nbsp;range.text.length&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;begin&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;begin,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;end&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;end&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(end)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;number&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;?&amp;nbsp;end&amp;nbsp;:&amp;nbsp;begin&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(node.setSelectionRange)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node.setSelectionRange(begin,&amp;nbsp;end)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;else&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;range&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node.createTextRange()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;range.collapse(&lt;/font&gt;&lt;font color="blue"&gt;true&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;range.moveEnd(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;character&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;end)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;range.moveStart(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;character&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;begin)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;range.select()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;range&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					dojo.caret plugin
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Samotný mask plugin vyzerá nasledovne:
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="black"&gt;define(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;xDev/plugins/mask&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;[&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;dojo/_base/lang&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;dojo/dom&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;dojo/_base/array&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;dojo/dom-attr&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;dojo/on&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;dojo/_base/event&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;dojo/keys&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;xDev/plugins/caret&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;],&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(lang,&amp;nbsp;dom,&amp;nbsp;array,&amp;nbsp;attr,&amp;nbsp;on,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;event&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;keys)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(dojo.mask)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;masks&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;[]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;placeholders&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;*&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;_&amp;quot;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;definitions&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;9&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;[0-9]&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;a&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;[A-Za-z]&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;*&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;[A-Za-z0-9]&amp;quot;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Help&amp;nbsp;methods&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;concatArrays(left,&amp;nbsp;right)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;result&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;[]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(key&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;in&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;left)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result[key]&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;left[key]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;for&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(key&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;in&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;right)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result[key]&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;right[key]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;result&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;getPlaceHolder(defKey,&amp;nbsp;placeholders)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;placeholders[defKey]&amp;nbsp;?&amp;nbsp;placeholders[defKey]&amp;nbsp;:&amp;nbsp;placeholders[&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;*&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;initTests(mask,&amp;nbsp;definitions)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;tests&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;[]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;array.forEach(mask.split(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;),&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(c,&amp;nbsp;i)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!definitions[ c])&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tests.push(&lt;/font&gt;&lt;font color="blue"&gt;null&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tests.push(&lt;/font&gt;&lt;font color="blue"&gt;new&amp;nbsp;RegExp&lt;/font&gt;&lt;font color="black"&gt;(definitions[ c]))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;tests&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;getFirstNonMasPosition(tests)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;firstNonMaskPos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;array.some(tests,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(t,&amp;nbsp;i)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;firstNonMaskPos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(t&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;firstNonMaskPos&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;initBuffer(mask,&amp;nbsp;definitions,&amp;nbsp;placeholders)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;array.map(mask.split(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;),&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(c,&amp;nbsp;i)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(c&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;?&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;definitions[ c]&amp;nbsp;?&amp;nbsp;getPlaceHolder(c,&amp;nbsp;placeholders)&amp;nbsp;:&amp;nbsp;c&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;lang.mixin(dojo,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Vypnutie&amp;nbsp;pluginu&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;unmask:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(node)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(node)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;string&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dom.byId(node)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!node)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;throw&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Error(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Node&amp;nbsp;is&amp;nbsp;undefined.&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;id&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;attr.&lt;/font&gt;&lt;font color="blue"&gt;get&lt;/font&gt;&lt;font color="black"&gt;(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;id&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!masks[id])&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array.forEach(masks[id]._connections,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(con)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(con.remove)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;function&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;con.remove.apply()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;masks[id]._connections&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;delete&amp;nbsp;masks[id]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;attr.&lt;/font&gt;&lt;font color="blue"&gt;set&lt;/font&gt;&lt;font color="black"&gt;(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;value&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Zapnutie&amp;nbsp;pluginu&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;mask:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(node,&amp;nbsp;args)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(node)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;string&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dom.byId(node)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!node)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;throw&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Error(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Node&amp;nbsp;is&amp;nbsp;undefined.&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;args&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;lang.mixin({},&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;placeholders&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;{},&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;definitions&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;{},&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;mask&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;&amp;quot;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;args&amp;nbsp;||&amp;nbsp;{})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(args.mask.length&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;throw&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Error(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Mask&amp;nbsp;is&amp;nbsp;empty&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;args.mask.length&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;mask&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;args.mask&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;tb&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;originText&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;attr.&lt;/font&gt;&lt;font color="blue"&gt;get&lt;/font&gt;&lt;font color="black"&gt;(tb,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;value&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;focusText&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;originText&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;ph&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;concatArrays(placeholders,&amp;nbsp;args.placeholders)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;defs&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;concatArrays(definitions,&amp;nbsp;args.definitions)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;tests&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;initTests(args.mask,&amp;nbsp;defs)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;firstNonMaskPos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;getFirstNonMasPosition(tests)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;buffer&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;initBuffer(args.mask,&amp;nbsp;defs,&amp;nbsp;ph)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;getValue()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;attr.&lt;/font&gt;&lt;font color="blue"&gt;get&lt;/font&gt;&lt;font color="black"&gt;(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;value&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;setValue(&lt;/font&gt;&lt;font color="blue"&gt;value&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;attr.&lt;/font&gt;&lt;font color="blue"&gt;set&lt;/font&gt;&lt;font color="black"&gt;(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;value&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;value&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;getRawData()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;array.filter(buffer,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(bChar,&amp;nbsp;i)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!tests[i])&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(bChar&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;getPlaceHolder(mask.charAt(i),&amp;nbsp;ph))&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;true;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;seekNext(pos)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;while&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;((++pos&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;!tests[pos])&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;pos&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;seekPrev(pos)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;while&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;((--pos&amp;nbsp;&amp;gt;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;!tests[pos])&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;pos&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;clear(start,&amp;nbsp;end)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(start)&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;number&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;start&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(end)&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;number&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;for&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;start&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(i&amp;nbsp;&amp;lt;&amp;nbsp;end)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;(i&amp;nbsp;&amp;lt;&amp;nbsp;length)&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i++)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(tests[i])&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;maskChar&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;mask.charAt(i)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;buffer[i]&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;getPlaceHolder(maskChar,&amp;nbsp;ph)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;flush()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;val&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;buffer.join(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;setValue(val)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;val&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;isOk()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;pos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;check()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;pos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;seekNext(pos)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(pos&amp;nbsp;-&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;isComplete()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;testVal&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;getValue()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i&amp;nbsp;&amp;lt;&amp;nbsp;length&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i++)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!tests[i])&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;testChar&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;testVal.charAt(i)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!tests[i].test(testChar))&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;true;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;check(valueToTest)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;testVal&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;valueToTest&amp;nbsp;||&amp;nbsp;getValue()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;testValPos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;-&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(i&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i&amp;nbsp;&amp;lt;&amp;nbsp;length&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i++)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(tests[i])&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;maskChar&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;mask.charAt(i)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;buffer[i]&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;getPlaceHolder(maskChar,&amp;nbsp;ph)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(++testValPos&amp;nbsp;&amp;lt;&amp;nbsp;testVal.length)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;testChar&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;testVal.charAt(testValPos)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(tests[i].test(testChar))&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[i]&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;testChar&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(testValPos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;testVal.length)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i--&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;((testValPos&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;testVal.length)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;break;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(i&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;-&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;?&amp;nbsp;firstNonMaskPos&amp;nbsp;:&amp;nbsp;i&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;shiftToLeft(from,&amp;nbsp;shiftStart)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;shiftStart--&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;from&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i&amp;nbsp;&amp;lt;&amp;nbsp;length&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i++)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!tests[i])&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(shiftStart&amp;nbsp;&amp;gt;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;break;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;while&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(++shiftStart&amp;nbsp;&amp;lt;&amp;nbsp;length)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!tests[shiftStart])&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(buffer[shiftStart]&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;getPlaceHolder(mask.charAt(shiftStart),&amp;nbsp;ph))&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[i]&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;buffer[shiftStart]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;buffer[shiftStart]&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;getPlaceHolder(mask.charAt(shiftStart),&amp;nbsp;ph)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node_OnFocus(e)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;focusText&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;getValue()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;pos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;check()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;flush()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(pos&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;seekNext(pos)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;moveCaret&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;((pos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length)&amp;nbsp;||&amp;nbsp;((pos&amp;nbsp;-&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length))&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.caret(node,&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;pos)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;else&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.caret(node,&amp;nbsp;pos)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;setTimeout(moveCaret,&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node_OnBlur(e)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;pos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;check()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;pos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;seekNext(pos)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;((pos&amp;nbsp;-&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clear()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;attr.&lt;/font&gt;&lt;font color="blue"&gt;set&lt;/font&gt;&lt;font color="black"&gt;(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;value&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(getValue()&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;focusText)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;on.emit(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;change&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bubbles:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;true&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cancelable:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;true&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node_OnBackspace()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;caret&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.caret(node)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;((caret.end&amp;nbsp;-&amp;nbsp;caret.begin)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(caret.begin&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;caret.begin&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;seekPrev(caret.begin)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clear(caret.begin,&amp;nbsp;caret.end)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;flush()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!tests[caret.begin])&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;caret.begin&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;seekNext(caret.begin)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&amp;nbsp;dojo.caret(node,&amp;nbsp;caret.begin)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node_OnDelete()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;caret&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.caret(node)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;((caret.end&amp;nbsp;-&amp;nbsp;caret.begin)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(caret.end&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;caret.end&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;seekNext(caret.end)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clear(caret.begin,&amp;nbsp;caret.end)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;shiftToLeft(caret.begin,&amp;nbsp;caret.end)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;flush()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!tests[caret.begin])&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;caret.begin&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;seekNext(caret.begin)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&amp;nbsp;dojo.caret(node,&amp;nbsp;caret.begin)&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node_OnLeftArrow()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;caret&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.caret(node)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(dojo.isIE)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.caret(node,&amp;nbsp;seekPrev(caret.begin))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;else&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.caret(node,&amp;nbsp;seekPrev(caret.begin))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node_OnRightArrow()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;caret&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.caret(node)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(dojo.isIE)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.caret(node,&amp;nbsp;seekNext(caret.begin))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;else&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.caret(node,&amp;nbsp;seekNext(caret.begin))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node_OnEscape()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;attr.&lt;/font&gt;&lt;font color="blue"&gt;set&lt;/font&gt;&lt;font color="black"&gt;(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;value&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;focusText)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.caret(node,&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;length)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node_OnKeypress(e)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(e.ctrlKey&amp;nbsp;||&amp;nbsp;e.altKey&amp;nbsp;||&amp;nbsp;e.shiftKey&amp;nbsp;||&amp;nbsp;e.metaKey&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;||&amp;nbsp;(e.which&amp;nbsp;&amp;lt;&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;32&lt;/font&gt;&lt;font color="black"&gt;))&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;true;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;event&lt;/font&gt;&lt;font color="black"&gt;.stop(e)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;caret&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.caret(node)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;((caret.end&amp;nbsp;-&amp;nbsp;caret.begin)&amp;nbsp;&amp;gt;&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clear(caret.begin,&amp;nbsp;caret.end)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;flush()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;caret.begin--&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;((++caret.begin&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;!tests[caret.begin])&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(caret.begin&amp;nbsp;&amp;gt;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;pos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;caret.begin&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;c&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;String.fromCharCode(e.charCode&amp;nbsp;||&amp;nbsp;e.keyCode)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(tests[pos]&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;tests[pos].test(c))&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[pos]&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;c&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;pos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;seekNext(pos)&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;else&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[pos]&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;getPlaceHolder(mask.charAt(pos),&amp;nbsp;ph)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flush()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.caret(node,&amp;nbsp;pos)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(isComplete())&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;on.emit(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;complete&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bubbles:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;true&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cancelable:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;true&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node_OnKeydown(e)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(e.ctrlKey&amp;nbsp;||&amp;nbsp;e.altKey&amp;nbsp;||&amp;nbsp;e.shiftKey&amp;nbsp;||&amp;nbsp;e.metaKey)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;true;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;switch&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(e.keyCode)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;case&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;keys.BACKSPACE:&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node_OnBackspace()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;event&lt;/font&gt;&lt;font color="black"&gt;.stop(e)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;keys.DELETE:&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node_OnDelete()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;event&lt;/font&gt;&lt;font color="black"&gt;.stop(e)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;keys.LEFT_ARROW:&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node_OnLeftArrow()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;event&lt;/font&gt;&lt;font color="black"&gt;.stop(e)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;keys.RIGHT_ARROW:&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node_OnRightArrow()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;event&lt;/font&gt;&lt;font color="black"&gt;.stop(e)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;keys.ESCAPE:&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node_OnEscape()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;event&lt;/font&gt;&lt;font color="black"&gt;.stop(e)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;keys.END:&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.caret(node,&amp;nbsp;length)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;event&lt;/font&gt;&lt;font color="black"&gt;.stop(e)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;keys.HOME:&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.caret(node,&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;event&lt;/font&gt;&lt;font color="black"&gt;.stop(e)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default&lt;/font&gt;&lt;font color="black"&gt;:&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;true;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;node_OnPaste(e)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;pos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;check()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;flush()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(pos&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;seekNext(pos)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;moveCaret&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;((pos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length)&amp;nbsp;||&amp;nbsp;((pos&amp;nbsp;-&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length))&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.caret(node,&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;pos)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;else&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.caret(node,&amp;nbsp;pos)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(isComplete())&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;on.emit(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;complete&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bubbles:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;true&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cancelable:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;true&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;setTimeout(moveCaret,&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!attr.&lt;/font&gt;&lt;font color="blue"&gt;get&lt;/font&gt;&lt;font color="black"&gt;(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;readonly&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;))&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;con&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;[]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;con.push(on(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;focus&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;node_OnFocus))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;con.push(on(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;blur&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;node_OnBlur))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;con.push(on(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;keydown&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;node_OnKeydown))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;con.push(on(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;keypress&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;node_OnKeypress))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;con.push(on(node,&amp;nbsp;dojo.isIE&amp;nbsp;?&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;paste&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;input&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(e)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout(node_OnPaste,&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;masks[attr.&lt;/font&gt;&lt;font color="blue"&gt;get&lt;/font&gt;&lt;font color="black"&gt;(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;id&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)]&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id:&amp;nbsp;attr.&lt;/font&gt;&lt;font color="blue"&gt;get&lt;/font&gt;&lt;font color="black"&gt;(node,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;id&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;),&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_connections:&amp;nbsp;con&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					dojo.mask plugin
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;    
		&lt;p&gt;
			Ospravedlňujem sa za vynechanie komentárov - ale už aj tak je to dosť dlhé ;-). Daný plugin som testoval v FF, IE8, Safari, Chrome a v Opere.
			Fungoval všade. Ak by sa ho niekto odhodlal použiť a našiel by nejaký ten bug, tak budem len rád ak mi dá vedieť.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="black"&gt;require([&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;xDev/plugins/mask&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;dojo/domReady!&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;],&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.mask(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;tbDate&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mask:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;99/99/9999&amp;quot;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.mask(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;tbDateTime&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mask:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;99.99.9999&amp;nbsp;99:99:99&amp;quot;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.mask(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;tbDateTimeCustom&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mask:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;dd.MM.yyyy&amp;nbsp;hh:mm:ss&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;definitions:&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;d&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;[0-9]&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;M&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;[0-9]&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;y&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;[0-9]&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;h&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;[0-9]&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;m&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;[0-9]&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;s&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;[0-9]&amp;quot;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;placeholders:&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;d&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;d&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;M&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;M&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;y&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;y&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;h&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;h&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;m&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;m&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;s&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;s&amp;quot;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.mask(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;tbEyeScript&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mask:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;~9.99&amp;nbsp;~9.99&amp;nbsp;999&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;definitions:&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;~&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;[+-]&amp;quot;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Použitie pluginu
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;&lt;fb:like href="" show_faces="true" width="450" font=""&gt;&lt;/fb:like&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=307294" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/HTML/default.aspx">HTML</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/dojo/default.aspx">dojo</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/dojo.require/default.aspx">dojo.require</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>Lokalizovanie výsledkov pre esri IdentifyTask</title><link>http://blog.aspnet.sk/xxxmatko/archive/2012/06/08/lokalizovanie-v-253-sledkov-pre-esri-identifytask.aspx</link><pubDate>Fri, 08 Jun 2012 09:35:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307212</guid><dc:creator>xxxmatko</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/xxxmatko/rsscomments.aspx?PostID=307212</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2012/06/08/lokalizovanie-v-253-sledkov-pre-esri-identifytask.aspx#comments</comments><description>		&lt;p&gt;
			Po krátkej dobe opäť niečo k esri technológii. Ako už vyplýva z nadpisu, pôjde o lokalizáciu výsledkov ktoré esri vracia pri použití 
			&lt;b&gt;&lt;a href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jsapi/identifytask.htm" target="_blank"&gt;IdentifyTasku&lt;/a&gt;&lt;/b&gt;.
			Aby som však hneď na úvod neodradil tých, ktorí s esri ešte nemali tú česť, tak krátky úvod do problematiky.
		&lt;/p&gt;
		&lt;p&gt;
			Esri &lt;a href="http://help.arcgis.com/en/webapi/javascript/arcgis/index.html" target="_blank"&gt;ArcGIS API for JavaScript&lt;/a&gt; umožňuje vyvýjať
			veľmi výkonné a ľahko použiteľné internetové mapové aplikácie (aspoň oni to tvrdia ;-)). Jedna z mnohých funkcionalít, ktoré spomínané API
			poskytuje, je aj dopytovanie sa na údaje prostredníctvom publikovaných &lt;b&gt;REST&lt;/b&gt;-ových služieb. Konkrétny dopyt sa realizuje pomocou &lt;b&gt;task-u&lt;/b&gt;.
			Existuje niekoľko typov taskov. Každý sa v niečom odlišuje a jeho použitie závisi od toho, aké údaje chceme získať a hlavne ako ich chceme získať.
		&lt;/p&gt;
		&lt;p&gt;
			I keď mám v nadpise &lt;b&gt;IdentifyTask&lt;/b&gt;, na to, aby som plynule prešiel k problému a jeho riešeniu, musím začať s 
			&lt;b&gt;&lt;a href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jsapi/querytask.htm" target="_blank"&gt;QueryTask-om&lt;/a&gt;&lt;/b&gt;.
			QueryTask a IdentifyTask sú si dosť podobné. Oba tieto tasky umožňujú získať informácie o objektoch a to jednak atribútové informácie (hodnoty
			atribútov jednotlivých záznamov v geo databáze) ale aj samotnú geometriu objektov. Rozdiel je v tom, že QueryTask vykonáva dopyt
			tak, že sa nadefinuje SQL podmienka a táto sa vykoná pre konkrétnu vrstvu v mapovej službe - inak povedané dopyt je realizovaný nad jednou &amp;quot;tabuľkou&amp;quot;
			(napr. ak chcem nájsť všetky budovy vyššie ako 20 metrov). IdentifyTask identifikuje objekty nad viacerými vrstvami v mapovej službe naraz, 
			pričom dopyt je reprezentovaný geometriou (napr. chcem identifikovať všetky budovy nachádzajúce sa na určitom území). 
		&lt;/p&gt;
		&lt;p&gt;
			Výsledky, ktoré tieto dva tasky vracajú sú takmer rovnaké. Ale len takmer. Oba tasky vrátia atribúty objektu ako asociatívne pole, kde kľúčom
			je názov atribútu a hodnota asociovaná pre kľúč reprezentuje hodnotu atribútu. QueryTask ale vracia hdonoty tak, že &amp;quot;zachováva&amp;quot; dátové typy
			atribútov. Zachováva treba chápať v zmysle, že keď atribút bol string, tak sa vráti ako string, keď bol double, tak sa vráti ako double.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="black"&gt;{&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;displayFieldName&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;SCHEMA.TABULKA.OBJECTID&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;fieldAliases&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;SCHEMA.TABULKA.OBJECTID&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Id&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;SCHEMA.TABULKA.NAZOV&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Názov&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;SCHEMA.TABULKA.CISLO&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Číslo&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;SCHEMA.TABULKA.DATUM&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Dátum&amp;quot;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;fields&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;[&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;...&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;],&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;features&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;[{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;attributes&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;SCHEMA.TABULKA.OBJECTID&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;123&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;SCHEMA.TABULKA.NAZOV&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Názov&amp;nbsp;objektu&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;SCHEMA.TABULKA.CISLO&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;102&lt;/font&gt;&lt;font color="black"&gt;.&lt;/font&gt;&lt;font color="maroon"&gt;50385&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;SCHEMA.TABULKA.DATUM&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1337040000000&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;...&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;]&lt;br /&gt;
						}&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Ukážka výsledku QueryTask-u
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Keď chceme výsledky ďalej interpretovať a zobraziť používateľovi, je pomerne jednoduché s nimi pracovať. Vezmime do úvahy napríklad atribút s dátumom.
			Ten môžeme konvertovať na &lt;b&gt;Date&lt;/b&gt; objekt a následne naň použiť ľubovolný formátovací reťazec.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="darkgreen"&gt;//&amp;nbsp;Hodnota&amp;nbsp;atributu&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dateAtt&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1337040000000&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Vytvorim&amp;nbsp;date&amp;nbsp;objekt&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;date&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;Date&lt;/font&gt;&lt;font color="black"&gt;(dateAtt)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Vlastny&amp;nbsp;format&amp;nbsp;pre&amp;nbsp;zobrazenie&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;fmt&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;d.&amp;nbsp;M.&amp;nbsp;yyyy&amp;nbsp;HH:mm:ss&amp;quot;&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Naformatujem&amp;nbsp;datum&amp;nbsp;pomocou&amp;nbsp;dojo&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dateAttFormatted&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.date.locale.format(date,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;selector:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;date&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;datePattern:&amp;nbsp;fmt&lt;br /&gt;
						})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Formátovanie dátumu pre QueryTask
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;		
		&lt;p&gt;
			Pri IdentifyTask-u však nastáva problém. Už v samotnom helpe sa niekde píše, že výsledky pre tento task, sú už prispôsobené tak, aby ich
			bolo možné okamžite zobraziť užívateľovi. Čo znamená že &amp;quot;prispôsobené&amp;quot; už popísané nie je, ba čo, viac nikde nie je zadokumentované ako
			toto &amp;quot;prispôsobenie&amp;quot; ovplyvniť.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="black"&gt;{&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;results&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;[{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;layerId&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;layerName&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Moj&amp;nbsp;Layer&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;value&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;123&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;displayFieldName&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Id&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;attributes&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Id&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;123&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Názov&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Názov&amp;nbsp;objektu&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Číslo&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;102,50385&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Dátum&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;15.&amp;nbsp;5.&amp;nbsp;2012&amp;quot;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;...&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;]&lt;br /&gt;
						}&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Ukážka výsledku IdentifyTask-u
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;		
		&lt;p&gt;
			Pri pohľade na výsledok IdentifyTask-u je jasné, že prvé prispôsobenie spočíva v tom, že ako názov atribútu nie je použitý názov stĺpca tabuľky,
			ale &lt;b&gt;alias name&lt;/b&gt;, ktorý je definovaný v mapovej službe. Toto je ešte ok. Druhé prispôsobenie je už horšie. Hodnoty všetkých atribútov sú vo forme
			textového reťazca - &amp;quot;nezachovali sa&amp;quot; dátové typy - a pri tejto konverzii bola použitá konkrétna &lt;b&gt;culture&lt;/b&gt; (v tomto prípade regionálne nastavenia pre 
			Slovenskú republiku). Toto nám zabraňuje využiť zobrazovací systém ako pri QueryTasku, pretože ak zoberieme do úvahy opäť dátum, tak z hodnoty
			&lt;b&gt;&amp;quot;15. 5. 2012&amp;quot;&lt;/b&gt; sa nám nepodarí vytvoriť &lt;b&gt;Date&lt;/b&gt; objekt. Určite takmer každého, kto sa dočítal až sem, teraz napadne: &lt;i&gt;&amp;quot;Veď ten string sa dá rozparsovať&amp;quot;&lt;/i&gt;.
			Rozparsovať sa dá, ale naskytuje sa otázka: &lt;i&gt;&amp;quot;Prečo sa použili práve nastavenia pre SR?&amp;quot;&lt;/i&gt;, &lt;i&gt;&amp;quot;Určite sa to dá niekde nastaviť&amp;quot;&lt;/i&gt;.
			Pokiaľ totiž nevieme zabezpečiť, že pri konverzii výsledkov pre IdentifyTask sa použije vždy jedna a tá istá culture, nemá význam implementovať nejaké parsovanie.
			Nastaviť sa to dá. Zistiť ale, kde a čo treba nastaviť bol v celku pôrod, nakoľko esri help je na túto tému pomerne skúpy a rady vo fóre
			boli len o parsovaní a nemysleli na to, že formát sa môže meniť v závislosti od regionálnych nastavení. 
			Po absolvovaní maratónu nastavovania regionálných nastavení všade kde to len šlo (zahrňujúc zmenu regionálnych nastavení pre &amp;quot;rest&amp;quot; aplikáciu vystavujúcu restové služby, 
			zmenu regionálnych nastavení pre užívateľa aplikačného poolu v ktorom beží aplikácia a iné) sa s pomocou helpdesku podarilo nájsť riešenie.
			&lt;b&gt;Formát nie len pre dátumové pole a nie len pre IdentifyTask ale aj niektoré iné operácie je závislí od regionálnych nastavení užívateľa &lt;i&gt;ArcGISSOC&lt;/i&gt;,
			respektíve od užívateľa, pod ktorým beží proces &lt;i&gt;ArcSOC.exe&lt;/i&gt; na SOC serveri.&lt;/b&gt; Asi trochu neštandardné ale budiš. Škoda len, že táto informácie nie je nikde
			spomenutá a ak aj je, tak minimálne pre mňa je doposiaľ nenájditeľná.
		&lt;/p&gt;
		&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;&lt;fb:like href="" show_faces="true" width="450" font=""&gt;&lt;/fb:like&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=307212" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/dojo/default.aspx">dojo</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/esri/default.aspx">esri</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/ArcGIS/default.aspx">ArcGIS</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/ArcGIS+JS+API/default.aspx">ArcGIS JS API</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/REST/default.aspx">REST</category></item><item><title>Esri map - vypnutie Numpad navigation</title><link>http://blog.aspnet.sk/xxxmatko/archive/2012/05/30/esri-map-vypnutie-numpad-navigation.aspx</link><pubDate>Wed, 30 May 2012 09:11:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307205</guid><dc:creator>xxxmatko</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/xxxmatko/rsscomments.aspx?PostID=307205</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2012/05/30/esri-map-vypnutie-numpad-navigation.aspx#comments</comments><description>		&lt;p&gt;
			Asi každý programátor pozná vetu &lt;i&gt;&amp;quot;It&amp;#39;s not a bug, it&amp;#39;s a feature.&amp;quot;&lt;/i&gt;. Väčšinou sa to berie ako vtip, ale niekedy je možné túto vetu použiť ako
			plne kvalifikovanú odpoveď na pripomienku zákazníka/zadávateľa úlohy.
		&lt;/p&gt;
		&lt;p&gt;
			V rámci mapovej aplikácie, postavenej na &lt;a href="http://www.esri.com/" target="_blank"&gt;esri techonlógii&lt;/a&gt; a 
			&lt;a href="http://help.arcgis.com/en/webapi/javascript/arcgis/index.html" target="_blank"&gt;ArcGIS JS API&lt;/a&gt;, prišla pripomienka, že keď má
			užívateľ otvorený v aplikácii nejaký dialóg (napr. vyhľadávací formulár) a zadáva do textbox-u vo formulári čísla cez &lt;b&gt;numpad&lt;/b&gt;,
			tak tieto sa nevkladajú do inkriminovaného textbox-u ale spôsobujú posun mapy. Aby sa čísla zadávali, musí užívateľ klinúť na plochu dialógu.
			No a v tomto prípade naozaj nejde o chybu aplikácie, ale o jej vlastnosť.
		&lt;/p&gt;
		&lt;p&gt;
			&lt;a href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jsapi/map.htm" target="_blank"&gt;Esri map widget&lt;/a&gt; totiž odchytáva udalosti 
			&lt;code&gt;moseenter&lt;/code&gt; a &lt;code&gt;moseleave&lt;/code&gt;, v rámci ktorých spúšťa alebo vypína odchytávanie udalosti stlačenia klávesy. Ak dôjde potom k stlačeniu
			klávesy, ktorá vykonáva posun mapy, respektíve jej priblíženie a oddialenie (numpad klávesy + a -), tak sa posunie mapa a event sa už ďalej nepropaguje.
			Preto aj keď užívateľ má focus na danom textbox-e, ale prešiel kurzorom myšky ponad mapu, tak pri použítí &lt;b&gt;numpad&lt;/b&gt;-u sa mu posúva mapa a nezapisujú sa čísla do 
			textového poľa.
		&lt;/p&gt;
		&lt;p&gt;
			Map widget umožňuje pri svojej inicializácii nastaviť parameter 
			&lt;code&gt;&lt;a href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jsapi/map.htm#isKeyboardNavigation" target="_blank"&gt;isKeyboardNavigation&lt;/a&gt;&lt;/code&gt;, ktorý
			ak je &lt;code&gt;false&lt;/code&gt;, tak navigácia pomocou klávesnice bude vypnutá (prípadne môžeme použiť metódy 
			&lt;code&gt;&lt;a href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jsapi/map.htm#enableKeyboardNavigation" target="_blank"&gt;enableKeyboardNavigation()&lt;/a&gt;&lt;/code&gt; a
			&lt;code&gt;&lt;a href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jsapi/map.htm#disbleKeyboardNavigation" target="_blank"&gt;disableKeyboardNavigation()&lt;/a&gt;&lt;/code&gt;). 
			Ak takto vypneme navigáciu, docielime síce, že pri písaní do textbox-u s použitím numpad-u sa nebude mapa posúvať
			a čísla sa budú zapisovať tak ako majú, ale vypneme si aj navigáciu pomocou šípok klávesnice a možnosť priblížiť a oddialiť mapu cez tlačítka + a -, čo je zas tiež
			nežiadúce.
		&lt;/p&gt;
		&lt;p&gt;
			Riešením by bolo mať možnosť vypnúť len navigáciu pomocou &lt;b&gt;numpad&lt;/b&gt;-u. Esri map widget však toto neumožňuje, takže si to musíme umožniť sami ;-). Po preskúmaní 
			map widgetu som našiel metódu &lt;code&gt;_onKeyDownHandler&lt;/code&gt;, ktorá obsluhuje udalosť stlačenia klávesy po prechode kurzora myšky ponad mapu. Stačilo už len
			prepísať túto metódu nasledovne:
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="black"&gt;dojo.extend(esri.Map,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Flag&amp;nbsp;pre&amp;nbsp;vypnutie&amp;nbsp;a&amp;nbsp;zapnutie&amp;nbsp;navigacie&amp;nbsp;cez&amp;nbsp;numpad&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;isNumpadNavigation:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;true&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Prepisanie&amp;nbsp;povodného&amp;nbsp;handlera&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;_onKeyDownHandler:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;(evt)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Ak&amp;nbsp;je&amp;nbsp;vypnuta&amp;nbsp;celkova&amp;nbsp;navigacia&amp;nbsp;tak&amp;nbsp;nerobim&amp;nbsp;nic&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.isKeyboardNavigation)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Keyboard&amp;nbsp;navigation&amp;nbsp;is&amp;nbsp;disabled&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Zoznam&amp;nbsp;navigacnych&amp;nbsp;klaves&amp;nbsp;numpad-u&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;numpadKeys&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;[dojo.keys.NUMPAD_1,&amp;nbsp;dojo.keys.NUMPAD_2,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.keys.NUMPAD_3,&amp;nbsp;dojo.keys.NUMPAD_4,&amp;nbsp;dojo.keys.NUMPAD_6,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.keys.NUMPAD_7,&amp;nbsp;dojo.keys.NUMPAD_8,&amp;nbsp;dojo.keys.NUMPAD_9]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Bola&amp;nbsp;stlacena&amp;nbsp;Numpad&amp;nbsp;klavesa&amp;nbsp;?&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;isNumpad&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;numpadKeys.indexOf(evt.keyCode)&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;-&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Ak&amp;nbsp;nie&amp;nbsp;je&amp;nbsp;zapnuta&amp;nbsp;navigacia&amp;nbsp;cez&amp;nbsp;Numpad&amp;nbsp;a&amp;nbsp;bola&amp;nbsp;stlacena&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;klavesanica&amp;nbsp;Numpadu&amp;nbsp;tak&amp;nbsp;nepokracujem&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.isNumpadNavigation&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;isNumpad)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Numpad&amp;nbsp;navigation&amp;nbsp;is&amp;nbsp;disabled&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Vyvolam&amp;nbsp;original&amp;nbsp;event&amp;nbsp;handler;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.onKeyDown.apply(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;[evt])&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Prepis metódy _onKeyDownHandler
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			V implementácii som použil volanie &lt;code&gt;&lt;a href="http://dojotoolkit.org/reference-guide/1.7/dojo/extend.html" target="_blank"&gt;dojo.extend&lt;/a&gt;&lt;/code&gt;, ktoré 
			umožňuje rozšíriť, respektíve upraviť, definíciu dojo triedy. Možno v nasledujúcej verzii &lt;b&gt;esri&lt;/b&gt; api budú myslieť už aj na takýto scenár použitia.
		&lt;/p&gt;		
		&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;&lt;fb:like href="" show_faces="true" width="450" font=""&gt;&lt;/fb:like&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=307205" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/dojo/default.aspx">dojo</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/widget/default.aspx">widget</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/esri/default.aspx">esri</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/ArcGIS/default.aspx">ArcGIS</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/ArcGIS+JS+API/default.aspx">ArcGIS JS API</category></item><item><title>Event komunikácia medzi browser parent/child oknami</title><link>http://blog.aspnet.sk/xxxmatko/archive/2012/05/22/event-komunik-225-cia-medzi-browser-parent-child-oknami.aspx</link><pubDate>Tue, 22 May 2012 12:23:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307195</guid><dc:creator>xxxmatko</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/xxxmatko/rsscomments.aspx?PostID=307195</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2012/05/22/event-komunik-225-cia-medzi-browser-parent-child-oknami.aspx#comments</comments><description>		&lt;p&gt;
			Keď je potrebné v rámci webovej aplikácie otvoriť nové okno, po väčšine siahnem po javascript plugine simulujúcom modálne okno, jedno aký js framework používam.
			A určite nie som jediný. Niekedy je však výhodnejšie použiť staré dobré &lt;b&gt;window.open()&lt;/b&gt;.
		&lt;/p&gt;
		&lt;p&gt;
			Aby som bol konkrétnejší, načrtnem situáciu. V rámci webovej aplikácie máme zoznam obrázkov. Po výbere obrázka potrebujeme tento otvoriť v novom okne a
			umožniť užívateľovi orezať obrázok. Keďže obrázky sú veľmi veľké, z užívateľského hľadiska je nepríjemné otvárať ich v nejakom kvázi &lt;i&gt;&amp;quot;modálnom&amp;quot;&lt;/i&gt; okne.
			Elegantnejšie je otvoriť obrázok v novom okne cez volanie &lt;b&gt;window.open()&lt;/b&gt; a v tomto okne realizovať orezanie. Nastala už len otázka, ako notifikovať parent window
			o tom, že obrázok bol už orezaný. Samozrejme najjednoduchšie riešenie by vezeralo asi takto:
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="darkgreen"&gt;//&amp;nbsp;Funckia&amp;nbsp;v&amp;nbsp;parent&amp;nbsp;window-e&amp;nbsp;pre&amp;nbsp;zistenie&amp;nbsp;orezania&amp;nbsp;obrazka&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;onCropped&amp;nbsp;(args)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Spracovanie&amp;nbsp;parametrom&amp;nbsp;orezania&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Otvorim&amp;nbsp;child&amp;nbsp;okno,&amp;nbsp;width&amp;nbsp;a&amp;nbsp;height&amp;nbsp;su&amp;nbsp;vopred&amp;nbsp;zistene&amp;nbsp;rozmery&amp;nbsp;obrazku&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;child&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;window&lt;/font&gt;&lt;font color="black"&gt;.open(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Crop.aspx&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Crop&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;width=&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;+&amp;nbsp;width&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;,height=&amp;quot;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;+&amp;nbsp;height)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;...&lt;br /&gt;
						&lt;br /&gt;
						//&amp;nbsp;V&amp;nbsp;child&amp;nbsp;window&amp;nbsp;nastane&amp;nbsp;crop&amp;nbsp;tak&amp;nbsp;notifikujem&amp;nbsp;parent&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;if&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;window&lt;/font&gt;&lt;font color="black"&gt;.opener&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;window&lt;/font&gt;&lt;font color="black"&gt;.opener.onCropped)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;function&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;))&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;window&lt;/font&gt;&lt;font color="black"&gt;.opener.onCropped({&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Crop&amp;nbsp;args&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Jednoduchá komunikácia priamym volaním parent okna
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;		
		&lt;p&gt;
			Toto riešenie však nie je dobré, pretože dochádza k vytvoreniu priamej závislosti medzi child a parent oknom, kde child okno predpokladá že parent okno obsahuje definíciu 
			určitej metódy. Čistejší spôsob je previazanie okien prostredníctvom &lt;b&gt;event&lt;/b&gt;-ov. Na child okno sa totiž môžeme pozerať ako na akýkoľvek iný komponent, ktorý existuje v 
			rámci hlavného okna a vykonáva nejakú činnosť a poskytuje možnosť zistiť zmenu svojo stavu prostredníctvom publikovaných udalostí. A teda v child okne vyrobíme vlastnú udalosť
			a v parent okne sa na túto udalosť napojíme.
		&lt;/p&gt;
		&lt;h2&gt;Event komunikácia okien pomocou jQuery&lt;/h2&gt;
		&lt;p&gt;
			Pokiaľ použijeme &lt;b&gt;jQuery&lt;/b&gt;, tak máme k dispozícií dve metódy. Prvou je metóda &lt;b&gt;&lt;a href="http://api.jquery.com/trigger/" target="_blank"&gt;.trigger()&lt;/a&gt;&lt;/b&gt;, 
			ktorá umožňuje vyvolať udalosť na nejakom objekte. Tou druhou je metóda &lt;b&gt;&lt;a href="http://api.jquery.com/on/" target="_blank"&gt;.on()&lt;/a&gt;&lt;/b&gt;, ktorá zaregistruje &lt;b&gt;event handler&lt;/b&gt; 
			pre udalosť konkrétneho objektu (prípadne môžeme použiť staršie metódy &lt;a href="http://api.jquery.com/bind/" target="_blank"&gt;.bind()&lt;/a&gt;, 
			&lt;a href="http://api.jquery.com/delegate/" target="_blank"&gt;.delegate()&lt;/a&gt; alebo &lt;a href="http://api.jquery.com/live/" target="_blank"&gt;.live()&lt;/a&gt;).
		&lt;/p&gt;
		&lt;p&gt;
			Pomocou vyššie uvedených metód možeme komunikáciu implementovať nasledovne:
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="darkgreen"&gt;//&amp;nbsp;Otvorim&amp;nbsp;child&amp;nbsp;okno&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;child&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;window&lt;/font&gt;&lt;font color="black"&gt;.open(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Cover.aspx&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Cover&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;width=&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;+&amp;nbsp;width&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;,height=&amp;quot;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;+&amp;nbsp;height)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Pockam&amp;nbsp;na&amp;nbsp;nacitanie&amp;nbsp;okna&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;$(child).on(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;load&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Napojim&amp;nbsp;sa&amp;nbsp;na&amp;nbsp;custom&amp;nbsp;event&amp;nbsp;child&amp;nbsp;okna&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;$(this).on&lt;sup&gt;1&lt;/sup&gt;&lt;/b&gt;&lt;/font&gt;(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;oncrop&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(evt,&amp;nbsp;sender)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Spracovanie&amp;nbsp;udalosti&amp;nbsp;crop&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;...&lt;br /&gt;
						&lt;br /&gt;
						//&amp;nbsp;V&amp;nbsp;child&amp;nbsp;window&amp;nbsp;nastane&amp;nbsp;crop&amp;nbsp;tak&amp;nbsp;vytvorim&amp;nbsp;udalost&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;$&lt;sup&gt;2&lt;/sup&gt;&lt;/b&gt;&lt;/font&gt;(&lt;/font&gt;&lt;font color="blue"&gt;window&lt;/font&gt;&lt;font color="black"&gt;).trigger({&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;oncrop&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cropArgs:&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Crop&amp;nbsp;args&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						},&amp;nbsp;[&lt;/font&gt;&lt;font color="blue"&gt;window&lt;/font&gt;&lt;font color="black"&gt;])&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Komunikácia medzi oknami s jQuery
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Pri takejto implementácii však parent okno nezaregistruje to, že v child okne došlo ku vzniku udalosti &amp;quot;oncrop&amp;quot;. Problém spočíva v tom, ako &lt;b&gt;jQuery&lt;/b&gt; odpamätáva 
			connect-y. Hoci sa my napojíme na udalosť &amp;quot;oncrop&amp;quot; objektu &amp;quot;child&amp;quot; (&lt;sup&gt;1&lt;/sup&gt;) (naše child okno), tento connect sa odpamätá v &lt;b&gt;jQuery&lt;/b&gt; objekte parent okna. V child okne,
			ktoré má vlastný scope, existuje ďalšia inštancia &lt;b&gt;jQuery&lt;/b&gt; objektu a my sme vyvolali udalosť &amp;quot;oncrop&amp;quot; (&lt;sup&gt;2&lt;/sup&gt;) pre tento druhý &lt;b&gt;jQuery&lt;/b&gt; objekt, a nie pre ten, ktorý
			existuje v scope parent okna. Preto je nutné ešte pozmeniť vyvolanie udalosti v child okne tak, aby sme referencovali &lt;b&gt;jQuery&lt;/b&gt; inštanciu existujúcu v scope parent
			okna (&lt;sup&gt;3&lt;/sup&gt;), a to nasledovne:
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="darkgreen"&gt;//&amp;nbsp;V&amp;nbsp;child&amp;nbsp;window&amp;nbsp;nastane&amp;nbsp;crop&amp;nbsp;tak&amp;nbsp;vytvorim&amp;nbsp;udalost&lt;br /&gt;
						&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;window.opener.$&lt;sup&gt;3&lt;/sup&gt;&lt;/b&gt;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;window&lt;/font&gt;&lt;font color="black"&gt;).trigger({&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;oncrop&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cropArgs:&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Crop&amp;nbsp;args&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						},&amp;nbsp;[&lt;/font&gt;&lt;font color="blue"&gt;window&lt;/font&gt;&lt;font color="black"&gt;])&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Správne vyvolanie custom udalosti v child okne pomocou jQuery
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Ďalšou možnosťou ako zabezpečiť komunikáciu medzi oknami, je aj využitie rôznych pluginov (napr. 
			&lt;a href="http://www.sfpeter.com/2008/03/communication-between-browser-windows-with-jquery-my-new-plugin/" target="_blank"&gt;jQuery.windowMsg&lt;/a&gt;).
			To je ale trochu zbytočné, keďže sa to dá vyriešiť aj pomocou core metód frameworku &lt;b&gt;jQuery&lt;/b&gt;.
		&lt;/p&gt;
		&lt;h2&gt;Event komunikácia okien pomocou dojo&lt;/h2&gt;		
		&lt;p&gt;
			Pretože okrem &lt;b&gt;jQuery&lt;/b&gt; intenzívne využívam aj &lt;b&gt;dojo&lt;/b&gt;, hneď som sa pozrel na to, ako by sa dala táto komunikácia zabezpečiť pomocou tohto
			framework-u. Opäť máme k dispozícii dve metódy. Prvou je metóda &lt;b&gt;&lt;a href="http://dojotoolkit.org/reference-guide/1.7/dojo/publish.html" target="_blank"&gt;dojo.publish()&lt;/a&gt;&lt;/b&gt;,
			ktorá &amp;quot;publikuje&amp;quot; udalosť, všetkým odberateľom danej &amp;quot;témy&amp;quot;. Pod témou, si môžeme predstaviť práve našu custom udalosť. Téma je definovaná ako string v ľubovolnom
			tvare. Druhou je metóda &lt;b&gt;&lt;a href="http://dojotoolkit.org/api/1.6/dojo/subscribe" target="_blank"&gt;dojo.subscribe()&lt;/a&gt;&lt;/b&gt; umožňujuca zapísať sa na odber nejakej témy.
			Inak povedané prvou metódou vyvolám udalosť, a druhou zaregistrujem handler pre túto udalosť. Treba však myslieť na to, že tieto dve metódy operujú nad globálnym objektom, preto
			treba názov udalosti prefixnúť identifikátorom inštancie objektu, ktorý udalosť vyvoláva. V našom prípade týmto identifikátorom môže byť názov (name) child okna.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;		
						&lt;font color="darkgreen"&gt;//&amp;nbsp;Otvorim&amp;nbsp;child&amp;nbsp;okno&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;child&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;window&lt;/font&gt;&lt;font color="black"&gt;.open(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Cover.aspx&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Cover&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;width=&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;+&amp;nbsp;width&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;,height=&amp;quot;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;+&amp;nbsp;height)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Pockam&amp;nbsp;na&amp;nbsp;nacitanie&amp;nbsp;okna&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;dojo.connect(child,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;onload&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;window&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Nastavim&amp;nbsp;event&amp;nbsp;handler&amp;nbsp;pre&amp;nbsp;udalost&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.subscribe(child.name&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;.onCrop&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;(args)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Spracovanie&amp;nbsp;udalosti&amp;nbsp;crop&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;...&lt;br /&gt;
						&lt;br /&gt;
						//&amp;nbsp;V&amp;nbsp;child&amp;nbsp;window&amp;nbsp;nastane&amp;nbsp;crop&amp;nbsp;tak&amp;nbsp;vytvorim&amp;nbsp;udalost&lt;br /&gt;
						&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;window.opener.dojo&lt;sup&gt;4&lt;/sup&gt;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;.publish&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;window&lt;/font&gt;&lt;font color="black"&gt;.name&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;.onCrop&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;[{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Crop&amp;nbsp;args&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;}])&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Komunikácia medzi oknami s dojo
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;		
		&lt;p&gt;
			Opäť platí to, čo platilo aj pri jQuery a teda, že keď udalosť vyvolávame, musíme referencovať &lt;b&gt;dojo&lt;/b&gt; inštanciu parent okna (&lt;sup&gt;4&lt;/sup&gt;).
			Na komunikáciu tak isto, môžeme použiť nejaký ten plugin. Pokiaľ by sme vychádzali z pluginu pre &lt;b&gt;jQuery&lt;/b&gt;, tak pre &lt;b&gt;dojo&lt;/b&gt; by sme ho mohli implementovať nasledovne:
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;		
						&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(d)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&lt;/font&gt;&lt;font color="black"&gt;(d._windowEvents)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Zoznam&amp;nbsp;udalosti&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d._windowEvents&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d._windowEvents&amp;nbsp;||&amp;nbsp;[]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Prida&amp;nbsp;handler&amp;nbsp;pre&amp;nbsp;udalost&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.listen&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;event&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;undefined&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;callback&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;undefined&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;scope&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;undefined&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Spracovanie&amp;nbsp;vstupnych&amp;nbsp;parametrov&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.forEach(arguments,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(a,&amp;nbsp;idx)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;switch&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(idx)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;case&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;:&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;callback&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;a&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;2&lt;/font&gt;&lt;font color="black"&gt;:&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scope&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;callback&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;callback&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;a&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default&lt;/font&gt;&lt;font color="black"&gt;:&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;event&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;a&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Informacie&amp;nbsp;o&amp;nbsp;connecte&amp;nbsp;na&amp;nbsp;udalost&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;connect&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;event&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;handler:&amp;nbsp;callback&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Pripadny&amp;nbsp;scope&amp;nbsp;pre&amp;nbsp;handler&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&lt;/font&gt;&lt;font color="black"&gt;(scope)&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;undefined&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;connect.scope&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;scope&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d._windowEvents.push(connect)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;connect&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Vyvola&amp;nbsp;udalost&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.trigger&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;evtName&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;undefined&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;evtArgs&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;undefined&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;w&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;undefined&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Spracovanie&amp;nbsp;argumentov&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.forEach(arguments,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(a,&amp;nbsp;idx)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;switch&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(idx)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;case&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;:&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtArgs&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;a&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;2&lt;/font&gt;&lt;font color="black"&gt;:&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;w&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;evtName&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;evtName&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;evtArgs&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;evtArgs&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;a&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default&lt;/font&gt;&lt;font color="black"&gt;:&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;evtName&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;a&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;w&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;window&lt;/font&gt;&lt;font color="black"&gt;.opener&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Pouzitie&amp;nbsp;hidden&amp;nbsp;formulara&amp;nbsp;pre&amp;nbsp;notifikaciu&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;form&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;w.&lt;/font&gt;&lt;font color="blue"&gt;document&lt;/font&gt;&lt;font color="black"&gt;.forms[&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;__WINDOW_COMMUNICATION&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(form)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d.attr(form[&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;__WINDOW_COMMUNICATION_EVTNAME&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;],&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;value&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;evtName)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.attr(form[&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;__WINDOW_COMMUNICATION_EVTARGS&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;],&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;value&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;d.toJson(evtArgs))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;form[&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;__WINDOW_COMMUNICATION_SUBMIT&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;].click()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;true;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d.addOnLoad(&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Vytvorenie&amp;nbsp;komunikacneho&amp;nbsp;formulara&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&lt;/font&gt;&lt;font color="black"&gt;(d.byId(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;__WINDOW_COMMUNICATION&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;))&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;form&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.create(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;form&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;__WINDOW_COMMUNICATION&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;__WINDOW_COMMUNICATION&amp;quot;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;hdnEventName&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.create(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;input&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;hidden&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;__WINDOW_COMMUNICATION_EVTNAME&amp;quot;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;form)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;hdnEventArgs&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.create(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;input&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;hidden&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;__WINDOW_COMMUNICATION_EVTARGS&amp;quot;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;form)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;btnSubmit&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.create(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;input&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;__WINDOW_COMMUNICATION_SUBMIT&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;button&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;__WINDOW_COMMUNICATION_SUBMIT&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;value&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;style:&amp;nbsp;{&amp;nbsp;display:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;none&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&amp;nbsp;form)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Spracovanie&amp;nbsp;klik&amp;nbsp;udalosti&amp;nbsp;na&amp;nbsp;tlacitko&amp;nbsp;v&amp;nbsp;komunikacnom&amp;nbsp;formulari&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.connect(btnSubmit,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;onclick&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;evtName&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.attr(hdnEventName,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;value&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;evtArgs&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.attr(hdnEventArgs,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;value&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Pokusim&amp;nbsp;sa&amp;nbsp;najst&amp;nbsp;dany&amp;nbsp;event&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;for&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i&amp;nbsp;&amp;lt;&amp;nbsp;d._windowEvents.length&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i++)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;evt&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d._windowEvents[i]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/font&gt;&lt;font color="black"&gt;(evt.type&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;evtName)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Spustim&amp;nbsp;event&amp;nbsp;handler&amp;nbsp;[evtArgs,&amp;nbsp;sedner]&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;evt.handler.apply(&lt;/font&gt;&lt;font color="blue"&gt;null&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;||&amp;nbsp;evt.scope,&amp;nbsp;[d.fromJson(evtArgs)])&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;d.place(form,&amp;nbsp;d.body())&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;})(dojo)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Implementácia pluginu dojo.windowMessage na komunikáciu medzi oknami
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			S použitím vyššie uvedeného pluginu by sme komunikáciu zabezpečeili nasledovne:
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;		
						&lt;font color="darkgreen"&gt;//&amp;nbsp;Otvorim&amp;nbsp;child&amp;nbsp;okno&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;child&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;window&lt;/font&gt;&lt;font color="black"&gt;.open(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Cover.aspx&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Cover&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;width=&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;+&amp;nbsp;width&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;,height=&amp;quot;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;+&amp;nbsp;height)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Pockam&amp;nbsp;na&amp;nbsp;nacitanie&amp;nbsp;okna&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;dojo.connect(child,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;onload&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;window&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Nastavim&amp;nbsp;event&amp;nbsp;handler&amp;nbsp;pre&amp;nbsp;udalost&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.listen(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;onCrop&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&lt;/font&gt;&lt;font color="black"&gt;(args)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Spracovanie&amp;nbsp;argumentov&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;...&lt;br /&gt;
						&lt;br /&gt;
						//&amp;nbsp;V&amp;nbsp;child&amp;nbsp;window&amp;nbsp;nastane&amp;nbsp;crop&amp;nbsp;tak&amp;nbsp;vytvorim&amp;nbsp;udalost&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;dojo.trigger(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;onCrop&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Crop&amp;nbsp;arguments&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Komunikácia medzi oknami s dojo pluginom
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Pri porovnaní &lt;b&gt;jQuery&lt;/b&gt; a &lt;b&gt;dojo&lt;/b&gt; sa ako lepší framework javí &lt;b&gt;jQuery&lt;/b&gt;. A to preto, lebo s použitím core metód umožňuje velmi jednoducho a elegantne
			napojiť sa na custom udalosť konkrétnej inštancie child okna. Pri &lt;b&gt;dojo&lt;/b&gt; musíme subscribe-ovanie na udalosť konkrétnej inštancie child okna odlíšiť nejakým prefixom.
			Bez tohto prefixu (napr. len dojo.subscribe(&amp;quot;onCrop&amp;quot;, handler)), ak by sme mali otvorené naraz dve inštancie child okna, ktoré každé by robilo crop pre iný obrázok, tak
			by sme jedným &amp;quot;handlerom&amp;quot; handlovali, síce rovnakú, udalosť dvoch nezávislých inštancií child okna naraz.
			&lt;b&gt;Dojo&lt;/b&gt; podobne ako &lt;b&gt;jQuery&lt;/b&gt; poskytuje možnosť napojiť sa na udalosť nejakého objektu pomocou metódy 
			&lt;b&gt;&lt;a href="http://dojotoolkit.org/reference-guide/1.6/dojo/connect.html" target="_blank"&gt;dojo.connect&lt;/a&gt;&lt;/b&gt; ale táto nefunguje pre custom udalosti objektu window.
		&lt;/p&gt;
		&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;&lt;fb:like href="" show_faces="true" width="450" font=""&gt;&lt;/fb:like&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=307195" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/HTML/default.aspx">HTML</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/dojo/default.aspx">dojo</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>Javascript help methods - Part 1</title><link>http://blog.aspnet.sk/xxxmatko/archive/2012/04/12/javascript-help-methods-part-1.aspx</link><pubDate>Thu, 12 Apr 2012 09:12:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307179</guid><dc:creator>xxxmatko</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/xxxmatko/rsscomments.aspx?PostID=307179</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2012/04/12/javascript-help-methods-part-1.aspx#comments</comments><description>		&lt;p&gt;
			Z času na čas, počas takého kľudného programovania, sa môže objaviť nejaký malý problém, ktorý treba vyriešiť. 
			Ak je riešenie opakovateľne aplikovateľné a využiteľné aj pri iných podobných situáciách, u mňa realizácia skončí implementáciou tzv. &lt;i&gt;helper&lt;/i&gt; metódy.
			Na tomto mieste by som sa chcel podeliť o moje riešenia týkajúce sa &lt;b&gt;javascriptu&lt;/b&gt;. Možno niekomu pomôžu a uľahčia mu prácu, prípadne prostredníctvom
			konštruktívnych pripomienok budem môcť aj ja sám vylepšiť existujúce riešenia.
		&lt;/p&gt;
		
		&lt;h2&gt;Vyvolanie udalosti na html elemente&lt;/h2&gt;
		&lt;p&gt;
			V ostatnom čase sa dosť intenzívne venujem &lt;b&gt;javascript&lt;/b&gt;-ovému framework-u &lt;b&gt;dojo&lt;/b&gt;. V aplikácii, v ktorej sa v značnej miere využíva widget 
			&lt;a href="http://livedocs.dojotoolkit.org/dijit/Tooltip" target="_blank"&gt;dijit.Tooltip&lt;/a&gt; sa tento prestal skrývať po odídení
			kurzora myšky z daného html prvku, ak na tento prvok bolo predtým kliknuté. Prvok si stále držal focus a &lt;b&gt;tooltip&lt;/b&gt; ostával zobrazený. 
			Po pátraní po internete som zistil, že nie som jediný, kto má problém so správnym skrývaním, respektíve zobrazovaním, &lt;b&gt;tooltipu&lt;/b&gt;. Skúsil som rôzne
			navrhované riešenia, ktoré do istej miery znásilňovali daný widget, ale žiadne z nich nezabralo v mojom prípade. Po preskúmaní správania sa widgetu a html prvkov
			na ktoré bol aplikovaný, som prišiel na riešenie, ktoré zafungovalo. Bolo potrebné &lt;i&gt;&amp;quot;násilne&amp;quot;&lt;/i&gt; vyvolať udalosť &lt;i&gt;&amp;quot;blur&amp;quot;&lt;/i&gt; nad html elementom, pre ktorý
			bol &lt;b&gt;tooltip&lt;/b&gt; vytvorený. A tu je finálna implementácia &lt;code&gt;fireEvent&lt;/code&gt; metódy:
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;fireEvent(element,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;event&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;event&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;string&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;throw&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;TypeError(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Input&amp;nbsp;event&amp;nbsp;name&amp;nbsp;must&amp;nbsp;of&amp;nbsp;type&amp;nbsp;string.&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;((&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(element)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;undefined&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;||&amp;nbsp;(element&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;null&lt;/font&gt;&lt;font color="black"&gt;))&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;throw&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Error(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Element&amp;nbsp;can&amp;nbsp;not&amp;nbsp;be&amp;nbsp;null.&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;IE&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;document&lt;/font&gt;&lt;font color="black"&gt;.createEventObject)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;evt&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;document&lt;/font&gt;&lt;font color="black"&gt;.createEventObject()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;element.fireEvent(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;on&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;+&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;event&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;evt)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Ostatne&amp;nbsp;prehliadace&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;evt&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;document&lt;/font&gt;&lt;font color="black"&gt;.createEvent(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;HTMLEvents&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Inicializacia&amp;nbsp;eventu&amp;nbsp;(Event&amp;nbsp;type,&amp;nbsp;bubbling,&amp;nbsp;cancelable)&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;evt.initEvent(&lt;/font&gt;&lt;font color="blue"&gt;event&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;true&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;true&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;!element.dispatchEvent(evt)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Metóda pre vyvolanie udalosti nad html elementom
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
		&lt;h2&gt;Distinct metóda pre polia&lt;/h2&gt;
		&lt;p&gt;
			Na inom mieste som potreboval získať zo vstupného poľa len distinct-né prvky, a už trocha zdeformovaný zo &lt;b&gt;C#&lt;/b&gt;-pu som hneď písal &lt;code&gt;pole.distinct()&lt;/code&gt;. Čuduj sa svete, error ;-).
			Tak som nakoniec rozšíril &lt;b&gt;Array&lt;/b&gt; objekt o metódu distinct takto:
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!&lt;/font&gt;&lt;font color="blue"&gt;Array&lt;/font&gt;&lt;font color="black"&gt;.prototype.distinct)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;Array&lt;/font&gt;&lt;font color="black"&gt;.prototype.distinct&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;distinctArray&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;[]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i&amp;nbsp;&amp;lt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.length&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i++)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(distinctArray.indexOf(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;[i])&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;-&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;distinctArray.push(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;[i])&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;distinctArray&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						})()&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Distinct metóda pre Array objekt
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;&lt;fb:like href="" show_faces="true" width="450" font=""&gt;&lt;/fb:like&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=307179" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/HTML/default.aspx">HTML</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/dojo/default.aspx">dojo</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/widget/default.aspx">widget</category></item><item><title>Ako zistiť či je objekt html element pomocou javascriptu</title><link>http://blog.aspnet.sk/xxxmatko/archive/2012/02/03/ako-zisti-i-je-objekt-html-element-pomocou-javascriptu.aspx</link><pubDate>Fri, 03 Feb 2012 09:05:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307099</guid><dc:creator>xxxmatko</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/xxxmatko/rsscomments.aspx?PostID=307099</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2012/02/03/ako-zisti-i-je-objekt-html-element-pomocou-javascriptu.aspx#comments</comments><description>		
&lt;p&gt;
			Jedna z vlastností, ktorá sa mi páči na &lt;b&gt;javascripte&lt;/b&gt; je &lt;b&gt;Weak Typing&lt;/b&gt;. Nie že by som to pokladal za nejakú super výhodu. Na otázku, či je lepší pogramovací jazyk 
			podporujúci &lt;b&gt;Strong Typing&lt;/b&gt; alebo &lt;b&gt;Weak Typing&lt;/b&gt;, by som si za víťaza zvolil určite toho skôr menovaného. 
		&lt;/p&gt;
		
&lt;p&gt;
			Na druhej strane to, že v &lt;b&gt;javascripte&lt;/b&gt; sa môže dátový typ premennej meniť počas behu programu umožňuje písať kód tak, ako by sme ho napríklad v &lt;b&gt;C#&lt;/b&gt; nikdy
			nenapísali.
		&lt;/p&gt;
		
&lt;table style="width:100%;"&gt;
			
&lt;tr&gt;
				
&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;x&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;x&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;console.info(x)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;console.log(&lt;/font&gt;&lt;font color="blue"&gt;typeof&lt;/font&gt;&lt;font color="black"&gt;(x))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;x&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;some&amp;nbsp;string&amp;quot;&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;console.info(x)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;console.log(&lt;/font&gt;&lt;font color="blue"&gt;typeof&lt;/font&gt;&lt;font color="black"&gt;(x))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;x&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;console.info(x)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;console.log(&lt;/font&gt;&lt;font color="blue"&gt;typeof&lt;/font&gt;&lt;font color="black"&gt;(x))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Príklad zmeny dátového typu premennej
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
	
		
&lt;p&gt;
			Častým takýmto prípadom využitia je metóda, ktorá na základe dátového typu vstupného parametra vykoná rôzne operácie. Ja som si takúto metódu vyrobil. Moja metóda
			mala jeden vstupný parameter. Ak tento bol typu &lt;b&gt;string&lt;/b&gt;, tak to znamenalo, že parameter reprezentuje &lt;b&gt;id&lt;/b&gt; html elementu, ale ak bol typu &lt;b&gt;object&lt;/b&gt;, tak
			to bol priamo html element. A konečne sa dostávam k jadru problému. Zistiť, či je premenná typu &lt;b&gt;string&lt;/b&gt; je jednoduché použitím operátora &lt;b&gt;typeof&lt;/b&gt; (viď. 
			&lt;span style="font-size:10px;font-family:Tahoma;"&gt;Príklad zmeny dátového typu premennej&lt;/span&gt;). Ak je však premenná handle na html element, operátor &lt;b&gt;typeof&lt;/b&gt;
			zahlási že je to &lt;b&gt;object&lt;/b&gt;. No dobre, ale objekt môže byť aj niečo iné ako len html element. Po relatívne krátkej dobe, som našiel spôsob, ako overiť či premená
			predstavuje handle na html element. Výsledok mojej snahy je možné vidieť na nasledovnej úkážke:
		&lt;/p&gt;
		
&lt;table style="width:100%;"&gt;
			
&lt;tr&gt;
				
&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;isHtmlNode&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(o)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(Node)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;object&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;o&amp;nbsp;instanceof&amp;nbsp;Node&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;else&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(o)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;object&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(o.nodeType)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;number&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(o.nodeName)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;string&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;isHtmlElement&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(o)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(HTMLElement)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;object&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;o&amp;nbsp;instanceof&amp;nbsp;HTMLElement&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;else&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(o)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;object&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;(o.nodeType&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(o.nodeName)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;string&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						}&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;

					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Metódy overujúce, či je premenná html element
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
		
&lt;p&gt;
			Prvá metóda overí, či je vstupný objekt inštanciou triedy &lt;b&gt;Node&lt;/b&gt; a druhá či je vstupný objekt inštanciou triedy &lt;b&gt;HTMLElement&lt;/b&gt;. Ich použitie môže vyzerať aj takto:
		&lt;/p&gt;
		
&lt;table style="width:100%;"&gt;
			
&lt;tr&gt;
				
&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;setContent&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(o)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(isHtmlElement(content)&amp;nbsp;||&amp;nbsp;isHtmlNode(content))&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;o&amp;nbsp;is&amp;nbsp;an&amp;nbsp;html&amp;nbsp;element&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;else&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;typeof&lt;/font&gt;&lt;font color="black"&gt;(o)&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;===&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;string&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;o&amp;nbsp;is&amp;nbsp;id&amp;nbsp;of&amp;nbsp;an&amp;nbsp;html&amp;nbsp;element&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;else&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;throw&amp;nbsp;an&amp;nbsp;error&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Príklad použitia metód pre detekciu objektu typu HTMLElement
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
		
&lt;p&gt;
			Takto si môžeme vyrobiť aj oveľa presnejšie metódy pre detekciu konkrétnych elementov, či už to podľa atribútu &lt;b&gt;tagName&lt;/b&gt; alebo detekciou na konkrétne
			triedy, ktoré dedia z triedy &lt;b&gt;HTMLElement&lt;/b&gt; (&lt;a href="http://krook.org/jsdom/HTMLAnchorElement.html" target="_blank"&gt;HTMLAnchorElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLAppletElement.html" target="_blank"&gt;HTMLAppletElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLAreaElement.html" target="_blank"&gt;HTMLAreaElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLBaseElement.html" target="_blank"&gt;HTMLBaseElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLBaseFontElement.html" target="_blank"&gt;HTMLBaseFontElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLBlockquoteElement.html" target="_blank"&gt;HTMLBlockquoteElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLBodyElement.html" target="_blank"&gt;HTMLBodyElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLBRElement.html" target="_blank"&gt;HTMLBRElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLButtonElement.html" target="_blank"&gt;HTMLButtonElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLDirectoryElement.html" target="_blank"&gt;HTMLDirectoryElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLDivElement.html" target="_blank"&gt;HTMLDivElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLDListElement.html" target="_blank"&gt;HTMLDListElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLFieldSetElement.html" target="_blank"&gt;HTMLFieldSetElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLFontElement.html" target="_blank"&gt;HTMLFontElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLFormElement.html" target="_blank"&gt;HTMLFormElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLFrameElement.html" target="_blank"&gt;HTMLFrameElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLFrameSetElement.html" target="_blank"&gt;HTMLFrameSetElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLHeadElement.html" target="_blank"&gt;HTMLHeadElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLHeadingElement.html" target="_blank"&gt;HTMLHeadingElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLHRElement.html" target="_blank"&gt;HTMLHRElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLHtmlElement.html" target="_blank"&gt;HTMLHtmlElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLIFrameElement.html" target="_blank"&gt;HTMLIFrameElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLImageElement.html" target="_blank"&gt;HTMLImageElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLInputElement.html" target="_blank"&gt;HTMLInputElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLIsIndexElement.html" target="_blank"&gt;HTMLIsIndexElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLLabelElement.html" target="_blank"&gt;HTMLLabelElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLLayerElement.html" target="_blank"&gt;HTMLLayerElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLLegendElement.html" target="_blank"&gt;HTMLLegendElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLLIElement.html" target="_blank"&gt;HTMLLIElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLLinkElement.html" target="_blank"&gt;HTMLLinkElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLMapElement.html" target="_blank"&gt;HTMLMapElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLMenuElement.html" target="_blank"&gt;HTMLMenuElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLMetaElement.html" target="_blank"&gt;HTMLMetaElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLModElement.html" target="_blank"&gt;HTMLModElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLObjectElement.html" target="_blank"&gt;HTMLObjectElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLOListElement.html" target="_blank"&gt;HTMLOListElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLOptGroupElement.html" target="_blank"&gt;HTMLOptGroupElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLOptionElement.html" target="_blank"&gt;HTMLOptionElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLParagraphElement.html" target="_blank"&gt;HTMLParagraphElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLParamElement.html" target="_blank"&gt;HTMLParamElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLPreElement.html" target="_blank"&gt;HTMLPreElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLQuoteElement.html" target="_blank"&gt;HTMLQuoteElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLScriptElement.html" target="_blank"&gt;HTMLScriptElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLSelectElement.html" target="_blank"&gt;HTMLSelectElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLStyleElement.html" target="_blank"&gt;HTMLStyleElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLTableCaptionElement.html" target="_blank"&gt;HTMLTableCaptionElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLTableCellElement.html" target="_blank"&gt;HTMLTableCellElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLTableColElement.html" target="_blank"&gt;HTMLTableColElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLTableElement.html" target="_blank"&gt;HTMLTableElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLTableRowElement.html" target="_blank"&gt;HTMLTableRowElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLTableSectionElement.html" target="_blank"&gt;HTMLTableSectionElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLTextAreaElement.html" target="_blank"&gt;HTMLTextAreaElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLTitleElement.html" target="_blank"&gt;HTMLTitleElement&lt;/a&gt;, &lt;a href="http://krook.org/jsdom/HTMLUListElement.html" target="_blank"&gt;HTMLUListElement&lt;/a&gt;).
		&lt;/p&gt;

		&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;&lt;fb:like href="" show_faces="true" width="450" font=""&gt;&lt;/fb:like&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=307099" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/HTML/default.aspx">HTML</category></item><item><title>Inicializovanie vlastností v dojo widgete</title><link>http://blog.aspnet.sk/xxxmatko/archive/2011/10/10/inicializovanie-vlastnost-237-v-dojo-widgete.aspx</link><pubDate>Mon, 10 Oct 2011 08:32:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307013</guid><dc:creator>xxxmatko</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/xxxmatko/rsscomments.aspx?PostID=307013</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2011/10/10/inicializovanie-vlastnost-237-v-dojo-widgete.aspx#comments</comments><description>Nedávno som narazil na problém pri nastavovaní hodnôt atribútov pre &lt;b&gt;dojo&lt;/b&gt; &lt;b&gt;widget&lt;/b&gt;. Na stránke som mal vytvorené dve rôzne inštancie jedného &lt;b&gt;widgetu&lt;/b&gt;.
			Problém spočíval v tom, že keď som zmenil hodnotu vlastnosti vo widgete &lt;b&gt;A&lt;/b&gt;, tak hodnota, ktorú som do tejto vlastnosti nastavil, sa nastavila aj do tej istej vlastnosti
			vo &lt;b&gt;widgete&lt;/b&gt; &lt;b&gt;B&lt;/b&gt;. Inak povedané, táto vlastnosť sa správala, ako keby bola statickou vlastnosťou a teda prístup k nej bol zdielaný všetkými inštanciami daného
			&lt;b&gt;widgetu&lt;/b&gt;.
		
		&lt;p&gt;
			Všetky atribúty boli zadeklarované presne podľa popisu, ktorý je uvedený na stránke 
			&lt;b&gt;&lt;a href="http://dojotoolkit.org/reference-guide/quickstart/writingWidgets.html#declaring-attributes" target="_blank" title="dojo-declaring-attributes"&gt;doja&lt;/a&gt;&lt;/b&gt;
			v časti &lt;b&gt;&lt;a href="http://dojotoolkit.org/reference-guide/quickstart/writingWidgets.html#declaring-attributes" target="_blank" title="dojo-declaring-attributes"&gt;deklarácia atribútov&lt;/a&gt;&lt;/b&gt;.
			A teda boli zadeklarované v rámci &lt;b&gt;prototypu&lt;/b&gt; spolu s hodnotou, ktorá slúži ako default hodnota, v prípade že pri vytvorení &lt;b&gt;widgetu&lt;/b&gt; nebola žiadna iná hodnota poskytnutá,
			a taktiež definuje aj dátovy typ atribútu pre &lt;b&gt;dojo&lt;/b&gt;.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="black"&gt;dojo.provide(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Widgets.Sample&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;dojo.require(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;dijit._Widget&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;dojo.declare(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Widgets.Sample&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;[dijit._Widget],&lt;br /&gt;
						{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_label:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Some&amp;nbsp;label&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_duration:&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;100&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_isDisabled:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;false&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_startPosition:&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x:&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y:&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;constructor:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(args,&amp;nbsp;srcNodeRef)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;args&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;args&amp;nbsp;||&amp;nbsp;{}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this&lt;/font&gt;&lt;font color="black"&gt;._label&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;args.label&amp;nbsp;||&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Some&amp;nbsp;label&amp;quot;&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this&lt;/font&gt;&lt;font color="black"&gt;._duration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;args.duration&amp;nbsp;||&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;100&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this&lt;/font&gt;&lt;font color="black"&gt;._isDisabled&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;args.isDisabled&amp;nbsp;||&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;postCreate:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;coords&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dojo.position(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.domNode)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this&lt;/font&gt;&lt;font color="black"&gt;._startPosition.x&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;coords.x&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this&lt;/font&gt;&lt;font color="black"&gt;._startPosition.y&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;coords.y&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;write:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.info(dojo.toJson({&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;label:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;._label,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;disabled:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;._isDisabled,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;duration:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;._duration,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;start:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;._startPosition&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Definícia ilustračného widgetu
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;	
		&lt;p&gt;
			Problém si môžeme demonštrovať na vyššie uvedenom &lt;b&gt;wdigete&lt;/b&gt;. Pre &lt;b&gt;widget&lt;/b&gt; boli zadeklarované štyri vlastnosti:
			&lt;/p&gt;&lt;ol&gt;
				&lt;li&gt;&lt;b&gt;_label&lt;/b&gt; : premenná typu string,&lt;/li&gt;
				&lt;li&gt;&lt;b&gt;_duration&lt;/b&gt; : premenná typu int,&lt;/li&gt;
				&lt;li&gt;&lt;b&gt;_isDisabled&lt;/b&gt; : premenná typu bool,&lt;/li&gt;
				&lt;li&gt;&lt;b&gt;_startPosition&lt;/b&gt; : premenná typu object.&lt;/li&gt;					
			&lt;/ol&gt;
			Prvé tri vlastnosti boli bezproblémové a tieto sa nastavovali priamo v konštruktore &lt;b&gt;widgetu&lt;/b&gt;. Kritickou bola posledná vlastnoť &lt;b&gt;_startPosition&lt;/b&gt;, ktorá bola typu &lt;b&gt;object&lt;/b&gt;.
			Táto sa nastavovala automaticky v metóde &lt;b&gt;postCreate&lt;/b&gt; (ktorá sa v rámci životného cyklu &lt;b&gt;widgetu&lt;/b&gt; volá vo chvíli, keď je widget vyrenderovaný na stránke) a slúžila na uchovanie štartovacej pozície
			html elementu, pre ktorý bola vytvorená inštancia widgetu. Widget obsahuje aj pomocnú metódu &lt;b&gt;write&lt;/b&gt;, ktorá do konzoly vypíše hodnoty atribútov. 
			Na stránku som následne pridal dva html elementy a pre ne vytvoril dve rôzne inštancie nášho pokusného &lt;b&gt;widgetu&lt;/b&gt;.
		&lt;p&gt;&amp;nbsp;&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;div&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;id&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;smaple1&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;style&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;position:absolute;left:0px;top:0px;&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="black"&gt;&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;div&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&lt;/font&gt;&lt;font color="black"&gt;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;div&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;id&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;sample2&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;style&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;position:absolute;left:20px;top:20px;&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="black"&gt;&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;div&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&lt;/font&gt;&lt;font color="black"&gt;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;script&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;type&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="black"&gt;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.addOnLoad(&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;window&lt;/font&gt;&lt;font color="black"&gt;.sample1&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Widgets.Sample({&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;label:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;sample1&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;duration:&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;1&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;isDisabled:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;false&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;dojo.byId(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;sample1&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;window&lt;/font&gt;&lt;font color="black"&gt;.sample2&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Widgets.Sample({&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;label:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;sample2&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;duration:&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;2&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;isDisabled:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;true&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;dojo.byId(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;sample2&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;script&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&lt;/font&gt;&lt;font color="black"&gt;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Vytvorenie dvoch rôznych inštancií pokusného widgetu
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;	
		&lt;p&gt;
			Po zavolaní metódy &lt;b&gt;write&lt;/b&gt; som zistil, že oba &lt;b&gt;widgety&lt;/b&gt; majú atribút &lt;b&gt;_startPosition&lt;/b&gt; nastavený na rovnakú hodnotu reprezentujúcu štartovaciu pozíciu druhého &lt;b&gt;widgetu&lt;/b&gt;, 
			pričom hodnoty ostatných atribútov boli rôzne. Hodnota sa menila súčasne pre oba &lt;b&gt;widgety&lt;/b&gt; aj pri jej nastavení pre prvý a rovnako tak aj pre druhý widget. Odpoveď na otázku: &lt;i&gt;&amp;quot;Prečo je to tak, keď všetko 
			bolo spravené podľa návodu?&amp;quot;&lt;/i&gt; spočíva v tom, ako &lt;b&gt;dojo&lt;/b&gt; vytvára triedy. Keďže &lt;b&gt;javascript&lt;/b&gt; nemá &lt;b&gt;class&lt;/b&gt; systém ako &lt;b&gt;C#&lt;/b&gt;, &lt;b&gt;Java&lt;/b&gt; alebo iné OOP jazyky, dojo simuluje 
			tento prístup prostredníctvom metódy &lt;b&gt;&lt;a href="http://docs.dojocampus.org/dojo/declare" target="_blank" title="dojo.declare"&gt;dojo.declare&lt;/a&gt;&lt;/b&gt;, ktorej tretím vstupným argumentom je objekt,
			ktorý reprezentuje &lt;b&gt;prototype&lt;/b&gt; triedy, a jeho vlastnosti sú skopírované do dynamicky vytvoreného prototypu. No a kľučovým je to &lt;i&gt;&amp;quot;skopírovanie&amp;quot;&lt;/i&gt;. Pri tzv. primitívnych dátových typoch ako sú reťazce, čísla a iné
			nie je problém. Pokiaľ však v objekte reprezentujúcom &lt;b&gt;prototype&lt;/b&gt; triedy zadeklarujeme atribút ako dátový typ &lt;b&gt;object&lt;/b&gt;, tak tento bude do každej novej inštancie widgetu predaný odkazom a teda 
			bude zdieľaný pre každú jednu inštanciu. Inak povedané, pri nastavení atribútu &lt;b&gt;_startPosition&lt;/b&gt; dôjde k prepísaniu hodnoty aj v druhom widgete preto, lebo oba widgety sa odkazujú na tú istú premennú v rámci toho istého
			&lt;b&gt;scope&lt;/b&gt;. A keďže v &lt;b&gt;javascripte&lt;/b&gt; je objekt a pole v podstate to isté, tento istý problém nastáva aj pri poliach. Riešením by bolo, ak by &lt;b&gt;dojo&lt;/b&gt; pri vytváraní &lt;b&gt;protypu&lt;/b&gt; triedy klonoval objekty a 
			polia. To sa však nedeje, a preto pokiaľ chceme zabrániť tomuto &lt;i&gt;&amp;quot;zdielaniu&amp;quot;&lt;/i&gt; musíme upraviť deklaráciu atribútu a jeho incializáciu vykonať až v rámci metódy &lt;b&gt;constructor&lt;/b&gt;, ktorá reprezentuje košntruktor 
			pre triedu.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="black"&gt;dojo.provide(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Widgets.Sample&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;dojo.require(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;dijit._Widget&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;dojo.declare(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Widgets.Sample&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;[dijit._Widget],&lt;br /&gt;
						{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_label:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Some&amp;nbsp;label&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_duration:&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;100&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_isDisabled:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;false&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_startPosition:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;null&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;constructor:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(args,&amp;nbsp;srcNodeRef)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;args&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;args&amp;nbsp;||&amp;nbsp;{}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Inicializacia&amp;nbsp;az&amp;nbsp;v&amp;nbsp;kontruktore&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;._startPosition&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x:&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;,&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y:&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this&lt;/font&gt;&lt;font color="black"&gt;._label&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;args.label&amp;nbsp;||&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Some&amp;nbsp;label&amp;quot;&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this&lt;/font&gt;&lt;font color="black"&gt;._duration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;args.duration&amp;nbsp;||&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;100&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this&lt;/font&gt;&lt;font color="black"&gt;._isDisabled&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;args.isDisabled&amp;nbsp;||&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;false;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//...&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;})&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Upravená definícia ilustračného widgetu
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;		
		&lt;p&gt;
			Týmto docielime to, že pri vytvorení nových inštancií nášho &lt;b&gt;widgetu&lt;/b&gt; sa bude premenná &lt;b&gt;_startPosition&lt;/b&gt; odkazovať vždy na novú premennú.
		&lt;/p&gt;
		&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;&lt;fb:like href="" show_faces="true" width="450" font=""&gt;&lt;/fb:like&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=307013" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/dojo/default.aspx">dojo</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/widget/default.aspx">widget</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/dojo.declare/default.aspx">dojo.declare</category></item><item><title>Javascript closures - vo vnútri cyklu</title><link>http://blog.aspnet.sk/xxxmatko/archive/2011/09/29/function-scope-v-javascripte.aspx</link><pubDate>Thu, 29 Sep 2011 07:07:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307006</guid><dc:creator>xxxmatko</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/xxxmatko/rsscomments.aspx?PostID=307006</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2011/09/29/function-scope-v-javascripte.aspx#comments</comments><description>		
&lt;p&gt;
			Správne pochopenie fungovania javascript &lt;b&gt;closures&lt;/b&gt; si vyžaduje určité zdatnosti a nie každému programátorovi webových aplikácie je jasné o čo vlastne 
			ide a aj velké percento tých lepších programátorov, ktorí aspoň tušia o čo ide, sa mu úspešne vyhýbajú.
		&lt;/p&gt;
		
&lt;p&gt;
			Využívanie &lt;b&gt;closures&lt;/b&gt; však môže veľmi zjednodušiť niektoré programátorské úkony a kedže najlepšie sa učí na príkladoch, ukážeme si  
			ako je možné veľmi efektívne využiť &lt;b&gt;closures&lt;/b&gt; v rámci bežiaceho cyklu.
		&lt;/p&gt;
		
&lt;p&gt;
			Majme cyklus s konečným počtom iterácií, pričom v každej iterácií spúšťame nejakú asynchrónnu úlohu. Káždá asynchróna úloha je identifikovateľná svojou url adresou. 
			Výsledok každej úlohy spracováva jedna callback metóda, pričom v tejto metóde chceme zistiť, ku ktorej úlohe patrí aktuálne spracovávaný výsledok. Na simuláciu asynchrónnej
			udalosti môžeme použiť metódu &lt;b&gt;setTimeout&lt;/b&gt; s náhodným nastavením času pre odpočet vykonania udalosti.
		&lt;/p&gt;
		
&lt;table style="width:100%;"&gt;
			
&lt;tr&gt;
				
&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="black"&gt;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#39;job&amp;nbsp;done&amp;#39;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;parseInt(&lt;/font&gt;&lt;font color="blue"&gt;Math&lt;/font&gt;&lt;font color="black"&gt;.random()*&lt;/font&gt;&lt;font color="maroon"&gt;10000&lt;/font&gt;&lt;font color="black"&gt;))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Metóda simulujúca vykonanie asynchrónnej udalosti
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
	
		
&lt;p&gt;
			Táto metóda môže reprezentovať napríklad spustenie vyhľadávania objektov s použitím webovej služby. Ak máme viacero vyhľadávacích služieb, môžeme túto úlohu spustiť pre
			každú jednu službu v rámci cyklu a v callback handleri zapísať do konzoly, pre ktorú službu prišiel výsledok.
		&lt;/p&gt;
		
&lt;table style="width:100%;"&gt;
			
&lt;tr&gt;
				
&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;urls&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;[&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;url1&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;url2&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;url3&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;url4&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						for&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;url&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;in&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;urls)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#39;job&amp;nbsp;done&amp;nbsp;for&amp;nbsp;&amp;#39;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;+&amp;nbsp;urls[url])&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;parseInt(&lt;/font&gt;&lt;font color="blue"&gt;Math&lt;/font&gt;&lt;font color="black"&gt;.random()*&lt;/font&gt;&lt;font color="maroon"&gt;10000&lt;/font&gt;&lt;font color="black"&gt;))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Spustenie asynchrónnej udalosti v tele cyklu
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
		
&lt;p&gt;
			Keď však spustíme vyššie uvedený kód a počkáme si na výpis prijatých výsledkov, tak v konzole uvidíme nasledovný text:
		&lt;/p&gt;
		
&lt;table style="width:100%;"&gt;
			
&lt;tr&gt;
				
&lt;td&gt;
					&lt;div class="code" style="color:#000000;"&gt;

						job&amp;nbsp;done&amp;nbsp;for&amp;nbsp;url4&lt;br /&gt;
						job&amp;nbsp;done&amp;nbsp;for&amp;nbsp;url4&lt;br /&gt;
						job&amp;nbsp;done&amp;nbsp;for&amp;nbsp;url4&lt;br /&gt;
						job&amp;nbsp;done&amp;nbsp;for&amp;nbsp;url4					
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Výsledok viacnásobného spustenia asynchrónnej udalosti
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
		
&lt;p&gt;
			Dôvod, prečo je tomu tak, spočíva v tom, že síce sa asynchrónna udalosť spúšťa zvlášť pre každú url adresu, callback handler pre každú udalosť je vykonaný v tom istom &lt;b&gt;scope-e&lt;/b&gt;, 
			v rámci ktorého je hodnota indexu &lt;b&gt;url&lt;/b&gt; rovná číslu 3 (na túto hodnotu bol index nastavený pri poslednej iterácii) a teda pre každé volanie callbacku získame url 
			adresu pre posledný job v rade. Riešením je použitie &lt;b&gt;closure&lt;/b&gt; a teda vytvorenie vlastného &lt;b&gt;scope&lt;/b&gt; pre každé jedno volanie. 
		&lt;/p&gt;
		
&lt;table style="width:100%;"&gt;
			
&lt;tr&gt;
				
&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;urls&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;[&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;url1&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;url2&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;url3&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;url4&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;]&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						for&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;url&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;in&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;urls)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;/font&gt;&lt;font color="blue"&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;function&lt;/b&gt;&lt;sup&gt;&lt;b&gt;1&lt;/b&gt;&lt;/sup&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="black"&gt;(&lt;font color="#ff0000"&gt;&lt;b&gt;u&lt;/b&gt;&lt;sup&gt;&lt;b&gt;2&lt;/b&gt;&lt;/sup&gt;&lt;/font&gt;)&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout(&lt;/font&gt;&lt;font color="blue"&gt;function&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;()&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#39;job&amp;nbsp;done&amp;nbsp;for&amp;nbsp;&amp;#39;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;+&amp;nbsp;u)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;},&amp;nbsp;parseInt(&lt;/font&gt;&lt;font color="blue"&gt;Math&lt;/font&gt;&lt;font color="black"&gt;.random()*&lt;/font&gt;&lt;font color="maroon"&gt;10000&lt;/font&gt;&lt;font color="black"&gt;))&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;})(&lt;font color="#ff0000"&gt;&lt;b&gt;urls[url]&lt;/b&gt;&lt;sup&gt;&lt;b&gt;3&lt;/b&gt;&lt;/sup&gt;&lt;/font&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&gt;				
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Použitie closure na vytvorenie nového scope
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
	
		
&lt;p&gt;
			Podstata spočíva v tom, že namiesto toho, aby sme rovno spustili asynchrónnu udalosť, vytvoríme pomocnú metódu (&lt;sup&gt;1&lt;/sup&gt;), ktorá má jeden vstupný argument (&lt;sup&gt;2&lt;/sup&gt;) a tento 
			argument predáva ďalej našej asynchrónnej metóde. Následne túto metódu ihneď spustíme, pričom ako vstupný parameter použijeme url adresu služby (&lt;sup&gt;3&lt;/sup&gt;). Týmto docielime to, 
			že callback handler pre jednotlivé udalosti bude spúšťaný v rámci &lt;b&gt;scop-u&lt;/b&gt; našej pomocnej metódy a keďže pre každé volanie našej pomocnej metódy je vytvorený nový &lt;b&gt;scope&lt;/b&gt;,
			v rámci ktorého obsahuje premenná &lt;b&gt;u&lt;/b&gt; vždy inú hodnotu url adresy služby, vieme odsledovať, ktorý job bol práve skončený.
		&lt;/p&gt;

		&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;&lt;fb:like href="" show_faces="true" width="450" font=""&gt;&lt;/fb:like&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=307006" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/closure/default.aspx">closure</category></item></channel></rss>