﻿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)
}
