configurationengine/source/scripts/tablefilter.js
author m2lahtel
Tue, 10 Aug 2010 14:29:28 +0300
changeset 3 e7e0ae78773e
permissions -rw-r--r--
ConE 1.2.11 release
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     1
/*------------------------------------------------------------------------
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     2
	- HTML Table Filter Generator v1.9.6
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     3
	- By Max Guglielmi (tablefilter.free.fr)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     4
	- Licensed under the MIT License
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     5
--------------------------------------------------------------------------
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     6
Copyright (c) 2009 Max Guglielmi
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     7
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     8
Permission is hereby granted, free of charge, to any person obtaining
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     9
a copy of this software and associated documentation files (the
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    10
"Software"), to deal in the Software without restriction, including
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    11
without limitation the rights to use, copy, modify, merge, publish,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    12
distribute, sublicense, and/or sell copies of the Software, and to
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    13
permit persons to whom the Software is furnished to do so, subject to
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    14
the following conditions:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    15
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    16
The above copyright notice and this permission notice shall be included
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    17
in all copies or substantial portions of the Software.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    18
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    19
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    20
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    21
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    22
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    23
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    24
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    25
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    26
--------------------------------------------------------------------------
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    27
	- Special credit to: 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    28
	Cedric Wartel, cnx.claude@free.fr, Florent Hirchy, Váry Péter, 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    29
	Anthony Maes, Nuovella Williams, Fuggerbit, Venkata Seshagiri Rao 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    30
	Raya for active contribution and inspiration
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    31
------------------------------------------------------------------------*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    32
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    33
function setFilterGrid(id)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    34
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    35
	- Sets filters grid bar
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    36
	- Calls TF Constructor and generates grid bar
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    37
	- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    38
			- id: table id (string)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    39
			- refRow (optional): row index (number)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    40
			- config (optional): configuration 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    41
			object (literal object)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    42
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    43
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    44
	if( arguments.length==0 ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    45
	eval( 'tf_'+id+' = new TF(arguments[0],arguments[1],arguments[2])' );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    46
	eval( 'tf_'+id+'.AddGrid();' );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    47
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    48
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    49
/*===BEGIN removable section===========================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    50
	- Unobtrusive grid bar generation using 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    51
	'filterable' class
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    52
	- If you don't use it you can remove safely this 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    53
	section
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    54
/*=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    55
tf_addEvent(window, 'load', initFilterGrid);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    56
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    57
function initFilterGrid()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    58
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    59
	if (!document.getElementsByTagName) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    60
	var tbls = tf_Tag(document,'table'), config;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    61
	for (var i=0; i<tbls.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    62
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    63
		var cTbl = tbls[i], cTblId = cTbl.getAttribute('id');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    64
		if( tf_hasClass(cTbl,'filterable') && cTblId )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    65
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    66
			if( tf_isObj(cTblId+'_config') )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    67
				config = eval(cTblId+'_config');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    68
			else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    69
				config = undefined;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    70
			setFilterGrid( cTblId,config );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    71
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    72
	}// for i
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    73
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    74
/*===END removable section===========================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    75
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    76
var TF = function( id )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    77
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    78
	- TF object constructor
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    79
	- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    80
			- id: table id (string)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    81
			- refRow (optional): row index (number)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    82
			- config (optional): configuration 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    83
			object (literal object)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    84
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    85
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    86
	if( arguments.length==0 ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    87
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    88
	this.id = id;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    89
	this.tbl = tf_Id(id);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    90
	this.startRow = undefined;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    91
	this.refRow = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    92
	this.headersRow = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    93
	this.fObj = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    94
	this.nbFilterableRows = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    95
	this.nbRows = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    96
	this.nbCells = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    97
	this.hasGrid = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    98
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    99
	if(this.tbl != null && this.tbl.nodeName.tf_LCase() == 'table' && this.GetRowsNb())
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   100
    {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   101
		if(arguments.length>1)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   102
        {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   103
            for(var i=0; i<arguments.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   104
            {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   105
                var argtype = typeof arguments[i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   106
               
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   107
                switch(argtype.tf_LCase())
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   108
                {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   109
                    case 'number':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   110
                        this.startRow = arguments[i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   111
                    break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   112
                    case 'object':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   113
                        this.fObj = arguments[i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   114
                    break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   115
                }//switch                           
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   116
            }//for
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   117
        }//if
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   118
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   119
		var f = this.fObj;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   120
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   121
		/*** filter types ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   122
		this.fltTypeInp =			'input';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   123
		this.fltTypeSlc =			'select';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   124
		this.fltTypeMulti =			'multiple';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   125
		this.fltTypeCheckList =		'checklist';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   126
		this.fltTypeNone =			'none';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   127
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   128
		/*** filters' grid properties ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   129
		this.fltGrid = 				f!=undefined && f.grid==false ? false : true; //enables/disables filter grid
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   130
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   131
		/*** Grid layout ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   132
		this.gridLayout = 			f!=undefined && f.grid_layout ? true : false; //enables/disables grid layout (fixed headers)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   133
		this.gridWidth =			f!=undefined && f.grid_width!=undefined ? f.grid_width : null; //defines grid width
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   134
		this.gridHeight =			f!=undefined && f.grid_height!=undefined ? f.grid_height : null; //defines grid height
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   135
		this.gridMainContCssClass = f!=undefined && f.grid_cont_css_class!=undefined //defines css class for main container
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   136
										? f.grid_cont_css_class : 'grd_Cont';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   137
		this.gridContCssClass =		f!=undefined && f.grid_tbl_cont_css_class!=undefined //defines css class for div containing table
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   138
										? f.grid_tbl_cont_css_class : 'grd_tblCont';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   139
		this.gridHeadContCssClass = f!=undefined && f.grid_tblHead_cont_css_class!=undefined //defines css class for div containing headers' table
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   140
										? f.grid_tblHead_cont_css_class : 'grd_headTblCont';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   141
		this.gridInfDivCssClass =	f!=undefined && f.grid_inf_grid_css_class!=undefined //defines css class for div containing rows counter, paging etc.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   142
										? f.grid_inf_grid_css_class : 'grd_inf';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   143
		this.gridHeadRowIndex =		f!=undefined && f.grid_headers_row_index!=undefined //defines which row contains column headers
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   144
										? f.grid_headers_row_index : 0; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   145
		this.gridHeadRows =			f!=undefined && f.grid_headers_rows!=undefined //array of headers row indexes to be placed in header table
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   146
										? f.grid_headers_rows : [0];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   147
		this.gridEnableFilters =	f!=undefined && f.grid_enable_default_filters!=undefined 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   148
										? f.grid_enable_default_filters : true; //generate filters in table headers
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   149
		this.gridDefaultColWidth =	f!=undefined && f.grid_default_col_width!=undefined 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   150
										? f.grid_default_col_width : '100px'; //default col width						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   151
		this.gridEnableColResizer =	f!=undefined && f.grid_enable_cols_resizer!=undefined 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   152
										? f.grid_enable_cols_resizer : true; //enables/disables columns resizer
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   153
		this.hasGridWidthsRow =		false; //flag indicating if the grid has an additional row for column widths (IE<=7)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   154
		this.gridColElms =			[];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   155
		this.sourceTblHtml = 		this.tbl.outerHTML; //original table html												
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   156
		/*** ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   157
								
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   158
		this.filtersRowIndex =		f!=undefined && f.filters_row_index!=undefined //defines in which row filters grid bar is generated
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   159
										? f.filters_row_index>1 ? 1 : f.filters_row_index : 0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   160
		this.fltCellTag =			f!=undefined && f.filters_cell_tag!=undefined //defines tag of the cells containing filters (td/th)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   161
										? (f.filters_cell_tag!='th' ? 'td' : 'th') : 'td';		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   162
		this.fltIds = 				[]; //stores filters ids
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   163
		this.searchArgs =			null; //stores filters values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   164
		this.tblData =				[]; //stores table data
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   165
		this.validRowsIndex =		null; //stores valid rows indexes (rows visible upon filtering)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   166
		this.fltGridEl =			null; //stores filters row element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   167
		this.isFirstLoad =			true; //is first load boolean 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   168
		this.infDiv =				null; //container div for paging elements, reset btn etc.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   169
		this.lDiv =					null; //div for rows counter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   170
		this.rDiv =					null; //div for reset button and results per page select
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   171
		this.mDiv =					null; //div for paging elements
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   172
		this.contDiv =				null; //table container div for fixed headers (IE only)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   173
		this.infDivCssClass =		f!=undefined && f.inf_div_css_class!=undefined	//defines css class for div containing
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   174
										? f.inf_div_css_class : 'inf';				//paging elements, rows counter etc.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   175
		this.lDivCssClass =			f!=undefined && f.left_div_css_class!=undefined	//defines css class for left div 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   176
										? f.left_div_css_class : 'ldiv';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   177
		this.rDivCssClass =			f!=undefined && f.right_div_css_class!=undefined //defines css class for right div 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   178
										? f.right_div_css_class : 'rdiv';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   179
		this.mDivCssClass =			f!=undefined && f.middle_div_css_class!=undefined //defines css class for mid div 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   180
										? f.middle_div_css_class : 'mdiv';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   181
		this.contDivCssClass =		f!=undefined && f.content_div_css_class!=undefined 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   182
										? f.content_div_css_class : 'cont';	//table container div css class
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   183
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   184
		/*** filters' grid appearance ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   185
		this.fltsRowCssClass =		f!=undefined && f.flts_row_css_class!=undefined //defines css class for filters row
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   186
										? f.flts_row_css_class : 'fltrow';		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   187
		this.alternateBgs =			f!=undefined && f.alternate_rows ? true : false; //enables/disbles rows alternating bg colors
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   188
		this.hasColWidth =			f!=undefined && f.col_width ? true : false; //defines widths of columns
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   189
		this.colWidth =				f!=undefined && this.hasColWidth ? f.col_width : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   190
		this.fixedHeaders =			f!=undefined && f.fixed_headers ? true : false; //enables/disables fixed headers
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   191
		this.tBodyH = 				f!=undefined && f.tbody_height ? f.tbody_height : 200; //tbody height if fixed headers enabled
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   192
		this.fltCssClass =			f!=undefined && f.flt_css_class!=undefined //defines css class for filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   193
										? f.flt_css_class : 'flt';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   194
		this.fltMultiCssClass =		f!=undefined && f.flt_multi_css_class!=undefined //defines css class for multiple selects filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   195
										? f.flt_multi_css_class : 'flt_multi';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   196
		this.fltSmallCssClass =		f!=undefined && f.flt_small_css_class!=undefined //defines css class for filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   197
										? f.flt_small_css_class : 'flt_s';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   198
		this.singleFltCssClass =	f!=undefined && f.single_flt_css_class!=undefined //defines css class for single-filter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   199
										? f.single_flt_css_class : 'single_flt';	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   200
		this.isStartBgAlternate =	true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   201
		this.rowBgEvenCssClass =	f!=undefined && f.even_row_css_class!=undefined //defines css class for even rows
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   202
										? f.even_row_css_class :'even';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   203
		this.rowBgOddCssClass =		f!=undefined && f.odd_row_css_class!=undefined //defines css class for odd rows
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   204
										? f.odd_row_css_class :'odd';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   205
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   206
		/*** filters' grid behaviours ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   207
		this.enterKey =				f!=undefined && f.enter_key==false ? false : true; //enables/disables enter key
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   208
		this.isModFilterFn = 		f!=undefined && f.mod_filter_fn ? true : false; //enables/disables alternative fn call		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   209
		this.modFilterFn =			this.isModFilterFn ? f.mod_filter_fn : null;// used by tf_DetectKey fn
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   210
		this.onBeforeFilter =		f!=undefined && tf_isFn(f.on_before_filter) //calls function before filtering starts
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   211
										? f.on_before_filter : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   212
		this.onAfterFilter =		f!=undefined && tf_isFn(f.on_after_filter) //calls function after filtering
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   213
										? f.on_after_filter : null;								
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   214
		this.matchCase =			f!=undefined && f.match_case ? true : false; //enables/disables case sensitivity
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   215
		this.exactMatch =			f!=undefined && f.exact_match ? true : false; //enables/disbles exact match for search
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   216
		this.refreshFilters =		f!=undefined && f.refresh_filters ? true : false; //refreshes drop-down lists upon validation
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   217
		this.activeFlt =			null; //stores active filter element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   218
		this.activeFilterId =		null; //id of active filter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   219
		this.hasColOperation =		f!=undefined && f.col_operation ? true : false; //enables/disbles column operation(sum,mean)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   220
		this.colOperation =			null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   221
		this.hasVisibleRows = 		f!=undefined && f.rows_always_visible ? true : false; //enables always visible rows
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   222
		this.visibleRows =			this.hasVisibleRows ? f.rows_always_visible : [];//array containing always visible rows
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   223
		this.searchType =			f!=undefined && f.search_type!=undefined //defines search type: include or exclude
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   224
										? f.search_type : 'include';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   225
		this.isExternalFlt =		f!=undefined && f.external_flt_grid ? true : false; //enables/disables external filters generation
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   226
		this.externalFltTgtIds =	f!=undefined && f.external_flt_grid_ids!=undefined //array containing ids of external elements containing filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   227
										? f.external_flt_grid_ids : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   228
		this.externalFltEls =		[]; //stores filters elements if isExternalFlt is true		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   229
		this.execDelay =			f!=undefined && f.exec_delay ? parseInt(f.exec_delay) : 100; //delays filtering process if loader true
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   230
		this.status =				f!=undefined && f.status ? true : false; //enables/disables status messages
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   231
		this.onFiltersLoaded =		f!=undefined && tf_isFn(f.on_filters_loaded) //calls function when filters grid loaded
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   232
										? f.on_filters_loaded : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   233
		this.singleSearchFlt =		f!=undefined && f.single_search_filter ? true : false; //enables/disables single filter search
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   234
		this.onRowValidated =		f!=undefined && tf_isFn(f.on_row_validated) //calls function after row is validated
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   235
									 	? f.on_row_validated : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   236
		this.customCellDataCols =	f!=undefined && f.custom_cell_data_cols ? f.custom_cell_data_cols : []; //array defining columns for customCellData event 	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   237
		this.customCellData =		f!=undefined && tf_isFn(f.custom_cell_data) //calls custom function for retrieving cell data
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   238
									 	? f.custom_cell_data : null;																
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   239
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   240
		/*** selects customisation and behaviours ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   241
		this.displayAllText =		f!=undefined && f.display_all_text!=undefined ? f.display_all_text : ''; //defines 1st option text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   242
		this.onSlcChange = 			f!=undefined && f.on_change==false ? false : true; //enables/disables onChange event on combo-box 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   243
		this.sortSlc =				f!=undefined && f.sort_select==false ? false : true; //enables/disables select options sorting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   244
		this.isSortNumAsc =			f!=undefined && f.sort_num_asc ? true : false; //enables/disables ascending numeric options sorting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   245
		this.sortNumAsc =			this.isSortNumAsc ? f.sort_num_asc : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   246
		this.isSortNumDesc =		f!=undefined && f.sort_num_desc ? true : false; //enables/disables descending numeric options sorting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   247
		this.sortNumDesc =			this.isSortNumDesc ? f.sort_num_desc : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   248
		this.slcFillingMethod =		f!=undefined && f.slc_filling_method!=undefined //sets select filling method: 'innerHTML' or 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   249
										? f.slc_filling_method : 'createElement';	//'createElement'
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   250
		this.fillSlcOnDemand =		f!=undefined && f.fill_slc_on_demand ? true : false; //enabled selects are populated on demand
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   251
		this.activateSlcTooltip =	f!=undefined && f.activate_slc_tooltip!=undefined //IE only, tooltip text appearing on select 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   252
										? f.activate_slc_tooltip : 'Click to activate'; // before it is populated
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   253
		this.multipleSlcTooltip =	f!=undefined && f.multiple_slc_tooltip!=undefined //tooltip text appearing on multiple select 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   254
										? f.multiple_slc_tooltip : 'Use Ctrl key for multiple selections';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   255
		this.hasCustomSlcOptions =	f!=undefined && f.custom_slc_options &&
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   256
										(typeof f.custom_slc_options).tf_LCase() == 'object' 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   257
										? true : false;	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   258
		this.customSlcOptions =		f!=undefined && f.custom_slc_options!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   259
										? f.custom_slc_options : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   260
		this.onBeforeOperation =	f!=undefined && tf_isFn(f.on_before_operation) //calls function before col operation
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   261
										? f.on_before_operation : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   262
		this.onAfterOperation =		f!=undefined && tf_isFn(f.on_after_operation) //calls function after col operation
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   263
										? f.on_after_operation : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   264
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   265
		/*** checklist customisation and behaviours ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   266
		this.checkListDiv = 		[]; //checklist container div
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   267
		this.checkListDivCssClass = f!=undefined && f.div_checklist_css_class!=undefined 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   268
										? f.div_checklist_css_class : 'div_checklist'; //defines css class for div containing checklist filter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   269
		this.checkListCssClass =	f!=undefined && f.checklist_css_class!=undefined //defines css class for checklist filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   270
										? f.checklist_css_class : 'flt_checklist';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   271
		this.checkListItemCssClass = f!=undefined && f.checklist_item_css_class!=undefined //defines css class for checklist item (li)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   272
										? f.checklist_item_css_class : 'flt_checklist_item';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   273
		this.checkListSlcItemCssClass = f!=undefined && f.checklist_selected_item_css_class!=undefined //defines css class for selected checklist item (li)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   274
										? f.checklist_selected_item_css_class : 'flt_checklist_slc_item';								
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   275
		this.activateCheckListTxt =	f!=undefined && f.activate_checklist_text!=undefined //Load on demand text 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   276
										? f.activate_checklist_text : 'Click to load data';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   277
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   278
		/*** Filter operators ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   279
		this.orOperator =			f!=undefined && f.or_operator!=undefined ? f.or_operator : '||';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   280
		this.anOperator =			f!=undefined && f.and_operator!=undefined ? f.and_operator : '&&';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   281
		this.grOperator = 			f!=undefined && f.greater_operator!=undefined ? f.greater_operator : '>';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   282
		this.lwOperator =			f!=undefined && f.lower_operator!=undefined ? f.lower_operator : '<';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   283
		this.leOperator =			f!=undefined && f.lower_equal_operator!=undefined ? f.lower_equal_operator : '<=';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   284
		this.geOperator =			f!=undefined && f.greater_equal_operator!=undefined ? f.greater_equal_operator : '>=';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   285
		this.dfOperator =			f!=undefined && f.different_operator!=undefined ? f.different_operator : '!';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   286
		this.lkOperator =			f!=undefined && f.like_operator!=undefined ? f.like_operator : '*';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   287
		this.eqOperator =			f!=undefined && f.equal_operator!=undefined ? f.equal_operator : '=';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   288
		this.stOperator =			f!=undefined && f.start_with_operator!=undefined ? f.start_with_operator : '{';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   289
		this.enOperator =			f!=undefined && f.end_with_operator!=undefined ? f.end_with_operator : '}';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   290
		this.curExp =				f!=undefined && f.cur_exp!=undefined ? f.cur_exp : '^[¥£€$]';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   291
		this.separator = 			f!=undefined && f.separator!=undefined ? f.separator : ',';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   292
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   293
		/*** rows counter ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   294
		this.rowsCounter = 			f!=undefined && f.rows_counter ? true : false; //show/hides rows counter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   295
		this.rowsCounterTgtId =		f!=undefined && f.rows_counter_target_id!=undefined //id of custom container element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   296
										? f.rows_counter_target_id : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   297
		this.rowsCounterDiv =		null; //element containing tot nb rows
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   298
		this.rowsCounterSpan =		null; //element containing tot nb rows label
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   299
		this.rowsCounterText =		f!=undefined && f.rows_counter_text!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   300
										? f.rows_counter_text : 'Rows: '; //defines rows counter text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   301
		this.totRowsCssClass =		f!=undefined && f.tot_rows_css_class!=undefined //defines css class rows counter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   302
										? f.tot_rows_css_class : 'tot';		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   303
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   304
		/*** status bar ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   305
		this.statusBar =			f!=undefined && f.status_bar ? true : false; //show/hides status bar
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   306
		this.statusBarTgtId =		f!=undefined && f.status_bar_target_id!=undefined //id of custom container element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   307
										? f.status_bar_target_id : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   308
		this.statusBarDiv =			null; //element containing status bar label
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   309
		this.statusBarSpan =		null; //status bar
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   310
		this.statusBarSpanText =	null; //status bar label
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   311
		this.statusBarText =		f!=undefined && f.status_bar_text!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   312
										? f.status_bar_text : ''; //defines status bar text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   313
		this.statusBarCssClass =	f!=undefined && f.status_bar_css_class!=undefined //defines css class status bar
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   314
										? f.status_bar_css_class : 'status';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   315
		this.statusBarCloseDelay =	250; //delay for status bar clearing			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   316
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   317
		/*** loader ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   318
		this.loader =				f!=undefined && f.loader ? true : false; //enables/disables loader
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   319
		this.loaderTgtId =			f!=undefined && f.loader_target_id!=undefined //id of container element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   320
										? f.loader_target_id : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   321
		this.loaderDiv =			null; //div containing loader
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   322
		this.loaderText =			f!=undefined && f.loader_text!=undefined ? f.loader_text : 'Loading...'; //defines loader text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   323
		this.loaderHtml =			f!=undefined && f.loader_html!=undefined ? f.loader_html : null; //defines loader innerHtml
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   324
		this.loaderCssClass = 		f!=undefined && f.loader_css_class!=undefined //defines css class for loader div
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   325
										? f.loader_css_class : 'loader';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   326
		this.loaderCloseDelay =		200; //delay for hiding loader
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   327
		this.onShowLoader =			f!=undefined && tf_isFn(f.on_show_loader) //calls function before loader is displayed
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   328
										? f.on_show_loader : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   329
		this.onHideLoader =			f!=undefined && tf_isFn(f.on_hide_loader) //calls function after loader is closed
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   330
										? f.on_hide_loader : null;					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   331
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   332
		/*** validation - reset buttons/links ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   333
		this.displayBtn =			f!=undefined && f.btn ? true : false; //show/hides filter's validation button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   334
		this.btnText =				f!=undefined && f.btn_text!=undefined ? f.btn_text : 'go'; //defines validation button text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   335
		this.btnCssClass =			f!=undefined && f.btn_css_class!=undefined //defines css class for validation button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   336
										? f.btn_css_class : 'btnflt';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   337
		this.btnReset = 			f!=undefined && f.btn_reset ? true : false; //show/hides reset link
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   338
		this.btnResetTgtId =		f!=undefined && f.btn_reset_target_id!=undefined //id of container element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   339
										? f.btn_reset_target_id : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   340
		this.btnResetEl =			null; //reset button element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   341
		this.btnResetText =			f!=undefined && f.btn_reset_text!=undefined ? f.btn_reset_text : 'Reset'; //defines reset text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   342
		this.btnResetHtml = 		f!=undefined && f.btn_reset_html!=undefined ? f.btn_reset_html : null; //defines reset button innerHtml
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   343
		this.btnResetCssClass =		f!=undefined && f.btn_reset_css_class!=undefined //defines css class for reset button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   344
										? f.btn_reset_css_class :'reset';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   345
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   346
		/*** paging ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   347
		this.paging =				f!=undefined && f.paging ? true : false; //enables/disables table paging
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   348
		this.pagingTgtId =			f!=undefined && f.paging_target_id!=undefined //id of container element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   349
										? f.paging_target_id : null;		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   350
		this.pagingLength =			f!=undefined && f.paging_length!=undefined ? f.paging_length : 10; //defines table paging length
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   351
		this.hasResultsPerPage =	f!=undefined && f.results_per_page ? true : false; //enables/disables results per page drop-down
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   352
		this.resultsPerPageTgtId =	f!=undefined && f.results_per_page_target_id!=undefined //id of container element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   353
										? f.results_per_page_target_id : null;	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   354
		this.resultsPerPage =		null; //stores results per page text and values			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   355
		this.pagingSlc =			null; //stores paging select element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   356
		this.isPagingRemoved =		false; //indicates if paging elements were previously removed
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   357
		this.pgSlcCssClass =		f!=undefined && f.paging_slc_css_class!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   358
										? f.paging_slc_css_class :'pgSlc'; //css class for paging select element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   359
		this.pgInpCssClass =		f!=undefined && f.paging_inp_css_class!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   360
										? f.paging_inp_css_class :'pgNbInp'; //css class for paging input element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   361
		this.resultsPerPageSlc =	null; //results per page select element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   362
		this.resultsSlcCssClass =	f!=undefined && f.results_slc_css_class!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   363
										? f.results_slc_css_class :'rspg'; //defines css class for results per page select
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   364
		this.resultsSpanCssClass =	f!=undefined && f.results_span_css_class!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   365
										? f.results_span_css_class :'rspgSpan'; //css class for label preceding results per page select
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   366
		this.nbVisibleRows	=		0; //nb visible rows
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   367
		this.nbHiddenRows =			0; //nb hidden rows
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   368
		this.startPagingRow =		0; //1st row index of current page
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   369
		this.nbPages = 				0; //total nb of pages
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   370
		this.currentPageNb =		1; //current page nb
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   371
		this.btnNextPageText = 		f!=undefined && f.btn_next_page_text!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   372
										? f.btn_next_page_text : '>'; //defines next page button text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   373
		this.btnPrevPageText =		f!=undefined && f.btn_prev_page_text!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   374
										? f.btn_prev_page_text : '<'; //defines previous page button text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   375
		this.btnLastPageText =		f!=undefined && f.btn_last_page_text!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   376
										? f.btn_last_page_text : '>|'; //defines last page button text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   377
		this.btnFirstPageText =		f!=undefined && f.btn_first_page_text!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   378
										? f.btn_first_page_text : '|<' ; //defines first page button text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   379
		this.btnNextPageHtml =		f!=undefined && f.btn_next_page_html!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   380
										? f.btn_next_page_html : null; //defines next page button html
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   381
		this.btnPrevPageHtml =		f!=undefined && f.btn_prev_page_html!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   382
										? f.btn_prev_page_html : null; //defines previous page button html
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   383
		this.btnFirstPageHtml =		f!=undefined && f.btn_first_page_html!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   384
										? f.btn_first_page_html : null; //defines last page button html
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   385
		this.btnLastPageHtml =		f!=undefined && f.btn_last_page_html!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   386
										? f.btn_last_page_html : null; //defines previous page button html
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   387
		this.btnPageCssClass =		f!=undefined && f.paging_btn_css_class!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   388
										? f.paging_btn_css_class :'pgInp'; //css class for paging buttons (previous,next,etc.)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   389
		this.nbPgSpanCssClass = 	f!=undefined && f.nb_pages_css_class!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   390
										? f.nb_pages_css_class :'nbpg'; //css class for span containing tot nb of pages
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   391
		this.hasPagingBtns =		f!=undefined && f.paging_btns==false ? false : true; //enables/disables paging buttons
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   392
		this.pagingBtnEvents =		null; //stores paging buttons events
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   393
		this.pageSelectorType =		f!=undefined && f.page_selector_type!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   394
										? f.page_selector_type : this.fltTypeSlc; //defines previous page button html		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   395
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   396
		/*** webfx sort adapter ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   397
		this.sort =					f!=undefined && f.sort ? true : false; //enables/disables default table sorting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   398
		this.isSortEnabled =		false; //indicates if sort is set (used in tfAdapter.sortabletable.js)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   399
		this.sorted =				false; //indicates if tables was sorted
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   400
		this.sortConfig =			f!=undefined && f.sort_config!=undefined 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   401
										? f.sort_config : {};
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   402
		this.sortConfig.name =		f!=undefined && f.sort_config!=undefined && f.sort_config.name
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   403
										? f.sort_config.name : 'sortabletable';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   404
		this.sortConfig.src =		f!=undefined && f.sort_config!=undefined && f.sort_config.src
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   405
										? f.sort_config.src : 'sortabletable.js';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   406
		this.sortConfig.adapterSrc =f!=undefined && f.sort_config!=undefined && f.sort_config.adapter_src
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   407
										? f.sort_config.adapter_src : 'tfAdapter.sortabletable.js';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   408
		this.sortConfig.initialize =f!=undefined && f.sort_config!=undefined && f.sort_config.initialize
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   409
										? f.sort_config.initialize
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   410
										: function(o){ if(o.SetSortTable) o.SetSortTable(); };
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   411
		this.sortConfig.sortTypes =	f!=undefined && f.sort_config!=undefined && f.sort_config.sort_types
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   412
										? f.sort_config.sort_types : [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   413
		this.sortConfig.sortCol =	f!=undefined && f.sort_config!=undefined && f.sort_config.sort_col!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   414
										? f.sort_config.sort_col : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   415
		this.sortConfig.asyncSort =	f!=undefined && f.sort_config!=undefined && f.sort_config.async_sort
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   416
										? true : false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   417
		this.sortConfig.triggerIds =f!=undefined && f.sort_config!=undefined && f.sort_config.sort_trigger_ids
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   418
										? f.sort_config.sort_trigger_ids : [];									
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   419
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   420
		/*** onkeyup event ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   421
		this.onKeyUp =				f!=undefined && f.on_keyup ? true : false; //enables/disables onkeyup event, table is filtered when user stops typing
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   422
		this.onKeyUpDelay =			f!=undefined && f.on_keyup_delay!=undefined ? f.on_keyup_delay : 900; //onkeyup delay timer (msecs)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   423
		this.isUserTyping = 		null; //typing indicator
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   424
		this.onKeyUpTimer = 		undefined;		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   425
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   426
		/*** keyword highlighting ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   427
		this.highlightKeywords = 	f!=undefined && f.highlight_keywords ? true : false; //enables/disables keyword highlighting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   428
		this.highlightCssClass =	f!=undefined && f.highlight_css_class!=undefined //defines css class for highlighting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   429
										? f.highlight_css_class : 'keyword';	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   430
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   431
		/*** data types ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   432
		this.defaultDateType =		f!=undefined && f.default_date_type!=undefined //defines default date type (european DMY)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   433
										? f.default_date_type : 'DMY';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   434
		this.thousandsSeparator =	f!=undefined && f.thousands_separator!=undefined //defines default thousands separator 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   435
										? f.thousands_separator : ','; //US = ',' EU = '.'
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   436
		this.decimalSeparator = 	f!=undefined && f.decimal_separator!=undefined //defines default decimal separator 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   437
										? f.decimal_separator : '.'; //US & javascript = '.' EU = ','
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   438
		this.hasColNbFormat = 		f!=undefined && f.col_number_format ? true : false; //enables number format per column
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   439
		this.colNbFormat = 			f!=undefined && this.hasColNbFormat ? f.col_number_format : null; //array containing columns nb formats
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   440
		this.hasColDateType = 		f!=undefined && f.col_date_type ? true : false; //enables date type per column
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   441
		this.colDateType =			f!=undefined && this.hasColDateType ? f.col_date_type : null; //array containing columns date type
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   442
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   443
		/*** status messages ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   444
		this.msgFilter =			f!=undefined && f.msg_filter!=undefined //filtering
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   445
										? f.msg_filter : 'Filtering data...'; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   446
		this.msgPopulate =			f!=undefined && f.msg_populate!=undefined //populating drop-downs
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   447
										? f.msg_populate : 'Populating filter...'; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   448
		this.msgPopulateCheckList =	f!=undefined && f.msg_populate_checklist!=undefined //populating drop-downs
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   449
										? f.msg_populate_checklist : 'Populating list...'; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   450
		this.msgChangePage =		f!=undefined && f.msg_change_page!=undefined //changing paging page
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   451
										? f.msg_change_page : 'Collecting paging data...';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   452
		this.msgClear =				f!=undefined && f.msg_clear!=undefined //clearing filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   453
										? f.msg_clear : 'Clearing filters...';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   454
		this.msgChangeResults =		f!=undefined && f.msg_change_results!=undefined //changing nb results/page
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   455
										? f.msg_change_results : 'Changing results per page...';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   456
		this.msgResetValues =		f!=undefined && f.msg_reset_grid_values!=undefined //re-setting grid values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   457
										? f.msg_reset_grid_values : 'Re-setting filters values...';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   458
		this.msgResetPage =			f!=undefined && f.msg_reset_page!=undefined //re-setting page
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   459
										? f.msg_reset_page : 'Re-setting page...';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   460
		this.msgResetPageLength =	f!=undefined && f.msg_reset_page_length!=undefined //re-setting page length
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   461
										? f.msg_reset_page_length : 'Re-setting page length...';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   462
		this.msgSort =				f!=undefined && f.msg_sort!=undefined //table sorting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   463
										? f.msg_sort : 'Sorting data...';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   464
		this.msgLoadExtensions =	f!=undefined && f.msg_load_extensions!=undefined //table sorting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   465
										? f.msg_load_extensions : 'Loading extensions...';			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   466
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   467
		/*** ids prefixes ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   468
		this.prfxFlt =				'flt'; //filters (inputs - selects)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   469
		this.prfxValButton =		'btn'; //validation button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   470
		this.prfxInfDiv =			'inf_'; //container div for paging elements, rows counter etc.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   471
		this.prfxLDiv =				'ldiv_'; //left div
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   472
		this.prfxRDiv =				'rdiv_'; //right div
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   473
		this.prfxMDiv =				'mdiv_'; //middle div
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   474
		this.prfxContentDiv =		'cont_'; //table container if fixed headers enabled
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   475
		this.prfxCheckListDiv =		'chkdiv_'; //checklist filter container div
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   476
		this.prfxSlcPages =			'slcPages_'; //pages select
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   477
		this.prfxSlcResults = 		'slcResults_'; //results per page select
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   478
		this.prfxSlcResultsTxt =	'slcResultsTxt_'; //label preciding results per page select	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   479
		this.prfxBtnNextSpan =		'btnNextSpan_'; //span containing next page button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   480
		this.prfxBtnPrevSpan =		'btnPrevSpan_'; //span containing previous page button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   481
		this.prfxBtnLastSpan =		'btnLastSpan_'; //span containing last page button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   482
		this.prfxBtnFirstSpan =		'btnFirstSpan_'; //span containing first page button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   483
		this.prfxBtnNext =			'btnNext_'; //next button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   484
		this.prfxBtnPrev =			'btnPrev_'; //previous button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   485
		this.prfxBtnLast =			'btnLast_'; //last button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   486
		this.prfxBtnFirst =			'btnFirst_'; //first button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   487
		this.prfxPgSpan =			'pgspan_'; //span for tot nb pages
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   488
		this.prfxPgBeforeSpan =		'pgbeforespan_'; //span preceding pages select (contains 'Page')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   489
		this.prfxPgAfterSpan =		'pgafterspan_'; //span following pages select (contains ' of ')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   490
		this.prfxCounter =			'counter_'; //rows counter div
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   491
		this.prfxTotRows =			'totrows_span_'; //nb displayed rows label
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   492
		this.prfxTotRowsTxt =		'totRowsTextSpan_'; //label preceding nb rows label
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   493
		this.prfxResetSpan =		'resetspan_'; //span containing reset button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   494
		this.prfxLoader =			'load_'; //loader div
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   495
		this.prfxStatus =			'status_'; //status bar div
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   496
		this.prfxStatusSpan =		'statusSpan_'; //status bar label
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   497
		this.prfxStatusTxt =		'statusText_';//text preceding status bar label
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   498
		this.prfxCookieFltsValues =	'tf_flts_'; //filter values cookie
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   499
		this.prfxCookiePageNb =		'tf_pgnb_'; //page nb cookie
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   500
		this.prfxCookiePageLen = 	'tf_pglen_'; //page length cookie
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   501
		this.prfxMainTblCont =		'gridCont_'; //div containing grid elements if grid_layout true
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   502
		this.prfxTblCont =			'tblCont_'; //div containing table if grid_layout true
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   503
		this.prfxHeadTblCont = 		'tblHeadCont_'; //div containing headers table if grid_layout true
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   504
		this.prfxHeadTbl =			'tblHead_';	//headers' table if grid_layout true
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   505
		this.prfxGridFltTd =		'_td_'; //id of td containing the filter if grid_layout true
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   506
		this.prfxGridTh =			'tblHeadTh_'; //id of th containing column header if grid_layout true				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   507
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   508
		/*** cookies ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   509
		this.hasStoredValues =		false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   510
		this.rememberGridValues =	f!=undefined && f.remember_grid_values ? true : false; //remembers filters values on page load
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   511
		this.fltsValuesCookie =		this.prfxCookieFltsValues + this.id; //cookie storing filter values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   512
		this.rememberPageNb =		this.paging && f!=undefined && f.remember_page_number
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   513
										? true : false; //remembers page nb on page load	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   514
		this.pgNbCookie =			this.prfxCookiePageNb + this.id; //cookie storing page nb
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   515
		this.rememberPageLen =		this.paging && f!=undefined && f.remember_page_length
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   516
										? true : false; //remembers page length on page load
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   517
		this.pgLenCookie =			this.prfxCookiePageLen + this.id; //cookie storing page length
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   518
		this.cookieDuration =		f!=undefined && f.set_cookie_duration 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   519
										? parseInt(f.set_cookie_duration) :100000; //cookie duration
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   520
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   521
		/*** extensions ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   522
		this.hasExtensions =		f!=undefined && f.extensions ? true : false; //imports external script
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   523
		this.extensions =			(this.hasExtensions) ? f.extensions : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   524
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   525
		/***(deprecated: backward compatibility) ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   526
		this.hasBindScript =		f!=undefined && f.bind_script ? true : false; //imports external script
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   527
		this.bindScript =			(this.hasBindScript) ? f.bind_script : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   528
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   529
		/*** TF events ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   530
		var o = this;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   531
		this.Evt = {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   532
			name: {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   533
				filter: 'Filter',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   534
				populateselect: 'Populate',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   535
				populatechecklist: 'PopulateCheckList',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   536
				changepage: 'ChangePage',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   537
				clear: 'Clear',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   538
				changeresultsperpage: 'ChangeResults',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   539
				resetvalues: 'ResetValues',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   540
				resetpage: 'ResetPage',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   541
				resetpagelength: 'ResetPageLength',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   542
				sort: 'Sort',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   543
				loadextensions: 'LoadExtensions'			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   544
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   545
			_DetectKey: function(e)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   546
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   547
				- common fn that detects return key for a given
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   548
				element (onkeypress for inputs)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   549
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   550
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   551
				if(!o.enterKey) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   552
				var evt=(e)?e:(window.event)?window.event:null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   553
				if(evt)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   554
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   555
					var key=(evt.charCode)?evt.charCode:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   556
						((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   557
					if(key=='13')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   558
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   559
						o.Filter();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   560
					} else { 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   561
						o.isUserTyping = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   562
						window.clearInterval(o.onKeyUpTimer);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   563
						o.onKeyUpTimer = undefined; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   564
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   565
				}//if evt
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   566
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   567
			_OnKeyUp: function(e)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   568
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   569
				- onkeyup event for text filters 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   570
				(onKeyUp property)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   571
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   572
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   573
				if(!o.onKeyUp) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   574
				var evt=(e)?e:(window.event)?window.event:null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   575
				var key=(evt.charCode)?evt.charCode:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   576
						((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   577
				o.isUserTyping = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   578
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   579
				if( key!=13 && key!=9 && key!=27 && key!=38 && key!=40 )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   580
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   581
					function filter()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   582
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   583
						window.clearInterval(o.onKeyUpTimer);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   584
						o.onKeyUpTimer = undefined;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   585
						if( !o.isUserTyping )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   586
						{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   587
							o.Filter();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   588
							o.isUserTyping = null;			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   589
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   590
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   591
					if(o.onKeyUpTimer==undefined)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   592
						o.onKeyUpTimer = window.setInterval( filter, o.onKeyUpDelay );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   593
				} else { 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   594
					window.clearInterval(o.onKeyUpTimer); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   595
					o.onKeyUpTimer = undefined; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   596
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   597
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   598
			_OnKeyDown: function(e)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   599
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   600
				- onkeydown event for input filters 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   601
				(onKeyUp property)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   602
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   603
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   604
				if(!o.onKeyUp) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   605
				o.isUserTyping = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   606
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   607
			_OnInpBlur: function(e)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   608
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   609
				- onblur event for input filters (onKeyUp property)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   610
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   611
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   612
				if(!o.onKeyUp) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   613
				o.isUserTyping = false; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   614
				window.clearInterval(o.onKeyUpTimer);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   615
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   616
			_OnInpFocus: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   617
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   618
				- onfocus event for input filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   619
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   620
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   621
				o.activeFilterId=this.getAttribute('id');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   622
				o.activeFlt = tf_Id(o.activeFilterId);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   623
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   624
			_OnSlcFocus: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   625
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   626
				- onfocus event for select filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   627
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   628
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   629
				o.activeFilterId = this.getAttribute('id');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   630
				o.activeFlt = tf_Id(o.activeFilterId);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   631
				if(o.fillSlcOnDemand && this.getAttribute('filled') == '0')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   632
				{// select is populated when element has focus
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   633
					var ct = this.getAttribute('ct');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   634
					o.PopulateSelect(ct);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   635
					if(!tf_isIE) this.setAttribute('filled','1');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   636
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   637
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   638
			_OnSlcChange: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   639
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   640
				- onchange event for select filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   641
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   642
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   643
				if(o.onSlcChange) o.Filter();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   644
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   645
			_OnSlcBlur: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   646
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   647
				- onblur event for select filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   648
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   649
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   650
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   651
			_OnCheckListClick: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   652
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   653
				- onclick event for checklist filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   654
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   655
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   656
				if(o.fillSlcOnDemand && this.getAttribute('filled') == '0')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   657
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   658
					var ct = this.getAttribute('ct');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   659
					o.PopulateCheckList(ct);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   660
					o.checkListDiv[ct].onclick = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   661
					o.checkListDiv[ct].title = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   662
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   663
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   664
			_OnCheckListFocus: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   665
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   666
				- onclick event for checklist filter container
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   667
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   668
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   669
				o.activeFilterId = this.firstChild.getAttribute('id');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   670
				o.activeFlt = tf_Id(o.activeFilterId);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   671
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   672
			_OnBtnClick: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   673
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   674
				- onclick event for validation button 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   675
				(btn property)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   676
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   677
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   678
				o.Filter();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   679
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   680
			_OnSlcPagesChange: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   681
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   682
				- onchange event for paging select
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   683
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   684
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   685
				if(o.Evt._Paging._OnSlcPagesChangeEvt)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   686
					o.Evt._Paging._OnSlcPagesChangeEvt();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   687
				o.ChangePage();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   688
				this.blur();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   689
				//ie only: blur is not enough...
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   690
				if(this.parentNode && tf_isIE)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   691
					this.parentNode.focus();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   692
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   693
			_OnSlcPagesChangeEvt: null, //used by sort adapter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   694
			_OnSlcResultsChange: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   695
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   696
				- onchange event for results per page select
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   697
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   698
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   699
				o.ChangeResultsPerPage();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   700
				this.blur();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   701
				//ie only: blur is not enough...
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   702
				if(this.parentNode && tf_isIE) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   703
					this.parentNode.focus();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   704
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   705
			_Paging: {// paging buttons events
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   706
				slcIndex: function(){ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   707
					return (o.pageSelectorType==o.fltTypeSlc) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   708
						? o.pagingSlc.options.selectedIndex 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   709
						: parseInt(o.pagingSlc.value)-1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   710
				},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   711
				nbOpts: function(){ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   712
					return (o.pageSelectorType==o.fltTypeSlc) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   713
					? parseInt(o.pagingSlc.options.length)-1 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   714
					: (o.nbPages-1);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   715
				},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   716
				next: function(){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   717
					if(o.Evt._Paging.nextEvt) o.Evt._Paging.nextEvt();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   718
					var nextIndex = (o.Evt._Paging.slcIndex()<o.Evt._Paging.nbOpts()) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   719
						? o.Evt._Paging.slcIndex()+1 : 0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   720
					o.ChangePage(nextIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   721
				},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   722
				nextEvt: null, //used by sort adapter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   723
				prev: function(){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   724
					if(o.Evt._Paging.prevEvt) o.Evt._Paging.prevEvt();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   725
					var prevIndex = o.Evt._Paging.slcIndex()>0 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   726
						? o.Evt._Paging.slcIndex()-1 : o.Evt._Paging.nbOpts();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   727
					o.ChangePage(prevIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   728
				},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   729
				prevEvt: null, //used by sort adapter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   730
				last: function(){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   731
					if(o.Evt._Paging.lastEvt) o.Evt._Paging.lastEvt();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   732
					o.ChangePage(o.Evt._Paging.nbOpts());
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   733
				},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   734
				lastEvt: null, //used by sort adapter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   735
				first: function(){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   736
					if(o.Evt._Paging.firstEvt)  o.Evt._Paging.firstEvt();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   737
					o.ChangePage(0);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   738
				},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   739
				firstEvt: null, //used by sort adapter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   740
				_detectKey: function(e)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   741
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   742
					var evt=(e)?e:(window.event)?window.event:null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   743
					if(evt)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   744
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   745
						var key=(evt.charCode)?evt.charCode:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   746
							((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   747
						if(key=='13'){ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   748
							if(o.sorted){ o.Filter(); o.ChangePage(o.Evt._Paging.slcIndex()); }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   749
							else o.ChangePage();								
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   750
							this.blur(); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   751
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   752
					}//if evt
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   753
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   754
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   755
			_EnableSlc: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   756
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   757
				- onclick event slc parent node (enables filters)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   758
				IE only
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   759
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   760
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   761
				this.firstChild.disabled = false;							
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   762
				this.firstChild.focus();							
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   763
				this.onclick = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   764
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   765
			_Clear: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   766
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   767
				- clears filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   768
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   769
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   770
				o.ClearFilters();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   771
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   772
			_EnableSort: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   773
			/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   774
				- enables table sorting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   775
			=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   776
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   777
				if(tf_isImported(o.sortConfig.adapterSrc))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   778
					o.sortConfig.initialize.call(null,o);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   779
				else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   780
					o.IncludeFile(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   781
						o.sortConfig.name+'_adapter',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   782
						o.sortConfig.adapterSrc,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   783
						function(){ o.sortConfig.initialize.call(null,o); }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   784
					);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   785
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   786
		};
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   787
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   788
		/*** TF extensions ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   789
		this.Ext = {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   790
			list: {},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   791
			add: function(extName, extDesc, extPath, extCallBack)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   792
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   793
				var file = extPath.split('/')[extPath.split('/').length-1];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   794
				var re = new RegExp(file);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   795
				var path = extPath.replace(re,'');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   796
				o.Ext.list[extName] = { 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   797
					name: extName,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   798
					description: extDesc,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   799
					file: file,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   800
					path: path,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   801
					callback: extCallBack
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   802
				};
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   803
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   804
		};
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   805
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   806
    }//if tbl!=null		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   807
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   808
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   809
TF.prototype = {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   810
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   811
	AddGrid: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   812
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   813
		- adds row with filtering grid bar and sets grid 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   814
		behaviours and layout
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   815
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   816
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   817
		if(this.hasGrid) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   818
		this.refRow = this.startRow==undefined ? 2 : (this.startRow+1);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   819
		if(this.gridLayout) this.refRow = this.startRow==undefined ? 0 : this.startRow;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   820
		this.headersRow = (this.filtersRowIndex==0) ? 1 : 0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   821
		try{ this.nbCells = this.GetCellsNb(this.refRow) }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   822
		catch(e){ this.nbCells = this.GetCellsNb(0) }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   823
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   824
		var f = this.fObj==undefined ? {} : this.fObj;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   825
		var n = (this.singleSearchFlt) ? 1 : this.nbCells, inpclass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   826
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   827
		if(this.gridLayout)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   828
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   829
			this.isExternalFlt = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   830
			this.SetGridLayout();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   831
			//Once grid generated 1st filterable row is 0 again
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   832
			this.refRow = (tf_isIE || tf_isIE7) ? (this.refRow+1) : 0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   833
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   834
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   835
		if(this.loader) this.SetLoader();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   836
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   837
		if(this.hasResultsPerPage)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   838
		{ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   839
			this.resultsPerPage = f['results_per_page']!=undefined   
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   840
				? f['results_per_page'] : this.resultsPerPage;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   841
			if(this.resultsPerPage.length<2)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   842
				this.hasResultsPerPage = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   843
			else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   844
				this.pagingLength = this.resultsPerPage[1][0];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   845
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   846
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   847
		if(!this.fltGrid)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   848
		{//filters grid is not genetared
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   849
			this.refRow = (this.refRow-1);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   850
			if(this.gridLayout) this.refRow = 0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   851
			this.nbFilterableRows = this.GetRowsNb();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   852
			this.nbVisibleRows = this.nbFilterableRows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   853
			this.nbRows = this.nbFilterableRows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   854
		} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   855
			if(this.isFirstLoad)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   856
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   857
				if(!this.gridLayout){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   858
					var fltrow;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   859
					var thead = tf_Tag(this.tbl,'thead');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   860
					if( thead.length>0 )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   861
						fltrow = thead[0].insertRow(this.filtersRowIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   862
					else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   863
						fltrow = this.tbl.insertRow(this.filtersRowIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   864
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   865
					if(this.fixedHeaders) this.SetFixedHeaders();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   866
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   867
					fltrow.className = this.fltsRowCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   868
					//Disable for grid_layout
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   869
					if( this.isExternalFlt && !this.gridLayout ) fltrow.style.display = 'none';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   870
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   871
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   872
				this.nbFilterableRows = this.GetRowsNb();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   873
				this.nbVisibleRows = this.nbFilterableRows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   874
				this.nbRows = this.tbl.rows.length;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   875
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   876
				for(var i=0; i<n; i++)// this loop adds filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   877
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   878
					var fltcell = tf_CreateElm(this.fltCellTag);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   879
					if(this.singleSearchFlt) fltcell.colSpan = this.nbCells;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   880
					if(!this.gridLayout) fltrow.appendChild( fltcell );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   881
					inpclass = (i==n-1 && this.displayBtn) ? this.fltSmallCssClass : this.fltCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   882
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   883
					if( this['col'+i]==undefined )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   884
						this['col'+i] = (f['col_'+i]==undefined) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   885
							? this.fltTypeInp : f['col_'+i].tf_LCase();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   886
							
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   887
					if(this.singleSearchFlt)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   888
					{//only 1 input for single search
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   889
						this['col'+i] = this.fltTypeInp;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   890
						inpclass = this.singleFltCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   891
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   892
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   893
					if(this['col'+i]==this.fltTypeSlc || this['col'+i]==this.fltTypeMulti)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   894
					{//selects					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   895
						var slc = tf_CreateElm( this.fltTypeSlc,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   896
							['id',this.prfxFlt+i+'_'+this.id],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   897
							['ct',i],['filled','0'] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   898
						if(this['col'+i]==this.fltTypeMulti)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   899
						{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   900
							slc.multiple = this.fltTypeMulti;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   901
							slc.title = this.multipleSlcTooltip;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   902
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   903
						slc.className = (this['col'+i].tf_LCase()==this.fltTypeSlc) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   904
							? inpclass : this.fltMultiCssClass;// for ie<=6
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   905
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   906
						if( this.isExternalFlt && this.externalFltTgtIds && tf_Id(this.externalFltTgtIds[i]) )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   907
						{//filter is appended in desired element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   908
							tf_Id( this.externalFltTgtIds[i] ).appendChild(slc);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   909
							this.externalFltEls.push(slc);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   910
						} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   911
							fltcell.appendChild(slc);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   912
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   913
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   914
						this.fltIds.push(this.prfxFlt+i+'_'+this.id);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   915
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   916
						if(!this.fillSlcOnDemand) this.PopulateSelect(i);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   917
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   918
						slc.onkeypress = this.Evt._DetectKey;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   919
						slc.onchange = this.Evt._OnSlcChange;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   920
						slc.onfocus = this.Evt._OnSlcFocus;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   921
						slc.onblur = this.Evt._OnSlcBlur;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   922
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   923
						if(this.fillSlcOnDemand)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   924
						{//1st option is created here since PopulateSelect isn't invoked
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   925
							var opt0 = tf_CreateOpt(this.displayAllText,'');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   926
							slc.appendChild( opt0 );						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   927
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   928
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   929
						/* 	Code below for IE: it prevents select options to
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   930
							slide out before select it-self is populated.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   931
							This is an unexpeted behavior for users since at
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   932
							1st click options are empty. Work around: 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   933
							select is disabled and by clicking on element 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   934
							(parent td), users enable drop-down and select is
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   935
							populated at same time.  */
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   936
						if( this.fillSlcOnDemand && tf_isIE)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   937
						{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   938
							slc.disabled = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   939
							slc.title = this.activateSlcTooltip;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   940
							slc.parentNode.onclick = this.Evt._EnableSlc;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   941
							if( this['col'+i]==this.fltTypeMulti)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   942
								this.__deferMultipleSelection(slc,0);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   943
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   944
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   945
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   946
					else if( this['col'+i]==this.fltTypeCheckList )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   947
					{// checklist
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   948
						var divCont = tf_CreateElm('div',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   949
										['id',this.prfxCheckListDiv+i+'_'+this.id],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   950
										['ct',i],['filled','0'] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   951
						divCont.className = this.checkListDivCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   952
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   953
						if( this.isExternalFlt && this.externalFltTgtIds 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   954
							&& tf_Id(this.externalFltTgtIds[i]) )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   955
						{//filter is appended in desired element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   956
							tf_Id( this.externalFltTgtIds[i] ).appendChild(divCont);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   957
							this.externalFltEls.push(divCont);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   958
						} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   959
							fltcell.appendChild(divCont);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   960
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   961
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   962
						this.checkListDiv[i] = divCont;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   963
						this.fltIds.push(this.prfxFlt+i+'_'+this.id);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   964
						if(!this.fillSlcOnDemand) this.PopulateCheckList(i);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   965
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   966
						divCont.onclick = this.Evt._OnCheckListFocus;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   967
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   968
						if(this.fillSlcOnDemand)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   969
						{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   970
							divCont.onclick = this.Evt._OnCheckListClick;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   971
							divCont.appendChild(tf_CreateText(this.activateCheckListTxt));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   972
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   973
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   974
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   975
					else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   976
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   977
						var inptype;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   978
						(this['col'+i]==this.fltTypeInp) ? inptype='text' : inptype='hidden';//show/hide input	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   979
						var inp = tf_CreateElm( this.fltTypeInp,['id',this.prfxFlt+i+'_'+this.id],['type',inptype],['ct',i] );					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   980
						inp.className = inpclass;// for ie<=6
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   981
						inp.onfocus = this.Evt._OnInpFocus;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   982
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   983
						if( this.isExternalFlt && this.externalFltTgtIds && tf_Id(this.externalFltTgtIds[i]) )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   984
						{//filter is appended in desired element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   985
							tf_Id( this.externalFltTgtIds[i] ).appendChild(inp);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   986
							this.externalFltEls.push(inp);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   987
						} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   988
							fltcell.appendChild(inp);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   989
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   990
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   991
						this.fltIds.push(this.prfxFlt+i+'_'+this.id);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   992
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   993
						inp.onkeypress = this.Evt._DetectKey;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   994
						inp.onkeydown = this.Evt._OnKeyDown;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   995
						inp.onkeyup = this.Evt._OnKeyUp;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   996
						inp.onblur = this.Evt._OnInpBlur;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   997
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   998
						if(this.rememberGridValues)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
   999
						{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1000
							var flts = tf_ReadCookie(this.fltsValuesCookie); //reads the cookie
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1001
							var reg = new RegExp(',','g');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1002
							var flts_values = flts.split(reg); //creates an array with filters' values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1003
							if (flts_values[i]!=' ')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1004
								this.SetFilterValue(i,flts_values[i],false);					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1005
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1006
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1007
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1008
					if(i==n-1 && this.displayBtn)// this adds validation button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1009
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1010
						var btn = tf_CreateElm( this.fltTypeInp,['id',this.prfxValButton+i+'_'+this.id],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1011
												['type','button'], ['value',this.btnText] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1012
						btn.className = this.btnCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1013
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1014
						if( this.isExternalFlt && this.externalFltTgtIds && tf_Id(this.externalFltTgtIds[i]) ) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1015
						//filter is appended in desired element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1016
							tf_Id( this.externalFltTgtIds[i] ).appendChild(btn);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1017
						else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1018
							fltcell.appendChild(btn);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1019
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1020
						btn.onclick = this.Evt._OnBtnClick;				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1021
					}//if
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1022
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1023
				}// for i
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1024
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1025
			} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1026
				this.__resetGrid();			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1027
			}//if isFirstLoad
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1028
		}//if this.fltGrid
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1029
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1030
		/* Filter behaviours */
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1031
		if(this.rowsCounter) this.SetRowsCounter();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1032
		if(this.statusBar) this.SetStatusBar();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1033
		if(this.fixedHeaders && !this.isFirstLoad) this.SetFixedHeaders();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1034
		if(this.paging)	this.SetPaging();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1035
		if(this.hasResultsPerPage && this.paging) this.SetResultsPerPage();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1036
		if(this.btnReset) this.SetResetBtn();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1037
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1038
		if(this.hasColWidth && !this.gridLayout) this.SetColWidths();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1039
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1040
		if( this.alternateBgs && this.isStartBgAlternate )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1041
			this.SetAlternateRows(); //1st time only if no paging and rememberGridValues
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1042
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1043
		if(this.hasColOperation && this.fltGrid)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1044
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1045
			this.colOperation = f.col_operation;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1046
			this.SetColOperation();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1047
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1048
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1049
		if(this.sort) this.SetSort();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1050
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1051
		/* Deprecated Loads external script */
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1052
		if(this.hasBindScript)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1053
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1054
			if(this.bindScript['src']!=undefined)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1055
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1056
				var scriptPath = this.bindScript['src'];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1057
				var scriptName = (this.bindScript['name']!=undefined)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1058
									? this.bindScript['name'] : '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1059
				this.IncludeFile(scriptName,scriptPath,this.bindScript['target_fn']);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1060
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1061
		}//if bindScript
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1062
		/* */
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1063
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1064
		this.isFirstLoad = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1065
		this.hasGrid = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1066
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1067
		if( this.rememberGridValues ||
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1068
			this.rememberPageLen ||
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1069
			this.rememberPageNb )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1070
			this.ResetValues();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1071
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1072
		this.ShowLoader('none');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1073
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1074
		if(this.onFiltersLoaded)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1075
			this.onFiltersLoaded.call(null,this);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1076
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1077
		/* Loads extensions */
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1078
		this.LoadExtensions();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1079
		/* */
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1080
	},// AddGrid
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1081
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1082
	EvtManager: function( evt,s )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1083
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1084
		- TF events manager
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1085
		- Params: 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1086
			- event name (string)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1087
			- config object (optional literal object)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1088
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1089
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1090
		var o = this;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1091
		var slcIndex = (s!=undefined && s.slcIndex!=undefined) ? s.slcIndex : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1092
		var slcExternal = (s!=undefined && s.slcExternal!=undefined) ? s.slcExternal : false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1093
		var slcId = (s!=undefined && s.slcId!=undefined) ? s.slcId : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1094
		var pgIndex = (s!=undefined && s.pgIndex!=undefined) ? s.pgIndex : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1095
		function efx(){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1096
			if(evt!=undefined)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1097
			switch( evt )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1098
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1099
				case o.Evt.name.filter:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1100
					(o.isModFilterFn) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1101
						? o.modFilterFn.call(null,o)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1102
						: o._Filter();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1103
				break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1104
				case o.Evt.name.populateselect:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1105
					(o.refreshFilters) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1106
						? o._PopulateSelect(slcIndex,true) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1107
						: o._PopulateSelect(slcIndex,false,slcExternal,slcId);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1108
				break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1109
				case o.Evt.name.populatechecklist:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1110
					o._PopulateCheckList(slcIndex,slcExternal,slcId);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1111
				break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1112
				case o.Evt.name.changepage:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1113
					o._ChangePage(pgIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1114
				break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1115
				case o.Evt.name.clear:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1116
					o._ClearFilters(); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1117
					o._Filter();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1118
				break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1119
				case o.Evt.name.changeresultsperpage:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1120
					o._ChangeResultsPerPage();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1121
				break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1122
				case o.Evt.name.resetvalues:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1123
					o._ResetValues();					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1124
					o._Filter();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1125
				break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1126
				case o.Evt.name.resetpage:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1127
					o._ResetPage(o.pgNbCookie);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1128
				break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1129
				case o.Evt.name.resetpagelength:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1130
					o._ResetPageLength(o.pgLenCookie);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1131
				break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1132
				case o.Evt.name.sort:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1133
					void(0);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1134
				break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1135
				case o.Evt.name.loadextensions:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1136
					o._LoadExtensions();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1137
				break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1138
				default: //to be used by extensions events when needed
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1139
					o['_'+evt].call(null,o,s);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1140
				break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1141
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1142
			o.StatusMsg('');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1143
			o.ShowLoader('none');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1144
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1145
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1146
		if(this.loader || this.status || this.statusBar)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1147
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1148
			this.ShowLoader('');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1149
			this.StatusMsg(o['msg'+evt]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1150
			window.setTimeout(efx,this.execDelay);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1151
		} else efx();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1152
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1153
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1154
	LoadExtensions: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1155
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1156
		this.EvtManager(this.Evt.name.loadextensions);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1157
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1158
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1159
	_LoadExtensions: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1160
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1161
		- loads TF extensions
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1162
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1163
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1164
		if(!this.hasExtensions) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1165
		if((typeof this.extensions.name).tf_LCase() == 'object' && 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1166
				(typeof this.extensions.src).tf_LCase() == 'object')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1167
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1168
			var ext = this.extensions;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1169
			for(var e=0; e<ext.name.length; e++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1170
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1171
				var extPath = ext.src[e];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1172
				var extName = ext.name[e];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1173
				var extInit = (ext.initialize && ext.initialize[e]) ? ext.initialize[e] : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1174
				var extDesc = (ext.description && ext.description[e] ) ? ext.description[e] : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1175
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1176
				//Registers extension 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1177
				this.Ext.add(extName, extDesc, extPath, extInit);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1178
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1179
				if(tf_isImported(extPath) && extInit)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1180
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1181
					try{ extInit.call(null,this); }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1182
					catch(e){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1183
						var o = this;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1184
						function fn(){extInit.call(null,o);}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1185
						if(!tf_isIE) tf_addEvent(window,'load',fn); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1186
						else{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1187
							function testReady(){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1188
								if (document.readyState == "complete") 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1189
								{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1190
									fn(); clearInterval(s);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1191
								}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1192
							}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1193
							var s = setInterval(testReady,10);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1194
						}		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1195
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1196
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1197
				else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1198
					this.IncludeFile(extName,extPath,extInit);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1199
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1200
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1201
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1202
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1203
	RemoveGrid: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1204
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1205
		- removes a filter grid
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1206
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1207
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1208
		if( this.fltGrid && this.hasGrid )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1209
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1210
			var row = this.tbl.rows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1211
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1212
			this.RemovePaging();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1213
			this.RemoveStatusBar();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1214
			this.RemoveRowsCounter();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1215
			this.RemoveResetBtn();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1216
			this.RemoveResultsPerPage();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1217
			this.RemoveExternalFlts();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1218
			this.RemoveFixedHeaders();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1219
			this.RemoveTopDiv();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1220
			this.UnhighlightAll();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1221
			this.RemoveSort();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1222
			this.RemoveLoader();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1223
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1224
			for(var j=this.refRow; j<this.nbRows; j++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1225
			{//this loop shows all rows and removes validRow attribute			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1226
				row[j].style.display = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1227
				try
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1228
				{ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1229
					if( row[j].hasAttribute('validRow') ) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1230
						row[j].removeAttribute('validRow');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1231
				} //ie<=6 doesn't support hasAttribute method
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1232
				catch(e){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1233
					for( var x = 0; x < row[j].attributes.length; x++ ) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1234
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1235
						if( row[j].attributes[x].nodeName.tf_LCase()=='validrow' ) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1236
							row[j].removeAttribute('validRow');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1237
					}//for x
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1238
				}//catch(e)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1239
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1240
				//removes alterning colors
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1241
				this.RemoveRowBg(j);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1242
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1243
			}//for j
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1244
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1245
			if(this.fltGrid && !this.gridLayout)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1246
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1247
				this.fltGridEl = row[this.filtersRowIndex];			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1248
				this.tbl.deleteRow(this.filtersRowIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1249
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1250
			this.activeFlt = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1251
			this.isStartBgAlternate = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1252
			this.hasGrid = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1253
			this.RemoveGridLayout();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1254
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1255
		}//if this.fltGrid
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1256
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1257
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1258
	SetGridLayout: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1259
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1260
		- generates a grid with fixed headers
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1261
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1262
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1263
		if(!this.gridLayout) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1264
		if(!this.hasColWidth){// in case column widths are not set default width 100px
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1265
			this.colWidth = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1266
			for(var k=0; k<this.nbCells; k++){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1267
				var colW, cell = this.tbl.rows[this.gridHeadRowIndex].cells[k];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1268
				if(cell.width!='') colW = cell.width;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1269
				else if(cell.style.width!='') colW = parseInt(cell.style.width);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1270
				else colW = this.gridDefaultColWidth;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1271
				this.colWidth[k] = colW;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1272
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1273
			this.hasColWidth = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1274
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1275
		this.SetColWidths(this.gridHeadRowIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1276
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1277
		var tblW;//initial table width
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1278
		if(this.tbl.width!='') tblW = this.tbl.width;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1279
		else if(this.tbl.style.width!='') tblW = parseInt(this.tbl.style.width);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1280
		else tblW = this.tbl.clientWidth;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1281
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1282
		//Main container: it will contain all the elements
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1283
		this.tblMainCont = tf_CreateElm('div',['id', this.prfxMainTblCont + this.id]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1284
		this.tblMainCont.className = this.gridMainContCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1285
		if(this.gridWidth) this.tblMainCont.style.width = this.gridWidth;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1286
		this.tbl.parentNode.insertBefore(this.tblMainCont, this.tbl);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1287
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1288
		//Table container: div wrapping content table
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1289
		this.tblCont = tf_CreateElm('div',['id', this.prfxTblCont + this.id]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1290
		this.tblCont.className = this.gridContCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1291
		if(this.gridWidth) this.tblCont.style.width = this.gridWidth;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1292
		if(this.gridHeight) this.tblCont.style.height = this.gridHeight;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1293
		this.tbl.parentNode.insertBefore(this.tblCont, this.tbl);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1294
		var t = this.tbl.parentNode.removeChild(this.tbl);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1295
		this.tblCont.appendChild(t);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1296
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1297
		//In case table width is expressed in %
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1298
		if(this.tbl.style.width == '')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1299
			this.tbl.style.width = (this.__containsStr('%',tblW) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1300
									? this.tbl.clientWidth : tblW) + 'px';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1301
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1302
		var d = this.tblCont.parentNode.removeChild(this.tblCont);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1303
		this.tblMainCont.appendChild(d);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1304
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1305
		//Headers table container: div wrapping headers table
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1306
		this.headTblCont = tf_CreateElm('div',['id', this.prfxHeadTblCont + this.id]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1307
		this.headTblCont.className = this.gridHeadContCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1308
		if(this.gridWidth) this.headTblCont.style.width = this.gridWidth;		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1309
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1310
		//Headers table
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1311
		this.headTbl = tf_CreateElm('table',['id', this.prfxHeadTbl + this.id]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1312
		var tH = tf_CreateElm('tHead'); //IE<7 needs it
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1313
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1314
		//1st row should be headers row, ids are added if not set
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1315
		//Those ids are used by the sort feature
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1316
		var hRow = this.tbl.rows[this.gridHeadRowIndex];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1317
		var sortTriggers = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1318
		for(var n=0; n<this.nbCells; n++){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1319
			var cell = hRow.cells[n];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1320
			var thId = cell.getAttribute('id');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1321
			if(!thId || thId==''){ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1322
				thId = this.prfxGridTh+n+'_'+this.id 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1323
				cell.setAttribute('id', thId);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1324
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1325
			sortTriggers.push(thId);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1326
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1327
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1328
		//Filters row is created
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1329
		var filtersRow = tf_CreateElm('tr');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1330
		if(this.gridEnableFilters && this.fltGrid){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1331
			this.externalFltTgtIds = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1332
			for(var j=0; j<this.nbCells; j++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1333
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1334
				var fltTdId = this.prfxFlt+j+ this.prfxGridFltTd +this.id;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1335
				var c = tf_CreateElm(this.fltCellTag, ['id', fltTdId]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1336
				filtersRow.appendChild(c);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1337
				this.externalFltTgtIds[j] = fltTdId;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1338
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1339
		} 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1340
		//Headers row are moved from content table to headers table
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1341
		for(var i=0; i<this.gridHeadRows.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1342
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1343
			var headRow = this.tbl.rows[this.gridHeadRows[0]];			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1344
			tH.appendChild(headRow);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1345
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1346
		this.headTbl.appendChild(tH);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1347
		if(this.filtersRowIndex == 0) tH.insertBefore(filtersRow,hRow);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1348
		if(this.filtersRowIndex == 1) tH.appendChild(filtersRow);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1349
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1350
		this.headTblCont.appendChild(this.headTbl);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1351
		this.tblCont.parentNode.insertBefore(this.headTblCont, this.tblCont);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1352
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1353
		//THead needs to be removed in content table for sort feature
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1354
		var thead = tf_Tag(this.tbl,'thead');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1355
		if( thead.length>0 ) this.tbl.removeChild(thead[0]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1356
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1357
		//Headers table style
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1358
		this.headTbl.style.width = this.tbl.style.width;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1359
		this.headTbl.style.tableLayout = 'fixed';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1360
		this.tbl.style.tableLayout = 'fixed';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1361
		this.headTbl.cellPadding = this.tbl.cellPadding;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1362
		this.headTbl.cellSpacing = this.tbl.cellSpacing;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1363
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1364
		//Headers container width
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1365
		this.headTblCont.style.width = this.tblCont.clientWidth+'px';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1366
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1367
		//content table without headers needs col widths to be reset
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1368
		this.SetColWidths();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1369
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1370
		this.tbl.style.width = '';		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1371
		if(tf_isIE || tf_isIE7)	this.headTbl.style.width = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1372
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1373
		//scroll synchronisation
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1374
		var o = this; //TF object
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1375
		this.tblCont.onscroll = function(){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1376
			o.headTblCont.scrollLeft = this.scrollLeft;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1377
			var _o = this; //this = scroll element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1378
			//New pointerX calc taking into account scrollLeft
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1379
			if(!o.isPointerXOverwritten){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1380
				try{					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1381
					TF.Evt.pointerX = function(e)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1382
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1383
						e = e || window.event;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1384
						var scrollLeft = tf_StandardBody().scrollLeft + _o.scrollLeft;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1385
						return (e.pageX + _o.scrollLeft) || (e.clientX + scrollLeft);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1386
					}					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1387
					o.isPointerXOverwritten = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1388
				} catch(ee) {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1389
					o.isPointerXOverwritten = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1390
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1391
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1392
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1393
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1394
		/*** Default behaviours activation ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1395
		var f = this.fObj==undefined ? {} : this.fObj;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1396
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1397
		//Sort is enabled if not specified in config object
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1398
		if(f.sort != false){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1399
			this.sort = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1400
			this.sortConfig.asyncSort = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1401
			this.sortConfig.triggerIds = sortTriggers;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1402
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1403
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1404
		if(this.gridEnableColResizer){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1405
			if(!this.hasExtensions){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1406
				this.extensions = {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1407
					name:['ColumnsResizer'],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1408
					src:['TFExt_ColsResizer/TFExt_ColsResizer.js'], 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1409
					description:['Columns Resizing'],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1410
					initialize:[function(o){o.SetColsResizer('ColumnsResizer');}]
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1411
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1412
				this.hasExtensions = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1413
			} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1414
				if(!this.__containsStr('colsresizer',this.extensions.src.toString().tf_LCase())){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1415
					this.extensions.name.push('ColumnsResizer');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1416
					this.extensions.src.push('TFExt_ColsResizer/TFExt_ColsResizer.js');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1417
					this.extensions.description.push('Columns Resizing');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1418
					this.extensions.initialize.push(function(o){o.SetColsResizer('ColumnsResizer');});
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1419
				}  
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1420
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1421
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1422
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1423
		//Default columns resizer properties for grid layout
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1424
		f.col_resizer_cols_headers_table = this.headTbl.getAttribute('id');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1425
		f.col_resizer_cols_headers_index = this.gridHeadRowIndex;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1426
		f.col_resizer_width_adjustment = 0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1427
		f.col_enable_text_ellipsis = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1428
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1429
		//Cols generation for all browsers excepted IE<=7
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1430
		o.tblHasColTag = (tf_Tag(o.tbl,'col').length > 0) ? true : false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1431
		if(!tf_isIE && !tf_isIE7){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1432
			//Col elements are enough to keep column widths after sorting and filtering
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1433
			function createColTags(o)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1434
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1435
				if(!o) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1436
				for(var k=(o.nbCells-1); k>=0; k--)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1437
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1438
					var col = tf_CreateElm( 'col', ['id', o.id+'_col_'+k]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1439
					o.tbl.firstChild.parentNode.insertBefore(col,o.tbl.firstChild);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1440
					col.style.width = o.colWidth[k];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1441
					o.gridColElms[k] = col;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1442
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1443
				o.tblHasColTag = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1444
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1445
			if(!o.tblHasColTag) createColTags(o);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1446
			else{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1447
				var cols = tf_Tag(o.tbl,'col');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1448
				for(var i=0; i<o.nbCells; i++){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1449
					cols[i].setAttribute('id', o.id+'_col_'+i);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1450
					cols[i].style.width = o.colWidth[i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1451
					o.gridColElms.push(cols[i]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1452
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1453
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1454
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1455
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1456
		//IE <= 7 needs an additional row for widths as col element width is not enough...
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1457
		if(tf_isIE || tf_isIE7){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1458
			var tbody = tf_Tag(o.tbl,'tbody'), r;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1459
			if( tbody.length>0 ) r = tbody[0].insertRow(0);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1460
			else r = o.tbl.insertRow(0);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1461
			r.style.height = '0px';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1462
			for(var i=0; i<o.nbCells; i++){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1463
				var col = tf_CreateElm('td', ['id', o.id+'_col_'+i]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1464
				col.style.width = o.colWidth[i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1465
				o.tbl.rows[1].cells[i].style.width = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1466
				r.appendChild(col);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1467
				o.gridColElms.push(col);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1468
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1469
			this.hasGridWidthsRow = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1470
			//Data table row with widths expressed
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1471
			o.leadColWidthsRow = o.tbl.rows[0];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1472
			o.leadColWidthsRow.setAttribute('validRow','false');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1473
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1474
			var beforeSortFn = tf_isFn(f.on_before_sort) ? f.on_before_sort : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1475
			f.on_before_sort = function(o,colIndex){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1476
				o.leadColWidthsRow.setAttribute('validRow','false');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1477
				if(beforeSortFn!=null) beforeSortFn.call(null,o,colIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1478
			} 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1479
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1480
			var afterSortFn = tf_isFn(f.on_after_sort) ? f.on_after_sort : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1481
			f.on_after_sort = function(o,colIndex){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1482
				if(o.leadColWidthsRow.rowIndex != 0){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1483
					var r = o.leadColWidthsRow;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1484
					if( tbody.length>0 )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1485
						tbody[0].moveRow(o.leadColWidthsRow.rowIndex, 0);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1486
					else o.tbl.moveRow(o.leadColWidthsRow.rowIndex, 0);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1487
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1488
				if(afterSortFn!=null) afterSortFn.call(null,o,colIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1489
			}	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1490
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1491
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1492
		var afterColResizedFn = tf_isFn(f.on_after_col_resized) ? f.on_after_col_resized : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1493
		f.on_after_col_resized = function(o,colIndex){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1494
			if(colIndex==undefined) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1495
			var w = o.crWColsRow.cells[colIndex].style.width;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1496
			var col = o.gridColElms[colIndex];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1497
			col.style.width = w;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1498
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1499
			var thCW = o.crWColsRow.cells[colIndex].clientWidth;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1500
			var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1501
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1502
			if(tf_isIE || tf_isIE7)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1503
				o.tbl.style.width = o.headTbl.clientWidth+'px';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1504
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1505
			if(thCW != tdCW && !tf_isIE && !tf_isIE7)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1506
				o.headTbl.style.width = o.tbl.clientWidth+'px'; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1507
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1508
			if(afterColResizedFn!=null) afterColResizedFn.call(null,o,colIndex);			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1509
		}	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1510
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1511
		if(this.tbl.clientWidth != this.headTbl.clientWidth)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1512
			this.tbl.style.width = this.headTbl.clientWidth+'px';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1513
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1514
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1515
	RemoveGridLayout: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1516
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1517
		if(!this.gridLayout) return;		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1518
		var t = this.tbl.parentNode.removeChild(this.tbl);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1519
		this.tblMainCont.parentNode.insertBefore(t, this.tblMainCont);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1520
		this.tblMainCont.parentNode.removeChild( this.tblMainCont );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1521
		this.tblMainCont = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1522
		this.headTblCont = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1523
		this.headTbl = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1524
		this.tblCont = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1525
		//TO DO: alternative solution for Firefox
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1526
		this.tbl.outerHTML = this.sourceTblHtml;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1527
		this.tbl = tf_Id(this.id);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1528
		this.isFirstLoad = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1529
		this.activeFlt = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1530
		this.isStartBgAlternate = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1531
		this.hasGrid = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1532
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1533
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1534
	SetTopDiv: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1535
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1536
		- Generates div above table where paging,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1537
		reset button, rows counter label etc. are placed
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1538
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1539
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1540
		if( this.infDiv!=null ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1541
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1542
		/*** container div ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1543
		var infdiv = tf_CreateElm( 'div',['id',this.prfxInfDiv+this.id] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1544
		infdiv.className = this.infDivCssClass;// setAttribute method doesn't seem to work on ie<=6
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1545
		if(this.fixedHeaders && this.contDiv)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1546
			this.contDiv.parentNode.insertBefore(infdiv, this.contDiv);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1547
		else if(this.gridLayout){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1548
			this.tblMainCont.appendChild(infdiv);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1549
			infdiv.className = this.gridInfDivCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1550
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1551
		else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1552
			this.tbl.parentNode.insertBefore(infdiv, this.tbl);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1553
		this.infDiv = tf_Id( this.prfxInfDiv+this.id );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1554
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1555
		/*** left div containing rows # displayer ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1556
		var ldiv = tf_CreateElm( 'div',['id',this.prfxLDiv+this.id] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1557
		ldiv.className = this.lDivCssClass;/*'ldiv'*/;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1558
		infdiv.appendChild(ldiv);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1559
		this.lDiv = tf_Id( this.prfxLDiv+this.id );		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1560
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1561
		/*** 	right div containing reset button 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1562
				+ nb results per page select 	***/	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1563
		var rdiv = tf_CreateElm( 'div',['id',this.prfxRDiv+this.id] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1564
		rdiv.className = this.rDivCssClass/*'rdiv'*/;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1565
		infdiv.appendChild(rdiv);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1566
		this.rDiv = tf_Id( this.prfxRDiv+this.id );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1567
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1568
		/*** mid div containing paging elements ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1569
		var mdiv = tf_CreateElm( 'div',['id',this.prfxMDiv+this.id] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1570
		mdiv.className = this.mDivCssClass/*'mdiv'*/;						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1571
		infdiv.appendChild(mdiv);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1572
		this.mDiv = tf_Id( this.prfxMDiv+this.id );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1573
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1574
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1575
	RemoveTopDiv: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1576
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1577
		- Removes div above table where paging,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1578
		reset button, rows counter label etc. are placed
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1579
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1580
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1581
		if( this.infDiv==null ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1582
		this.infDiv.parentNode.removeChild( this.infDiv );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1583
		this.infDiv = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1584
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1585
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1586
	SetFixedHeaders: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1587
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1588
		- CSS solution making headers fixed
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1589
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1590
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1591
		if((!this.hasGrid && !this.isFirstLoad) || !this.fixedHeaders) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1592
		if(this.contDiv) return;	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1593
		var thead = tf_Tag(this.tbl,'thead');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1594
		if( thead.length==0 ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1595
		var tbody = tf_Tag(this.tbl,'tbody');	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1596
		if( tbody[0].clientHeight!=0 ) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1597
		{//firefox returns tbody height
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1598
			//previous values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1599
			this.prevTBodyH = tbody[0].clientHeight;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1600
			this.prevTBodyOverflow = tbody[0].style.overflow;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1601
			this.prevTBodyOverflowX = tbody[0].style.overflowX;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1602
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1603
			tbody[0].style.height = this.tBodyH+'px';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1604
			tbody[0].style.overflow = 'auto';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1605
			tbody[0].style.overflowX = 'hidden';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1606
		} else { //IE returns 0
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1607
			// cont div is added to emulate fixed headers behaviour
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1608
			var contDiv = tf_CreateElm( 'div',['id',this.prfxContentDiv+this.id] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1609
			contDiv.className = this.contDivCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1610
			this.tbl.parentNode.insertBefore(contDiv, this.tbl);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1611
			contDiv.appendChild(this.tbl);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1612
			this.contDiv = tf_Id(this.prfxContentDiv+this.id);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1613
			//prevents headers moving during window scroll (IE)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1614
			this.contDiv.style.position = 'relative';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1615
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1616
			var theadH = 0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1617
			var theadTr = tf_Tag(thead[0],'tr');	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1618
			for(var i=0; i<theadTr.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1619
			{//css below emulates fixed headers on IE<=6
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1620
				theadTr[i].style.cssText += 'position:relative; ' +
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1621
											'top:expression(offsetParent.scrollTop);';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1622
				theadH += parseInt(theadTr[i].clientHeight);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1623
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1624
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1625
			this.contDiv.style.height = (this.tBodyH+theadH)+'px';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1626
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1627
			var tfoot = tf_Tag(this.tbl,'tfoot');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1628
			if( tfoot.length==0 ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1629
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1630
			var tfootTr = tf_Tag(tfoot[0],'tr');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1631
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1632
			for(var j=0; j<tfootTr.length; j++)//css below emulates fixed footer on IE<=6
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1633
				tfootTr[j].style.cssText += 'position:relative; overflow-x: hidden; ' +
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1634
											'top: expression(parentNode.parentNode.offsetHeight >= ' +
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1635
											'offsetParent.offsetHeight ? 0 - parentNode.parentNode.offsetHeight + '+ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1636
											'offsetParent.offsetHeight + offsetParent.scrollTop : 0);';		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1637
		}	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1638
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1639
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1640
	RemoveFixedHeaders: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1641
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1642
		- Removes fixed headers
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1643
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1644
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1645
		if(!this.hasGrid || !this.fixedHeaders ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1646
		if( this.contDiv )//IE additional div
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1647
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1648
			this.contDiv.parentNode.insertBefore(this.tbl, this.contDiv);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1649
			this.contDiv.parentNode.removeChild( this.contDiv );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1650
			this.contDiv = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1651
			var thead = tf_Tag(this.tbl,'thead');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1652
			if( thead.length==0 ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1653
			var theadTr = tf_Tag(thead[0],'tr');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1654
			if( theadTr.length==0 ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1655
			for(var i=0; i<theadTr.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1656
				theadTr[i].style.cssText = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1657
			var tfoot = tf_Tag(this.tbl,'tfoot');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1658
			if( tfoot.length==0 ) return;		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1659
			var tfootTr = tf_Tag(tfoot[0],'tr');	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1660
			for(var j=0; j<tfootTr.length; j++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1661
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1662
				tfootTr[j].style.position = 'relative';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1663
				tfootTr[j].style.top = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1664
				tfootTr[j].style.overeflowX = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1665
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1666
		} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1667
			var tbody = tf_Tag(this.tbl,'tbody');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1668
			if( tbody.length==0 ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1669
			tbody[0].style.height = this.prevTBodyH+'px';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1670
			tbody[0].style.overflow = this.prevTBodyOverflow;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1671
			tbody[0].style.overflowX = this.prevTBodyOverflowX;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1672
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1673
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1674
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1675
	SetPaging: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1676
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1677
		- Generates paging elements:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1678
			- pages drop-down list
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1679
			- previous, next, first, last buttons
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1680
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1681
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1682
		if(!this.hasGrid && !this.isFirstLoad) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1683
		if(!this.paging || (!this.isPagingRemoved && !this.isFirstLoad)) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1684
		var start_row = this.refRow;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1685
		var nrows = this.nbRows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1686
		this.nbPages = Math.ceil( (nrows-start_row)/this.pagingLength );//calculates page nb
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1687
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1688
		// Paging drop-down list selector
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1689
		if(this.pageSelectorType == this.fltTypeSlc)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1690
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1691
			var slcPages = tf_CreateElm( this.fltTypeSlc, ['id',this.prfxSlcPages+this.id] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1692
			slcPages.className = this.pgSlcCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1693
			slcPages.onchange = this.Evt._OnSlcPagesChange;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1694
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1695
		// Paging input selector
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1696
		if(this.pageSelectorType == this.fltTypeInp)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1697
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1698
			var slcPages = tf_CreateElm( 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1699
				this.fltTypeInp, 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1700
				['id',this.prfxSlcPages+this.id],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1701
				['value',this.currentPageNb]
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1702
			);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1703
			slcPages.className = this.pgInpCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1704
			slcPages.onkeypress = this.Evt._Paging._detectKey;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1705
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1706
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1707
		var btnNextSpan, btnPrevSpan, btnLastSpan, btnFirstSpan;// btns containers
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1708
		btnNextSpan = tf_CreateElm('span',['id',this.prfxBtnNextSpan+this.id]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1709
		btnPrevSpan = tf_CreateElm('span',['id',this.prfxBtnPrevSpan+this.id]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1710
		btnLastSpan = tf_CreateElm('span',['id',this.prfxBtnLastSpan+this.id]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1711
		btnFirstSpan = tf_CreateElm('span',['id',this.prfxBtnFirstSpan+this.id]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1712
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1713
		if(this.hasPagingBtns)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1714
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1715
			if(this.btnNextPageHtml==null)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1716
			{// Next button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1717
				var btn_next = tf_CreateElm( this.fltTypeInp,['id',this.prfxBtnNext+this.id],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1718
					['type','button'],['value',this.btnNextPageText],['title','Next'] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1719
				btn_next.className = this.btnPageCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1720
				btn_next.onclick = this.Evt._Paging.next;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1721
				btnNextSpan.appendChild(btn_next);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1722
			} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1723
				btnNextSpan.innerHTML = this.btnNextPageHtml;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1724
				btnNextSpan.onclick = this.Evt._Paging.next;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1725
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1726
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1727
			if(this.btnPrevPageHtml==null)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1728
			{// Previous button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1729
				var btn_prev = tf_CreateElm( this.fltTypeInp,['id',this.prfxBtnPrev+this.id],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1730
					['type','button'],['value',this.btnPrevPageText],['title','Previous'] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1731
				btn_prev.className = this.btnPageCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1732
				btn_prev.onclick = this.Evt._Paging.prev;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1733
				btnPrevSpan.appendChild(btn_prev);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1734
			} else { 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1735
				btnPrevSpan.innerHTML = this.btnPrevPageHtml;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1736
				btnPrevSpan.onclick = this.Evt._Paging.prev;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1737
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1738
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1739
			if(this.btnLastPageHtml==null)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1740
			{// Last button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1741
				var btn_last = tf_CreateElm( this.fltTypeInp,['id',this.prfxBtnLast+this.id],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1742
					['type','button'],['value',this.btnLastPageText],['title','Last'] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1743
				btn_last.className = this.btnPageCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1744
				btn_last.onclick = this.Evt._Paging.last;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1745
				btnLastSpan.appendChild(btn_last);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1746
			} else { 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1747
				btnLastSpan.innerHTML = this.btnLastPageHtml;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1748
				btnLastSpan.onclick = this.Evt._Paging.last;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1749
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1750
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1751
			if(this.btnFirstPageHtml==null)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1752
			{// First button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1753
				var btn_first = tf_CreateElm( this.fltTypeInp,['id',this.prfxBtnFirst+this.id],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1754
					['type','button'],['value',this.btnFirstPageText],['title','First'] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1755
				btn_first.className = this.btnPageCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1756
				btn_first.onclick = this.Evt._Paging.first;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1757
				btnFirstSpan.appendChild(btn_first);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1758
			} else { 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1759
				btnFirstSpan.innerHTML = this.btnFirstPageHtml;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1760
				btnFirstSpan.onclick = this.Evt._Paging.first;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1761
			}			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1762
		}//if this.hasPagingBtns
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1763
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1764
		// paging elements (buttons+drop-down list) are added to defined element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1765
		if(this.pagingTgtId==null) this.SetTopDiv();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1766
		var targetEl = ( this.pagingTgtId==null ) ? this.mDiv : tf_Id( this.pagingTgtId );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1767
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1768
		/***	if paging previously removed this prevents IE memory leak with removeChild 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1769
				used in RemovePaging method. For more info refer to
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1770
				http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2840253&SiteID=1	***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1771
		if ( targetEl.innerHTML!='' ) targetEl.innerHTML = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1772
		/*** ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1773
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1774
		targetEl.appendChild(btnPrevSpan);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1775
		targetEl.appendChild(btnFirstSpan);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1776
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1777
		var pgBeforeSpan = tf_CreateElm( 'span',['id',this.prfxPgBeforeSpan+this.id] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1778
		pgBeforeSpan.appendChild( tf_CreateText(' Page ') );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1779
		pgBeforeSpan.className = this.nbPgSpanCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1780
		targetEl.appendChild(pgBeforeSpan);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1781
		targetEl.appendChild(slcPages);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1782
		var pgAfterSpan = tf_CreateElm( 'span',['id',this.prfxPgAfterSpan+this.id] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1783
		pgAfterSpan.appendChild( tf_CreateText(' of ') );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1784
		pgAfterSpan.className = this.nbPgSpanCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1785
		targetEl.appendChild(pgAfterSpan)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1786
		var pgspan = tf_CreateElm( 'span',['id',this.prfxPgSpan+this.id] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1787
		pgspan.className = this.nbPgSpanCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1788
		pgspan.appendChild( tf_CreateText(' '+this.nbPages+' ') );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1789
		targetEl.appendChild(pgspan);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1790
		targetEl.appendChild(btnLastSpan);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1791
		targetEl.appendChild(btnNextSpan);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1792
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1793
		this.pagingSlc = tf_Id(this.prfxSlcPages+this.id); //to be easily re-used
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1794
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1795
		// if this.rememberGridValues==true this.SetPagingInfo() is called
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1796
		// in ResetGridValues() method
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1797
		if( !this.rememberGridValues || this.isPagingRemoved )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1798
			this.SetPagingInfo();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1799
		if( !this.fltGrid )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1800
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1801
			this.ValidateAllRows();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1802
			this.SetPagingInfo(this.validRowsIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1803
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1804
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1805
		this.pagingBtnEvents = this.Evt._Paging;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1806
		this.isPagingRemoved = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1807
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1808
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1809
	RemovePaging: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1810
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1811
		- Removes paging elements
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1812
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1813
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1814
		if(!this.hasGrid) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1815
		if( this.pagingSlc==null ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1816
		var btnNextSpan, btnPrevSpan, btnLastSpan, btnFirstSpan;// btns containers
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1817
		var pgBeforeSpan, pgAfterSpan, pgspan;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1818
		btnNextSpan = tf_Id(this.prfxBtnNextSpan+this.id);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1819
		btnPrevSpan = tf_Id(this.prfxBtnPrevSpan+this.id);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1820
		btnLastSpan = tf_Id(this.prfxBtnLastSpan+this.id);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1821
		btnFirstSpan = tf_Id(this.prfxBtnFirstSpan+this.id);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1822
		pgBeforeSpan = tf_Id(this.prfxPgBeforeSpan+this.id);//span containing 'Page' text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1823
		pgAfterSpan = tf_Id(this.prfxPgAfterSpan+this.id);//span containing 'of' text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1824
		pgspan = tf_Id(this.prfxPgSpan+this.id);//span containing nb of pages
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1825
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1826
		this.pagingSlc.parentNode.removeChild(this.pagingSlc);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1827
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1828
		if( btnNextSpan!=null )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1829
			btnNextSpan.parentNode.removeChild( btnNextSpan );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1830
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1831
		if( btnPrevSpan!=null )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1832
			btnPrevSpan.parentNode.removeChild( btnPrevSpan );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1833
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1834
		if( btnLastSpan!=null )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1835
			btnLastSpan.parentNode.removeChild( btnLastSpan );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1836
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1837
		if( btnFirstSpan!=null )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1838
			btnFirstSpan.parentNode.removeChild( btnFirstSpan );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1839
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1840
		if( pgBeforeSpan!=null )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1841
			pgBeforeSpan.parentNode.removeChild( pgBeforeSpan );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1842
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1843
		if( pgAfterSpan!=null )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1844
			pgAfterSpan.parentNode.removeChild( pgAfterSpan );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1845
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1846
		if( pgspan!=null )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1847
			pgspan.parentNode.removeChild( pgspan );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1848
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1849
		this.pagingBtnEvents = null;	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1850
		this.pagingSlc = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1851
		this.isPagingRemoved = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1852
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1853
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1854
	SetRowsCounter: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1855
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1856
		- Generates rows counter label
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1857
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1858
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1859
		if(!this.hasGrid && !this.isFirstLoad) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1860
		if( this.rowsCounterSpan!=null ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1861
		var countDiv = tf_CreateElm( 'div',['id',this.prfxCounter+this.id] ); //rows counter container
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1862
		countDiv.className = this.totRowsCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1863
		var countSpan = tf_CreateElm( 'span',['id',this.prfxTotRows+this.id] ); //rows counter label
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1864
		var countText = tf_CreateElm( 'span',['id',this.prfxTotRowsTxt+this.id] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1865
		countText.appendChild( tf_CreateText(this.rowsCounterText) );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1866
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1867
		// counter is added to defined element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1868
		if(this.rowsCounterTgtId==null) this.SetTopDiv();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1869
		var targetEl = ( this.rowsCounterTgtId==null ) ? this.lDiv : tf_Id( this.rowsCounterTgtId );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1870
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1871
		//IE only: clears all for sure
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1872
		if(this.rowsCounterDiv && tf_isIE)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1873
			this.rowsCounterDiv.outerHTML = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1874
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1875
		if( this.rowsCounterTgtId==null )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1876
		{//default container: 'lDiv'
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1877
			countDiv.appendChild(countText);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1878
			countDiv.appendChild(countSpan);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1879
			targetEl.appendChild(countDiv);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1880
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1881
		else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1882
		{// custom container, no need to append statusDiv
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1883
			targetEl.appendChild(countText);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1884
			targetEl.appendChild(countSpan);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1885
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1886
		this.rowsCounterDiv = tf_Id( this.prfxCounter+this.id );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1887
		this.rowsCounterSpan = tf_Id( this.prfxTotRows+this.id );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1888
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1889
		this.RefreshNbRows();	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1890
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1891
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1892
	RemoveRowsCounter: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1893
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1894
		- Removes rows counter label
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1895
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1896
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1897
		if(!this.hasGrid) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1898
		if( this.rowsCounterSpan==null ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1899
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1900
		if(this.rowsCounterTgtId==null && this.rowsCounterDiv)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1901
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1902
			//IE only: clears all for sure
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1903
			if(tf_isIE) this.rowsCounterDiv.outerHTML = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1904
			else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1905
				this.rowsCounterDiv.parentNode.removeChild( 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1906
					this.rowsCounterDiv
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1907
				);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1908
		} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1909
			tf_Id( this.rowsCounterTgtId ).innerHTML = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1910
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1911
		this.rowsCounterSpan = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1912
		this.rowsCounterDiv = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1913
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1914
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1915
	SetStatusBar: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1916
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1917
		- Generates status bar label
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1918
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1919
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1920
		if(!this.hasGrid && !this.isFirstLoad) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1921
		var statusDiv = tf_CreateElm( 'div',['id',this.prfxStatus+this.id] ); //status bar container
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1922
		statusDiv.className = this.statusBarCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1923
		var statusSpan = tf_CreateElm( 'span',['id',this.prfxStatusSpan+this.id] ); //status bar label
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1924
		var statusSpanText = tf_CreateElm( 'span',['id',this.prfxStatusTxt+this.id] );//preceding text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1925
		statusSpanText.appendChild( tf_CreateText(this.statusBarText) );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1926
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1927
		// target element container
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1928
		if(this.statusBarTgtId==null) this.SetTopDiv();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1929
		var targetEl = ( this.statusBarTgtId==null ) ? this.lDiv : tf_Id( this.statusBarTgtId );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1930
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1931
		if(this.statusBarDiv && tf_isIE)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1932
			this.statusBarDiv.outerHTML = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1933
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1934
		if( this.statusBarTgtId==null )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1935
		{//default container: 'lDiv'
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1936
			statusDiv.appendChild(statusSpanText);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1937
			statusDiv.appendChild(statusSpan);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1938
			targetEl.appendChild(statusDiv);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1939
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1940
		else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1941
		{// custom container, no need to append statusDiv
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1942
			targetEl.appendChild(statusSpanText);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1943
			targetEl.appendChild(statusSpan);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1944
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1945
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1946
		this.statusBarDiv = tf_Id( this.prfxStatus+this.id );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1947
		this.statusBarSpan = tf_Id( this.prfxStatusSpan+this.id );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1948
		this.statusBarSpanText = tf_Id( this.prfxStatusTxt+this.id );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1949
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1950
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1951
	RemoveStatusBar: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1952
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1953
		- Removes status bar div
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1954
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1955
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1956
		if(!this.hasGrid) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1957
		if(this.statusBarDiv)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1958
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1959
			this.statusBarDiv.innerHTML = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1960
			this.statusBarDiv.parentNode.removeChild( 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1961
				this.statusBarDiv
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1962
			);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1963
			this.statusBarSpan = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1964
			this.statusBarSpanText = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1965
			this.statusBarDiv = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1966
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1967
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1968
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1969
	SetResultsPerPage: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1970
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1971
		- Generates results per page select + label
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1972
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1973
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1974
		if(!this.hasGrid && !this.isFirstLoad) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1975
		if( this.resultsPerPageSlc!=null || this.resultsPerPage==null ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1976
		var slcR = tf_CreateElm( this.fltTypeSlc,['id',this.prfxSlcResults+this.id] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1977
		slcR.className = this.resultsSlcCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1978
		var slcRText = this.resultsPerPage[0], slcROpts = this.resultsPerPage[1];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1979
		var slcRSpan = tf_CreateElm( 'span',['id',this.prfxSlcResultsTxt+this.id] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1980
		slcRSpan.className = this.resultsSpanCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1981
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1982
		// results per page select is added to defined element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1983
		if(this.resultsPerPageTgtId==null) this.SetTopDiv();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1984
		var targetEl = ( this.resultsPerPageTgtId==null ) ? this.rDiv : tf_Id( this.resultsPerPageTgtId );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1985
		slcRSpan.appendChild(tf_CreateText(slcRText));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1986
		targetEl.appendChild(slcRSpan);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1987
		targetEl.appendChild(slcR);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1988
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1989
		this.resultsPerPageSlc = tf_Id(this.prfxSlcResults+this.id);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1990
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1991
		for(var r=0; r<slcROpts.length; r++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1992
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1993
			var currOpt = new Option(slcROpts[r],slcROpts[r],false,false);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1994
			this.resultsPerPageSlc.options[r] = currOpt;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1995
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1996
		slcR.onchange = this.Evt._OnSlcResultsChange;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1997
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1998
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  1999
	RemoveResultsPerPage: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2000
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2001
		- Removes results per page select + label
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2002
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2003
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2004
		if(!this.hasGrid) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2005
		if( this.resultsPerPageSlc==null || this.resultsPerPage==null ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2006
		var slcR, slcRSpan;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2007
		slcR = this.resultsPerPageSlc;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2008
		slcRSpan = tf_Id( this.prfxSlcResultsTxt+this.id );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2009
		if( slcR!=null )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2010
			slcR.parentNode.removeChild( slcR );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2011
		if( slcRSpan!=null )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2012
			slcRSpan.parentNode.removeChild( slcRSpan );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2013
		this.resultsPerPageSlc = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2014
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2015
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2016
	SetResetBtn: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2017
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2018
		- Generates reset button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2019
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2020
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2021
		if(!this.hasGrid && !this.isFirstLoad) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2022
		if( this.btnResetEl!=null ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2023
		var resetspan = tf_CreateElm('span',['id',this.prfxResetSpan+this.id]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2024
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2025
		// reset button is added to defined element
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2026
		if(this.btnResetTgtId==null) this.SetTopDiv();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2027
		var targetEl = ( this.btnResetTgtId==null ) ? this.rDiv : tf_Id( this.btnResetTgtId );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2028
		targetEl.appendChild(resetspan);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2029
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2030
		if(this.btnResetHtml==null)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2031
		{	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2032
			var fltreset = tf_CreateElm( 'a', ['href','javascript:void(0);'] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2033
			fltreset.className = this.btnResetCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2034
			fltreset.appendChild(tf_CreateText(this.btnResetText));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2035
			resetspan.appendChild(fltreset);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2036
			fltreset.onclick = this.Evt._Clear;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2037
		} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2038
			resetspan.innerHTML = this.btnResetHtml;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2039
			var resetEl = resetspan.firstChild;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2040
			resetEl.onclick = this.Evt._Clear;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2041
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2042
		this.btnResetEl = tf_Id(this.prfxResetSpan+this.id).firstChild;	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2043
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2044
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2045
	RemoveResetBtn: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2046
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2047
		- Removes reset button
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2048
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2049
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2050
		if(!this.hasGrid) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2051
		if( this.btnResetEl==null ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2052
		var resetspan = tf_Id(this.prfxResetSpan+this.id);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2053
		if( resetspan!=null )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2054
			resetspan.parentNode.removeChild( resetspan );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2055
		this.btnResetEl = null;	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2056
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2057
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2058
	RemoveExternalFlts: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2059
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2060
		- removes external filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2061
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2062
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2063
		if( !this.isExternalFlt && !this.externalFltTgtIds ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2064
		for(var ct=0; ct<this.externalFltTgtIds.length; ct++ )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2065
			if( tf_Id(this.externalFltTgtIds[ct]) )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2066
				tf_Id(this.externalFltTgtIds[ct]).innerHTML = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2067
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2068
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2069
	SetSort: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2070
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2071
		- Sets sorting feature by loading 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2072
		WebFX Sortable Table 1.12 by Erik Arvidsson
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2073
		and TF adapter by Max Guglielmi
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2074
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2075
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2076
		if(tf_isImported(this.sortConfig.src))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2077
			this.Evt._EnableSort();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2078
		else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2079
			this.IncludeFile(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2080
				this.sortConfig.name, 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2081
				this.sortConfig.src, 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2082
				this.Evt._EnableSort
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2083
			);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2084
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2085
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2086
	RemoveSort: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2087
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2088
		- removes sorting feature
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2089
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2090
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2091
		if(!this.sort) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2092
		this.sort = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2093
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2094
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2095
	PopulateSelect: function(colIndex,isExternal,extSlcId)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2096
	{ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2097
		this.EvtManager(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2098
			this.Evt.name.populateselect,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2099
			{ slcIndex:colIndex, slcExternal:isExternal, slcId:extSlcId }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2100
		); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2101
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2102
	_PopulateSelect: function(colIndex,isRefreshed,isExternal,extSlcId)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2103
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2104
		- populates drop-down filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2105
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2106
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2107
		isExternal = (isExternal==undefined) ? false : isExternal;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2108
		var slcId = this.fltIds[colIndex];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2109
		if( tf_Id(slcId)==null && !isExternal ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2110
		if( tf_Id(extSlcId)==null && isExternal ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2111
		var slc = (!isExternal) ? tf_Id(slcId) : tf_Id(extSlcId);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2112
		var o = this, row = this.tbl.rows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2113
		var fillMethod = this.slcFillingMethod.tf_LCase();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2114
		var optArray = [], slcInnerHtml = '', opt0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2115
		var isCustomSlc = (this.hasCustomSlcOptions  //custom select test
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2116
							&& this.customSlcOptions.cols.tf_Has(colIndex));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2117
		var optTxt = []; //custom selects text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2118
		var activeFlt;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2119
		if(isRefreshed && this.activeFilterId){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2120
			activeFlt = this.activeFilterId.split('_')[0];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2121
			activeFlt = activeFlt.split(this.prfxFlt)[1];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2122
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2123
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2124
		/*** remember grid values ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2125
		var flts_values = [], fltArr = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2126
		if(this.rememberGridValues)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2127
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2128
			flts_values = tf_CookieValueArray(this.fltsValuesCookie);			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2129
			fltArr = (flts_values[colIndex]!=undefined) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2130
						? flts_values[colIndex].split(' '+this.orOperator+' ') 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2131
						: flts_values[colIndex] = [];			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2132
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2133
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2134
		for(var k=this.refRow; k<this.nbRows; k++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2135
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2136
			// always visible rows don't need to appear on selects as always valid
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2137
			if( this.hasVisibleRows && this.visibleRows.tf_Has(k) && !this.paging ) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2138
				continue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2139
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2140
			var cell = tf_Tag(row[k],'td');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2141
			var nchilds = cell.length;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2142
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2143
			if(nchilds == this.nbCells && !isCustomSlc)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2144
			{// checks if row has exact cell #
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2145
				for(var j=0; j<nchilds; j++)// this loop retrieves cell data
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2146
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2147
					if((colIndex==j && !isRefreshed) || 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2148
						(colIndex==j && isRefreshed && ((row[k].style.display == '' && !this.paging) || 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2149
						( this.paging && (!this.validRowsIndex || (this.validRowsIndex && this.validRowsIndex.tf_Has(k)))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2150
							&& ((activeFlt==undefined || activeFlt==colIndex)  || (activeFlt!=colIndex && this.validRowsIndex.tf_Has(k) ))) )))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2151
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2152
						var cell_data = this.GetCellData(j, cell[j]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2153
						var cell_string = cell_data.tf_MatchCase(this.matchCase);//Váry Péter's patch
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2154
						// checks if celldata is already in array
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2155
						var isMatched = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2156
						isMatched = optArray.tf_Has(cell_string,this.matchCase);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2157
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2158
						if(!isMatched)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2159
							optArray.push(cell_data);						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2160
					}//if colIndex==j
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2161
				}//for j
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2162
			}//if
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2163
		}//for k
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2164
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2165
		//Retrieves custom values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2166
		if(isCustomSlc)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2167
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2168
			var customValues = this.__getCustomValues(colIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2169
			optArray = customValues[0];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2170
			optTxt = customValues[1];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2171
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2172
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2173
		if(this.sortSlc && !isCustomSlc)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2174
			optArray.sort(this.matchCase ? null : tf_IgnoreCaseSort);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2175
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2176
		if(this.sortNumAsc && this.sortNumAsc.tf_Has(colIndex))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2177
		{//asc sort
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2178
			try{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2179
				optArray.sort( tf_NumSortAsc ); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2180
				if(isCustomSlc) optTxt.sort( tf_NumSortAsc );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2181
			} catch(e) {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2182
				optArray.sort(); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2183
				if(isCustomSlc) optTxt.sort();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2184
			}//in case there are alphanumeric values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2185
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2186
		if(this.sortNumDesc && this.sortNumDesc.tf_Has(colIndex))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2187
		{//desc sort
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2188
			try{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2189
				optArray.sort( tf_NumSortDesc ); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2190
				if(isCustomSlc) optTxt.sort( tf_NumSortDesc );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2191
			} catch(e) {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2192
				optArray.sort(); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2193
				if(isCustomSlc) optTxt.sort();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2194
			}//in case there are alphanumeric values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2195
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2196
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2197
		AddOpts();//populates drop-down
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2198
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2199
		function AddOpt0()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2200
		{// adds 1st option
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2201
			if( fillMethod == 'innerhtml' )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2202
				slcInnerHtml += '<option value="">'+o.displayAllText+'</option>';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2203
			else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2204
				var opt0 = tf_CreateOpt(o.displayAllText,'');			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2205
				slc.appendChild(opt0);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2206
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2207
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2208
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2209
		function AddOpts()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2210
		{// populates select
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2211
			var slcValue = slc.value;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2212
			slc.innerHTML = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2213
			AddOpt0();			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2214
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2215
			for(var y=0; y<optArray.length; y++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2216
			{			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2217
				if( fillMethod == 'innerhtml' )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2218
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2219
					var slcAttr = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2220
					var slcCustomTxt = (isCustomSlc) ? optTxt[y] : optArray[y];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2221
					if( o.fillSlcOnDemand && slcValue==optArray[y] )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2222
						slcAttr = 'selected="selected"';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2223
					slcInnerHtml += '<option value="'+optArray[y]+'" '
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2224
										+slcAttr+'>'+slcCustomTxt+'</option>';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2225
				} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2226
					var opt;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2227
					//fill select on demand
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2228
					if(o.fillSlcOnDemand && slcValue==optArray[y] && o['col'+colIndex]==o.fltTypeSlc)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2229
						opt = tf_CreateOpt( (isCustomSlc) ? optTxt[y] : optArray[y],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2230
											optArray[y],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2231
											true );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2232
					else{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2233
						if( o['col'+colIndex]!=o.fltTypeMulti )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2234
							opt = tf_CreateOpt( (isCustomSlc) ? optTxt[y] : optArray[y],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2235
												optArray[y],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2236
												(flts_values[colIndex]!=' ' && optArray[y]==flts_values[colIndex]) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2237
												? true : false 	);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2238
						else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2239
						{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2240
							opt = tf_CreateOpt( (isCustomSlc) ? optTxt[y] : optArray[y],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2241
												optArray[y],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2242
												(fltArr.tf_Has(optArray[y].tf_MatchCase(o.matchCase),o.matchCase)) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2243
												? true : false 	);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2244
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2245
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2246
					slc.appendChild(opt);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2247
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2248
			}// for y
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2249
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2250
			if( fillMethod == 'innerhtml' )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2251
				slc.innerHTML += slcInnerHtml;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2252
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2253
			slc.setAttribute('filled','1');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2254
		}// fn AddOpt
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2255
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2256
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2257
	PopulateCheckList: function(colIndex, isExternal, extFltId)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2258
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2259
		this.EvtManager(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2260
			this.Evt.name.populatechecklist,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2261
			{ slcIndex:colIndex, slcExternal:isExternal, slcId:extFltId }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2262
		); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2263
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2264
	_PopulateCheckList: function(colIndex, isExternal, extFltId)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2265
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2266
		- populates checklist filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2267
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2268
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2269
		isExternal = (isExternal==undefined) ? false : isExternal;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2270
		var divFltId = this.prfxCheckListDiv+colIndex+'_'+this.id;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2271
		if( tf_Id(divFltId)==null && !isExternal ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2272
		if( tf_Id(extFltId)==null && isExternal ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2273
		var flt = (!isExternal) ? this.checkListDiv[colIndex] : tf_Id(extFltId);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2274
		var ul = tf_CreateElm('ul',['id',this.fltIds[colIndex]],['colIndex',colIndex]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2275
		ul.className = this.checkListCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2276
		ul.onchange = this.Evt._OnSlcChange;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2277
		var o = this, row = this.tbl.rows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2278
		var optArray = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2279
		var isCustomSlc = (this.hasCustomSlcOptions  //custom select test
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2280
							&& this.customSlcOptions.cols.tf_Has(colIndex));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2281
		var optTxt = []; //custom selects text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2282
		var activeFlt;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2283
		if(this.refreshFilters && this.activeFilterId){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2284
			activeFlt = this.activeFilterId.split('_')[0];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2285
			activeFlt = activeFlt.split(this.prfxFlt)[1];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2286
		}		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2287
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2288
		for(var k=this.refRow; k<this.nbRows; k++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2289
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2290
			// always visible rows don't need to appear on selects as always valid
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2291
			if( this.hasVisibleRows && this.visibleRows.tf_Has(k) && !this.paging ) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2292
				continue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2293
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2294
			var cells = tf_Tag(row[k],'td');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2295
			var ncells = cells.length;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2296
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2297
			if(ncells == this.nbCells && !isCustomSlc)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2298
			{// checks if row has exact cell #
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2299
				for(var j=0; j<ncells; j++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2300
				{// this loop retrieves cell data
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2301
					if((colIndex==j && !this.refreshFilters) || 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2302
						(colIndex==j && this.refreshFilters && ((row[k].style.display == '' && !this.paging) || 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2303
						( this.paging && ((activeFlt==undefined || activeFlt==colIndex ) ||(activeFlt!=colIndex && this.validRowsIndex.tf_Has(k))) ))))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2304
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2305
						var cell_data = this.GetCellData(j, cells[j]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2306
						var cell_string = cell_data.tf_MatchCase(this.matchCase);//Váry Péter's patch
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2307
						// checks if celldata is already in array
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2308
						var isMatched = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2309
						isMatched = optArray.tf_Has(cell_string,this.matchCase);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2310
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2311
						if(!isMatched)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2312
							optArray.push(cell_data);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2313
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2314
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2315
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2316
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2317
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2318
		//Retrieves custom values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2319
		if(isCustomSlc)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2320
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2321
			var customValues = this.__getCustomValues(colIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2322
			optArray = customValues[0];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2323
			optTxt = customValues[1];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2324
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2325
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2326
		if(this.sortSlc && !isCustomSlc)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2327
			optArray.sort(this.matchCase ? null : tf_IgnoreCaseSort);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2328
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2329
		if(this.sortNumAsc && this.sortNumAsc.tf_Has(colIndex))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2330
		{//asc sort
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2331
			try{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2332
				optArray.sort( tf_NumSortAsc ); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2333
				if(isCustomSlc) optTxt.sort( tf_NumSortAsc );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2334
			} catch(e) {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2335
				optArray.sort(); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2336
				if(isCustomSlc) optTxt.sort();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2337
			}//in case there are alphanumeric values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2338
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2339
		if(this.sortNumDesc && this.sortNumDesc.tf_Has(colIndex))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2340
		{//desc sort
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2341
			try{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2342
				optArray.sort( tf_NumSortDesc ); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2343
				if(isCustomSlc) optTxt.sort( tf_NumSortDesc );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2344
			} catch(e) {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2345
				optArray.sort(); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2346
				if(isCustomSlc) optTxt.sort();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2347
			}//in case there are alphanumeric values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2348
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2349
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2350
		AddChecks();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2351
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2352
		function AddCheck0()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2353
		{// adds 1st option
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2354
			var li0 = tf_CreateCheckItem(o.fltIds[colIndex]+'_0', '', o.displayAllText);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2355
			li0.className = o.checkListItemCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2356
			ul.appendChild(li0);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2357
			li0.check.onclick = function(){  
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2358
				o.__setCheckListValues(this); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2359
								
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2360
				if(o.refreshFilters){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2361
					//o.activeFilterId = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2362
					//o.RefreshFiltersGrid();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2363
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2364
				else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2365
				ul.onchange.call(null);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2366
			};
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2367
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2368
			if(tf_isIE)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2369
			{//IE: label looses check capability
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2370
				li0.label.onclick = function(){ li0.check.click(); };
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2371
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2372
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2373
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2374
		function AddChecks()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2375
		{		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2376
			AddCheck0();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2377
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2378
			var flts_values = [], fltArr = []; //remember grid values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2379
			if(tf_CookieValueByIndex(o.fltsValuesCookie, colIndex)!=undefined)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2380
				fltArr = tf_CookieValueByIndex(o.fltsValuesCookie, colIndex).split(' '+o.orOperator+' ');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2381
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2382
			for(var y=0; y<optArray.length; y++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2383
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2384
				var li = tf_CreateCheckItem(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2385
					o.fltIds[colIndex]+'_'+(y+1), 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2386
					optArray[y], 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2387
					(isCustomSlc) ? optTxt[y] : optArray[y]
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2388
				);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2389
				li.className = o.checkListItemCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2390
				ul.appendChild(li);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2391
				li.check.onclick = function(){ o.__setCheckListValues(this); ul.onchange.call(null); };
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2392
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2393
				/*** remember grid values ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2394
				if(o.rememberGridValues)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2395
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2396
					if(fltArr.tf_Has(optArray[y].tf_MatchCase(o.matchCase),o.matchCase))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2397
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2398
						li.check.checked = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2399
						o.__setCheckListValues(li.check);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2400
					}			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2401
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2402
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2403
				if(tf_isIE)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2404
				{//IE: label looses check capability
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2405
					li.label.onclick = function(){ this.firstChild.click(); };	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2406
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2407
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2408
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2409
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2410
		if(this.fillSlcOnDemand)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2411
			flt.innerHTML = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2412
		flt.appendChild(ul);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2413
		flt.setAttribute('filled','1');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2414
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2415
		/*** remember grid values IE only, items remain un-checked ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2416
		if(o.rememberGridValues && tf_isIE)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2417
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2418
			var slcIndexes = ul.getAttribute('indexes');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2419
			if(slcIndexes != null)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2420
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2421
				var indSplit = slcIndexes.split(',');//items indexes
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2422
				for(var n=0; n<indSplit.length; n++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2423
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2424
					var cChk = tf_Id(this.fltIds[colIndex]+'_'+indSplit[n]); //checked item
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2425
					if(cChk) cChk.checked = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2426
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2427
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2428
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2429
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2430
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2431
	Filter: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2432
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2433
		this.EvtManager(this.Evt.name.filter); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2434
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2435
	_Filter: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2436
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2437
		- Filtering fn
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2438
		- retrieves data from each td in every single tr
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2439
		and compares to search string for current
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2440
		column
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2441
		- tr is hidden if all search strings are not 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2442
		found
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2443
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2444
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2445
		if( !this.fltGrid || (!this.hasGrid && !this.isFirstLoad) ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2446
		//invokes eventual onbefore method
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2447
		if(this.onBeforeFilter) this.onBeforeFilter.call(null,this);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2448
		var row = this.tbl.rows;	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2449
		f = this.fObj!=undefined ? this.fObj : [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2450
		var hiddenrows = 0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2451
		this.validRowsIndex = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2452
		var o = this;		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2453
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2454
		// removes keyword highlighting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2455
		this.UnhighlightAll();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2456
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2457
		// search args re-init
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2458
		this.searchArgs = this.GetFiltersValue(); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2459
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2460
		var num_cell_data, nbFormat;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2461
		var re_le = new RegExp(this.leOperator), re_ge = new RegExp(this.geOperator);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2462
		var re_l = new RegExp(this.lwOperator), re_g = new RegExp(this.grOperator);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2463
		var re_d = new RegExp(this.dfOperator), re_lk = new RegExp(tf_RegexpEscape(this.lkOperator));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2464
		var re_eq = new RegExp(this.eqOperator), re_st = new RegExp(this.stOperator);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2465
		var re_en = new RegExp(this.enOperator), re_an = new RegExp(this.anOperator);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2466
		var re_cr = new RegExp(this.curExp);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2467
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2468
		function highlight(str,ok,cell){//keyword highlighting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2469
			if( o.highlightKeywords && ok ){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2470
				str = str.replace(re_lk,'');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2471
				str = str.replace(re_eq,'');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2472
				str = str.replace(re_st,'');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2473
				str = str.replace(re_en,'');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2474
				var w = str;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2475
				if(re_le.test(str) || re_ge.test(str) || re_l.test(str) || re_g.test(str) || re_d.test(str))	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2476
					w = tf_GetNodeText(cell);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2477
				if(w!='')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2478
					tf_HighlightWord( cell,w,o.highlightCssClass );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2479
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2480
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2481
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2482
		//looks for search argument in current row
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2483
		function hasArg(sA,cell_data,j)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2484
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2485
			var occurence;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2486
			//Search arg operator tests
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2487
			var hasLO = re_l.test(sA), hasLE = re_le.test(sA);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2488
			var hasGR = re_g.test(sA), hasGE = re_ge.test(sA);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2489
			var hasDF = re_d.test(sA), hasEQ = re_eq.test(sA);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2490
			var hasLK = re_lk.test(sA), hasAN = re_an.test(sA);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2491
			var hasST = re_st.test(sA), hasEN = re_en.test(sA);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2492
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2493
			//Search arg dates tests
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2494
			var isLDate = ( hasLO && tf_isValidDate(sA.replace(re_l,''),dtType) );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2495
			var isLEDate = ( hasLE && tf_isValidDate(sA.replace(re_le,''),dtType) );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2496
			var isGDate = ( hasGR && tf_isValidDate(sA.replace(re_g,''),dtType) );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2497
			var isGEDate = ( hasGE && tf_isValidDate(sA.replace(re_ge,''),dtType) );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2498
			var isDFDate = ( hasDF && tf_isValidDate(sA.replace(re_d,''),dtType) );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2499
			var isEQDate = ( hasEQ && tf_isValidDate(sA.replace(re_eq,''),dtType) );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2500
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2501
			if( tf_isValidDate(cell_data,dtType) )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2502
			{//dates
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2503
				var dte1 = tf_formatDate(cell_data,dtType);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2504
				if(isLDate) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2505
				{// lower date
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2506
					var dte2 = tf_formatDate(sA.replace(re_l,''),dtType);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2507
					occurence = (dte1 < dte2);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2508
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2509
				else if(isLEDate) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2510
				{// lower equal date
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2511
					var dte2 = tf_formatDate(sA.replace(re_le,''),dtType);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2512
					occurence = (dte1 <= dte2);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2513
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2514
				else if(isGEDate) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2515
				{// greater equal date
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2516
					var dte2 = tf_formatDate(sA.replace(re_ge,''),dtType);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2517
					occurence = (dte1 >= dte2);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2518
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2519
				else if(isGDate) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2520
				{// greater date
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2521
					var dte2 = tf_formatDate(sA.replace(re_g,''),dtType);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2522
					occurence = (dte1 > dte2);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2523
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2524
				else if(isDFDate) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2525
				{// different date
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2526
					var dte2 = tf_formatDate(sA.replace(re_d,''),dtType);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2527
					occurence = (dte1.toString() != dte2.toString());
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2528
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2529
				else if(isEQDate) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2530
				{// equal date
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2531
					var dte2 = tf_formatDate(sA.replace(re_eq,''),dtType);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2532
					occurence = (dte1.toString() == dte2.toString());
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2533
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2534
				else if(re_lk.test(sA)) // searched keyword with * operator doesn't have to be a date
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2535
				{// like date
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2536
					occurence = o.__containsStr( sA.replace(re_lk,''),cell_data,null,false);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2537
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2538
				else if(tf_isValidDate(sA,dtType))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2539
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2540
					var dte2 = tf_formatDate(sA,dtType);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2541
					occurence = (dte1.toString() == dte2.toString());
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2542
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2543
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2544
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2545
			else 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2546
			{						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2547
				//first numbers need to be formated
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2548
				if(o.hasColNbFormat && o.colNbFormat[j]!=null)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2549
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2550
					num_cell_data = tf_removeNbFormat(cell_data,o.colNbFormat[j]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2551
					nbFormat = o.colNbFormat[j];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2552
				} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2553
					if(o.thousandsSeparator==',' && o.decimalSeparator=='.')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2554
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2555
						num_cell_data = tf_removeNbFormat(cell_data,'us');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2556
						nbFormat = 'us';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2557
					} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2558
						num_cell_data = tf_removeNbFormat(cell_data,'eu');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2559
						nbFormat = 'eu';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2560
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2561
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2562
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2563
				// first checks if there is any operator (<,>,<=,>=,!,*,=,{,})
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2564
				if(hasLE) //lower equal
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2565
					occurence = num_cell_data <= tf_removeNbFormat(sA.replace(re_le,''),nbFormat);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2566
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2567
				else if(hasGE) //greater equal
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2568
					occurence = num_cell_data >= tf_removeNbFormat(sA.replace(re_ge,''),nbFormat);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2569
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2570
				else if(hasLO) //lower
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2571
					occurence = num_cell_data < tf_removeNbFormat(sA.replace(re_l,''),nbFormat);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2572
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2573
				else if(hasGR) //greater
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2574
					occurence = num_cell_data > tf_removeNbFormat(sA.replace(re_g,''),nbFormat);							
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2575
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2576
				else if(hasDF) //different
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2577
					occurence = o.__containsStr( sA.replace(re_d,''),cell_data ) ? false : true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2578
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2579
				else if(hasLK) //like
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2580
					occurence = o.__containsStr( sA.replace(re_lk,''),cell_data,null,false);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2581
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2582
				else if(hasEQ) //equal
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2583
					occurence = o.__containsStr( sA.replace(re_eq,''),cell_data,null,true);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2584
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2585
				else if(hasST) //starts with
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2586
					occurence = cell_data.indexOf(sA.replace(re_st,''))==0 ? true : false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2587
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2588
				else if(hasEN) //ends with
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2589
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2590
					var searchArg = sA.replace(re_en,'');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2591
					occurence = cell_data.lastIndexOf(searchArg,cell_data.length-1)==(cell_data.length-1)-(searchArg.length-1)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2592
						&& cell_data.lastIndexOf(searchArg,cell_data.length-1) > -1
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2593
						? true : false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2594
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2595
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2596
				else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2597
					occurence = o.__containsStr( sA,cell_data,(f['col_'+j]==undefined) ? this.fltTypeInp : f['col_'+j] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2598
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2599
			}//else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2600
			return occurence;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2601
		}//fn
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2602
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2603
		for(var k=this.refRow; k<this.nbRows; k++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2604
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2605
			/*** if table already filtered some rows are not visible ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2606
			if(row[k].style.display == 'none') row[k].style.display = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2607
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2608
			var cell = tf_Tag(row[k],'td');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2609
			var nchilds = cell.length;			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2610
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2611
			// checks if row has exact cell #
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2612
			if(nchilds != this.nbCells) continue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2613
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2614
			var occurence = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2615
			var isRowValid = (this.searchType=='include') ? true : false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2616
			var singleFltRowValid = false; //only for single filter search
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2617
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2618
			for(var j=0; j<nchilds; j++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2619
			{// this loop retrieves cell data
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2620
				var sA = this.searchArgs[(this.singleSearchFlt) ? 0 : j]; //searched keyword
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2621
				var dtType = (this.hasColDateType) ? this.colDateType[j] : this.defaultDateType;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2622
				if(sA=='') continue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2623
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2624
				var cell_data = this.GetCellData(j, cell[j]).tf_MatchCase(this.matchCase);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2625
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2626
				var sAOrSplit = sA.split(this.orOperator);//multiple search parameter operator ||
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2627
				var hasMultiOrSA = (sAOrSplit.length>1) ? true : false;//multiple search || parameter boolean
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2628
				var sAAndSplit = sA.split('&&');//multiple search parameter operator &&
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2629
				var hasMultiAndSA = (sAAndSplit.length>1) ? true : false;//multiple search && parameter boolean
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2630
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2631
				if(hasMultiOrSA || hasMultiAndSA)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2632
				{//multiple sarch parameters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2633
					var cS, occur = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2634
					var s = (hasMultiOrSA) ? sAOrSplit : sAAndSplit;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2635
					for(var w=0; w<s.length; w++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2636
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2637
						cS = s[w].tf_Trim();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2638
						occur = hasArg(cS,cell_data,j);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2639
						highlight(cS,occur,cell[j]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2640
						if(hasMultiOrSA && occur) break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2641
						if(hasMultiAndSA && !occur) break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2642
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2643
					occurence[j] = occur;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2644
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2645
				else {//single search parameter		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2646
					occurence[j] = hasArg(sA.tf_Trim(),cell_data,j);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2647
					highlight(sA,occurence[j],cell[j]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2648
				}//else single param
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2649
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2650
				if(!occurence[j]) isRowValid = (this.searchType=='include') ? false : true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2651
				if(this.singleSearchFlt && occurence[j]) singleFltRowValid = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2652
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2653
			}//for j
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2654
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2655
			if(this.singleSearchFlt && singleFltRowValid) isRowValid = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2656
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2657
			if(!isRowValid)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2658
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2659
				this.SetRowValidation(k,false);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2660
				// always visible rows need to be counted as valid
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2661
				if( this.hasVisibleRows && this.visibleRows.tf_Has(k) && !this.paging)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2662
					this.validRowsIndex.push(k);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2663
				else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2664
					hiddenrows++;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2665
			} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2666
				this.SetRowValidation(k,true);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2667
				this.validRowsIndex.push(k);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2668
				this.SetRowBg(k,this.validRowsIndex.length);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2669
				if(this.onRowValidated) this.onRowValidated.call(null,this,k);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2670
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2671
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2672
		}// for k
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2673
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2674
		this.nbVisibleRows = this.validRowsIndex.length;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2675
		this.nbHiddenRows = hiddenrows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2676
		this.isStartBgAlternate = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2677
		if( this.rememberGridValues ) this.RememberFiltersValue(this.fltsValuesCookie);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2678
		if(!this.paging) this.ApplyGridProps();//applies filter props after filtering process
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2679
		if(this.paging){ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2680
			this.startPagingRow = 0; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2681
			this.currentPageNb = 1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2682
			this.SetPagingInfo(this.validRowsIndex); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2683
		}//starts paging process
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2684
		//invokes eventual onafter function
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2685
		if(this.onAfterFilter) this.onAfterFilter.call(null,this);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2686
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2687
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2688
	SetPagingInfo: function( validRows )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2689
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2690
		- calculates page # according to valid rows
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2691
		- refreshes paging select according to page #
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2692
		- Calls GroupByPage method
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2693
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2694
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2695
		var row = this.tbl.rows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2696
		var mdiv = ( this.pagingTgtId==null ) ? this.mDiv : tf_Id( this.pagingTgtId );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2697
		var pgspan = tf_Id(this.prfxPgSpan+this.id);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2698
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2699
		if( validRows!=undefined ) this.validRowsIndex = validRows;//stores valid rows index
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2700
		else 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2701
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2702
			this.validRowsIndex = [];//re-sets valid rows index
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2703
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2704
			for(var j=this.refRow; j<this.nbRows; j++)//counts rows to be grouped 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2705
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2706
				var isRowValid = row[j].getAttribute('validRow');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2707
				if(isRowValid=='true' || isRowValid==null )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2708
						this.validRowsIndex.push(j);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2709
			}//for j
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2710
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2711
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2712
		this.nbPages = Math.ceil( this.validRowsIndex.length/this.pagingLength );//calculates nb of pages
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2713
		pgspan.innerHTML = this.nbPages; //refresh page nb span 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2714
		if(this.pageSelectorType==this.fltTypeSlc) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2715
			this.pagingSlc.innerHTML = '';//select clearing shortcut
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2716
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2717
		if( this.nbPages>0 )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2718
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2719
			mdiv.style.visibility = 'visible';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2720
			if(this.pageSelectorType==this.fltTypeSlc)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2721
				for(var z=0; z<this.nbPages; z++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2722
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2723
					var currOpt = new Option((z+1),z*this.pagingLength,false,false);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2724
					this.pagingSlc.options[z] = currOpt;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2725
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2726
			else this.pagingSlc.value = this.currentPageNb; //input type
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2727
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2728
		} else {/*** if no results paging select and buttons are hidden ***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2729
			mdiv.style.visibility = 'hidden';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2730
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2731
		this.GroupByPage( this.validRowsIndex );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2732
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2733
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2734
	GroupByPage: function( validRows )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2735
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2736
		- Displays current page rows
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2737
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2738
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2739
		var row = this.tbl.rows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2740
		var paging_end_row = parseInt( this.startPagingRow ) + parseInt( this.pagingLength );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2741
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2742
		if( validRows!=undefined ) this.validRowsIndex = validRows;//stores valid rows index
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2743
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2744
		for(h=0; h<this.validRowsIndex.length; h++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2745
		{//this loop shows valid rows of current page
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2746
			if( h>=this.startPagingRow && h<paging_end_row )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2747
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2748
				var r = row[ this.validRowsIndex[h] ];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2749
				if(r.getAttribute('validRow')=='true' || r.getAttribute('validRow')==undefined)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2750
					r.style.display = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2751
				this.SetRowBg(this.validRowsIndex[h],h);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2752
			} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2753
				row[ this.validRowsIndex[h] ].style.display = 'none';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2754
				this.RemoveRowBg(this.validRowsIndex[h]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2755
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2756
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2757
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2758
		this.nbVisibleRows = this.validRowsIndex.length;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2759
		this.isStartBgAlternate = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2760
		this.ApplyGridProps();//re-applies filter behaviours after filtering process
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2761
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2762
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2763
	ApplyGridProps: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2764
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2765
		- checks methods that should be called
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2766
		after filtering and/or paging process
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2767
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2768
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2769
		if( this.activeFlt && this.activeFlt.nodeName.tf_LCase()==this.fltTypeSlc )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2770
		{// blurs active filter (IE)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2771
			this.activeFlt.blur(); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2772
			if(this.activeFlt.parentNode) this.activeFlt.parentNode.focus(); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2773
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2774
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2775
		if( this.visibleRows ) this.SetVisibleRows();//shows rows always visible
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2776
		if( this.colOperation ) this.SetColOperation();//makes operation on a col
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2777
		if( this.refreshFilters ) this.RefreshFiltersGrid();//re-populates drop-down filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2778
		var nr = (!this.paging && this.hasVisibleRows) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2779
					? (this.nbVisibleRows - this.visibleRows.length) : this.nbVisibleRows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2780
		if( this.rowsCounter ) this.RefreshNbRows( nr );//refreshes rows counter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2781
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2782
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2783
	RefreshNbRows: function(p)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2784
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2785
		- Shows total number of filtered rows
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2786
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2787
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2788
		if(this.rowsCounterSpan == null) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2789
		var totTxt;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2790
		if(!this.paging)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2791
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2792
			if(p!=undefined && p!='') totTxt=p;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2793
			else totTxt = (this.nbFilterableRows - this.nbHiddenRows - (this.hasVisibleRows ? this.visibleRows.length : 0) );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2794
		} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2795
			var paging_start_row = parseInt(this.startPagingRow)+((this.nbVisibleRows>0) ? 1 : 0);//paging start row
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2796
			var paging_end_row = (paging_start_row+this.pagingLength)-1 <= this.nbVisibleRows 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2797
				? (paging_start_row+this.pagingLength)-1 : this.nbVisibleRows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2798
			totTxt = paging_start_row+'-'+paging_end_row+' / '+this.nbVisibleRows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2799
		} 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2800
		this.rowsCounterSpan.innerHTML = totTxt;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2801
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2802
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2803
	ChangePage: function( index )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2804
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2805
		this.EvtManager(this.Evt.name.changepage,{ pgIndex:index });
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2806
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2807
	_ChangePage: function( index )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2808
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2809
		- Changes page
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2810
		- Param:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2811
			- index: option index of paging select 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2812
			(numeric value)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2813
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2814
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2815
		if( !this.paging ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2816
		if( index==undefined ) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2817
			index = (this.pageSelectorType==this.fltTypeSlc) ? 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2818
				this.pagingSlc.options.selectedIndex : (this.pagingSlc.value-1);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2819
		if( index>=0 && index<=(this.nbPages-1) )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2820
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2821
			this.currentPageNb = parseInt(index)+1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2822
			if(this.pageSelectorType==this.fltTypeSlc)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2823
				this.pagingSlc.options[index].selected = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2824
			else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2825
				this.pagingSlc.value = this.currentPageNb;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2826
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2827
			if( this.rememberPageNb ) this.RememberPageNb( this.pgNbCookie );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2828
			this.startPagingRow = (this.pageSelectorType==this.fltTypeSlc)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2829
				? this.pagingSlc.value : (index*this.pagingLength);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2830
			this.GroupByPage();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2831
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2832
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2833
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2834
	ChangeResultsPerPage: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2835
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2836
		this.EvtManager(this.Evt.name.changeresultsperpage);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2837
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2838
	_ChangeResultsPerPage: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2839
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2840
		- calculates rows to be displayed in a page
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2841
		- method called by nb results per page select
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2842
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2843
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2844
		if( !this.paging ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2845
		var slcR = this.resultsPerPageSlc;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2846
		var slcPagesSelIndex = (this.pageSelectorType==this.fltTypeSlc) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2847
			? this.pagingSlc.selectedIndex : parseInt(this.pagingSlc.value-1);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2848
		this.pagingLength = parseInt(slcR.options[slcR.selectedIndex].value);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2849
		this.startPagingRow = this.pagingLength*slcPagesSelIndex;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2850
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2851
		if( !isNaN(this.pagingLength) )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2852
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2853
			if( this.startPagingRow>=this.nbFilterableRows )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2854
				this.startPagingRow = (this.nbFilterableRows-this.pagingLength);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2855
			this.SetPagingInfo();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2856
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2857
			if(this.pageSelectorType==this.fltTypeSlc)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2858
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2859
				var slcIndex = (this.pagingSlc.options.length-1<=slcPagesSelIndex ) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2860
								? (this.pagingSlc.options.length-1) : slcPagesSelIndex;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2861
				this.pagingSlc.options[slcIndex].selected = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2862
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2863
			if( this.rememberPageLen ) this.RememberPageLength( this.pgLenCookie );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2864
		}//if isNaN
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2865
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2866
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2867
	Sort: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2868
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2869
		this.EvtManager(this.Evt.name.sort);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2870
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2871
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2872
	GetColValues: function(colindex,num,exclude)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2873
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2874
		- returns an array containing cell values of
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2875
		a column
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2876
		- needs following args:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2877
			- column index (number)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2878
			- a boolean set to true if we want only 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2879
			numbers to be returned
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2880
			- array containing rows index to be excluded
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2881
			from returned values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2882
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2883
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2884
		if( !this.fltGrid ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2885
		var row = this.tbl.rows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2886
		var colValues = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2887
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2888
		for(var i=this.refRow; i<this.nbRows; i++)//iterates rows
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2889
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2890
			var isExludedRow = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2891
			if(exclude!=undefined && (typeof exclude).tf_LCase()=='object')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2892
			{ // checks if current row index appears in exclude array
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2893
				isExludedRow = exclude.tf_Has(i); //boolean
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2894
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2895
			var cell = tf_Tag(row[i],'td');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2896
			var nchilds = cell.length;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2897
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2898
			if(nchilds == this.nbCells && !isExludedRow)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2899
			{// checks if row has exact cell # and is not excluded
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2900
				for(var j=0; j<nchilds; j++)// this loop retrieves cell data
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2901
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2902
					if(j==colindex && row[i].style.display=='' )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2903
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2904
						var cell_data = this.GetCellData(j, cell[j]).tf_LCase();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2905
						var nbFormat = this.colNbFormat ? this.colNbFormat[colindex] : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2906
						(num) ? colValues.push( tf_removeNbFormat(cell_data,nbFormat) ) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2907
								: colValues.push( cell_data );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2908
					}//if j==k
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2909
				}//for j
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2910
			}//if nchilds == this.nbCells
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2911
		}//for i
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2912
		return colValues;	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2913
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2914
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2915
	GetFilterValue: function(index)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2916
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2917
		- Returns value of a specified filter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2918
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2919
			- index: filter column index (numeric value)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2920
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2921
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2922
		if( !this.fltGrid ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2923
		var fltValue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2924
		var flt = tf_Id(this.fltIds[index]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2925
		if(flt==null) return fltValue='';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2926
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2927
		if( this['col'+index]!=this.fltTypeMulti && 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2928
			this['col'+index]!=this.fltTypeCheckList )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2929
			fltValue = flt.value;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2930
		else if(this['col'+index] == this.fltTypeMulti)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2931
		{//mutiple select
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2932
			fltValue = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2933
			for(var j=0; j<flt.options.length; j++) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2934
				if(flt.options[j].selected)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2935
					fltValue = fltValue.concat(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2936
								flt.options[j].value+' ' +
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2937
								this.orOperator + ' '
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2938
								);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2939
			//removes last operator ||
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2940
			fltValue = fltValue.substr(0,fltValue.length-4);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2941
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2942
		else if(this['col'+index]==this.fltTypeCheckList)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2943
		{//checklist
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2944
			if(flt.getAttribute('value')!=null)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2945
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2946
				fltValue = flt.getAttribute('value');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2947
				//removes last operator ||
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2948
				fltValue = fltValue.substr(0,fltValue.length-3);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2949
			} else fltValue = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2950
		}			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2951
		return fltValue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2952
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2953
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2954
	GetFiltersValue: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2955
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2956
		- Returns the value of every single filter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2957
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2958
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2959
		if( !this.fltGrid ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2960
		var searchArgs = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2961
		for(var i=0; i<this.fltIds.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2962
			searchArgs.push(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2963
				this.GetFilterValue(i).tf_MatchCase(this.matchCase).tf_Trim()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2964
			);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2965
		return searchArgs;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2966
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2967
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2968
	GetFilterId: function(index)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2969
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2970
		- Returns filter id of a specified column
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2971
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2972
			- index: column index (numeric value)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2973
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2974
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2975
		if( !this.fltGrid ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2976
		return this.fltIds[i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2977
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2978
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2979
	GetFiltersByType: function(type,bool)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2980
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2981
		- returns an array containing ids of filters of a 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2982
		specified type (inputs or selects)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2983
		- Note that hidden filters are also returned
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2984
		- Needs folllowing args:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2985
			- filter type string ('input','select',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2986
			'multiple')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2987
			- optional boolean: if set true method
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2988
			returns column indexes otherwise filters ids
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2989
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2990
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2991
		if( !this.fltGrid ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2992
		var arr = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2993
		for(var i=0; i<this.fltIds.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2994
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2995
			var fltType = this['col'+i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2996
			if(fltType == type.tf_LCase())
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2997
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2998
				var a = (bool) ? i : this.fltIds[i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  2999
				arr.push(a);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3000
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3001
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3002
		return arr;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3003
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3004
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3005
	GetCellsNb: function( rowIndex )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3006
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3007
		- returns number of cells in a row
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3008
		- if rowIndex param is passed returns number of 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3009
		cells of specified row (number)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3010
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3011
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3012
		var tr = (rowIndex == undefined) ? this.tbl.rows[0] : this.tbl.rows[rowIndex];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3013
		var n = tf_GetChildElms(tr);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3014
		return n.childNodes.length;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3015
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3016
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3017
	GetRowsNb: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3018
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3019
		- returns total nb of filterable rows starting 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3020
		from reference row if defined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3021
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3022
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3023
		var s = this.refRow==undefined ? 0 : this.refRow;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3024
		var ntrs = this.tbl.rows.length;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3025
		return parseInt(ntrs-s);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3026
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3027
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3028
	GetCellData: function(i, cell)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3029
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3030
		- returns text content of a given cell
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3031
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3032
			- i: index of the column (number)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3033
			- cell: td DOM object
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3034
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3035
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3036
		if(i==undefined || cell==null) return "";
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3037
		//First checks for customCellData event
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3038
		if(this.customCellData && this.customCellDataCols.tf_Has(i))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3039
			return this.customCellData.call(null,this,cell,i);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3040
		else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3041
			return tf_GetNodeText(cell);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3042
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3043
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3044
	GetTableData: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3045
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3046
		- returns an array containing table data:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3047
		[rowindex,[value1,value2,value3...]]
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3048
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3049
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3050
		var row = this.tbl.rows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3051
		for(var k=this.refRow; k<this.nbRows; k++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3052
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3053
			var rowData, cellData;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3054
			rowData = [k,[]];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3055
			var cells = tf_Tag(row[k],'td');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3056
			for(var j=0; j<cells.length; j++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3057
			{// this loop retrieves cell data
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3058
				var cell_data = this.GetCellData(j, cells[j]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3059
				rowData[1].push( cell_data );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3060
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3061
			this.tblData.push( rowData )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3062
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3063
		return this.tblData;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3064
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3065
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3066
	GetFilteredData: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3067
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3068
		- returns an array containing filtered data:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3069
		[rowindex,[value1,value2,value3...]]
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3070
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3071
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3072
		if(!this.validRowsIndex) return [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3073
		var row = this.tbl.rows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3074
		var filteredData = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3075
		for(var i=0; i<this.validRowsIndex.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3076
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3077
			var rowData, cellData;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3078
			rowData = [this.validRowsIndex[i],[]];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3079
			var cells = tf_Tag(row[this.validRowsIndex[i]],'td');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3080
			for(var j=0; j<cells.length; j++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3081
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3082
				var cell_data = this.GetCellData(j, cells[j]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3083
				rowData[1].push( cell_data );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3084
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3085
			filteredData.push(rowData);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3086
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3087
		return filteredData;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3088
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3089
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3090
	GetFilteredDataCol: function(colIndex)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3091
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3092
		- returns an array containing filtered data of a
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3093
		specified column. 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3094
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3095
			- colIndex: index of the column (number)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3096
		- returned array:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3097
		[value1,value2,value3...]
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3098
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3099
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3100
		if(colIndex==undefined) return [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3101
		var data =  this.GetFilteredData();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3102
		var colData = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3103
		for(var i=0; i<data.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3104
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3105
			var r = data[i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3106
			var d = r[1]; //cols values of current row
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3107
			var c = d[colIndex]; //data of searched column
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3108
			colData.push(c);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3109
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3110
		return colData;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3111
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3112
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3113
	GetRowDisplay: function(row)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3114
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3115
		if( !this.fltGrid && typeof row.tf_LCase!='object' ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3116
		return row.style.display;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3117
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3118
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3119
	SetRowValidation: function( rowIndex,isValid )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3120
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3121
		- Validates/unvalidates row by setting 'validRow' 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3122
		attribute and shows/hides row
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3123
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3124
			- rowIndex: index of the row (number)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3125
			- isValid: boolean
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3126
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3127
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3128
		var row = this.tbl.rows[rowIndex];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3129
		if( !row || (typeof isValid).tf_LCase()!='boolean' ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3130
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3131
		// always visible rows are valid
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3132
		if( this.hasVisibleRows && this.visibleRows.tf_Has(rowIndex) && !this.paging )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3133
			isValid = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3134
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3135
		var displayFlag = (isValid) ? '' : 'none';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3136
		var validFlag = (isValid) ? 'true' : 'false';		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3137
		row.style.display = displayFlag;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3138
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3139
		if( this.paging ) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3140
			row.setAttribute('validRow',validFlag);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3141
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3142
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3143
	ValidateAllRows: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3144
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3145
		- Validates all filterable rows
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3146
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3147
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3148
		if( !this.hasGrid ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3149
		this.validRowsIndex = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3150
		for(var k=this.refRow; k<this.nbFilterableRows; k++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3151
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3152
			this.SetRowValidation(k,true);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3153
			this.validRowsIndex.push(k);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3154
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3155
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3156
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3157
	SetFilterValue: function(index,searcharg,doFilter)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3158
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3159
		- Inserts value in a specified filter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3160
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3161
			- index: filter column index (numeric value)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3162
			- searcharg: search string
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3163
			- doFilter: optional boolean for multiple
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3164
			selects: executes filtering when multiple 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3165
			select populated... IE only!
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3166
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3167
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3168
		if( (!this.fltGrid && !this.isFirstLoad) || tf_Id(this.fltIds[index])==null ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3169
		var slc = tf_Id(this.fltIds[index]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3170
		var execFilter = (doFilter==undefined) ? true : doFilter;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3171
		searcharg = (searcharg==undefined) ? '' : searcharg;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3172
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3173
		if( this['col'+index]!=this.fltTypeMulti && 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3174
			this['col'+index]!=this.fltTypeCheckList )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3175
			slc.value = searcharg;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3176
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3177
		else if(this['col'+index] == this.fltTypeMulti)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3178
		{//multiple selects
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3179
			var s = searcharg.split(' '+this.orOperator+' ');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3180
			var ct = 0; //keywords counter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3181
			for(var j=0; j<slc.options.length; j++) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3182
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3183
				if(s=='') slc.options[j].selected = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3184
				if(slc.options[j].value=='') slc.options[j].selected = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3185
				if(slc.options[j].value!='' && s.tf_Has(slc.options[j].value,true))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3186
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3187
					if(tf_isIE)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3188
					{// IE multiple selection work-around
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3189
						//when last value reached filtering can be executed
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3190
						var filter = (ct==(s.length-1) && execFilter) ? true : false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3191
						this.__deferMultipleSelection(slc,j,filter);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3192
						ct++;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3193
					}					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3194
					else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3195
						slc.options[j].selected = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3196
				}//if
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3197
			}//for j
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3198
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3199
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3200
		else if(this['col'+index]==this.fltTypeCheckList)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3201
		{//checklist
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3202
			searcharg = searcharg.tf_MatchCase(this.matchCase);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3203
			var s = searcharg.split(' '+this.orOperator+' ');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3204
			var fltValue = slc.setAttribute('value','');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3205
			var fltIndex = slc.setAttribute('indexes','');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3206
			for(var k=0; k<tf_Tag(slc,'li').length; k++) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3207
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3208
				var li = tf_Tag(slc,'li')[k];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3209
				var lbl = tf_Tag(li,'label')[0];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3210
				var chk = tf_Tag(li,'input')[0];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3211
				var lblTxt = tf_GetNodeText(lbl).tf_MatchCase(this.matchCase);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3212
				if(lblTxt!='' && s.tf_Has(lblTxt,true))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3213
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3214
					chk.checked = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3215
					this.__setCheckListValues(chk);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3216
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3217
				else{ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3218
					chk.checked = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3219
					this.__setCheckListValues(chk);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3220
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3221
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3222
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3223
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3224
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3225
	SetColWidths: function(rowIndex)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3226
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3227
		- sets coluun widths in pixels
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3228
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3229
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3230
		if( !this.fltGrid || !this.hasColWidth ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3231
		var o = this, rIndex;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3232
		if(rowIndex==undefined) rIndex = this.tbl.rows[0].style.display!='none' ? 0 : 1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3233
		else rIndex = rowIndex;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3234
		setWidths( this.tbl.rows[rIndex] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3235
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3236
		function setWidths( row )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3237
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3238
			if( !o && (o.nbCells!=o.colWidth.length) ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3239
			if( o.nbCells==row.cells.length )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3240
				for(var k=0; k<o.nbCells; k++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3241
					row.cells[k].style.width = o.colWidth[k];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3242
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3243
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3244
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3245
	SetVisibleRows: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3246
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3247
		- makes a row always visible
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3248
		- Note this works only if paging is false
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3249
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3250
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3251
		if( this.hasGrid && this.hasVisibleRows && !this.paging )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3252
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3253
			for(var i=0; i<this.visibleRows.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3254
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3255
				if(this.visibleRows[i]<=this.nbRows)//row index cannot be > nrows
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3256
					this.SetRowValidation(this.visibleRows[i],true);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3257
			}//for i
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3258
		}//if hasGrid
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3259
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3260
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3261
	SetRowBg: function(rIndex,index)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3262
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3263
		- sets row background color
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3264
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3265
			- rIndex: row index (numeric value)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3266
			- index: valid row collection index needed to
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3267
			calculate bg color
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3268
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3269
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3270
		if(!this.alternateBgs || isNaN(rIndex)) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3271
		var rows = this.tbl.rows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3272
		var i = (index==undefined) ? rIndex : index;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3273
		this.RemoveRowBg(rIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3274
		tf_addClass(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3275
			rows[rIndex],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3276
			(i%2 == 0) ? this.rowBgEvenCssClass : this.rowBgOddCssClass
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3277
		);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3278
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3279
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3280
	RemoveRowBg: function(index)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3281
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3282
		- removes row background color
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3283
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3284
			- index: row index (numeric value)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3285
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3286
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3287
		if(isNaN(index)) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3288
		var rows = this.tbl.rows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3289
		tf_removeClass(rows[index],this.rowBgOddCssClass);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3290
		tf_removeClass(rows[index],this.rowBgEvenCssClass);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3291
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3292
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3293
	SetAlternateRows: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3294
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3295
		- alternates row colors for better readability
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3296
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3297
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3298
		if( !this.hasGrid && !this.isFirstLoad ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3299
		var rows = this.tbl.rows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3300
		var noValidRowsIndex = this.validRowsIndex==null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3301
		var beginIndex = (noValidRowsIndex) ? this.refRow : 0; //1st index
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3302
		var indexLen = (noValidRowsIndex) // nb indexes
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3303
			? (this.nbFilterableRows+beginIndex) : this.validRowsIndex.length;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3304
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3305
		for(var j=beginIndex; j<indexLen; j++)//alternates bg color
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3306
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3307
			var rIndex = (noValidRowsIndex) ? j : this.validRowsIndex[j];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3308
			this.SetRowBg(rIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3309
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3310
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3311
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3312
	RemoveAlternateRows: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3313
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3314
		- removes alternate row colors
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3315
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3316
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3317
		if(!this.hasGrid) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3318
		var row = this.tbl.rows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3319
		for(var i=this.refRow; i<this.nbRows; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3320
			this.RemoveRowBg(i);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3321
		this.isStartBgAlternate = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3322
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3323
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3324
	SetColOperation: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3325
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3326
		- Calculates values of a column
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3327
		- params are stored in 'colOperation' table's
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3328
		attribute
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3329
			- colOperation['id'] contains ids of elements 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3330
			showing result (array)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3331
			- colOperation['col'] contains index of 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3332
			columns (array)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3333
			- colOperation['operation'] contains operation
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3334
			type (array, values: sum, mean)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3335
			- colOperation['write_method'] array defines 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3336
			which method to use for displaying the 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3337
			result (innerHTML, setValue, createTextNode).
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3338
			Note that innerHTML is the default value.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3339
			- colOperation['tot_row_index'] defines in 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3340
			which row results are displayed (integers array)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3341
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3342
		- changes made by nuovella: 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3343
		(1) optimized the routine (now it will only 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3344
		process each column once),
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3345
		(2) added calculations for the median, lower and 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3346
		upper quartile.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3347
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3348
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3349
		if( !this.isFirstLoad && !this.hasGrid ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3350
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3351
		if(this.onBeforeOperation) this.onBeforeOperation.call(null,this);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3352
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3353
		var labelId = this.colOperation['id'];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3354
		var colIndex = this.colOperation['col'];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3355
		var operation = this.colOperation['operation'];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3356
		var outputType = this.colOperation['write_method'];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3357
		var totRowIndex = this.colOperation['tot_row_index'];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3358
		var excludeRow = this.colOperation['exclude_row'];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3359
		var decimalPrecision = this.colOperation['decimal_precision']!=undefined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3360
								? this.colOperation['decimal_precision'] : 2;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3361
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3362
		//nuovella: determine unique list of columns to operate on
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3363
		var ucolIndex =[]; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3364
		var ucolMax=0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3365
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3366
		ucolIndex[ucolMax]=colIndex[0];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3367
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3368
		for(var i=1; i<colIndex.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3369
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3370
			saved=0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3371
			//see if colIndex[i] is already in the list of unique indexes
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3372
			for(var j=0; j<=ucolMax; j++ )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3373
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3374
				if (ucolIndex[j]==colIndex[i])
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3375
					saved=1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3376
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3377
			if (saved==0)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3378
			{//if not saved then, save the index;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3379
				ucolMax++;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3380
				ucolIndex[ucolMax]=colIndex[i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3381
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3382
		}// for i
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3383
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3384
		if( (typeof labelId).tf_LCase()=='object' 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3385
			&& (typeof colIndex).tf_LCase()=='object' 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3386
			&& (typeof operation).tf_LCase()=='object' )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3387
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3388
			var row = this.tbl.rows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3389
			var colvalues = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3390
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3391
			for(var ucol=0; ucol<=ucolMax; ucol++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3392
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3393
				//this retrieves col values 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3394
				//use ucolIndex because we only want to pass through this loop once for each column
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3395
				//get the values in this unique column
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3396
				colvalues.push( this.GetColValues(ucolIndex[ucol],true,excludeRow) );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3397
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3398
			   //next: calculate all operations for this column
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3399
			   var result, nbvalues=0,  temp;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3400
			   var meanValue=0, sumValue=0, minValue=null, maxValue=null, q1Value=null, medValue=null, q3Value=null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3401
			   var meanFlag=0, sumFlag=0, minFlag=0, maxFlag=0, q1Flag=0, medFlag=0, q3Flag=0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3402
			   var theList=[];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3403
			   var opsThisCol=[], decThisCol=[], labThisCol=[], oTypeThisCol=[];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3404
			   var mThisCol=-1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3405
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3406
				for(var i=0; i<colIndex.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3407
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3408
					 if (colIndex[i]==ucolIndex[ucol])
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3409
					 {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3410
						mThisCol++;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3411
						opsThisCol[mThisCol]=operation[i].tf_LCase();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3412
						decThisCol[mThisCol]=decimalPrecision[i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3413
						labThisCol[mThisCol]=labelId[i]; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3414
						oTypeThisCol = (outputType != undefined && (typeof outputType).tf_LCase()=='object') 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3415
											? outputType[i] : null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3416
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3417
						switch( opsThisCol[mThisCol] )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3418
						{			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3419
							case 'mean':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3420
								meanFlag=1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3421
							break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3422
							case 'sum':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3423
								sumFlag=1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3424
							break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3425
							case 'min':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3426
								minFlag=1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3427
							break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3428
							case 'max':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3429
								maxFlag=1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3430
							break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3431
							case 'median':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3432
								medFlag=1;	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3433
								break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3434
							case 'q1':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3435
								q1Flag=1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3436
							break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3437
							case 'q3':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3438
								q3Flag=1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3439
							break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3440
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3441
					}		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3442
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3443
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3444
				for(var j=0; j<colvalues[ucol].length; j++ )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3445
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3446
					if ((q1Flag==1)||(q3Flag==1) || (medFlag==1))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3447
					{//sort the list for calculation of median and quartiles
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3448
						if (j<colvalues[ucol].length -1)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3449
						{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3450
							for(k=j+1;k<colvalues[ucol].length; k++) {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3451
				  
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3452
								if( eval(colvalues[ucol][k]) < eval(colvalues[ucol][j]))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3453
								{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3454
									temp = colvalues[ucol][j];            
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3455
									colvalues[ucol][j] = colvalues[ucol][k];              
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3456
									colvalues[ucol][k] = temp;            
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3457
								}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3458
							}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3459
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3460
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3461
					var cvalue = parseFloat(colvalues[ucol][j]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3462
					theList[j]=parseFloat( cvalue );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3463
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3464
					if( !isNaN(cvalue) )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3465
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3466
						nbvalues++;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3467
						if ((sumFlag==1)|| (meanFlag==1)) sumValue += parseFloat( cvalue );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3468
						if (minFlag==1) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3469
						{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3470
							if (minValue==null)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3471
							{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3472
								minValue = parseFloat( cvalue );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3473
							}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3474
							else minValue= parseFloat( cvalue )<minValue? parseFloat( cvalue ): minValue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3475
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3476
						if (maxFlag==1) {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3477
							if (maxValue==null)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3478
							{maxValue = parseFloat( cvalue );}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3479
						else {maxValue= parseFloat( cvalue )>maxValue? parseFloat( cvalue ): maxValue;}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3480
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3481
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3482
				}//for j
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3483
				if (meanFlag==1) meanValue = sumValue/nbvalues;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3484
				if (medFlag==1)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3485
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3486
						var aux = 0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3487
						if(nbvalues%2 == 1) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3488
						{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3489
							aux = Math.floor(nbvalues/2);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3490
							medValue = theList[aux];   
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3491
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3492
					else medValue = (theList[nbvalues/2]+theList[((nbvalues/2)-1)])/2;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3493
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3494
				if (q1Flag==1)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3495
				{	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3496
					var posa=0.0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3497
					posa = Math.floor(nbvalues/4);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3498
					if (4*posa == nbvalues) {q1Value = (theList[posa-1] + theList[posa])/2;}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3499
					else {q1Value = theList[posa];}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3500
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3501
				if (q3Flag==1)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3502
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3503
					var posa=0.0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3504
					var posb=0.0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3505
					posa = Math.floor(nbvalues/4);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3506
					if (4*posa == nbvalues)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3507
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3508
						posb = 3*posa;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3509
						q3Value = (theList[posb] + theList[posb-1])/2;  
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3510
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3511
					else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3512
						q3Value = theList[nbvalues-posa-1];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3513
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3514
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3515
				for(var i=0; i<=mThisCol; i++ )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3516
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3517
				   switch( opsThisCol[i] )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3518
				   {			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3519
						case 'mean':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3520
							result=meanValue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3521
						break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3522
						case 'sum':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3523
							result=sumValue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3524
						break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3525
						case 'min':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3526
							result=minValue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3527
						break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3528
						case 'max':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3529
							result=maxValue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3530
						break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3531
						case 'median':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3532
							result=medValue;	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3533
							break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3534
						case 'q1':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3535
							result=q1Value;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3536
						break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3537
						case 'q3':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3538
							result=q3Value;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3539
						break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3540
				  }		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3541
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3542
				var precision = decThisCol[i]!=undefined && !isNaN( decThisCol[i] )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3543
									? decThisCol[i] : 2;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3544
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3545
				if(oTypeThisCol!=null && result)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3546
				{//if outputType is defined
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3547
					result = result.toFixed( precision );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3548
					if( tf_Id( labThisCol[i] )!=undefined )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3549
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3550
						switch( oTypeThisCol.tf_LCase() )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3551
						{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3552
							case 'innerhtml':							
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3553
								if (isNaN(result) || !isFinite(result) || (nbvalues==0)) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3554
									tf_Id( labThisCol[i] ).innerHTML = '.';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3555
								else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3556
									tf_Id( labThisCol[i] ).innerHTML = result;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3557
							break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3558
							case 'setvalue':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3559
								tf_Id( labThisCol[i] ).value = result;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3560
							break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3561
							case 'createtextnode':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3562
								var oldnode = tf_Id( labThisCol[i] ).firstChild;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3563
								var txtnode = tf_CreateText( result );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3564
								tf_Id( labThisCol[i] ).replaceChild( txtnode,oldnode );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3565
							break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3566
						}//switch
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3567
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3568
				} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3569
					try
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3570
					{      
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3571
						if (isNaN(result) || !isFinite(result) || (nbvalues==0)) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3572
							tf_Id( labThisCol[i] ).innerHTML = '.';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3573
						else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3574
							 tf_Id( labThisCol[i] ).innerHTML = result.toFixed( precision );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3575
					} catch(e){ }//catch
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3576
				}//else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3577
			 }//for i
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3578
			//eventual row(s) with result are always visible
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3579
			if(totRowIndex!=undefined && row[totRowIndex[ucol]]) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3580
				row[totRowIndex[ucol]].style.display = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3581
			}//for ucol
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3582
		}//if typeof
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3583
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3584
		if(this.onAfterOperation) this.onAfterOperation.call(null,this);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3585
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3586
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3587
	SetPage: function( cmd )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3588
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3589
		- If paging set true shows page according to
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3590
		param value (string or number):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3591
			- strings: 'next','previous','last','first' or
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3592
			- number: page number
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3593
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3594
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3595
		if( this.hasGrid && this.paging )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3596
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3597
			var btnEvt = this.pagingBtnEvents, cmdtype = typeof cmd;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3598
			if(cmdtype=='string')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3599
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3600
				switch(cmd.tf_LCase())
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3601
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3602
					case 'next':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3603
						btnEvt.next();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3604
					break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3605
					case 'previous':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3606
						btnEvt.prev();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3607
					break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3608
					case 'last':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3609
						btnEvt.last();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3610
					break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3611
					case 'first':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3612
						btnEvt.first();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3613
					break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3614
					default:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3615
						btnEvt.next();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3616
					break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3617
				}//switch
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3618
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3619
			if(cmdtype=='number') this.ChangePage( (cmd-1) );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3620
		}// this.hasGrid 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3621
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3622
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3623
	RefreshFiltersGrid: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3624
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3625
		- retrieves select, multiple and checklist filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3626
		- calls method repopulating filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3627
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3628
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3629
		var slcA1 = this.GetFiltersByType( this.fltTypeSlc,true );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3630
		var slcA2 = this.GetFiltersByType( this.fltTypeMulti,true );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3631
		var slcA3 = this.GetFiltersByType( this.fltTypeCheckList,true );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3632
		var slcIndex = slcA1.concat(slcA2);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3633
		slcIndex = slcIndex.concat(slcA3);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3634
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3635
		if( this.activeFilterId!=null )//for paging
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3636
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3637
			var activeFlt = this.activeFilterId.split('_')[0];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3638
			activeFlt = activeFlt.split(this.prfxFlt)[1];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3639
			var slcSelectedValue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3640
			for(var i=0; i<slcIndex.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3641
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3642
				var curSlc = tf_Id(this.fltIds[slcIndex[i]]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3643
				slcSelectedValue = this.GetFilterValue( slcIndex[i] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3644
				//if(activeFlt==slcIndex[i] && slcA3.tf_Has(slcIndex[i]) && slcSelectedValue!=this.displayAllText) continue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3645
				if(activeFlt!=slcIndex[i] || (this.paging && slcA1.tf_Has(slcIndex[i]) && activeFlt==slcIndex[i] ) || 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3646
					( !this.paging && (slcA3.tf_Has(slcIndex[i]) || slcA2.tf_Has(slcIndex[i]) ) /*&& activeFlt==slcIndex[i]*/) || 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3647
					slcSelectedValue==this.displayAllText )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3648
					//(this.paging && (!slcA3.tf_Has(slcIndex[i]) && !slcA2.tf_Has(slcIndex[i]) && activeFlt==slcIndex[i]) ) )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3649
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3650
					if(slcA3.tf_Has(slcIndex[i]))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3651
						this.checkListDiv[slcIndex[i]].innerHTML = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3652
					else curSlc.innerHTML = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3653
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3654
					if(this.fillSlcOnDemand) { //1st option needs to be inserted
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3655
						var opt0 = tf_CreateOpt(this.displayAllText,'');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3656
						curSlc.appendChild( opt0 );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3657
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3658
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3659
					if(slcA3.tf_Has(slcIndex[i]))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3660
						this._PopulateCheckList(slcIndex[i]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3661
					else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3662
						this._PopulateSelect(slcIndex[i],true);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3663
						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3664
					this.SetFilterValue(slcIndex[i],slcSelectedValue);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3665
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3666
			}// for i
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3667
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3668
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3669
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3670
	RememberFiltersValue: function( name )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3671
	/*==============================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3672
		- stores filters' values in a cookie
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3673
		when Filter() method is called
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3674
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3675
			- name: cookie name (string)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3676
		- credits to Florent Hirchy
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3677
	===============================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3678
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3679
		var flt_values = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3680
		for(var i=0; i<this.fltIds.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3681
		{//creates an array with filters' values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3682
			value = this.GetFilterValue(i);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3683
			if (value == '') value = ' ';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3684
			flt_values.push(value);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3685
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3686
		flt_values.push(this.fltIds.length); //adds array size
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3687
		tf_WriteCookie(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3688
			name,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3689
			flt_values,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3690
			this.cookieDuration
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3691
		); //writes cookie  
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3692
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3693
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3694
	RememberPageNb: function( name )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3695
	/*==============================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3696
		- stores page number value in a cookie
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3697
		when ChangePage method is called
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3698
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3699
			- name: cookie name (string)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3700
	===============================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3701
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3702
		tf_WriteCookie(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3703
			name,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3704
			this.currentPageNb,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3705
			this.cookieDuration
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3706
		); //writes cookie  
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3707
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3708
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3709
	RememberPageLength: function( name )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3710
	/*==============================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3711
		- stores page length value in a cookie
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3712
		when ChangePageLength method is called
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3713
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3714
			- name: cookie name (string)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3715
	===============================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3716
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3717
		tf_WriteCookie(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3718
			name,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3719
			this.resultsPerPageSlc.selectedIndex,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3720
			this.cookieDuration
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3721
		); //writes cookie
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3722
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3723
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3724
	ResetValues: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3725
	{ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3726
		this.EvtManager(this.Evt.name.resetvalues); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3727
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3728
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3729
	_ResetValues: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3730
	/*==============================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3731
		- re-sets grid values when page is 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3732
		re-loaded. It invokes ResetGridValues,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3733
		ResetPage and ResetPageLength methods
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3734
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3735
			- name: cookie name (string)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3736
	===============================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3737
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3738
		if(this.rememberGridValues && this.fillSlcOnDemand) //only fillSlcOnDemand
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3739
			this.ResetGridValues(this.fltsValuesCookie);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3740
		if(this.rememberPageLen) this.ResetPageLength( this.pgLenCookie );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3741
		if(this.rememberPageNb) this.ResetPage( this.pgNbCookie );		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3742
	},	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3743
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3744
	ResetGridValues: function( name )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3745
	/*==============================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3746
		- re-sets filters' values when page is 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3747
		re-loaded if load on demand is enabled
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3748
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3749
			- name: cookie name (string)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3750
		- credits to Florent Hirchy
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3751
	===============================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3752
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3753
		if(!this.fillSlcOnDemand) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3754
		var flts = tf_ReadCookie(name); //reads the cookie
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3755
		var reg = new RegExp(',','g');	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3756
		var flts_values = flts.split(reg); //creates an array with filters' values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3757
		var slcFltsIndex = this.GetFiltersByType(this.fltTypeSlc, true);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3758
		var multiFltsIndex = this.GetFiltersByType(this.fltTypeMulti, true);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3759
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3760
		if(flts_values[(flts_values.length-1)] == this.fltIds.length)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3761
		{//if the number of columns is the same as before page reload
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3762
			for(var i=0; i<(flts_values.length - 1); i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3763
			{			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3764
				if (flts_values[i]==' ') continue;				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3765
				if(this['col'+i]==this.fltTypeSlc || this['col'+i]==this.fltTypeMulti)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3766
				{// if fillSlcOnDemand, drop-down needs to contain stored value(s) for filtering
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3767
					var slc = tf_Id( this.fltIds[i] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3768
					slc.options[0].selected = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3769
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3770
					if( slcFltsIndex.tf_Has(i) )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3771
					{//selects
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3772
						var opt = tf_CreateOpt(flts_values[i],flts_values[i],true);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3773
						slc.appendChild(opt);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3774
						this.hasStoredValues = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3775
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3776
					if(multiFltsIndex.tf_Has(i))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3777
					{//multiple select
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3778
						var s = flts_values[i].split(' '+this.orOperator+' ');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3779
						for(j=0; j<s.length; j++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3780
						{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3781
							if(s[j]=='') continue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3782
							var opt = tf_CreateOpt(s[j],s[j],true);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3783
							slc.appendChild(opt);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3784
							this.hasStoredValues = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3785
							
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3786
							if(tf_isIE)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3787
							{// IE multiple selection work-around
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3788
								this.__deferMultipleSelection(slc,j,false);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3789
								hasStoredValues = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3790
							}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3791
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3792
					}// if multiFltsIndex
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3793
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3794
				else if(this['col'+i]==this.fltTypeCheckList)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3795
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3796
					var divChk = this.checkListDiv[i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3797
					divChk.title = divChk.innerHTML;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3798
					divChk.innerHTML = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3799
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3800
					var ul = tf_CreateElm('ul',['id',this.fltIds[i]],['colIndex',i]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3801
					ul.className = this.checkListCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3802
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3803
					var li0 = tf_CreateCheckItem(this.fltIds[i]+'_0', '', this.displayAllText);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3804
					li0.className = this.checkListItemCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3805
					ul.appendChild(li0);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3806
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3807
					divChk.appendChild(ul);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3808
					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3809
					var s = flts_values[i].split(' '+this.orOperator+' ');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3810
					for(j=0; j<s.length; j++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3811
					{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3812
						if(s[j]=='') continue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3813
						var li = tf_CreateCheckItem(this.fltIds[i]+'_'+(j+1), s[j], s[j]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3814
						li.className = this.checkListItemCssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3815
						ul.appendChild(li);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3816
						li.check.checked = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3817
						this.__setCheckListValues(li.check);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3818
						this.hasStoredValues = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3819
					}					
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3820
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3821
			}//end for
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3822
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3823
			if(!this.hasStoredValues && this.paging) this.SetPagingInfo();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3824
		}//end if
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3825
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3826
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3827
	ResetPage: function( name )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3828
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3829
		this.EvtManager(this.Evt.name.resetpage);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3830
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3831
	_ResetPage: function( name )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3832
	/*==============================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3833
		- re-sets page nb at page re-load
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3834
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3835
			- name: cookie name (string)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3836
	===============================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3837
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3838
		var pgnb = tf_ReadCookie(name); //reads the cookie
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3839
		if( pgnb!='' ) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3840
			this.ChangePage((pgnb-1));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3841
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3842
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3843
	ResetPageLength: function( name )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3844
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3845
		this.EvtManager(this.Evt.name.resetpagelength);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3846
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3847
	_ResetPageLength: function( name )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3848
	/*==============================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3849
		- re-sets page length at page re-load
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3850
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3851
			- name: cookie name (string)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3852
	===============================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3853
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3854
		if(!this.paging) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3855
		var pglenIndex = tf_ReadCookie(name); //reads the cookie
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3856
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3857
		if( pglenIndex!='' )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3858
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3859
			this.resultsPerPageSlc.options[pglenIndex].selected = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3860
			this.ChangeResultsPerPage();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3861
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3862
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3863
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3864
	SetLoader: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3865
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3866
		- generates loader div
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3867
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3868
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3869
		if( this.loaderDiv!=null ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3870
		var containerDiv = tf_CreateElm( 'div',['id',this.prfxLoader+this.id] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3871
		containerDiv.className = this.loaderCssClass;// for ie<=6
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3872
		//containerDiv.style.display = 'none';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3873
		var targetEl = (this.loaderTgtId==null) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3874
			? (this.gridLayout ? this.tblCont : this.tbl.parentNode) : tf_Id( this.loaderTgtId );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3875
		if(this.loaderTgtId==null) targetEl.insertBefore(containerDiv, this.tbl);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3876
		else targetEl.appendChild( containerDiv );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3877
		this.loaderDiv = tf_Id(this.prfxLoader+this.id);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3878
		if(this.loaderHtml==null) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3879
			this.loaderDiv.appendChild( tf_CreateText(this.loaderText) );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3880
		else this.loaderDiv.innerHTML = this.loaderHtml;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3881
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3882
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3883
	RemoveLoader: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3884
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3885
		- removes loader div
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3886
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3887
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3888
		if( this.loaderDiv==null ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3889
		var targetEl = (this.loaderTgtId==null) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3890
			? (this.gridLayout ? this.tblCont : this.tbl.parentNode) : tf_Id( this.loaderTgtId );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3891
		targetEl.removeChild(this.loaderDiv);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3892
		this.loaderDiv = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3893
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3894
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3895
	ShowLoader: function(p)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3896
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3897
		- displays/hides loader div
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3898
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3899
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3900
		if(!this.loader || !this.loaderDiv) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3901
		if(this.loaderDiv.style.display==p) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3902
		var o = this;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3903
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3904
		function displayLoader(){ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3905
			if(!o.loaderDiv) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3906
			if(o.onShowLoader && p!='none') 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3907
				o.onShowLoader.call(null,o);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3908
			o.loaderDiv.style.display = p;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3909
			if(o.onHideLoader && p=='none') 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3910
				o.onHideLoader.call(null,o);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3911
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3912
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3913
		var t = (p=='none') ? this.loaderCloseDelay : 1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3914
		window.setTimeout(displayLoader,t);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3915
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3916
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3917
	StatusMsg: function(t)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3918
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3919
		- sets status messages
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3920
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3921
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3922
		if(t==undefined) this.StatusMsg('');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3923
		if(this.status) this.WinStatusMsg(t);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3924
		if(this.statusBar) this.StatusBarMsg(t);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3925
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3926
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3927
	StatusBarMsg: function(t)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3928
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3929
		- sets status bar messages
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3930
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3931
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3932
		if(!this.statusBar || !this.statusBarSpan) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3933
		var o = this;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3934
		function setMsg(){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3935
			o.statusBarSpan.innerHTML = t;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3936
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3937
		var d = (t=='') ? (this.statusBarCloseDelay) : 1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3938
		window.setTimeout(setMsg,d);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3939
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3940
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3941
	WinStatusMsg: function(t)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3942
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3943
		- sets window status messages
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3944
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3945
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3946
		if(!this.status) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3947
		window.status = t;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3948
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3949
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3950
	ClearFilters: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3951
	{ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3952
		this.EvtManager(this.Evt.name.clear); 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3953
	},	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3954
	_ClearFilters: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3955
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3956
		- clears grid filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3957
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3958
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3959
		if( !this.fltGrid ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3960
		for(var i=0; i<this.fltIds.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3961
			this.SetFilterValue(i,'');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3962
		if(this.refreshFilters){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3963
			this.activeFilterId = '';	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3964
			this.RefreshFiltersGrid();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3965
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3966
		if(this.rememberPageLen) tf_RemoveCookie(this.pgLenCookie);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3967
		if(this.rememberPageNb) tf_RemoveCookie(this.pgNbCookie);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3968
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3969
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3970
	UnhighlightAll: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3971
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3972
		- removes keyword highlighting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3973
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3974
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3975
		if( this.highlightKeywords && this.searchArgs!=null )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3976
			for(var y=0; y<this.searchArgs.length; y++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3977
				tf_UnhighlightWord( 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3978
					this.tbl,this.searchArgs[y],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3979
					this.highlightCssClass 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3980
				);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3981
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3982
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3983
	RefreshGrid: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3984
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3985
		- Re-generates filters grid
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3986
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3987
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3988
		this.RemoveGrid();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3989
		setFilterGrid(this.id, this.startRow, this.fObj);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3990
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3991
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3992
	__resetGrid: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3993
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3994
		- Only used by AddGrid() method
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3995
		- Resets filtering grid bar if previously removed
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3996
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3997
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3998
		if( this.isFirstLoad ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  3999
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4000
		// grid was removed, grid row element is stored in this.fltGridEl property
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4001
		this.tbl.rows[this.filtersRowIndex].parentNode.insertBefore( 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4002
			this.fltGridEl,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4003
			this.tbl.rows[this.filtersRowIndex]
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4004
		);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4005
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4006
		if( this.isExternalFlt )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4007
		{// filters are appended in external placeholders elements
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4008
			for(var ct=0; ct<this.externalFltTgtIds.length; ct++ )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4009
				if( tf_Id(this.externalFltTgtIds[ct]) )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4010
					tf_Id(this.externalFltTgtIds[ct]).appendChild(this.externalFltEls[ct]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4011
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4012
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4013
		this.nbFilterableRows = this.GetRowsNb();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4014
		this.nbVisibleRows = this.nbFilterableRows;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4015
		this.nbRows = this.tbl.rows.length;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4016
		this.sort = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4017
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4018
		/*** 	ie bug work-around, filters need to be re-generated
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4019
				since row is empty; insertBefore method doesn't seem to work properly 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4020
				with previously generated DOM nodes modified by innerHTML 	***/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4021
		if( this.tbl.rows[this.filtersRowIndex].innerHTML=='' )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4022
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4023
			this.tbl.deleteRow(this.filtersRowIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4024
			this.RemoveGrid();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4025
			this.RemoveExternalFlts();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4026
			this.fltIds = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4027
			this.isFirstLoad = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4028
			this.AddGrid();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4029
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4030
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4031
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4032
		this.hasGrid = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4033
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4034
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4035
	__deferMultipleSelection: function(slc,index,filter)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4036
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4037
		- IE bug: it seems there is no way to make 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4038
		multiple selections programatically, only last 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4039
		selection is kept (multiple select previously 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4040
		populated via DOM)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4041
		- Turn-around: defer selection with a setTimeout
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4042
		If you find an alternative elegant solution to 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4043
		this let me know ;-)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4044
		- For the moment only this solution seems 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4045
		to work!
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4046
		- Params: 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4047
			- slc = select object (select obj)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4048
			- index to be selected (integer)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4049
			- execute filtering (boolean)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4050
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4051
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4052
		if(slc.nodeName.tf_LCase() != 'select') return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4053
		var doFilter = (filter==undefined) ? false : filter;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4054
		var o = this;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4055
		window.setTimeout(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4056
			function(){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4057
				slc.options[0].selected = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4058
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4059
				if(slc.options[index].value=='') 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4060
					slc.options[index].selected = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4061
				else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4062
				slc.options[index].selected = true; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4063
				if(doFilter) o.Filter();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4064
			},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4065
			.1
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4066
		);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4067
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4068
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4069
	__getCustomValues: function(colIndex)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4070
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4071
		- Returns an array [[values],[texts]] with 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4072
		custom values for a given filter
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4073
		- Param: column index (integer)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4074
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4075
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4076
		if(colIndex==undefined) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4077
		var isCustomSlc = (this.hasCustomSlcOptions  //custom select test
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4078
							&& this.customSlcOptions.cols.tf_Has(colIndex));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4079
		if(!isCustomSlc) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4080
		var optTxt = [], optArray = [];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4081
		var index = this.customSlcOptions.cols.tf_IndexByValue(colIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4082
		var slcValues = this.customSlcOptions.values[index];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4083
		var slcTexts = this.customSlcOptions.texts[index];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4084
		var slcSort = this.customSlcOptions.sorts[index];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4085
		for(var r=0; r<slcValues.length; r++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4086
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4087
			optArray.push(slcValues[r]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4088
			if(slcTexts[r]!=undefined)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4089
				optTxt.push(slcTexts[r]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4090
			else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4091
				optTxt.push(slcValues[r]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4092
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4093
		if(slcSort)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4094
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4095
			optArray.sort();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4096
			optTxt.sort();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4097
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4098
		return [optArray,optTxt];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4099
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4100
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4101
	__setCheckListValues: function(o)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4102
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4103
		- Sets checked items information of a checklist
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4104
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4105
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4106
		if(o==null) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4107
		var chkValue = o.value; //checked item value
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4108
		var chkIndex = parseInt(o.id.split('_')[2]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4109
		var filterTag = 'ul', itemTag = 'li';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4110
		var n = o;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4111
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4112
		//ul tag search
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4113
		while(n.nodeName.tf_LCase() != filterTag)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4114
			n = n.parentNode;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4115
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4116
		if(n.nodeName.tf_LCase() != filterTag) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4117
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4118
		var li = n.childNodes[chkIndex];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4119
		var colIndex = n.getAttribute('colIndex');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4120
		var fltValue = n.getAttribute('value'); //filter value (ul tag)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4121
		var fltIndexes = n.getAttribute('indexes'); //selected items (ul tag)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4122
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4123
		if(o.checked)		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4124
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4125
			if(chkValue=='')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4126
			{//show all item
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4127
				if((fltIndexes!=null && fltIndexes!=''))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4128
				{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4129
					var indSplit = fltIndexes.split(this.separator);//items indexes
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4130
					for(var u=0; u<indSplit.length; u++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4131
					{//checked items loop
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4132
						var cChk = tf_Id(this.fltIds[colIndex]+'_'+indSplit[u]); //checked item
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4133
						if(cChk)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4134
						{ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4135
							cChk.checked = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4136
							tf_removeClass(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4137
								n.childNodes[indSplit[u]],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4138
								this.checkListSlcItemCssClass
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4139
							);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4140
						}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4141
					}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4142
				}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4143
				n.setAttribute('value', '');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4144
				n.setAttribute('indexes', '');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4145
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4146
			} else {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4147
				fltValue = (fltValue) ? fltValue : '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4148
				chkValue = (fltValue+' '+chkValue +' '+this.orOperator).tf_Trim();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4149
				chkIndex = fltIndexes + chkIndex + this.separator;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4150
				n.setAttribute('value', chkValue );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4151
				n.setAttribute('indexes', chkIndex);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4152
				//1st option unchecked
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4153
				if(tf_Id(this.fltIds[colIndex]+'_0'))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4154
					tf_Id(this.fltIds[colIndex]+'_0').checked = false; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4155
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4156
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4157
			if(li.nodeName.tf_LCase() == itemTag)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4158
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4159
				tf_removeClass(n.childNodes[0],this.checkListSlcItemCssClass);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4160
				tf_addClass(li,this.checkListSlcItemCssClass);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4161
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4162
		} else { //removes values and indexes
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4163
			if(chkValue!='')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4164
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4165
				var replaceValue = new RegExp(tf_RegexpEscape(chkValue+' '+this.orOperator));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4166
				fltValue = fltValue.replace(replaceValue,'');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4167
				n.setAttribute('value', fltValue);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4168
				
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4169
				var replaceIndex = new RegExp(tf_RegexpEscape(chkIndex + this.separator));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4170
				fltIndexes = fltIndexes.replace(replaceIndex,'');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4171
				n.setAttribute('indexes', fltIndexes);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4172
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4173
			if(li.nodeName.tf_LCase() == itemTag)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4174
				tf_removeClass(li,this.checkListSlcItemCssClass);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4175
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4176
			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4177
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4178
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4179
	__containsStr: function(arg,data,fltType,forceMatch)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4180
	/*==============================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4181
		- Checks if data contains searched arg,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4182
		returns a boolean
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4183
		- Params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4184
			- arg: searched string
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4185
			- data: data string
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4186
			- fltType: filter type (string, 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4187
			exact match by default for selects - 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4188
			optional)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4189
			- forceMatch: boolean forcing exact
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4190
			match (optional)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4191
	===============================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4192
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4193
		// Improved by Cedric Wartel (cwl)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4194
		// automatic exact match for selects and special characters are now filtered
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4195
		var regexp;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4196
		var modifier = (this.matchCase) ? 'g' : 'gi';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4197
		var exactMatch = (forceMatch==undefined) ? this.exactMatch : forceMatch;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4198
		if(exactMatch || (fltType!=this.fltTypeInp && fltType!=undefined))//Váry Péter's patch
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4199
			regexp = new RegExp('(^\\s*)'+tf_RegexpEscape(arg)+'(\\s*$)', modifier);							
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4200
		else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4201
			regexp = new RegExp(tf_RegexpEscape(arg), modifier);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4202
		return regexp.test(data);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4203
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4204
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4205
	IncludeFile: function(fileId, filePath, callback, type)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4206
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4207
		var ftype = (type==undefined) ? 'script' : type;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4208
		var isImported = tf_isImported(filePath, ftype);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4209
		if( isImported ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4210
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4211
		var o = this, isLoaded = false, file;			
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4212
		var head = tf_Tag(document,'head')[0];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4213
		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4214
		if(ftype.tf_LCase() == 'link')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4215
			file = tf_CreateElm(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4216
						'link', ['id',fileId], ['type','text/css'],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4217
						['rel','stylesheet'], ['href',filePath]
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4218
					);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4219
		else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4220
			file = tf_CreateElm(
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4221
						'script', ['id',fileId], 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4222
						['type','text/javascript'], ['src',filePath]
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4223
					);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4224
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4225
		file.onload = file.onreadystatechange = function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4226
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4227
			if (!isLoaded && 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4228
				(!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4229
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4230
				isLoaded = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4231
				if (typeof callback === 'function')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4232
					callback(o);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4233
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4234
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4235
		head.appendChild(file);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4236
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4237
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4238
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4239
		- Additional public methods for developers
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4240
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4241
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4242
	HasGrid: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4243
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4244
		- checks if table has a filter grid
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4245
		- returns a boolean
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4246
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4247
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4248
		return this.hasGrid;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4249
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4250
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4251
	GetFiltersId: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4252
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4253
		- returns an array containing filters ids
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4254
		- Note that hidden filters are also returned
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4255
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4256
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4257
		if( !this.hasGrid ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4258
		return this.fltIds;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4259
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4260
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4261
	GetValidRowsIndex: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4262
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4263
		- returns an array containing valid rows indexes 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4264
		(valid rows upon filtering)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4265
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4266
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4267
		if( !this.hasGrid ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4268
		return this.validRowsIndex;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4269
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4270
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4271
	GetFiltersRowIndex: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4272
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4273
		- Returns the index of the row containing the 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4274
		filters
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4275
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4276
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4277
		if( !this.hasGrid ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4278
		return this.filtersRowIndex;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4279
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4280
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4281
	GetHeadersRowIndex: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4282
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4283
		- Returns the index of the headers row
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4284
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4285
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4286
		if( !this.hasGrid ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4287
		return this.headersRow;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4288
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4289
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4290
	GetStartRowIndex: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4291
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4292
		- Returns the index of the row from which will 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4293
		start the filtering process (1st filterable row)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4294
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4295
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4296
		if( !this.hasGrid ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4297
		return this.refRow;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4298
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4299
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4300
	GetLastRowIndex: function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4301
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4302
		- Returns the index of the last row
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4303
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4304
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4305
		if( !this.hasGrid ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4306
		return (this.nbRows-1);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4307
	},
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4308
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4309
	AddPaging: function(filterTable)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4310
	/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4311
		- Adds paging feature if filter grid bar is 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4312
		already set
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4313
		- Param(s):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4314
			- execFilter: if true table is filtered 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4315
			(boolean)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4316
	=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4317
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4318
		if( !this.hasGrid || this.paging ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4319
		this.paging = true; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4320
		this.isPagingRemoved = true; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4321
		this.SetPaging();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4322
		if(filterTable) this.Filter();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4323
	}	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4324
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4325
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4326
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4327
/* --- */
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4328
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4329
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4330
	- General TF utility fns below
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4331
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4332
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4333
function tf_GetChildElms(n)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4334
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4335
	- checks passed node is a ELEMENT_NODE nodeType=1
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4336
	- removes TEXT_NODE nodeType=3  
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4337
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4338
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4339
	if(n!=undefined && n.nodeType == 1)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4340
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4341
		var enfants = n.childNodes;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4342
		for(var i=0; i<enfants.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4343
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4344
			var child = enfants[i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4345
			if(child.nodeType == 3)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4346
			{ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4347
				n.removeChild(child);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4348
				i = -1;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4349
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4350
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4351
		return n;	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4352
	}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4353
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4354
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4355
function tf_GetNodeText(n)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4356
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4357
	- returns text + text of child nodes of a node
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4358
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4359
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4360
	/*if(n.innerText) return n.innerText.tf_Trim();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4361
	var s = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4362
	var enfants = n.childNodes;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4363
	for(var i=0; i<enfants.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4364
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4365
		var child = enfants[i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4366
		if(child.nodeType == 3) s+= child.data;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4367
		else s+= tf_GetNodeText(child).tf_Trim();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4368
	}*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4369
	var s = n.textContent || n.innerText || n.innerHTML.replace(/\<[^<>]+>/g, '');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4370
	return s.replace(/^\s+/, '').replace(/\s+$/, '');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4371
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4372
	return s.tf_Trim();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4373
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4374
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4375
function tf_isObj(varname)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4376
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4377
	- checks if var exists and is an object
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4378
	- returns a boolean
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4379
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4380
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4381
	var isO = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4382
	if( window[varname] && (typeof window[varname]).tf_LCase()=='object' )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4383
		isO = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4384
	return isO;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4385
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4386
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4387
function tf_isFn(fn)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4388
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4389
	- checks if passed param is a function
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4390
	- returns a boolean
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4391
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4392
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4393
	var isFn = false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4394
	if(fn && (typeof fn).tf_LCase() == 'function')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4395
		isFn = true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4396
	return isFn;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4397
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4398
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4399
function tf_Id(id)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4400
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4401
	- this is just a getElementById shortcut
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4402
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4403
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4404
	return document.getElementById( id );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4405
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4406
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4407
function tf_Tag(o,tagname)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4408
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4409
	- this is just a getElementsByTagName shortcut
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4410
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4411
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4412
	return o.getElementsByTagName( tagname );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4413
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4414
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4415
function tf_RegexpEscape(s)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4416
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4417
	- escapes special characters [\^$.|?*+() 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4418
	for regexp
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4419
	- Many thanks to Cedric Wartel for this fn
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4420
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4421
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4422
	// traite les caractères spéciaux [\^$.|?*+()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4423
	//remplace le carctère c par \c
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4424
	function escape(e)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4425
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4426
		a = new RegExp('\\'+e,'g');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4427
		s = s.replace(a,'\\'+e);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4428
	}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4429
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4430
	chars = new Array('\\','[','^','$','.','|','?','*','+','(',')');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4431
	//for(e in chars) escape(chars[e]); // compatibility issue with prototype
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4432
	for(var e=0; e<chars.length; e++) escape(chars[e]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4433
	return s;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4434
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4435
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4436
function tf_CreateElm(tag)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4437
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4438
	- creates an html element with its attributes
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4439
	- accepts the following params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4440
		- a string defining the html tag
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4441
		to create
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4442
		- an undetermined # of arrays containing the
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4443
		couple 'attribute name','value' ['id','myId']
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4444
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4445
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4446
	if(tag==undefined || tag==null || tag=='') return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4447
	var el = document.createElement( tag );		
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4448
	if(arguments.length>1)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4449
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4450
		for(var i=0; i<arguments.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4451
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4452
			var argtype = typeof arguments[i];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4453
			switch( argtype.tf_LCase() )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4454
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4455
				case 'object':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4456
					if( arguments[i].length==2 )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4457
					{						
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4458
						el.setAttribute( arguments[i][0],arguments[i][1] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4459
					}//if array length==2
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4460
				break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4461
			}//switch
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4462
		}//for i
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4463
	}//if args
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4464
	return el;	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4465
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4466
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4467
function tf_CreateText(node)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4468
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4469
	- this is just a document.createTextNode shortcut
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4470
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4471
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4472
	return document.createTextNode( node );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4473
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4474
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4475
function tf_CreateOpt(text,value,isSel)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4476
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4477
	- creates an option element and returns it:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4478
		- text: displayed text (string)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4479
		- value: option value (string)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4480
		- isSel: is selected option (boolean)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4481
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4482
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4483
	var isSelected = isSel ? true : false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4484
	var opt = (isSelected) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4485
		? tf_CreateElm('option',['value',value],['selected','true'])
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4486
		: tf_CreateElm('option',['value',value]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4487
	opt.appendChild(tf_CreateText(text));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4488
	return opt;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4489
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4490
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4491
function tf_CreateCheckItem(chkIndex, chkValue, labelText)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4492
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4493
	- creates an checklist item and returns it
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4494
	- accepts the following params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4495
		- chkIndex: index of check item (number)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4496
		- chkValue: check item value (string)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4497
		- labelText: check item label text (string)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4498
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4499
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4500
	if(chkIndex==undefined || chkValue==undefined || labelText==undefined )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4501
		return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4502
	var li = tf_CreateElm('li');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4503
	var label = tf_CreateElm('label',['for',chkIndex]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4504
	var check = tf_CreateElm( 'input',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4505
					['id',chkIndex],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4506
					['name',chkIndex],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4507
					['type','checkbox'],
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4508
					['value',chkValue] );
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4509
	label.appendChild(check);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4510
	label.appendChild(tf_CreateText(labelText));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4511
	li.appendChild(label);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4512
	li.label = label;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4513
	li.check = check;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4514
	return li;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4515
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4516
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4517
function tf_HighlightWord( node,word,cssClass )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4518
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4519
	- highlights keyword found in passed node
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4520
	- accepts the following params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4521
		- node
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4522
		- word to search
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4523
		- css class name for highlighting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4524
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4525
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4526
	// Iterate into this nodes childNodes
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4527
	if(node.hasChildNodes) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4528
		for( var i=0; i<node.childNodes.length; i++ )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4529
			tf_HighlightWord(node.childNodes[i],word,cssClass);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4530
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4531
	// And do this node itself
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4532
	if(node.nodeType == 3) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4533
	{ // text node
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4534
		var tempNodeVal = node.nodeValue.tf_LCase();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4535
		var tempWordVal = word.tf_LCase();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4536
		if(tempNodeVal.indexOf(tempWordVal) != -1) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4537
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4538
			var pn = node.parentNode;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4539
			if(pn.className != cssClass) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4540
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4541
				// word has not already been highlighted!
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4542
				var nv = node.nodeValue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4543
				var ni = tempNodeVal.indexOf(tempWordVal);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4544
				// Create a load of replacement nodes
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4545
				var before = tf_CreateText(nv.substr(0,ni));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4546
				var docWordVal = nv.substr(ni,word.length);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4547
				var after = tf_CreateText(nv.substr(ni+word.length));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4548
				var hiwordtext = tf_CreateText(docWordVal);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4549
				var hiword = tf_CreateElm('span');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4550
				hiword.className = cssClass;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4551
				hiword.appendChild(hiwordtext);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4552
				pn.insertBefore(before,node);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4553
				pn.insertBefore(hiword,node);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4554
				pn.insertBefore(after,node);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4555
				pn.removeChild(node);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4556
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4557
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4558
	}// if node.nodeType == 3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4559
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4560
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4561
function tf_UnhighlightWord( node,word,cssClass )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4562
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4563
	- removes highlights found in passed node
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4564
	- accepts the following params:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4565
		- node
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4566
		- word to search
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4567
		- css class name for highlighting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4568
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4569
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4570
	// Iterate into this nodes childNodes
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4571
	if(node.hasChildNodes)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4572
		for( var i=0; i<node.childNodes.length; i++ )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4573
			tf_UnhighlightWord(node.childNodes[i],word,cssClass);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4574
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4575
	// And do this node itself
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4576
	if(node.nodeType == 3) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4577
	{ // text node
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4578
		var tempNodeVal = node.nodeValue.tf_LCase();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4579
		var tempWordVal = word.tf_LCase();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4580
		if(tempNodeVal.indexOf(tempWordVal) != -1)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4581
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4582
			var pn = node.parentNode;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4583
			if(pn.className == cssClass)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4584
			{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4585
				var prevSib = pn.previousSibling;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4586
				var nextSib = pn.nextSibling;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4587
				nextSib.nodeValue = prevSib.nodeValue + node.nodeValue + nextSib.nodeValue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4588
				prevSib.nodeValue = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4589
				node.nodeValue = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4590
			}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4591
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4592
	}// if node.nodeType == 3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4593
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4594
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4595
function tf_addEvent(obj,event_name,func_name)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4596
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4597
	if (obj.attachEvent)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4598
		obj.attachEvent('on'+event_name, func_name);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4599
	else if(obj.addEventListener)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4600
		obj.addEventListener(event_name,func_name,true);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4601
	else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4602
		obj['on'+event_name] = func_name;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4603
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4604
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4605
function tf_removeEvent(obj,event_name,func_name)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4606
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4607
	if (obj.detachEvent)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4608
		obj.detachEvent('on'+event_name,func_name);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4609
	else if(obj.removeEventListener)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4610
		obj.removeEventListener(event_name,func_name,true);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4611
	else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4612
		obj['on'+event_name] = null;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4613
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4614
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4615
function tf_NumSortAsc(a, b){ return (a-b); }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4616
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4617
function tf_NumSortDesc(a, b){ return (b-a); }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4618
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4619
function tf_IgnoreCaseSort(a, b) {
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4620
	var x = a.tf_LCase();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4621
	var y = b.tf_LCase();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4622
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4623
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4624
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4625
String.prototype.tf_MatchCase = function (mc) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4626
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4627
	if (!mc) return this.tf_LCase();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4628
	else return this.toString();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4629
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4630
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4631
String.prototype.tf_Trim = function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4632
{//optimised by Anthony Maes
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4633
	return this.replace(/(^[\s\xA0]*)|([\s\xA0]*$)/g,'');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4634
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4635
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4636
String.prototype.tf_LCase = function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4637
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4638
	return this.toLowerCase();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4639
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4640
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4641
String.prototype.tf_UCase = function()
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4642
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4643
	return this.toUpperCase();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4644
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4645
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4646
Array.prototype.tf_Has = function(s,mc) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4647
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4648
	//return this.indexOf(s) >= 0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4649
	var sCase = (mc==undefined) ? false : mc;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4650
	for (i=0; i<this.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4651
		if (this[i].toString().tf_MatchCase(sCase)==s) return true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4652
	return false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4653
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4654
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4655
Array.prototype.tf_IndexByValue = function(s,mc) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4656
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4657
	var sCase = (mc==undefined) ? false : mc;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4658
	for (i=0; i<this.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4659
		if (this[i].toString().tf_MatchCase(sCase)==s) return i;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4660
	return (-1);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4661
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4662
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4663
// Is this IE 6? the ultimate browser sniffer ;-)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4664
//window['tf_isIE'] = (window.innerHeight) ? false : true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4665
window['tf_isIE'] = (window.innerHeight) ? false : /msie|MSIE 6/.test(navigator.userAgent) ? true : false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4666
window['tf_isIE7'] = (window.innerHeight) ? false : /msie|MSIE 7/.test(navigator.userAgent) ? true : false;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4667
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4668
function tf_hasClass(elm,cl) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4669
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4670
	return elm.className.match(new RegExp('(\\s|^)'+cl+'(\\s|$)'));
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4671
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4672
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4673
function tf_addClass(elm,cl) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4674
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4675
	if (!tf_hasClass(elm,cl))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4676
		elm.className += ' '+cl;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4677
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4678
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4679
function tf_removeClass(elm,cl) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4680
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4681
	if ( !tf_hasClass(elm,cl) ) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4682
	var reg = new RegExp('(\\s|^)'+cl+'(\\s|$)');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4683
	elm.className = elm.className.replace(reg,' ');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4684
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4685
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4686
function tf_isValidDate(dateStr, format) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4687
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4688
	if (format == null) { format = 'DMY'; }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4689
	format = format.toUpperCase();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4690
	if (format.length != 3) { format = 'DMY'; }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4691
	if ( (format.indexOf('M') == -1) || (format.indexOf('D') == -1) ||
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4692
		(format.indexOf('Y') == -1) ) { format = 'DMY'; }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4693
	if (format.substring(0, 1) == 'Y') { // If the year is first
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4694
		  var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4695
		  var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4696
	} else if (format.substring(1, 2) == 'Y') { // If the year is second
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4697
		  var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4698
		  var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4699
	} else { // The year must be third
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4700
		  var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4701
		  var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4702
	}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4703
	// If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4704
	if ( (reg1.test(dateStr) == false) && (reg2.test(dateStr) == false) ) { return false; }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4705
	var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4706
	// Check to see if the 3 parts end up making a valid date
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4707
	if (format.substring(0, 1) == 'M') { var mm = parts[0]; } else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4708
		if (format.substring(1, 2) == 'M') { var mm = parts[1]; } else { var mm = parts[2]; }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4709
	if (format.substring(0, 1) == 'D') { var dd = parts[0]; } else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4710
		if (format.substring(1, 2) == 'D') { var dd = parts[1]; } else { var dd = parts[2]; }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4711
	if (format.substring(0, 1) == 'Y') { var yy = parts[0]; } else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4712
		if (format.substring(1, 2) == 'Y') { var yy = parts[1]; } else { var yy = parts[2]; }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4713
	if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4714
	if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4715
	var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4716
	if (parseFloat(dd) != dt.getDate()) { return false; }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4717
	if (parseFloat(mm)-1 != dt.getMonth()) { return false; }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4718
	return true;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4719
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4720
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4721
function tf_formatDate(dateStr, format)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4722
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4723
	if(format==null) format = 'DMY';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4724
	var oDate, parts;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4725
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4726
	function y2kDate(yr){
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4727
		if(yr == undefined) return 0;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4728
		if(yr.length>2) return yr;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4729
		var y;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4730
		if(yr <= 99 && yr>50) //>50 belong to 1900
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4731
			y = '19' + yr;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4732
		if(yr<50 || yr =='00') //<50 belong to 2000
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4733
			y = '20' + yr;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4734
		return y;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4735
	}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4736
	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4737
	switch(format.toUpperCase())
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4738
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4739
		case 'DMY':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4740
			parts = dateStr.replace(/^(0?[1-9]|[12][0-9]|3[01])([- \/.])(0?[1-9]|1[012])([- \/.])((\d\d)?\d\d)$/,'$1 $3 $5').split(' ');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4741
			oDate = new Date(y2kDate(parts[2]),parts[1]-1,parts[0]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4742
		break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4743
		case 'MDY':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4744
			parts = dateStr.replace(/^(0?[1-9]|1[012])([- \/.])(0?[1-9]|[12][0-9]|3[01])([- \/.])((\d\d)?\d\d)$/,'$1 $3 $5').split(' ');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4745
			oDate = new Date(y2kDate(parts[2]),parts[0]-1,parts[1]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4746
		break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4747
		case 'YMD':
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4748
			parts = dateStr.replace(/^((\d\d)?\d\d)([- \/.])(0?[1-9]|1[012])([- \/.])(0?[1-9]|[12][0-9]|3[01])$/,'$1 $4 $6').split(' ');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4749
			oDate = new Date(y2kDate(parts[0]),parts[1]-1,parts[2]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4750
		break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4751
		default: //in case format is not correct
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4752
			parts = dateStr.replace(/^(0?[1-9]|[12][0-9]|3[01])([- \/.])(0?[1-9]|1[012])([- \/.])((\d\d)?\d\d)$/,'$1 $3 $5').split(' ');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4753
			oDate = new Date(y2kDate(parts[2]),parts[1]-1,parts[0]);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4754
		break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4755
	}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4756
	return oDate;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4757
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4758
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4759
function tf_removeNbFormat(data,format)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4760
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4761
	if(data==null) return;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4762
	if(format==null) format = 'us';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4763
	var n = data;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4764
	if( format.tf_LCase()=='us' )
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4765
		n =+ n.replace(/[^\d\.-]/g,'');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4766
	else
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4767
		n =+ n.replace(/[^\d\,-]/g,'').replace(',','.');
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4768
	return n;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4769
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4770
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4771
function tf_isImported(filePath,type)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4772
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4773
	var isImported = false; 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4774
	var importType = (type==undefined) ? 'script' : type;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4775
	var files = tf_Tag(document,importType);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4776
	for (var i=0; i<files.length; i++)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4777
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4778
		if(files[i].src == undefined) continue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4779
		if(files[i].src.match(filePath))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4780
		{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4781
			isImported = true;	
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4782
			break;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4783
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4784
	}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4785
	return isImported;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4786
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4787
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4788
function tf_WriteCookie(name, value, hours)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4789
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4790
	var expire = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4791
	if(hours != null)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4792
	{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4793
		expire = new Date((new Date()).getTime() + hours * 3600000);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4794
		expire = '; expires=' + expire.toGMTString();
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4795
	}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4796
	document.cookie = name + '=' + escape(value) + expire;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4797
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4798
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4799
function tf_ReadCookie(name)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4800
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4801
	var cookieValue = '';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4802
	var search = name + '=';
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4803
	if(document.cookie.length > 0)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4804
	{ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4805
		offset = document.cookie.indexOf(search);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4806
		if (offset != -1)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4807
		{ 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4808
			offset += search.length;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4809
			end = document.cookie.indexOf(';', offset);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4810
			if (end == -1) end = document.cookie.length;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4811
			cookieValue = unescape(document.cookie.substring(offset, end))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4812
		}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4813
	}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4814
	return cookieValue;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4815
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4816
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4817
function tf_CookieValueArray(name)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4818
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4819
	var val = tf_ReadCookie(name); //reads the cookie
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4820
	var arr = val.split(','); //creates an array with filters' values
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4821
	return arr;
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4822
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4823
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4824
function tf_CookieValueByIndex(name, index)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4825
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4826
	var val = tf_CookieValueArray(name); //reads the cookie
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4827
	return val[index];
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4828
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4829
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4830
function tf_RemoveCookie(name)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4831
{
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4832
	tf_WriteCookie(name,'',-1);
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4833
}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4834
/* --- */
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4835
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4836
/*====================================================
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4837
	- Backward compatibility fns
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4838
=====================================================*/
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4839
function grabEBI(id){ return tf_Id( id ); }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4840
function grabTag(obj,tagname){ return tf_Tag(obj,tagname); }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4841
function tf_GetCellText(n){ return tf_GetNodeText(n); }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4842
function tf_isObject(varname){ return tf_isObj(varname); }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
  4843
/* --- */