PrimeFaces.widget.DataTable=function(a,c,d,b){this.clientId=a;this.selectParam=this.clientId+"_selected";this.pageParam=this.clientId+"_page";YAHOO.widget.DataTable.CLASS_DATATABLE="ui-datatable ui-widget";YAHOO.widget.DataTable.CLASS_LINER="ui-datatable-liner";YAHOO.widget.DataTable.CLASS_LABEL="ui-datatable-label";YAHOO.widget.DataTable.CLASS_DATA="ui-datatable-data";YAHOO.widget.DataTable.CLASS_DATA="ui-datatable-data";YAHOO.widget.DataTable.CLASS_EVEN="ui-datatable-even ui-widget-content";YAHOO.widget.DataTable.CLASS_ODD="ui-datatable-odd ui-widget-content";YAHOO.widget.DataTable.CLASS_LAST="ui-datatable-last";YAHOO.widget.DataTable.CLASS_FIRST="ui-datatable-first";YAHOO.widget.DataTable.CLASS_SORTABLE="ui-datatable-sortable";YAHOO.widget.DataTable.CLASS_ASC="ui-datatable-asc";YAHOO.widget.DataTable.CLASS_DESC="ui-datatable-desc";YAHOO.widget.DataTable.CLASS_HIDDEN="ui-datatable-hidden";YAHOO.widget.DataTable.CLASS_HIGHLIGHTED="ui-state-hover";YAHOO.widget.DataTable.CLASS_SELECTED="ui-state-active";PrimeFaces.widget.DataTable.superclass.constructor.call(this,a+"_container",c,d,b);jQuery(".ui-datatable table").addClass("ui-widget-content");jQuery(".ui-datatable table thead tr th").addClass("ui-state-default");this.initialize(a)};PrimeFaces.widget.DataTableExtensions={initialize:function(a){if(this.isRowSelectionEnabled()){this.subscribe("rowMouseoverEvent",this.onEventHighlightRow);this.subscribe("rowMouseoutEvent",this.onEventUnhighlightRow);this.subscribe("rowSelectEvent",this.onRowSelect);this.subscribe("rowUnselectEvent",this.onRowUnselect);this.subscribe("unselectAllRowsEvent",this.onUnselectAllRows);if(this.configs.dblClickSelect){this.subscribe("rowDblclickEvent",this.handleRowClickEvent)}else{this.subscribe("rowClickEvent",this.handleRowClickEvent)}}if(this.isCellSelectionEnabled()){this.subscribe("cellClickEvent",this.onEventSelectCell);this.subscribe("cellMouseoverEvent",this.onEventHighlightCell);this.subscribe("cellMouseoutEvent",this.onEventUnhighlightCell);this.subscribe("cellSelectEvent",this.onCellSelect);this.subscribe("cellUnselectEvent",this.onCellUnselect);this.subscribe("unselectAllCellsEvent",this.onUnselectAllCells)}this.filters={};if(!this.isDynamic()){this.initialData=this.getDataSource().parseHTMLTableData(null,this.getDataSource().liveData).results}},onPaginatorChangeRequest:function(a){if(this.isDynamic()){this.showTableMessage(this.get("MSG_LOADING"),YAHOO.widget.DataTable.CLASS_LOADING);var b=this.getState();b.pagination=a;b.ajaxPage=true;if(this.isSelectionEnabled()){this.clearSelections()}this.loadDynamicData(b,false);b.ajaxPage=false}else{document.getElementById(this.pageParam).value=a.page;a.paginator.setStartIndex(a.recordOffset,true);a.paginator.setRowsPerPage(a.rowsPerPage,true);this.render()}},sortColumn:function(c,e){var h=e||this.getColumnSortDir(c),f=(h==YAHOO.widget.DataTable.CLASS_DESC)?true:false,d=f?"s":"n",b=jQuery(c.getThEl());jQuery(this.getTheadEl()).find("tr th span.ui-icon").remove();if(b.children("span.ui-icon").size()==0){b.append('<span class="ui-icon ui-icon-triangle-1-'+d+'" style="float:right"></span>')}else{b.children("span.ui-icon").replaceWith('<span class="ui-icon ui-icon-triangle-1-'+d+'" style="float:right"></span>')}PrimeFaces.widget.DataTableUtils.sortColumn=c;if(this.isDynamic()){this.showTableMessage(this.get("MSG_LOADING"),YAHOO.widget.DataTable.CLASS_LOADING);var a=this.getState();if(a.pagination){a.pagination.recordOffset=0}a.sortedBy={key:c.key,dir:h};a.ajaxSort=true;if(this.isSelectionEnabled()){this.clearSelections()}this.loadDynamicData(a,false);a.ajaxSort=false}else{var j=c.sortOptions.sortFunction?c.sortOptions.sortFunction:PrimeFaces.widget.DataTableUtils.genericSort;var g=c.sortOptions.field;this._oRecordSet.sortRecords(j,f,g);var i=this.get("paginator");if(i){this.resetPageState()}this.render();this.set("sortedBy",{key:c.key,dir:h,column:c})}},filter:function(g,f){if(g===""){this.filters[f]=null}else{this.filters[f]=g.toLowerCase()}if(this.isDynamic()){this.showTableMessage(this.get("MSG_LOADING"),YAHOO.widget.DataTable.CLASS_LOADING);var a=this.getState();a.ajaxFilter=true;if(a.pagination){a.pagination.recordOffset=0}if(this.isSelectionEnabled()){this.clearSelections()}this.loadDynamicData(a,true);a.ajaxFilter=false}else{var d=[];for(var c=0;c<this.initialData.length;c++){var h=true,b=this.initialData[c];for(var f in this.filters){if(this.filters[f]){var e=this.filters[f],j=PrimeFaces.widget.DataTableUtils.stripHtml(b[f].toLowerCase());if(j.indexOf(e)!=0){h=false;break}}}if(h){d.push(b)}}var b={results:d};var k=this.get("paginator");if(k){this.resetPageState()}this.resetPageState();this.onDataReturnInitializeTable(g,b,this.getState())}},loadDynamicData:function(c,a){var b=this.getDynamicDataRequestParams(c);jQuery.ajax({url:this.configs.url,type:"POST",cache:false,dataType:"xml",data:b,context:this,global:false,success:function(f,e,l){var m=f.documentElement,h=m.getElementsByTagName("table")[0].firstChild.data,i=m.getElementsByTagName("state")[0].firstChild.data,j=m.getElementsByTagName("row-count")[0].firstChild.data;PrimeFaces.ajax.AjaxUtils.updateState(i);var d=document.createElement("div");d.innerHTML=h;var k=d.getElementsByTagName("table")[0],g=this.getDataSource().parseHTMLTableData(b,k);if(a){c.totalRecords=parseInt(j);this.onDataReturnInitializeTable(b,g,c)}else{this.onDataReturnSetRows(b,g,c)}},error:function(){this.showTableMessage(this.get("MSG_ERROR"),YAHOO.widget.DataTable.CLASS_ERROR)}})},getDynamicDataRequestParams:function(c){var b=jQuery(PrimeFaces.escapeClientId(this.configs.formId)).serialize(),d={};d[this.clientId+"_ajaxData"]=true;d[PrimeFaces.PARTIAL_REQUEST_PARAM]=true;d[PrimeFaces.PARTIAL_SOURCE_PARAM]=this.clientId;d[PrimeFaces.PARTIAL_PROCESS_PARAM]=this.clientId;if(c.ajaxSort){var a=c.sortedBy.dir.split("-")[2];d[this.clientId+"_ajaxSort"]=true;d[this.clientId+"_sortKey"]=c.sortedBy.key;d[this.clientId+"_sortDir"]=a}if(c.ajaxPage){d[this.clientId+"_ajaxPage"]=true;d[this.clientId+"_first"]=c.pagination.recordOffset;d[this.clientId+"_rows"]=c.pagination.rowsPerPage;d[this.clientId+"_page"]=c.pagination.page}if(c.ajaxFilter){d[this.clientId+"_ajaxFilter"]=true}b=b+PrimeFaces.ajax.AjaxUtils.serialize(d);return b},onRowSelect:function(a){var b=a.record.getData("rowIndex");if(this.isSelectionModeSingle()){this.selected[0]=b}else{if(this.selected.length==0||this.getSelectedIndexPosition(b)==-1){this.selected.push(b)}}document.getElementById(this.selectParam).value=this.selected.join(",");if(this.configs.update){this.doInstantRowSelectionRequest()}},onRowUnselect:function(b){var c=b.record.getData("rowIndex"),a=this.getSelectedIndexPosition(c);this.selected.splice(a,1);document.getElementById(this.selectParam).value=this.selected.join(",")},onUnselectAllRows:function(){this.clearSelections()},getSelectedIndexPosition:function(b){for(var a=0;a<this.selected.length;a++){if(b==this.selected){return a}}return -1},handleRowClickEvent:function(a){var b=a.event,c=null;if(b.srcElement){c=b.srcElement}else{c=b.target}if(c.className==="ui-datatable-liner"){this.onEventSelectRow(a)}},doInstantRowSelectionRequest:function(){var a={formId:this.configs.formId};var b={};b[PrimeFaces.PARTIAL_UPDATE_PARAM]=this.configs.update;b[PrimeFaces.PARTIAL_PROCESS_PARAM]=this.clientId;if(this.configs.onselectStart){a.onstart=this.configs.onselectStart}if(this.configs.onselectComplete){a.oncomplete=this.configs.onselectComplete}PrimeFaces.ajax.AjaxRequest(this.configs.url,a,b)},onCellSelect:function(b){var d=b.record.getData("rowIndex"),c=b.column.getKey(),a=d+"#"+c;if(c!="rowIndex"){if(this.isSelectionModeSingle()){this.selected[0]=a}else{this.selected.push(a)}document.getElementById(this.selectParam).value=this.selected.join(",")}},onCellUnselect:function(c){var e=c.record.getData("rowIndex"),d=c.column.getKey(),b=e+"#"+d,a=this.getSelectedIndexPosition(b);this.selected.splice(a,1);document.getElementById(this.selectParam).value=this.selected.join(",")},onUnselectAllCells:function(){this.clearSelections()},hasFilter:function(){for(var a in this.filters){if(this.filters[a]){return true}}return false},onEventSortColumn:function(a){var c=a.event,e=null;if(c.srcElement){e=c.srcElement}else{e=c.target}if(e.tagName.toLowerCase()!="input"){var b=this.getThEl(a.target)||this.getTdEl(a.target);if(b){var d=this.getColumn(b);if(d.sortable){YAHOO.util.Event.stopEvent(c);this.sortColumn(d)}}}else{YAHOO.util.Event.stopEvent(c)}},_setSelections:function(){if(!this.isSelectionEnabled()){return}if(!this.selected){var l=document.getElementById(this.selectParam).value;this.selected=l===""?[]:l.split(",")}var k=this.getRecordSet();for(var g=0;g<this.selected.length;g++){var e=this.selected[g];for(var f=0;f<k.getLength();f++){var d=k.getRecord(f);if(this.isCellSelectionEnabled()){var c=e.split("#");if(d&&c[0]==d.getData("rowIndex")){var b=this.getColumn(c[1]),h=this.getTdEl({record:d,column:b});YAHOO.util.Dom.addClass(h,YAHOO.widget.DataTable.CLASS_SELECTED)}}else{if(d&&e==d.getData("rowIndex")){var a=YAHOO.util.Dom.get(d.getId());if(a){YAHOO.util.Dom.addClass(a,YAHOO.widget.DataTable.CLASS_SELECTED)}}}}}},formatTheadCell:function(a,e,c){var j=e.getKey();var i=YAHOO.lang.isValue(e.label)?e.label:j;if(e.sortable){var f=this.getColumnSortDir(e,c);var b=(f===YAHOO.widget.DataTable.CLASS_DESC);if(c&&(e.key===c.key)){b=!(c.dir===YAHOO.widget.DataTable.CLASS_DESC)}var d=this.getId()+"-href-"+e.getSanitizedKey();var h=(b)?this.get("MSG_SORTDESC"):this.get("MSG_SORTASC");a.innerHTML='<a href="'+d+'" title="'+h+'" class="'+YAHOO.widget.DataTable.CLASS_SORTABLE+'">'+i+"</a>"}else{a.innerHTML=i}for(var g in this.filters){if(this.filters[g]){document.getElementById(g+"_filter").value=this.filters[g]}}},clearSelections:function(){this.selected=[];document.getElementById(this.selectParam).value=""},isSelectionEnabled:function(){return this.configs.selectionMode?true:false},isRowSelectionEnabled:function(){return this.configs.selectionMode&&this.configs.selectionMode.indexOf("cell")==-1},isCellSelectionEnabled:function(){return this.configs.selectionMode&&this.configs.selectionMode.indexOf("cell")!=-1},isSelectionModeSingle:function(){return(this.configs.selectionMode=="single"||this.configs.selectionMode=="singlecell")},isDynamic:function(){return this.configs.dynamicData},resetPageState:function(){document.getElementById(this.pageParam).value=1;this.get("paginator").setPage(1,true)},_getTrTemplateEl:function(n,g){if(this._elTrTemplate){return this._elTrTemplate}else{var j=document,l=j.createElement("tr"),c=j.createElement("td"),b=j.createElement("div");c.appendChild(b);var m=document.createDocumentFragment(),k=this._oColumnSet.keys,f;var h;for(var e=0,a=k.length;e<a;e++){f=c.cloneNode(true);f=this._formatTdEl(k[e],f,e,(e===a-2));m.appendChild(f)}l.appendChild(m);this._elTrTemplate=l;return l}}};PrimeFaces.widget.DataTableUtils={genericSort:function(d,c,h,g){var i=PrimeFaces.widget.DataTableUtils.sortColumn.parser;var f=PrimeFaces.widget.DataTableUtils.stripHtml(d.getData(g));var e=PrimeFaces.widget.DataTableUtils.stripHtml(c.getData(g));if(i==="number"){f=YAHOO.util.DataSource.parseNumber(f);e=YAHOO.util.DataSource.parseNumber(e);if(f==e){return 0}else{if(f>e){return h?-1:1}else{return h?1:-1}}}else{if(i==="date"){f=YAHOO.util.DataSource.parseDate(f);e=YAHOO.util.DataSource.parseDate(e);if(f==e){return 0}else{if(f>e){return h?-1:1}else{return h?1:-1}}}else{return YAHOO.util.Sort.compare(f,e,h)}}},stripHtml:function(a){return a.replace(/(<([^>]+)>)/ig,"")}};YAHOO.lang.extend(PrimeFaces.widget.DataTable,YAHOO.widget.DataTable,PrimeFaces.widget.DataTableExtensions);
