﻿var Paging = false
var CurrentPage = 0
var NumPages = 1
var NumItems = 0
var NoPaging = true
var FilterArgs = ''
function list_init(currentpage, numpages, numitems, nopaging, filters, applyfilter, filterargs) {
	Paging = currentpage > 0
	CurrentPage = currentpage
	NumPages = numpages
	NumItems = numitems
	NoPaging = nopaging
	FilterArgs = filterargs
}
function list_refresh() {
	page.parameters['page'] = CurrentPage
	document.location.replace(page.location())
}
function list_search(s) {
	page.parameters['search'] = s
	document.location.replace(page.location())
}
function list_next() {
	if(Paging && CurrentPage<NumPages)
		CurrentPage++
	list_refresh()
}
function list_previous() {
	if(Paging && CurrentPage>1)
		CurrentPage--
	list_refresh()
}
function list_first() {
	if(Paging && CurrentPage>1)
		CurrentPage=1
	list_refresh()
}
function list_last() {
	if(Paging && CurrentPage<NumPages)
		CurrentPage=NumPages
	list_refresh()
}
function list_page(currentpage) {
	Paging = currentpage > 0
	CurrentPage = currentpage
	list_refresh()
}
function list_sort_active() {
	var s = page.parameters['order']
	return typeof(s)=='string' && s!=''
}
function list_sort_set(s) {
	page.parameters['order'] = s
	if(Paging)
		CurrentPage = 1
	list_refresh()
}
function list_sort_reset() {
	if(list_sort_active())
		list_sort_set('')
}
function list_sort_toggle(id, m) {
	var s, sf, k, n, i, del, done
	k = m + id
	n = (m=='U'?'D':'U') + id
	s = page.parameters['order']
	if(typeof(s)!='string' || s=='')
		s = k
	else {
		sf = s.split(',')
		s = ''
		del = ''
		done = false
		for(i in sf) {
			if(sf[i]==k)
				done = true
			else {
				if(sf[i]==n) {
					sf[i]=k
					done = true
				}
				s+= del + sf[i]
				del = ','
			}
		}
		if(!done)
			s+= del + k
	}
	if(s!=page.parameters['order'])
		list_sort_set(s)
}
function list_filters_apply(value, page_name) {
	page.parameters['applyfilter'] = value ? '' : null
	document.location.replace(page.location(page_name))
}
function list_set_filter(value, page_name) {
	var i
	for(i in value) 
		if(value[i].Value!=null && value[i].Value!='') {
			if(value[i].Field!=null)
				page.parameters['ff' + i] = encodeURIComponent(value[i].Field)
			page.parameters['fv' + i] = encodeURIComponent(value[i].Value)
			if(value[i].Text!=null)
				page.parameters['ft' + i] = encodeURIComponent(value[i].Text)
			if(value[i].Operator!=null)
				page.parameters['fo' + i] = encodeURIComponent(value[i].Operator)
			if(value[i].Type!=null)
				page.parameters['fd' + i] = encodeURIComponent(value[i].Type)
		}
		else {
			page.parameters['ff' + i] = null
			page.parameters['fv' + i] = null
			page.parameters['ft' + i] = null
			page.parameters['fo' + i] = null
			page.parameters['fd' + i] = null
		}
	list_filters_apply(true, page_name)
}
