/* Copyright (c) 2007, Yahoo! Inc. All rights reserved. Code licensed under the BSD License: http://developer.yahoo.net/yui/license.txt version: 2.3.0 */ YAHOO.widget.DataTable=function(elContainer,aColumnDefs,oDataSource,oConfigs){this._nIndex=YAHOO.widget.DataTable._nCount;this._sName="instance"+this._nIndex;this.id="yui-dt"+this._nIndex;this._initContainerEl(elContainer);if(!this._elContainer){return;} this._initConfigs(oConfigs);this._initColumnSet(aColumnDefs);if(!this._oColumnSet){return;} this._initRecordSet();if(!this._oRecordSet){return;} this._initDataSource(oDataSource);if(!this._oDataSource){return;} if(this._oDataSource.dataType==YAHOO.util.DataSource.TYPE_HTMLTABLE){this._oDataSource.sendRequest(this.get("initialRequest"),this._onDataReturnEnhanceTable,this);} else{this._initTableEl();if(!this._elTable||!this._elThead||!this._elTbody){return;} YAHOO.widget.DataTable.superclass.constructor.call(this,this._elContainer,this._oConfigs);if(this._oConfigs&&this._oConfigs.paginator){this.updatePaginator(this._oConfigs.paginator);} this._oDataSource.sendRequest(this.get("initialRequest"),this.onDataReturnInitializeTable,this);} this._initCellEditorEl();this._initColumnSort();this._initDomEvents();YAHOO.widget.DataTable._nCount++;};if(YAHOO.util.Element){YAHOO.lang.extend(YAHOO.widget.DataTable,YAHOO.util.Element);} else{} YAHOO.widget.DataTable.prototype.initAttributes=function(oConfigs){oConfigs=oConfigs||{};YAHOO.widget.DataTable.superclass.initAttributes.call(this,oConfigs);this.setAttributeConfig("summary",{value:null,validator:YAHOO.lang.isString,method:function(sSummary){this._elTable.summary=sSummary;}});this.setAttributeConfig("selectionMode",{value:"standard",validator:YAHOO.lang.isString});this.setAttributeConfig("initialRequest",{value:"",validator:YAHOO.lang.isString});this.setAttributeConfig("sortedBy",{value:null,validator:function(oNewSortedBy){return(oNewSortedBy&&(oNewSortedBy.constructor==Object)&&oNewSortedBy.key);},method:function(oNewSortedBy){var oOldSortedBy=this.get("sortedBy");if(oOldSortedBy&&(oOldSortedBy.constructor==Object)&&oOldSortedBy.key){var oldColumn=this._oColumnSet.getColumn(oOldSortedBy.key);var oldThEl=this.getThEl(oldColumn);YAHOO.util.Dom.removeClass(oldThEl,YAHOO.widget.DataTable.CLASS_ASC);YAHOO.util.Dom.removeClass(oldThEl,YAHOO.widget.DataTable.CLASS_DESC);} var column=(oNewSortedBy.column)?oNewSortedBy.column:this._oColumnSet.getColumn(oNewSortedBy.key);if(column){var newClass=(oNewSortedBy.dir&&(oNewSortedBy.dir!="asc"))?YAHOO.widget.DataTable.CLASS_DESC:YAHOO.widget.DataTable.CLASS_ASC;YAHOO.util.Dom.addClass(this.id+"-col"+column.getId(),newClass);}}});this.setAttributeConfig("paginator",{value:{rowsPerPage:500,currentPage:1,startRecordIndex:0,totalRecords:0,totalPages:0,rowsThisPage:0,pageLinks:0,pageLinksStart:1,dropdownOptions:null,containers:[],dropdowns:[],links:[]},validator:function(oNewPaginator){if(oNewPaginator&&(oNewPaginator.constructor==Object)){if((oNewPaginator.rowsPerPage!==undefined)&&(oNewPaginator.currentPage!==undefined)&&(oNewPaginator.startRecordIndex!==undefined)&&(oNewPaginator.totalRecords!==undefined)&&(oNewPaginator.totalPages!==undefined)&&(oNewPaginator.rowsThisPage!==undefined)&&(oNewPaginator.pageLinks!==undefined)&&(oNewPaginator.pageLinksStart!==undefined)&&(oNewPaginator.dropdownOptions!==undefined)&&(oNewPaginator.containers!==undefined)&&(oNewPaginator.dropdowns!==undefined)&&(oNewPaginator.links!==undefined)){if(YAHOO.lang.isNumber(oNewPaginator.rowsPerPage)&&YAHOO.lang.isNumber(oNewPaginator.currentPage)&&YAHOO.lang.isNumber(oNewPaginator.startRecordIndex)&&YAHOO.lang.isNumber(oNewPaginator.totalRecords)&&YAHOO.lang.isNumber(oNewPaginator.totalPages)&&YAHOO.lang.isNumber(oNewPaginator.rowsThisPage)&&YAHOO.lang.isNumber(oNewPaginator.pageLinks)&&YAHOO.lang.isNumber(oNewPaginator.pageLinksStart)&&YAHOO.lang.isArray(oNewPaginator.dropdownOptions)&&YAHOO.lang.isArray(oNewPaginator.containers)&&YAHOO.lang.isArray(oNewPaginator.dropdowns)&&YAHOO.lang.isArray(oNewPaginator.links)){return true;}}} return false;}});this.setAttributeConfig("paginated",{value:false,validator:YAHOO.lang.isBoolean,method:function(oParam){var oPaginator=this.get("paginator");var aContainerEls=oPaginator.containers;if(oParam){if(aContainerEls.length===0){var pag0=document.createElement("span");pag0.id=this.id+"-paginator0";YAHOO.util.Dom.addClass(pag0,YAHOO.widget.DataTable.CLASS_PAGINATOR);pag0=this._elContainer.insertBefore(pag0,this._elTable);aContainerEls.push(pag0);var pag1=document.createElement("span");pag1.id=this.id+"-paginator1";YAHOO.util.Dom.addClass(pag1,YAHOO.widget.DataTable.CLASS_PAGINATOR);pag1=this._elContainer.insertBefore(pag1,this._elTable.nextSibling);aContainerEls.push(pag1);this._configs.paginator.value.containers=[pag0,pag1];} else{for(var i=0;i-1){var aLinkEls=oPaginator.links;if(aLinkEls.length===0){for(i=0;i0){for(i=0;i"+sLabel+"";if(!this._sFirstLabelLinkId){this._sFirstLabelLinkId=sLabelLinkId;}} else{elTheadLabel.innerHTML=sLabel;}};YAHOO.widget.DataTable.prototype._initCellEditorEl=function(){var elCellEditor=document.createElement("div");elCellEditor.id=this.id+"-celleditor";elCellEditor.style.display="none";YAHOO.util.Dom.addClass(elCellEditor,YAHOO.widget.DataTable.CLASS_EDITOR);elCellEditor=document.body.appendChild(elCellEditor);var oCellEditor={};oCellEditor.container=elCellEditor;oCellEditor.value=null;oCellEditor.isActive=false;this._oCellEditor=oCellEditor;this.subscribe("editorKeydownEvent",function(oArgs){var e=oArgs.event;var elTarget=YAHOO.util.Event.getTarget(e);if((e.keyCode==27)){this.cancelCellEditor();}});};YAHOO.widget.DataTable.prototype._initColumnSort=function(){this.subscribe("headerCellClickEvent",this.onEventSortColumn);};YAHOO.widget.DataTable.prototype._initDomEvents=function(){var elTable=this._elTable;var elThead=this._elThead;var elTbody=this._elTbody;var elContainer=this._elContainer;YAHOO.util.Event.addListener(document,"click",this._onDocumentClick,this);YAHOO.util.Event.addListener(document,"keydown",this._onDocumentKeydown,this);YAHOO.util.Event.addListener(elTable,"focus",this._onTableFocus,this);YAHOO.util.Event.addListener(elTable,"mouseover",this._onTableMouseover,this);YAHOO.util.Event.addListener(elTable,"mouseout",this._onTableMouseout,this);YAHOO.util.Event.addListener(elTable,"mousedown",this._onTableMousedown,this);YAHOO.util.Event.addListener(elTable,"keydown",this._onTableKeydown,this);YAHOO.util.Event.addListener(elTable,"keypress",this._onTableKeypress,this);YAHOO.util.Event.addListener(elTable,"dblclick",this._onTableDblclick,this);YAHOO.util.Event.addListener(elThead,"click",this._onTheadClick,this);YAHOO.util.Event.addListener(elTbody,"click",this._onTbodyClick,this);YAHOO.util.Event.addListener(elContainer,"scroll",this._onScroll,this);YAHOO.util.Event.addListener(elTbody,"scroll",this._onScroll,this);};YAHOO.widget.DataTable.prototype._addTrEl=function(oRecord,index){this.hideTableMessage();var append=(!YAHOO.lang.isNumber(index)||(index<0)||(index>=(this._elTbody.rows.length)))?true:false;var oColumnSet=this._oColumnSet;var oRecordSet=this._oRecordSet;var isSortedBy=this.get("sortedBy");var sortedColKeyIndex=null;var sortedDir,newClass;if(isSortedBy){sortedColKeyIndex=(isSortedBy.column)?isSortedBy.column.getKeyIndex():this._oColumnSet.getColumn(isSortedBy.key).getKeyIndex();sortedDir=isSortedBy.dir;newClass=(sortedDir==="desc")?YAHOO.widget.DataTable.CLASS_DESC:YAHOO.widget.DataTable.CLASS_ASC;} var elRow=(append)?this._elTbody.appendChild(document.createElement("tr")):this._elTbody.insertBefore(document.createElement("tr"),this._elTbody.rows[index]);elRow.id=this.id+"-bdrow"+this._nTrCount;this._nTrCount++;elRow.yuiRecordId=oRecord.getId();for(var j=0;j-2)&&(rowIndex1)){nEndIndex=nStartIndex+range;}}} for(var i=nStartIndex;i36)&&(nKey<41)){YAHOO.util.Event.stopEvent(e);} else{return;} var sMode=oSelf.get("selectionMode");var allRows=oSelf._elTbody.rows;var anchorId=oSelf._sSelectionAnchorId;var anchorEl=YAHOO.util.Dom.get(anchorId);var newSelectedEl,trIndex,tdIndex,startIndex,endIndex,i,anchorPos;if(bSHIFT&&(sMode=="cellblock")){trIndex=lastSelectedEl.parentNode.sectionRowIndex;tdIndex=lastSelectedEl.yuiCellIndex;if(nKey==40){if(anchorEl.parentNode.sectionRowIndex>trIndex){anchorPos=1;} else if(anchorEl.parentNode.sectionRowIndextrIndex){anchorPos=1;} else if(anchorEl.parentNode.sectionRowIndex=0){if(trIndex>0){for(i=startIndex;i<=endIndex;i++){newSelectedEl=allRows[trIndex-1].cells[i];oSelf.selectCell(newSelectedEl);} oSelf._sLastSelectedId=allRows[trIndex-1].cells[tdIndex].id;}} else{for(i=startIndex;i<=endIndex;i++){oSelf.unselectCell(allRows[trIndex].cells[i]);} oSelf._sLastSelectedId=allRows[trIndex-1].cells[tdIndex].id;}} else if(nKey==39){if(anchorEl.yuiCellIndex>tdIndex){anchorPos=1;} else if(anchorEl.yuiCellIndextdIndex){anchorPos=1;} else if(anchorEl.yuiCellIndex=0){if(tdIndex>0){startIndex=Math.min(anchorEl.parentNode.sectionRowIndex,trIndex);endIndex=Math.max(anchorEl.parentNode.sectionRowIndex,trIndex);for(i=startIndex;i<=endIndex;i++){newSelectedEl=allRows[i].cells[tdIndex-1];oSelf.selectCell(newSelectedEl);} oSelf._sLastSelectedId=allRows[trIndex].cells[tdIndex-1].id;}} else{startIndex=Math.min(anchorEl.parentNode.sectionRowIndex,trIndex);endIndex=Math.max(anchorEl.parentNode.sectionRowIndex,trIndex);for(i=startIndex;i<=endIndex;i++){oSelf.unselectCell(allRows[i].cells[tdIndex]);} oSelf._sLastSelectedId=allRows[trIndex].cells[tdIndex-1].id;}}} else if(bSHIFT&&(sMode=="cellrange")){trIndex=lastSelectedEl.parentNode.sectionRowIndex;tdIndex=lastSelectedEl.yuiCellIndex;if(anchorEl.parentNode.sectionRowIndex>trIndex){anchorPos=1;} else if(anchorEl.parentNode.sectionRowIndex=0){for(i=tdIndex-1;i>-1;i--){newSelectedEl=allRows[trIndex].cells[i];oSelf.selectCell(newSelectedEl);} if(trIndex>0){for(i=allRows[trIndex].cells.length-1;i>=tdIndex;i--){newSelectedEl=allRows[trIndex-1].cells[i];oSelf.selectCell(newSelectedEl);}}} else{for(i=tdIndex;i>-1;i--){oSelf.unselectCell(allRows[trIndex].cells[i]);} for(i=allRows[trIndex].cells.length-1;i>tdIndex;i--){oSelf.unselectCell(allRows[trIndex-1].cells[i]);} oSelf._sLastSelectedId=allRows[trIndex-1].cells[tdIndex].id;}} else if(nKey==39){if(anchorPos<0){if(tdIndex0){oSelf.unselectCell(allRows[trIndex].cells[tdIndex]);if(tdIndex0){oSelf._sLastSelectedId=allRows[trIndex].cells[tdIndex-1].id;} else{oSelf._sLastSelectedId=allRows[trIndex-1].cells[allRows[trIndex-1].cells.length-1].id;}} else if(anchorPos>0){if(tdIndex>0){newSelectedEl=allRows[trIndex].cells[tdIndex-1];oSelf.selectCell(newSelectedEl);} else if(trIndex>0){newSelectedEl=allRows[trIndex-1].cells[allRows[trIndex-1].cells.length-1];oSelf.selectCell(newSelectedEl);}} else{if(anchorEl.yuiCellIndex>=tdIndex){if(tdIndex>0){newSelectedEl=allRows[trIndex].cells[tdIndex-1];oSelf.selectCell(newSelectedEl);} else if(trIndex>0){newSelectedEl=allRows[trIndex-1].cells[allRows[trIndex-1].cells.length-1];oSelf.selectCell(newSelectedEl);}} else{oSelf.unselectCell(allRows[trIndex].cells[tdIndex]);if(tdIndex>0){oSelf._sLastSelectedId=allRows[trIndex].cells[tdIndex-1].id;} else{oSelf._sLastSelectedId=allRows[trIndex-1].cells[allRows[trIndex-1].cells.length-1].id;}}}}} else if((sMode=="cellblock")||(sMode=="cellrange")||(sMode=="singlecell")){trIndex=lastSelectedEl.parentNode.sectionRowIndex;tdIndex=lastSelectedEl.yuiCellIndex;if(nKey==40){oSelf.unselectAllCells();if(trIndex0){newSelectedEl=allRows[trIndex-1].cells[tdIndex];oSelf.selectCell(newSelectedEl);} else{newSelectedEl=lastSelectedEl;oSelf.selectCell(newSelectedEl);} oSelf._sSelectionAnchorId=newSelectedEl.id;} else if(nKey==39){oSelf.unselectAllCells();if(tdIndex0){newSelectedEl=lastSelectedEl.parentNode.cells[tdIndex-1];oSelf.selectCell(newSelectedEl);} else{newSelectedEl=lastSelectedEl;oSelf.selectCell(newSelectedEl);} oSelf._sSelectionAnchorId=newSelectedEl.id;}} else if(bSHIFT&&(sMode!="single")){trIndex=lastSelectedEl.sectionRowIndex;if(anchorEl.sectionRowIndex>trIndex){anchorPos=1;} else if(anchorEl.sectionRowIndex=0){if(trIndex>0){oSelf.selectRow(trIndex-1);}} else{oSelf.unselectRow(lastSelectedEl);oSelf._sLastSelectedId=allRows[trIndex-1].id;}} else if(nKey==39){} else if(nKey==37){}} else{trIndex=lastSelectedEl.sectionRowIndex;if(nKey==40){oSelf.unselectAllRows();if(trIndex0){newSelectedEl=allRows[trIndex-1];oSelf.selectRow(newSelectedEl);} else{newSelectedEl=lastSelectedEl;oSelf.selectRow(newSelectedEl);} oSelf._sSelectionAnchorId=newSelectedEl.id;} else if(nKey==39){} else if(nKey==37){}}}};YAHOO.widget.DataTable.prototype._onTableKeypress=function(e,oSelf){var isMac=(navigator.userAgent.toLowerCase().indexOf("mac")!=-1);if(isMac){var nKey=YAHOO.util.Event.getCharCode(e);if(nKey==40){YAHOO.util.Event.stopEvent(e);} else if(nKey==38){YAHOO.util.Event.stopEvent(e);}}};YAHOO.widget.DataTable.prototype._onTheadClick=function(e,oSelf){var elTarget=YAHOO.util.Event.getTarget(e);var elTag=elTarget.tagName.toLowerCase();if(oSelf._oCellEditor&&oSelf._oCellEditor.isActive){oSelf.fireEvent("editorBlurEvent",{editor:oSelf._oCellEditor});} while(elTarget&&(elTag!="thead")){switch(elTag){case"body":break;case"span":if(YAHOO.util.Dom.hasClass(elTarget,YAHOO.widget.DataTable.CLASS_LABEL)){oSelf.fireEvent("headerLabelClickEvent",{target:elTarget,event:e});} break;case"th":oSelf.fireEvent("headerCellClickEvent",{target:elTarget,event:e});break;case"tr":oSelf.fireEvent("headerRowClickEvent",{target:elTarget,event:e});break;default:break;} elTarget=elTarget.parentNode;if(elTarget){elTag=elTarget.tagName.toLowerCase();}} oSelf.fireEvent("tableClickEvent",{target:(elTarget||oSelf._elTable),event:e});};YAHOO.widget.DataTable.prototype._onTbodyClick=function(e,oSelf){var elTarget=YAHOO.util.Event.getTarget(e);var elTag=elTarget.tagName.toLowerCase();if(oSelf._oCellEditor&&oSelf._oCellEditor.isActive){oSelf.fireEvent("editorBlurEvent",{editor:oSelf._oCellEditor});} while(elTarget&&(elTag!="table")){switch(elTag){case"body":break;case"input":if(elTarget.type.toLowerCase()=="checkbox"){oSelf.fireEvent("checkboxClickEvent",{target:elTarget,event:e});} else if(elTarget.type.toLowerCase()=="radio"){oSelf.fireEvent("radioClickEvent",{target:elTarget,event:e});} break;case"a":oSelf.fireEvent("linkClickEvent",{target:elTarget,event:e});break;case"button":oSelf.fireEvent("buttonClickEvent",{target:elTarget,event:e});break;case"td":oSelf.fireEvent("cellClickEvent",{target:elTarget,event:e});break;case"tr":oSelf.fireEvent("rowClickEvent",{target:elTarget,event:e});break;default:break;} elTarget=elTarget.parentNode;if(elTarget){elTag=elTarget.tagName.toLowerCase();}} oSelf.fireEvent("tableClickEvent",{target:(elTarget||oSelf._elTable),event:e});};YAHOO.widget.DataTable.prototype._onPaginatorLinkClick=function(e,oSelf){var elTarget=YAHOO.util.Event.getTarget(e);var elTag=elTarget.tagName.toLowerCase();if(oSelf._oCellEditor&&oSelf._oCellEditor.isActive){oSelf.fireEvent("editorBlurEvent",{editor:oSelf._oCellEditor});} while(elTarget&&(elTag!="table")){switch(elTag){case"body":return;case"a":YAHOO.util.Event.stopEvent(e);switch(elTarget.className){case YAHOO.widget.DataTable.CLASS_PAGE:oSelf.showPage(parseInt(elTarget.innerHTML,10));return;case YAHOO.widget.DataTable.CLASS_FIRST:oSelf.showPage(1);return;case YAHOO.widget.DataTable.CLASS_LAST:oSelf.showPage(oSelf.get("paginator").totalPages);return;case YAHOO.widget.DataTable.CLASS_PREVIOUS:oSelf.showPage(oSelf.get("paginator").currentPage-1);return;case YAHOO.widget.DataTable.CLASS_NEXT:oSelf.showPage(oSelf.get("paginator").currentPage+1);return;} break;default:return;} elTarget=elTarget.parentNode;if(elTarget){elTag=elTarget.tagName.toLowerCase();} else{return;}}};YAHOO.widget.DataTable.prototype._onPaginatorDropdownChange=function(e,oSelf){var elTarget=YAHOO.util.Event.getTarget(e);var newValue=elTarget[elTarget.selectedIndex].value;var newRowsPerPage=YAHOO.lang.isValue(parseInt(newValue,10))?parseInt(newValue,10):null;if(newRowsPerPage!==null){var newStartRecordIndex=(oSelf.get("paginator").currentPage-1)*newRowsPerPage;oSelf.updatePaginator({rowsPerPage:newRowsPerPage,startRecordIndex:newStartRecordIndex});oSelf.refreshView();} else{}};YAHOO.widget.DataTable.prototype._onDropdownChange=function(e,oSelf){var elTarget=YAHOO.util.Event.getTarget(e);oSelf.fireEvent("dropdownChangeEvent",{event:e,target:elTarget});};YAHOO.widget.DataTable.prototype.toString=function(){return"DataTable "+this._sName;};YAHOO.widget.DataTable.prototype.getDataSource=function(){return this._oDataSource;};YAHOO.widget.DataTable.prototype.getColumnSet=function(){return this._oColumnSet;};YAHOO.widget.DataTable.prototype.getRecordSet=function(){return this._oRecordSet;};YAHOO.widget.DataTable.prototype.getCellEditor=function(){return this._oCellEditor;};YAHOO.widget.DataTable.prototype.getTableEl=function(){return this._elTable;};YAHOO.widget.DataTable.prototype.getTheadEl=function(){return this._elThead;};YAHOO.widget.DataTable.prototype.getTbodyEl=function(){return this._elTbody;};YAHOO.widget.DataTable.prototype.getBody=function(){return this.getTbodyEl();};YAHOO.widget.DataTable.prototype.getMsgTbodyEl=function(){return this._elMsgTbody;};YAHOO.widget.DataTable.prototype.getMsgTdEl=function(){return this._elMsgTd;};YAHOO.widget.DataTable.prototype.getTrEl=function(row){var allRows=this._elTbody.rows;if(row instanceof YAHOO.widget.Record){var nTrIndex=this.getTrIndex(row);return allRows[nTrIndex];} else if(YAHOO.lang.isNumber(row)&&(row>-1)&&(row0){return allRows[allRows.length-1]||null;}};YAHOO.widget.DataTable.prototype.getTdEl=function(cell){var elCell;var el=YAHOO.util.Dom.get(cell);if(el&&(el.ownerDocument==document)){if(el.tagName.toLowerCase()!="td"){elCell=YAHOO.util.Dom.getAncestorByTagName(el,"td");} else{elCell=el;} if(elCell&&(elCell.parentNode.parentNode==this._elTbody)){return elCell;}} return null;};YAHOO.widget.DataTable.prototype.getThEl=function(header){var elHeader;if(header instanceof YAHOO.widget.Column){var oColumn=header;elHeader=YAHOO.util.Dom.get(this.id+"-col"+oColumn.getId());if(elHeader){return elHeader;}} else{var el=YAHOO.util.Dom.get(header);if(el&&(el.ownerDocument==document)){if(el.tagName.toLowerCase()!="th"){elHeader=YAHOO.util.Dom.getAncestorByTagName(el,"th");} else{elHeader=el;} if(elHeader&&(elHeader.parentNode.parentNode==this._elThead)){return elHeader;}}} return null;};YAHOO.widget.DataTable.prototype.getTrIndex=function(row){var nRecordIndex;if(row instanceof YAHOO.widget.Record){nRecordIndex=this._oRecordSet.getRecordIndex(row);} else if(YAHOO.lang.isNumber(row)){nRecordIndex=row;} if(YAHOO.lang.isNumber(nRecordIndex)){if(this.get("paginated")){var startRecordIndex=this.get("paginator").startRecordIndex;var endRecordIndex=startRecordIndex+this.get("paginator").rowsPerPage-1;if((nRecordIndex>=startRecordIndex)&&(nRecordIndex<=endRecordIndex)){return nRecordIndex-startRecordIndex;} else{return null;}} else{return nRecordIndex;}} else{elRow=this.getTrEl(row);if(elRow&&(elRow.ownerDocument==document)&&(elRow.parentNode==this._elTbody)){return elRow.sectionRowIndex;}} return null;};YAHOO.widget.DataTable.prototype.initializeTable=function(oData){this._oRecordSet.reset();var records=this._oRecordSet.addRecords(oData);this._unselectAllTrEls();this._unselectAllTdEls();this._aSelections=null;this._sLastSelectedId=null;this._sSelectionAnchorId=null;this.refreshView();this.fireEvent("initEvent");};YAHOO.widget.DataTable.prototype.refreshView=function(){var i,j,k,l,aRecords;var oPaginator=this.updatePaginator();if(this.get("paginated")){var rowsPerPage=oPaginator.rowsPerPage;var startRecordIndex=(oPaginator.currentPage-1)*rowsPerPage;aRecords=this._oRecordSet.getRecords(startRecordIndex,rowsPerPage);this.formatPaginators();} else{aRecords=this._oRecordSet.getRecords();} var elTbody=this._elTbody;var elRows=elTbody.rows;if(YAHOO.lang.isArray(aRecords)&&(aRecords.length>0)){this.hideTableMessage();var aSelectedRows=this.getSelectedRows();var aSelectedCells=this.getSelectedCells();var bReselect=(aSelectedRows.length>0)||(aSelectedCells.length>0);while(elTbody.hasChildNodes()&&(elRows.length>aRecords.length)){elTbody.deleteRow(-1);} if(bReselect){this._unselectAllTrEls();this._unselectAllTdEls();} for(i=0;i-1;i--){this.addRow(aData[i],index);}} else{for(i=0;i0)?nRecordIndex+count-1:nRecordIndex;var endIndex=(count>0)?nRecordIndex:nRecordIndex+count+1;for(var i=startIndex;i>endIndex-1;i--){this.deleteRow(i);}} else{this.deleteRow(nRecordIndex);}} else{}};YAHOO.widget.DataTable.prototype.formatCell=function(elCell,oRecord,oColumn){if(!(oRecord instanceof YAHOO.widget.Record)){oRecord=this.getRecord(elCell);} if(!(oColumn instanceof YAHOO.widget.Column)){oColumn=this._oColumnSet.getColumn(elCell.yuiColumnId);} if(oRecord&&oColumn){var oData=oRecord.getData(oColumn.key);var fnFormatter;if(YAHOO.lang.isString(oColumn.formatter)){switch(oColumn.formatter){case"button":fnFormatter=YAHOO.widget.DataTable.formatButton;break;case"checkbox":fnFormatter=YAHOO.widget.DataTable.formatCheckbox;break;case"currency":fnFormatter=YAHOO.widget.DataTable.formatCurrency;break;case"date":fnFormatter=YAHOO.widget.DataTable.formatDate;break;case"dropdown":fnFormatter=YAHOO.widget.DataTable.formatDropdown;break;case"email":fnFormatter=YAHOO.widget.DataTable.formatEmail;break;case"link":fnFormatter=YAHOO.widget.DataTable.formatLink;break;case"number":fnFormatter=YAHOO.widget.DataTable.formatNumber;break;case"radio":fnFormatter=YAHOO.widget.DataTable.formatRadio;break;case"text":fnFormatter=YAHOO.widget.DataTable.formatText;break;case"textarea":fnFormatter=YAHOO.widget.DataTable.formatTextarea;break;case"textbox":fnFormatter=YAHOO.widget.DataTable.formatTextbox;break;case"html":break;default:fnFormatter=null;}} else if(YAHOO.lang.isFunction(oColumn.formatter)){fnFormatter=oColumn.formatter;} if(fnFormatter){fnFormatter.call(this,elCell,oRecord,oColumn,oData);} else{elCell.innerHTML=(YAHOO.lang.isValue(oData))?oData.toString():"";} var aCustomClasses=null;if(YAHOO.lang.isString(oColumn.className)){aCustomClasses=[oColumn.className];} else if(YAHOO.lang.isArray(oColumn.className)){aCustomClasses=oColumn.className;} if(aCustomClasses){for(var i=0;i"+sValue+"";};YAHOO.widget.DataTable.formatCheckbox=function(el,oRecord,oColumn,oData){var bChecked=oData;bChecked=(bChecked)?" checked":"";el.innerHTML="";};YAHOO.widget.DataTable.formatCurrency=function(el,oRecord,oColumn,oData){if(YAHOO.lang.isNumber(oData)){var nAmount=oData;var markup;nAmount=Math.round(nAmount*100)/100;markup="$"+nAmount;var dotIndex=markup.indexOf(".");if(dotIndex<0){markup+=".00";} else{while(dotIndex>markup.length-3){markup+="0";}} el.innerHTML=markup;} else{el.innerHTML=YAHOO.lang.isValue(oData)?oData:"";}};YAHOO.widget.DataTable.formatDate=function(el,oRecord,oColumn,oData){var oDate=oData;if(oDate instanceof Date){el.innerHTML=(oDate.getMonth()+1)+"/"+oDate.getDate()+"/"+oDate.getFullYear();} else{el.innerHTML=YAHOO.lang.isValue(oData)?oData:"";}};YAHOO.widget.DataTable.formatDropdown=function(el,oRecord,oColumn,oData){var selectedValue=(YAHOO.lang.isValue(oData))?oData:oRecord.getData(oColumn.key);var options=(YAHOO.lang.isArray(oColumn.dropdownOptions))?oColumn.dropdownOptions:null;var selectEl;var collection=el.getElementsByTagName("select");if(collection.length===0){selectEl=document.createElement("select");YAHOO.util.Dom.addClass(selectEl,YAHOO.widget.DataTable.CLASS_DROPDOWN);selectEl=el.appendChild(selectEl);YAHOO.util.Event.addListener(selectEl,"change",oDataTable._onDropdownChange,oDataTable);} selectEl=collection[0];if(selectEl){selectEl.innerHTML="";if(options){for(var i=0;i"+selectedValue+"";}} else{el.innerHTML=YAHOO.lang.isValue(oData)?oData:"";}};YAHOO.widget.DataTable.formatEmail=function(el,oRecord,oColumn,oData){if(YAHOO.lang.isString(oData)){el.innerHTML=""+oData+"";} else{el.innerHTML=YAHOO.lang.isValue(oData)?oData:"";}};YAHOO.widget.DataTable.formatLink=function(el,oRecord,oColumn,oData){if(YAHOO.lang.isString(oData)){el.innerHTML=""+oData+"";} else{el.innerHTML=YAHOO.lang.isValue(oData)?oData:"";}};YAHOO.widget.DataTable.formatNumber=function(el,oRecord,oColumn,oData){if(YAHOO.lang.isNumber(oData)){el.innerHTML=oData;} else{el.innerHTML=YAHOO.lang.isValue(oData)?oData:"";}};YAHOO.widget.DataTable.formatRadio=function(el,oRecord,oColumn,oData){var bChecked=oData;bChecked=(bChecked)?" checked":"";el.innerHTML="";};YAHOO.widget.DataTable.formatText=function(el,oRecord,oColumn,oData){var value=(YAHOO.lang.isValue(oRecord.getData(oColumn.key)))?oRecord.getData(oColumn.key):"";el.innerHTML=value.toString().replace(/&/g,"&").replace(//g,">");};YAHOO.widget.DataTable.formatTextarea=function(el,oRecord,oColumn,oData){var value=(YAHOO.lang.isValue(oRecord.getData(oColumn.key)))?oRecord.getData(oColumn.key):"";var markup="";el.innerHTML=markup;};YAHOO.widget.DataTable.formatTextbox=function(el,oRecord,oColumn,oData){var value=(YAHOO.lang.isValue(oRecord.getData(oColumn.key)))?oRecord.getData(oColumn.key):"";var markup="";el.innerHTML=markup;};YAHOO.widget.DataTable.prototype.updatePaginator=function(oNewValues){var oValidPaginator=this.get("paginator");for(var param in oNewValues){if(oValidPaginator.hasOwnProperty(param)){oValidPaginator[param]=oNewValues[param];}} oValidPaginator.totalRecords=this._oRecordSet.getLength();oValidPaginator.rowsThisPage=Math.min(oValidPaginator.rowsPerPage,oValidPaginator.totalRecords);oValidPaginator.totalPages=Math.ceil(oValidPaginator.totalRecords/oValidPaginator.rowsThisPage);if(isNaN(oValidPaginator.totalPages)){oValidPaginator.totalPages=0;} this.set("paginator",oValidPaginator);return this.get("paginator");};YAHOO.widget.DataTable.prototype.showPage=function(nPage){if(!YAHOO.lang.isNumber(nPage)||(nPage<1)||(nPage>this.get("paginator").totalPages)){nPage=1;} this.updatePaginator({currentPage:nPage});this.refreshView();};YAHOO.widget.DataTable.prototype.formatPaginators=function(){var pag=this.get("paginator");var dropdownEnabled=false;if(pag.pageLinks>-1){for(var i=0;i-1;i--){if((this.get("paginator").rowsPerPage+"")===options[i].value){options[i].selected=true;}}} elDropdown.style.display="";return;}};YAHOO.widget.DataTable.prototype.formatPaginatorLinks=function(elContainer,nCurrentPage,nPageLinksStart,nPageLinksLength,nTotalPages){if(elContainer&&(elContainer.ownerDocument==document)&&YAHOO.lang.isNumber(nCurrentPage)&&YAHOO.lang.isNumber(nPageLinksStart)&&YAHOO.lang.isNumber(nTotalPages)){var bIsFirstPage=(nCurrentPage==1)?true:false;var bIsLastPage=(nCurrentPage==nTotalPages)?true:false;var sFirstLinkMarkup=(bIsFirstPage)?" << ":" << ";var sPrevLinkMarkup=(bIsFirstPage)?" < ":" < ";var sNextLinkMarkup=(bIsLastPage)?" > ":" > ";var sLastLinkMarkup=(bIsLastPage)?" >> ":" >> ";var sMarkup=sFirstLinkMarkup+sPrevLinkMarkup;var nMaxLinks=nTotalPages;var nFirstLink=1;var nLastLink=nTotalPages;if(nPageLinksLength>0){nMaxLinks=(nPageLinksStart+nPageLinksLength0)?nCurrentPage-Math.floor(nMaxLinks/2):1;nLastLink=(nCurrentPage+Math.floor(nMaxLinks/2)<=nTotalPages)?nCurrentPage+Math.floor(nMaxLinks/2):nTotalPages;if(nFirstLink===1){nLastLink=nMaxLinks;} else if(nLastLink===nTotalPages){nFirstLink=nTotalPages-nMaxLinks+1;} if(nLastLink-nFirstLink===nMaxLinks){nLastLink--;}} for(var i=nFirstLink;i<=nLastLink;i++){if(i!=nCurrentPage){sMarkup+=" "+i+" ";} else{sMarkup+=" "+i+"";}} sMarkup+=sNextLinkMarkup+sLastLinkMarkup;elContainer.innerHTML=sMarkup;return;}};YAHOO.widget.DataTable.prototype._sLastHighlightedCellId=null;YAHOO.widget.DataTable.prototype._sLastHighlightedRowId=null;YAHOO.widget.DataTable.prototype._aSelections=null;YAHOO.widget.DataTable.prototype._sLastSelectedId=null;YAHOO.widget.DataTable.prototype._sSelectionAnchorId=null;YAHOO.widget.DataTable.prototype._unselectAllTrEls=function(){var selectedRows=YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.DataTable.CLASS_SELECTED,"tr",this._elTbody);YAHOO.util.Dom.removeClass(selectedRows,YAHOO.widget.DataTable.CLASS_SELECTED);};YAHOO.widget.DataTable.prototype.getSelectedTrEls=function(){return YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.DataTable.CLASS_SELECTED,"tr",this._elTbody);};YAHOO.widget.DataTable.prototype.selectRow=function(row){var elRow=this.getTrEl(row);if(elRow){var oRecord=this.getRecord(elRow);if(oRecord){var tracker=this._aSelections||[];var nRecordId=oRecord.getId();if(tracker.indexOf&&(tracker.indexOf(nRecordId)>-1)){tracker.splice(tracker.indexOf(nRecordId),1);} else{for(var j=0;j-1)){tracker.splice(tracker.indexOf(nRecordId),1);bFound=true;} else{for(var j=0;j";elLabel=elContainer.appendChild(document.createElement("label"));elLabel.htmlFor=checkboxId;elLabel.innerHTML=checkboxValue;} var aCheckboxEls=[];var checkboxEl;for(j=0;j";elLabel=elContainer.appendChild(document.createElement("label"));elLabel.htmlFor=radioId;elLabel.innerHTML=radioValue;} for(j=0;j=nTargetTrIndex;i--){if(!this.isSelected(allRows[i])){this.selectRow(allRows[i]);}}}} else{if(nAnchorTrIndex=nTargetTrIndex;i--){this.selectRow(allRows[i]);}}} else{this._sSelectionAnchorId=elTargetRow.id;this.selectRow(elTargetRow);}} else if((sMode!="single")&&bCTRL){this._sSelectionAnchorId=elTargetRow.id;if(this.isSelected(elTargetRow)){this.unselectRow(elTargetRow);} else{this.selectRow(elTargetRow);}} else if(sMode=="single"){this.unselectAllRows();this.selectRow(elTargetRow);} else{this._sSelectionAnchorId=elTargetRow.id;this.unselectAllRows();this.selectRow(elTargetRow);} YAHOO.util.Event.stopEvent(evt);var sel;if(window.getSelection){sel=window.getSelection();} else if(document.getSelection){sel=document.getSelection();} else if(document.selection){sel=document.selection;} if(sel){if(sel.empty){sel.empty();} else if(sel.removeAllRanges){sel.removeAllRanges();} else if(sel.collapse){sel.collapse();}}} else{}};YAHOO.widget.DataTable.prototype.onEventSelectCell=function(oArgs){var sMode=this.get("selectionMode");if((sMode=="standard")||(sMode=="single")){return;} var evt=oArgs.event;var elTarget=oArgs.target;var bSHIFT=evt.shiftKey;var bCTRL=evt.ctrlKey;var i,j,nAnchorTrIndex,nAnchorTdIndex,currentRow,startIndex,endIndex;var elTargetCell=this.getTdEl(elTarget);if(elTargetCell){var elTargetRow=this.getTrEl(elTargetCell);var allRows=this._elTbody.rows;var nTargetTrIndex=elTargetRow.sectionRowIndex;var nTargetTdIndex=elTarget.yuiCellIndex;var elAnchorCell=YAHOO.util.Dom.get(this._sSelectionAnchorId);if((sMode!="singlecell")&&bSHIFT&&bCTRL){if(elAnchorCell&&YAHOO.lang.isNumber(elAnchorCell.yuiCellIndex)){nAnchorTrIndex=elAnchorCell.parentNode.sectionRowIndex;nAnchorTdIndex=elAnchorCell.yuiCellIndex;if(this.isSelected(elAnchorCell)){if(nAnchorTrIndex==nTargetTrIndex){if(nAnchorTdIndex=nTargetTrIndex;i--){for(j=endIndex;j>=startIndex;j--){this.selectCell(allRows[i].cells[j]);}}}}} else{if(nAnchorTrIndex==nTargetTrIndex){if(nAnchorTdIndexnAnchorTdIndex){this.unselectCell(currentRow.cells[j]);}} else if(currentRow.sectionRowIndex==nTargetTrIndex){if(jnTargetTdIndex){this.unselectCell(currentRow.cells[j]);}} else if(currentRow.sectionRowIndex==nAnchorTrIndex){if(j=nAnchorTdIndex){this.selectCell(currentRow.cells[j]);}} else if(currentRow.sectionRowIndex==nTargetTrIndex){if(j<=nTargetTdIndex){this.selectCell(currentRow.cells[j]);}} else{this.selectCell(currentRow.cells[j]);}}}} else if(sMode=="cellblock"){startIndex=Math.min(nAnchorTdIndex,nTargetTdIndex);endIndex=Math.max(nAnchorTdIndex,nTargetTdIndex);for(i=nAnchorTrIndex;i<=nTargetTrIndex;i++){for(j=startIndex;j<=endIndex;j++){this.selectCell(allRows[i].cells[j]);}} this._sLastSelectedId=allRows[nTargetTrIndex].cells[nTargetTdIndex].id;}} else{if(sMode=="cellrange"){for(i=nTargetTrIndex;i<=nAnchorTrIndex;i++){currentRow=allRows[i];for(j=0;j=nTargetTdIndex){this.selectCell(currentRow.cells[j]);}} else if(currentRow.sectionRowIndex==nAnchorTrIndex){if(j<=nAnchorTdIndex){this.selectCell(currentRow.cells[j]);}} else{this.selectCell(currentRow.cells[j]);}}}} else if(sMode=="cellblock"){startIndex=Math.min(nAnchorTdIndex,nTargetTdIndex);endIndex=Math.max(nAnchorTdIndex,nTargetTdIndex);for(i=nTargetTrIndex;i<=nAnchorTrIndex;i++){for(j=startIndex;j<=endIndex;j++){this.selectCell(allRows[i].cells[j]);}} this._sLastSelectedId=allRows[nTargetTrIndex].cells[nTargetTdIndex].id;}}} else{this._sSelectionAnchorId=elTargetCell.id;this.selectCell(elTargetCell);}} else if((sMode!="singlecell")&&bCTRL){this._sSelectionAnchorId=elTargetCell.id;if(this.isSelected(elTargetCell)){this.unselectCell(elTargetCell);} else{this.selectCell(elTargetCell);}} else{this._sSelectionAnchorId=elTargetCell.id;this.unselectAllCells();this.selectCell(elTargetCell);} YAHOO.util.Event.stopEvent(evt);var sel;if(window.getSelection){sel=window.getSelection();} else if(document.getSelection){sel=document.getSelection();} else if(document.selection){sel=document.selection;} if(sel){if(sel.empty){sel.empty();} else if(sel.removeAllRanges){sel.removeAllRanges();} else if(sel.collapse){sel.collapse();}}} else{}};YAHOO.widget.DataTable.prototype.onEventHighlightRow=function(oArgs){var evt=oArgs.event;var elTarget=oArgs.target;this.highlightRow(elTarget);};YAHOO.widget.DataTable.prototype.onEventUnhighlightRow=function(oArgs){var evt=oArgs.event;var elTarget=oArgs.target;this.unhighlightRow(elTarget);};YAHOO.widget.DataTable.prototype.onEventHighlightCell=function(oArgs){var evt=oArgs.event;var elTarget=oArgs.target;this.highlightCell(elTarget);};YAHOO.widget.DataTable.prototype.onEventUnhighlightCell=function(oArgs){var evt=oArgs.event;var elTarget=oArgs.target;this.unhighlightCell(elTarget);};YAHOO.widget.DataTable.prototype.onEventFormatCell=function(oArgs){var evt=oArgs.event;var target=oArgs.target;var elTag=target.tagName.toLowerCase();var elCell=this.getTdEl(target);if(elCell&&YAHOO.lang.isNumber(elCell.yuiColumnId)){var oColumn=this._oColumnSet.getColumn(elCell.yuiColumnId);this.formatCell(elCell,this.getRecord(elCell),oColumn);} else{}};YAHOO.widget.DataTable.prototype.onEventShowCellEditor=function(oArgs){var evt=oArgs.event;var target=oArgs.target;var elTag=target.tagName.toLowerCase();var elCell=this.getTdEl(target);if(elCell){this.showCellEditor(elCell);} else{}};YAHOO.widget.DataTable.prototype.onEventEditCell=function(oArgs){this.onEventShowCellEditor(oArgs);};YAHOO.widget.DataTable.prototype.onEventSaveCellEditor=function(oArgs){this.saveCellEditor();};YAHOO.widget.DataTable.prototype._onDataReturnEnhanceTable=function(sRequest,oResponse){var ok=this.doBeforeLoadData(sRequest,oResponse);if(ok&&oResponse&&!oResponse.error&&YAHOO.lang.isArray(oResponse.results)){this._oRecordSet.addRecords(oResponse.results);this._initTableEl();if(!this._elTable||!this._elThead||!this._elTbody){return;} YAHOO.widget.DataTable.superclass.constructor.call(this,this._elContainer,this._oConfigs);if(this._oConfigs.paginator){this.updatePaginator(this._oConfigs.paginator);} this.refreshView();} else if(ok&&oResponse.error){this.showTableMessage(YAHOO.widget.DataTable.MSG_ERROR,YAHOO.widget.DataTable.CLASS_ERROR);} else if(ok){this.showTableMessage(YAHOO.widget.DataTable.MSG_EMPTY,YAHOO.widget.DataTable.CLASS_EMPTY);}};YAHOO.widget.DataTable.prototype.onDataReturnInitializeTable=function(sRequest,oResponse){this.fireEvent("dataReturnEvent",{request:sRequest,response:oResponse});var ok=this.doBeforeLoadData(sRequest,oResponse);if(ok&&oResponse&&!oResponse.error&&YAHOO.lang.isArray(oResponse.results)){this.initializeTable(oResponse.results);} else if(ok&&oResponse.error){this.showTableMessage(YAHOO.widget.DataTable.MSG_ERROR,YAHOO.widget.DataTable.CLASS_ERROR);} else if(ok){this.showTableMessage(YAHOO.widget.DataTable.MSG_EMPTY,YAHOO.widget.DataTable.CLASS_EMPTY);}};YAHOO.widget.DataTable.prototype.onDataReturnReplaceRows=function(sRequest,oResponse){this.onDataReturnInitializeTable(sRequest,oResponse);};YAHOO.widget.DataTable.prototype.onDataReturnAppendRows=function(sRequest,oResponse){this.fireEvent("dataReturnEvent",{request:sRequest,response:oResponse});var ok=this.doBeforeLoadData(sRequest,oResponse);if(ok&&oResponse&&!oResponse.error&&YAHOO.lang.isArray(oResponse.results)){this.addRows(oResponse.results);} else if(ok&&oResponse.error){this.showTableMessage(YAHOO.widget.DataTable.MSG_ERROR,YAHOO.widget.DataTable.CLASS_ERROR);}};YAHOO.widget.DataTable.prototype.onDataReturnInsertRows=function(sRequest,oResponse){this.fireEvent("dataReturnEvent",{request:sRequest,response:oResponse});var ok=this.doBeforeLoadData(sRequest,oResponse);if(ok&&oResponse&&!oResponse.error&&YAHOO.lang.isArray(oResponse.results)){this.addRows(oResponse.results,0);} else if(ok&&oResponse.error){this.showTableMessage(YAHOO.widget.DataTable.MSG_ERROR,YAHOO.widget.DataTable.CLASS_ERROR);}};YAHOO.widget.ColumnSet=function(aHeaders){this._sName="instance"+YAHOO.widget.ColumnSet._nCount;var tree=[];var flat=[];var keys=[];var headers=[];var nodeDepth=-1;var parseColumns=function(nodeList,parent){nodeDepth++;if(!tree[nodeDepth]){tree[nodeDepth]=[];} for(var j=0;jmaxRowDepth){maxRowDepth=tmpRowDepth;}}}};for(var m=0;mb){return(desc)?-1:1;} else{return 0;}}};YAHOO.util.ColumnResizer=function(oDataTable,oColumn,elThead,sHandleId,sGroup,oConfig){if(oDataTable&&oColumn&&elThead&&sHandleId){this.datatable=oDataTable;this.column=oColumn;this.cell=elThead;this.init(sHandleId,sGroup,oConfig);this.setYConstraint(0,0);} else{}};if(YAHOO.util.DD){YAHOO.extend(YAHOO.util.ColumnResizer,YAHOO.util.DD);} YAHOO.util.ColumnResizer.prototype.onMouseDown=function(e){this.startWidth=this.cell.offsetWidth;this.startPos=YAHOO.util.Dom.getX(this.getDragEl());if(this.datatable.fixedWidth){var cellLabel=YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.DataTable.CLASS_LABEL,"span",this.cell)[0];this.minWidth=cellLabel.offsetWidth+6;var sib=this.cell.nextSibling;var sibCellLabel=YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.DataTable.CLASS_LABEL,"span",sib)[0];this.sibMinWidth=sibCellLabel.offsetWidth+6;var left=((this.startWidth-this.minWidth)<0)?0:(this.startWidth-this.minWidth);var right=((sib.offsetWidth-this.sibMinWidth)<0)?0:(sib.offsetWidth-this.sibMinWidth);this.setXConstraint(left,right);}};YAHOO.util.ColumnResizer.prototype.onMouseUp=function(e){var resizeStyle=YAHOO.util.Dom.get(this.handleElId).style;resizeStyle.left="auto";resizeStyle.right=0;resizeStyle.marginRight="-6px";resizeStyle.width="6px";this.datatable.fireEvent("columnResizeEvent",{column:this.column,target:this.cell});};YAHOO.util.ColumnResizer.prototype.onDrag=function(e){var newPos=YAHOO.util.Dom.getX(this.getDragEl());var offsetX=newPos-this.startPos;var newWidth=this.startWidth+offsetX;if(newWidth-1)){this._records.splice(index,0,oRecord);} else{index=this.getLength();this._records.push(oRecord);} this._length++;return oRecord;};YAHOO.widget.RecordSet.prototype._deleteRecord=function(index,range){if(!YAHOO.lang.isNumber(range)||(range<0)){range=1;} this._records.splice(index,range);this._length=this._length-range;};YAHOO.widget.RecordSet.prototype.toString=function(){return this._sName;};YAHOO.widget.RecordSet.prototype.getLength=function(){return this._length;};YAHOO.widget.RecordSet.prototype.getRecord=function(index){if(YAHOO.lang.isNumber(index)){return this._records[index];} return null;};YAHOO.widget.RecordSet.prototype.getRecords=function(index,range){if(!YAHOO.lang.isNumber(index)){return this._records;} if(!YAHOO.lang.isNumber(range)){return this._records.slice(index);} return this._records.slice(index,index+range);};YAHOO.widget.RecordSet.prototype.getRecordIndex=function(oRecord){for(var i=this._records.length-1;i>-1;i--){if(oRecord.getId()===this._records[i].getId()){return i;}} return null;};YAHOO.widget.RecordSet.prototype.addRecord=function(oData,index){if(oData&&(oData.constructor==Object)){var oRecord=this._addRecord(oData,index);this.fireEvent("recordAddEvent",{record:oRecord,data:oData});return oRecord;} else{return null;}};YAHOO.widget.RecordSet.prototype.addRecords=function(aData,index){if(YAHOO.lang.isArray(aData)){var newRecords=[];for(var i=0;i-1)&&(index-1)&&(index