// paging
var pgArrowLeft, pgArrowRight, pgStart, pgEnd;
var pgElPages = new Array();
var pgListPages, pgTotal, pgPage, pgPaging, pgPages;

// setup paging element
function pgSetup(list_pages, total, page, paging)
{
	// set constants
	pgListPages = list_pages;
	pgTotal = total;
	pgPage = page;
	pgPaging = paging;
	pgPages = Math.ceil(total / paging);
	
	// find elements
	pgStart = document.getElementById('pg_start');
	pgEnd = document.getElementById('pg_end');
	pgArrowLeft = document.getElementById('pg_left');
	pgArrowRight = document.getElementById('pg_right');
	
	for (var i = 1; i <= list_pages; i++)
	{
		pgElPages[i] = document.getElementById('pg_' + i);
	}
}

// scroll
function pgScroll(dir, step)
{
	if (typeof(step) == 'undefined') step = 1;
	
	// getting current values
	var re = /^\[(\d+)\]$/;
	var values = new Array();
	for (var i = 1; i <= pgListPages; i++)
	{
		var tmp = pgElPages[i].firstChild.nodeValue;
		values[i] = parseInt(tmp.match(re)[1]);
	}
	
	// modyfying values
	if ((dir == 0) || (dir == 'left'))
	{
		// scroll left
		if (values[1] != 1)
		{
			for (var i = 1; i <= pgListPages; i++) values[i]--;
		}
	}
	else if ((dir == 1) || (dir == 'right'))
	{
		// scroll right
		if (values[pgListPages] != pgPages)
		{
			for (var i = 1; i <= pgListPages; i++) values[i]++;
		}
	}
	
	// arrow left // arrow start
	if (values[1] == 1)
	{
		// arrow left
		pgArrowLeft.className = 'page_invisible';
		pgArrowLeft.setAttribute('title', '');
		pgArrowLeft.onclick = function(){};
		// arrow start
		pgStart.className = 'page_invisible';
		pgStart.setAttribute('title', '');
	}
	else
	{
		// arrow left
		pgArrowLeft.className = 'page_link';
		pgArrowLeft.setAttribute('title', 'Назад');
		pgArrowLeft.onclick = function(){ pgScroll('left', step); };
		// arrow start
		pgStart.className = 'page_link';
		pgStart.setAttribute('title', 'Страница 1');
	}
	
	// arrow right // arrow end
	if (values[pgListPages] == pgPages)
	{
		// arrow right
		pgArrowRight.className = 'page_invisible';
		pgArrowRight.setAttribute('title', '');
		pgArrowRight.onclick = function(){};
		// arrow end
		pgEnd.className = 'page_invisible';
		pgEnd.setAttribute('title', '');
	}
	else
	{
		// arrow right
		pgArrowRight.className = 'page_link';
		pgArrowRight.setAttribute('title', 'Вперед');
		pgArrowRight.onclick = function(){ pgScroll('right', step); };
		// arrow start
		pgEnd.className = 'page_link';
		pgEnd.setAttribute('title', 'Страница ' + pgPages);
	}
	
	// page elements
	for (var i = 1; i <= pgListPages; i++)
	{
		// calculating [from - to]
		var from = (values[i] - 1) * pgPaging + 1;
		var	recs = i == pgPages ? ((pgTotal % pgPaging) != 0 ? pgTotal % pgPaging : pgPaging) : pgPaging;
		var to = pgPages != 0 ? from + recs - 1 : 0;
		
		// updating element
		pgElPages[i].firstChild.nodeValue = '[' + values[i] + ']';
		pgElPages[i].setAttribute('title', '[' + from + '-' + to + ']');
		if (values[i] == pgPage)
		{
			pgElPages[i].className = 'page_selected';
			pgElPages[i].onclick = function(){};
		}
		else
		{
			pgElPages[i].className = 'page_link';
			pgElPages[i].onclick = new Function("location = '" + pgBaseURI + "page_" + values[i] + "';");
		}
	}
}