<?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</title><link>http://blog.aspnet.sk/xxxmatko/default.aspx</link><description /><dc:language>sk-SK</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Publikovanie balíčkov na NuGet server pomocou Visual Studia</title><link>http://blog.aspnet.sk/xxxmatko/archive/2013/03/26/publikovanie-bal-237-kov-na-nuget-server-pomocou-visual-studia.aspx</link><pubDate>Tue, 26 Mar 2013 18:56:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307371</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=307371</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2013/03/26/publikovanie-bal-237-kov-na-nuget-server-pomocou-visual-studia.aspx#comments</comments><description>		
&lt;p&gt;
			V mojom poslednom &lt;a href="http://blog.aspnet.sk/xxxmatko/archive/2013/01/11/ako-vytvori-nuget-server.aspx" target="_blank"&gt;blogu&lt;/a&gt;
			som písal o tom, ako možno rozbehať vlastný &lt;b&gt;NuGet&lt;/b&gt; server pomocou balíčka &lt;a href="http://nuget.org/packages/NuGet.Server/" target="_blank"&gt;NuGet.Server&lt;/a&gt;.
			Dnes by som chcel v tejto téme pokračovať, a popísať spôsob, ako je možné balíčky do tohto (ale aj iného) NuGet servera
			publikovať prostredníctvom Visual Studia.
		&lt;/p&gt;
		
&lt;p&gt;
			Nad otázkou že: &lt;i&gt;&amp;quot;Ako tam tie balíčky vlastne posielať, tak aby to bolo čo najefektívnejšie?&amp;quot;&lt;/i&gt; som sa zamýšlal už dlhšie.
			Keďže zastávam názor, že je zbytočné vymýšlať niečo, čo už vymyslené je, tak som sa najprv poobzeral po už existujúcich 
			spôsoboch riešenia.
		&lt;/p&gt;
		
&lt;p&gt;
			Ako prvá možnosť ma napadla, používať nástroj &lt;a href="http://npe.codeplex.com/" target="_blank"&gt;NuGet Package Explorer&lt;/a&gt;.
			Je to v celku milá UI aplikáciá na prácu s NuGet balíčkami. Pomerne ľahko sa tu dajú vytvárať, editovať už existujúce balíčky a 
			daná aplikácia poskytuje aj rozhranie na publikovanie balíčkov do NuGet servera. To klikanie a neustále otváranie a
			zatváranie balíčkov kvôli zmene jedného atribútu ma však prestalo baviť
			už asi po desiatich minútach. A keď niektoré vytvorené balíčky sa mi nenainštalovali korektne, tak som túto cestu úplne zavrhol.
			Nechcem tým povedať, že tento nástroj je zlý, len z môjho pohľadu publikovanie balíčkov cez tento program je skôr otrava ako zábava.
		&lt;/p&gt;
		
&lt;p&gt;
			Keďže samotný balíček je v podstate zip súbor, a metainformácie sú reprezentované vo forme xml 
			(&lt;a href="http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#Create_the_manifest" target="_blank"&gt;NuGet manifest&lt;/a&gt;),
			takže ich je pomerne ľahké editovať, mohol by som balíčky vytvárať ručne cez 
			&lt;a href="http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#Creating_a_Package" target="_blank"&gt;NuGet command line&lt;/a&gt;
			a rovnako tak ich aj &lt;a href="http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#Publishing" target="_blank"&gt;publikovať do NuGet servera&lt;/a&gt;.
			Napriek tomu, že by som takto mohol spustením jednoduchého batch file-u balíček vytvoriť a hneď ho aj publikovať, čo je určite pohodlnejšie ako 
			spúšťať UI aplikáciu a klikať a klikať, stále čelím problému, že základná štruktúra balíčka je len nejaký adresár so súbormi. 
			Takýto adresár by sa relatívne dosť ťažko udržoval a pri zakladaní nového balíčka by si to vyžadovalo značné usílie, keďže by som musel
			adresár niekam prekopírovať, premenovať x súborov, zeditovať ich obsah. A to už nehovorím o tom, že ak by obsahom môjho balíčka bola 
			nejaká moja vlastná knižnica, túto by som musel vždy zbuildovať a následne (polo)manuálne skopírovať do priečinka kde mám definíciu balíčka.
		&lt;/p&gt;
		
&lt;p&gt;
			Chcel by som totiž, aby moje balíčky boli previazané s projektami, ktoré sú v danom balíčku obsiahnuté, aby definície balíčkov
			(manifest a samotný obsah) boli pomerne ľahko manažovateľné a build a publish balíčkov bol prepojený na build samotných Visual Studio projektov.
			Už je asi jasné, že som začal rozmýľať nad tým, či by nebolo možné balíček reprezentovať ako Visual Studio project. 
			Keď som objavil &lt;a href="http://visualstudiogallery.msdn.microsoft.com/daf5c6db-386b-4994-bdd7-b6cd52f11b72?SRC=VSIDE" target="_blank"&gt;NuGet Packager project template&lt;/a&gt;,
			bolo mi hneď jasné, že to možné je. Žial, (snáď sa autor templatu neurazí ;-)), daný template mi vôbec nevyhovoval a tak som vyrobil jeden vlastný.
		&lt;/p&gt;
		
&lt;p&gt;
			Moje požiadavky na template boli nasledovné:
		&lt;/p&gt;
		
&lt;ul class="list"&gt;
			
&lt;li&gt;
				predpripravená adresárová štruktúra NuGet balíčka,
			&lt;/li&gt;
			
&lt;li&gt;
				previazanie na závislé Visual Studio projekty,
			&lt;/li&gt;
			
&lt;li&gt;
				automatický build balíčka a jeho publish pri builde projektu v Release konfigurácii,
			&lt;/li&gt;
			
&lt;li&gt;
				možnosť konfigurácie umiestnenia NuGet servera,
			&lt;/li&gt;
			
&lt;li&gt;
				vynakladanie minimálneho úsilia pri zakladaní nového NuGet projektu.
			&lt;/li&gt;
		&lt;/ul&gt;
		
		
&lt;p&gt;
			Logiku templatu som postavil na jednoduchom princípe: Všetok content projektu, ktorý sa pri builde má 
			skopírovať do výstupného adresára je contentom balíčka. Po builde v Realease konfigurácii sa v &lt;b&gt;AfterBuild&lt;/b&gt;
			targete na základe manifestu (ktorý je tiež súčasťou projektu) vyrobí NuGet balíček a následne sa tento
			publishne do NuGet servera.
		&lt;/p&gt;
		
&lt;p&gt;
			Na publikovanie balíčkov do NuGet servera som v mojom prípade potreboval dve veci:
		&lt;/p&gt;
		
&lt;ul class="list"&gt;
			
&lt;li&gt;
				url adresu samotného NuGet servera,
			&lt;/li&gt;
			
&lt;li&gt;
				a API key.
			&lt;/li&gt;
		&lt;/ul&gt;
		
		
&lt;p&gt;
			Keďže som nechcel, aby tieto dve nastavenia boli harcoded priamo v project súbore, ale dali sa zmeniť tak, že ak už budem
			mať napríklad vytvorených niekoľko týchto NuGet projektov, a zmení sa mi API key alebo sa zmení umiestnenie môjho NuGet servera,
			bude stačiť ak upravím tieto nastavenia na jednom mieste a moje NuGet projekty budú fungovať ďalej.
			Preto som sa rozhodol, že tieto dve nastavenia budem uchovávať v premenných prostredia operačného systému s príznačnými názvami
			&lt;b&gt;NUGET_SERVER&lt;/b&gt; a &lt;b&gt;NUGET_APIKEY&lt;/b&gt;. Vo Visual Studio project súbore ich obsah potom môžem načítať nasledovne:
		&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;PropertyGroup&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;NuGetServer&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&lt;/font&gt;&lt;font color="black"&gt;$(NUGET_SERVER)&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;NuGetServer&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;NuGetApiKey&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&lt;/font&gt;&lt;font color="black"&gt;$(NUGET_APIKEY)&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;NuGetApiKey&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;PropertyGroup&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;
					Načítanie environment premenných v project súbore
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
&lt;p&gt;
			Keďže bez týchto dvoch nastavení nie je možné publikovať balíček, pridal som ešte &lt;b&gt;BeforeBuild&lt;/b&gt; target, v ktorom
			skontrolujem prítomnosť týchto dvoch nastavení. Ak niektoré z nastavení chýba, tak pred samotným buildom
			vznikne chyba, build sa neuskutoční a užívateľ je o tejto chybe upozornený priamo vo Visual Studiu.
		&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;Target&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Name&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;BeforeBuild&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Condition&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;$(Configuration)&amp;nbsp;==&amp;nbsp;&amp;#39;Release&amp;#39;&amp;quot;&amp;gt;&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;&amp;lt;!--&amp;nbsp;Check&amp;nbsp;NuGet&amp;nbsp;server&amp;nbsp;url&amp;nbsp;configuration&amp;nbsp;--&amp;gt;&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Error&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Text&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;You&amp;nbsp;have&amp;nbsp;to&amp;nbsp;set&amp;nbsp;up&amp;nbsp;&amp;#39;NUGET_SERVER&amp;#39;&amp;nbsp;environment&amp;nbsp;variable.&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Condition&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;&amp;#39;$(NuGetServer)&amp;#39;&amp;nbsp;==&amp;nbsp;&amp;#39;&amp;#39;&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Message&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Text&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;NUGET_SERVER:&amp;nbsp;$(NuGetServer)&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Importance&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;high&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
				&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;&amp;lt;!--&amp;nbsp;Check&amp;nbsp;NuGet&amp;nbsp;API&amp;nbsp;Key&amp;nbsp;configuration&amp;nbsp;--&amp;gt;&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Error&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Text&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;You&amp;nbsp;have&amp;nbsp;to&amp;nbsp;set&amp;nbsp;up&amp;nbsp;&amp;#39;NUGET_APIKEY&amp;#39;&amp;nbsp;environment&amp;nbsp;variable.&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Condition&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;&amp;#39;$(NuGetApiKey)&amp;#39;&amp;nbsp;==&amp;nbsp;&amp;#39;&amp;#39;&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Message&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Text&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;NUGET_APIKEY:&amp;nbsp;$(NuGetApiKey)&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Importance&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;high&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
				&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;Target&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;
					Kontrola prítomnosti environment premenných pred buildom
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
	
		
&lt;p&gt;	
			Vytvorenie balíčka a jeho publikovanie sa zrealizuje v target-e &lt;b&gt;AfterBuild&lt;/b&gt;. Manifest podľa ktorého sa vytvorí balíček (súbor *.nuspec)
			je súčasťou projektu ako content file a je nastavený tak, aby sa kopíroval do výstupného adresára. Pre ľahkú identifikáciu tohto súboru má názov
			v tvare &lt;b&gt;&amp;lt;MSBuildProjectName&amp;gt;.nuspec&lt;/b&gt;. NuGet balíček následne vytvoríme &lt;b&gt;msbuild&lt;/b&gt; príkazom &lt;b&gt;Exec&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="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Exec&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Command&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;nuget&amp;nbsp;pack&amp;nbsp;$(OutputPath)\$(MSBuildProjectName).nuspec&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;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íkaz na vytvorenie NuGet balíčka
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
&lt;p&gt;
			Keďže referenčná cesta pre &lt;b&gt;msbuild&lt;/b&gt; je cesta, na ktorej sa nachádza project file a nie cesta pre výstupný adresár (bin/Release), nuget balíček sa
			vytvorí v priečinku, v ktorom sa nachádza aj daný project file. Preto v rámci &lt;b&gt;AfterBuild&lt;/b&gt; target-u môžeme po vytvorení balíčka zmazať celý obsah
			výstupnehé priečinka a následne do neho presunúť novovytvorený balíček (súbor s príponou *.nupkg).
		&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;ItemGroup&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;!--&amp;nbsp;Reference&amp;nbsp;for&amp;nbsp;output&amp;nbsp;files&amp;nbsp;--&amp;gt;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;ReleaseFiles&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Include&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;$(OutputPath)\**\*.*&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;&amp;lt;!--&amp;nbsp;Reference&amp;nbsp;for&amp;nbsp;package&amp;nbsp;files&amp;nbsp;--&amp;gt;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;PackageFiles&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Include&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;*.nupkg&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
						&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;ItemGroup&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="darkgreen"&gt;&amp;lt;!--&amp;nbsp;Delete&amp;nbsp;all&amp;nbsp;release&amp;nbsp;files&amp;nbsp;from&amp;nbsp;the&amp;nbsp;Release&amp;nbsp;folder&amp;nbsp;--&amp;gt;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Delete&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Files&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;@(ReleaseFiles)&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;&amp;lt;!--&amp;nbsp;Delete&amp;nbsp;content,&amp;nbsp;tools&amp;nbsp;and&amp;nbsp;lib&amp;nbsp;folders&amp;nbsp;--&amp;gt;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;RemoveDir&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Directories&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;$(OutputPath)\content;$(OutputPath)\tools;$(OutputPath)\lib&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;&amp;lt;!--&amp;nbsp;Move&amp;nbsp;package&amp;nbsp;file&amp;nbsp;to&amp;nbsp;the&amp;nbsp;Release&amp;nbsp;folder&amp;nbsp;--&amp;gt;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Move&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;SourceFiles&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;@(PackageFiles)&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DestinationFiles&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;@(PackageFiles-&amp;gt;&amp;#39;$(OutputPath)\%(RecursiveDir)%(Filename)%(Extension)&amp;#39;)&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;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;
					Vyčistenie výstupného priečinka a presun balíčka
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
&lt;p&gt;
			Posledným krokom je už len vypublikovanie balíčka do NuGet servera:
		&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;lt;!--&amp;nbsp;Get&amp;nbsp;all&amp;nbsp;package&amp;nbsp;files&amp;nbsp;in&amp;nbsp;the&amp;nbsp;Release&amp;nbsp;folder&amp;nbsp;--&amp;gt;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;ItemGroup&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;NugetPackageFiles&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Include&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;$(OutputPath)\**\*.nupkg&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
						&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;ItemGroup&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="darkgreen"&gt;&amp;lt;!--&amp;nbsp;Publish&amp;nbsp;these&amp;nbsp;files&amp;nbsp;to&amp;nbsp;the&amp;nbsp;NuGet&amp;nbsp;server&amp;nbsp;--&amp;gt;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Exec&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Command&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;nuget&amp;nbsp;push&amp;nbsp;%(NugetPackageFiles.RelativeDir)%(NugetPackageFiles.Filename)%(NugetPackageFiles.Extension)&amp;nbsp;-ApiKey&amp;nbsp;$(NuGetApiKey)&amp;nbsp;-Source&amp;nbsp;$(NuGetServer)&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;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;
					Vypublikovanie balíčka
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
&lt;p&gt;
			Na tomto mieste by som už mohol aj skončiť. Ale. Stále som ešte nebol úplne spokojný, a vadila mi jedna vec, i keď možno maličkosť, ale predsa
			mi vadila. Pre NuGet balíčky možeme defnovať (okrem iného) aj url adresu pre ikonku balíčka. Táto ikonka sa potom zobrazuje aj vo Visual Studiu
			pri pridávaní NuGet balíčkov. Ako ale túto ikonku publikovať spolu s balíčkom? V rámci NuGet project template-u som pridal ďalší súbor typu *.png,
			ktorého názov je v tvare &lt;b&gt;&amp;lt;MSBuildProjectName&amp;gt;.png&lt;/b&gt;. Tento súbor predstavuje ikonku pre NuGet balíček. Aby som ju mohol publikovať, tak
			do webovej aplikácie, ktorá predstavuje &lt;a href="http://blog.aspnet.sk/xxxmatko/archive/2013/01/11/ako-vytvori-nuget-server.aspx" target="_blank"&gt;NuGet server&lt;/a&gt;
			som pridal jednoduchý HttpHandler, ktorý sa postará o upload ikoniek a tieto uloží do adresára &lt;b&gt;Icons&lt;/b&gt; v rámci samotnej webovej aplikácie.
		&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;public&amp;nbsp;class&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;IconPublisher&amp;nbsp;:&amp;nbsp;&lt;span class="class"&gt;IHttpHandler&lt;/span&gt;&lt;br /&gt;
						{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;void&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;ProcessRequest(&lt;span class="class"&gt;HttpContext&lt;/span&gt;&amp;nbsp;context)&lt;br /&gt;
						&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="blue"&gt;string&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="#808080"&gt;&amp;quot;OK&amp;quot;&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;try&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Handle&amp;nbsp;only&amp;nbsp;one&amp;nbsp;icon&amp;nbsp;at&amp;nbsp;a&amp;nbsp;time&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;(context.Request.Files.Count&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;)&lt;br /&gt;
						&amp;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;throw&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;ArgumentException&lt;/span&gt;(&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;Only&amp;nbsp;one&amp;nbsp;icon&amp;nbsp;file&amp;nbsp;can&amp;nbsp;be&amp;nbsp;posted&amp;nbsp;at&amp;nbsp;a&amp;nbsp;time.&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;var&amp;nbsp;file&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;context.Request.Files[&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;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;Save&amp;nbsp;icon&amp;nbsp;on&amp;nbsp;the&amp;nbsp;server&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;file.SaveAs(context.Server.MapPath(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;~/Icons/&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;+&amp;nbsp;file.FileName))&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;catch&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;span class="class"&gt;Exception&lt;/span&gt;&amp;nbsp;ex)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Handle&amp;nbsp;exceptions&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;result&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;string&lt;/font&gt;&lt;font color="black"&gt;.Format(&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;Unable&amp;nbsp;to&amp;nbsp;push&amp;nbsp;icon&amp;nbsp;file&amp;nbsp;to&amp;nbsp;the&amp;nbsp;NuGet&amp;nbsp;server.&amp;nbsp;{0}&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;ex.Message)&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;var&amp;nbsp;httpEx&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;HttpException&lt;/span&gt;(&lt;/font&gt;&lt;font color="maroon"&gt;500&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;result)&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="darkgreen"&gt;//&amp;nbsp;Log&amp;nbsp;exceptions&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;span class="class"&gt;Elmah&lt;/span&gt;.&lt;span class="class"&gt;ErrorSignal&lt;/span&gt;.FromCurrentContext().Raise(httpEx)&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;finally&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;context.Response.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;&lt;/font&gt;&lt;font color="black"&gt;context.Response.ContentType&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;text/plain&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;&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;Notify&amp;nbsp;client&amp;nbsp;with&amp;nbsp;the&amp;nbsp;result&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;context.Response.Write(result)&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;context.ApplicationInstance.CompleteRequest()&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;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Implementácia HttpHandler-a pre upload ikoniek
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
	
		
&lt;p&gt;
			Upload ikonky v msbuild-e môžeme zrealizovať cez 
			&lt;a href="http://msdn.microsoft.com/en-us/library/dd722601.aspx" target="_blank"&gt;msbuild inline task&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="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;UsingTask&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;TaskName&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;UploadIconTask&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;TaskFactory&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;CodeTaskFactory&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssemblyFile&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll&amp;quot;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;ParameterGroup&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;lt;!--&amp;nbsp;Name&amp;nbsp;of&amp;nbsp;the&amp;nbsp;icon&amp;nbsp;file&amp;nbsp;--&amp;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;lt;&lt;/font&gt;&lt;font color="maroon"&gt;IconFileName&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;ParameterType&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;System.String&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Required&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;true&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;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;lt;!--&amp;nbsp;Url&amp;nbsp;address&amp;nbsp;of&amp;nbsp;the&amp;nbsp;NuGet&amp;nbsp;server&amp;nbsp;--&amp;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;lt;&lt;/font&gt;&lt;font color="maroon"&gt;NuGetServerUrl&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;ParameterType&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;System.String&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Required&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;true&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;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;lt;!--&amp;nbsp;Return&amp;nbsp;value&amp;nbsp;--&amp;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;lt;&lt;/font&gt;&lt;font color="maroon"&gt;UploadStatus&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;ParameterType&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;System.String&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Output&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;true&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;ParameterGroup&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Task&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Using&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Namespace&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;System&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Using&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Namespace&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;System.Net&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Code&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Type&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;Fragment&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Language&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;cs&amp;quot;&amp;gt;&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;lt;&lt;/font&gt;&lt;font color="maroon"&gt;![CDATA[&lt;br /&gt;
						&lt;font color="blue"&gt;using&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(var&amp;nbsp;client&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;WebClient&lt;/span&gt;())&lt;br /&gt;
						{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;response&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;client.UploadFile(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.NuGetServerUrl.TrimEnd(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#39;/&amp;#39;&lt;/font&gt;&lt;font color="black"&gt;)&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="#808080"&gt;&amp;quot;/IconPublisher.axd&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.IconFileName)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this&lt;/font&gt;&lt;font color="black"&gt;.UploadStatus&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;client.Encoding.GetString(response)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;}&lt;/font&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;gt;&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;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;Code&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;Task&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;UsingTask&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&lt;/font&gt;&lt;font color="black"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;
					MSBuild inline task pre upload ikonky
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
&lt;p&gt;
			Nakoľko umiestnenie ikonky je závislé od umiestnenia NuGet servera a toto umiestne je možné konfigurovať cez environment premennú,
			je treba ešte zabezpečiť, aby sa prípadná zmena tohto nastavenia premietla aj do nastavenia inkonky pre nuget balíček.
			Preto v NuGet manifeste nastavíme url adresu k ikonke na nasledovnú hodnotu:
		&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;package&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;metadata&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;iconUrl&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&lt;/font&gt;&lt;font color="black"&gt;$nugetserver$/icons/$safeprojectname$.png&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;iconUrl&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;metadata&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;package&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;
					Nastavenie url adresy pre ikonky balíčka
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
		
&lt;p&gt;
			V tomto nastavení sú použité dva replacement tokeny. Token &lt;a href="http://msdn.microsoft.com/en-us/library/eehb4faa%28v=vs.80%29.aspx" target="_blank"&gt;$safeprojectname$&lt;/a&gt;
			nahradí za nás Visual Studio pri použití project template-u. Výsledkom bude to, že názov súboru s ikonkou bude v tvare &lt;b&gt;&amp;lt;názov_projektu.png&amp;gt;&lt;/b&gt;.
			Druhý token &lt;b&gt;$nugetserver$&lt;/b&gt; je token, ktorý Visual Studio nepozná, ale my ho pred vytvorením balíčka môžeme v manifeste nahradiť za nami nakonfigurovanú hodnotu 
			uloženú v environment premennej &lt;b&gt;NUGET_SERVER&lt;/b&gt;. Pre nahradenie tokenu použijeme nasledovný task:
		&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;UsingTask&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;TaskName&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;TokenReplaceTask&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;TaskFactory&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;CodeTaskFactory&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssemblyFile&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll&amp;quot;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;ParameterGroup&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;lt;!--&amp;nbsp;Path&amp;nbsp;to&amp;nbsp;the&amp;nbsp;file&amp;nbsp;which&amp;nbsp;contains&amp;nbsp;token&amp;nbsp;--&amp;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;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Path&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;ParameterType&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;System.String&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Required&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;true&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;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;lt;!--&amp;nbsp;Token&amp;nbsp;name&amp;nbsp;--&amp;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;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Token&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;ParameterType&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;System.String&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Required&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;true&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;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;lt;!--&amp;nbsp;Token&amp;nbsp;replacement&amp;nbsp;--&amp;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;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Replacement&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;ParameterType&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;System.String&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Required&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;true&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;ParameterGroup&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Task&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Code&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Type&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;Fragment&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Language&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;cs&amp;quot;&amp;gt;&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;lt;&lt;/font&gt;&lt;font color="maroon"&gt;![CDATA[&lt;br /&gt;
&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;content&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;File&lt;/span&gt;.ReadAllText(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.Path)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
&lt;/font&gt;&lt;font color="black"&gt;content&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;content.Replace(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.Token,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.Replacement)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;File&lt;/span&gt;.WriteAllText(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;.Path,&amp;nbsp;content)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;/font&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;gt;&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;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;Code&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;Task&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;UsingTask&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;
					Task pre nahradenie custom tokenu
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
&lt;p&gt;
			Na začiatok &lt;b&gt;AfterBuild&lt;/b&gt; target-u treba ešte doplniť volania vyššie uvedených taskov:
		&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;lt;!--&amp;nbsp;Replace&amp;nbsp;$nugetserver$&amp;nbsp;token&amp;nbsp;--&amp;gt;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;TokenReplaceTask&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Path&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;$(OutputPath)\$(MSBuildProjectName).nuspec&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Token&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;$nugetserver$&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Replacement&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;$(NuGetServer)&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="darkgreen"&gt;&amp;lt;!--&amp;nbsp;Upload&amp;nbsp;icon&amp;nbsp;to&amp;nbsp;the&amp;nbsp;NuGet&amp;nbsp;server&amp;nbsp;--&amp;gt;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;UploadIconTask&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;IconFileName&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;$(OutputPath)\$safeprojectname$.png&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NuGetServerUrl&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;$(NuGetServer)&amp;quot;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Output&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;PropertyName&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;UploadStatusText&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;TaskParameter&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;UploadStatus&amp;quot;/&amp;gt;&lt;br /&gt;
						&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;UploadIconTask&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;Error&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Text&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;$(UploadStatusText)&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Condition&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;&amp;#39;$(UploadStatusText)&amp;#39;&amp;nbsp;!=&amp;nbsp;&amp;#39;OK&amp;#39;&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
						&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;Message&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Text&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;ICON&amp;nbsp;UPLOAD&amp;nbsp;STATUS:&amp;nbsp;$(UploadStatusText)&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;Importance&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;high&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;
					Volanie custom taskov
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
		
&lt;p&gt;
			No a ako teda používať tento template? Povedzme, že máme Solution s projektom typu &lt;b&gt;Class Library&lt;/b&gt; s názvom &lt;b&gt;MyLib&lt;/b&gt;:
		&lt;/p&gt;
		
&lt;ul class="list"&gt;
			
&lt;li&gt;
				Do Solution pridáme nový &lt;b&gt;NuGetPublisher&lt;/b&gt; projekt s názvom &lt;b&gt;MyLib.NuGet&lt;/b&gt;. Tento názov môže byť v podstate akýkoľvek.
			&lt;/li&gt;
			
&lt;li&gt;
				Pravým tlačítkom klikneme na Solution a vyberieme &lt;b&gt;Properties&lt;/b&gt;. V ľavej časti okna v strome vyberieme možnosť &lt;b&gt;Configuration&lt;/b&gt;
				a zrušíme &lt;b&gt;Build&lt;/b&gt; v každej jednej konfigurácii pre náš &lt;b&gt;.NuGet&lt;/b&gt; projekt. V tomto prípadne MyLib.NuGet. Nechceme totiž, aby sa balíček 
				vytváral a publikoval pri builde Solution.
			&lt;/li&gt;
			
&lt;li&gt;
				Keďže chceme aby náš balíček obsahoval aktuálnu verziu knižnice &lt;b&gt;MyLib&lt;/b&gt; pridáme referenciu na tento projekt.
			&lt;/li&gt;
			
&lt;li&gt;
				V novo vytvorenom projekte je kompletná štruktúra NuGet balíčka. Súčasťou sú aj transformácie pre &lt;b&gt;App.config.transform&lt;/b&gt; a
				&lt;b&gt;Web.config.transform&lt;/b&gt; v priečinku &lt;b&gt;content&lt;/b&gt;, skripty &lt;b&gt;init.ps1&lt;/b&gt;, &lt;b&gt;install.ps1&lt;/b&gt;, &lt;b&gt;uninstall.ps1&lt;/b&gt; v
				priečinku &lt;b&gt;tools&lt;/b&gt; a priečinok &lt;b&gt;lib&lt;/b&gt;. Ak tieto súbory nepotrebujeme (prípadne aj celé adresáre) môžeme ich buď
				rovno vymazať, alebo len nastaviť aby sa nekopírovali do výstupného adresára (pre prípad, že ich neskôr budeme chcieť použiť).
			&lt;/li&gt;
			
&lt;li&gt;
				Súčasťou projektu je aj súbor &lt;b&gt;readme.txt&lt;/b&gt; - tento môžeme tiež buď ponechať, prípadne celý odstrániť.
			&lt;/li&gt;
			
&lt;li&gt;
				Súbr &lt;b&gt;MyLib.NuGet.png&lt;/b&gt; je ikonka balíčka. Ak ju chcem zmeniť stačí nahradiť tento súbor iným png súborom. Dôležité je zachovať jeho názov.
			&lt;/li&gt;
			
&lt;li&gt;
				Manifest balíčka je v súbore &lt;b&gt;MyLib.NuGet.nuspec&lt;/b&gt;. Tento môžeme upraviť podľa potreby. Nesmieme len zmeniť url adresu k ikonke - pokiaľ však
				nechceme explicitne zadať inú url adresu k ikone.
			&lt;/li&gt;
			
&lt;li&gt;
				Potom už len stači prepnúť konfiguráciu na &lt;b&gt;Release&lt;/b&gt; a zbuildovať NuGet projekt.
			&lt;/li&gt;
		&lt;/ul&gt;
		
		
&lt;p&gt;
			Ak by sa niekto rozhodol používať tento project template, prípadne sa chce len inšpirovať, feel free, môže si ho stiahnuť 
			&lt;a&gt;tu&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=307371" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/HttpHandler/default.aspx">HttpHandler</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/NuGet/default.aspx">NuGet</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/VisualStudio/default.aspx">VisualStudio</category></item><item><title>Ako vytvoriť vlastný NuGet server</title><link>http://blog.aspnet.sk/xxxmatko/archive/2013/01/11/ako-vytvori-nuget-server.aspx</link><pubDate>Fri, 11 Jan 2013 16:06:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307349</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=307349</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2013/01/11/ako-vytvori-nuget-server.aspx#comments</comments><description>		&lt;p&gt;
			Pre tých čo ešte nepoznajú &lt;a href="http://nuget.org/" target="_blank"&gt;NuGet&lt;/a&gt;, prípadne ho spoznali len
			&amp;quot;včera&amp;quot; a rozmýšľajú nad tým, že ako by sa dal vytvoriť vlastný NuGet server som sa rozhodol spísať
			krátky návod ako tento server vytvoriť. Uvedený postup vychádza z postupu ktorý je uverejnený
			&lt;a href="http://docs.nuget.org/docs/creating-packages/hosting-your-own-nuget-feeds" target="_blank"&gt;tu&lt;/a&gt;,
			s tým, že som doplnil kroky ktoré som musel absolvovať, aby dané riešenie fungovalo úplne.
		&lt;/p&gt;
		&lt;p&gt;
			Najprv si musíme nainštalovať 
			&lt;a href="http://nuget.codeplex.com/releases" target="_blank"&gt;NuGet Visual Studio extension&lt;/a&gt;.
			Spustíme Visual Studio a vytvoríme nový projekt typu &lt;b&gt;ASP.NET Empty Web Application&lt;/b&gt;.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					
					&lt;img src="http://blog.aspnet.sk/blogs/xxxmatko/ako-vytvorit-vlastny-nuget-server/create-empty-app.png" alt="ASP.NET Empty Web Application" /&gt;
					
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Vytvorenie prázdnej webovej aplikácie
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Štruktúra projektu by mala vyzerať nasledovne:
		&lt;/p&gt;	
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					
					&lt;img src="http://blog.aspnet.sk/blogs/xxxmatko/ako-vytvorit-vlastny-nuget-server/empty-app.png" alt="Štruktúra projektu po vytvorení" /&gt;
					
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Štruktúra projektu po vytvorení
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Teraz treba v okne &lt;b&gt;Solution Explorer&lt;/b&gt; kliknúť pravým tlačítkom myšky na položku &lt;b&gt;References&lt;/b&gt;
			a vybrať z menu &lt;b&gt;Manage NuGet Packages...&lt;/b&gt;.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					
					&lt;img src="http://blog.aspnet.sk/blogs/xxxmatko/ako-vytvorit-vlastny-nuget-server/add-nuget-package.png" alt="Otvorenie dialógu pre inštalovanie NuGet balíčkov" /&gt;
					
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Otvorenie dialógu pre inštalovanie NuGet balíčkov
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			V novo otvorenom dialógu vyberieme záložku &lt;b&gt;Online&lt;/b&gt;, do vyhľadávacieho textbox-u
			zadáme &lt;b&gt;NuGet.Server&lt;/b&gt; a klikneme na tlačítko &lt;b&gt;Install&lt;/b&gt; čím nainštalujeme
			nájdený NuGet balíček.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					
					&lt;img src="http://blog.aspnet.sk/blogs/xxxmatko/ako-vytvorit-vlastny-nuget-server/install-nuget.png" alt="Nainštalovanie balíčka NuGet.Server" /&gt;
					
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Nainštalovanie balíčka NuGet.Server
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Po nainštalovaní balíčka máme vytvorenú web aplikáciu, ktorá predstavuje náš nový NuGet
			server.
		&lt;/p&gt;	
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					
					&lt;img src="http://blog.aspnet.sk/blogs/xxxmatko/ako-vytvorit-vlastny-nuget-server/nuget-server-application.png" alt="Štruktúra NuGet server aplikácie" /&gt;
					
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Štruktúra NuGet server aplikácie
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;	
		&lt;p&gt;
			Pred tým ako nasadíme aplikáciu do IIS, musíme ešte upraviť pár nastavení.
			Jedným z týchto nastavení je cesta k úložisku NuGet balíčkov.
			Toto nastavenie môžeme meniť vo &lt;b&gt;web.config&lt;/b&gt; súbore v časti &lt;b&gt;appSettings&lt;/b&gt;
			ako hodnotu pre kľúč &lt;b&gt;packagesPath&lt;/b&gt;. Defaultne je hodnota pre tento kľúč prázdna.
			Ak je zadaná prázdna hodnota ako cesta k úložisku balíčkov sa použíje &lt;b&gt;~/Packages&lt;/b&gt;,
			čiže adresár &lt;b&gt;Packages&lt;/b&gt; nachádzajúci sa v rámci samotnej aplikácie.
			Adresár sa však nemusí nachádzať v rámci aplikácie a môžeme definovať akékoľvek
			umiestnene na disku. Po nakopírovaní NuGet balíčkov do tohto adresára sú tieto
			balíčky okamžite prístupné na inštalovanie.
		&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;appSettings&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;add&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;key&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;packagesPath&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;value&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
						&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;appSettings&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;
					Konfigurácia umiestnenia balíčkov
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Ďalším dôležitým nastavením, ak chceme balíčky aj publikovať na náš NuGet server, je nastavenie
			&lt;b&gt;apiKey&lt;/b&gt;. Hodnota tohto nastavenia predstavuje heslo/kľúč, ktorý oprávňuje užívateľov
			publikovať (prípadne mazať) balíčky na serveri. Ak však nechceme aby bolo potrebné pri
			publikovaní balíčkov zadávanie &lt;b&gt;apiKey&lt;/b&gt;, môžeme nastaviť ďalší kľúč &lt;b&gt;requireApiKey&lt;/b&gt; 
			na hodnotu &lt;b&gt;false&lt;/b&gt;. Samotný &lt;b&gt;apiKey&lt;/b&gt; by sme však mali mať aj tak nastavený, pretože
			v originálnom návode, z ktorého som vychádzal aj ja, sa uvádza, že ak nenastavíme &lt;b&gt;apiKey&lt;/b&gt;,
			tak bude pblikovanie / mazanie balíčkov zakázané.
		&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;appSettings&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;add&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;key&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;requireApiKey&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;value&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;true&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;add&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;key&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;apiKey&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;value&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;999372af-8355-494b-ad02-828fa0773d1d&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
						&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;appSettings&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;
					Konfigurácia apiKey
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;	
		&lt;p&gt;
			V ďalšom kroku vypublikujeme webovú aplikáciu, aby sme ju mohli neskôr nasadiť do IIS.
			Napríklad do adresára &amp;quot;C:\inetpub\wwwroot\LocalNuGetServer&amp;quot;.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					
					&lt;img src="http://blog.aspnet.sk/blogs/xxxmatko/ako-vytvorit-vlastny-nuget-server/publish-app.png" alt="Vypublikovanie web aplikácie" /&gt;
					
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Vypublikovanie web aplikácie
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;	
		&lt;p&gt;
			V ďalšom kroku vytvoríme web site pre NuGet server. Zapneme IIS, a vytvoríme nový web site,
			tak, že klikneme pravým tlačítkom na &lt;b&gt;Add Web Site&lt;/b&gt;.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					
					&lt;img src="http://blog.aspnet.sk/blogs/xxxmatko/ako-vytvorit-vlastny-nuget-server/add-web-site.png" alt="Pridanie novej web site" /&gt;
					
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Pridanie novej web site
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			V novom okne vyberieme &lt;b&gt;Physical path&lt;/b&gt; ako umiestnenie kde sme vypublikovali
			web aplikáciu NuGet servera a nastavíme &lt;b&gt;Site name&lt;/b&gt; a port (napr. 19000).
			Ak sme zadali &lt;b&gt;Site name&lt;/b&gt; automaticky sa pre nás vytvoril aj nový aplikačný pool,
			s rovnomenným názvom. Pre tento pool treba ešte skontrolovať či využíva správnu
			verziu .NET Framework-u. Mne defaultne nastavil verziu &lt;b&gt;v2.0&lt;/b&gt; a musel som ju 
			prestaviť na &lt;b&gt;v4.0&lt;/b&gt;. Na zmenu aplikačného pool-u stači kliknúť v ľavej
			časti okna na položku &lt;b&gt;Application Pools&lt;/b&gt; vybrať náš pool, následne v pravej časti
			okna kliknúť na &lt;b&gt;Advanced Settings&lt;/b&gt; a zmeniť verziu .NET Framework-u.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					
					&lt;img src="http://blog.aspnet.sk/blogs/xxxmatko/ako-vytvorit-vlastny-nuget-server/add-web-site-2.png" alt="Nastavenie novej web site" /&gt;
					
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Nastavenie novej web site
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Ak teraz do prehliadača zadáme adresu &lt;b&gt;http://localhost:19000&lt;/b&gt;, v okne by sa mal
			objaviť nasledovný obsah:
		&lt;/p&gt;		
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					
					&lt;img src="http://blog.aspnet.sk/blogs/xxxmatko/ako-vytvorit-vlastny-nuget-server/nuget-app-started.png" alt="Okno bežiacej aplikácie" /&gt;
					
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Okno bežiacej aplikácie
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Aby sme mohli inštalovať balíčky umiestnené na našom NuGet serveri, musíme ešte pridať
			tento server ako zdroj NuGet balíčkov cez dialógové okno nastavení NuGet manažéra vo Visual Studiu a to tak,
			že nastavíme názov &lt;b&gt;Name&lt;/b&gt; a url adresu &lt;b&gt;Source&lt;/b&gt; nášho servera a klineme na tlačítko
			&lt;b&gt;Add&lt;/b&gt;.
			Okno s nastaveniami otvoríme tak, že klikneme na tlačítko &lt;b&gt;Settings&lt;/b&gt; ktoré je prístupné v okne pre pridávanie
			referencií na NuGet balíčky (viď. pridanie Nuget.Server balička).
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					
					&lt;img src="http://blog.aspnet.sk/blogs/xxxmatko/ako-vytvorit-vlastny-nuget-server/add-local-nuget-to-vs.png" alt="Pridanie referencie na vlastný NuGet server do Visual Studia" /&gt;
					
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Pridanie referencie na vlastný NuGet server do Visual Studia
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;h2&gt;Publikovanie balíčkov na NuGet server&lt;/h2&gt;
		&lt;p&gt;
			Ako som už v úvode spomenul, balíčky môžeme na server publikovať jednoducho tak, že
			ich nakopírujeme do nakonfigurovaného adresára. 
			Na ich publikovanie však môžeme využiť aj commandline tool 
			&lt;a href="http://nuget.codeplex.com/releases/view/58939" target="_blank"&gt;NuGet.exe Command Line bootstrapper&lt;/a&gt; 
			prípadne nástroj
			&lt;a href="http://nuget.codeplex.com/downloads/get/clickOnce/NuGetPackageExplorer.application" target="_blank"&gt;NuGet Package Explorer&lt;/a&gt;,
			v ktorom môžeme samotné balíčky pohodlne vytvárať aj editovať.
		&lt;/p&gt;
		&lt;p&gt;
			Pre publikovanie balíčka pomocou &lt;b&gt;NuGet Package Explorer&lt;/b&gt; nástroja, vyberieme z menu &lt;b&gt;FILE&lt;/b&gt; položku &lt;b&gt;Publish&lt;/b&gt;,
			nastavíme &lt;b&gt;Publish Url&lt;/b&gt; a náš &lt;b&gt;Publish key&lt;/b&gt; (publish key je hodnota &lt;b&gt;apiKey&lt;/b&gt;,
			ktorú sme predtým nakonfigurovali) a stlačíme tlačítko &lt;b&gt;Publish&lt;/b&gt;.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					
					&lt;img src="http://blog.aspnet.sk/blogs/xxxmatko/ako-vytvorit-vlastny-nuget-server/publish-dialog.png" alt="Publikovanie balíčka" /&gt;
					
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Publikovanie balíčka
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Ak všetko prebehlo správne, tak vo VisualStudiu by sme mali hneď vidieť náš vypublikovaný balíček:
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					
					&lt;img src="http://blog.aspnet.sk/blogs/xxxmatko/ako-vytvorit-vlastny-nuget-server/custom-nuget.png" alt="Zobrazenie vlastného balíčka" /&gt;
					
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Zobrazenie vlastného balíčka
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Mne sa na prvý krát však nepodarilo vypublikovať balíček a dostal som len hlášku
			&lt;b&gt;(405) Method not allowed&lt;/b&gt;. Táto chyba súvisí s tým, že máme nainštalovaný &lt;b&gt;WebDAV&lt;/b&gt;,
			ktorý defaulne spracúva PUT a DELETE http verbs a robí &amp;quot;zlotu&amp;quot;. Napriek tomu, že som ho mal v IIS
			disablovaný pre daný web site, stále som dostával spomínanú odpoveď.
			Riešením je doplniť web.config o nasledovné nastavenie:
		&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;configuration&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;system.webServer&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;lt;&lt;/font&gt;&lt;font color="maroon"&gt;modules&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;runAllManagedModulesForAllRequests&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;true&amp;quot;&amp;gt;&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;lt;!--&amp;nbsp;Odstránenie&amp;nbsp;WebDAV&amp;nbsp;modulu&amp;nbsp;--&amp;gt;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;remove&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;name&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;WebDAVModule&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;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;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;modules&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;system.webServer&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;configuration&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;
					Vypnutie WebDAV modulu
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;	
		&lt;p&gt;
			Po aplikovaní uvedeného nastavenia sa WebDAV modul vypne.
			Publish však stále nešiel. Namiesto hlášky (405) som teraz dostal error hlášku
			&lt;b&gt;(500) Internal Server Error.&lt;/b&gt;.
			Čo sa totiž neuvádza v originálnom návode, a je potrebné spraviť, je nastavenie
			práv pre zápis do adresára kde sa nachádzajú NuGet balíčky. 
			Urobíme to tak, že vyberieme daný adresár a klikneme naň pravým tlačítkom myšky,
			a z menu vyberieme položku &lt;b&gt;Edit Permissions&lt;/b&gt;.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					
					&lt;img src="http://blog.aspnet.sk/blogs/xxxmatko/ako-vytvorit-vlastny-nuget-server/select-edit-permissions.png" alt="Nastavenie práv zápisu" /&gt;
					
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Nastavenie práv zápisu
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			V záložke &lt;b&gt;Security&lt;/b&gt; potom nastavíme práva zápisu pre užívateľa
			&lt;b&gt;IIS_IUSRS&lt;/b&gt;.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					
					&lt;img src="http://blog.aspnet.sk/blogs/xxxmatko/ako-vytvorit-vlastny-nuget-server/permissions.png" alt="Nastavenie práv zápisu pre IIS_IUSRS" /&gt;
					
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Nastavenie práv zápisu pre IIS_IUSRS
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;		
		&lt;p&gt;
			Po aplikovaní daných dvoch nastavení už fungoval aj publish bez problémov (teda aspoň u mňa).
			Ak sa niekto pri inštalovaní NuGet servera stretol aj s inými problémami, prípadne
			má iné skúsenosti s inštaláciou, ktoré by stáli za zmienku, budem rád ak ich
			formou diskusie zazdiela svetu.
		&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=307349" width="1" height="1"&gt;</description><enclosure url="http://blog.aspnet.sk/xxxmatko/attachment/307349.ashx" length="97154" type="image/png" /><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/NuGet/default.aspx">NuGet</category></item><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>Generic GetHashCode metóda</title><link>http://blog.aspnet.sk/xxxmatko/archive/2012/08/20/generic-gethashcode-met-243-da.aspx</link><pubDate>Mon, 20 Aug 2012 11:23:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307270</guid><dc:creator>xxxmatko</dc:creator><slash:comments>19</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/xxxmatko/rsscomments.aspx?PostID=307270</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2012/08/20/generic-gethashcode-met-243-da.aspx#comments</comments><description>		&lt;p&gt;
			Obsahom dnešného môjho krátkeho príspevku bude metóda, na získanie hash kódu pre ľubovoľný objekt. Ak sa niekto teraz sám seba
			pýta, že prečo a načo, tak sa pokúsim veľmi stručne vysvetliť ako som k tejto metóde dospel.
		&lt;/p&gt;
		&lt;p&gt;
			Čo robí metóda &lt;b&gt;GetHashCode&lt;/b&gt; predpokladám, že asi každý vie. Ak by aj náhodou nie, tak sa používa na získanie
			číselnej hodnoty, ktorá identifikuje objekt počas porovnávania s inými objektami, viac
			&lt;a href="http://msdn.microsoft.com/en-us/library/system.object.gethashcode.aspx" target="_blank"&gt;tu&lt;/a&gt;.
			Ja som potreboval túto metódu override-núť pre objekt z toho dôvodu, že nie všetky vlastnosti objektu
			mali pre mňa význam pri porovnávaní inštancií daného objektu. Keď som toto ale musel robiť v poradí už asi po tretí krát,
			(vždy pre iný typ objektu) povedal som si: &amp;quot;A dosť!&amp;quot;.
		&lt;/p&gt;
		&lt;p&gt;
			Napadlo ma, že by bolo fajn, keby som pre metódu &lt;a href="http://msdn.microsoft.com/en-us/library/system.object.gethashcode.aspx" target="_blank"&gt;GetHashCode&lt;/a&gt;
			mohol definovať zoznam vlastností, ktoré má brať do úvahy pri získavaní hash kódu. Výsledkom mojej snahy je nasledovná extesion metóda:
		&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;public&amp;nbsp;static&amp;nbsp;class&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;ObjectExtensions&lt;/span&gt;&lt;br /&gt;
						{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;int&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;GetHashCode&amp;lt;T&amp;gt;(&lt;/font&gt;&lt;font color="blue"&gt;this&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;T&amp;nbsp;@this,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;params&amp;nbsp;string&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;properties)&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;where&amp;nbsp;T&amp;nbsp;:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;class&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Skontrolujem&amp;nbsp;ci&amp;nbsp;objekt&amp;nbsp;nie&amp;nbsp;je&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="blue"&gt;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(ReferenceEquals(@this,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;null&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;&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="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;&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;Ak&amp;nbsp;neboli&amp;nbsp;vymenovane&amp;nbsp;vlastnosti&amp;nbsp;tak&amp;nbsp;pouzijem&amp;nbsp;original&amp;nbsp;implementaciu&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;((properties&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;null&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;||&amp;nbsp;(properties.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;))&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;&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;@this.GetHashCode()&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;Ziskam&amp;nbsp;zoznam&amp;nbsp;vlastnosti&amp;nbsp;objektu&amp;nbsp;daneho&amp;nbsp;typu&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;var&amp;nbsp;propInfos&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;typeof&lt;/font&gt;&lt;font color="black"&gt;(T).GetProperties(&lt;span class="class"&gt;BindingFlags&lt;/span&gt;.Public&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;&lt;span class="class"&gt;BindingFlags&lt;/span&gt;.Instance&amp;nbsp;|&amp;nbsp;&lt;span class="class"&gt;BindingFlags&lt;/span&gt;.NonPublic)&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;Tu&amp;nbsp;bude&amp;nbsp;vysledny&amp;nbsp;hash&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;int&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;hash&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;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;span class="class"&gt;PropertyInfo&lt;/span&gt;&amp;nbsp;pInfo&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;in&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;propInfos)&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;&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;vlasnosti&amp;nbsp;v&amp;nbsp;zozname&amp;nbsp;vlastnosti&amp;nbsp;idem&amp;nbsp;na&amp;nbsp;dalsiu&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;span class="class"&gt;Array&lt;/span&gt;.IndexOf(properties,&amp;nbsp;pInfo.Name)&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;)&lt;br /&gt;
						&amp;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;continue;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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="darkgreen"&gt;//&amp;nbsp;Ziskam&amp;nbsp;hodnotu&amp;nbsp;vlastnosti&amp;nbsp;pre&amp;nbsp;instanciu&amp;nbsp;objektu&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;object&amp;nbsp;value&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;pInfo.GetValue(@this,&amp;nbsp;&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;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;je&amp;nbsp;hodnota&amp;nbsp;null,&amp;nbsp;tak&amp;nbsp;ju&amp;nbsp;nebudem&amp;nbsp;uvazovat&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;(ReferenceEquals(&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="blue"&gt;null&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;continue;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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="darkgreen"&gt;//&amp;nbsp;Ak&amp;nbsp;je&amp;nbsp;vlastnost&amp;nbsp;typu&amp;nbsp;string&amp;nbsp;a&amp;nbsp;ten&amp;nbsp;je&amp;nbsp;empty&amp;nbsp;neuvazujem&amp;nbsp;ani&amp;nbsp;ten&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;((pInfo.PropertyType&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;typeof&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;string&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;amp;&amp;amp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;string&lt;/font&gt;&lt;font color="black"&gt;.IsNullOrEmpty((&lt;/font&gt;&lt;font color="blue"&gt;string&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;value&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;continue;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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="darkgreen"&gt;//&amp;nbsp;Upravim&amp;nbsp;vysledny&amp;nbsp;hash&amp;nbsp;kod&amp;nbsp;pre&amp;nbsp;hodnotu&amp;nbsp;aktualnej&amp;nbsp;vlastnosti&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;hash&amp;nbsp;^&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;value&lt;/font&gt;&lt;font color="black"&gt;.GetHashCode()&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;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;hash&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;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Extension metóda GetHashCode
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			S vyššie uvedenou metódou potom môžem získať hash kód nasledovne:
		&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;public&amp;nbsp;class&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;MyObject&lt;/span&gt;&amp;nbsp;:&amp;nbsp;&lt;span class="class"&gt;IEquatable&lt;/span&gt;&amp;lt;&lt;span class="class"&gt;MyObject&lt;/span&gt;&amp;gt;&lt;br /&gt;
						{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Name&lt;br /&gt;
						&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="blue"&gt;get;set;&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;public&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;DateTime&lt;/span&gt;&amp;nbsp;Created&lt;br /&gt;
						&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="blue"&gt;get;set;&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;public&amp;nbsp;long&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Id&lt;br /&gt;
						&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="blue"&gt;get;set;&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;public&amp;nbsp;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Text&lt;br /&gt;
						&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="blue"&gt;get;set;&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;...&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;bool&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Equals(&lt;span class="class"&gt;MyObject&lt;/span&gt;&amp;nbsp;other)&lt;br /&gt;
						&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;...&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;public&amp;nbsp;override&amp;nbsp;int&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;GetHashCode()&lt;br /&gt;
						&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;Hash&amp;nbsp;kod&amp;nbsp;pre&amp;nbsp;objekt&amp;nbsp;len&amp;nbsp;z&amp;nbsp;pozadovanych&amp;nbsp;vlastnosti&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;this&lt;/font&gt;&lt;font color="black"&gt;.GetHashCode(&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="#808080"&gt;&amp;quot;Name&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Text&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;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Použitie extension metódy GetHashCode
				&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=307270" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/C_2300_/default.aspx">C#</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>Synchronized Cache Provider</title><link>http://blog.aspnet.sk/xxxmatko/archive/2012/03/13/synchronized-cache-provider.aspx</link><pubDate>Tue, 13 Mar 2012 11:12:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307143</guid><dc:creator>xxxmatko</dc:creator><slash:comments>26</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/xxxmatko/rsscomments.aspx?PostID=307143</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2012/03/13/synchronized-cache-provider.aspx#comments</comments><description>		&lt;p&gt;
			Klasický obraz. Naša aplikácia často načítava rovnaké sady údajov z databázy, čo má za následok pomalšie reakcie aplikácie a zvýšenú záťaž na databázovy server.
			Prečo neuložíme načítané údaje z databázy do &lt;b&gt;Cache&lt;/b&gt; a potom nech sa už načítavajú odtiaľ. To aplikáciu zrýchli a navyše odľahčí databázu.
			Ak príde potom request každú sekendu, tak za minútu ušetríme 59 ďalších dopytov do databázy. Znie to pekne, no nie na darmo sa aj 
			&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc500561.aspx#S7" target="_blank"&gt;tu&lt;/a&gt; píše: &lt;i&gt;&amp;quot;Caching does add complexity, ... make sure you&amp;#39;re really going to benefit from the complexity&amp;quot;&lt;/i&gt;.
		&lt;/p&gt;
		&lt;p&gt;
			Nech teda príde request každú jednu sekendu. Pri spracovaní requestu sa pozrieme, či už sú údaje uložené v Cache, ak nie tak ich načítame a uložime do Cache.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;a class="" title="nacitanie-dat-z-databazy-a-ulozenie-do-cache" name="nacitanie-dat-z-databazy-a-ulozenie-do-cache"&gt;&lt;/a&gt;
					&lt;div class="code"&gt;
						&lt;font color="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;Cache&lt;/span&gt;.Read&amp;lt;&lt;span class="class"&gt;SomeData&lt;/span&gt;&amp;gt;(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;someKey&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;key&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&lt;/font&gt;&lt;font color="black"&gt;&amp;gt;&lt;br /&gt;
						{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="class"&gt;SomeData&lt;/span&gt;&amp;nbsp;result&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;SelectFromDb()&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;&lt;span class="class"&gt;Cache&lt;/span&gt;.Write(key,&amp;nbsp;result,&amp;nbsp;&lt;span class="class"&gt;DateTime&lt;/span&gt;.UtcNow.AddSeconds(&lt;/font&gt;&lt;font color="maroon"&gt;60&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;/font&gt;					
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Načítanie dát z databázy a uloženie do Cache (&lt;a href="http://petersirka.sk/development/csharp-2-funkcie-na-ktore-somskutocne-pysny/" target="_blank"&gt;vďaka za inšpiráciu&lt;/a&gt;)
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Ak však načítanie dát z databázy bude trvať dlhšie ako jednu sekundu, napríklad rovných desať sekúnd, tak potom prvý request nestihne prijať výsledok z databázy a zapísať ho do &lt;b&gt;Cache&lt;/b&gt; pred príchodom ďalšieho requestu, atď.
			Ak zoberieme do úvahy ešte nejaký ten čas potrebný na spracovanie requestu, tak až dvanásty request v poradí načíta údaje z &lt;b&gt;Cache&lt;/b&gt;. Čiže namiesto 59 requestov do databázy ušetríme v skutočnosti &amp;quot;len&amp;quot;
			49 a prvých 11 requestov bude stále trvať minimálne 10 sekúnd. Je to lepšie ako v prvom prípade, ale aj toto sa dá stále zlepšiť.
		&lt;/p&gt;
		&lt;p&gt;
			Ak synchronizujeme prístup ku &lt;b&gt;Cache&lt;/b&gt;, docielime, že prvý request uzamkne prístup, načíta dáta z databázy a uvoľní zámok, následne ďalšie requesty už nebudú načítavať dáta z databázy ale priamo z 
			&lt;b&gt;Cache&lt;/b&gt;, čím sa ušetrí ďalší čas, potrebný pre spracovanie daného requestu. Dĺžka spracovania prvého requestu bude cca 10 sekúnd. Druhý príde o sekundu neskôr a bude čakať, pokiaľ prvý request neuvoľní
			zámku, čo nastane o 9 sekúnd, tretí bude čakať už len 8 sekúnd atď.
		&lt;/p&gt;
		&lt;p&gt;
			Aj tento spôsob má však svoje trhliny. Nech prídu naraz dva requesty. Prvý bude chcieť načítať dáta pre kľúč &lt;i&gt;&amp;quot;someKey&amp;quot;&lt;/i&gt; a druhý pre kľúč &lt;i&gt;&amp;quot;someOtherKey&amp;quot;&lt;/i&gt;.
			Pre žiaden z týchto kľúčov sa zatiaľ nenachádza hodnota uložená v &lt;b&gt;Cache&lt;/b&gt;, takže oba requesty ju budú chcieť načítať z databázy. Načítanie pre prvý kľúč nech trvá realtívne dlhý čas (napr. 10 sekúnd) a
			pre druhý relatívne krátky čas (napr. 1 sekundu). Ak prístup ku &lt;b&gt;Cache&lt;/b&gt; uzamkne ako prvý request pre kľúč &lt;i&gt;&amp;quot;someKey&amp;quot;&lt;/i&gt;, tak druhý request bude musieť zbytočne čakať na zámke celý čas potrebný pre načítanie
			dát z databázy pre prvý request.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;a class="" title="cache-manager-pre-synchronizovany-pristup-ku-cache" name="cache-manager-pre-synchronizovany-pristup-ku-cache"&gt;&lt;/a&gt;
					&lt;div class="code"&gt;
						&lt;font color="darkgreen"&gt;//&amp;nbsp;Cache&amp;nbsp;Manager&amp;nbsp;class&amp;nbsp;which&amp;nbsp;uses&amp;nbsp;configured&amp;nbsp;Cache&amp;nbsp;Provider&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;class&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Cache&lt;br /&gt;
						{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;#region&lt;/font&gt;&lt;font color="black"&gt;&amp;nbsp;[&amp;nbsp;Variables&amp;nbsp;]&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;private&amp;nbsp;static&amp;nbsp;readonly&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;ReaderWriterLockSlim&amp;nbsp;&lt;/span&gt;;_cacheLock&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;static&amp;nbsp;readonly&amp;nbsp;object&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;_lock&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;static&amp;nbsp;bool&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;_initialized&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;static&amp;nbsp;bool&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;_initializedDefaultProvider&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;static&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;Exception&lt;/span&gt;&amp;nbsp;_initializeException&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;static&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;TimeSpan&lt;/span&gt;&amp;nbsp;_duration&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;static&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;CacheProviderCollection&lt;/span&gt;&amp;nbsp;_providers&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;static&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;CacheProvider&lt;/span&gt;&amp;nbsp;_provider&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#endregion&lt;br /&gt;
						&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#region&lt;/font&gt;&lt;font color="black"&gt;&amp;nbsp;[&amp;nbsp;Constructors&amp;nbsp;]&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;static&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Cache()&lt;br /&gt;
						&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;_lock&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;object&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;_cacheLock&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;LocksHelper&lt;/span&gt;.GetLockInstance(&lt;span class="class"&gt;LockRecursionPolicy&lt;/span&gt;.NoRecursion)&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;_initialized&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;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;_initializedDefaultProvider&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;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;_initializeException&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;_duration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;TimeSpan&lt;/span&gt;(&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="maroon"&gt;20&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;;&amp;nbsp;&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;#endregion&lt;br /&gt;
						&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#region&lt;/font&gt;&lt;font color="black"&gt;&amp;nbsp;[&amp;nbsp;Properties&amp;nbsp;]&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;CacheProviderCollection&lt;/span&gt;&amp;nbsp;Providers&lt;br /&gt;
						&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="blue"&gt;get&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Initialize()&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;_providers&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;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;CacheProvider&lt;/span&gt;&amp;nbsp;Provider&lt;br /&gt;
						&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="blue"&gt;get&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Initialize()&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;(_provider&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;null&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;&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;&lt;span class="class"&gt;InvalidOperationException&lt;/span&gt;(&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;Defined&amp;nbsp;cache&amp;nbsp;provider&amp;nbsp;was&amp;nbsp;not&amp;nbsp;found.&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;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;_provider&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;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;int&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Count&lt;br /&gt;
						&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="blue"&gt;get&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;using&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;&lt;span class="class"&gt;ReadOnlyLock&lt;/span&gt;(_cacheLock))&lt;br /&gt;
						&amp;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;Provider.Count&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;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;ICollection&lt;/span&gt;&amp;lt;&lt;/font&gt;&lt;font color="blue"&gt;string&lt;/font&gt;&lt;font color="black"&gt;&amp;gt;&amp;nbsp;Keys&lt;br /&gt;
						&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="blue"&gt;get&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;using&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;&lt;span class="class"&gt;ReadOnlyLock&lt;/span&gt;(_cacheLock))&lt;br /&gt;
						&amp;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;Provider.Keys&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;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;#endregion&lt;br /&gt;
						&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#region&lt;/font&gt;&lt;font color="black"&gt;&amp;nbsp;[&amp;nbsp;Private&amp;nbsp;Methods&amp;nbsp;]&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Initializes&amp;nbsp;cache&amp;nbsp;manager.&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;private&amp;nbsp;static&amp;nbsp;void&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Initialize()&lt;br /&gt;
						&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;...&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;Initializes&amp;nbsp;cache&amp;nbsp;according&amp;nbsp;to&amp;nbsp;the&amp;nbsp;input&amp;nbsp;cache&amp;nbsp;config.&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;private&amp;nbsp;static&amp;nbsp;bool&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;InitializeSettings(&lt;span class="class"&gt;CacheConfigSection&lt;/span&gt;&amp;nbsp;config)&lt;br /&gt;
						&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;...&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;Initializes&amp;nbsp;default&amp;nbsp;cache&amp;nbsp;provider&amp;nbsp;according&amp;nbsp;to&amp;nbsp;the&amp;nbsp;input&amp;nbsp;cache&amp;nbsp;config.&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;private&amp;nbsp;static&amp;nbsp;bool&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;InitializeDefaultProvider(&lt;span class="class"&gt;CacheConfigSection&lt;/span&gt;&amp;nbsp;config)&lt;br /&gt;
						&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;...&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;#endregion&lt;br /&gt;
						&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#region&lt;/font&gt;&lt;font color="black"&gt;&amp;nbsp;[&amp;nbsp;Public&amp;nbsp;Methods&amp;nbsp;]&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Clears&amp;nbsp;the&amp;nbsp;cache.&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;void&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Clear()&lt;br /&gt;
						&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="blue"&gt;using&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;&lt;span class="class"&gt;WriteLock&lt;/span&gt;(_cacheLock))&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Provider.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;&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Checks&amp;nbsp;whether&amp;nbsp;the&amp;nbsp;cache&amp;nbsp;contains&amp;nbsp;an&amp;nbsp;item&amp;nbsp;with&amp;nbsp;the&amp;nbsp;spsecified&amp;nbsp;key.&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;bool&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;ContainsKey(&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;key)&lt;br /&gt;
						&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="blue"&gt;using&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;&lt;span class="class"&gt;ReadOnlyLock&lt;/span&gt;(_cacheLock))&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;&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;Provider.Contains(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;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Removes&amp;nbsp;the&amp;nbsp;specified&amp;nbsp;item&amp;nbsp;from&amp;nbsp;the&amp;nbsp;application&amp;#39;s&amp;nbsp;Cache&amp;nbsp;object.&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;object&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Remove(&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;key)&lt;br /&gt;
						&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="blue"&gt;using&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;&lt;span class="class"&gt;ReadLock&lt;/span&gt;(_cacheLock))&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;&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;(Provider.Contains(key))&lt;br /&gt;
						&amp;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;using&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;&lt;span class="class"&gt;WriteLock&lt;/span&gt;(_cacheLock))&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;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;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Provider.Remove(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;&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;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;}&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Removes&amp;nbsp;the&amp;nbsp;specified&amp;nbsp;item&amp;nbsp;from&amp;nbsp;the&amp;nbsp;application&amp;#39;s&amp;nbsp;Cache&amp;nbsp;object.&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;T&amp;nbsp;Remove&amp;lt;T&amp;gt;(&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;key)&lt;br /&gt;
						&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="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(T)Remove(key)&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;Retrieves&amp;nbsp;the&amp;nbsp;specified&amp;nbsp;item&amp;nbsp;from&amp;nbsp;the&amp;nbsp;Cache&amp;nbsp;object.&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;object&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Read(&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;key)&lt;br /&gt;
						&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="blue"&gt;using&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;&lt;span class="class"&gt;ReadOnlyLock&lt;/span&gt;(_cacheLock))&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;&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;Provider.Read(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;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Retrieves&amp;nbsp;the&amp;nbsp;specified&amp;nbsp;item&amp;nbsp;from&amp;nbsp;the&amp;nbsp;Cache&amp;nbsp;object&amp;nbsp;and&amp;nbsp;support&amp;nbsp;method&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;for&amp;nbsp;its&amp;nbsp;creation&amp;nbsp;if&amp;nbsp;it&amp;nbsp;is&amp;nbsp;not&amp;nbsp;presented&amp;nbsp;in&amp;nbsp;the&amp;nbsp;cache.&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;T&amp;nbsp;Read&amp;lt;T&amp;gt;(&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;key,&amp;nbsp;Func&amp;lt;&lt;/font&gt;&lt;font color="blue"&gt;string&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;T&amp;gt;&amp;nbsp;onNull&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;using&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;&lt;span class="class"&gt;ReadLock&lt;/span&gt;(_cacheLock))&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;object&amp;nbsp;value&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Provider.Read(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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;((&lt;/font&gt;&lt;font color="blue"&gt;value&amp;nbsp;==&amp;nbsp;null&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;(onNull&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;value&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;onNull(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;&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;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;value&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;!&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;?&amp;nbsp;(T)&lt;/font&gt;&lt;font color="blue"&gt;value&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;default&lt;/font&gt;&lt;font color="black"&gt;(T)&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;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Inserts&amp;nbsp;an&amp;nbsp;object&amp;nbsp;into&amp;nbsp;the&amp;nbsp;Cache&amp;nbsp;with&amp;nbsp;dependencies&amp;nbsp;and&amp;nbsp;expiration&amp;nbsp;policies.&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;object&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Write(&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;key,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;object&amp;nbsp;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;&lt;span class="class"&gt;DateTime&lt;/span&gt;?&amp;nbsp;absoluteExpiration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;span class="class"&gt;TimeSpan&lt;/span&gt;?&amp;nbsp;slidingExpiration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;using&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;&lt;span class="class"&gt;WriteLock&lt;/span&gt;(_cacheLock))&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;&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;(Provider.Contains(key))&lt;br /&gt;
						&amp;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;Provider.Remove(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;&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;(absoluteExpiration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;null&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;absoluteExpiration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;DateTime&lt;/span&gt;.UtcNow.AddMinutes(&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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.TotalMinutes)&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&lt;/font&gt;&lt;font color="black"&gt;(slidingExpiration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;null&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;slidingExpiration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;TimeSpan&lt;/span&gt;.Zero&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;Provider.Write(key,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;value&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;absoluteExpiration.Value,&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;slidingExpiration.Value)&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;value;&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;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Inserts&amp;nbsp;an&amp;nbsp;object&amp;nbsp;into&amp;nbsp;the&amp;nbsp;Cache&amp;nbsp;with&amp;nbsp;dependencies&amp;nbsp;and&amp;nbsp;expiration&amp;nbsp;policies.&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;T&amp;nbsp;Write&amp;lt;T&amp;gt;(&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;key,&amp;nbsp;T&amp;nbsp;&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;&lt;span class="class"&gt;DateTime&lt;/span&gt;?&amp;nbsp;absoluteExpiration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;span class="class"&gt;TimeSpan&lt;/span&gt;?&amp;nbsp;slidingExpiration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;using&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;&lt;span class="class"&gt;WriteLock&lt;/span&gt;(_cacheLock))&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;&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;(Provider.Contains(key))&lt;br /&gt;
						&amp;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;Provider.Remove(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;&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;(absoluteExpiration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;null&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;absoluteExpiration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;DateTime&lt;/span&gt;.UtcNow.AddMinutes(&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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.TotalMinutes)&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;(slidingExpiration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;null&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;slidingExpiration&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;TimeSpan&lt;/span&gt;.Zero&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;Provider.Write(key,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;value&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;absoluteExpiration.Value,&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;slidingExpiration.Value)&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)&lt;/font&gt;&lt;font color="blue"&gt;value;&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;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;#endregion&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;
					Cache Manager pre synchronizovaný prístup ku Cache
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;	
		&lt;p&gt;
			Ak nechceme, aby spomínaný druhý request musel zbytočne čakať na zámke celý čas potrebný pre načítanie dát z databázy pre prvý request, môžeme na základe implementácie 
			&lt;a href="http://blog.aspnet.sk/controlpanel/blogs/posteditor.aspx?SelectedNavItem=NewPost#cache-manager-pre-synchronizovany-pristup-ku-cache"&gt;Cache manager-a&lt;/a&gt; upraviť načítavanie údajov tak, ako je to uvedené v druhom 
			&lt;a href="http://blog.aspnet.sk/controlpanel/blogs/posteditor.aspx?SelectedNavItem=NewPost#nacitanie-dat-z-databazy-a-ulozenie-do-cache-2"&gt;príklade&lt;/a&gt;. Tým sa však opäť dostávame k problému číslo jedna - viacero paralelných načítaní tých istých dát.
		&lt;/p&gt;
		&lt;table style="width:100%;"&gt;
			&lt;tr&gt;
				&lt;td&gt;
					&lt;a class="" title="nacitanie-dat-z-databazy-a-ulozenie-do-cache-2" name="nacitanie-dat-z-databazy-a-ulozenie-do-cache-2"&gt;&lt;/a&gt;
					&lt;div class="code"&gt;
						&lt;font color="black"&gt;var&amp;nbsp;cacheVal&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;Cache&lt;/span&gt;.Read&amp;lt;&lt;span class="class"&gt;SomeData&lt;/span&gt;&amp;gt;(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;someKey&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						if&lt;/font&gt;&lt;font color="black"&gt;(cacheVal.Equals(&lt;span class="class"&gt;SomeData&lt;/span&gt;.Empty))&lt;br /&gt;
						{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cacheVal&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;SelectFromDb()&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;&lt;span class="class"&gt;Cache&lt;/span&gt;.Write(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;someKey&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;cacheVal,&amp;nbsp;&lt;span class="class"&gt;DateTime&lt;/span&gt;.UtcNow.AddSeconds(&lt;/font&gt;&lt;font color="maroon"&gt;60&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;
					Načítanie dát z databázy a uloženie do Cache 2
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;		
		&lt;p&gt;
			V uvedených &lt;a href="http://blog.aspnet.sk/controlpanel/blogs/posteditor.aspx?SelectedNavItem=NewPost#nacitanie-dat-z-databazy-a-ulozenie-do-cache"&gt;príkladoch&lt;/a&gt; sa pre načítanie údajov z &lt;b&gt;Cache&lt;/b&gt; využíva &lt;a href="http://blog.aspnet.sk/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=37&amp;amp;postid=307143#cache-manager-pre-synchronizovany-pristup-ku-cache"&gt;Cache manager&lt;/a&gt;
			implementovaný na základe &lt;a href="http://blog.joubin.ca/2008/10/provider-model-design-pattern.html" target="_blank"&gt;Provider model design pattern&lt;/a&gt;-u,
			čo umožňuje využiť na prácu s &lt;b&gt;Cache&lt;/b&gt; ľuboľného providera. Na synchronizáciu bola použitá trieda &lt;b&gt;ReaderWriterLockSlim&lt;/b&gt; spôsobom, ktorý je bližšie popísaný 
			&lt;a href="http://devplanet.com/blogs/brianr/archive/2008/09/29/thread-safe-dictionary-update.aspx" target="_blank"&gt;tu&lt;/a&gt;.
		&lt;/p&gt;
		&lt;p&gt;
			Myslím, že sa nedá jednoznačne povedať, že ak použijem &lt;b&gt;Cache&lt;/b&gt;, tak všetko bude zrazu zázračne rýchlo fungovať. A už vôbec nechcem tvrdiť, že najlepšie je použiť synchronizovanú &lt;b&gt;Cache&lt;/b&gt;, nakoľko
			tá prináša ešte väčšiu mieru komplexnosti. Najprv treba dobre zanalyzovať danú situáciu a zvážiť, aký spôsob použitia &lt;b&gt;Cache&lt;/b&gt;, a či vôbec, bude najvýhodnejší.
		&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=307143" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/synchronization/default.aspx">synchronization</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/lock/default.aspx">lock</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/cache/default.aspx">cache</category></item><item><title>Ako dekódovať parametre WebResource.axd</title><link>http://blog.aspnet.sk/xxxmatko/archive/2012/03/07/ako-dek-243-dova-parametre-webresource-axd.aspx</link><pubDate>Wed, 07 Mar 2012 09:25:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307139</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=307139</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2012/03/07/ako-dek-243-dova-parametre-webresource-axd.aspx#comments</comments><description>		&lt;p&gt;
			Keď som naposledy pozeral logy z jednej webovej aplikácie, našiel som tam niekoľko zalogovaných výnimiek typu &lt;b&gt;System.Web.HttpException (0x80004005): This is an invalid webresource request&lt;/b&gt;, no a
			samozrejme url adresa mala tvar &amp;#39;http://localhost:52537/WebResource.axd?d=OnZ0ZKO8G-ShpiVSqxXhboYJFcDQ82xG0pBI7kczDAPkL0g3SuGYm0JoMUL8LF8trZ9NVkaa71WbfQraAN2i0CbvOUX8m4vHoP_haITnn8hPhs5H8SljR5k4llviy4QoLvzWvyDrnM7NJCsXC6W6oNGW26D73FFlOsdldHUEF8c1&amp;amp;t=634656035472024300&amp;#39;.
			Z toho som samozrejme na prvý pohľad nič úžasné nezistil. To ma viedlo k tomu, že by bolo lepšie, keby do logu išla aj url adresa pre webresource s dekódovanými url parametrami, pre ľahšiu identifikáciu requestu.
		&lt;/p&gt;
		&lt;p&gt;
			Pomocou dômyselných nástrojov nebolo ťažké zistiť, že na dešifrovanie parametrov &lt;b&gt;AssemblyResourceLoader&lt;/b&gt; využíva statickú metódú &lt;b&gt;DecryptString&lt;/b&gt; objektu &lt;b&gt;System.Web.UI.Page&lt;/b&gt;, ktorá interne využíva metódu 
			&lt;b&gt;MachineKeySection.EncryptOrDecryptData&lt;/b&gt;. Táto metóda je síce označená ako &lt;b&gt;internal&lt;/b&gt;, ale to predsa nie je problém, veď máme &lt;b&gt;Reflection&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="blue"&gt;public&amp;nbsp;static&amp;nbsp;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;EncryptOrDecryptData(&lt;/font&gt;&lt;font color="blue"&gt;bool&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;encrypt,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;data,&amp;nbsp;&lt;/font&gt;
						&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="blue"&gt;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;modifier,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;int&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;start,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;int&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length)&lt;br /&gt;
						{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="class"&gt;MethodInfo&lt;/span&gt;&amp;nbsp;encryptOrDecryptStringMethod&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;var&amp;nbsp;machineKeySection&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;typeof&lt;/font&gt;&lt;font color="black"&gt;(&lt;span class="class"&gt;MachineKeySection&lt;/span&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;var&amp;nbsp;paramTypes&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;bool&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;typeof&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;byte&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;typeof&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;byte&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;typeof&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;int&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;typeof&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;int&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;encryptOrDecryptStringMethod&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;machineKeySection.GetMethod(&lt;/font&gt;&lt;font style="font-size:10px;" color="#808080"&gt;&amp;quot;EncryptOrDecryptData&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;span class="class"&gt;BindingFlags&lt;/span&gt;.Static&amp;nbsp;|&amp;nbsp;&lt;span class="class"&gt;BindingFlags&lt;/span&gt;.NonPublic,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;null&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;paramTypes,&amp;nbsp;&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;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;byte&lt;/font&gt;&lt;font color="black"&gt;[])encryptOrDecryptStringMethod.Invoke(&lt;/font&gt;&lt;font color="blue"&gt;null&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;new&amp;nbsp;object&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;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;encrypt,&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;data,&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;modifier,&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;start,&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;length&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;;&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;
					Implementovanie metódy pre šifrovanie a dešifrovanie dát s využítím Reflection
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Táto implementácia má však jeden háčik. Môže sa totiž stať, že nebude môžné získať handle na danú metódu pomocou &lt;b&gt;Reflection&lt;/b&gt; z rôznych dôvodov. Prístup kú šifrovacím metódam môžeme získať ale
			aj tým, že implementujeme taký kvázi &lt;b&gt;MembershipProvider&lt;/b&gt;, v rámci ktorého môžeme využiť metódy &lt;b&gt;EncryptPassword&lt;/b&gt; a &lt;b&gt;DecryptPassword&lt;/b&gt;, ktoré na šifrovanie a dešifrovanie používajú tiež 
			&lt;b&gt;MachineKey&lt;/b&gt; a teda ich môžeme použiť na dešifrovanie url parametrov bez nutnosti použitia &lt;b&gt;Reflection&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="blue"&gt;public&amp;nbsp;class&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;EmptyMembership&lt;/span&gt;&amp;nbsp;:&amp;nbsp;&lt;span class="class"&gt;MembershipProvider&lt;/span&gt;&lt;br /&gt;
						{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;private&amp;nbsp;static&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;EmptyMembership&lt;/span&gt;&amp;nbsp;_instance&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;EmptyMembership()&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;EmptyMembership&lt;/span&gt;&amp;nbsp;Instance&lt;br /&gt;
						&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="blue"&gt;get&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;&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;_instance&amp;nbsp;??&amp;nbsp;(_instance&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;&lt;span class="class"&gt;EmptyMembership&lt;/span&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;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;DecryptData(&lt;/font&gt;&lt;font color="blue"&gt;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;data)&lt;br /&gt;
						&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="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;DecryptPassword(data)&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;public&amp;nbsp;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;EncryptData(&lt;/font&gt;&lt;font color="blue"&gt;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;data)&lt;br /&gt;
						&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="blue"&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;EncryptPassword(data)&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;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Prázdny MemberShipProvider (implementácia ostatných metód a vlastností je vynechaná)
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;		
		&lt;p&gt;
			Potom môžeme našu šifrovaciu metódu upraviť nasledovne:
		&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;public&amp;nbsp;static&amp;nbsp;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;EncryptOrDecryptData(&lt;/font&gt;&lt;font color="blue"&gt;bool&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;encrypt,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;data,&amp;nbsp;&lt;/font&gt;
						&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="blue"&gt;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;modifier,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;int&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;start,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;int&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;length)&lt;br /&gt;
						{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="class"&gt;MethodInfo&lt;/span&gt;&amp;nbsp;encryptOrDecryptStringMethod&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;machineKeySection&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;span class="class"&gt;MachineKeySection&lt;/span&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;var&amp;nbsp;paramTypes&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;typeof&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;bool&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;byte&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;byte&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;int&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;int&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;&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;&lt;/font&gt;&lt;font color="black"&gt;encryptOrDecryptStringMethod&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;
						&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="black"&gt;machineKeySection.GetMethod(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;EncryptOrDecryptData&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;&lt;span class="class"&gt;BindingFlags&lt;/span&gt;.Static&amp;nbsp;|&amp;nbsp;&lt;span class="class"&gt;BindingFlags&lt;/span&gt;.NonPublic,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;null&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;paramTypes,&amp;nbsp;&lt;/font&gt;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&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;catch&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;span class="class"&gt;AmbiguousMatchException&lt;/span&gt;)&lt;br /&gt;
						&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;Reflection&amp;nbsp;is&amp;nbsp;not&amp;nbsp;allowed&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;(encryptOrDecryptStringMethod&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;try&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;&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;byte&lt;/font&gt;&lt;font color="black"&gt;[])encryptOrDecryptStringMethod.Invoke(&lt;/font&gt;&lt;font color="blue"&gt;null&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;new&amp;nbsp;object&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;encrypt,&amp;nbsp;data,&amp;nbsp;modifier,&amp;nbsp;start,&amp;nbsp;length&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&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;catch&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;span class="class"&gt;MethodAccessException&lt;/span&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;&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;encrypt&amp;nbsp;?&amp;nbsp;&lt;span class="class"&gt;EmptyMembership&lt;/span&gt;.Instance.EncryptData(data)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="class"&gt;EmptyMembership&lt;/span&gt;.Instance.DecryptData(data)&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;catch&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;span class="class"&gt;TargetInvocationException&lt;/span&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;&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;encrypt&amp;nbsp;?&amp;nbsp;&lt;span class="class"&gt;EmptyMembership&lt;/span&gt;.Instance.EncryptData(data)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="class"&gt;EmptyMembership&lt;/span&gt;.Instance.DecryptData(data)&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;br /&gt;
						&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;encrypt&amp;nbsp;?&amp;nbsp;&lt;span class="class"&gt;EmptyMembership&lt;/span&gt;.Instance.EncryptData(data)&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;&lt;span class="class"&gt;EmptyMembership&lt;/span&gt;.Instance.DecryptData(data)&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;
					Doplnená šifrovacia metóda
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;	
		&lt;p&gt;
			Už ostáva toto celé len pekne zaobaliť:
		&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;public&amp;nbsp;static&amp;nbsp;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;DecryptString(&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;data,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="class"&gt;Func&lt;/span&gt;&amp;lt;&lt;/font&gt;&lt;font color="blue"&gt;string&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;gt;&amp;nbsp;stringToByteArray&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;&lt;span class="class"&gt;Func&lt;/span&gt;&amp;lt;&lt;/font&gt;&lt;font color="blue"&gt;byte&lt;/font&gt;&lt;font color="black"&gt;[],&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;string&lt;/font&gt;&lt;font color="black"&gt;&amp;gt;&amp;nbsp;byteArrayToString&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&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;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;dataToDecrypt&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(stringToByteArray&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;?&amp;nbsp;stringToByteArray(data)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="class"&gt;Encoding&lt;/span&gt;.UTF8.GetBytes(data)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;decryptedData&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;EncryptOrDecryptData(&lt;/font&gt;&lt;font color="blue"&gt;false&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;dataToDecrypt,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;null&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;,&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;dataToDecrypt.Length)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(byteArrayToString&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;?&amp;nbsp;byteArrayToString(decryptedData)&amp;nbsp;:&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="class"&gt;Encoding&lt;/span&gt;.UTF8.GetString(decryptedData)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;}&lt;br /&gt;
						&lt;br /&gt;
						&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;EncryptString(&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;data,&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="class"&gt;Func&lt;/span&gt;&amp;lt;&lt;/font&gt;&lt;font color="blue"&gt;string&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;gt;&amp;nbsp;stringToByteArray&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;&lt;span class="class"&gt;Func&lt;/span&gt;&amp;lt;&lt;/font&gt;&lt;font color="blue"&gt;byte&lt;/font&gt;&lt;font color="black"&gt;[],&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;string&lt;/font&gt;&lt;font color="black"&gt;&amp;gt;&amp;nbsp;byteArrayToString&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&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;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;dataToEncrypt&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(stringToByteArray&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;?&amp;nbsp;stringToByteArray(data)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="class"&gt;Encoding&lt;/span&gt;.UTF8.GetBytes(data)&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;encryptedData&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;EncryptOrDecryptData(&lt;/font&gt;&lt;font color="blue"&gt;true&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;dataToEncrypt,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;null&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;,&amp;nbsp;dataToEncrypt.Length)&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(byteArrayToString&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&lt;/font&gt;&lt;font color="black"&gt;)&amp;nbsp;?&amp;nbsp;byteArrayToString(encryptedData)&amp;nbsp;:&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="class"&gt;Encoding&lt;/span&gt;.UTF8.GetString(encryptedData)&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;
					Implementácia metód pre šifrovanie a dešifrovanie
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		&lt;p&gt;
			Dekódovať zašifrovaný query string môžeme potom nasledovne:
		&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;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;dQuery&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;@&amp;quot;1xskcOcQ5gDA9hwnmk1rYdW_bAWTiJFuj5Lw-Gfggz3AouwcBQyngWNkhtnlv6sDDogR6JWmjyuz5FxMjLzPzIQyRa34X1ChGd7bvzGwhOk3f_67WdDrVmpS87AY1ZuYVYpQk8-Z7b8pEGKZrWg-ucm0aFOdbb5hdb7hD15Hh5s1&amp;quot;&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;decrypted&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;DecryptString(dQuery,&amp;nbsp;&lt;span class="class"&gt;HttpServerUtility&lt;/span&gt;.UrlTokenDecode)&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 dešifrovacej metódy na dešifrovanie query stringu WebResource.axd
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;	
		&lt;p&gt;
			PS: Uvítam každý návrh na vylepšenie.
		&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=307139" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>dojo.require anything</title><link>http://blog.aspnet.sk/xxxmatko/archive/2012/02/29/dojo-require-anything.aspx</link><pubDate>Wed, 29 Feb 2012 12:10:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:307120</guid><dc:creator>xxxmatko</dc:creator><slash:comments>14</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/xxxmatko/rsscomments.aspx?PostID=307120</wfw:commentRss><comments>http://blog.aspnet.sk/xxxmatko/archive/2012/02/29/dojo-require-anything.aspx#comments</comments><description>		
&lt;p&gt;
			Ten, kto sa už niekedy stretol s javascript-ovým frameworkom &lt;b&gt;&lt;a href="http://dojotoolkit.org/api/" target="_blank"&gt;dojo&lt;/a&gt;&lt;/b&gt; vie, že umožňuje vytvárať
			kvázi triedy pomocou metódy &lt;b&gt;dojo.declare&lt;/b&gt; a tieto združovať do kvázi namespace-ov skrz metódu &lt;b&gt;dojo.provide&lt;/b&gt;. Každá takáto trieda predstavuje
			jeden javascript-ový súbor a kvázi namespace, do ktorého je táto trieda zaradená, určuje adresárovú štruktúru, v rámci ktorej sa táto trieda nachádza. 
			Následne potom môžeme využívať kvázi &lt;b&gt;using&lt;/b&gt; implementovaný pomocou metódy &lt;b&gt;dojo.require&lt;/b&gt; pre pripojenie javascript-ov do stránky namiesto
			pripájania jednotlivých javascript-ových súborov pomocu html elementu &lt;b&gt;&amp;lt;script&amp;gt;&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.Parent&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;/font&gt;&lt;font color="black"&gt;dojo.require(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Widgets.Child1&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;)&lt;/font&gt;&lt;sup style="color:red;font-weight:bold;"&gt;1&lt;/sup&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;/font&gt;&lt;font color="black"&gt;dojo.require(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Widgets.Child2&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.Parent&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;&lt;sup style="color:red;font-weight:bold;"&gt;2&lt;/sup&gt;,&amp;nbsp;[dijit._Widget]&lt;sup style="color:red;font-weight:bold;"&gt;3&lt;/sup&gt;,&amp;nbsp;{&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;},&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buildRendering:&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;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;}&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 jednoduchého widgetu
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
	
		
&lt;p&gt;
			V ukážke je implementovaná trieda &lt;b&gt;Widgets.Parent&lt;/b&gt; (&lt;sup style="color:red;font-weight:bold;"&gt;2&lt;/sup&gt;), ktorá dedí z triedy &lt;b&gt;dijit._Widget&lt;/b&gt;(&lt;sup style="color:red;font-weight:bold;"&gt;3&lt;/sup&gt;)
			a &amp;quot;vyžaduje&amp;quot; ďalšie triedy &lt;b&gt;Widgets.Child1&lt;/b&gt;, &lt;b&gt;Widgets.Child2&lt;/b&gt; (&lt;sup style="color:red;font-weight:bold;"&gt;1&lt;/sup&gt;). Na akom princípe funguje volanie &lt;b&gt;dojo.require&lt;/b&gt;? Na to, aby sme 
			mohli použiť &lt;b&gt;dojo&lt;/b&gt; framework, musíme ho na stránke referencovať. Nič prevratné. Povedzme, že ho referencujem z adresy &lt;b&gt;&amp;quot;http://nejakaadreas.sk/dojo/dojo.js&amp;quot;&lt;/b&gt;. Na základe tejto adresy sa konfiguračná
			property &lt;b&gt;basePath&lt;/b&gt; objektu &lt;b&gt;djConfig&lt;/b&gt; (základná cesta kde je umiestnené dojo core) nastaví na hodnotu &amp;quot;/dojo/&amp;quot;. Volanie metódy &lt;b&gt;dojo.require(&amp;quot;Widgets.Child2&amp;quot;)&lt;/b&gt; na základe
			uvedených konfiguračných hodnôt sa pomocou GET requestu pokúsí stiahnuť skript z adresy &lt;b&gt;&amp;quot;http://nejakaadreas.sk/dojo/Widgets/Child2.js&amp;quot;&lt;/b&gt;. Ak však nechceme, aby sa naše triedy
			nachádzali v tom istom priečinku ako &lt;b&gt;dojo&lt;/b&gt; core, možeme definovať umietnenia custom tried (respektíve modulov) pomocou metódy &lt;b&gt;dojo.registerModulePath(&amp;quot;&amp;lt;moduleName&amp;gt;&amp;quot;, &amp;quot;&amp;lt;modulePath&amp;gt;&amp;quot;)&lt;/b&gt;,
			alebo ešte lepšie pomocou property &lt;b&gt;paths&lt;/b&gt; objektu &lt;b&gt;djConfig&lt;/b&gt; (v starších verziách dojo frameworku sa používala property &lt;b&gt;modulePaths&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="blue"&gt;var&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;djConfig&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;paths:&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Widgets:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;/custom/Widgets&amp;quot;&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;
					Nastavenie umiestnenia custom moduolov
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
		
&lt;p&gt;
			S vyššie uvedenou konfiguráciou volanie metódy &lt;b&gt;dojo.require(&amp;quot;Widgets.Child2&amp;quot;)&lt;/b&gt; sa pomocou GET requestu pokúsí stiahnuť skript z adresy &lt;b&gt;&amp;quot;http://nejakaadreas.sk/custom/Widgets/Child2.js&amp;quot;&lt;/b&gt;.
			Pri definovaní cesty pre custom moduly je táto cesta relatívna k parent priečinku, v ktorom sa nachádza &lt;b&gt;dojo&lt;/b&gt; core.
		&lt;/p&gt;
		
&lt;p&gt;
			Neznamená to však, že teraz všetky naše custom moduly/triedy musia byť umiestnené
			v tej istej lokalite ako aj samotné &lt;b&gt;dojo&lt;/b&gt; alebo, že musíme mať &lt;b&gt;dojo&lt;/b&gt; umiestnené vždy v rámci samotnej webovej aplikácie. Cesta pre custom moduly môže byť reprezentovaná aj kompletnou
			url adresou. A konečne sa dostávame k meritu veci. Majme v webovú aplikáciu. Táto webová aplikácia referencuje knižnicu, v ktorej sú implementované server ovládacie prvky (server controls). 
			Každý server control pozostáva zo server kódu, ktorý je zodpovedný za vyrenderovanie požadovaného html a inicializáciu dojo widgetu pre vyrenderovaný html kód. Javascript kód widgetu (tak ako je uvedený
			v prvej ukážke) sa nachádza ako &lt;b&gt;Embedded Resource&lt;/b&gt; v rámci referencovanej dynamickej knižnice.
		&lt;/p&gt;
		
&lt;table style="width:100%;"&gt;
			
&lt;tr&gt;
				
&lt;td&gt;
					&lt;div class="code"&gt;
						
&lt;ul&gt;
							
&lt;li class="solutionIcon"&gt;
								Solution
								
&lt;ul&gt;
									
&lt;li class="folderIcon"&gt;
										WebApp
									&lt;/li&gt;
									
&lt;li class="folderIcon"&gt;
										Custom
										
&lt;ul&gt;
											
&lt;li class="folderIcon"&gt;
												UI
												
&lt;ul&gt;
													
&lt;li class="folderIcon"&gt;
														WebControls
														
&lt;ul&gt;
															
&lt;li class="folderIcon"&gt;
																Widgets
																
&lt;ul&gt;
																	
&lt;li class="folderIcon"&gt;
																		Parent
																		
&lt;ul&gt;
																			
&lt;li class="csharpIcon"&gt;
																				Parent.cs
																			&lt;/li&gt;
																			
&lt;li class="jsIcon"&gt;
																				Parent.js
																			&lt;/li&gt;
																		&lt;/ul&gt;
																	&lt;/li&gt;
																	
&lt;li class="folderIcon"&gt;
																		Child1
																		
&lt;ul&gt;
																			
&lt;li class="csharpIcon"&gt;
																				Child1.cs
																			&lt;/li&gt;
																			
&lt;li class="jsIcon"&gt;
																				Child1.js
																			&lt;/li&gt;
																		&lt;/ul&gt;
																	&lt;/li&gt;
																	
&lt;li class="folderIcon"&gt;
																		Child2
																		
&lt;ul&gt;
																			
&lt;li class="csharpIcon"&gt;
																				Child2.cs
																			&lt;/li&gt;
																			
&lt;li class="jsIcon"&gt;
																				Child2.js
																			&lt;/li&gt;
																		&lt;/ul&gt;
																	&lt;/li&gt;
																&lt;/ul&gt;
															&lt;/li&gt;
														&lt;/ul&gt;
													&lt;/li&gt;
												&lt;/ul&gt;
											&lt;/li&gt;
										&lt;/ul&gt;
									&lt;/li&gt;
								&lt;/ul&gt;
							&lt;/li&gt;
						&lt;/ul&gt;
					&lt;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Štruktúra ukážkového projektu
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
	
		
&lt;p&gt;
			Ak by sme sa teraz pokúsili vytvoriť na stránke widget (tak ako je to uvedené v nasledovnej ukážke), tak by sme neuspeli, pretože volanie &lt;b&gt;dojo.require(&amp;quot;Widgets.Parent&amp;quot;)&lt;/b&gt; zlyhá, nakoľko javascript kód
			widgetu &amp;quot;Parent&amp;quot; sa nenechádza na adrese &lt;b&gt;&amp;quot;http://localhost:#####/dojo/Widgets/Parent.js&amp;quot;&lt;/b&gt;, ale dá sa načítať cez handler &amp;quot;WebResource.axd&amp;quot;. Jednou možnosťou, ako sa s danou situáciou vysporiadať,
			je to, že pred vyrenderovaním stránky vložíme do nej referencie na všetky potrebné skripty pomocu metód &amp;quot;RegisterClientScriptInclude&amp;quot; a &amp;quot;GetWebResourceUrl&amp;quot;.
		&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;html&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;head&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;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;&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;djConfig&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;paths:&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;Widgets:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;/Widgets&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;&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;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;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;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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dojo.require(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;dojo.parser&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;dojo.require(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;Widgets.Parent&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="black"&gt;dojo.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;&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;parent&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Widgets.Parent({&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;input&amp;nbsp;params&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;dojo.byId(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;parent&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;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;head&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;body&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;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;parent&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;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;body&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;html&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;
					Inicializá widgetu &amp;quot;Parent&amp;quot;
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
			
		
&lt;p&gt;
			Toto riešenie ale nie je optimálne a tak isto stráca sa funkčnosť volania &lt;b&gt;dojo.require&lt;/b&gt;. V tomto prípade skončíme s tromi chybnými requestami typu &amp;quot;Not Found&amp;quot; pre javascriptové súbory &amp;quot;Parent.js&amp;quot; 
			(ktorý je referencovaný na samotnej html stránke) a súbory &amp;quot;Child1.js&amp;quot;, &amp;quot;Child2.js&amp;quot;, ktoré sú vyžadované widgetom Parent. Iným riešením môže byť použite &lt;b&gt;HttpHandlerFactory&lt;/b&gt;, ktorá pre spracovanie
			každého	requestu vzniknutého volaním &lt;b&gt;dojo.require&lt;/b&gt; použije custom &lt;b&gt;HttpHandler&lt;/b&gt;, ktorý dokáže na základe requestu načítať resource z assembly a tento zapísať do &lt;b&gt;Response&lt;/b&gt;, a pre každý iný 
			request použije &lt;b&gt;DefaultHttpHandler&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="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;configuration&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;system.web&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;lt;&lt;/font&gt;&lt;font color="maroon"&gt;httpHandlers&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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="blue"&gt;&amp;lt;&lt;/font&gt;&lt;font color="maroon"&gt;add&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;verb&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;*&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;path&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;*.js&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;type&lt;/font&gt;&lt;font color="blue"&gt;=&amp;quot;WebApp.DojoRequireFactory&amp;quot;&lt;/font&gt;&lt;font color="red"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;/&amp;gt;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;httpHandlers&lt;/font&gt;&lt;font color="blue"&gt;&amp;gt;&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;&amp;lt;/&lt;/font&gt;&lt;font color="maroon"&gt;system.web&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;configuration&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;
					Konfigurácia použitia HttpHandlerFactory
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
		
&lt;table style="width:100%;"&gt;
			
&lt;tr&gt;
				
&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="blue"&gt;public&amp;nbsp;class&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;DojoRequireFactory&amp;nbsp;:&amp;nbsp;IHttpHandlerFactory&lt;br /&gt;
						{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;IHttpHandler&amp;nbsp;GetHandler(HttpContext&amp;nbsp;context,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;requestType,&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;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;url,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;pathTranslated)&lt;br /&gt;
						&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;Overime&amp;nbsp;ci&amp;nbsp;request&amp;nbsp;koresponduje&amp;nbsp;s&amp;nbsp;tvarom&amp;nbsp;requestu&amp;nbsp;pre&amp;nbsp;volania&amp;nbsp;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;dojo.require&amp;nbsp;ak&amp;nbsp;nie&amp;nbsp;tak&amp;nbsp;pouzijeme&amp;nbsp;pre&amp;nbsp;spracovanie&amp;nbsp;requestu&amp;nbsp;defaultny&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&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(!DojoRequireHandler.Path.IsMatch(url))&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;return&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;DefaultHttpHandler()&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;Z&amp;nbsp;url&amp;nbsp;adresy&amp;nbsp;requestu&amp;nbsp;ziskame&amp;nbsp;informaciu&amp;nbsp;o&amp;nbsp;tom&amp;nbsp;v&amp;nbsp;akom&amp;nbsp;nasmespace&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;sa&amp;nbsp;resource&amp;nbsp;nachadza&amp;nbsp;a&amp;nbsp;aky&amp;nbsp;ma&amp;nbsp;byt&amp;nbsp;nazov&amp;nbsp;skriptu&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;var&amp;nbsp;match&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;DojoRequireHandler.Path.Match(url)&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;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;script&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;match.Groups[&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;script&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;].Value&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;List&amp;lt;&lt;/font&gt;&lt;font color="blue"&gt;string&lt;/font&gt;&lt;font color="black"&gt;&amp;gt;&amp;nbsp;scriptNamespace&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;List&amp;lt;&lt;/font&gt;&lt;font color="blue"&gt;string&lt;/font&gt;&lt;font color="black"&gt;&amp;gt;(&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;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;var&amp;nbsp;namespaces&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;match.Groups[&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;namespace&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;].Captures&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;for&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;int&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;namespaces.Count&lt;/font&gt;&lt;font color="blue"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;i++)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scriptNamespace.Add(namespaces[i].Value)&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;Na&amp;nbsp;spracovanie&amp;nbsp;pouzijeme&amp;nbsp;specialny&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;return&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;DojoRequireHandler(script,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;string&lt;/font&gt;&lt;font color="black"&gt;.Join(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;.&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;scriptNamespace))&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;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Handler Factory ktorá určí ktorý handler má spracovať request
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
	
		
&lt;table style="width:100%;"&gt;
			
&lt;tr&gt;
				
&lt;td&gt;
					&lt;div class="code"&gt;
						&lt;font color="blue"&gt;public&amp;nbsp;class&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;DojoRequireHandler&amp;nbsp;:&amp;nbsp;IHttpHandler&lt;br /&gt;
						{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Regularny&amp;nbsp;vyraz,&amp;nbsp;ktory&amp;nbsp;definuje&amp;nbsp;v&amp;nbsp;akom&amp;nbsp;tvare&amp;nbsp;maju&amp;nbsp;vyzerat&amp;nbsp;requesty&amp;nbsp;vykonane&amp;nbsp;cez&amp;nbsp;dojo.require&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;public&amp;nbsp;static&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Regex&amp;nbsp;Path&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;Regex(&lt;/font&gt;&lt;font color="#808080"&gt;@&amp;quot;[\w\d:/]*WebResource.axd(?:/(?&amp;lt;namespace&amp;gt;\w+))*/(?&amp;lt;script&amp;gt;\w+)\.js&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;private&amp;nbsp;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;_scriptName&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;_namespaces&lt;/font&gt;&lt;font color="blue"&gt;;&lt;br /&gt;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;DojoRequireHandler(&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;scriptName,&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;namespaces)&lt;br /&gt;
						&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="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;._scriptName&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;scriptName&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;._namespaces&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;namespaces&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;public&amp;nbsp;void&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;ProcessRequest(HttpContext&amp;nbsp;context)&lt;br /&gt;
						&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="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;content&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null;&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;Niektore&amp;nbsp;assemblies&amp;nbsp;chceme&amp;nbsp;preskocit&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;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;toSkip&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;system&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;microsoft&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Prejdem&amp;nbsp;vsetky&amp;nbsp;pozadovane&amp;nbsp;assemblies&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;foreach&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(Assembly&amp;nbsp;assembly&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;in&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;AppDomain.CurrentDomain.GetAssemblies())&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;name&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;assembly.FullName.Split(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#39;,&amp;#39;&lt;/font&gt;&lt;font color="black"&gt;)[&lt;/font&gt;&lt;font color="maroon"&gt;0&lt;/font&gt;&lt;font color="black"&gt;].ToLower()&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;Preskocime&amp;nbsp;assemblies&amp;nbsp;ktore&amp;nbsp;nechcem&amp;nbsp;spracovavat&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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&lt;/font&gt;&lt;font color="black"&gt;(Array.IndexOf(toSkip,&amp;nbsp;name.Split(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#39;.&amp;#39;&lt;/font&gt;&lt;font color="black"&gt;)[&lt;/font&gt;&lt;font color="maroon"&gt;0&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;/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;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;continue;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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="darkgreen"&gt;//&amp;nbsp;Dynamcike&amp;nbsp;assemblies&amp;nbsp;nechceme&amp;nbsp;spracovavat&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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&lt;/font&gt;&lt;font color="black"&gt;(assembly.IsDynamic)&lt;br /&gt;
						&amp;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;continue;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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="darkgreen"&gt;//&amp;nbsp;Ziskame&amp;nbsp;zoznam&amp;nbsp;resourcov&amp;nbsp;v&amp;nbsp;aktualnej&amp;nbsp;assembly&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;string&lt;/font&gt;&lt;font color="black"&gt;[]&amp;nbsp;resourceNames&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;assembly.GetManifestResourceNames()&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;Skusime&amp;nbsp;najst&amp;nbsp;konkretny&amp;nbsp;resource&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;foreach&lt;/font&gt;&lt;font color="black"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;string&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;resourceName&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;in&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;resourceNames)&lt;br /&gt;
						&amp;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;Ak&amp;nbsp;resource&amp;nbsp;name&amp;nbsp;nekonci&amp;nbsp;nazvom&amp;nbsp;skriptu&amp;nbsp;a&amp;nbsp;nezacina&amp;nbsp;nazvom&amp;nbsp;namespacu&amp;nbsp;tak&amp;nbsp;pokracujeme&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&lt;/font&gt;&lt;font color="black"&gt;(!resourceName.EndsWith(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;._scriptName&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;.js&amp;quot;&lt;/font&gt;&lt;font color="black"&gt;,&amp;nbsp;StringComparison.InvariantCultureIgnoreCase)&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;||&amp;nbsp;!resourceName.StartsWith(&lt;/font&gt;&lt;font color="blue"&gt;this&lt;/font&gt;&lt;font color="black"&gt;._namespaces,&amp;nbsp;StringComparison.InvariantCultureIgnoreCase))&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;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;continue;&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="darkgreen"&gt;//&amp;nbsp;Nacitame&amp;nbsp;resource&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;using&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;(var&amp;nbsp;resourceStream&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;new&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;StreamReader(assembly.GetManifestResourceStream(resourceName)))&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;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;content&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="black"&gt;resourceStream.ReadToEnd()&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;
						&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&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="darkgreen"&gt;//&amp;nbsp;Ak&amp;nbsp;bol&amp;nbsp;uz&amp;nbsp;nacitany&amp;nbsp;resource&amp;nbsp;tak&amp;nbsp;dalsi&amp;nbsp;nehladame&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;(content&amp;nbsp;!&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;null&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;&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;&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;
						&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;sa&amp;nbsp;nepodarilo&amp;nbsp;nacitat&amp;nbsp;resource&amp;nbsp;ukoncime&amp;nbsp;response&amp;nbsp;ako&amp;nbsp;notfound&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;(content&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;==&amp;nbsp;null&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;context.Response.StatusCode&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;int&lt;/font&gt;&lt;font color="black"&gt;)HttpStatusCode.NotFound&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;context.Response.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;&lt;/font&gt;&lt;font color="black"&gt;context.ApplicationInstance.CompleteRequest()&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;Obsah&amp;nbsp;resourcu&amp;nbsp;zapiseme&amp;nbsp;do&amp;nbsp;response&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;context.Response.ContentType&amp;nbsp;&lt;/font&gt;&lt;font color="blue"&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;text/javascript&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;&lt;/font&gt;&lt;font color="black"&gt;context.Response.Write(content)&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;context.Response.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;&lt;/font&gt;&lt;font color="black"&gt;context.ApplicationInstance.CompleteRequest()&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;/div&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				&lt;th style="font-size:10px;font-family:Tahoma;"&gt;
					Handler pre načítanie resource z assembly
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
		
		
&lt;p&gt;
			Jediné čo ostáva ešte spraviť, je nastaviť cestu pre náš modul v &lt;b&gt;djConfig&lt;/b&gt; tak, aby &lt;b&gt;dojo.require&lt;/b&gt; volania boli v takom tvare, na základe ktorého &lt;b&gt;HandlerFactory&lt;/b&gt; bude vedieť určiť, že request
			má spracovať custom handler a následne, aby tento handler vedel aký resource má nájsť.
		&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;djConfig&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;paths:&amp;nbsp;{&lt;br /&gt;
						&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Widgets:&amp;nbsp;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;http://localhost:####/WebResource.axd/Custom/Widgets&amp;quot;&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;
					Upravená djConfig konfigurácia
				&lt;/th&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
			
		
&lt;p&gt;
			S touto konfiguráciou volanie metódy &lt;b&gt;dojo.require(&amp;quot;Widgets.Parent&amp;quot;)&lt;/b&gt; spustí GET request na súbor &lt;b&gt;&amp;quot;http://localhost:####/WebResource.axd/Custom/Widgets/Parent.js&lt;/b&gt;, pre spracovanie ktorého
			&lt;b&gt;DojoRequireFactory &lt;/b&gt; vyberie custom handler &lt;b&gt;DojoRequireHandler&lt;/b&gt;, ktorý načíta obsah súboru z assembly a ten zapíše do &lt;b&gt;Response&lt;/b&gt;. Takto nám bude requirovanie skriptov pomocou &lt;b&gt;dojo&lt;/b&gt; fungovať aj pokiaľ budú tieto 
			uložené ako resources v assembly.
		&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=307120" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/C_2300_/default.aspx">C#</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><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/djConfig/default.aspx">djConfig</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/HttpHandler/default.aspx">HttpHandler</category><category domain="http://blog.aspnet.sk/xxxmatko/archive/tags/HttpHandlerFactory/default.aspx">HttpHandlerFactory</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></channel></rss>