var pagination = 4;

var blocks = 10;
/**
* onLoad init
* @param msg
*/
$(document).ready(function () 
{
	if ($("#pagination_panel").attr('id') == 'pagination_panel')
	{
		form_grid(0);	
	}
});


/**
* setting up pagination links for all pagination panels
* @param total_rows integer number of total rows
* @param rstart_param integer number of record start
* @param pagination_param integer number of records shown per page
*/
function setup_pagination(total_rows, rstart_param, pagination_param)
{
	$("#total_rows").text(total_rows);
	
	pagination = pagination_param;
	
	if ((rstart_param + pagination - 1) > total_rows)
	{
		var end_interval = total_rows;
	}
	else
	{
		var end_interval = rstart_param + pagination - 1;
	}
	
	$("#current_interval").text(rstart_param+'-'+end_interval);
	
	var pagination_panels = $("#pagination_panel");
	
	if (total_rows <= pagination)
	{
		pagination_panels.each(function()
			{
				$(this).hide(); 
			});
	}
	else
	{
				
		pagination_panels.each(function()
			{
				$(this).empty();
				var current_page = Math.floor(rstart_param/pagination);
				
				if (rstart_param < pagination)
				{
					var range_item = '<span>&laquo; Start</span>';
				}
				else
				{
					var range_item = '<a href="#" onclick="form_grid(0); return false;">&laquo; Start</a>';
				}
				
				var current_blocks = Math.ceil(total_rows/pagination);
				 $(this).append(range_item);
				
				if (rstart_param < pagination)
				{
					var range_item = '<span>&lt; Prev</span>';
				}
				else
				{
					var range_item = '<a href="#" onclick="form_grid('+((current_page - 1) * pagination).toString()+'); return false;">&lt; Prev</a>';
				}
				
				var current_blocks = Math.ceil(total_rows/pagination);
				 $(this).append(range_item);
				
				//setting up panel
				if (current_blocks > blocks)
				{
					var start_block = Math.min(Math.max(0, current_page - Math.floor(blocks/2)), current_blocks - blocks);
					var end_block = start_block + blocks;
				}
				else
				{
					var start_block = 0;
					var end_block = current_blocks;
				}
				
				
				for (var page = start_block; page < end_block; page++) 
				{
					if ( page == current_page )
					{
						var range_item = '<span>'+(page + 1).toString()+'</span>';
					}
					else
					{
						var range_item = '<a href="#" onclick="form_grid('+(page * pagination).toString()+'); return false;">'+(page + 1).toString()+'</a>';
					}
			
					 $(this).append(range_item);
					
				}
				
				if (rstart_param >= (current_blocks - 1) * pagination)
				{
					var range_item = '<span>Next &gt;</span>';
				}
				else
				{
					var range_item = '<a href="#" onclick="form_grid('+((current_page + 1) * pagination).toString()+'); return false;">Next &gt;</a>';
				}
				$(this).append(range_item);
				
				if (rstart_param >= (current_blocks - 1) * pagination)
				{
					var range_item = '<span>End &raquo;</span>';
				}
				else
				{
					var range_item = '<a href="#" onclick="form_grid('+((current_blocks - 1) * pagination).toString()+'); return false;">End &raquo;</a>';
				}
				$(this).append(range_item);
				
				$(this).show();
			}
		);
	}
}

/**
* AJAX request to update table contents
* @param rstart_param integer number of record start
*/
function form_grid(rstart_param)
{
	//alert(rstart_param);
	$.post('ajax/listing_render.php', {'rstart' : rstart_param, 'listingIdentifier' : 'girls', 'pagination' : pagination}, render_grid, "text");
}


/**
* actions to render grid
*/
function render_grid(data)
{
	//alert(data);
	var data = eval('(' + data + ')');
	if (data.rows.length > 0)
	{
		setup_pagination(data.total_rows, data.rstart, data.pagination);
		
		$('#results_listing').empty();
		
		for (list_cnt = 0; list_cnt < data.rows.length; list_cnt++)
		{
			var list_item = data.rows[list_cnt];
			//alert(list_item);
			$('#results_listing').append(list_item);
		}
		
	}
}