<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Client-Side &lt;br /&gt;with Basil Goldman</title><subtitle type="html">&lt;div&gt;&lt;a href="http://www.deltaintegrity.com/en_US/executive.jsp?profile_id=1"&gt;&lt;img height="87" width="131" alt="Basil Goldman" title="Basil Goldman" src="http://www.deltaintegrity.com/uploads/profiles/basilgoldman_131_87.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-top:12px;"&gt;&lt;a href="http://www.linkedin.com/in/basilg"&gt;&lt;img src="http://www.linkedin.com/img/webpromo/btn_viewmy_160x33.gif" width="160" height="33" border="0" alt="View Basil Goldman&amp;#39;s profile on LinkedIn" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;a href="http://www.digitalpoint.com/tools/geovisitors/"&gt;&lt;img src="http://geo.digitalpoint.com/a.png" alt="Geo Visitors Map" style="border:0;" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://blogs.microsoft.co.il/blogs/basil"&gt;&lt;img src="http://static.technorati.com/pix/fave/tech-fav-1.png" alt="Add to Technorati Favorites" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://technorati.com/claim/55bdwtv2w3" rel="me"&gt;Technorati Profile&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;

</subtitle><id>http://blogs.microsoft.co.il/blogs/basil/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/basil/" /><link rel="self" type="application/atom+xml" href="http://blogs.microsoft.co.il/blogs/basil/atom.aspx" /><generator uri="http://communityserver.org" version="3.1.20917.1142">Community Server</generator><updated>2008-02-18T12:34:00Z</updated><entry><title>JavaScript Breadcrumbs navigation</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/basil/archive/2010/01/23/breadcrumbs-in-javascript.aspx" /><id>http://blogs.microsoft.co.il/blogs/basil/archive/2010/01/23/breadcrumbs-in-javascript.aspx</id><published>2010-01-23T19:56:00Z</published><updated>2010-01-23T19:56:00Z</updated><content type="html">&lt;p&gt;In this code listing I want to demonstrate how to implement &amp;quot;Breadcrumbs&amp;quot; in JavaScript for the pages collection, where page object have a two main key&amp;#39;s pageId and parentPageId, and create a new collection sorted by current parents.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Like this (See below...) &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img border="0" alt="BreadCrumbs" src="http://www.deltaintegrity.com/uploads/temp/breadcrumbs.gif" width="250" height="36" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Listing 1:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="csharpcode"&gt;function page(pageId, parentPageId, title) { &lt;br /&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.constructor(pageId, parentPageId, title); }&lt;br /&gt;page.prototype = {&lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;// properties&lt;/span&gt;&lt;br /&gt;    pageId: &lt;span class="kwrd"&gt;null&lt;/span&gt;,&lt;br /&gt;    parentPageId: &lt;span class="kwrd"&gt;null&lt;/span&gt;,&lt;br /&gt;    title: &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;,&lt;br /&gt;    &lt;br /&gt;    setPageId: function(pageId) {&lt;br /&gt;        &lt;span class="kwrd"&gt;this&lt;/span&gt;.pageId = pageId;&lt;br /&gt;    },&lt;br /&gt;    getPageId: function() {&lt;br /&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.pageId;&lt;br /&gt;    },&lt;br /&gt;    setParentPageId: function(parentPageId) {&lt;br /&gt;        &lt;span class="kwrd"&gt;this&lt;/span&gt;.parentPageId = parentPageId;&lt;br /&gt;    },&lt;br /&gt;    getParentPageId: function() {&lt;br /&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.parentPageId;&lt;br /&gt;    },&lt;br /&gt;    setTitle: function(title) { &lt;br /&gt;        &lt;span class="kwrd"&gt;this&lt;/span&gt;.title = title; &lt;br /&gt;    },&lt;br /&gt;    getTitle: function() { &lt;br /&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.title; &lt;br /&gt;    },&lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;// default constructor&lt;/span&gt;&lt;br /&gt;    constructor: function(pageId, parentPageId, title) {&lt;br /&gt;        &lt;span class="kwrd"&gt;this&lt;/span&gt;.pageId = pageId;&lt;br /&gt;        &lt;span class="kwrd"&gt;this&lt;/span&gt;.parentPageId = parentPageId;&lt;br /&gt;        &lt;span class="kwrd"&gt;this&lt;/span&gt;.title = title;&lt;br /&gt;    }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;var dataSource = [&lt;br /&gt;     [1, 0, &lt;span class="str"&gt;&amp;#39;Home&amp;#39;&lt;/span&gt;],&lt;br /&gt;     [2, 0, &lt;span class="str"&gt;&amp;#39;Products&amp;#39;&lt;/span&gt;],&lt;br /&gt;     [3, 0, &lt;span class="str"&gt;&amp;#39;Contact Us&amp;#39;&lt;/span&gt;],&lt;br /&gt;     [4, 0, &lt;span class="str"&gt;&amp;#39;About&amp;#39;&lt;/span&gt;],&lt;br /&gt;     [5, 2, &lt;span class="str"&gt;&amp;#39;TradeDesk&amp;#39;&lt;/span&gt;],&lt;br /&gt;     [6, 2, &lt;span class="str"&gt;&amp;#39;MT4 - (MetaTrader)&amp;#39;&lt;/span&gt;],&lt;br /&gt;     [7, 6, &lt;span class="str"&gt;&amp;#39;Download&amp;#39;&lt;/span&gt;]&lt;br /&gt;];&lt;br /&gt;&lt;br /&gt;var pages = {&lt;br /&gt;    pagesList: [],&lt;br /&gt;    getByPageId: function(pageId) {&lt;br /&gt;        &lt;span class="kwrd"&gt;for&lt;/span&gt;(var i = 0; i &amp;lt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.pagesList.length; i++) {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;(&lt;span class="kwrd"&gt;this&lt;/span&gt;.pagesList[i].getPageId() == pageId) &lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.pagesList[i];&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;var breadCrumbs = &lt;span class="kwrd"&gt;new&lt;/span&gt; function() {&lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;// fill data of the page object&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt;(var i = 0; i &amp;lt; dataSource.length; i++) {&lt;br /&gt;        &lt;br /&gt;        &lt;span class="rem"&gt;// create new page and set properties&lt;/span&gt;&lt;br /&gt;        var p = &lt;span class="kwrd"&gt;new&lt;/span&gt; page();&lt;br /&gt;            p.setPageId(dataSource[i][0]);&lt;br /&gt;            p.setParentPageId(dataSource[i][1]);&lt;br /&gt;            p.setTitle(dataSource[i][2]);&lt;br /&gt;        &lt;br /&gt;        pages.pagesList[i] = p;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;// get specific page by pageId&lt;/span&gt;&lt;br /&gt;    var p = pages.getByPageId(7);&lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;// check if page have a parentPageId&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt;(p.getParentPageId() != 0) {&lt;br /&gt;        &lt;br /&gt;        &lt;span class="rem"&gt;// fill breadCrumbs array using - recursive method&lt;/span&gt;&lt;br /&gt;        var breadCrumbs = [];&lt;br /&gt;        var pageToCheck = p;&lt;br /&gt;        var maxCheck = 6;&lt;br /&gt;        var checkCounter = 0;&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        &lt;span class="kwrd"&gt;while&lt;/span&gt;(pageToCheck != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; checkCounter &amp;lt; maxCheck) {&lt;br /&gt;            breadCrumbs.push(pageToCheck);&lt;br /&gt;            pageToCheck = &lt;br /&gt;                pages.getByPageId(pageToCheck.getParentPageId());&lt;br /&gt;        }&lt;br /&gt;        pageToCheck = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;        &lt;br /&gt;        &lt;span class="rem"&gt;// reverse array&lt;/span&gt;&lt;br /&gt;        breadCrumbs.reverse();&lt;br /&gt;        &lt;br /&gt;        &lt;span class="kwrd"&gt;for&lt;/span&gt;(var i = 0; i &amp;lt; breadCrumbs.length; i++) {&lt;br /&gt;            &lt;span class="rem"&gt;// print breadCrumbs array - &lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;// output will be Products - &amp;gt; MT4 -&amp;gt; Overview&lt;/span&gt;&lt;br /&gt;            alert(breadCrumbs[i].getTitle());&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Enjoy...&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=506450" width="1" height="1"&gt;</content><author><name>basil.goldman</name><uri>http://blogs.microsoft.co.il/members/basil.goldman.aspx</uri></author><category term="JavaScript" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/JavaScript/default.aspx" /><category term="DEV" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/DEV/default.aspx" /><category term="Recursion" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/Recursion/default.aspx" /><category term="Object Oriented Programming in JavaScript" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/Object+Oriented+Programming+in+JavaScript/default.aspx" /></entry><entry><title>"Run as Administrator" - Run an application in Vista with Administrator rights using app.manifest</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/basil/archive/2008/10/13/quot-run-as-administrator-quot-run-an-application-in-vista-with-administrator-rights-using-app-manifest.aspx" /><id>http://blogs.microsoft.co.il/blogs/basil/archive/2008/10/13/quot-run-as-administrator-quot-run-an-application-in-vista-with-administrator-rights-using-app-manifest.aspx</id><published>2008-10-13T01:33:00Z</published><updated>2008-10-13T01:33:00Z</updated><content type="html">&lt;p&gt;With the new version of Microsoft&amp;#39;s Windows Vista - you and me as a
software developer confronted with the problem of &amp;quot;How to run the
application with Administrative rights under VISTA - a decision use app.manifest file with follow configurations.&lt;br /&gt;&lt;br /&gt;Just add new item &amp;quot;Application Manifest File&amp;quot; into your project and replace all to this one. (See below) &lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="html"&gt;xml&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;encoding&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt; ?&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;assembly&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;manifestVersion&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;assemblyIdentity&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1.0.0.0&amp;quot;&lt;/span&gt;&lt;br /&gt;  &lt;span class="attr"&gt;processorArchitecture&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;X86&amp;quot;&lt;/span&gt;&lt;br /&gt;  &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;someExecName&amp;quot;&lt;/span&gt;&lt;br /&gt;  &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;win32&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;description&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Program description&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;description&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;trustInfo&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;urn:schemas-microsoft-com:asm.v3&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;security&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;requestedPrivileges&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;requestedExecutionLevel&lt;/span&gt; &lt;span class="attr"&gt;level&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;requireAdministrator&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;requestedPrivileges&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;security&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;trustInfo&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;assembly&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;Enjoy...&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=152898" width="1" height="1"&gt;</content><author><name>basil.goldman</name><uri>http://blogs.microsoft.co.il/members/basil.goldman.aspx</uri></author><category term="C#" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/C_2300_/default.aspx" /><category term="TECH" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/TECH/default.aspx" /><category term="DEV" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/DEV/default.aspx" /><category term="WinForms" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/WinForms/default.aspx" /><category term="VB.NET" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/VB.NET/default.aspx" /><category term=".NET" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/.NET/default.aspx" /><category term="Vista" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/Vista/default.aspx" /><category term="Security" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/Security/default.aspx" /></entry><entry><title>Windows Hosts File Manager</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/basil/archive/2008/10/07/hostsfileconfigurator-edit-quot-hosts-quot-file.aspx" /><id>http://blogs.microsoft.co.il/blogs/basil/archive/2008/10/07/hostsfileconfigurator-edit-quot-hosts-quot-file.aspx</id><published>2008-10-07T13:43:00Z</published><updated>2008-10-07T13:43:00Z</updated><content type="html">&lt;p&gt;Hi Guy&amp;#39;s &lt;br /&gt;&lt;/p&gt; &lt;p&gt;I&amp;#39;m wrote some little server component (tool) Windows Hosts File Manager for Web Developers &amp;amp; IT Administrators, QA and others...&lt;br /&gt; &lt;/p&gt; &lt;p&gt;&lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_wikiSourceLabel"&gt;This application tool for Web Developers &amp;amp; IT Administrators, QA and others who are time to time make some changes in the HOSTS file of the Windows OS.&lt;br /&gt;Using this application you might to edit HOSTS file, add &amp;amp; delete some configurations in that file.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/basil/WindowsLiveWriter/WindowsHostsFileManagerEditHOSTSfile_41E/117a2_2.gif"&gt;&lt;img src="http://blogs.microsoft.co.il/blogs/basil/WindowsLiveWriter/WindowsHostsFileManagerEditHOSTSfile_41E/117a2_thumb.gif" style="border:0px none;" alt="117a2" border="0" height="295" width="410" /&gt;&lt;/a&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://code.msdn.microsoft.com/hostsfile" target="_blank"&gt;Download from MSDN Code Gallery - Windows Hosts File Manager (Setup + Open Source)&lt;/a&gt;&lt;/p&gt; &lt;p&gt;or from &lt;a href="http://www.codeplex.com/windowshostsfilemgr"&gt;CodePlex.com - Open Source Community &lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;* The last release is support Vista &amp;quot;Run As Administrator&amp;quot; - option to grant full access to the file HOSTS, and some fixes.&lt;br /&gt; &lt;/p&gt; &lt;p&gt;Thanks.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;br /&gt;Enjoy... &lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=150743" width="1" height="1"&gt;</content><author><name>basil.goldman</name><uri>http://blogs.microsoft.co.il/members/basil.goldman.aspx</uri></author><category term="C#" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/C_2300_/default.aspx" /><category term="Windows" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/Windows/default.aspx" /><category term="Tools" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/Tools/default.aspx" /><category term=".NET 2" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/.NET+2/default.aspx" /><category term="TECH" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/TECH/default.aspx" /><category term="DEV" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/DEV/default.aspx" /></entry><entry><title>Defining your own functions in jQuery</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/basil/archive/2008/09/22/defining-your-own-functions-in-jquery.aspx" /><id>http://blogs.microsoft.co.il/blogs/basil/archive/2008/09/22/defining-your-own-functions-in-jquery.aspx</id><published>2008-09-22T06:15:00Z</published><updated>2008-09-22T06:15:00Z</updated><content type="html">&lt;p&gt;Defining your own functions in jQuery.
&lt;br /&gt;In this post i want to present how easy define your own functions in jQuery and using them.

&lt;br /&gt;&lt;br /&gt;As you know, jQuery it&amp;#39;s a very rich JavaScript library and it&amp;#39;s a pity not to use all it resources.
&lt;br /&gt;Ok. Do you want to create your own jQuery function to work with elements look like this:
&lt;/p&gt;&lt;pre class="csharpcode"&gt;$(element).yourfunctionname()&lt;/pre&gt;
What is your steps to define it?
&lt;br /&gt;At first, define &amp;quot;jQuery.fn&amp;quot; and add to this object your function name see below. (jQuery.fn is a prototype of jQuery object)

&lt;pre class="csharpcode"&gt;jQuery.fn.yourfunctionname = &lt;span class="kwrd"&gt;function&lt;/span&gt;() {&lt;br /&gt;    var o = $(&lt;span class="kwrd"&gt;this&lt;/span&gt;[0]) &lt;span class="rem"&gt;// It&amp;#39;s your element&lt;/span&gt;&lt;br /&gt;};&lt;/pre&gt;
Now you have your own jQuery function working with HTML elements.
&lt;br /&gt;Also you want to call this function and set any attributes see below.

&lt;pre class="csharpcode"&gt;$(elem).yourfunctionname({dataSource: [], pagingStart: 5});&lt;br /&gt;&lt;br /&gt;jQuery.fn.yourfunctionname = &lt;span class="kwrd"&gt;function&lt;/span&gt;() {&lt;br /&gt;    var args = arguments[0] || {}; &lt;span class="rem"&gt;// It&amp;#39;s your object of arguments&lt;/span&gt;&lt;br /&gt;    var dataSource = args.dataSource;&lt;br /&gt;    var pagingStart = args.pagingStart;&lt;br /&gt;};&lt;/pre&gt;
Extend jQuery using your own functions.
&lt;br /&gt;Come to say... You want to create function for validation object or variable to is nullable (&lt;span class="kwrd"&gt;null&lt;/span&gt;).

&lt;br /&gt;&lt;br /&gt;Like this:
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt;( !jQuery.isNull(&lt;span class="kwrd"&gt;object&lt;/span&gt;) )&lt;/pre&gt;
Do next

&lt;pre class="csharpcode"&gt;jQuery.extend( {
    isNull: &lt;span class="kwrd"&gt;function&lt;/span&gt;(o) { 
        &lt;span class="kwrd"&gt;if&lt;/span&gt;(o == &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; o == undefined) { 
          &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;; 
        } 
        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;
    }
});&lt;/pre&gt;
Or. You want to extend someone your own jQuery function
&lt;pre class="csharpcode"&gt;jQuery.fn.yourfunctionname.constructor.prototype.clearData = &lt;span class="kwrd"&gt;function&lt;/span&gt;() {&lt;br /&gt;&lt;span class="rem"&gt;    // TODO&lt;/span&gt;&lt;br /&gt;};&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Enjoy...&lt;/p&gt;

&lt;a href="http://technorati.com/tag/JavaScript" rel="tag"&gt;&lt;img src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=JavaScript" style="border:0pt none;vertical-align:middle;margin-left:0.4em;" alt=" " /&gt;JavaScript&lt;/a&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=143481" width="1" height="1"&gt;</content><author><name>basil.goldman</name><uri>http://blogs.microsoft.co.il/members/basil.goldman.aspx</uri></author><category term="JavaScript" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/JavaScript/default.aspx" /><category term="UI" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/UI/default.aspx" /><category term="jQuery" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/jQuery/default.aspx" /><category term="Thoughts " scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/Thoughts+/default.aspx" /></entry><entry><title>jQuery.create() - jQuery plugin to create HTML elements</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/basil/archive/2008/08/21/jquery-create-jquery-plug-in-to-create-elements.aspx" /><id>http://blogs.microsoft.co.il/blogs/basil/archive/2008/08/21/jquery-create-jquery-plug-in-to-create-elements.aspx</id><published>2008-08-21T01:50:00Z</published><updated>2008-08-21T01:50:00Z</updated><content type="html">&lt;p&gt;jQuery.create() - it&amp;#39;s a featured plugin for jQuery JavaScript Library.&lt;br /&gt;
You can create any types of HTML elements, set attributes and context or HTML using jQuery.create().&lt;br /&gt;
See below the HTML example declaration.&lt;br /&gt;&lt;br /&gt;

I think it make easy and fast your programming in JavaScript.&lt;/p&gt;
&lt;br /&gt;

&lt;pre class="csharpcode"&gt;jQuery.create = function() {&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (arguments.length == 0) &lt;span class="kwrd"&gt;return&lt;/span&gt; [];&lt;br /&gt;    var args = arguments[0] || {}, elem = &lt;span class="kwrd"&gt;null&lt;/span&gt;, elements = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;    var siblings = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;    &lt;span class="rem"&gt;// In case someone passes in a null object,&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;// assume that they want an empty string.&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (args == &lt;span class="kwrd"&gt;null&lt;/span&gt;) args = &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (args.constructor == String) {&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (arguments.length &amp;gt; 1) {&lt;br /&gt;            var attributes = arguments[1];&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (attributes.constructor == String) {&lt;br /&gt;                            elem = document.createTextNode(args);&lt;br /&gt;                            elements = [];&lt;br /&gt;                            elements.push(elem);&lt;br /&gt;                            siblings =&lt;br /&gt;        jQuery.create.apply(&lt;span class="kwrd"&gt;null&lt;/span&gt;, Array.prototype.slice.call(arguments, 1));&lt;br /&gt;                            elements = elements.concat(siblings);&lt;br /&gt;                            &lt;span class="kwrd"&gt;return&lt;/span&gt; elements;&lt;br /&gt;&lt;br /&gt;                    } &lt;span class="kwrd"&gt;else&lt;/span&gt; {&lt;br /&gt;                            elem = document.createElement(args);&lt;br /&gt;&lt;br /&gt;                            &lt;span class="rem"&gt;// Set element attributes.&lt;/span&gt;&lt;br /&gt;                            var attributes = arguments[1];&lt;br /&gt;                            &lt;span class="kwrd"&gt;for&lt;/span&gt; (var attr &lt;span class="kwrd"&gt;in&lt;/span&gt; attributes)&lt;br /&gt;                                jQuery(elem).attr(attr, attributes[attr]);&lt;br /&gt;&lt;br /&gt;                            &lt;span class="rem"&gt;// Add children of this element.&lt;/span&gt;&lt;br /&gt;                            var children = arguments[2];&lt;br /&gt;                            children = jQuery.create.apply(&lt;span class="kwrd"&gt;null&lt;/span&gt;, children);&lt;br /&gt;                            jQuery(elem).append(children);&lt;br /&gt;&lt;br /&gt;                            &lt;span class="rem"&gt;// If there are more siblings, render those too.&lt;/span&gt;&lt;br /&gt;                            &lt;span class="kwrd"&gt;if&lt;/span&gt; (arguments.length &amp;gt; 3) {&lt;br /&gt;                                    siblings =&lt;br /&gt;        jQuery.create.apply(&lt;span class="kwrd"&gt;null&lt;/span&gt;, Array.prototype.slice.call(arguments, 3));&lt;br /&gt;                                    &lt;span class="kwrd"&gt;return&lt;/span&gt; [elem].concat(siblings);&lt;br /&gt;                            }&lt;br /&gt;                            &lt;span class="kwrd"&gt;return&lt;/span&gt; elem;&lt;br /&gt;                    }&lt;br /&gt;            } &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;return&lt;/span&gt; document.createTextNode(args);&lt;br /&gt;      } &lt;span class="kwrd"&gt;else&lt;/span&gt; {&lt;br /&gt;              elements = [];&lt;br /&gt;              elements.push(args);&lt;br /&gt;              siblings =&lt;br /&gt;        jQuery.create.apply(&lt;span class="kwrd"&gt;null&lt;/span&gt;, (Array.prototype.slice.call(arguments, 1)));&lt;br /&gt;              elements = elements.concat(siblings);&lt;br /&gt;              &lt;span class="kwrd"&gt;return&lt;/span&gt; elements;&lt;br /&gt;      }&lt;br /&gt;};&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;HTML example declaration. &lt;/p&gt;
&lt;br /&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;PUBLIC&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;/span&gt; &lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Untitled Page&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt; &lt;br /&gt;        &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;../App_Scripts/jQuery/jQuery-1.2.3.js&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &amp;lt;!-- Utils.js - contain jQuery.create - plug-&lt;span class="kwrd"&gt;in&lt;/span&gt; --&amp;gt;&lt;br /&gt;    &amp;lt;script type=&lt;span class="str"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt; &lt;br /&gt;        src=&lt;span class="str"&gt;&amp;quot;../App_Scripts/Utils/Utils.js&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;script type=&lt;span class="str"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;    $(document).ready(&lt;span class="kwrd"&gt;function&lt;/span&gt;() {&lt;br /&gt;        &lt;span class="rem"&gt;// Create new element typeof DIV&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;var&lt;/span&gt; o = $.create(&lt;span class="str"&gt;&amp;#39;div&amp;#39;&lt;/span&gt;, &lt;br /&gt;                        {&lt;span class="str"&gt;&amp;#39;id&amp;#39;&lt;/span&gt;:&lt;span class="str"&gt;&amp;#39;wrapper-header&amp;#39;&lt;/span&gt;, &lt;br /&gt;                         &lt;span class="str"&gt;&amp;#39;class&amp;#39;&lt;/span&gt;:&lt;span class="str"&gt;&amp;#39;header&amp;#39;&lt;/span&gt;}, [&lt;span class="str"&gt;&amp;#39;Hello world!!!&amp;#39;&lt;/span&gt;]);&lt;br /&gt;                        &lt;br /&gt;        &lt;span class="rem"&gt;// Append object o&lt;/span&gt;&lt;br /&gt;        $(&lt;span class="str"&gt;&amp;#39;#wrapper&amp;#39;&lt;/span&gt;).append($(o));&lt;br /&gt;    });&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;wrapper&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=131842" width="1" height="1"&gt;</content><author><name>basil.goldman</name><uri>http://blogs.microsoft.co.il/members/basil.goldman.aspx</uri></author><category term="JavaScript" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/JavaScript/default.aspx" /><category term="UI" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/UI/default.aspx" /><category term="jQuery" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/jQuery/default.aspx" /><category term="HTML" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/HTML/default.aspx" /><category term="DEV" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/DEV/default.aspx" /></entry><entry><title>JavaScript Repeater Control (dataRepeater) - from jQuery.Presenter.1.0.8 - UIControls Library</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/basil/archive/2008/08/20/javascript-repeater-control-datarepeater-using-jquery-presenter-1-0-8-uicontrols-library.aspx" /><id>http://blogs.microsoft.co.il/blogs/basil/archive/2008/08/20/javascript-repeater-control-datarepeater-using-jquery-presenter-1-0-8-uicontrols-library.aspx</id><published>2008-08-20T01:45:00Z</published><updated>2008-08-20T01:45:00Z</updated><content type="html">&lt;br /&gt;
&lt;p&gt;In this post, I want to present a new JavaScript Repeater Control from my latest UIControls Library jQuery.Presenter 1.0.8. This control like (ASP.NET Repeater Control) created using jQuery Library 1.2.3 and support for later versions.&lt;br /&gt;
It&amp;#39;s a free open source script...&lt;br /&gt;&lt;br /&gt;
Enjoy...&lt;/p&gt;
&lt;br /&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; * jQuery.Presenter 1.0.8&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; * Author: (basil.goldman@gmail.com)&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; * Description: developed and tested on jQuery 1.2.1, &lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; * support and fixes for jQuery 1.2.6&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; */&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;jQuery.fn.presenter = function() {&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (arguments.length == 0) &lt;span class="kwrd"&gt;return&lt;/span&gt; [];&lt;br /&gt;    var args = arguments[0] || {};&lt;br /&gt;&lt;br /&gt;    &lt;span class="rem"&gt;// Global arguments&lt;/span&gt;&lt;br /&gt;    var controlType = args.controlType;&lt;br /&gt;    var dataSource = args.dataSource;&lt;br /&gt;    var headerTemplate = args.headerTemplate;&lt;br /&gt;    var itemTemplate = args.itemTemplate;&lt;br /&gt;    var separatorTemplate = args.separatorTemplate;&lt;br /&gt;    var footerTemplate = args.footerTemplate;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;// Global library control types&lt;/span&gt;&lt;br /&gt;    var properties = {&lt;br /&gt;        &lt;span class="rem"&gt;// Control types&lt;/span&gt;&lt;br /&gt;        controlTypes:[[&lt;span class="str"&gt;&amp;#39;dataRepeater&amp;#39;&lt;/span&gt;]]&lt;br /&gt;    };&lt;br /&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt;(!jQuery.isNull(controlType) &amp;amp;&amp;amp; &lt;br /&gt;        (controlType.toLowerCase() == &lt;br /&gt;        String(properties.controlTypes[0]).toLowerCase())) {&lt;br /&gt;        &lt;br /&gt;        var o = $(&lt;span class="kwrd"&gt;this&lt;/span&gt;[0]), i = 0;&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt;( jQuery.isArray( dataSource ) ) {&lt;br /&gt;            var q = dataSource.length;&lt;br /&gt;            &lt;span class="rem"&gt;// Append headerTemplate&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;( !jQuery.isNull( headerTemplate )) &lt;br /&gt;                $(o).append($(headerTemplate));&lt;br /&gt;            &lt;br /&gt;            &lt;span class="kwrd"&gt;for&lt;/span&gt;( ; i &amp;lt; q; i++ ) {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt;( !jQuery.isNull( itemTemplate ) ) {&lt;br /&gt;&lt;br /&gt;                    &lt;span class="rem"&gt;// Replace {x} - using prototype &lt;/span&gt;&lt;br /&gt;                    &lt;span class="rem"&gt;// function String.format&lt;/span&gt;&lt;br /&gt;                    $(o).append(&lt;br /&gt;                        $(String.format(itemTemplate, dataSource[i])));&lt;br /&gt;&lt;br /&gt;                    &lt;span class="rem"&gt;// Append separatorTemplate&lt;/span&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt;( !jQuery.isNull( separatorTemplate ) &amp;amp;&amp;amp;&lt;br /&gt;                        i != (dataSource.length - 1) ) {&lt;br /&gt;                        $(o).append($(separatorTemplate));&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="rem"&gt;// Append footerTemplate&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;( !jQuery.isNull( footerTemplate )) &lt;br /&gt;                $(o).append($(footerTemplate));&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;String.format = function() {&lt;br /&gt;    var s = arguments[0] || {}, i = 0;&lt;br /&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt;( ; i &amp;lt; arguments[1].length; i++ ) {&lt;br /&gt;        var reg = &lt;span class="kwrd"&gt;new&lt;/span&gt; RegExp(&lt;span class="str"&gt;&amp;quot;\\{&amp;quot;&lt;/span&gt;+i+&lt;span class="str"&gt;&amp;quot;\\}&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;gm&amp;quot;&lt;/span&gt;);&lt;br /&gt;        s = s.replace(reg, arguments[1][i]);&lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; s;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;jQuery.extend({&lt;br /&gt;    &lt;span class="rem"&gt;// Utilities&lt;/span&gt;&lt;br /&gt;    isArray: function(v){&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(v) == &lt;span class="str"&gt;&amp;#39;object&amp;#39;&lt;/span&gt; &amp;amp;&amp;amp; &lt;br /&gt;                v != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; &lt;br /&gt;                &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(v.length) == &lt;span class="str"&gt;&amp;#39;number&amp;#39;&lt;/span&gt;;&lt;br /&gt;    },&lt;br /&gt;    isNull: function(o) { &lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt;(o == &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; o == undefined) { &lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;; &lt;br /&gt;        } &lt;br /&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt; &lt;br /&gt;    }&lt;br /&gt;});&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;p&gt;HTML example for declarartion dataRepeater control&lt;/p&gt;
&lt;br /&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;PUBLIC&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;/span&gt; &lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Untitled Page&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt; &lt;br /&gt;        &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;../App_Scripts/jQuery/jQuery-1.2.3.js&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &amp;lt;script type=&lt;span class="str"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt; &lt;br /&gt;        src=&lt;span class="str"&gt;&amp;quot;../App_Scripts/Data/Presenter.1.0.8.js&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;script type=&lt;span class="str"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; itemTemplate = &lt;span class="str"&gt;&amp;quot;&amp;lt;a href=&amp;#39;{1}&amp;#39; title=&amp;#39;{0}&amp;#39;&amp;gt;{0}&amp;lt;/a&amp;gt;&amp;quot;&lt;/span&gt;;&lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; separatorTemplate = &lt;span class="str"&gt;&amp;quot;&amp;lt;span style=&amp;#39;color: #fff&amp;#39;&amp;gt; | &amp;lt;/span&amp;gt;&amp;quot;&lt;/span&gt;;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; dataObject = [[&lt;span class="str"&gt;&amp;#39;Blogs&amp;#39;&lt;/span&gt;, &lt;span class="str"&gt;&amp;#39;http://blogs.microsoft.com&amp;#39;&lt;/span&gt;],&lt;br /&gt;                      [&lt;span class="str"&gt;&amp;#39;About&amp;#39;&lt;/span&gt;, &lt;span class="str"&gt;&amp;#39;http://about.aspx&amp;#39;&lt;/span&gt;],&lt;br /&gt;                      [&lt;span class="str"&gt;&amp;#39;Blogs&amp;#39;&lt;/span&gt;, &lt;span class="str"&gt;&amp;#39;http://blogs.microsoft.com&amp;#39;&lt;/span&gt;],&lt;br /&gt;                      [&lt;span class="str"&gt;&amp;#39;About&amp;#39;&lt;/span&gt;, &lt;span class="str"&gt;&amp;#39;http://about.aspx&amp;#39;&lt;/span&gt;]];&lt;br /&gt;                      &lt;br /&gt;    $(document).ready(&lt;span class="kwrd"&gt;function&lt;/span&gt;(){&lt;br /&gt;        &lt;br /&gt;        $(&lt;span class="str"&gt;&amp;#39;#side-menu&amp;#39;&lt;/span&gt;).presenter({controlType: &lt;span class="str"&gt;&amp;#39;dataRepeater&amp;#39;&lt;/span&gt;, &lt;br /&gt;            dataSource: dataObject, &lt;br /&gt;            headerTemplate: &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;br /&gt;            itemTemplate: itemTemplate, &lt;br /&gt;            separatorTemplate: separatorTemplate, &lt;br /&gt;            footerTemplate: &lt;span class="kwrd"&gt;null&lt;/span&gt;});&lt;br /&gt;    });&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;side-menu&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=131598" width="1" height="1"&gt;</content><author><name>basil.goldman</name><uri>http://blogs.microsoft.co.il/members/basil.goldman.aspx</uri></author><category term="JavaScript" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/JavaScript/default.aspx" /><category term="UI" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/UI/default.aspx" /><category term="jQuery" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/jQuery/default.aspx" /><category term="Custom Controls" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/Custom+Controls/default.aspx" /><category term="HTML" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/HTML/default.aspx" /><category term="DEV" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/DEV/default.aspx" /></entry><entry><title>AnimatedTextDemo (WPF Screen Saver)</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/basil/archive/2008/06/30/animatedtextdemo-wpf-screen-saver.aspx" /><id>http://blogs.microsoft.co.il/blogs/basil/archive/2008/06/30/animatedtextdemo-wpf-screen-saver.aspx</id><published>2008-06-30T13:43:00Z</published><updated>2008-06-30T13:43:00Z</updated><content type="html">&lt;p&gt;Two days ago I find in Google search the great post of Josh Smith on WPF here a link &lt;a href="http://joshsmithonwpf.wordpress.com/2007/08/13/animating-text-in-wpf/"&gt;&lt;font color="#800080"&gt;http://joshsmithonwpf.wordpress.com/2007/08/13/animating-text-in-wpf/&lt;/font&gt;&lt;/a&gt; about advanced animation (manipulation) for text using Microsoft WPF Storyboard and System.Windows.Media.TextEffect&lt;/p&gt;
&lt;p&gt;I liked his example and was created WPF Screen Saver project for my company employs and everyone who want. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://code.msdn.microsoft.com/animatedtextdemo/Release/ProjectReleases.aspx?ReleaseId=1227"&gt;&lt;font color="#800080"&gt;Download from MSDN Code Gallery - Screen Saver and Source Code of AnimatedTextDemo (WPF Screen Saver)&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;or &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://code.google.com/p/animatedtextdemo/"&gt;Download from Google Code - Screen Saver and Source Code of AnimatedTextDemo (WPF Screen Saver) &lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Thanks for Josh Smith (WPF tutorial)&lt;br /&gt;Enjoy!!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=110022" width="1" height="1"&gt;</content><author><name>basil.goldman</name><uri>http://blogs.microsoft.co.il/members/basil.goldman.aspx</uri></author><category term="WPF" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/WPF/default.aspx" /><category term="C#" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/C_2300_/default.aspx" /><category term="UI" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/UI/default.aspx" /><category term="TECH" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/TECH/default.aspx" /><category term="DEV" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/DEV/default.aspx" /></entry><entry><title>Understand prototype in JavaScript (JavaScript prototype)</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/basil/archive/2008/02/26/understanding-prototype-in-javascript.aspx" /><id>http://blogs.microsoft.co.il/blogs/basil/archive/2008/02/26/understanding-prototype-in-javascript.aspx</id><published>2008-02-25T22:36:00Z</published><updated>2008-02-25T22:36:00Z</updated><content type="html">
&lt;p&gt;Understand prototype in JavaScript&lt;/p&gt;
&lt;p&gt;Hi Guy’s&lt;/p&gt;
&lt;p&gt;Sorry on this syntaxed post, but I think for understand syntax you will read. &lt;br /&gt;Follow my comments&lt;/p&gt;
&lt;p&gt;Hope!!!&lt;/p&gt;
&lt;br /&gt;


&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;// Namespace core&lt;/span&gt;
function core() { &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.constructor(&lt;span class="str"&gt;&amp;#39;1.0.0.0&amp;#39;&lt;/span&gt;); }
core.prototype = {    
    &lt;span class="rem"&gt;// String type&lt;/span&gt;
    version:&lt;span class="str"&gt;&amp;#39;&amp;#39;&lt;/span&gt;,
    constructor: function(version){ &lt;span class="kwrd"&gt;this&lt;/span&gt;.version = version; },
    remote:{
        &lt;span class="rem"&gt;// Empty&lt;/span&gt;
    },
    web:{
      ui:{
        controls:{
            message:{
                show: function(&lt;span class="kwrd"&gt;value&lt;/span&gt;){ alert(&lt;span class="kwrd"&gt;value&lt;/span&gt;) }
            }
        }
      } 
    }
}; 

&lt;span class="rem"&gt;// Declare variables&lt;/span&gt;
&lt;span class="rem"&gt;// Inherit namespace core&lt;/span&gt;
var system = &lt;span class="kwrd"&gt;new&lt;/span&gt; core();
&lt;span class="rem"&gt;// controls is an object contain core.web.ui.controls &lt;/span&gt;
var controls = system.web.ui.controls;

&lt;span class="rem"&gt;// Call to core.web.ui.controls.message.show() &lt;/span&gt;
&lt;span class="rem"&gt;// using var controls&lt;/span&gt;
controls.message.show(&lt;span class="str"&gt;&amp;#39;Hello World!!!&amp;#39;&lt;/span&gt;); 

&lt;span class="rem"&gt;// Extend new function &amp;quot;hide&amp;quot; to &lt;/span&gt;
&lt;span class="rem"&gt;// core.web.ui.controls.message&lt;/span&gt;
controls.message.constructor.prototype.hide = function() {
    &lt;span class="rem"&gt;// TODO&lt;/span&gt;
    controls.message.show(&lt;span class="str"&gt;&amp;#39;Im a hide() function in core.web.ui.controls.message&amp;#39;&lt;/span&gt;);
} 

&lt;span class="rem"&gt;// Call to new function hide() extended in&lt;/span&gt;
&lt;span class="rem"&gt;// core.web.ui.controls.message using declared&lt;/span&gt;
&lt;span class="rem"&gt;// object system&lt;/span&gt;
controls.message.hide(); 

&lt;span class="rem"&gt;// Also you can extend write() function&lt;/span&gt;
system.web.ui.controls.message.constructor.prototype.write = function() {
    alert(&lt;span class="str"&gt;&amp;#39;write&amp;#39;&lt;/span&gt;);
} 

&lt;span class="rem"&gt;// Call to new function write() extended in &lt;/span&gt;
&lt;span class="rem"&gt;// core.web.ui.controls.message using declared object system&lt;/span&gt;
controls.message.write(); 

&lt;span class="rem"&gt;// Extend new namespace access to core.remote and &lt;/span&gt;
&lt;span class="rem"&gt;// then extend new function get&lt;/span&gt;
system.remote.constructor.prototype.access = {
    get: function(){ alert(&lt;span class="str"&gt;&amp;#39;ok&amp;#39;&lt;/span&gt;) }
} 

&lt;span class="rem"&gt;// Extend new variable of Array type in core.remote&lt;/span&gt;
system.remote.constructor.prototype.__last = [[&lt;span class="str"&gt;&amp;#39;0&amp;#39;&lt;/span&gt;,&lt;span class="str"&gt;&amp;#39;0&amp;#39;&lt;/span&gt;],[&lt;span class="str"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;,&lt;span class="str"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;]];
&lt;span class="rem"&gt;// New variable of String type&lt;/span&gt;
system.remote.constructor.prototype.username = &lt;span class="str"&gt;&amp;#39;&amp;#39;&lt;/span&gt;; 

&lt;span class="rem"&gt;// Call to core.remote.access.get()&lt;/span&gt;
system.remote.access.get(); 

&lt;span class="rem"&gt;// Alert __last variable length from core.remote.__last = []&lt;/span&gt;
alert(system.remote.__last.length);    &lt;/pre&gt;

&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=61435" width="1" height="1"&gt;</content><author><name>basil.goldman</name><uri>http://blogs.microsoft.co.il/members/basil.goldman.aspx</uri></author><category term="JavaScript" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/JavaScript/default.aspx" /></entry><entry><title>How to set absolutePath using CSS expression for AlphaImageLoader (IE) *.png files</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/basil/archive/2008/02/25/how-to-set-absolutepath-using-expression-for-alphaimageloader-ie-png-files.aspx" /><id>http://blogs.microsoft.co.il/blogs/basil/archive/2008/02/25/how-to-set-absolutepath-using-expression-for-alphaimageloader-ie-png-files.aspx</id><published>2008-02-25T08:46:00Z</published><updated>2008-02-25T08:46:00Z</updated><content type="html">&lt;p&gt;&lt;em&gt;&lt;strong&gt;TIP&lt;/strong&gt;: &amp;quot;Set absolutePath using CSS expression for &lt;strong&gt;AlphaImageLoader&lt;/strong&gt; (IE) *.png files&amp;quot;.&lt;br /&gt;&lt;/em&gt;So what you can do to write absolute path in CSS files not like &amp;quot;HARD CODE&amp;quot;&lt;/p&gt;
&lt;p&gt;Here attached&amp;nbsp;below examples CSS syntax.&lt;/p&gt;
&lt;p&gt;Before:&lt;/p&gt;
&lt;p&gt;&lt;span style="COLOR:red;"&gt;_filter&lt;/span&gt;&lt;span&gt;&lt;span style="COLOR:#000000;"&gt;:&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;progid:DXImageTransform.Microsoft.AlphaImageLoader(src=&amp;#39;/ machine/app_resources/ui/images/wrapper.png&amp;#39;,sizingMethod=&amp;#39;image&amp;#39;)&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;After:&lt;/p&gt;
&lt;p&gt;&lt;span style="COLOR:red;"&gt;_filter&lt;/span&gt;&lt;span&gt;&lt;span style="COLOR:#000000;"&gt;: &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;expression(&amp;quot;progid:DXImageTransform.Microsoft.AlphaImageLoader(src=&amp;#39;&amp;quot;+&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;absolutePath&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;+&amp;quot;wrapper.png&amp;#39;, sizingMethod=&amp;#39;image&amp;#39;)&amp;quot;)&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DESCRIPTION:&lt;/strong&gt; The absolutePath - is javascript variable get this value &lt;span style="COLOR:#a31515;"&gt;&amp;quot;/machine/app_resources/ui/images/&amp;quot; &lt;/span&gt;and declared between HTML &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;head&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;head&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt; &lt;/span&gt;block of page.&lt;br /&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; JavaScript variable must to be declared before including CSS files see the next example.&lt;br /&gt;&lt;/p&gt;&lt;span style="COLOR:#800000;"&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:#800000;"&gt;&lt;font color="#0000ff"&gt;
&lt;p&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;head&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;title&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;font color="#000000"&gt;...&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;title&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;script&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:red;"&gt;type&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;var&lt;/span&gt;&lt;font color="#000000"&gt; absolutePath = &lt;/font&gt;&lt;span style="COLOR:#a31515;"&gt;&amp;quot;/machine/app_resources/ui/images/&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;script&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;link&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="COLOR:red;"&gt;href&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt;&lt;span style="BACKGROUND:yellow;"&gt;&amp;lt;%&lt;/span&gt;=ResolveUrl(&amp;quot;~/&amp;quot;) &lt;span style="BACKGROUND:yellow;"&gt;%&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font color="#000000"&gt;&lt;span&gt;&lt;a class="" href="http://www.adp-gmbh.ch/web/css/expression.html" target="_blank"&gt;Read more about&amp;nbsp;CSS Expression&lt;/a&gt; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=61295" width="1" height="1"&gt;</content><author><name>basil.goldman</name><uri>http://blogs.microsoft.co.il/members/basil.goldman.aspx</uri></author><category term="JavaScript" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/JavaScript/default.aspx" /><category term="CSS" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/CSS/default.aspx" /><category term="HTML" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/HTML/default.aspx" /></entry><entry><title>ASP.NET 2 Custom Control for Google "UrchinTracker" as sample</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/basil/archive/2008/02/21/asp-net-2-custom-control-for-google-quot-urchintracker-quot.aspx" /><id>http://blogs.microsoft.co.il/blogs/basil/archive/2008/02/21/asp-net-2-custom-control-for-google-quot-urchintracker-quot.aspx</id><published>2008-02-21T13:38:00Z</published><updated>2008-02-21T13:38:00Z</updated><content type="html">&lt;div style="CLEAR:both;MARGIN-TOP:8px;COLOR:#333;"&gt;
&lt;p&gt;&lt;br /&gt;Simple example&amp;nbsp;to create ASP.NET 2 Custom Control for Google &amp;quot;UrchinTracker&amp;quot;&lt;/p&gt;
&lt;p&gt;1) Edit Web.config file add&amp;nbsp;the next code&amp;nbsp;between &lt;span style="COLOR:#993300;"&gt;&amp;lt;system.web&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="COLOR:#993300;"&gt;&amp;lt;pages&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;controls&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add &lt;span style="COLOR:#ff0000;"&gt;namespace&lt;/span&gt;=&amp;quot;Render.Web.UI.CustomControls&amp;quot; &lt;span style="COLOR:#ff0000;"&gt;assembly&lt;/span&gt;=&amp;quot;App_Code&amp;quot;&amp;nbsp;&lt;span style="COLOR:#ff0000;"&gt;tagPrefix&lt;/span&gt;=&amp;quot;render&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/controls&amp;gt;&lt;br /&gt;&amp;lt;/pages&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;2) Create a new class file&amp;nbsp;*.cs in App_Code/Render/Web/UI/CustomControls&lt;/p&gt;
&lt;div style="CLEAR:both;MARGIN-TOP:8px;COLOR:#333;"&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;using&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt; System;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;using&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt; System.Web.UI;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;using&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt; System.Text;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;using&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt; System.Web.UI.WebControls;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:gray;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;COLOR:green;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:8pt;COLOR:gray;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:gray;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;COLOR:green;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt; Summary description for UrchinTracker&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:gray;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;///&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;COLOR:green;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:8pt;COLOR:gray;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;namespace&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt; Render.Web.UI.CustomControls {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;// Inherit Control&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;class&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;UrchinTracker&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; : &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;Control&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt; Fields&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;string&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; userAccount;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt; Properties&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;string&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; UserAccount {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; { &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; userAccount; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; { userAccount = &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt;; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;#region&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt; Constructor&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; UrchinTracker() {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;//&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;// TODO: Add constructor logic here&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;//&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;string&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; GetOutput() {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;StringBuilder&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; output = &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;StringBuilder&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt;();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; (!&lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;String&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt;.IsNullOrEmpty(UserAccount)) {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;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&gt;output.AppendFormat(&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:#a31515;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;@&amp;quot;&amp;lt;script src=&amp;quot;&amp;quot; mce_src=&amp;quot;&amp;quot;http://www.google-analytics.com/urchin.js&amp;quot;&amp;quot; type=&amp;quot;&amp;quot;text/javascript&amp;quot;&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:#a31515;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;lt;script type=&amp;quot;&amp;quot;text/javascript&amp;quot;&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:#a31515;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;_uacct = &amp;quot;&amp;quot;{0}&amp;quot;&amp;quot;;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:#a31515;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;urchinTracker();&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:#a31515;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;COLOR:#a31515;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;, UserAccount);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; output.ToString();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;protected&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;override&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; Render(&lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;HtmlTextWriter&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt; writer) {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.Write(GetOutput());&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;base&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt;.Render(writer);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" dir="ltr" style="MARGIN:0cm 0cm 0pt;DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;span style="COLOR:#000000;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:Arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;3) Build project then add control to ASP.NET Page&lt;/p&gt;
&lt;p&gt;&lt;span style="COLOR:#993300;"&gt;&amp;lt;render:UrchineTracker&lt;/span&gt; &lt;span style="COLOR:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="COLOR:#0000ff;"&gt;=&amp;quot;UrchineTracker1&amp;quot;&lt;/span&gt; &lt;span style="COLOR:#ff0000;"&gt;UserAccount&lt;/span&gt;&lt;span style="COLOR:#0000ff;"&gt;=&amp;quot;1234567890&amp;quot;&lt;/span&gt; &lt;span style="COLOR:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="COLOR:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="COLOR:#993300;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Using this&amp;nbsp;example you can create riched, and advanced Custom Controls for you projects.&lt;br /&gt;&lt;br /&gt;I&amp;#39;m working at this time on the package of custom controls for ASP.NET 2&amp;nbsp;&amp;amp; WPF to make it easy&amp;nbsp;our development live...&lt;br /&gt;The Beta comming up...&amp;nbsp;in Mar 2008&lt;/p&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=60589" width="1" height="1"&gt;</content><author><name>basil.goldman</name><uri>http://blogs.microsoft.co.il/members/basil.goldman.aspx</uri></author><category term="C#" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/C_2300_/default.aspx" /><category term="ASP.NET 2" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/ASP.NET+2/default.aspx" /><category term="Custom Controls" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/Custom+Controls/default.aspx" /></entry><entry><title>How to write JavaScript right?</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/basil/archive/2008/02/19/how-to-write-javascript-is-right.aspx" /><id>http://blogs.microsoft.co.il/blogs/basil/archive/2008/02/19/how-to-write-javascript-is-right.aspx</id><published>2008-02-19T12:20:00Z</published><updated>2008-02-19T12:20:00Z</updated><content type="html">&lt;p&gt;Ok guy&amp;#39;s.&lt;br /&gt;We are having 3 ways (Prototype, Object and Closure) to write JavaScript but I like at once strong and beautiful &amp;quot;Prototype&amp;quot;.&lt;/p&gt;
&lt;p&gt;Here attached example for Prototype way&amp;nbsp;(with Namespaces, Classes and Methods as in C#).&lt;/p&gt;
&lt;p&gt;&lt;span style="COLOR:#008000;"&gt;// Namespace Core&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR:#0000ff;"&gt;function&lt;/span&gt; core() {&lt;span style="COLOR:#0000ff;"&gt; return this&lt;/span&gt;.constructor(&lt;span style="COLOR:#800000;"&gt;&amp;#39;release 1.2.3&amp;#39;&lt;/span&gt;); }&lt;br /&gt;core.prototype = {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; version:&lt;span style="COLOR:#800000;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; constructor: &lt;span style="COLOR:#0000ff;"&gt;function&lt;/span&gt;(version) { &lt;span style="COLOR:#0000ff;"&gt;this&lt;/span&gt;.version = version },&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; remote:{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; access:{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get:&lt;span style="COLOR:#0000ff;"&gt;function&lt;/span&gt;(url, data, callback) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;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 style="COLOR:#008000;"&gt;// Do&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; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; web:{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ui:{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; init:&lt;span style="COLOR:#0000ff;"&gt;function&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; controls:{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; message:{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; show: &lt;span style="COLOR:#0000ff;"&gt;function&lt;/span&gt;(title, context) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;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 style="COLOR:#008000;"&gt;// Do&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; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;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; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; user:{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info:{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get: &lt;span style="COLOR:#0000ff;"&gt;function&lt;/span&gt;(userName) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;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 style="COLOR:#0000ff;"&gt;var&lt;/span&gt; property = [];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; property = &lt;span style="COLOR:#0000ff;"&gt;this&lt;/span&gt;.prototype.remote.access.get(&lt;span style="COLOR:#800000;"&gt;&amp;#39;http://&amp;#39;&lt;/span&gt;,{rq:userName}, &lt;span style="COLOR:#0000ff;"&gt;function&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; &lt;span style="COLOR:#0000ff;"&gt;return&lt;/span&gt; property;&lt;br /&gt;&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; },&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; remove: &lt;span style="COLOR:#0000ff;"&gt;function&lt;/span&gt;(userName) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#008000;"&gt;// Do&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;};&lt;/p&gt;
&lt;p&gt;&lt;span style="COLOR:#008000;"&gt;// Declare&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR:#0000ff;"&gt;var&lt;/span&gt; system = &lt;span style="COLOR:#0000ff;"&gt;new&lt;/span&gt; core();&lt;br /&gt;&lt;span style="COLOR:#0000ff;"&gt;var&lt;/span&gt; userProperty =&amp;nbsp; system.user.info.get(&lt;span style="COLOR:#800000;"&gt;&amp;#39;Administrator&amp;#39;&lt;/span&gt;);&lt;br /&gt;&lt;span style="COLOR:#0000ff;"&gt;if&lt;/span&gt;(userProperty.length &amp;gt; 0) { system.web.ui.controls.message.show(&lt;span style="COLOR:#800000;"&gt;&amp;#39;Hello World!!!&amp;#39;&lt;/span&gt;,&lt;span style="COLOR:#800000;"&gt;&amp;#39;Text&amp;#39;&lt;/span&gt;); }&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=60018" width="1" height="1"&gt;</content><author><name>basil.goldman</name><uri>http://blogs.microsoft.co.il/members/basil.goldman.aspx</uri></author><category term="JavaScript" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/JavaScript/default.aspx" /></entry><entry><title>JavaScript String.format &amp; StringBuilder</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/basil/archive/2008/02/18/string-format-amp-stringbuilder-javascript.aspx" /><id>http://blogs.microsoft.co.il/blogs/basil/archive/2008/02/18/string-format-amp-stringbuilder-javascript.aspx</id><published>2008-02-18T15:52:00Z</published><updated>2008-02-18T15:52:00Z</updated><content type="html">
&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;// String.Format&lt;/span&gt;
String.format = function() {
     var s = arguments[0];
        &lt;span class="kwrd"&gt;for&lt;/span&gt; (var i = 0;i&amp;lt;arguments.length-1;i++){       
            var reg = &lt;span class="kwrd"&gt;new&lt;/span&gt; RegExp(&lt;span class="str"&gt;&amp;quot;\\{&amp;quot;&lt;/span&gt;+i+&lt;span class="str"&gt;&amp;quot;\\}&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;gm&amp;quot;&lt;/span&gt;);             
            s = s.replace(reg,arguments[i+1]);
        }

        &lt;span class="kwrd"&gt;return&lt;/span&gt; s;
}

String.prototype.format = function() {     
    var s = &lt;span class="kwrd"&gt;this&lt;/span&gt;;
        &lt;span class="kwrd"&gt;for&lt;/span&gt; (var i = 0;i&amp;lt;arguments.length;i++){         
            var reg = &lt;span class="kwrd"&gt;new&lt;/span&gt; RegExp(&lt;span class="str"&gt;&amp;quot;\\{&amp;quot;&lt;/span&gt;+i+&lt;span class="str"&gt;&amp;quot;\\}&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;gm&amp;quot;&lt;/span&gt;);                         
            s = s.replace(reg,arguments[i]);
        }

        &lt;span class="kwrd"&gt;return&lt;/span&gt; s;  
}

&lt;span class="rem"&gt;// StringBuilder&lt;/span&gt;
function StringBuilder(&lt;span class="kwrd"&gt;value&lt;/span&gt;) {
        &lt;span class="kwrd"&gt;this&lt;/span&gt;.strings = &lt;span class="kwrd"&gt;new&lt;/span&gt; Array(&lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);
        &lt;span class="kwrd"&gt;this&lt;/span&gt;.append(&lt;span class="kwrd"&gt;value&lt;/span&gt;);
}

&lt;span class="rem"&gt;// Appends the given value to the end of this instance.&lt;/span&gt;
StringBuilder.prototype.append = function (&lt;span class="kwrd"&gt;value&lt;/span&gt;) {
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;value&lt;/span&gt;) { &lt;span class="kwrd"&gt;this&lt;/span&gt;.strings.push(&lt;span class="kwrd"&gt;value&lt;/span&gt;); }
}

&lt;span class="rem"&gt;// Clears the string buffer&lt;/span&gt;
StringBuilder.prototype.clear = function () {
        &lt;span class="kwrd"&gt;this&lt;/span&gt;.strings.length = 1;
}

&lt;span class="rem"&gt;// Converts this instance to a String.&lt;/span&gt;
StringBuilder.prototype.toString = function () {
        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.strings.join(&lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);
}

&lt;span class="rem"&gt;// Create a StringBuilder&lt;/span&gt;
var output = &lt;span class="kwrd"&gt;new&lt;/span&gt; StringBuilder();

&lt;span class="rem"&gt;// Append some text&lt;/span&gt;
output.append(&lt;span class="str"&gt;&amp;quot;Lorem ipsum dolor sit amet, consectetuer adipiscing elit, &amp;quot;&lt;/span&gt;);
output.append(&lt;span class="str"&gt;&amp;quot;sed diem nonummy nibh euismod tincidunt ut lacreet dolore &amp;quot;&lt;/span&gt;);
output.append(&lt;span class="str"&gt;&amp;quot;magna aliguam erat volutpat. &amp;quot;&lt;/span&gt;);

var content = &lt;span class="str"&gt;&amp;quot;World!!!&amp;quot;&lt;/span&gt;;

output.append(String.format(&lt;span class="str"&gt;&amp;quot;{0}{1}&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;Hello &amp;quot;&lt;/span&gt;,content));

&lt;span class="rem"&gt;// Get the full string value&lt;/span&gt;
document.getElementById(&lt;span class="str"&gt;&amp;quot;context&amp;quot;&lt;/span&gt;).innerHTML = output.toString();&lt;/pre&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=59737" width="1" height="1"&gt;</content><author><name>basil.goldman</name><uri>http://blogs.microsoft.co.il/members/basil.goldman.aspx</uri></author><category term="JavaScript" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/JavaScript/default.aspx" /><category term="HTML" scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/HTML/default.aspx" /></entry><entry><title>Wow... People i've really started post on blogs.microsoft.co.il</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/basil/archive/2008/02/18/wow-people-i-ve-realy-started-post-on-blogs-microsoft-co-il.aspx" /><id>http://blogs.microsoft.co.il/blogs/basil/archive/2008/02/18/wow-people-i-ve-realy-started-post-on-blogs-microsoft-co-il.aspx</id><published>2008-02-18T10:34:00Z</published><updated>2008-02-18T10:34:00Z</updated><content type="html">&lt;p&gt;Hi all.&lt;br /&gt;This my first blog&amp;nbsp;on the microsoft blogs. &lt;br /&gt;I&amp;#39;m really happy... and I&amp;nbsp;wana say &amp;quot;More thanks to &lt;a class="" href="http://blogs.microsoft.co.il/blogs/shair/" target="_blank"&gt;Shai Raiten&lt;/a&gt; for help me&amp;nbsp;to create this Blog&amp;quot;.&lt;/p&gt;
&lt;p&gt;Thanks Shai.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=59665" width="1" height="1"&gt;</content><author><name>basil.goldman</name><uri>http://blogs.microsoft.co.il/members/basil.goldman.aspx</uri></author><category term="Thoughts " scheme="http://blogs.microsoft.co.il/blogs/basil/archive/tags/Thoughts+/default.aspx" /></entry></feed>