--- /dev/null
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>The source code</title>
+ <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
+ <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
+</head>
+<body onload="prettyPrint();">
+ <pre class="prettyprint lang-js">/*!
+ * Ext JS Library 3.2.0
+ * Copyright(c) 2006-2010 Ext JS, Inc.
+ * licensing@extjs.com
+ * http://www.extjs.com/license
+ */
+Ext.ns('Ext.ux');
+
+Ext.ux.Tabs = Ext.extend(Ext.util.Observable, {
+ // Configuration options
+ activeTab: 0,
+
+ // Our class constructor
+ constructor : function(element, config) {
+ Ext.apply(this, config);
+ Ext.ux.Tabs.superclass.constructor.call(this);
+
+ this.addEvents(
+ 'beforetabchange',
+ 'tabchange'
+ );
+
+ this.el = Ext.get(element);
+ this.init();
+ },
+
+ init : function() {
+ var me = this;
+
+ this.el.addClass('ux-tabs-container');
+
+ this.tabStrip = this.el.child('ul');
+ this.tabStrip.addClass('ux-tabs-strip');
+
+ this.tabStrip.on('click', this.onStripClick, this, {delegate: 'a'});
+
+ this.tabs = this.tabStrip.select('> li');
+ this.cards = this.el.select('> div');
+
+ this.cardsContainer = this.el.createChild({
+ cls: 'ux-tabs-cards'
+ });
+ this.cardsContainer.setWidth(this.el.getWidth());
+
+ this.cards.addClass('ux-tabs-card');
+ this.cards.appendTo(this.cardsContainer);
+
+ this.el.createChild({
+ cls: 'ux-tabs-clearfix'
+ });
+
+ this.setActiveTab(this.activeTab || 0);
+ },
+
+ onStripClick : function(ev, t) {
+ if(t && t.href && t.href.indexOf('#')) {
+ ev.preventDefault();
+ this.setActiveTab(t.href.split('#')[1]);
+ }
+ },
+
+ setActiveTab : function(tab) {
+ var card;
+ if(Ext.isString(tab)) {
+ card = Ext.get(tab);
+ tab = this.tabStrip.child('a[href=#' + tab + ']').parent();
+ }
+ else if (Ext.isNumber(tab)) {
+ tab = this.tabs.item(tab);
+ card = Ext.get(tab.first().dom.href.split('#')[1]);
+ }
+
+ if(tab && card && this.fireEvent('beforetabchange', tab, card) !== false) {
+ card.radioClass('ux-tabs-card-active');
+ tab.radioClass('ux-tabs-tab-active');
+ this.fireEvent('tabchange', tab, card);
+ }
+ }
+});</pre>
+</body>
+</html>
\ No newline at end of file