﻿// general helper functions
function getElementFromID(id) {
    var el = (document.getElementById) ? document.getElementById(id) : (document.all) ? document.all[id] : (document.layers) ? document.layers[id] : null;
    if (el) el.css = (el.style) ? el.style : el;
    return el;
}
function getElementsByClassName(element, classname, node) {
    if (!node) node = document.getElementsByTagName('body')[0];
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName(element);
    for (var i = 0, j = els.length; i < j; i++)
        if (re.test(els[i].className)) a.push(els[i]);
    return a;
}
// paging specifics
var currentPage = 0;
var totalPages = 1;
var pageSize = 1;
var totalItems = 0;
var elementName = '';
var elementClassName = '';
var headingPrefix = 'Search Results';

function initPaging(element, classname, pagesize, totalitems, heading) {
    headingPrefix = heading;
    pageSize = pagesize;
    totalItems = totalitems;
    totalPages = Math.ceil(totalItems / pageSize);
    elementName = element;
    elementClassName = classname;
    var x = getElementFromID('pageControls');
    if (x && x.style) {
        x.style.display = 'block';
        return setPage(1);
    }
    else return false;
}
function setPage(page) {
    if (currentPage != page) {
        var a = getElementsByClassName(elementName, elementClassName, null);
        if (a) {
            for (var i = 0; i < a.length; i++) {
                if (((page - 1) * pageSize) <= i && (page * pageSize) > i) a[i].style.display = 'block';
                else a[i].style.display = 'none';
            }
        }
        enablePageLink(currentPage);
        currentPage = page;
        disablePageLink(currentPage);
        var x = getElementFromID('searchResultsHeader');
        if (x && x.innerHTML) {
            x.innerHTML = headingPrefix + " - page " + currentPage + " of " + totalPages;
        }
        if (1 >= currentPage) disablePreviousLink();
        else enablePreviousLink();
        if (totalPages <= currentPage) disableNextLink();
        else enableNextLink();
        if (window && window.scrollTo) window.scrollTo(0, 0);
        return false;
    }
    else return false;
}
function nextPage() {
    if (totalPages > currentPage) {
        return setPage(currentPage + 1);
    }
    else return false;
}
function previousPage() {
    if (1 < currentPage) {
        return setPage(currentPage - 1);
    }
    else return false;
}
function enablePageLink(page) {
    var x = getElementFromID('pageLink' + page);
    if (x && x.style) x.className = '';
}
function disablePageLink(page) {
    var x = getElementFromID('pageLink' + page);
    if (x && x.style) x.className = 'selected'
}
function enablePreviousLink() {
    var x = getElementFromID('pageLinkPrevious');
    if (x && x.style) x.style.display = 'block';
}
function disablePreviousLink() {
    var x = getElementFromID('pageLinkPrevious');
    if (x && x.style) x.style.display = 'none';
}
function enableNextLink() {
    var x = getElementFromID('pageLinkNext');
    if (x && x.style) x.style.display = 'block';
}
function disableNextLink() {
    var x = getElementFromID('pageLinkNext');
    if (x && x.style) x.style.display = 'none';
}