<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -15787,7 +15787,11 @@ _initContainerEl : function() {
     elContainer.id = this.getId() + &quot;-container&quot;; // Needed for tracking blur event
     elContainer.style.display = &quot;none&quot;;
     elContainer.tabIndex = 0;
-    elContainer.className = DT.CLASS_EDITOR;
+    
+    this.className = lang.isArray(this.className) ? this.className : this.className ? [this.className] : [];
+    this.className[this.className.length] = DT.CLASS_EDITOR;
+    elContainer.className = this.className.join(&quot; &quot;);
+    
     document.body.insertBefore(elContainer, document.body.firstChild);
     this._elContainer = elContainer;
 },
@@ -15940,6 +15944,13 @@ disableBtns : false,
  */
 useIFrame : false,
 
+/**
+ * Custom CSS class or array of classes applied to the container element.
+ *
+ * @property className
+ * @type String || String[]
+ */
+className : null,
 
 
 </diff>
      <filename>build/datatable/datatable-debug.js</filename>
    </modified>
    <modified>
      <diff>@@ -19,6 +19,6 @@ if(J&amp;&amp;J.length&gt;0){for(var I=J.length-1;I&gt;-1;I--){if(J[I].recordId&amp;&amp;J[I].columnKe
 if(I==&quot;single&quot;){this._handleSingleSelectionByMouse(J);}else{this._handleStandardSelectionByMouse(J);}},onEventSelectCell:function(J){var I=this.get(&quot;selectionMode&quot;);if(I==&quot;cellblock&quot;){this._handleCellBlockSelectionByMouse(J);}else{if(I==&quot;cellrange&quot;){this._handleCellRangeSelectionByMouse(J);}else{this._handleSingleCellSelectionByMouse(J);}}},onEventHighlightRow:function(I){if(!C.isAncestor(I.target,G.getRelatedTarget(I.event))){this.highlightRow(I.target);}},onEventUnhighlightRow:function(I){if(!C.isAncestor(I.target,G.getRelatedTarget(I.event))){this.unhighlightRow(I.target);}},onEventHighlightCell:function(I){if(!C.isAncestor(I.target,G.getRelatedTarget(I.event))){this.highlightCell(I.target);}},onEventUnhighlightCell:function(I){if(!C.isAncestor(I.target,G.getRelatedTarget(I.event))){this.unhighlightCell(I.target);}},onEventFormatCell:function(I){var L=I.target;var J=this.getTdEl(L);if(J){var K=this.getColumn(J.cellIndex);this.formatCell(J.firstChild,this.getRecord(J),K);}else{}},onEventShowCellEditor:function(I){this.showCellEditor(I.target);},onEventSaveCellEditor:function(I){if(this._oCellEditor){if(this._oCellEditor.save){this._oCellEditor.save();}else{this.saveCellEditor();}}},onEventCancelCellEditor:function(I){if(this._oCellEditor){if(this._oCellEditor.cancel){this._oCellEditor.cancel();}else{this.cancelCellEditor();}}},onDataReturnInitializeTable:function(I,J,K){if((this instanceof D)&amp;&amp;this._sId){this.initializeTable();this.onDataReturnSetRows(I,J,K);}},onDataReturnReplaceRows:function(M,L,N){if((this instanceof D)&amp;&amp;this._sId){this.fireEvent(&quot;dataReturnEvent&quot;,{request:M,response:L,payload:N});var J=this.doBeforeLoadData(M,L,N),K=this.get(&quot;paginator&quot;),I=0;if(J&amp;&amp;L&amp;&amp;!L.error&amp;&amp;H.isArray(L.results)){this._oRecordSet.reset();if(this.get(&quot;dynamicData&quot;)){if(N&amp;&amp;N.pagination&amp;&amp;H.isNumber(N.pagination.recordOffset)){I=N.pagination.recordOffset;}else{if(K){I=K.getStartIndex();}}}this._oRecordSet.setRecords(L.results,I|0);this._handleDataReturnPayload(M,L,N);this.render();}else{if(J&amp;&amp;L.error){this.showTableMessage(this.get(&quot;MSG_ERROR&quot;),D.CLASS_ERROR);}}}},onDataReturnAppendRows:function(J,K,L){if((this instanceof D)&amp;&amp;this._sId){this.fireEvent(&quot;dataReturnEvent&quot;,{request:J,response:K,payload:L});var I=this.doBeforeLoadData(J,K,L);if(I&amp;&amp;K&amp;&amp;!K.error&amp;&amp;H.isArray(K.results)){this.addRows(K.results);this._handleDataReturnPayload(J,K,L);}else{if(I&amp;&amp;K.error){this.showTableMessage(this.get(&quot;MSG_ERROR&quot;),D.CLASS_ERROR);}}}},onDataReturnInsertRows:function(J,K,L){if((this instanceof D)&amp;&amp;this._sId){this.fireEvent(&quot;dataReturnEvent&quot;,{request:J,response:K,payload:L});var I=this.doBeforeLoadData(J,K,L);if(I&amp;&amp;K&amp;&amp;!K.error&amp;&amp;H.isArray(K.results)){this.addRows(K.results,(L?L.insertIndex:0));this._handleDataReturnPayload(J,K,L);}else{if(I&amp;&amp;K.error){this.showTableMessage(this.get(&quot;MSG_ERROR&quot;),D.CLASS_ERROR);}}}},onDataReturnUpdateRows:function(J,K,L){if((this instanceof D)&amp;&amp;this._sId){this.fireEvent(&quot;dataReturnEvent&quot;,{request:J,response:K,payload:L});var I=this.doBeforeLoadData(J,K,L);if(I&amp;&amp;K&amp;&amp;!K.error&amp;&amp;H.isArray(K.results)){this.updateRows((L?L.updateIndex:0),K.results);this._handleDataReturnPayload(J,K,L);}else{if(I&amp;&amp;K.error){this.showTableMessage(this.get(&quot;MSG_ERROR&quot;),D.CLASS_ERROR);}}}},onDataReturnSetRows:function(M,L,N){if((this instanceof D)&amp;&amp;this._sId){this.fireEvent(&quot;dataReturnEvent&quot;,{request:M,response:L,payload:N});var J=this.doBeforeLoadData(M,L,N),K=this.get(&quot;paginator&quot;),I=0;if(J&amp;&amp;L&amp;&amp;!L.error&amp;&amp;H.isArray(L.results)){if(this.get(&quot;dynamicData&quot;)){if(N&amp;&amp;N.pagination&amp;&amp;H.isNumber(N.pagination.recordOffset)){I=N.pagination.recordOffset;}else{if(K){I=K.getStartIndex();}}this._oRecordSet.reset();}this._oRecordSet.setRecords(L.results,I|0);this._handleDataReturnPayload(M,L,N);this.render();}else{if(J&amp;&amp;L.error){this.showTableMessage(this.get(&quot;MSG_ERROR&quot;),D.CLASS_ERROR);}}}else{}},handleDataReturnPayload:function(J,I,K){return K;},_handleDataReturnPayload:function(K,J,L){L=this.handleDataReturnPayload(K,J,L);if(L){var I=this.get(&quot;paginator&quot;);if(I){if(this.get(&quot;dynamicData&quot;)){if(E.Paginator.isNumeric(L.totalRecords)){I.set(&quot;totalRecords&quot;,L.totalRecords);}}else{I.set(&quot;totalRecords&quot;,this._oRecordSet.getLength());}if(H.isObject(L.pagination)){I.set(&quot;rowsPerPage&quot;,L.pagination.rowsPerPage);I.set(&quot;recordOffset&quot;,L.pagination.recordOffset);}}if(L.sortedBy){this.set(&quot;sortedBy&quot;,L.sortedBy);}else{if(L.sorting){this.set(&quot;sortedBy&quot;,L.sorting);}}}},showCellEditorBtns:function(K){var L=K.appendChild(document.createElement(&quot;div&quot;));C.addClass(L,D.CLASS_BUTTON);var J=L.appendChild(document.createElement(&quot;button&quot;));C.addClass(J,D.CLASS_DEFAULT);J.innerHTML=&quot;OK&quot;;G.addListener(J,&quot;click&quot;,function(N,M){M.onEventSaveCellEditor(N,M);M.focusTbodyEl();},this,true);var I=L.appendChild(document.createElement(&quot;button&quot;));I.innerHTML=&quot;Cancel&quot;;G.addListener(I,&quot;click&quot;,function(N,M){M.onEventCancelCellEditor(N,M);M.focusTbodyEl();},this,true);},resetCellEditor:function(){var I=this._oCellEditor.container;I.style.display=&quot;none&quot;;G.purgeElement(I,true);I.innerHTML=&quot;&quot;;this._oCellEditor.value=null;this._oCellEditor.isActive=false;},getBody:function(){return this.getTbodyEl();},getCell:function(I){return this.getTdEl(I);},getRow:function(I){return this.getTrEl(I);},refreshView:function(){this.render();},select:function(J){if(!H.isArray(J)){J=[J];}for(var I=0;I&lt;J.length;I++){this.selectRow(J[I]);}},onEventEditCell:function(I){this.onEventShowCellEditor(I);},_syncColWidths:function(){this.validateColumnWidths();}});D.prototype.onDataReturnSetRecords=D.prototype.onDataReturnSetRows;D.prototype.onPaginatorChange=D.prototype.onPaginatorChangeRequest;D.formatTheadCell=function(){};D.editCheckbox=function(){};D.editDate=function(){};D.editDropdown=function(){};D.editRadio=function(){};D.editTextarea=function(){};D.editTextbox=function(){};})();(function(){var C=YAHOO.lang,F=YAHOO.util,E=YAHOO.widget,A=YAHOO.env.ua,D=F.Dom,J=F.Event,I=F.DataSourceBase,G=E.DataTable,B=E.Paginator;E.ScrollingDataTable=function(N,M,K,L){L=L||{};if(L.scrollable){L.scrollable=false;}E.ScrollingDataTable.superclass.constructor.call(this,N,M,K,L);
 this.subscribe(&quot;columnShowEvent&quot;,this._onColumnChange);};var H=E.ScrollingDataTable;C.augmentObject(H,{CLASS_HEADER:&quot;yui-dt-hd&quot;,CLASS_BODY:&quot;yui-dt-bd&quot;});C.extend(H,G,{_elHdContainer:null,_elHdTable:null,_elBdContainer:null,_elBdThead:null,_elTmpContainer:null,_elTmpTable:null,_bScrollbarX:null,initAttributes:function(K){K=K||{};H.superclass.initAttributes.call(this,K);this.setAttributeConfig(&quot;width&quot;,{value:null,validator:C.isString,method:function(L){if(this._elHdContainer&amp;&amp;this._elBdContainer){this._elHdContainer.style.width=L;this._elBdContainer.style.width=L;this._syncScrollX();this._syncScrollOverhang();}}});this.setAttributeConfig(&quot;height&quot;,{value:null,validator:C.isString,method:function(L){if(this._elHdContainer&amp;&amp;this._elBdContainer){this._elBdContainer.style.height=L;this._syncScrollX();this._syncScrollY();this._syncScrollOverhang();}}});this.setAttributeConfig(&quot;COLOR_COLUMNFILLER&quot;,{value:&quot;#F2F2F2&quot;,validator:C.isString,method:function(L){this._elHdContainer.style.backgroundColor=L;}});},_initDomElements:function(K){this._initContainerEl(K);if(this._elContainer&amp;&amp;this._elHdContainer&amp;&amp;this._elBdContainer){this._initTableEl();if(this._elHdTable&amp;&amp;this._elTable){this._initColgroupEl(this._elHdTable);this._initTheadEl(this._elHdTable,this._elTable);this._initTbodyEl(this._elTable);this._initMsgTbodyEl(this._elTable);}}if(!this._elContainer||!this._elTable||!this._elColgroup||!this._elThead||!this._elTbody||!this._elMsgTbody||!this._elHdTable||!this._elBdThead){return false;}else{return true;}},_destroyContainerEl:function(K){D.removeClass(K,G.CLASS_SCROLLABLE);H.superclass._destroyContainerEl.call(this,K);this._elHdContainer=null;this._elBdContainer=null;},_initContainerEl:function(L){H.superclass._initContainerEl.call(this,L);if(this._elContainer){L=this._elContainer;D.addClass(L,G.CLASS_SCROLLABLE);var K=document.createElement(&quot;div&quot;);K.style.width=this.get(&quot;width&quot;)||&quot;&quot;;K.style.backgroundColor=this.get(&quot;COLOR_COLUMNFILLER&quot;);D.addClass(K,H.CLASS_HEADER);this._elHdContainer=K;L.appendChild(K);var M=document.createElement(&quot;div&quot;);M.style.width=this.get(&quot;width&quot;)||&quot;&quot;;M.style.height=this.get(&quot;height&quot;)||&quot;&quot;;D.addClass(M,H.CLASS_BODY);J.addListener(M,&quot;scroll&quot;,this._onScroll,this);this._elBdContainer=M;L.appendChild(M);}},_initCaptionEl:function(K){},_destroyHdTableEl:function(){var K=this._elHdTable;if(K){J.purgeElement(K,true);K.parentNode.removeChild(K);this._elBdThead=null;}},_initTableEl:function(){if(this._elHdContainer){this._destroyHdTableEl();this._elHdTable=this._elHdContainer.appendChild(document.createElement(&quot;table&quot;));}H.superclass._initTableEl.call(this,this._elBdContainer);},_initTheadEl:function(L,K){L=L||this._elHdTable;K=K||this._elTable;this._initBdTheadEl(K);H.superclass._initTheadEl.call(this,L);},_initThEl:function(L,K){H.superclass._initThEl.call(this,L,K);L.id=this.getId()+&quot;-fixedth-&quot;+K.getSanitizedKey();},_destroyBdTheadEl:function(){var K=this._elBdThead;if(K){var L=K.parentNode;J.purgeElement(K,true);L.removeChild(K);this._elBdThead=null;this._destroyColumnHelpers();}},_initBdTheadEl:function(S){if(S){this._destroyBdTheadEl();var O=S.insertBefore(document.createElement(&quot;thead&quot;),S.firstChild);var U=this._oColumnSet,T=U.tree,N,K,R,P,M,L,Q;for(P=0,L=T.length;P&lt;L;P++){K=O.appendChild(document.createElement(&quot;tr&quot;));for(M=0,Q=T[P].length;M&lt;Q;M++){R=T[P][M];N=K.appendChild(document.createElement(&quot;th&quot;));this._initBdThEl(N,R,P,M);}}this._elBdThead=O;}},_initBdThEl:function(N,M){N.id=this.getId()+&quot;-th-&quot;+M.getSanitizedKey();N.rowSpan=M.getRowspan();N.colSpan=M.getColspan();if(M.abbr){N.abbr=M.abbr;}var L=M.getKey();var K=C.isValue(M.label)?M.label:L;N.innerHTML=K;},_initTbodyEl:function(K){H.superclass._initTbodyEl.call(this,K);K.style.marginTop=(this._elTbody.offsetTop&gt;0)?&quot;-&quot;+this._elTbody.offsetTop+&quot;px&quot;:0;},_focusEl:function(L){L=L||this._elTbody;var K=this;this._storeScrollPositions();setTimeout(function(){setTimeout(function(){try{L.focus();K._restoreScrollPositions();}catch(M){}},0);},0);},_runRenderChain:function(){this._storeScrollPositions();this._oChainRender.run();},_storeScrollPositions:function(){this._nScrollTop=this._elBdContainer.scrollTop;this._nScrollLeft=this._elBdContainer.scrollLeft;},clearScrollPositions:function(){this._nScrollTop=0;this._nScrollLeft=0;},_restoreScrollPositions:function(){if(this._nScrollTop){this._elBdContainer.scrollTop=this._nScrollTop;this._nScrollTop=null;}if(this._nScrollLeft){this._elBdContainer.scrollLeft=this._nScrollLeft;this._nScrollLeft=null;}},_validateColumnWidth:function(N,K){if(!N.width&amp;&amp;!N.hidden){var P=N.getThEl();if(N._calculatedWidth){this._setColumnWidth(N,&quot;auto&quot;,&quot;visible&quot;);}if(P.offsetWidth!==K.offsetWidth){var M=(P.offsetWidth&gt;K.offsetWidth)?N.getThLinerEl():K.firstChild;var L=Math.max(0,(M.offsetWidth-(parseInt(D.getStyle(M,&quot;paddingLeft&quot;),10)|0)-(parseInt(D.getStyle(M,&quot;paddingRight&quot;),10)|0)),N.minWidth);var O=&quot;visible&quot;;if((N.maxAutoWidth&gt;0)&amp;&amp;(L&gt;N.maxAutoWidth)){L=N.maxAutoWidth;O=&quot;hidden&quot;;}this._elTbody.style.display=&quot;none&quot;;this._setColumnWidth(N,L+&quot;px&quot;,O);N._calculatedWidth=L;this._elTbody.style.display=&quot;&quot;;}}},validateColumnWidths:function(S){var U=this._oColumnSet.keys,W=U.length,L=this.getFirstTrEl();if(A.ie){this._setOverhangValue(1);}if(U&amp;&amp;L&amp;&amp;(L.childNodes.length===W)){var M=this.get(&quot;width&quot;);if(M){this._elHdContainer.style.width=&quot;&quot;;this._elBdContainer.style.width=&quot;&quot;;}this._elContainer.style.width=&quot;&quot;;if(S&amp;&amp;C.isNumber(S.getKeyIndex())){this._validateColumnWidth(S,L.childNodes[S.getKeyIndex()]);}else{var T,K=[],O,Q,R;for(Q=0;Q&lt;W;Q++){S=U[Q];if(!S.width&amp;&amp;!S.hidden&amp;&amp;S._calculatedWidth){K[K.length]=S;}}this._elTbody.style.display=&quot;none&quot;;for(Q=0,R=K.length;Q&lt;R;Q++){this._setColumnWidth(K[Q],&quot;auto&quot;,&quot;visible&quot;);}this._elTbody.style.display=&quot;&quot;;K=[];for(Q=0;Q&lt;W;Q++){S=U[Q];T=L.childNodes[Q];if(!S.width&amp;&amp;!S.hidden){var N=S.getThEl();if(N.offsetWidth!==T.offsetWidth){var V=(N.offsetWidth&gt;T.offsetWidth)?S.getThLinerEl():T.firstChild;var P=Math.max(0,(V.offsetWidth-(parseInt(D.getStyle(V,&quot;paddingLeft&quot;),10)|0)-(parseInt(D.getStyle(V,&quot;paddingRight&quot;),10)|0)),S.minWidth);
 var X=&quot;visible&quot;;if((S.maxAutoWidth&gt;0)&amp;&amp;(P&gt;S.maxAutoWidth)){P=S.maxAutoWidth;X=&quot;hidden&quot;;}K[K.length]=[S,P,X];}}}this._elTbody.style.display=&quot;none&quot;;for(Q=0,R=K.length;Q&lt;R;Q++){O=K[Q];this._setColumnWidth(O[0],O[1]+&quot;px&quot;,O[2]);O[0]._calculatedWidth=O[1];}this._elTbody.style.display=&quot;&quot;;}if(M){this._elHdContainer.style.width=M;this._elBdContainer.style.width=M;}}this._syncScroll();this._restoreScrollPositions();},_syncScroll:function(){this._syncScrollX();this._syncScrollY();this._syncScrollOverhang();if(A.opera){this._elHdContainer.scrollLeft=this._elBdContainer.scrollLeft;if(!this.get(&quot;width&quot;)){document.body.style+=&quot;&quot;;}}},_syncScrollY:function(){var K=this._elTbody,L=this._elBdContainer;if(!this.get(&quot;width&quot;)){this._elContainer.style.width=(L.scrollHeight&gt;L.clientHeight)?(K.parentNode.clientWidth+19)+&quot;px&quot;:(K.parentNode.clientWidth+2)+&quot;px&quot;;}},_syncScrollX:function(){var K=this._elTbody,L=this._elBdContainer;if(!this.get(&quot;height&quot;)&amp;&amp;(A.ie)){L.style.height=(L.scrollWidth&gt;L.offsetWidth)?(K.parentNode.offsetHeight+18)+&quot;px&quot;:K.parentNode.offsetHeight+&quot;px&quot;;}if(this._elTbody.rows.length===0){this._elMsgTbody.parentNode.style.width=this.getTheadEl().parentNode.offsetWidth+&quot;px&quot;;}else{this._elMsgTbody.parentNode.style.width=&quot;&quot;;}},_syncScrollOverhang:function(){var L=this._elBdContainer,K=1;if((L.scrollHeight&gt;L.clientHeight)&amp;&amp;(L.scrollWidth&gt;L.clientWidth)){K=18;}this._setOverhangValue(K);},_setOverhangValue:function(N){var P=this._oColumnSet.headers[this._oColumnSet.headers.length-1]||[],L=P.length,K=this._sId+&quot;-fixedth-&quot;,O=N+&quot;px solid &quot;+this.get(&quot;COLOR_COLUMNFILLER&quot;);this._elThead.style.display=&quot;none&quot;;for(var M=0;M&lt;L;M++){D.get(K+P[M]).style.borderRight=O;}this._elThead.style.display=&quot;&quot;;},getHdContainerEl:function(){return this._elHdContainer;},getBdContainerEl:function(){return this._elBdContainer;},getHdTableEl:function(){return this._elHdTable;},getBdTableEl:function(){return this._elTable;},disable:function(){var K=this._elMask;K.style.width=this._elBdContainer.offsetWidth+&quot;px&quot;;K.style.height=this._elHdContainer.offsetHeight+this._elBdContainer.offsetHeight+&quot;px&quot;;K.style.display=&quot;&quot;;this.fireEvent(&quot;disableEvent&quot;);},removeColumn:function(M){var K=this._elHdContainer.scrollLeft;var L=this._elBdContainer.scrollLeft;M=H.superclass.removeColumn.call(this,M);this._elHdContainer.scrollLeft=K;this._elBdContainer.scrollLeft=L;return M;},insertColumn:function(N,L){var K=this._elHdContainer.scrollLeft;var M=this._elBdContainer.scrollLeft;var O=H.superclass.insertColumn.call(this,N,L);this._elHdContainer.scrollLeft=K;this._elBdContainer.scrollLeft=M;return O;},reorderColumn:function(N,L){var K=this._elHdContainer.scrollLeft;var M=this._elBdContainer.scrollLeft;var O=H.superclass.reorderColumn.call(this,N,L);this._elHdContainer.scrollLeft=K;this._elBdContainer.scrollLeft=M;return O;},setColumnWidth:function(L,K){L=this.getColumn(L);if(L){this._storeScrollPositions();if(C.isNumber(K)){K=(K&gt;L.minWidth)?K:L.minWidth;L.width=K;this._setColumnWidth(L,K+&quot;px&quot;);this._syncScroll();this.fireEvent(&quot;columnSetWidthEvent&quot;,{column:L,width:K});}else{if(K===null){L.width=K;this._setColumnWidth(L,&quot;auto&quot;);this.validateColumnWidths(L);this.fireEvent(&quot;columnUnsetWidthEvent&quot;,{column:L});}}this._clearTrTemplateEl();}else{}},scrollTo:function(M){var L=this.getTdEl(M);if(L){this.clearScrollPositions();this.getBdContainerEl().scrollLeft=L.offsetLeft;this.getBdContainerEl().scrollTop=L.parentNode.offsetTop;}else{var K=this.getTrEl(M);if(K){this.clearScrollPositions();this.getBdContainerEl().scrollTop=K.offsetTop;}}},showTableMessage:function(O,K){var P=this._elMsgTd;if(C.isString(O)){P.firstChild.innerHTML=O;}if(C.isString(K)){D.addClass(P.firstChild,K);}var N=this.getTheadEl();var L=N.parentNode;var M=L.offsetWidth;this._elMsgTbody.parentNode.style.width=this.getTheadEl().parentNode.offsetWidth+&quot;px&quot;;this._elMsgTbody.style.display=&quot;&quot;;this.fireEvent(&quot;tableMsgShowEvent&quot;,{html:O,className:K});},_onColumnChange:function(K){var L=(K.column)?K.column:(K.editor)?K.editor.column:null;this._storeScrollPositions();this.validateColumnWidths(L);},_onScroll:function(M,L){L._elHdContainer.scrollLeft=L._elBdContainer.scrollLeft;if(L._oCellEditor&amp;&amp;L._oCellEditor.isActive){L.fireEvent(&quot;editorBlurEvent&quot;,{editor:L._oCellEditor});L.cancelCellEditor();}var N=J.getTarget(M);var K=N.nodeName.toLowerCase();L.fireEvent(&quot;tableScrollEvent&quot;,{event:M,target:N});},_onTheadKeydown:function(N,L){if(J.getCharCode(N)===9){setTimeout(function(){if((L instanceof H)&amp;&amp;L._sId){L._elBdContainer.scrollLeft=L._elHdContainer.scrollLeft;}},0);}var O=J.getTarget(N);var K=O.nodeName.toLowerCase();var M=true;while(O&amp;&amp;(K!=&quot;table&quot;)){switch(K){case&quot;body&quot;:return;case&quot;input&quot;:case&quot;textarea&quot;:break;case&quot;thead&quot;:M=L.fireEvent(&quot;theadKeyEvent&quot;,{target:O,event:N});break;default:break;}if(M===false){return;}else{O=O.parentNode;if(O){K=O.nodeName.toLowerCase();}}}L.fireEvent(&quot;tableKeyEvent&quot;,{target:(O||L._elContainer),event:N});}});})();(function(){var C=YAHOO.lang,F=YAHOO.util,E=YAHOO.widget,B=YAHOO.env.ua,D=F.Dom,I=F.Event,H=E.DataTable;E.BaseCellEditor=function(K,J){this._sId=this._sId||&quot;yui-ceditor&quot;+YAHOO.widget.BaseCellEditor._nCount++;this._sType=K;this._initConfigs(J);this._initEvents();this.render();};var A=E.BaseCellEditor;C.augmentObject(A,{_nCount:0,CLASS_CELLEDITOR:&quot;yui-ceditor&quot;});A.prototype={_sId:null,_sType:null,_oDataTable:null,_oColumn:null,_oRecord:null,_elTd:null,_elContainer:null,_elCancelBtn:null,_elSaveBtn:null,_initConfigs:function(K){if(K&amp;&amp;YAHOO.lang.isObject(K)){for(var J in K){if(J){this[J]=K[J];}}}},_initEvents:function(){this.createEvent(&quot;showEvent&quot;);this.createEvent(&quot;keydownEvent&quot;);this.createEvent(&quot;invalidDataEvent&quot;);this.createEvent(&quot;revertEvent&quot;);this.createEvent(&quot;saveEvent&quot;);this.createEvent(&quot;cancelEvent&quot;);this.createEvent(&quot;blurEvent&quot;);this.createEvent(&quot;blockEvent&quot;);this.createEvent(&quot;unblockEvent&quot;);},_initContainerEl:function(){if(this._elContainer){YAHOO.util.Event.purgeElement(this._elContainer,true);this._elContainer.innerHTML=&quot;&quot;;}var J=document.createElement(&quot;div&quot;);J.id=this.getId()+&quot;-container&quot;;
-J.style.display=&quot;none&quot;;J.tabIndex=0;J.className=H.CLASS_EDITOR;document.body.insertBefore(J,document.body.firstChild);this._elContainer=J;},_initShimEl:function(){if(this.useIFrame){if(!this._elIFrame){var J=document.createElement(&quot;iframe&quot;);J.src=&quot;javascript:false&quot;;J.frameBorder=0;J.scrolling=&quot;no&quot;;J.style.display=&quot;none&quot;;J.className=H.CLASS_EDITOR_SHIM;J.tabIndex=-1;J.role=&quot;presentation&quot;;J.title=&quot;Presentational iframe shim&quot;;document.body.insertBefore(J,document.body.firstChild);this._elIFrame=J;}}},_hide:function(){this.getContainerEl().style.display=&quot;none&quot;;if(this._elIFrame){this._elIFrame.style.display=&quot;none&quot;;}this.isActive=false;this.getDataTable()._oCellEditor=null;},asyncSubmitter:null,value:null,defaultValue:null,validator:null,resetInvalidData:true,isActive:false,LABEL_SAVE:&quot;Save&quot;,LABEL_CANCEL:&quot;Cancel&quot;,disableBtns:false,useIFrame:false,toString:function(){return&quot;CellEditor instance &quot;+this._sId;},getId:function(){return this._sId;},getDataTable:function(){return this._oDataTable;},getColumn:function(){return this._oColumn;},getRecord:function(){return this._oRecord;},getTdEl:function(){return this._elTd;},getContainerEl:function(){return this._elContainer;},destroy:function(){this.unsubscribeAll();var K=this.getColumn();if(K){K.editor=null;}var J=this.getContainerEl();I.purgeElement(J,true);J.parentNode.removeChild(J);},render:function(){this._initContainerEl();this._initShimEl();I.addListener(this.getContainerEl(),&quot;keydown&quot;,function(L,J){if((L.keyCode==27)){var K=I.getTarget(L);if(K.nodeName&amp;&amp;K.nodeName.toLowerCase()===&quot;select&quot;){K.blur();}J.cancel();}J.fireEvent(&quot;keydownEvent&quot;,{editor:this,event:L});},this);this.renderForm();if(!this.disableBtns){this.renderBtns();}this.doAfterRender();},renderBtns:function(){var L=this.getContainerEl().appendChild(document.createElement(&quot;div&quot;));L.className=H.CLASS_BUTTON;var K=L.appendChild(document.createElement(&quot;button&quot;));K.className=H.CLASS_DEFAULT;K.innerHTML=this.LABEL_SAVE;I.addListener(K,&quot;click&quot;,function(M){this.save();},this,true);this._elSaveBtn=K;var J=L.appendChild(document.createElement(&quot;button&quot;));J.innerHTML=this.LABEL_CANCEL;I.addListener(J,&quot;click&quot;,function(M){this.cancel();},this,true);this._elCancelBtn=J;},attach:function(N,L){if(N instanceof YAHOO.widget.DataTable){this._oDataTable=N;L=N.getTdEl(L);if(L){this._elTd=L;var M=N.getColumn(L);if(M){this._oColumn=M;var J=N.getRecord(L);if(J){this._oRecord=J;var K=J.getData(this.getColumn().getField());this.value=(K!==undefined)?K:this.defaultValue;return true;}}}}return false;},move:function(){var M=this.getContainerEl(),L=this.getTdEl(),J=D.getX(L),N=D.getY(L);if(isNaN(J)||isNaN(N)){var K=this.getDataTable().getTbodyEl();J=L.offsetLeft+D.getX(K.parentNode)-K.scrollLeft;N=L.offsetTop+D.getY(K.parentNode)-K.scrollTop+this.getDataTable().getTheadEl().offsetHeight;}M.style.left=J+&quot;px&quot;;M.style.top=N+&quot;px&quot;;if(this._elIFrame){this._elIFrame.style.left=J+&quot;px&quot;;this._elIFrame.style.top=N+&quot;px&quot;;}},show:function(){var K=this.getContainerEl(),J=this._elIFrame;this.resetForm();this.isActive=true;K.style.display=&quot;&quot;;if(J){J.style.width=K.offsetWidth+&quot;px&quot;;J.style.height=K.offsetHeight+&quot;px&quot;;J.style.display=&quot;&quot;;}this.focus();this.fireEvent(&quot;showEvent&quot;,{editor:this});},block:function(){this.fireEvent(&quot;blockEvent&quot;,{editor:this});},unblock:function(){this.fireEvent(&quot;unblockEvent&quot;,{editor:this});},save:function(){var K=this.getInputValue();var L=K;if(this.validator){L=this.validator.call(this.getDataTable(),K,this.value,this);if(L===undefined){if(this.resetInvalidData){this.resetForm();}this.fireEvent(&quot;invalidDataEvent&quot;,{editor:this,oldData:this.value,newData:K});return;}}var M=this;var J=function(O,N){var P=M.value;if(O){M.value=N;M.getDataTable().updateCell(M.getRecord(),M.getColumn(),N);M._hide();M.fireEvent(&quot;saveEvent&quot;,{editor:M,oldData:P,newData:M.value});}else{M.resetForm();M.fireEvent(&quot;revertEvent&quot;,{editor:M,oldData:P,newData:N});}M.unblock();};this.block();if(C.isFunction(this.asyncSubmitter)){this.asyncSubmitter.call(this,J,L);}else{J(true,L);}},cancel:function(){if(this.isActive){this._hide();this.fireEvent(&quot;cancelEvent&quot;,{editor:this});}else{}},renderForm:function(){},doAfterRender:function(){},handleDisabledBtns:function(){},resetForm:function(){},focus:function(){},getInputValue:function(){}};C.augmentProto(A,F.EventProvider);E.CheckboxCellEditor=function(J){this._sId=&quot;yui-checkboxceditor&quot;+YAHOO.widget.BaseCellEditor._nCount++;E.CheckboxCellEditor.superclass.constructor.call(this,&quot;checkbox&quot;,J);};C.extend(E.CheckboxCellEditor,A,{checkboxOptions:null,checkboxes:null,value:null,renderForm:function(){if(C.isArray(this.checkboxOptions)){var M,N,P,K,L,J;for(L=0,J=this.checkboxOptions.length;L&lt;J;L++){M=this.checkboxOptions[L];N=C.isValue(M.value)?M.value:M;P=this.getId()+&quot;-chk&quot;+L;this.getContainerEl().innerHTML+='&lt;input type=&quot;checkbox&quot;'+' id=&quot;'+P+'&quot;'+' value=&quot;'+N+'&quot; /&gt;';K=this.getContainerEl().appendChild(document.createElement(&quot;label&quot;));K.htmlFor=P;K.innerHTML=C.isValue(M.label)?M.label:M;}var O=[];for(L=0;L&lt;J;L++){O[O.length]=this.getContainerEl().childNodes[L*2];}this.checkboxes=O;if(this.disableBtns){this.handleDisabledBtns();}}else{}},handleDisabledBtns:function(){I.addListener(this.getContainerEl(),&quot;click&quot;,function(J){if(I.getTarget(J).tagName.toLowerCase()===&quot;input&quot;){this.save();}},this,true);},resetForm:function(){var N=C.isArray(this.value)?this.value:[this.value];for(var M=0,L=this.checkboxes.length;M&lt;L;M++){this.checkboxes[M].checked=false;for(var K=0,J=N.length;K&lt;J;K++){if(this.checkboxes[M].value===N[K]){this.checkboxes[M].checked=true;}}}},focus:function(){this.checkboxes[0].focus();},getInputValue:function(){var J=[];for(var L=0,K=this.checkboxes.length;L&lt;K;L++){if(this.checkboxes[L].checked){J[J.length]=this.checkboxes[L].value;}}return J;}});C.augmentObject(E.CheckboxCellEditor,A);E.DateCellEditor=function(J){this._sId=&quot;yui-dateceditor&quot;+YAHOO.widget.BaseCellEditor._nCount++;E.DateCellEditor.superclass.constructor.call(this,&quot;date&quot;,J);};C.extend(E.DateCellEditor,A,{calendar:null,calendarOptions:null,defaultValue:new Date(),renderForm:function(){if(YAHOO.widget.Calendar){var K=this.getContainerEl().appendChild(document.createElement(&quot;div&quot;));
-K.id=this.getId()+&quot;-dateContainer&quot;;var L=new YAHOO.widget.Calendar(this.getId()+&quot;-date&quot;,K.id,this.calendarOptions);L.render();K.style.cssFloat=&quot;none&quot;;if(B.ie){var J=this.getContainerEl().appendChild(document.createElement(&quot;div&quot;));J.style.clear=&quot;both&quot;;}this.calendar=L;if(this.disableBtns){this.handleDisabledBtns();}}else{}},handleDisabledBtns:function(){this.calendar.selectEvent.subscribe(function(J){this.save();},this,true);},resetForm:function(){var K=this.value;var J=(K.getMonth()+1)+&quot;/&quot;+K.getDate()+&quot;/&quot;+K.getFullYear();this.calendar.cfg.setProperty(&quot;selected&quot;,J,false);this.calendar.render();},focus:function(){},getInputValue:function(){return this.calendar.getSelectedDates()[0];}});C.augmentObject(E.DateCellEditor,A);E.DropdownCellEditor=function(J){this._sId=&quot;yui-dropdownceditor&quot;+YAHOO.widget.BaseCellEditor._nCount++;E.DropdownCellEditor.superclass.constructor.call(this,&quot;dropdown&quot;,J);};C.extend(E.DropdownCellEditor,A,{dropdownOptions:null,dropdown:null,multiple:false,size:null,renderForm:function(){var M=this.getContainerEl().appendChild(document.createElement(&quot;select&quot;));M.style.zoom=1;if(this.multiple){M.multiple=&quot;multiple&quot;;}if(C.isNumber(this.size)){M.size=this.size;}this.dropdown=M;if(C.isArray(this.dropdownOptions)){var N,L;for(var K=0,J=this.dropdownOptions.length;K&lt;J;K++){N=this.dropdownOptions[K];L=document.createElement(&quot;option&quot;);L.value=(C.isValue(N.value))?N.value:N;L.innerHTML=(C.isValue(N.label))?N.label:N;L=M.appendChild(L);}if(this.disableBtns){this.handleDisabledBtns();}}},handleDisabledBtns:function(){if(this.multiple){I.addListener(this.dropdown,&quot;blur&quot;,function(J){this.save();},this,true);}else{I.addListener(this.dropdown,&quot;change&quot;,function(J){this.save();},this,true);}},resetForm:function(){var P=this.dropdown.options,M=0,L=P.length;if(C.isArray(this.value)){var K=this.value,J=0,O=K.length,N={};for(;M&lt;L;M++){P[M].selected=false;N[P[M].value]=P[M];}for(;J&lt;O;J++){if(N[K[J]]){N[K[J]].selected=true;}}}else{for(;M&lt;L;M++){if(this.value===P[M].value){P[M].selected=true;}}}},focus:function(){this.getDataTable()._focusEl(this.dropdown);},getInputValue:function(){var M=this.dropdown.options;if(this.multiple){var J=[],L=0,K=M.length;for(;L&lt;K;L++){if(M[L].selected){J.push(M[L].value);}}return J;}else{return M[M.selectedIndex].value;}}});C.augmentObject(E.DropdownCellEditor,A);E.RadioCellEditor=function(J){this._sId=&quot;yui-radioceditor&quot;+YAHOO.widget.BaseCellEditor._nCount++;E.RadioCellEditor.superclass.constructor.call(this,&quot;radio&quot;,J);};C.extend(E.RadioCellEditor,A,{radios:null,radioOptions:null,renderForm:function(){if(C.isArray(this.radioOptions)){var J,K,Q,N;for(var M=0,O=this.radioOptions.length;M&lt;O;M++){J=this.radioOptions[M];K=C.isValue(J.value)?J.value:J;Q=this.getId()+&quot;-radio&quot;+M;this.getContainerEl().innerHTML+='&lt;input type=&quot;radio&quot;'+' name=&quot;'+this.getId()+'&quot;'+' value=&quot;'+K+'&quot;'+' id=&quot;'+Q+'&quot; /&gt;';N=this.getContainerEl().appendChild(document.createElement(&quot;label&quot;));N.htmlFor=Q;N.innerHTML=(C.isValue(J.label))?J.label:J;}var P=[],R;for(var L=0;L&lt;O;L++){R=this.getContainerEl().childNodes[L*2];P[P.length]=R;}this.radios=P;if(this.disableBtns){this.handleDisabledBtns();}}else{}},handleDisabledBtns:function(){I.addListener(this.getContainerEl(),&quot;click&quot;,function(J){if(I.getTarget(J).tagName.toLowerCase()===&quot;input&quot;){this.save();}},this,true);},resetForm:function(){for(var L=0,K=this.radios.length;L&lt;K;L++){var J=this.radios[L];if(this.value===J.value){J.checked=true;return;}}},focus:function(){for(var K=0,J=this.radios.length;K&lt;J;K++){if(this.radios[K].checked){this.radios[K].focus();return;}}},getInputValue:function(){for(var K=0,J=this.radios.length;K&lt;J;K++){if(this.radios[K].checked){return this.radios[K].value;}}}});C.augmentObject(E.RadioCellEditor,A);E.TextareaCellEditor=function(J){this._sId=&quot;yui-textareaceditor&quot;+YAHOO.widget.BaseCellEditor._nCount++;E.TextareaCellEditor.superclass.constructor.call(this,&quot;textarea&quot;,J);};C.extend(E.TextareaCellEditor,A,{textarea:null,renderForm:function(){var J=this.getContainerEl().appendChild(document.createElement(&quot;textarea&quot;));this.textarea=J;if(this.disableBtns){this.handleDisabledBtns();}},handleDisabledBtns:function(){I.addListener(this.textarea,&quot;blur&quot;,function(J){this.save();},this,true);},move:function(){this.textarea.style.width=this.getTdEl().offsetWidth+&quot;px&quot;;this.textarea.style.height=&quot;3em&quot;;YAHOO.widget.TextareaCellEditor.superclass.move.call(this);},resetForm:function(){this.textarea.value=this.value;},focus:function(){this.getDataTable()._focusEl(this.textarea);this.textarea.select();},getInputValue:function(){return this.textarea.value;}});C.augmentObject(E.TextareaCellEditor,A);E.TextboxCellEditor=function(J){this._sId=&quot;yui-textboxceditor&quot;+YAHOO.widget.BaseCellEditor._nCount++;E.TextboxCellEditor.superclass.constructor.call(this,&quot;textbox&quot;,J);};C.extend(E.TextboxCellEditor,A,{textbox:null,renderForm:function(){var J;if(B.webkit&gt;420){J=this.getContainerEl().appendChild(document.createElement(&quot;form&quot;)).appendChild(document.createElement(&quot;input&quot;));}else{J=this.getContainerEl().appendChild(document.createElement(&quot;input&quot;));}J.type=&quot;text&quot;;this.textbox=J;I.addListener(J,&quot;keypress&quot;,function(K){if((K.keyCode===13)){YAHOO.util.Event.preventDefault(K);this.save();}},this,true);if(this.disableBtns){this.handleDisabledBtns();}},move:function(){this.textbox.style.width=this.getTdEl().offsetWidth+&quot;px&quot;;E.TextboxCellEditor.superclass.move.call(this);},resetForm:function(){this.textbox.value=C.isValue(this.value)?this.value.toString():&quot;&quot;;},focus:function(){this.getDataTable()._focusEl(this.textbox);this.textbox.select();},getInputValue:function(){return this.textbox.value;}});C.augmentObject(E.TextboxCellEditor,A);H.Editors={checkbox:E.CheckboxCellEditor,&quot;date&quot;:E.DateCellEditor,dropdown:E.DropdownCellEditor,radio:E.RadioCellEditor,textarea:E.TextareaCellEditor,textbox:E.TextboxCellEditor};E.CellEditor=function(K,J){if(K&amp;&amp;H.Editors[K]){C.augmentObject(A,H.Editors[K]);return new H.Editors[K](J);}else{return new A(null,J);}};var G=E.CellEditor;C.augmentObject(G,A);
-})();YAHOO.register(&quot;datatable&quot;,YAHOO.widget.DataTable,{version:&quot;@VERSION@&quot;,build:&quot;@BUILD@&quot;});
\ No newline at end of file
+J.style.display=&quot;none&quot;;J.tabIndex=0;this.className=C.isArray(this.className)?this.className:this.className?[this.className]:[];this.className[this.className.length]=H.CLASS_EDITOR;J.className=this.className.join(&quot; &quot;);document.body.insertBefore(J,document.body.firstChild);this._elContainer=J;},_initShimEl:function(){if(this.useIFrame){if(!this._elIFrame){var J=document.createElement(&quot;iframe&quot;);J.src=&quot;javascript:false&quot;;J.frameBorder=0;J.scrolling=&quot;no&quot;;J.style.display=&quot;none&quot;;J.className=H.CLASS_EDITOR_SHIM;J.tabIndex=-1;J.role=&quot;presentation&quot;;J.title=&quot;Presentational iframe shim&quot;;document.body.insertBefore(J,document.body.firstChild);this._elIFrame=J;}}},_hide:function(){this.getContainerEl().style.display=&quot;none&quot;;if(this._elIFrame){this._elIFrame.style.display=&quot;none&quot;;}this.isActive=false;this.getDataTable()._oCellEditor=null;},asyncSubmitter:null,value:null,defaultValue:null,validator:null,resetInvalidData:true,isActive:false,LABEL_SAVE:&quot;Save&quot;,LABEL_CANCEL:&quot;Cancel&quot;,disableBtns:false,useIFrame:false,className:null,toString:function(){return&quot;CellEditor instance &quot;+this._sId;},getId:function(){return this._sId;},getDataTable:function(){return this._oDataTable;},getColumn:function(){return this._oColumn;},getRecord:function(){return this._oRecord;},getTdEl:function(){return this._elTd;},getContainerEl:function(){return this._elContainer;},destroy:function(){this.unsubscribeAll();var K=this.getColumn();if(K){K.editor=null;}var J=this.getContainerEl();I.purgeElement(J,true);J.parentNode.removeChild(J);},render:function(){this._initContainerEl();this._initShimEl();I.addListener(this.getContainerEl(),&quot;keydown&quot;,function(L,J){if((L.keyCode==27)){var K=I.getTarget(L);if(K.nodeName&amp;&amp;K.nodeName.toLowerCase()===&quot;select&quot;){K.blur();}J.cancel();}J.fireEvent(&quot;keydownEvent&quot;,{editor:this,event:L});},this);this.renderForm();if(!this.disableBtns){this.renderBtns();}this.doAfterRender();},renderBtns:function(){var L=this.getContainerEl().appendChild(document.createElement(&quot;div&quot;));L.className=H.CLASS_BUTTON;var K=L.appendChild(document.createElement(&quot;button&quot;));K.className=H.CLASS_DEFAULT;K.innerHTML=this.LABEL_SAVE;I.addListener(K,&quot;click&quot;,function(M){this.save();},this,true);this._elSaveBtn=K;var J=L.appendChild(document.createElement(&quot;button&quot;));J.innerHTML=this.LABEL_CANCEL;I.addListener(J,&quot;click&quot;,function(M){this.cancel();},this,true);this._elCancelBtn=J;},attach:function(N,L){if(N instanceof YAHOO.widget.DataTable){this._oDataTable=N;L=N.getTdEl(L);if(L){this._elTd=L;var M=N.getColumn(L);if(M){this._oColumn=M;var J=N.getRecord(L);if(J){this._oRecord=J;var K=J.getData(this.getColumn().getField());this.value=(K!==undefined)?K:this.defaultValue;return true;}}}}return false;},move:function(){var M=this.getContainerEl(),L=this.getTdEl(),J=D.getX(L),N=D.getY(L);if(isNaN(J)||isNaN(N)){var K=this.getDataTable().getTbodyEl();J=L.offsetLeft+D.getX(K.parentNode)-K.scrollLeft;N=L.offsetTop+D.getY(K.parentNode)-K.scrollTop+this.getDataTable().getTheadEl().offsetHeight;}M.style.left=J+&quot;px&quot;;M.style.top=N+&quot;px&quot;;if(this._elIFrame){this._elIFrame.style.left=J+&quot;px&quot;;this._elIFrame.style.top=N+&quot;px&quot;;}},show:function(){var K=this.getContainerEl(),J=this._elIFrame;this.resetForm();this.isActive=true;K.style.display=&quot;&quot;;if(J){J.style.width=K.offsetWidth+&quot;px&quot;;J.style.height=K.offsetHeight+&quot;px&quot;;J.style.display=&quot;&quot;;}this.focus();this.fireEvent(&quot;showEvent&quot;,{editor:this});},block:function(){this.fireEvent(&quot;blockEvent&quot;,{editor:this});},unblock:function(){this.fireEvent(&quot;unblockEvent&quot;,{editor:this});},save:function(){var K=this.getInputValue();var L=K;if(this.validator){L=this.validator.call(this.getDataTable(),K,this.value,this);if(L===undefined){if(this.resetInvalidData){this.resetForm();}this.fireEvent(&quot;invalidDataEvent&quot;,{editor:this,oldData:this.value,newData:K});return;}}var M=this;var J=function(O,N){var P=M.value;if(O){M.value=N;M.getDataTable().updateCell(M.getRecord(),M.getColumn(),N);M._hide();M.fireEvent(&quot;saveEvent&quot;,{editor:M,oldData:P,newData:M.value});}else{M.resetForm();M.fireEvent(&quot;revertEvent&quot;,{editor:M,oldData:P,newData:N});}M.unblock();};this.block();if(C.isFunction(this.asyncSubmitter)){this.asyncSubmitter.call(this,J,L);}else{J(true,L);}},cancel:function(){if(this.isActive){this._hide();this.fireEvent(&quot;cancelEvent&quot;,{editor:this});}else{}},renderForm:function(){},doAfterRender:function(){},handleDisabledBtns:function(){},resetForm:function(){},focus:function(){},getInputValue:function(){}};C.augmentProto(A,F.EventProvider);E.CheckboxCellEditor=function(J){this._sId=&quot;yui-checkboxceditor&quot;+YAHOO.widget.BaseCellEditor._nCount++;E.CheckboxCellEditor.superclass.constructor.call(this,&quot;checkbox&quot;,J);};C.extend(E.CheckboxCellEditor,A,{checkboxOptions:null,checkboxes:null,value:null,renderForm:function(){if(C.isArray(this.checkboxOptions)){var M,N,P,K,L,J;for(L=0,J=this.checkboxOptions.length;L&lt;J;L++){M=this.checkboxOptions[L];N=C.isValue(M.value)?M.value:M;P=this.getId()+&quot;-chk&quot;+L;this.getContainerEl().innerHTML+='&lt;input type=&quot;checkbox&quot;'+' id=&quot;'+P+'&quot;'+' value=&quot;'+N+'&quot; /&gt;';K=this.getContainerEl().appendChild(document.createElement(&quot;label&quot;));K.htmlFor=P;K.innerHTML=C.isValue(M.label)?M.label:M;}var O=[];for(L=0;L&lt;J;L++){O[O.length]=this.getContainerEl().childNodes[L*2];}this.checkboxes=O;if(this.disableBtns){this.handleDisabledBtns();}}else{}},handleDisabledBtns:function(){I.addListener(this.getContainerEl(),&quot;click&quot;,function(J){if(I.getTarget(J).tagName.toLowerCase()===&quot;input&quot;){this.save();}},this,true);},resetForm:function(){var N=C.isArray(this.value)?this.value:[this.value];for(var M=0,L=this.checkboxes.length;M&lt;L;M++){this.checkboxes[M].checked=false;for(var K=0,J=N.length;K&lt;J;K++){if(this.checkboxes[M].value===N[K]){this.checkboxes[M].checked=true;}}}},focus:function(){this.checkboxes[0].focus();},getInputValue:function(){var J=[];for(var L=0,K=this.checkboxes.length;L&lt;K;L++){if(this.checkboxes[L].checked){J[J.length]=this.checkboxes[L].value;}}return J;}});C.augmentObject(E.CheckboxCellEditor,A);E.DateCellEditor=function(J){this._sId=&quot;yui-dateceditor&quot;+YAHOO.widget.BaseCellEditor._nCount++;
+E.DateCellEditor.superclass.constructor.call(this,&quot;date&quot;,J);};C.extend(E.DateCellEditor,A,{calendar:null,calendarOptions:null,defaultValue:new Date(),renderForm:function(){if(YAHOO.widget.Calendar){var K=this.getContainerEl().appendChild(document.createElement(&quot;div&quot;));K.id=this.getId()+&quot;-dateContainer&quot;;var L=new YAHOO.widget.Calendar(this.getId()+&quot;-date&quot;,K.id,this.calendarOptions);L.render();K.style.cssFloat=&quot;none&quot;;if(B.ie){var J=this.getContainerEl().appendChild(document.createElement(&quot;div&quot;));J.style.clear=&quot;both&quot;;}this.calendar=L;if(this.disableBtns){this.handleDisabledBtns();}}else{}},handleDisabledBtns:function(){this.calendar.selectEvent.subscribe(function(J){this.save();},this,true);},resetForm:function(){var K=this.value;var J=(K.getMonth()+1)+&quot;/&quot;+K.getDate()+&quot;/&quot;+K.getFullYear();this.calendar.cfg.setProperty(&quot;selected&quot;,J,false);this.calendar.render();},focus:function(){},getInputValue:function(){return this.calendar.getSelectedDates()[0];}});C.augmentObject(E.DateCellEditor,A);E.DropdownCellEditor=function(J){this._sId=&quot;yui-dropdownceditor&quot;+YAHOO.widget.BaseCellEditor._nCount++;E.DropdownCellEditor.superclass.constructor.call(this,&quot;dropdown&quot;,J);};C.extend(E.DropdownCellEditor,A,{dropdownOptions:null,dropdown:null,multiple:false,size:null,renderForm:function(){var M=this.getContainerEl().appendChild(document.createElement(&quot;select&quot;));M.style.zoom=1;if(this.multiple){M.multiple=&quot;multiple&quot;;}if(C.isNumber(this.size)){M.size=this.size;}this.dropdown=M;if(C.isArray(this.dropdownOptions)){var N,L;for(var K=0,J=this.dropdownOptions.length;K&lt;J;K++){N=this.dropdownOptions[K];L=document.createElement(&quot;option&quot;);L.value=(C.isValue(N.value))?N.value:N;L.innerHTML=(C.isValue(N.label))?N.label:N;L=M.appendChild(L);}if(this.disableBtns){this.handleDisabledBtns();}}},handleDisabledBtns:function(){if(this.multiple){I.addListener(this.dropdown,&quot;blur&quot;,function(J){this.save();},this,true);}else{I.addListener(this.dropdown,&quot;change&quot;,function(J){this.save();},this,true);}},resetForm:function(){var P=this.dropdown.options,M=0,L=P.length;if(C.isArray(this.value)){var K=this.value,J=0,O=K.length,N={};for(;M&lt;L;M++){P[M].selected=false;N[P[M].value]=P[M];}for(;J&lt;O;J++){if(N[K[J]]){N[K[J]].selected=true;}}}else{for(;M&lt;L;M++){if(this.value===P[M].value){P[M].selected=true;}}}},focus:function(){this.getDataTable()._focusEl(this.dropdown);},getInputValue:function(){var M=this.dropdown.options;if(this.multiple){var J=[],L=0,K=M.length;for(;L&lt;K;L++){if(M[L].selected){J.push(M[L].value);}}return J;}else{return M[M.selectedIndex].value;}}});C.augmentObject(E.DropdownCellEditor,A);E.RadioCellEditor=function(J){this._sId=&quot;yui-radioceditor&quot;+YAHOO.widget.BaseCellEditor._nCount++;E.RadioCellEditor.superclass.constructor.call(this,&quot;radio&quot;,J);};C.extend(E.RadioCellEditor,A,{radios:null,radioOptions:null,renderForm:function(){if(C.isArray(this.radioOptions)){var J,K,Q,N;for(var M=0,O=this.radioOptions.length;M&lt;O;M++){J=this.radioOptions[M];K=C.isValue(J.value)?J.value:J;Q=this.getId()+&quot;-radio&quot;+M;this.getContainerEl().innerHTML+='&lt;input type=&quot;radio&quot;'+' name=&quot;'+this.getId()+'&quot;'+' value=&quot;'+K+'&quot;'+' id=&quot;'+Q+'&quot; /&gt;';N=this.getContainerEl().appendChild(document.createElement(&quot;label&quot;));N.htmlFor=Q;N.innerHTML=(C.isValue(J.label))?J.label:J;}var P=[],R;for(var L=0;L&lt;O;L++){R=this.getContainerEl().childNodes[L*2];P[P.length]=R;}this.radios=P;if(this.disableBtns){this.handleDisabledBtns();}}else{}},handleDisabledBtns:function(){I.addListener(this.getContainerEl(),&quot;click&quot;,function(J){if(I.getTarget(J).tagName.toLowerCase()===&quot;input&quot;){this.save();}},this,true);},resetForm:function(){for(var L=0,K=this.radios.length;L&lt;K;L++){var J=this.radios[L];if(this.value===J.value){J.checked=true;return;}}},focus:function(){for(var K=0,J=this.radios.length;K&lt;J;K++){if(this.radios[K].checked){this.radios[K].focus();return;}}},getInputValue:function(){for(var K=0,J=this.radios.length;K&lt;J;K++){if(this.radios[K].checked){return this.radios[K].value;}}}});C.augmentObject(E.RadioCellEditor,A);E.TextareaCellEditor=function(J){this._sId=&quot;yui-textareaceditor&quot;+YAHOO.widget.BaseCellEditor._nCount++;E.TextareaCellEditor.superclass.constructor.call(this,&quot;textarea&quot;,J);};C.extend(E.TextareaCellEditor,A,{textarea:null,renderForm:function(){var J=this.getContainerEl().appendChild(document.createElement(&quot;textarea&quot;));this.textarea=J;if(this.disableBtns){this.handleDisabledBtns();}},handleDisabledBtns:function(){I.addListener(this.textarea,&quot;blur&quot;,function(J){this.save();},this,true);},move:function(){this.textarea.style.width=this.getTdEl().offsetWidth+&quot;px&quot;;this.textarea.style.height=&quot;3em&quot;;YAHOO.widget.TextareaCellEditor.superclass.move.call(this);},resetForm:function(){this.textarea.value=this.value;},focus:function(){this.getDataTable()._focusEl(this.textarea);this.textarea.select();},getInputValue:function(){return this.textarea.value;}});C.augmentObject(E.TextareaCellEditor,A);E.TextboxCellEditor=function(J){this._sId=&quot;yui-textboxceditor&quot;+YAHOO.widget.BaseCellEditor._nCount++;E.TextboxCellEditor.superclass.constructor.call(this,&quot;textbox&quot;,J);};C.extend(E.TextboxCellEditor,A,{textbox:null,renderForm:function(){var J;if(B.webkit&gt;420){J=this.getContainerEl().appendChild(document.createElement(&quot;form&quot;)).appendChild(document.createElement(&quot;input&quot;));}else{J=this.getContainerEl().appendChild(document.createElement(&quot;input&quot;));}J.type=&quot;text&quot;;this.textbox=J;I.addListener(J,&quot;keypress&quot;,function(K){if((K.keyCode===13)){YAHOO.util.Event.preventDefault(K);this.save();}},this,true);if(this.disableBtns){this.handleDisabledBtns();}},move:function(){this.textbox.style.width=this.getTdEl().offsetWidth+&quot;px&quot;;E.TextboxCellEditor.superclass.move.call(this);},resetForm:function(){this.textbox.value=C.isValue(this.value)?this.value.toString():&quot;&quot;;},focus:function(){this.getDataTable()._focusEl(this.textbox);this.textbox.select();},getInputValue:function(){return this.textbox.value;}});C.augmentObject(E.TextboxCellEditor,A);H.Editors={checkbox:E.CheckboxCellEditor,&quot;date&quot;:E.DateCellEditor,dropdown:E.DropdownCellEditor,radio:E.RadioCellEditor,textarea:E.TextareaCellEditor,textbox:E.TextboxCellEditor};
+E.CellEditor=function(K,J){if(K&amp;&amp;H.Editors[K]){C.augmentObject(A,H.Editors[K]);return new H.Editors[K](J);}else{return new A(null,J);}};var G=E.CellEditor;C.augmentObject(G,A);})();YAHOO.register(&quot;datatable&quot;,YAHOO.widget.DataTable,{version:&quot;@VERSION@&quot;,build:&quot;@BUILD@&quot;});
\ No newline at end of file</diff>
      <filename>build/datatable/datatable-min.js</filename>
    </modified>
    <modified>
      <diff>@@ -15563,7 +15563,11 @@ _initContainerEl : function() {
     elContainer.id = this.getId() + &quot;-container&quot;; // Needed for tracking blur event
     elContainer.style.display = &quot;none&quot;;
     elContainer.tabIndex = 0;
-    elContainer.className = DT.CLASS_EDITOR;
+    
+    this.className = lang.isArray(this.className) ? this.className : this.className ? [this.className] : [];
+    this.className[this.className.length] = DT.CLASS_EDITOR;
+    elContainer.className = this.className.join(&quot; &quot;);
+    
     document.body.insertBefore(elContainer, document.body.firstChild);
     this._elContainer = elContainer;
 },
@@ -15716,6 +15720,13 @@ disableBtns : false,
  */
 useIFrame : false,
 
+/**
+ * Custom CSS class or array of classes applied to the container element.
+ *
+ * @property className
+ * @type String || String[]
+ */
+className : null,
 
 
 </diff>
      <filename>build/datatable/datatable.js</filename>
    </modified>
    <modified>
      <diff>@@ -227,7 +227,11 @@ _initContainerEl : function() {
     elContainer.id = this.getId() + &quot;-container&quot;; // Needed for tracking blur event
     elContainer.style.display = &quot;none&quot;;
     elContainer.tabIndex = 0;
-    elContainer.className = DT.CLASS_EDITOR;
+    
+    this.className = lang.isArray(this.className) ? this.className : this.className ? [this.className] : [];
+    this.className[this.className.length] = DT.CLASS_EDITOR;
+    elContainer.className = this.className.join(&quot; &quot;);
+    
     document.body.insertBefore(elContainer, document.body.firstChild);
     this._elContainer = elContainer;
 },
@@ -380,6 +384,13 @@ disableBtns : false,
  */
 useIFrame : false,
 
+/**
+ * Custom CSS class or array of classes applied to the container element.
+ *
+ * @property className
+ * @type String || String[]
+ */
+className : null,
 
 
 </diff>
      <filename>src/datatable/js/CellEditor.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>9b0d80ca77732b504d10ed3e5bbd3ec26016b904</id>
    </parent>
  </parents>
  <author>
    <name>Jenny Donnelly</name>
    <email>jennydonnelly@yahoo-inc.com</email>
  </author>
  <url>http://github.com/yui/yui2/commit/9f417facde31eb63d120925bbdf934483f0ff3d2</url>
  <id>9f417facde31eb63d120925bbdf934483f0ff3d2</id>
  <committed-date>2009-11-06T18:27:06-08:00</committed-date>
  <authored-date>2009-11-06T16:23:01-08:00</authored-date>
  <message>[fix bug #2528560] Added className property to BaseCellEditor. Since column is late-binding to each editor in the attach() method, I didn't want to explicitly tie the column to the editor via the className at this time. But I'm open to revisiting the Column/CellEditor relationship.</message>
  <tree>8d84f4f1880319e6a7098b20d6bdaa781eea8c1f</tree>
  <committer>
    <name>Jenny Donnelly</name>
    <email>jennydonnelly@yahoo-inc.com</email>
  </committer>
</commit>
