﻿ $IG.Sorting=function(obj,objProps,control){$IG.Sorting.initializeBase(this,[obj,objProps,control]);this._sortedColumns=[];var sortedCols=this._get_value($IG.SortingProps.SortedColumns);if(sortedCols)for(var i=0;i<sortedCols.length;i++){var column=this._owner._columns.get_columnFromKey(sortedCols[i][0]);this._sortedColumns[this._sortedColumns.length]=column;column._sortDirection=sortedCols[i][1];}this._sortingMode=this._get_clientOnlyValue("sm");this._header=control._elements["header"];};$IG.Sorting.prototype={__getSortingColumnSettingByKey:function(key){return this._sortingColumnSettings._getObjectByAdr(key);},get_sortingMode:function(){return this._sortingMode;},dispose:function(){if(!this._grid)return;this._grid._removeElementEventHandler(this._header,"click",this.__headerMouseClickEventHandler);this.__headerMouseClickEventHandler=null;if(this._header)$clearHandlers(this._header);this._header=null;delete this._sortedColumns;this._sortingColumnSettings.dispose();$IG.Sorting.callBaseMethod(this,"dispose");},get_sortedColumns:function(){return this._sortedColumns;},_onMouseClick:function(evnt){var trgt=evnt.target;if(trgt.tagName=="IMG")trgt=trgt.parentNode;if(trgt.tagName=="TH"){var index=trgt.getAttribute("idx");var fieldKey=trgt.getAttribute("key");var column=(fieldKey?this._owner._columns.get_columnFromKey(fieldKey):this._owner._columns._items[parseInt(index,10)]);if(column){var sortingColumnSetting=this.__getSortingColumnSettingByKey(fieldKey);if(sortingColumnSetting!=null&&!sortingColumnSetting.get_sortable())return;var sortDirection=this.getSortDirection(column);sortDirection++;if(sortDirection>2)sortDirection=1;this._sortColumnInternal(column,sortDirection,!(this.get_sortingMode()==1&&evnt.ctrlKey));}}},clear:function(){var noPost=arguments[0];var i=this._sortedColumns.length-1;while(i>=0)this._removeSortedColumn(this._sortedColumns[i--]);this._owner._actionList.add_transaction(new $IG.SortingAction("Clear",this.get_name(),this));if(!noPost){if(!this._owner._enableAjax)this._owner._postAction(1);else{var eventArgs=new $IG.SortingEventArgs(this,null,0,true);eventArgs._props[1]=2;this._owner._postAction(eventArgs);}}},_sortColumnInternal:function(column,sortDirection,clear){var eventArgs=new $IG.SortingEventArgs(this,column,sortDirection,clear);this._owner._raiseSenderClientEventStart(this,this._clientEvents["ColumnSorting"],eventArgs);if(!eventArgs.get_cancel()){column=eventArgs.get_column();sortDirection=eventArgs.get_sortDirection();clear=eventArgs.get_clear();if(column!=null&&sortDirection>0&&sortDirection<3){this.sortColumn(column,sortDirection,clear,true);this._owner._raiseClientEventEnd(eventArgs);}}},applySort:function(){if(!this._owner._enableAjax)this._owner._postAction(1);else{var eventArgs=new $IG.SortingEventArgs(this,null,0,false);eventArgs._props[1]=2;this._owner._postAction(eventArgs);}},addSortColumn:function(column,sortDirection){this.sortColumn(column,sortDirection,false,true);},sortColumn:function(column,sortDirection,clear){var noPost=arguments[3];var colSortDir=this.getSortDirection(column);if(typeof(sortDirection)=="undefined"){sortDirection=colSortDir+1;if(sortDirection>2)sortDirection=1;}if(sortDirection<1||sortDirection>2)return;if(clear)this.clear(true);if(clear||colSortDir==0)this._sortedColumns[this._sortedColumns.length]=column;column._sortDirection=sortDirection;this._owner._actionList.add_transaction(new $IG.SortingAction("Sort",this.get_name(),this,this._sortedColumns,column.get_idPair()));if(!noPost){if(!this._owner._enableAjax)this._owner._postAction(1);else{var eventArgs=new $IG.SortingEventArgs(this,column,sortDirection,clear);eventArgs._props[1]=2;this._owner._postAction(eventArgs);}}},_removeSortedColumn:function(column){column._sortIndicator=null;column._sortDirection=0;var i=this._sortedColumns.length-1;while(i>=0){if(this._sortedColumns[i]==column)break;i--;}if(i==this._sortedColumns.length-1)this._sortedColumns.pop();else if(i==0)this._sortedColumns.shift();else if(i>0)this._sortedColumns=this._sortedColumns.slice(0,i-1).concat(this._sortedColumns.slice(i+1,this._sortedColumns.length-1));},getSortDirection:function(column){if(typeof(column._sortDirection)=="undefined")return 0;return column._sortDirection;},_initializeComplete:function(){var isColumnSorted=this._get_clientOnlyValue("ics");if(this._clientEvents["ColumnSorted"]&&isColumnSorted){this.__raiseClientEvent("ColumnSorted");}this.__headerMouseClickEventHandler=Function.createDelegate(this,this._onMouseClick);if(this._header)this._grid._addElementEventHandler(this._header,"click",this.__headerMouseClickEventHandler);},_createCollections:function(collectionsManager){this._sortingColumnSettings=collectionsManager.register_collection(0,$IG.SortingColumnSettings);var collectionItems=collectionsManager._collections[0];for(var columnKey in collectionItems)this._sortingColumnSettings._addObject($IG.SortingColumnSetting,null,columnKey);}};$IG.Sorting.registerClass('Infragistics.Web.UI.Sorting',$IG.GridBehavior);$IG.SortingProps=new function(){var count=$IG.GridBehaviorProps.Count;this.SortedColumns=[count++,0];this.Count=count;};$IG.SortingAction=function(type,ownerName,object,value,tag){$IG.SortingAction.initializeBase(this,[type,ownerName,object,value,tag]);};$IG.SortingAction.prototype={get_value:function(){var sortedCols=$IG.SortingAction.callBaseMethod(this,'get_value');var serverSortCols=[];for(var colIndex in sortedCols){var col=sortedCols[colIndex];serverSortCols[serverSortCols.length]={id:col.get_idPair(),sortDirection:this._object.getSortDirection(col)};}return serverSortCols;}};$IG.SortingAction.registerClass('Infragistics.Web.UI.SortingAction',$IG.GridAction);$IG.SortingEventArgs=function(sorting,column,sortDirection,clear){$IG.SortingEventArgs.initializeBase(this,[sorting]);this._column=column;if(column!=null)this._props[2]=column.get_idPair();this._props[3]=sortDirection;this._props[4]=clear;};$IG.SortingEventArgs.prototype={get_column:function(){return this._column;},set_column:function(value){if(typeof(value.get_key)=="undefined")throw "First parameter must be of the type 'Infragistics.Web.UI.GridColumn'.";this._column=value;this._props[2]=value.get_key();},get_sortDirection:function(){return this._props[3];},set_sortDirection:function(value){this._props[3]=value;},get_clear:function(){return this._props[4];},set_clear:function(value){this._props[4]=value;}};$IG.SortingEventArgs.registerClass('Infragistics.Web.UI.SortingEventArgs',$IG.CancelBehaviorEventArgs);$IG.SortingColumnSettings=function(control,clientStateManager,index,manager){$IG.SortingColumnSettings.initializeBase(this,[control,clientStateManager,index,manager]);};$IG.SortingColumnSettings.prototype={getItemFromColumnKey:function(columnKey){var sortingSetting=this._getObjectByAdr(columnKey);if(!sortingSetting&&this._control._grid.get_columns().get_columnFromKey(columnKey)){sortingSetting=this._control.__createSortingSetting();var clientState=sortingSetting._csm.get_clientState();this._addExistingObject(sortingSetting,columnKey,clientState);}return sortingSetting;}};$IG.SortingColumnSettings.registerClass('Infragistics.Web.UI.SortingColumnSettings',$IG.ObjectCollection);$IG.SortingColumnSetting=function(adr,element,props,owner,csm){$IG.SortingColumnSetting.initializeBase(this,[adr,element,props,owner,csm]);this.__isDirty=false;};$IG.SortingColumnSetting.prototype={__set_property:function(propName,value,fireEvent){if(fireEvent){if(this.onPropertyChanging){this.onPropertyChanging(propName);}}this._set_value(propName,value);},dispose:function(){$IG.SortingColumnSetting.callBaseMethod(this,"dispose");},get_sortable:function(){return this._get_value($IG.SortingColumnSettingProps.Sortable,true);},set_sortable:function(value){this.__set_property($IG.SortingColumnSettingProps.Sortable,value,true);},onPropertyChanging:function(propName){}};$IG.SortingColumnSetting.registerClass('Infragistics.Web.UI.SortingColumnSetting',$IG.ColumnSetting);$IG.SortingColumnSettingProps=new function(){var count=$IG.ColumnSettingProps.Count;this.Sortable=[count++,true];this.Count=count;};
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();