text: /*
  YUI 3.8.0pr2 (build 154)
  Copyright 2012 Yahoo! Inc. All rights reserved.
  Licensed under the BSD License.
  http://yuilibrary.com/license/
  */
  if (typeof _yuitest_coverage == "undefined"){
      _yuitest_coverage = {};
      _yuitest_coverline = function(src, line){
          var coverage = _yuitest_coverage[src];
          if (!coverage.lines[line]){
              coverage.calledLines++;
          }
          coverage.lines[line]++;
      };
      _yuitest_coverfunc = function(src, name, line){
          var coverage = _yuitest_coverage[src],
              funcId = name + ":" + line;
          if (!coverage.functions[funcId]){
              coverage.calledFunctions++;
          }
          coverage.functions[funcId]++;
      };
  }
  _yuitest_coverage["build/tabview/tabview.js"] = {
      lines: {},
      functions: {},
      coveredLines: 0,
      calledLines: 0,
      coveredFunctions: 0,
      calledFunctions: 0,
      path: "build/tabview/tabview.js",
      code: []
  };
  _yuitest_coverage["build/tabview/tabview.js"].code=["YUI.add('tabview', function (Y, NAME) {","","/**"," * The TabView module "," *"," * @module tabview"," */","","var _queries = Y.TabviewBase._queries,","    _classNames = Y.TabviewBase._classNames,","    DOT = '.',","    getClassName = Y.ClassNameManager.getClassName,","","    /**","     * Provides a tabbed widget interface ","     * @param config {Object} Object literal specifying tabview configuration properties.","     *","     * @class TabView","     * @constructor","     * @extends Widget","     * @uses WidgetParent","     */","    TabView = Y.Base.create('tabView', Y.Widget, [Y.WidgetParent], {","    _afterChildAdded: function(e) {","        this.get('contentBox').focusManager.refresh();","    },","","    _defListNodeValueFn: function() {","        return Y.Node.create(TabView.LIST_TEMPLATE);","    },","","    _defPanelNodeValueFn: function() {","        return Y.Node.create(TabView.PANEL_TEMPLATE);","    },","","    _afterChildRemoved: function(e) { // update the selected tab when removed","        var i = e.index,","            selection = this.get('selection');","","        if (!selection) { // select previous item if selection removed","            selection = this.item(i - 1) || this.item(0);","            if (selection) {","                selection.set('selected', 1);","            }","        }","","        this.get('contentBox').focusManager.refresh();","    },","","    _initAria: function() {","        var contentBox = this.get('contentBox'),","            tablist = contentBox.one(_queries.tabviewList);","","        if (tablist) {","            tablist.setAttrs({","                //'aria-labelledby': ","                role: 'tablist'","            });","        }","    },","","    bindUI: function() {","        //  Use the Node Focus Manager to add keyboard support:","        //  Pressing the left and right arrow keys will move focus","        //  among each of the tabs.","","        this.get('contentBox').plug(Y.Plugin.NodeFocusManager, {","                        descendants: DOT + _classNames.tabLabel,","                        keys: { next: 'down:39', // Right arrow","                                previous: 'down:37' },  // Left arrow","                        circular: true","                    });","","        this.after('render', this._setDefSelection);","        this.after('addChild', this._afterChildAdded);","        this.after('removeChild', this._afterChildRemoved);","    },","    ","    renderUI: function() {","        var contentBox = this.get('contentBox'); ","        this._renderListBox(contentBox);","        this._renderPanelBox(contentBox);","        this._childrenContainer = this.get('listNode');","        this._renderTabs(contentBox);","    },","","    _setDefSelection: function(contentBox) {","        //  If no tab is selected, select the first tab.","        var selection = this.get('selection') || this.item(0);","","        this.some(function(tab) {","            if (tab.get('selected')) {","                selection = tab;","                return true;","            }","        });","        if (selection) {","            // TODO: why both needed? (via widgetParent/Child)?","            this.set('selection', selection);","            selection.set('selected', 1);","        }","    },","","    _renderListBox: function(contentBox) {","        var node = this.get('listNode');","        if (!node.inDoc()) {","            contentBox.append(node);","        }","    },","","    _renderPanelBox: function(contentBox) {","        var node = this.get('panelNode');","        if (!node.inDoc()) {","            contentBox.append(node);","        }","    },","","    _renderTabs: function(contentBox) {","        var tabs = contentBox.all(_queries.tab),","            panelNode = this.get('panelNode'),","            panels = (panelNode) ? this.get('panelNode').get('children') : null,","            tabview = this;","","        if (tabs) { // add classNames and fill in Tab fields from markup when possible","            tabs.addClass(_classNames.tab);","            contentBox.all(_queries.tabLabel).addClass(_classNames.tabLabel);","            contentBox.all(_queries.tabPanel).addClass(_classNames.tabPanel);","","            tabs.each(function(node, i) {","                var panelNode = (panels) ? panels.item(i) : null;","                tabview.add({","                    boundingBox: node,","                    contentBox: node.one(DOT + _classNames.tabLabel),","                    label: node.one(DOT + _classNames.tabLabel).get('text'),","                    panelNode: panelNode","                });","            });","        }","    }","}, {","","    LIST_TEMPLATE: '<ul class=\"' + _classNames.tabviewList + '\"></ul>',","    PANEL_TEMPLATE: '<div class=\"' + _classNames.tabviewPanel + '\"></div>',","","    ATTRS: {","        defaultChildType: {  ","            value: 'Tab'","        },","","        listNode: {","            setter: function(node) {","                node = Y.one(node);","                if (node) {","                    node.addClass(_classNames.tabviewList);","                }","                return node;","            },","","            valueFn: '_defListNodeValueFn'","        },","","        panelNode: {","            setter: function(node) {","                node = Y.one(node);","                if (node) {","                    node.addClass(_classNames.tabviewPanel);","                }","                return node;","            },","","            valueFn: '_defPanelNodeValueFn'","        },","","        tabIndex: {","            value: null","            //validator: '_validTabIndex'","        }","    },","","    HTML_PARSER: {","        listNode: _queries.tabviewList,","        panelNode: _queries.tabviewPanel","    }","});","","Y.TabView = TabView;","var Lang = Y.Lang,","    _queries = Y.TabviewBase._queries,","    _classNames = Y.TabviewBase._classNames,","    getClassName = Y.ClassNameManager.getClassName;","","/**"," * Provides Tab instances for use with TabView"," * @param config {Object} Object literal specifying tabview configuration properties."," *"," * @class Tab"," * @constructor"," * @extends Widget"," * @uses WidgetChild"," */","Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {","    BOUNDING_TEMPLATE: '<li class=\"' + _classNames.tab + '\"></li>',","    CONTENT_TEMPLATE: '<a class=\"' + _classNames.tabLabel + '\"></a>',","    PANEL_TEMPLATE: '<div class=\"' + _classNames.tabPanel + '\"></div>',","","    _uiSetSelectedPanel: function(selected) {","        this.get('panelNode').toggleClass(_classNames.selectedPanel, selected);","    },","","    _afterTabSelectedChange: function(event) {","       this._uiSetSelectedPanel(event.newVal);","    },","","    _afterParentChange: function(e) {","        if (!e.newVal) {","            this._remove();","        } else {","            this._add();","        }","    },","","    _initAria: function() {","        var anchor = this.get('contentBox'),","            id = anchor.get('id'),","            panel = this.get('panelNode');"," ","        if (!id) {","            id = Y.guid();","            anchor.set('id', id);","        }","        //  Apply the ARIA roles, states and properties to each tab","        anchor.set('role', 'tab');","        anchor.get('parentNode').set('role', 'presentation');"," "," ","        //  Apply the ARIA roles, states and properties to each panel","        panel.setAttrs({","            role: 'tabpanel',","            'aria-labelledby': id","        });","    },","","    syncUI: function() {","        this.set('label', this.get('label'));","        this.set('content', this.get('content'));","        this._uiSetSelectedPanel(this.get('selected'));","    },","","    bindUI: function() {","       this.after('selectedChange', this._afterTabSelectedChange);","       this.after('parentChange', this._afterParentChange);","    },","","    renderUI: function() {","        this._renderPanel();","        this._initAria();","    },","","    _renderPanel: function() {","        this.get('parent').get('panelNode')","            .appendChild(this.get('panelNode'));","    },","","    _add: function() {","        var parent = this.get('parent').get('contentBox'),","            list = parent.get('listNode'),","            panel = parent.get('panelNode');","","        if (list) {","            list.appendChild(this.get('boundingBox'));","        }","","        if (panel) {","            panel.appendChild(this.get('panelNode'));","        }","    },","    ","    _remove: function() {","        this.get('boundingBox').remove();","        this.get('panelNode').remove();","    },","","    _onActivate: function(e) {","         if (e.target === this) {","             //  Prevent the browser from navigating to the URL specified by the ","             //  anchor's href attribute.","             e.domEvent.preventDefault();","             e.target.set('selected', 1);","         }","    },","    ","    initializer: function() {","       this.publish(this.get('triggerEvent'), { ","           defaultFn: this._onActivate","       });","    },","","    _defLabelSetter: function(label) {","        this.get('contentBox').setContent(label);","        return label;","    },","","    _defContentSetter: function(content) {","        this.get('panelNode').setContent(content);","        return content;","    },","","    _defContentGetter: function(content) {","        return this.get('panelNode').getContent();","    },","","    // find panel by ID mapping from label href","    _defPanelNodeValueFn: function() {","        var href = this.get('contentBox').get('href') || '',","            parent = this.get('parent'),","            hashIndex = href.indexOf('#'),","            panel;","","        href = href.substr(hashIndex);","","        if (href.charAt(0) === '#') { // in-page nav, find by ID","            panel = Y.one(href);","            if (panel) {","                panel.addClass(_classNames.tabPanel);","            }","        }","","        // use the one found by id, or else try matching indices","        if (!panel && parent) {","            panel = parent.get('panelNode')","                    .get('children').item(this.get('index'));","        }","","        if (!panel) { // create if none found","            panel = Y.Node.create(this.PANEL_TEMPLATE);","        }","        return panel;","    }","}, {","    ATTRS: {","        /**","         * @attribute triggerEvent","         * @default \"click\" ","         * @type String","         */","        triggerEvent: {","            value: 'click'","        },","","        /**","         * @attribute label","         * @type HTML","         */","        label: { ","            setter: '_defLabelSetter',","            validator: Lang.isString","        },","","        /**","         * @attribute content","         * @type HTML","         */","        content: {","            setter: '_defContentSetter',","            getter: '_defContentGetter'","        },","","        /**","         * @attribute panelNode","         * @type Y.Node","         */","        panelNode: {","            setter: function(node) {","                node = Y.one(node);","                if (node) {","                    node.addClass(_classNames.tabPanel);","                }","                return node;","            },","            valueFn: '_defPanelNodeValueFn'","        },","        ","        tabIndex: {","            value: null,","            validator: '_validTabIndex'","        }        ","","    },","","    HTML_PARSER: {","        selected: function(contentBox) {","            var ret = (this.get('boundingBox').hasClass(_classNames.selectedTab)) ?","                        1 : 0;","            return ret;","        }","    }","","});","","","}, '3.8.0pr2', {\"requires\": [\"widget\", \"widget-parent\", \"widget-child\", \"tabview-base\", \"node-pluginhost\", \"node-focusmanager\"], \"skinnable\": true});"];
  _yuitest_coverage["build/tabview/tabview.js"].lines = {"1":0,"9":0,"25":0,"29":0,"33":0,"37":0,"40":0,"41":0,"42":0,"43":0,"47":0,"51":0,"54":0,"55":0,"67":0,"74":0,"75":0,"76":0,"80":0,"81":0,"82":0,"83":0,"84":0,"89":0,"91":0,"92":0,"93":0,"94":0,"97":0,"99":0,"100":0,"105":0,"106":0,"107":0,"112":0,"113":0,"114":0,"119":0,"124":0,"125":0,"126":0,"127":0,"129":0,"130":0,"131":0,"152":0,"153":0,"154":0,"156":0,"164":0,"165":0,"166":0,"168":0,"186":0,"187":0,"201":0,"207":0,"211":0,"215":0,"216":0,"218":0,"223":0,"227":0,"228":0,"229":0,"232":0,"233":0,"237":0,"244":0,"245":0,"246":0,"250":0,"251":0,"255":0,"256":0,"260":0,"265":0,"269":0,"270":0,"273":0,"274":0,"279":0,"280":0,"284":0,"287":0,"288":0,"293":0,"299":0,"300":0,"304":0,"305":0,"309":0,"314":0,"319":0,"321":0,"322":0,"323":0,"324":0,"329":0,"330":0,"334":0,"335":0,"337":0,"374":0,"375":0,"376":0,"378":0,"392":0,"394":0};
  _yuitest_coverage["build/tabview/tabview.js"].functions = {"_afterChildAdded:24":0,"_defListNodeValueFn:28":0,"_defPanelNodeValueFn:32":0,"_afterChildRemoved:36":0,"_initAria:50":0,"bindUI:62":0,"renderUI:79":0,"(anonymous 2):91":0,"_setDefSelection:87":0,"_renderListBox:104":0,"_renderPanelBox:111":0,"(anonymous 3):129":0,"_renderTabs:118":0,"setter:151":0,"setter:163":0,"_uiSetSelectedPanel:206":0,"_afterTabSelectedChange:210":0,"_afterParentChange:214":0,"_initAria:222":0,"syncUI:243":0,"bindUI:249":0,"renderUI:254":0,"_renderPanel:259":0,"_add:264":0,"_remove:278":0,"_onActivate:283":0,"initializer:292":0,"_defLabelSetter:298":0,"_defContentSetter:303":0,"_defContentGetter:308":0,"_defPanelNodeValueFn:313":0,"setter:373":0,"selected:391":0,"(anonymous 1):1":0};
  _yuitest_coverage["build/tabview/tabview.js"].coveredLines = 109;
  _yuitest_coverage["build/tabview/tabview.js"].coveredFunctions = 34;
  _yuitest_coverline("build/tabview/tabview.js", 1);
  YUI.add('tabview', function (Y, NAME) {
  
  /**
   * The TabView module 
   *
   * @module tabview
   */
  
  _yuitest_coverfunc("build/tabview/tabview.js", "(anonymous 1)", 1);
  _yuitest_coverline("build/tabview/tabview.js", 9);
  var _queries = Y.TabviewBase._queries,
      _classNames = Y.TabviewBase._classNames,
      DOT = '.',
      getClassName = Y.ClassNameManager.getClassName,
  
      /**
       * Provides a tabbed widget interface 
       * @param config {Object} Object literal specifying tabview configuration properties.
       *
       * @class TabView
       * @constructor
       * @extends Widget
       * @uses WidgetParent
       */
      TabView = Y.Base.create('tabView', Y.Widget, [Y.WidgetParent], {
      _afterChildAdded: function(e) {
          _yuitest_coverfunc("build/tabview/tabview.js", "_afterChildAdded", 24);
  _yuitest_coverline("build/tabview/tabview.js", 25);
  this.get('contentBox').focusManager.refresh();
      },
  
      _defListNodeValueFn: function() {
          _yuitest_coverfunc("build/tabview/tabview.js", "_defListNodeValueFn", 28);
  _yuitest_coverline("build/tabview/tabview.js", 29);
  return Y.Node.create(TabView.LIST_TEMPLATE);
      },
  
      _defPanelNodeValueFn: function() {
          _yuitest_coverfunc("build/tabview/tabview.js", "_defPanelNodeValueFn", 32);
  _yuitest_coverline("build/tabview/tabview.js", 33);
  return Y.Node.create(TabView.PANEL_TEMPLATE);
      },
  
      _afterChildRemoved: function(e) { // update the selected tab when removed
          _yuitest_coverfunc("build/tabview/tabview.js", "_afterChildRemoved", 36);
  _yuitest_coverline("build/tabview/tabview.js", 37);
  var i = e.index,
              selection = this.get('selection');
  
          _yuitest_coverline("build/tabview/tabview.js", 40);
  if (!selection) { // select previous item if selection removed
              _yuitest_coverline("build/tabview/tabview.js", 41);
  selection = this.item(i - 1) || this.item(0);
              _yuitest_coverline("build/tabview/tabview.js", 42);
  if (selection) {
                  _yuitest_coverline("build/tabview/tabview.js", 43);
  selection.set('selected', 1);
              }
          }
  
          _yuitest_coverline("build/tabview/tabview.js", 47);
  this.get('contentBox').focusManager.refresh();
      },
  
      _initAria: function() {
          _yuitest_coverfunc("build/tabview/tabview.js", "_initAria", 50);
  _yuitest_coverline("build/tabview/tabview.js", 51);
  var contentBox = this.get('contentBox'),
              tablist = contentBox.one(_queries.tabviewList);
  
          _yuitest_coverline("build/tabview/tabview.js", 54);
  if (tablist) {
              _yuitest_coverline("build/tabview/tabview.js", 55);
  tablist.setAttrs({
                  //'aria-labelledby': 
                  role: 'tablist'
              });
          }
      },
  
      bindUI: function() {
          //  Use the Node Focus Manager to add keyboard support:
          //  Pressing the left and right arrow keys will move focus
          //  among each of the tabs.
  
          _yuitest_coverfunc("build/tabview/tabview.js", "bindUI", 62);
  _yuitest_coverline("build/tabview/tabview.js", 67);
  this.get('contentBox').plug(Y.Plugin.NodeFocusManager, {
                          descendants: DOT + _classNames.tabLabel,
                          keys: { next: 'down:39', // Right arrow
                                  previous: 'down:37' },  // Left arrow
                          circular: true
                      });
  
          _yuitest_coverline("build/tabview/tabview.js", 74);
  this.after('render', this._setDefSelection);
          _yuitest_coverline("build/tabview/tabview.js", 75);
  this.after('addChild', this._afterChildAdded);
          _yuitest_coverline("build/tabview/tabview.js", 76);
  this.after('removeChild', this._afterChildRemoved);
      },
      
      renderUI: function() {
          _yuitest_coverfunc("build/tabview/tabview.js", "renderUI", 79);
  _yuitest_coverline("build/tabview/tabview.js", 80);
  var contentBox = this.get('contentBox'); 
          _yuitest_coverline("build/tabview/tabview.js", 81);
  this._renderListBox(contentBox);
          _yuitest_coverline("build/tabview/tabview.js", 82);
  this._renderPanelBox(contentBox);
          _yuitest_coverline("build/tabview/tabview.js", 83);
  this._childrenContainer = this.get('listNode');
          _yuitest_coverline("build/tabview/tabview.js", 84);
  this._renderTabs(contentBox);
      },
  
      _setDefSelection: function(contentBox) {
          //  If no tab is selected, select the first tab.
          _yuitest_coverfunc("build/tabview/tabview.js", "_setDefSelection", 87);
  _yuitest_coverline("build/tabview/tabview.js", 89);
  var selection = this.get('selection') || this.item(0);
  
          _yuitest_coverline("build/tabview/tabview.js", 91);
  this.some(function(tab) {
              _yuitest_coverfunc("build/tabview/tabview.js", "(anonymous 2)", 91);
  _yuitest_coverline("build/tabview/tabview.js", 92);
  if (tab.get('selected')) {
                  _yuitest_coverline("build/tabview/tabview.js", 93);
  selection = tab;
                  _yuitest_coverline("build/tabview/tabview.js", 94);
  return true;
              }
          });
          _yuitest_coverline("build/tabview/tabview.js", 97);
  if (selection) {
              // TODO: why both needed? (via widgetParent/Child)?
              _yuitest_coverline("build/tabview/tabview.js", 99);
  this.set('selection', selection);
              _yuitest_coverline("build/tabview/tabview.js", 100);
  selection.set('selected', 1);
          }
      },
  
      _renderListBox: function(contentBox) {
          _yuitest_coverfunc("build/tabview/tabview.js", "_renderListBox", 104);
  _yuitest_coverline("build/tabview/tabview.js", 105);
  var node = this.get('listNode');
          _yuitest_coverline("build/tabview/tabview.js", 106);
  if (!node.inDoc()) {
              _yuitest_coverline("build/tabview/tabview.js", 107);
  contentBox.append(node);
          }
      },
  
      _renderPanelBox: function(contentBox) {
          _yuitest_coverfunc("build/tabview/tabview.js", "_renderPanelBox", 111);
  _yuitest_coverline("build/tabview/tabview.js", 112);
  var node = this.get('panelNode');
          _yuitest_coverline("build/tabview/tabview.js", 113);
  if (!node.inDoc()) {
              _yuitest_coverline("build/tabview/tabview.js", 114);
  contentBox.append(node);
          }
      },
  
      _renderTabs: function(contentBox) {
          _yuitest_coverfunc("build/tabview/tabview.js", "_renderTabs", 118);
  _yuitest_coverline("build/tabview/tabview.js", 119);
  var tabs = contentBox.all(_queries.tab),
              panelNode = this.get('panelNode'),
              panels = (panelNode) ? this.get('panelNode').get('children') : null,
              tabview = this;
  
          _yuitest_coverline("build/tabview/tabview.js", 124);
  if (tabs) { // add classNames and fill in Tab fields from markup when possible
              _yuitest_coverline("build/tabview/tabview.js", 125);
  tabs.addClass(_classNames.tab);
              _yuitest_coverline("build/tabview/tabview.js", 126);
  contentBox.all(_queries.tabLabel).addClass(_classNames.tabLabel);
              _yuitest_coverline("build/tabview/tabview.js", 127);
  contentBox.all(_queries.tabPanel).addClass(_classNames.tabPanel);
  
              _yuitest_coverline("build/tabview/tabview.js", 129);
  tabs.each(function(node, i) {
                  _yuitest_coverfunc("build/tabview/tabview.js", "(anonymous 3)", 129);
  _yuitest_coverline("build/tabview/tabview.js", 130);
  var panelNode = (panels) ? panels.item(i) : null;
                  _yuitest_coverline("build/tabview/tabview.js", 131);
  tabview.add({
                      boundingBox: node,
                      contentBox: node.one(DOT + _classNames.tabLabel),
                      label: node.one(DOT + _classNames.tabLabel).get('text'),
                      panelNode: panelNode
                  });
              });
          }
      }
  }, {
  
      LIST_TEMPLATE: '<ul class="' + _classNames.tabviewList + '"></ul>',
      PANEL_TEMPLATE: '<div class="' + _classNames.tabviewPanel + '"></div>',
  
      ATTRS: {
          defaultChildType: {  
              value: 'Tab'
          },
  
          listNode: {
              setter: function(node) {
                  _yuitest_coverfunc("build/tabview/tabview.js", "setter", 151);
  _yuitest_coverline("build/tabview/tabview.js", 152);
  node = Y.one(node);
                  _yuitest_coverline("build/tabview/tabview.js", 153);
  if (node) {
                      _yuitest_coverline("build/tabview/tabview.js", 154);
  node.addClass(_classNames.tabviewList);
                  }
                  _yuitest_coverline("build/tabview/tabview.js", 156);
  return node;
              },
  
              valueFn: '_defListNodeValueFn'
          },
  
          panelNode: {
              setter: function(node) {
                  _yuitest_coverfunc("build/tabview/tabview.js", "setter", 163);
  _yuitest_coverline("build/tabview/tabview.js", 164);
  node = Y.one(node);
                  _yuitest_coverline("build/tabview/tabview.js", 165);
  if (node) {
                      _yuitest_coverline("build/tabview/tabview.js", 166);
  node.addClass(_classNames.tabviewPanel);
                  }
                  _yuitest_coverline("build/tabview/tabview.js", 168);
  return node;
              },
  
              valueFn: '_defPanelNodeValueFn'
          },
  
          tabIndex: {
              value: null
              //validator: '_validTabIndex'
          }
      },
  
      HTML_PARSER: {
          listNode: _queries.tabviewList,
          panelNode: _queries.tabviewPanel
      }
  });
  
  _yuitest_coverline("build/tabview/tabview.js", 186);
  Y.TabView = TabView;
  _yuitest_coverline("build/tabview/tabview.js", 187);
  var Lang = Y.Lang,
      _queries = Y.TabviewBase._queries,
      _classNames = Y.TabviewBase._classNames,
      getClassName = Y.ClassNameManager.getClassName;
  
  /**
   * Provides Tab instances for use with TabView
   * @param config {Object} Object literal specifying tabview configuration properties.
   *
   * @class Tab
   * @constructor
   * @extends Widget
   * @uses WidgetChild
   */
  _yuitest_coverline("build/tabview/tabview.js", 201);
  Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
      BOUNDING_TEMPLATE: '<li class="' + _classNames.tab + '"></li>',
      CONTENT_TEMPLATE: '<a class="' + _classNames.tabLabel + '"></a>',
      PANEL_TEMPLATE: '<div class="' + _classNames.tabPanel + '"></div>',
  
      _uiSetSelectedPanel: function(selected) {
          _yuitest_coverfunc("build/tabview/tabview.js", "_uiSetSelectedPanel", 206);
  _yuitest_coverline("build/tabview/tabview.js", 207);
  this.get('panelNode').toggleClass(_classNames.selectedPanel, selected);
      },
  
      _afterTabSelectedChange: function(event) {
         _yuitest_coverfunc("build/tabview/tabview.js", "_afterTabSelectedChange", 210);
  _yuitest_coverline("build/tabview/tabview.js", 211);
  this._uiSetSelectedPanel(event.newVal);
      },
  
      _afterParentChange: function(e) {
          _yuitest_coverfunc("build/tabview/tabview.js", "_afterParentChange", 214);
  _yuitest_coverline("build/tabview/tabview.js", 215);
  if (!e.newVal) {
              _yuitest_coverline("build/tabview/tabview.js", 216);
  this._remove();
          } else {
              _yuitest_coverline("build/tabview/tabview.js", 218);
  this._add();
          }
      },
  
      _initAria: function() {
          _yuitest_coverfunc("build/tabview/tabview.js", "_initAria", 222);
  _yuitest_coverline("build/tabview/tabview.js", 223);
  var anchor = this.get('contentBox'),
              id = anchor.get('id'),
              panel = this.get('panelNode');
   
          _yuitest_coverline("build/tabview/tabview.js", 227);
  if (!id) {
              _yuitest_coverline("build/tabview/tabview.js", 228);
  id = Y.guid();
              _yuitest_coverline("build/tabview/tabview.js", 229);
  anchor.set('id', id);
          }
          //  Apply the ARIA roles, states and properties to each tab
          _yuitest_coverline("build/tabview/tabview.js", 232);
  anchor.set('role', 'tab');
          _yuitest_coverline("build/tabview/tabview.js", 233);
  anchor.get('parentNode').set('role', 'presentation');
   
   
          //  Apply the ARIA roles, states and properties to each panel
          _yuitest_coverline("build/tabview/tabview.js", 237);
  panel.setAttrs({
              role: 'tabpanel',
              'aria-labelledby': id
          });
      },
  
      syncUI: function() {
          _yuitest_coverfunc("build/tabview/tabview.js", "syncUI", 243);
  _yuitest_coverline("build/tabview/tabview.js", 244);
  this.set('label', this.get('label'));
          _yuitest_coverline("build/tabview/tabview.js", 245);
  this.set('content', this.get('content'));
          _yuitest_coverline("build/tabview/tabview.js", 246);
  this._uiSetSelectedPanel(this.get('selected'));
      },
  
      bindUI: function() {
         _yuitest_coverfunc("build/tabview/tabview.js", "bindUI", 249);
  _yuitest_coverline("build/tabview/tabview.js", 250);
  this.after('selectedChange', this._afterTabSelectedChange);
         _yuitest_coverline("build/tabview/tabview.js", 251);
  this.after('parentChange', this._afterParentChange);
      },
  
      renderUI: function() {
          _yuitest_coverfunc("build/tabview/tabview.js", "renderUI", 254);
  _yuitest_coverline("build/tabview/tabview.js", 255);
  this._renderPanel();
          _yuitest_coverline("build/tabview/tabview.js", 256);
  this._initAria();
      },
  
      _renderPanel: function() {
          _yuitest_coverfunc("build/tabview/tabview.js", "_renderPanel", 259);
  _yuitest_coverline("build/tabview/tabview.js", 260);
  this.get('parent').get('panelNode')
              .appendChild(this.get('panelNode'));
      },
  
      _add: function() {
          _yuitest_coverfunc("build/tabview/tabview.js", "_add", 264);
  _yuitest_coverline("build/tabview/tabview.js", 265);
  var parent = this.get('parent').get('contentBox'),
              list = parent.get('listNode'),
              panel = parent.get('panelNode');
  
          _yuitest_coverline("build/tabview/tabview.js", 269);
  if (list) {
              _yuitest_coverline("build/tabview/tabview.js", 270);
  list.appendChild(this.get('boundingBox'));
          }
  
          _yuitest_coverline("build/tabview/tabview.js", 273);
  if (panel) {
              _yuitest_coverline("build/tabview/tabview.js", 274);
  panel.appendChild(this.get('panelNode'));
          }
      },
      
      _remove: function() {
          _yuitest_coverfunc("build/tabview/tabview.js", "_remove", 278);
  _yuitest_coverline("build/tabview/tabview.js", 279);
  this.get('boundingBox').remove();
          _yuitest_coverline("build/tabview/tabview.js", 280);
  this.get('panelNode').remove();
      },
  
      _onActivate: function(e) {
           _yuitest_coverfunc("build/tabview/tabview.js", "_onActivate", 283);
  _yuitest_coverline("build/tabview/tabview.js", 284);
  if (e.target === this) {
               //  Prevent the browser from navigating to the URL specified by the 
               //  anchor's href attribute.
               _yuitest_coverline("build/tabview/tabview.js", 287);
  e.domEvent.preventDefault();
               _yuitest_coverline("build/tabview/tabview.js", 288);
  e.target.set('selected', 1);
           }
      },
      
      initializer: function() {
         _yuitest_coverfunc("build/tabview/tabview.js", "initializer", 292);
  _yuitest_coverline("build/tabview/tabview.js", 293);
  this.publish(this.get('triggerEvent'), { 
             defaultFn: this._onActivate
         });
      },
  
      _defLabelSetter: function(label) {
          _yuitest_coverfunc("build/tabview/tabview.js", "_defLabelSetter", 298);
  _yuitest_coverline("build/tabview/tabview.js", 299);
  this.get('contentBox').setContent(label);
          _yuitest_coverline("build/tabview/tabview.js", 300);
  return label;
      },
  
      _defContentSetter: function(content) {
          _yuitest_coverfunc("build/tabview/tabview.js", "_defContentSetter", 303);
  _yuitest_coverline("build/tabview/tabview.js", 304);
  this.get('panelNode').setContent(content);
          _yuitest_coverline("build/tabview/tabview.js", 305);
  return content;
      },
  
      _defContentGetter: function(content) {
          _yuitest_coverfunc("build/tabview/tabview.js", "_defContentGetter", 308);
  _yuitest_coverline("build/tabview/tabview.js", 309);
  return this.get('panelNode').getContent();
      },
  
      // find panel by ID mapping from label href
      _defPanelNodeValueFn: function() {
          _yuitest_coverfunc("build/tabview/tabview.js", "_defPanelNodeValueFn", 313);
  _yuitest_coverline("build/tabview/tabview.js", 314);
  var href = this.get('contentBox').get('href') || '',
              parent = this.get('parent'),
              hashIndex = href.indexOf('#'),
              panel;
  
          _yuitest_coverline("build/tabview/tabview.js", 319);
  href = href.substr(hashIndex);
  
          _yuitest_coverline("build/tabview/tabview.js", 321);
  if (href.charAt(0) === '#') { // in-page nav, find by ID
              _yuitest_coverline("build/tabview/tabview.js", 322);
  panel = Y.one(href);
              _yuitest_coverline("build/tabview/tabview.js", 323);
  if (panel) {
                  _yuitest_coverline("build/tabview/tabview.js", 324);
  panel.addClass(_classNames.tabPanel);
              }
          }
  
          // use the one found by id, or else try matching indices
          _yuitest_coverline("build/tabview/tabview.js", 329);
  if (!panel && parent) {
              _yuitest_coverline("build/tabview/tabview.js", 330);
  panel = parent.get('panelNode')
                      .get('children').item(this.get('index'));
          }
  
          _yuitest_coverline("build/tabview/tabview.js", 334);
  if (!panel) { // create if none found
              _yuitest_coverline("build/tabview/tabview.js", 335);
  panel = Y.Node.create(this.PANEL_TEMPLATE);
          }
          _yuitest_coverline("build/tabview/tabview.js", 337);
  return panel;
      }
  }, {
      ATTRS: {
          /**
           * @attribute triggerEvent
           * @default "click" 
           * @type String
           */
          triggerEvent: {
              value: 'click'
          },
  
          /**
           * @attribute label
           * @type HTML
           */
          label: { 
              setter: '_defLabelSetter',
              validator: Lang.isString
          },
  
          /**
           * @attribute content
           * @type HTML
           */
          content: {
              setter: '_defContentSetter',
              getter: '_defContentGetter'
          },
  
          /**
           * @attribute panelNode
           * @type Y.Node
           */
          panelNode: {
              setter: function(node) {
                  _yuitest_coverfunc("build/tabview/tabview.js", "setter", 373);
  _yuitest_coverline("build/tabview/tabview.js", 374);
  node = Y.one(node);
                  _yuitest_coverline("build/tabview/tabview.js", 375);
  if (node) {
                      _yuitest_coverline("build/tabview/tabview.js", 376);
  node.addClass(_classNames.tabPanel);
                  }
                  _yuitest_coverline("build/tabview/tabview.js", 378);
  return node;
              },
              valueFn: '_defPanelNodeValueFn'
          },
          
          tabIndex: {
              value: null,
              validator: '_validTabIndex'
          }        
  
      },
  
      HTML_PARSER: {
          selected: function(contentBox) {
              _yuitest_coverfunc("build/tabview/tabview.js", "selected", 391);
  _yuitest_coverline("build/tabview/tabview.js", 392);
  var ret = (this.get('boundingBox').hasClass(_classNames.selectedTab)) ?
                          1 : 0;
              _yuitest_coverline("build/tabview/tabview.js", 394);
  return ret;
          }
      }
  
  });
  
  
  }, '3.8.0pr2', {"requires": ["widget", "widget-parent", "widget-child", "tabview-base", "node-pluginhost", "node-focusmanager"], "skinnable": true});
  