function Pager(totalnumber, itemsPerPage) {
    this.itemsPerPage = itemsPerPage;
    this.currentPage = 1;
    this.pages = 0;
    this.inited = false;
    
    this.showRecords = function(from, to, curPage, redirect) {

		if(redirect == 'search'){
			
			var rows = totalnumber;
			// i starts from 1 to skip table header row
			for (var i = 1; i <= rows; i++) {
				if (i < from || i > to)
				{
					document.getElementById("box_title_"+i).style.display = 'none';
				   document.getElementById("show_"+i).style.display = 'none';
				}
				else
				{
					 document.getElementById("box_title_"+i).style.display = '';
				   document.getElementById("show_"+i).style.display = '';
				}
			}
		}else if(redirect != 'no' && redirect != 'search'){
			//window.location = "?f="+from+"&t="+to+"&page="+curPage+"&redirect=no";
		}
		
        var rows = totalnumber;
        // i starts from 1 to skip table header row
        /*for (var i = 1; i <= rows; i++) {
            if (i < from || i > to)
			{
                document.getElementById("box_title_"+i).style.display = 'none';
               document.getElementById("show_"+i).style.display = 'none';                
			}
			else
			{
                 document.getElementById("box_title_"+i).style.display = '';
               document.getElementById("show_"+i).style.display = '';     
			}
		}*/
    }
    
    this.showPage = function(pageNumber, redirect) {
    	if (! this.inited) {
    		alert("not inited");
    		return;
    	}

        var oldPageAnchor = document.getElementById('pg'+this.currentPage);
        oldPageAnchor.className = '';
        
        this.currentPage = pageNumber;
        var newPageAnchor = document.getElementById('pg'+this.currentPage);
        newPageAnchor.className = 'paging-current';
        
        var from = (pageNumber - 1) * itemsPerPage + 1;
        var to = from + itemsPerPage - 1;
        this.showRecords(from, to, pageNumber, redirect);
		if(redirect == 'search'){
			this.showPageNavSearch("pager", "pagenav");
		}else{
			this.showPageNav("pager", "pagenav");
		}
	    
    }   
    
    this.prev = function() {
        if (this.currentPage > 1)
            this.showPage(this.currentPage - 1);
    }

    this.next = function() {
        if (this.currentPage < this.pages) {
            this.showPage(this.currentPage + 1);
        }
    }


	this.prevS = function() {
        if (this.currentPage > 1)
            this.showPage(this.currentPage - 1,"search");
    }

    this.nextS = function() {
        if (this.currentPage < this.pages) {
            this.showPage(this.currentPage + 1,"search");
        }
    }

    
    this.init = function(totalnumber) {
        var records = totalnumber; 
        this.pages = Math.ceil(records / itemsPerPage);
        this.inited = true;
    }

    this.showPageNav = function(pagerName, positionId) {
    	if (! this.inited) {
    		alert("not inited");
    		return;
    	}
    	var pagecount = 10;
	var page = this.currentPage-5>0?this.currentPage-5:1;
	if (this.pages - this.currentPage < 5 && page > 5) page = page - 4 + this.pages - this.currentPage;
    	var element = document.getElementById(positionId);

    	var pagerHtml = '';
	if (this.currentPage != 1) pagerHtml += '<a onclick="' + pagerName + '.prev();"> < </a>';
	for (; page < this.currentPage; page++,pagecount--)
		pagerHtml += '<a id="pg' + page + '" onclick="' + pagerName + '.showPage(' + page + ');">' + page + '</a>';
	pagerHtml += '<a id="pg' + page + '" onclick="' + pagerName + '.showPage(' + page + ');" class="paging-current" >' + page + '</a>';
        for ( page = page+1, pagecount = pagecount - 1; page <= this.pages && pagecount > 0; page++, pagecount--)
            pagerHtml += '<a id="pg' + page + '" onclick="' + pagerName + '.showPage(' + page + ');">' + page + '</a>';
	if (this.currentPage != this.pages)
	        pagerHtml += '<a onclick="'+pagerName+'.next();" >></a>';


        element.innerHTML = pagerHtml;
    }

	this.showPageNavSearch = function(pagerName, positionId) {
    	if (! this.inited) {
    		alert("not inited");
    		return;
    	}
    	var pagecount = 10;
	var page = this.currentPage-5>0?this.currentPage-5:1;
	if (this.pages - this.currentPage < 5 && page > 5) page = page - 4 + this.pages - this.currentPage;
    	var element = document.getElementById(positionId);

    	var pagerHtml = '';
	if (this.currentPage != 1) pagerHtml += '<a onclick="' + pagerName + '.prevS();"> < </a>';
	for (; page < this.currentPage; page++,pagecount--)
		pagerHtml += '<a id="pg' + page + '" onclick="' + pagerName + '.showPage(' + page + ',\'search\');">' + page + '</a>';
	pagerHtml += '<a id="pg' + page + '" onclick="' + pagerName + '.showPage(' + page + ',\'search\');" class="paging-current" >' + page + '</a>';
        for ( page = page+1, pagecount = pagecount - 1; page <= this.pages && pagecount > 0; page++, pagecount--)
            pagerHtml += '<a id="pg' + page + '" onclick="' + pagerName + '.showPage(' + page + ',\'search\');">' + page + '</a>';
	if (this.currentPage != this.pages)
	        pagerHtml += '<a onclick="'+pagerName+'.nextS();" >></a>';


        element.innerHTML = pagerHtml;
    }
}


