/*
 * tablePaging 1.0.2 - New Wave Javascript
 * 表格分页AJAX控件
 * Copyright (c) 2009  (rome360.com)
 *
 * $Date: 2009-04-21 14:26:00 -0500  $
 * 调用时 至少传入url 、 pagingId 
 * pageNo、pageSize不传入 ,则使用默认值
 */
 (function($){
 var i = 0;
 var oriHtml;
 $.fn.paged = function(options) {
	var
	  defaults = {
	  	pageNo: 1,
		pageSize: 40,
		url: ""
	  },
	  settings = $.extend({}, defaults, options);
		if(++i==1){
			oriHtml = this.clone();//保存第一次加载时的副本
		}
		
	loadPage(settings,this);
}
 function loadPage(settings,page){
 		$.ajax({
		   type: "POST",
		   url: settings.url,
		   cache: false,
		   async: false,
		   data: "pageNo="+settings.pageNo+"&pageSize="+settings.pageSize,
		   success: function(data){
				var html_=""
				$(data).find('entity').each(function(j){
					var oneRowHtml = "";
					var tempHtml;
					$(this.attributes).each(function(){
					tempHtml = oneRowHtml == "" ? oriHtml.html() : oneRowHtml;
					oneRowHtml =tempHtml.replace(new RegExp("#"+this.nodeName+"#","gm"),this.nodeValue);
					//alert(oneRowHtml)
					//alert(this.nodeName)
						//alert(this.nodeValue)
					})
					//alert(oneRowHtml)
					html_+=oneRowHtml;
					//alert(html_)
				})
				page[0].innerHTML=html_;
				var pagehtml_="";
				var totalPage = parseInt($(data).find('totalPage').text(),10);
				var currPageNo = parseInt($(data).find('pageNo').text(),10);
				var totalSize = parseInt($(data).find('totalSize').text(),10);
				totalCount = parseInt($(data).find('totalCount').text(),10);
				if(totalCount == 0){						
					page.empty();
					$("#no_row").show();
				}
				var first_html ="<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:1,url:\""+settings.url+"\"})'>1</a><a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:2,url:\""+settings.url+"\"})'>2</a><a style='border:0px'>...</a>"
				var last_html = "<a style='border:0px'>...</a><a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(totalPage-1)+",url:\""+settings.url+"\"})'>"+(totalPage-1)+"</a><a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+totalPage+",url:\""+settings.url+"\"})'>"+(totalPage)+"</a>"
				var pageNum = 1;
				if(totalPage<7){
					for(var pageNum;pageNum<totalPage+1;pageNum++){
						if(pageNum==currPageNo){
							pagehtml_ += "<a style='font-weight:bold;' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+pageNum+",url:\""+settings.url+"\"})'>"+pageNum+"</a>";
						}else{
							pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+pageNum+",url:\""+settings.url+"\"})'>"+pageNum+"</a>";
						}
						
					}
				}
				else{
					if(currPageNo==1){
						pagehtml_ += "<a style='font-weight:bold' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+currPageNo+",url:\""+settings.url+"\"})'>"+currPageNo+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+1)+",url:\""+settings.url+"\"})'>"+(currPageNo+1)+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+2)+",url:\""+settings.url+"\"})'>"+(currPageNo+2)+"</a>";
						pagehtml_ += last_html;
					}
					else if(currPageNo==2){
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo-1)+",url:\""+settings.url+"\"})'>"+(currPageNo-1)+"</a>";
						pagehtml_ += "<a style='font-weight:bold' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+currPageNo+",url:\""+settings.url+"\"})'>"+currPageNo+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+1)+",url:\""+settings.url+"\"})'>"+(currPageNo+1)+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+2)+",url:\""+settings.url+"\"})'>"+(currPageNo+2)+"</a>";
						pagehtml_ += last_html;
					}
					else if(currPageNo==3){
						pagehtml_ += first_html;
						pagehtml_ += "<a style='font-weight:bold' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+currPageNo+",url:\""+settings.url+"\"})'>"+currPageNo+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+1)+",url:\""+settings.url+"\"})'>"+(currPageNo+1)+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+2)+",url:\""+settings.url+"\"})'>"+(currPageNo+2)+"</a>";
						pagehtml_ += last_html;
					}
					else if(currPageNo==4){
						pagehtml_ += first_html;
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo-1)+",url:\""+settings.url+"\"})'>"+(currPageNo-1)+"</a>";
						pagehtml_ += "<a style='font-weight:bold' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+currPageNo+",url:\""+settings.url+"\"})'>"+currPageNo+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+1)+",url:\""+settings.url+"\"})'>"+(currPageNo+1)+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+2)+",url:\""+settings.url+"\"})'>"+(currPageNo+2)+"</a>";
						pagehtml_ += last_html;
					}
					else if(currPageNo>4&&currPageNo<(totalPage-3)){
						pagehtml_ += first_html;
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo-2)+",url:\""+settings.url+"\"})'>"+(currPageNo-2)+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo-1)+",url:\""+settings.url+"\"})'>"+(currPageNo-1)+"</a>";
						pagehtml_ += "<a style='font-weight:bold' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+currPageNo+",url:\""+settings.url+"\"})'>"+currPageNo+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+1)+",url:\""+settings.url+"\"})'>"+(currPageNo+1)+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+2)+",url:\""+settings.url+"\"})'>"+(currPageNo+2)+"</a>";
						pagehtml_ += last_html;
					}
					else if(currPageNo==(totalPage-3)){
						pagehtml_ += first_html;
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo-2)+",url:\""+settings.url+"\"})'>"+(currPageNo-2)+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo-1)+",url:\""+settings.url+"\"})'>"+(currPageNo-1)+"</a>";
						pagehtml_ += "<a style='font-weight:bold' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+currPageNo+",url:\""+settings.url+"\"})'>"+currPageNo+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+1)+",url:\""+settings.url+"\"})'>"+(currPageNo+1)+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+2)+",url:\""+settings.url+"\"})'>"+(currPageNo+2)+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+3)+",url:\""+settings.url+"\"})'>"+(currPageNo+3)+"</a>";
					}
					else if(currPageNo==(totalPage-2)){
						pagehtml_ += first_html;
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo-2)+",url:\""+settings.url+"\"})'>"+(currPageNo-2)+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo-1)+",url:\""+settings.url+"\"})'>"+(currPageNo-1)+"</a>";
						pagehtml_ += "<a style='font-weight:bold' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+currPageNo+",url:\""+settings.url+"\"})'>"+currPageNo+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+1)+",url:\""+settings.url+"\"})'>"+(currPageNo+1)+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+1)+",url:\""+settings.url+"\"})'>"+(currPageNo+2)+"</a>";
					}
					else if(currPageNo==(totalPage-1)){
						pagehtml_ += first_html;
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo-2)+",url:\""+settings.url+"\"})'>"+(currPageNo-2)+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo-1)+",url:\""+settings.url+"\"})'>"+(currPageNo-1)+"</a>";
						pagehtml_ += "<a style='font-weight:bold' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+currPageNo+",url:\""+settings.url+"\"})'>"+currPageNo+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo+1)+",url:\""+settings.url+"\"})'>"+(currPageNo+1)+"</a>";
					}
					else if(currPageNo==totalPage){
						pagehtml_ += first_html;
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo-2)+",url:\""+settings.url+"\"})'>"+(currPageNo-2)+"</a>";
						pagehtml_ += "<a href='javascript:void(0);' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+(currPageNo-1)+",url:\""+settings.url+"\"})'>"+(currPageNo-1)+"</a>";
						pagehtml_ += "<a style='font-weight:bold' onclick='$(\"#"+page.attr("id")+"\").paged({pageNo:"+totalPage+",url:\""+settings.url+"\"})'>"+totalPage+"</a>";
					}
				}
				$('#pageHtml')[0].innerHTML = pagehtml_;
				page[0].style.visibility = "visible";
		   }
		}); 
 }
})(jQuery);
