/*
YUI 3.15.0 (build 834026e)
Copyright 2014 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/

YUI.add("datatable-highlight",function(e,t){function r(){}var n=e.ClassNameManager.getClassName;r.ATTRS={highlightRows:{value:!1,setter:"_setHighlightRows",validator:e.Lang.isBoolean},highlightCols:{value:!1,setter:"_setHighlightCols",validator:e.Lang.isBoolean},highlightCells:{value:!1,setter:"_setHighlightCells",validator:e.Lang.isBoolean}},r.prototype={highlightClassNames:{row:n(t,"row"),col:n(t,"col"),cell:n(t,"cell")},_colSelector:".{prefix}-data .{prefix}-col-{col}",_colNameRegex:"{prefix}-col-(\\S*)",_highlightDelegates:{},_setHighlightRows:function(t){var n=this._highlightDelegates;return n.row&&n.row.detach(),t===!0&&(n.row=this.delegate("hover",e.bind(this._highlightRow,this),e.bind(this._highlightRow,this),"tbody tr")),t},_setHighlightCols:function(t){var n=this._highlightDelegates;n.col&&n.col.detach(),t===!0&&(this._buildColSelRegex(),n.col=this.delegate("hover",e.bind(this._highlightCol,this),e.bind(this._highlightCol,this),"tr td"))},_setHighlightCells:function(t){var n=this._highlightDelegates;return n.cell&&n.cell.detach(),t===!0&&(n.cell=this.delegate("hover",e.bind(this._highlightCell,this),e.bind(this._highlightCell,this),"tbody td")),t},_highlightRow:function(e){e.currentTarget.toggleClass(this.highlightClassNames.row,e.phase==="over")},_highlightCol:function(t){var n=this._colNameRegex.exec(t.currentTarget.getAttribute("class")),r=e.Lang.sub(this._colSelector,{prefix:this._cssPrefix,col:n[1]});this.view.tableNode.all(r).toggleClass(this.highlightClassNames.col,t.phase==="over")},_highlightCell:function(e){e.currentTarget.toggleClass(this.highlightClassNames.cell,e.phase==="over")},_buildColSelRegex:function(){var t=this._colNameRegex,n;typeof t=="string"&&(this._colNameRegex=new RegExp(e.Lang.sub(t,{prefix:this._cssPrefix})))}},e.DataTable.Highlight=r,e.Base.mix(e.DataTable,[e.DataTable.Highlight])},"3.15.0",{requires:["datatable-base","event-hover"],skinnable:!0});
