/*-------------------------------------------------------------------------
# Pagination ver 1.0 / 25-December-2008
# Author Ken Phan
# Yahoo Kenphan19
# Email Kenphan19@gmail.com
# Website Kenphan.com
# -------------------------------------------------------------------------
# Company Golden Gate Co.,Ltd
# Websites:  http://www.goldengate.com.vn
# Copyright (C) 2008 GoldenGate Co.,Ltd. All Rights Reserved.
---------------------------------------------------------------------------
# Dual licensed under the MIT and GPL licenses:
# http://www.opensource.org/licenses/mit-license.php
# http://www.gnu.org/licenses/gpl.html
---------------------------------------------------------------------------*/
;(function($){
	$.fn.easyPagi = function(options) {
		var defaults = {
			url: "./data.php",
			method: "POST",
			busy: "./images/loading.gif",
			rowPerPage: '10'
		};
		var opts= jQuery.extend(defaults,options);
		var id 	= "#"+$(this).attr("id");
		return this.each(function() {
			$.ajax({
				type: opts.method,
				url: opts.url,
				processData: false,
				dataType: "json",
				beforeSend: function(){
					$(id).html('<img src="'+opts.busy+'" border="0" />');
				},
				success: function(data){
					responseJson(data, opts.url,opts.method,opts.busy,id,opts.rowPerPage);
				}
			});
		});
	}
	var responseJson = function(data, url, method, busy, id, rowPerPage){
		var html = new String();
		var totalPage = parseFloat(data.total) / rowPerPage;
		var current = data.crr;
		var record = 5;
		var currentNow = new String();
		
		$.each(data.items, function(i,item){
			html += '<div class="pagi-elements"><img src="library/images/arraw.gif">&nbsp;<a href="'+data.url_l+data.crr+'-'+item.id+'-'+item.rewrite_url+'.html">'+item.content+'</a></div>';
		});
		html += '<div id="pagi-wrapper">'+Pagination(record,totalPage,current)+'</div>';
		$("#content-wrapper").html(html);
		$("#pagi li a").click(function(){
			currentNow = $(this).attr("name").substr(4);
			if($(this).attr("name").length > 0) {
				$.ajax({
					type: method,
					url: url,
					data: "pageid="+currentNow,
					processData: false,
					dataType: "json",
					beforeSend: function(){
						$(id).html('<img src="'+busy+'" border="0" />');
					},
					success: function (data){
						responseJson(data, url, method, busy, id, rowPerPage);
					}
				});
			}
		});
	}
	var Pagination = function(offset, numOfPage, currentPage){
		var pageStart 	= parseFloat(currentPage) - parseFloat(offset);
		var pageEnd 	= parseFloat(currentPage) + parseFloat(offset);
		var numPage 	= new String();
		if(numOfPage < 1) return "";
		numPage += '<ul id="pagi">';
		if(currentPage > 1) numPage += '<li class="previous"><a href="javascript:;" name="page'+(parseFloat(currentPage) - 1)+'">&laquo;</a></li>';
		else numPage += '<li class="previous-off">&laquo;</li>';
		if(currentPage > (offset + 1)) numPage += '<li><a href="javascript:;" name="page1">1</a></li><li class="spacing-dot"> ... </li>';
		for(i = 1; i <= numOfPage; i++){
			if(pageStart <= i && pageEnd >= i){
				if(i == currentPage) numPage += '<li class="active">'+i+'</li>';
				else numPage += '<li><a href="javascript:;" name="page'+i+'">'+i+'</a></li>';
			}
		}
		if(numOfPage > pageEnd) numPage += '<li class="spacing-dot"> ... </li><li><a href="javascript:;" name="page'+numOfPage+'">'+numOfPage+'</a></li>';
		if(currentPage < numOfPage) numPage += '<li class="next"><a href="javascript:;" name="page'+(parseFloat(currentPage) + 1)+'">&raquo;</a></li>';
		else numPage += '<li class="next-off">&raquo;</li>';
		numPage += '</ul>';
		return numPage;
	}
})(jQuery);
