<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Tips &amp; Tricks</title><link>http://forums.asp.net/53.aspx</link><description>Cool code and exciting examples, provided by our members.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Re: A gift to you all: An Atlas client-side tabstrip</title><link>http://forums.asp.net/thread/1495844.aspx</link><pubDate>Wed, 13 Dec 2006 15:49:04 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1495844</guid><dc:creator>wdupree</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1495844.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=1495844</wfw:commentRss><description>&lt;p&gt;Hey everyone. Here's my small contribution to this great control! I noticed that this control didn't work correctly in Firefox - now it should (only tested in Firefox 2 though). Thanks to Shazam999 &amp;amp; valasekj for all of their previous work! I left the original code, but commented out the line to notate the change that was required for it to work in Firefox.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="coloredcode"&gt;&lt;span class="cmt"&gt;// ASP.NET AJAX Tabset View&lt;br /&gt;// Created by Shazam999&lt;br /&gt;// Beta 2 compatibility by valasekj&lt;/span&gt;&lt;span class="cmt"&gt;&lt;br /&gt;// Last Modified: 12/13/06 - Firefox compatibility&lt;/span&gt;
Type.registerNamespace(&lt;span class="st"&gt;'Dice'&lt;/span&gt;);&lt;br /&gt;Dice.Tabset = function(associatedElement) {&lt;br /&gt;    Dice.Tabset.initializeBase(&lt;span class="kwd"&gt;this&lt;/span&gt;, [associatedElement]);&lt;br /&gt;    &lt;span class="kwd"&gt;this&lt;/span&gt;._viewIndex = 0;&lt;br /&gt;    &lt;span class="kwd"&gt;this&lt;/span&gt;._selectedTabStyle = &lt;span class="st"&gt;''&lt;/span&gt;;&lt;br /&gt;    &lt;span class="kwd"&gt;this&lt;/span&gt;._viewHeads = [];&lt;br /&gt;    &lt;span class="kwd"&gt;this&lt;/span&gt;._viewPanes = [];&lt;br /&gt;    &lt;span class="kwd"&gt;this&lt;/span&gt;._viewClickHandler;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Dice.Tabset.prototype = {&lt;br /&gt;    get_viewIndex:function() {&lt;br /&gt;        &lt;span class="kwd"&gt;return this&lt;/span&gt;._viewIndex;&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    set_viewIndex:function(&lt;span class="kwd"&gt;value&lt;/span&gt;) {&lt;br /&gt;        &lt;span class="kwd"&gt;if&lt;/span&gt; (&lt;span class="kwd"&gt;this&lt;/span&gt;._viewIndex != &lt;span class="kwd"&gt;value&lt;/span&gt;) {&lt;br /&gt;            &lt;span class="kwd"&gt;this&lt;/span&gt;._viewIndex = &lt;span class="kwd"&gt;value&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwd"&gt;this&lt;/span&gt;._ShowCurrentPane.call(&lt;span class="kwd"&gt;this&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwd"&gt;this&lt;/span&gt;.raisePropertyChanged(&lt;span class="st"&gt;'viewIndex'&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    get_selectedTabStyle:function() {&lt;br /&gt;        &lt;span class="kwd"&gt;return this&lt;/span&gt;._selectedTabStyle;&lt;br /&gt;    } ,&lt;br /&gt;&lt;br /&gt;    set_selectedTabStyle:function(&lt;span class="kwd"&gt;value&lt;/span&gt;) {&lt;br /&gt;        &lt;span class="kwd"&gt;this&lt;/span&gt;._selectedTabStyle = &lt;span class="kwd"&gt;value&lt;/span&gt;;&lt;br /&gt;    } ,&lt;br /&gt;&lt;br /&gt;    dispose:function() {&lt;br /&gt;        &lt;span class="kwd"&gt;if&lt;/span&gt; (&lt;span class="kwd"&gt;this&lt;/span&gt;._viewClickHandler) {&lt;br /&gt;            &lt;span class="kwd"&gt;for&lt;/span&gt; (var i = &lt;span class="kwd"&gt;this&lt;/span&gt;._viewHeads.length - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;                var head = &lt;span class="kwd"&gt;this&lt;/span&gt;._viewHeads[i];&lt;br /&gt;                &lt;span class="kwd"&gt;if&lt;/span&gt; (head) {&lt;br /&gt;                    &lt;span class="cmt"&gt;//head.detachEvent('onclick', this._viewClickHandler); //Changed to below for Firefox compatibility&lt;/span&gt;
                    $removeHandler(head,&lt;span class="st"&gt;'click'&lt;/span&gt;, &lt;span class="kwd"&gt;this&lt;/span&gt;._viewClickHandler);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwd"&gt;this&lt;/span&gt;._viewClickHandler = &lt;span class="kwd"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwd"&gt;this&lt;/span&gt;._viewHeads = &lt;span class="kwd"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwd"&gt;this&lt;/span&gt;._viewPanes = &lt;span class="kwd"&gt;null&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        Dice.Tabset.callBaseMethod(&lt;span class="kwd"&gt;this&lt;/span&gt;, &lt;span class="st"&gt;'dispose'&lt;/span&gt;);&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    initialize:function() {&lt;br /&gt;        Dice.Tabset.callBaseMethod(&lt;span class="kwd"&gt;this&lt;/span&gt;, &lt;span class="st"&gt;'initialize'&lt;/span&gt;);&lt;br /&gt;        &lt;span class="kwd"&gt;this&lt;/span&gt;._viewClickHandler = Function.createDelegate(&lt;span class="kwd"&gt;this&lt;/span&gt;, &lt;span class="kwd"&gt;this&lt;/span&gt;._onViewClick);&lt;br /&gt;&lt;br /&gt;        &lt;span class="cmt"&gt;// Get tabstrip first.&lt;/span&gt;
        var tabstrip;
        var panes;
        var children = &lt;span class="kwd"&gt;this&lt;/span&gt;.get_element().childNodes;&lt;br /&gt;        &lt;span class="kwd"&gt;for&lt;/span&gt; (var i = 0; i &amp;lt; children.length; i++) {&lt;br /&gt;            var child = children[i];&lt;br /&gt;            &lt;span class="kwd"&gt;if&lt;/span&gt; (child.nodeName == &lt;span class="st"&gt;'UL'&lt;/span&gt;) {&lt;br /&gt;                tabstrip = child.childNodes;&lt;br /&gt;                &lt;span class="kwd"&gt;break&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwd"&gt;for&lt;/span&gt; (var i = 0, p = 0; i &amp;lt; tabstrip.length; i++) {&lt;br /&gt;            var child = tabstrip[i];&lt;br /&gt;            &lt;span class="kwd"&gt;if&lt;/span&gt; (child.nodeName == &lt;span class="st"&gt;'LI'&lt;/span&gt;) {&lt;br /&gt;                &lt;span class="cmt"&gt;//this._viewHeads.add(child);&lt;/span&gt;
                Array.add(&lt;span class="kwd"&gt;this&lt;/span&gt;._viewHeads,child);&lt;br /&gt;                child.viewIndex = p++;&lt;br /&gt;                &lt;span class="cmt"&gt;//child.attachEvent('onclick', this._viewClickHandler); //Changed to below for Firefox compatibility&lt;/span&gt;
                $addHandler(child,&lt;span class="st"&gt;'click'&lt;/span&gt;, &lt;span class="kwd"&gt;this&lt;/span&gt;._viewClickHandler);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwd"&gt;for&lt;/span&gt; (var i = 0; i &amp;lt; children.length; i++) {&lt;br /&gt;            var child = children[i];&lt;br /&gt;            &lt;span class="kwd"&gt;if&lt;/span&gt; (child.nodeName == &lt;span class="st"&gt;'DIV'&lt;/span&gt;) {&lt;br /&gt;                Array.add(&lt;span class="kwd"&gt;this&lt;/span&gt;._viewPanes,child);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwd"&gt;this&lt;/span&gt;._ShowCurrentPane.call(&lt;span class="kwd"&gt;this&lt;/span&gt;);&lt;br /&gt;    } ,&lt;br /&gt;&lt;br /&gt;    _onViewClick:function(e) {&lt;br /&gt;        &lt;span class="cmt"&gt;//var pane = window.event.srcElement; //Changed to below for Firefox compatibility&lt;/span&gt;
        var pane = window.&lt;span class="kwd"&gt;event&lt;/span&gt; ? window.&lt;span class="kwd"&gt;event&lt;/span&gt;.srcElement : e ? e.target : &lt;span class="kwd"&gt;null&lt;/span&gt;;&lt;br /&gt;        &lt;span class="kwd"&gt;while&lt;/span&gt; (pane &amp;amp;&amp;amp; (&lt;span class="kwd"&gt;typeof&lt;/span&gt;(pane.viewIndex) == &lt;span class="st"&gt;'undefined'&lt;/span&gt;)) {&lt;br /&gt;            pane = pane.parentNode;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwd"&gt;this&lt;/span&gt;.set_viewIndex(pane.viewIndex);&lt;br /&gt;        &lt;span class="kwd"&gt;return false&lt;/span&gt;;&lt;br /&gt;    } ,&lt;br /&gt;&lt;br /&gt;    _ShowCurrentPane:function() {&lt;br /&gt;        &lt;span class="kwd"&gt;for&lt;/span&gt; (var i = &lt;span class="kwd"&gt;this&lt;/span&gt;._viewPanes.length - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;            var selectedTab = &lt;span class="kwd"&gt;this&lt;/span&gt;._viewHeads[i];&lt;br /&gt;            var pane = &lt;span class="kwd"&gt;this&lt;/span&gt;._viewPanes[i];&lt;br /&gt;            &lt;span class="kwd"&gt;if&lt;/span&gt; (i != &lt;span class="kwd"&gt;this&lt;/span&gt;._viewIndex) {&lt;br /&gt;                selectedTab.className = &lt;span class="st"&gt;''&lt;/span&gt;;&lt;br /&gt;                pane.style.display = &lt;span class="st"&gt;'none'&lt;/span&gt;;&lt;br /&gt;            }&lt;span class="kwd"&gt;else&lt;/span&gt;{&lt;br /&gt;                selectedTab.className = &lt;span class="kwd"&gt;this&lt;/span&gt;._selectedTabStyle;&lt;br /&gt;                pane.style.display = &lt;span class="st"&gt;'block'&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    } ,&lt;br /&gt;&lt;br /&gt;    getDescriptor:function() {&lt;br /&gt;        var td = Dice.Tabset.callBaseMethod(&lt;span class="kwd"&gt;this&lt;/span&gt;, &lt;span class="st"&gt;'getDescriptor'&lt;/span&gt;);&lt;br /&gt;        td.addProperty(&lt;span class="st"&gt;'viewIndex'&lt;/span&gt;, Number);&lt;br /&gt;        td.addProperty(&lt;span class="st"&gt;'selectedTabStyle'&lt;/span&gt;, String);&lt;br /&gt;        &lt;span class="kwd"&gt;return&lt;/span&gt; td;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Dice.Tabset.inheritsFrom(Sys.UI.Control);&lt;br /&gt;Dice.Tabset.registerClass(&lt;span class="st"&gt;'Dice.Tabset'&lt;/span&gt;, Sys.UI.Control);&lt;br /&gt;&lt;span class="kwd"&gt;if&lt;/span&gt; (Sys &amp;amp;&amp;amp; Sys.Application) { Sys.Application.notifyScriptLoaded(); }&lt;/pre&gt;&amp;nbsp;&amp;nbsp;</description></item><item><title>Re: A gift to you all: An Atlas client-side tabstrip</title><link>http://forums.asp.net/thread/1475871.aspx</link><pubDate>Fri, 24 Nov 2006 22:44:33 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1475871</guid><dc:creator>mbarnett</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1475871.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=1475871</wfw:commentRss><description>&lt;p&gt;Great job valasekj!&amp;nbsp; You saved me a bunch of conversion work.&amp;nbsp; Thanks.&lt;/p&gt;
&lt;p&gt;Nice client-side TabStrip from Shazam999&lt;/p&gt;
&lt;p&gt;It is beyond me why this, or something similar, is not in the Control Toolkit...&lt;/p&gt;</description></item><item><title>Re: A gift to you all: An Atlas client-side tabstrip</title><link>http://forums.asp.net/thread/1467269.aspx</link><pubDate>Thu, 16 Nov 2006 12:45:14 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1467269</guid><dc:creator>valasekj</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1467269.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=1467269</wfw:commentRss><description>&lt;p&gt;I&amp;nbsp;made&amp;nbsp;it working under AJAX 1.0 Beta 2.&lt;/p&gt;
&lt;p&gt;The steps 1&amp;nbsp;(took out the closures and followed added prototype members)&amp;nbsp;and 2 (remove the &lt;font size=2&gt;TypeDescriptor and getDescriptor functions&lt;/font&gt;) are OK. The step 3 (xml-script) is wrong, because xml-script So, I had to rewrite it to JavaScript . Additionally the Array class&amp;nbsp;extension was changed and "Array.add" method call had to be changed. &lt;/p&gt;
&lt;p&gt;notifyScriptLoaded is added at the end of file to be loaded by ScriptManager. Not necessary if linked by standard &amp;lt;script ...&amp;gt; tag.&lt;/p&gt;
&lt;p&gt;&lt;font color=#008000 size=2&gt;------------------------------------------------------------------------------------------------------------&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color=#008000 size=2&gt;// JScript File&lt;/font&gt;&lt;/p&gt;&lt;font size=2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#008000 size=2&gt;// Tabset view &lt;/font&gt;&lt;font size=2&gt;
&lt;p&gt;Type.registerNamespace(&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;'Dice'&lt;/font&gt;&lt;font size=2&gt;);
&lt;p&gt;Dice.Tabset = &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;(associatedElement) { 
&lt;p&gt;Dice.Tabset.initializeBase(&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;, [associatedElement]); 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewIndex = 0; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._selectedTabStyle = &lt;/font&gt;&lt;font color=#800000 size=2&gt;''&lt;/font&gt;&lt;font size=2&gt;; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewHeads = []; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewPanes = []; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewClickHandler; 
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;Dice.Tabset.prototype = {&lt;/p&gt;
&lt;p&gt;get_viewIndex: &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;() { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewIndex; 
&lt;p&gt;}, &lt;/p&gt;
&lt;p&gt;set_viewIndex: &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;(value) { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewIndex != value) { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewIndex = value; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._ShowCurrentPane.call(&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;); 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;.raisePropertyChanged(&lt;/font&gt;&lt;font color=#800000 size=2&gt;'viewIndex'&lt;/font&gt;&lt;font size=2&gt;); 
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;}, &lt;/p&gt;
&lt;p&gt;get_selectedTabStyle: &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;() { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._selectedTabStyle; 
&lt;p&gt;} ,&lt;/p&gt;
&lt;p&gt;set_selectedTabStyle: &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;(value) { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._selectedTabStyle = value; 
&lt;p&gt;} ,&lt;/p&gt;
&lt;p&gt;dispose: &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;() { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewClickHandler) { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;for&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; i = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewHeads.length - 1; i &amp;gt;= 0; i--) { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; head = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewHeads[i]; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (head) { 
&lt;p&gt;head.detachEvent(&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;'onclick'&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewClickHandler); 
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewClickHandler = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;null&lt;/font&gt;&lt;font size=2&gt;; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewHeads = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;null&lt;/font&gt;&lt;font size=2&gt;; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewPanes = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;null&lt;/font&gt;&lt;font size=2&gt;; 
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;Dice.Tabset.callBaseMethod(&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#800000 size=2&gt;'dispose'&lt;/font&gt;&lt;font size=2&gt;); 
&lt;p&gt;}, &lt;/p&gt;
&lt;p&gt;initialize: &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;() { 
&lt;p&gt;Dice.Tabset.callBaseMethod(&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#800000 size=2&gt;'initialize'&lt;/font&gt;&lt;font size=2&gt;); 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewClickHandler = Function.createDelegate(&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._onViewClick); 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#008000 size=2&gt;// Get tabstrip first. &lt;/font&gt;&lt;font size=2&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; tabstrip; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; panes; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; children = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;.get_element().childNodes; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;for&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; i = 0; i &amp;lt; children.length; i++) { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; child = children[i]; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (child.nodeName == &lt;/font&gt;&lt;font color=#800000 size=2&gt;'UL'&lt;/font&gt;&lt;font size=2&gt;) { 
&lt;p&gt;tabstrip = child.childNodes; &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;break&lt;/font&gt;&lt;font size=2&gt;; 
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;for&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; i = 0, p = 0; i &amp;lt; tabstrip.length; i++) { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; child = tabstrip[i]; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (child.nodeName == &lt;/font&gt;&lt;font color=#800000 size=2&gt;'LI'&lt;/font&gt;&lt;font size=2&gt;) { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#008000 size=2&gt;//this._viewHeads.add(child); &lt;/font&gt;&lt;font size=2&gt;
&lt;p&gt;Array.add(&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewHeads,child); 
&lt;p&gt;child.viewIndex = p++; &lt;/p&gt;
&lt;p&gt;child.attachEvent(&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;'onclick'&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewClickHandler); 
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;for&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; i = 0; i &amp;lt; children.length; i++) { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; child = children[i]; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (child.nodeName == &lt;/font&gt;&lt;font color=#800000 size=2&gt;'DIV'&lt;/font&gt;&lt;font size=2&gt;) { 
&lt;p&gt;Array.add(&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewPanes,child); 
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._ShowCurrentPane.call(&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;); 
&lt;p&gt;} ,&lt;/p&gt;
&lt;p&gt;_onViewClick: &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;() { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; pane = window.&lt;/font&gt;&lt;font color=#0000ff size=2&gt;event&lt;/font&gt;&lt;font size=2&gt;.srcElement; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;while&lt;/font&gt;&lt;font size=2&gt; (pane &amp;amp;&amp;amp; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;typeof&lt;/font&gt;&lt;font size=2&gt;(pane.viewIndex) == &lt;/font&gt;&lt;font color=#800000 size=2&gt;'undefined'&lt;/font&gt;&lt;font size=2&gt;)) {
&lt;p&gt;pane = pane.parentNode;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;.set_viewIndex(pane.viewIndex); 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;false&lt;/font&gt;&lt;font size=2&gt;; 
&lt;p&gt;} ,&lt;/p&gt;
&lt;p&gt;_ShowCurrentPane: &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;() { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;for&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; i = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewPanes.length - 1; i &amp;gt;= 0; i--) { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; selectedTab = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewHeads[i]; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; pane = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewPanes[i]; 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (i != &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewIndex) { 
&lt;p&gt;selectedTab.className = &lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;''&lt;/font&gt;&lt;font size=2&gt;; 
&lt;p&gt;pane.style.display = &lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;'none'&lt;/font&gt;&lt;font size=2&gt;; 
&lt;p&gt;} &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;else&lt;/font&gt;&lt;font size=2&gt; { 
&lt;p&gt;selectedTab.className = &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._selectedTabStyle; 
&lt;p&gt;pane.style.display = &lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;'block'&lt;/font&gt;&lt;font size=2&gt;; 
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;} ,&lt;/p&gt;
&lt;p&gt;getDescriptor: &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;() { 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; td = Dice.Tabset.callBaseMethod(&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#800000 size=2&gt;'getDescriptor'&lt;/font&gt;&lt;font size=2&gt;); 
&lt;p&gt;td.addProperty(&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;'viewIndex'&lt;/font&gt;&lt;font size=2&gt;, Number); 
&lt;p&gt;td.addProperty(&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;'selectedTabStyle'&lt;/font&gt;&lt;font size=2&gt;, String); 
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;font size=2&gt; td; 
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;Dice.Tabset.inheritsFrom(Sys.UI.Control);&lt;/p&gt;
&lt;p&gt;Dice.Tabset.registerClass(&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;'Dice.Tabset'&lt;/font&gt;&lt;font size=2&gt;, Sys.UI.Control); &lt;/font&gt;&lt;font color=#0000ff size=2&gt;
&lt;p&gt;if&lt;/p&gt;&lt;/font&gt;&lt;font size=2&gt; (Sys &amp;amp;&amp;amp; Sys.Application) { Sys.Application.notifyScriptLoaded(); }
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;
&lt;p&gt;-----------------------------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;&lt;font size=2&gt;Replacement of xml-script in asp.net page:&lt;/font&gt;&lt;/p&gt;&lt;font color=#0000ff size=2&gt;
&lt;p&gt;&amp;lt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;script&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="text/javascript"&amp;gt;&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;
&lt;p&gt;function&lt;/p&gt;&lt;/font&gt;&lt;font size=2&gt; pageLoad() {
&lt;p&gt;$create(Dice.Tabset, {&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;"selectedTabStyle"&lt;/font&gt;&lt;font size=2&gt;:&lt;/font&gt;&lt;font color=#800000 size=2&gt;"selected"&lt;/font&gt;&lt;font size=2&gt;}, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;null&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;null&lt;/font&gt;&lt;font size=2&gt;, document.getElementById(&lt;/font&gt;&lt;font color=#800000 size=2&gt;'productTabset'&lt;/font&gt;&lt;font size=2&gt;));
&lt;p&gt;}&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;
&lt;p&gt;&amp;lt;/&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;script&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;/font&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: A gift to you all: An Atlas client-side tabstrip</title><link>http://forums.asp.net/thread/1454941.aspx</link><pubDate>Mon, 06 Nov 2006 23:05:39 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1454941</guid><dc:creator>uri</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1454941.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=1454941</wfw:commentRss><description>&lt;p&gt;I did the following modifications to the code:&lt;/p&gt;
&lt;p&gt;1) took out the closures and followed added prototype members.&lt;/p&gt;
&lt;p&gt;2) remove the &lt;font size=2&gt;TypeDescriptor and getDescriptor functions.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size=2&gt;3) In the xml-script added the reference... but it is still not working.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size=2&gt;I am posting the modified broken code, hopefull the community can fix it again to the new Ajax 1.0&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size=2&gt;_________________________________&lt;font size=2&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Type.registerNamespace(&lt;font color=#800000 size=2&gt;'Dice'&lt;/font&gt;&lt;font size=2&gt;);&lt;/font&gt;&lt;font color=#008000 size=2&gt;// Tabset view&lt;/font&gt;&lt;/p&gt;&lt;font size=2&gt;
&lt;p&gt;Dice.Tabset = &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;(element) {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#008000 size=2&gt;// Ctor creates private fields and calls base. &lt;/font&gt;&lt;font size=2&gt;
&lt;p&gt;Dice.Tabset.initializeBase(&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;, [element]);
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewIndex = 0;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._selectedTabStyle = &lt;/font&gt;&lt;font color=#800000 size=2&gt;''&lt;/font&gt;&lt;font size=2&gt;;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewHeads = [];
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewPanes = [];
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewClickHandler = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;null&lt;/font&gt;&lt;font size=2&gt;;
&lt;p&gt;}&lt;/p&gt;&lt;/font&gt;&lt;font color=#008000 size=2&gt;
&lt;p&gt;// Prototype: members&lt;/p&gt;&lt;/font&gt;&lt;font size=2&gt;
&lt;p&gt;Dice.Tabset.prototype = {&lt;/p&gt;
&lt;p&gt;initialize : &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;() {
&lt;p&gt;Dice.Tabset.callBaseMethod(&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#800000 size=2&gt;'initialize'&lt;/font&gt;&lt;font size=2&gt;);
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#008000 size=2&gt;// Create the OnClick handler&lt;/font&gt;&lt;font size=2&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewClickHandler = Function.createDelegate(&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._onViewClick);
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#008000 size=2&gt;// Get tabstrip first.&lt;/font&gt;&lt;font size=2&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; tabstrip;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; panes;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; children = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;.element.childNodes;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;for&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; i = 0; i &amp;lt; children.length; i++) {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; child = children[i];
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (child.nodeName == &lt;/font&gt;&lt;font color=#800000 size=2&gt;'UL'&lt;/font&gt;&lt;font size=2&gt;) {
&lt;p&gt;tabstrip = child.childNodes;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;break&lt;/font&gt;&lt;font size=2&gt;;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;for&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; i = 0, p = 0; i &amp;lt; tabstrip.length; i++) {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; child = tabstrip[i];
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (child.nodeName == &lt;/font&gt;&lt;font color=#800000 size=2&gt;'LI'&lt;/font&gt;&lt;font size=2&gt;) {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewHeads.add(child);
&lt;p&gt;child.SelectedIndex = p++;&lt;/p&gt;
&lt;p&gt;$addHandler(child, &lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;"click"&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewClickHandler);
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;for&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; i = 0; i &amp;lt; children.length; i++) {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; child = children[i];
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (child.nodeName == &lt;/font&gt;&lt;font color=#800000 size=2&gt;'DIV'&lt;/font&gt;&lt;font size=2&gt;) {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewPanes.add(child);
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._ShowCurrentPane.call(&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;);
&lt;p&gt;},&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;dispose : &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;() {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#008000 size=2&gt;// Remove all the event handlers&lt;/font&gt;&lt;font size=2&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewClickHandler) {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;for&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; i = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewHeads.length - 1; i &amp;gt;= 0; i--) {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; header = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewHeads[i];
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (header) {
&lt;p&gt;$removeHandler(header, &lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;"click"&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewClickHandler); 
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewClickHandler = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;null&lt;/font&gt;&lt;font size=2&gt;;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewHeads = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;null&lt;/font&gt;&lt;font size=2&gt;;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewPanes = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;null&lt;/font&gt;&lt;font size=2&gt;;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;Dice.Tabset.callBaseMethod(&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#800000 size=2&gt;'dispose'&lt;/font&gt;&lt;font size=2&gt;);
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;},&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#008000 size=2&gt;// SelectedIndex property accessors &lt;/font&gt;&lt;font size=2&gt;
&lt;p&gt;get_SelectedIndex: &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;() {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewIndex; 
&lt;p&gt;},&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;set_SelectedIndex: &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;(value) {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewIndex != value) {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._viewIndex = value;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._ShowCurrentPane.call(&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;);
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;.raisePropertyChanged(&lt;/font&gt;&lt;font color=#800000 size=2&gt;'SelectedIndex'&lt;/font&gt;&lt;font size=2&gt;);
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;},&lt;/p&gt;
&lt;p&gt;get_selectedTabStyle: &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;() {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._selectedTabStyle; 
&lt;p&gt;},&lt;/p&gt;
&lt;p&gt;set_selectedTabStyle: &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;(value) {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;._selectedTabStyle = value;
&lt;p&gt;},&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;_onViewClick : &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;() {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; pane = window.&lt;/font&gt;&lt;font color=#0000ff size=2&gt;event&lt;/font&gt;&lt;font size=2&gt;.srcElement;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;while&lt;/font&gt;&lt;font size=2&gt; (pane &amp;amp;&amp;amp; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;typeof&lt;/font&gt;&lt;font size=2&gt;(pane.SelectedIndex) == &lt;/font&gt;&lt;font color=#800000 size=2&gt;'undefined'&lt;/font&gt;&lt;font size=2&gt;)) pane = pane.parentNode;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;this&lt;/font&gt;&lt;font size=2&gt;.set_SelectedIndex(pane.SelectedIndex);
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;false&lt;/font&gt;&lt;font size=2&gt;;
&lt;p&gt;},&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;_ShowCurrentPane : &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;function&lt;/font&gt;&lt;font size=2&gt;() {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;for&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; i = _viewPanes.length - 1; i &amp;gt;= 0; i--) {
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; selectedTab = _viewHeads[i];
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; pane = _viewPanes[i];
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (i != _viewIndex) {
&lt;p&gt;selectedTab.className = &lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;''&lt;/font&gt;&lt;font size=2&gt;;
&lt;p&gt;pane.style.display = &lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;'none'&lt;/font&gt;&lt;font size=2&gt;;
&lt;p&gt;} &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;else&lt;/font&gt;&lt;font size=2&gt; {
&lt;p&gt;selectedTab.className = _selectedTabStyle;&lt;/p&gt;
&lt;p&gt;pane.style.display = &lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;'block'&lt;/font&gt;&lt;font size=2&gt;;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;Dice.Tabset.registerClass(&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;'Dice.Tabset'&lt;/font&gt;&lt;font size=2&gt;, Sys.UI.Control);&lt;/font&gt;
&lt;p&gt;____________________&lt;/p&gt;
&lt;p&gt;Here is the XML-script on the asp.net page:&lt;/p&gt;&lt;font color=#0000ff size=2&gt;
&lt;p&gt;&amp;lt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;script&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="text/xml-script"&amp;gt;&lt;/font&gt;&lt;font size=2&gt;
&lt;p&gt;&amp;lt;page xmlns:script=&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;"http://schemas.microsoft.com/xml-script/2005"&lt;/font&gt;&lt;font size=2&gt;
&lt;p&gt;xmlns:&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;"JavaScript: Sys.UI,Sys,Dice"&lt;/font&gt;&lt;font size=2&gt;&amp;gt;
&lt;p&gt;&amp;lt;components&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;Dice:Tabset id=&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;"productTabset"&lt;/font&gt;&lt;font size=2&gt; selectedTabStyle=&lt;/font&gt;&lt;font color=#800000 size=2&gt;"selected"&lt;/font&gt;&lt;font size=2&gt;/&amp;gt;
&lt;p&gt;&amp;lt;/components&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/page&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;
&lt;p&gt;&amp;lt;/&lt;/p&gt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;script&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;</description></item><item><title>Re: A gift to you all: An Atlas client-side tabstrip</title><link>http://forums.asp.net/thread/1452677.aspx</link><pubDate>Fri, 03 Nov 2006 21:57:19 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1452677</guid><dc:creator>uri</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1452677.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=1452677</wfw:commentRss><description>&lt;p&gt;I tried your example in the latest AJAX V1.0 Beta and the code returns the following Javascript error:&lt;/p&gt;
&lt;p&gt;Sys.&lt;font size=2&gt;TypeDescriptor is null or not an object&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: A gift to you all: An Atlas client-side tabstrip</title><link>http://forums.asp.net/thread/1415967.aspx</link><pubDate>Mon, 02 Oct 2006 15:25:32 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1415967</guid><dc:creator>DPLyonnais</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1415967.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=1415967</wfw:commentRss><description>&lt;p&gt;OK I got it all working and it looks good, however can someone tell me how I can set the tab index on the page?&amp;nbsp; I can&amp;#39;t seem to find a way to set that at runtime...&lt;/p&gt;</description></item><item><title>Re: A gift to you all: An Atlas client-side tabstrip</title><link>http://forums.asp.net/thread/1332696.aspx</link><pubDate>Wed, 05 Jul 2006 11:57:07 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1332696</guid><dc:creator>Kai-Uwe</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1332696.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=1332696</wfw:commentRss><description>&lt;p&gt;Try this,&lt;/p&gt;&lt;font size=2&gt;
&lt;p&gt;&lt;font face="Times New Roman" color=#000000&gt;Dice.Tabset.registerClass('Dice.Tabset', Sys.UI.Control);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Times New Roman" color=#000000&gt;Sys.TypeDescriptor.addType('dice', 'tabset', Dice.Tabset);&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;/font&gt;</description></item><item><title>Re: A gift to you all: An Atlas client-side tabstrip</title><link>http://forums.asp.net/thread/1324202.aspx</link><pubDate>Sun, 25 Jun 2006 11:14:51 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1324202</guid><dc:creator>sixtus</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1324202.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=1324202</wfw:commentRss><description>&lt;p&gt;I know there isn't any support but I have a little problem that someone might solve quickly. When I run the code&amp;nbsp;I&amp;nbsp;get the message: "Assertion Failed: Unrecognized tag dice:tabset".&lt;/p&gt;
&lt;p&gt;Maybe the tabset.js is inserted wrong. My scriptmanager has the code:&lt;/p&gt;&lt;font size=2&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;atlas&lt;/font&gt;&lt;font color=#0000ff size=2&gt;:&lt;/font&gt;&lt;font color=#800000 size=2&gt;ScriptManager&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;ID&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="ScriptManager1"&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;runat&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="server"&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;EnableScriptComponents&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=true&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;Scripts&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#800000 size=2&gt;atlas&lt;/font&gt;&lt;font color=#0000ff size=2&gt;:&lt;/font&gt;&lt;font color=#800000 size=2&gt;ScriptReference&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;Path&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;="tabset.js"&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;/&amp;gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=2&gt;Scripts&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;
&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#800000 size=2&gt;atlas&lt;/font&gt;&lt;font color=#0000ff size=2&gt;:&lt;/font&gt;&lt;font color=#800000 size=2&gt;ScriptManager&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;/font&gt;
&lt;p&gt;&lt;font face=Arial color=#000000 size=2&gt;The aspx-file and tabset.js is placed at the same directory.&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>A gift to you all: An Atlas client-side tabstrip</title><link>http://forums.asp.net/thread/1242119.aspx</link><pubDate>Wed, 29 Mar 2006 21:36:52 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1242119</guid><dc:creator>Shazam999</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1242119.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=1242119</wfw:commentRss><description>&lt;div&gt;&lt;font color=#000000&gt;Well, Bertrand's Accordian example inspired me last night, so I came up with a client-side Atlas tabstrip.&amp;nbsp; It basically supplants the Microsoft tabstrip, which I have come to despise&amp;nbsp;over the last few years :)&amp;nbsp; It works in both IE and Mozilla.&amp;nbsp; I don't really have anywhere to post this, so here it is:&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font color=#000000&gt;You can call this file something like TabSet.js&lt;/font&gt;&lt;/div&gt;&lt;pre class=coloredcode&gt;&lt;span class=cmt&gt;&lt;font size=2&gt;&lt;p&gt;&lt;font color=#000000&gt;Type.registerNamespace(&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color=#000000&gt;&lt;font size=2&gt;'Dice'&lt;/font&gt;&lt;font size=2&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=coloredcode&gt;&lt;font color=#000000&gt;&lt;span class=cmt&gt;// Tabset view&lt;/span&gt;
Dice.Tabset = function(associatedElement) {
	Dice.Tabset.initializeBase(&lt;span class=kwd&gt;this&lt;/span&gt;, [associatedElement]);

	var _viewIndex = 0;
	var _selectedTabStyle = &lt;span class=st&gt;''&lt;/span&gt;;

	var _viewHeads = [];
	var _viewPanes = [];

	var _viewClickHandler;

	&lt;span class=kwd&gt;this&lt;/span&gt;.get_viewIndex = function() {
		&lt;span class=kwd&gt;return&lt;/span&gt; _viewIndex;
	}

	&lt;span class=kwd&gt;this&lt;/span&gt;.set_viewIndex = function(&lt;span class=kwd&gt;value&lt;/span&gt;) {
		&lt;span class=kwd&gt;if&lt;/span&gt; (_viewIndex != &lt;span class=kwd&gt;value&lt;/span&gt;) {
			_viewIndex = &lt;span class=kwd&gt;value&lt;/span&gt;;
			_ShowCurrentPane.call(&lt;span class=kwd&gt;this&lt;/span&gt;);
			&lt;span class=kwd&gt;this&lt;/span&gt;.raisePropertyChanged(&lt;span class=st&gt;'viewIndex'&lt;/span&gt;);
		}
	}

	&lt;span class=kwd&gt;this&lt;/span&gt;.get_selectedTabStyle = function() {
		&lt;span class=kwd&gt;return&lt;/span&gt; _selectedTabStyle;
	}

	&lt;span class=kwd&gt;this&lt;/span&gt;.set_selectedTabStyle = function(&lt;span class=kwd&gt;value&lt;/span&gt;) {
		_selectedTabStyle = &lt;span class=kwd&gt;value&lt;/span&gt;;
	}

	&lt;span class=kwd&gt;this&lt;/span&gt;.dispose = function() {
		&lt;span class=kwd&gt;if&lt;/span&gt; (_viewClickHandler) {
			&lt;span class=kwd&gt;for&lt;/span&gt; (var i = _viewHeads.length - 1; i &amp;gt;= 0; i--) {
				var head = _viewHeads[i];

				&lt;span class=kwd&gt;if&lt;/span&gt; (head) {
					head.detachEvent(&lt;span class=st&gt;'onclick'&lt;/span&gt;, _viewClickHandler);
				}
			}

			delete _viewClickHandler;
			delete _viewHeads;
			delete _viewPanes;
		}

		Dice.Tabset.callBaseMethod(&lt;span class=kwd&gt;this&lt;/span&gt;, &lt;span class=st&gt;'dispose'&lt;/span&gt;);
	}

	Dice.Tabset.registerBaseMethod(&lt;span class=kwd&gt;this&lt;/span&gt;, &lt;span class=st&gt;'dispose'&lt;/span&gt;);

	&lt;span class=kwd&gt;this&lt;/span&gt;.initialize = function() {
		Dice.Tabset.callBaseMethod(&lt;span class=kwd&gt;this&lt;/span&gt;, &lt;span class=st&gt;'initialize'&lt;/span&gt;);

		_viewClickHandler = Function.createDelegate(&lt;span class=kwd&gt;this&lt;/span&gt;, _onViewClick);
    
		&lt;span class=cmt&gt;// Get tabstrip first.&lt;/span&gt;
		var tabstrip;
		var panes;
		
		var children = &lt;span class=kwd&gt;this&lt;/span&gt;.element.childNodes;
		
		&lt;span class=kwd&gt;for&lt;/span&gt; (var i = 0; i &amp;lt; children.length; i++) {
			var child = children[i];
			
			&lt;span class=kwd&gt;if&lt;/span&gt; (child.nodeName == &lt;span class=st&gt;'UL'&lt;/span&gt;) {
					tabstrip = child.childNodes;
					&lt;span class=kwd&gt;break&lt;/span&gt;;
			}
		}
		
		&lt;span class=kwd&gt;for&lt;/span&gt; (var i = 0, p = 0; i &amp;lt; tabstrip.length; i++) {
			var child = tabstrip[i];
			
			&lt;span class=kwd&gt;if&lt;/span&gt; (child.nodeName == &lt;span class=st&gt;'LI'&lt;/span&gt;) {
					_viewHeads.add(child);
					child.viewIndex = p++;
					child.attachEvent(&lt;span class=st&gt;'onclick'&lt;/span&gt;, _viewClickHandler);
			}
		}
		
		&lt;span class=kwd&gt;for&lt;/span&gt; (var i = 0; i &amp;lt; children.length; i++) {
			var child = children[i];

			&lt;span class=kwd&gt;if&lt;/span&gt; (child.nodeName == &lt;span class=st&gt;'DIV'&lt;/span&gt;) {
					_viewPanes.add(child);
			}
		}

		_ShowCurrentPane.call(&lt;span class=kwd&gt;this&lt;/span&gt;);
	}

	Dice.Tabset.registerBaseMethod(&lt;span class=kwd&gt;this&lt;/span&gt;, &lt;span class=st&gt;'initialize'&lt;/span&gt;);

	function _onViewClick() {
		var pane = window.&lt;span class=kwd&gt;event&lt;/span&gt;.srcElement;
		&lt;span class=kwd&gt;while&lt;/span&gt; (pane &amp;amp;&amp;amp; (&lt;span class=kwd&gt;typeof&lt;/span&gt;(pane.viewIndex) == &lt;span class=st&gt;'undefined'&lt;/span&gt;)) pane = pane.parentNode;
		&lt;span class=kwd&gt;this&lt;/span&gt;.set_viewIndex(pane.viewIndex);
		&lt;span class=kwd&gt;return false&lt;/span&gt;;
	}

	function _ShowCurrentPane() {
		&lt;span class=kwd&gt;for&lt;/span&gt; (var i = _viewPanes.length - 1; i &amp;gt;= 0; i--) {
			var selectedTab = _viewHeads[i];
			var pane = _viewPanes[i];
			
			&lt;span class=kwd&gt;if&lt;/span&gt; (i != _viewIndex) {
					selectedTab.className = &lt;span class=st&gt;''&lt;/span&gt;;
					pane.style.display = &lt;span class=st&gt;'none'&lt;/span&gt;;
			} &lt;span class=kwd&gt;else&lt;/span&gt; {
					selectedTab.className = _selectedTabStyle;
					pane.style.display = &lt;span class=st&gt;'block'&lt;/span&gt;;
			}
		}
	}

	&lt;span class=kwd&gt;this&lt;/span&gt;.getDescriptor = function() {
		var td = Dice.Tabset.callBaseMethod(&lt;span class=kwd&gt;this&lt;/span&gt;, &lt;span class=st&gt;'getDescriptor'&lt;/span&gt;);
    
		td.addProperty(&lt;span class=st&gt;'viewIndex'&lt;/span&gt;, Number);
		td.addProperty(&lt;span class=st&gt;'selectedTabStyle'&lt;/span&gt;, String);
		&lt;span class=kwd&gt;return&lt;/span&gt; td;
	}

	Dice.Tabset.registerBaseMethod(&lt;span class=kwd&gt;this&lt;/span&gt;, &lt;span class=st&gt;'getDescriptor'&lt;/span&gt;);
}

Dice.Tabset.registerClass(&lt;span class=st&gt;Dice.Tabset'&lt;/span&gt;, Sys.UI.Control);
Sys.TypeDescriptor.addType(&lt;span class=st&gt;dice&lt;/span&gt;, &lt;span class=st&gt;'tabset'&lt;/span&gt;, Dice.Tabset);&lt;/font&gt;&lt;/pre&gt;&lt;pre class=coloredcode&gt;&lt;font face="Times New Roman"&gt;&lt;font color=#000000 size=4&gt;Make sure you add a reference to the file in your &amp;lt;atlas:scriptmanager&amp;gt; tag.&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre class=coloredcode&gt;&lt;font face="Times New Roman" color=#000000 size=4&gt;Then, on the page where you want to use the control, add this:&lt;/font&gt;&lt;/pre&gt;&lt;pre class=coloredcode&gt;&amp;lt;&lt;span class=tag&gt;script&lt;/span&gt;&lt;span class=attr&gt; type=&lt;/span&gt;&lt;span class=attrv&gt;"text/xml-script"&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class=tag&gt;page&lt;/span&gt;&lt;span class=attr&gt; xmlns:script=&lt;/span&gt;&lt;span class=attrv&gt;"http://schemas.microsoft.com/xml-script/2005"&lt;/span&gt;&lt;span class=attr&gt; xmlns:dice=&lt;/span&gt;&lt;span class=attrv&gt;"dice"&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class=tag&gt;components&lt;/span&gt;&amp;gt;
	&amp;lt;&lt;span class=tag&gt;dice:tabset&lt;/span&gt;&lt;span class=attr&gt; id=&lt;/span&gt;&lt;span class=attrv&gt;"productTabset"&lt;/span&gt;&lt;span class=attr&gt; selectedTabStyle=&lt;/span&gt;&lt;span class=attrv&gt;"selected"&lt;/span&gt;/&amp;gt;
&amp;lt;/&lt;span class=tag&gt;components&lt;/span&gt;&amp;gt;
&amp;lt;/&lt;span class=tag&gt;page&lt;/span&gt;&amp;gt;
&amp;lt;/&lt;span class=tag&gt;script&lt;/span&gt;&amp;gt;
&lt;/pre&gt;&lt;pre class=coloredcode&gt;&lt;font face="Times New Roman" size=4&gt;Then, add your HTML for the tabset:&lt;/font&gt;&lt;/pre&gt;&lt;pre class=coloredcode&gt;&amp;lt;&lt;span class=tag&gt;div&lt;/span&gt;&lt;span class=attr&gt; id=&lt;/span&gt;&lt;span class=attrv&gt;"productTabset"&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class=tag&gt;ul&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class=tag&gt;li&lt;/span&gt;&amp;gt;Tab 1&amp;lt;/&lt;span class=tag&gt;li&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class=tag&gt;li&lt;/span&gt;&amp;gt;Tab 2&amp;lt;/&lt;span class=tag&gt;li&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class=tag&gt;li&lt;/span&gt;&amp;gt;Tab 3&amp;lt;/&lt;span class=tag&gt;li&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class=tag&gt;li&lt;/span&gt;&amp;gt;Tab 4&amp;lt;/&lt;span class=tag&gt;li&lt;/span&gt;&amp;gt;
&amp;lt;/&lt;span class=tag&gt;ul&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class=tag&gt;div class="pane"&lt;/span&gt;&amp;gt;
First Tab
&amp;lt;/&lt;span class=tag&gt;div&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class=tag&gt;div class="pane"&lt;/span&gt;&amp;gt;
Second Tab
&amp;lt;/&lt;span class=tag&gt;div&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class=tag&gt;div class="pane"&lt;/span&gt;&amp;gt;
Third Tab
&amp;lt;/&lt;span class=tag&gt;div&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class=tag&gt;div&lt;/span&gt; class="pane"&amp;gt;
Fourth Tab
&amp;lt;/&lt;span class=tag&gt;div&lt;/span&gt;&amp;gt;
&amp;lt;/&lt;span class=tag&gt;div&lt;/span&gt;&amp;gt; 
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;The unordered list will become the tabs, and the divs will become the panes.&lt;/p&gt;
&lt;p&gt;You can style the tabs any way you want.&amp;nbsp; Here's a sample style sheet you can use:&lt;/p&gt;&lt;pre class=coloredcode&gt;&lt;span class=cmt&gt;/* Tabset */&lt;/span&gt;

&lt;span class=sel&gt;div&lt;/span&gt;#&lt;span class=sel&gt;productTabset ul&lt;/span&gt;
{
	display:&lt;span class=val&gt; block&lt;/span&gt;;
	margin:&lt;span class=val&gt; &lt;span class=unit&gt;0&lt;/span&gt;&lt;/span&gt;;
	padding:&lt;span class=val&gt; &lt;span class=unit&gt;0&lt;/span&gt;&lt;/span&gt;;
	text-align:&lt;span class=val&gt; left&lt;/span&gt;;
	width:&lt;span class=val&gt; &lt;span class=unit&gt;600&lt;/span&gt;px&lt;/span&gt;;
}

&lt;span class=sel&gt;div&lt;/span&gt;#&lt;span class=sel&gt;productTabset li&lt;/span&gt;
{
	background-color:&lt;span class=val&gt; #&lt;span class=unit&gt;ece9d8&lt;/span&gt;&lt;/span&gt;;
	border:&lt;span class=val&gt; solid &lt;span class=unit&gt;1&lt;/span&gt;px black&lt;/span&gt;;
	border-bottom:&lt;span class=val&gt; none&lt;/span&gt;;
	cursor:&lt;span class=val&gt; pointer&lt;/span&gt;;
	display:&lt;span class=val&gt; block&lt;/span&gt;;
	float:&lt;span class=val&gt; left&lt;/span&gt;;
	font-weight:&lt;span class=val&gt; bold&lt;/span&gt;;
	height:&lt;span class=val&gt; &lt;span class=unit&gt;15&lt;/span&gt;px&lt;/span&gt;;
	list-style:&lt;span class=val&gt; none&lt;/span&gt;;
	margin:&lt;span class=val&gt; &lt;span class=unit&gt;0&lt;/span&gt; -&lt;span class=unit&gt;1&lt;/span&gt;px &lt;span class=unit&gt;0 0&lt;/span&gt;&lt;/span&gt;;
	padding:&lt;span class=val&gt; &lt;span class=unit&gt;3&lt;/span&gt;px&lt;/span&gt;;
	position:&lt;span class=val&gt; relative&lt;/span&gt;;
	width:&lt;span class=val&gt; &lt;span class=unit&gt;100&lt;/span&gt;px&lt;/span&gt;;
	z-index:&lt;span class=val&gt; &lt;span class=unit&gt;97&lt;/span&gt;&lt;/span&gt;;
}

&lt;span class=sel&gt;div&lt;/span&gt;#&lt;span class=sel&gt;productTabset li&lt;/span&gt;.&lt;span class=sel&gt;selected&lt;/span&gt; 
{
	background-color:&lt;span class=val&gt; White&lt;/span&gt;;
	border-bottom:&lt;span class=val&gt; none&lt;/span&gt;;
	position:&lt;span class=val&gt; relative&lt;/span&gt;;
	z-index:&lt;span class=val&gt; &lt;span class=unit&gt;100&lt;/span&gt;&lt;/span&gt;;
}

&lt;span class=sel&gt;div&lt;/span&gt;#&lt;span class=sel&gt;productTabset&lt;/span&gt; .&lt;span class=sel&gt;pane&lt;/span&gt;
{
	border:&lt;span class=val&gt; solid &lt;span class=unit&gt;1&lt;/span&gt;px black&lt;/span&gt;;
	clear:&lt;span class=val&gt; both&lt;/span&gt;;
	display:&lt;span class=val&gt; none&lt;/span&gt;;
	overflow:&lt;span class=val&gt; auto&lt;/span&gt;;
	padding:&lt;span class=val&gt; &lt;span class=unit&gt;5&lt;/span&gt;px&lt;/span&gt;;
	position:&lt;span class=val&gt; relative&lt;/span&gt;;
	width:&lt;span class=val&gt; &lt;span class=unit&gt;588&lt;/span&gt;px&lt;/span&gt;;
	height:&lt;span class=val&gt; &lt;span class=unit&gt;300&lt;/span&gt;px&lt;/span&gt;;
	top:&lt;span class=val&gt; -&lt;span class=unit&gt;1&lt;/span&gt;px&lt;/span&gt;;
	z-index:&lt;span class=val&gt; &lt;span class=unit&gt;99&lt;/span&gt;&lt;/span&gt;;
}
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I'm not giving any kind of support for this control, so you're on your own.&amp;nbsp; It's a foundation you can customize to your own needs, and a nice way to learn the client-side stuff in Atlas.&lt;/p&gt;
&lt;p&gt;Have fun!&lt;/p&gt;</description></item></channel></rss>