/**
 * 	abccFlip 翻頁鏈接
 * 
 *  params
 *  pageNum : 當前頁; pageCount : 頁數; pageGroupSize : 每頁記錄數; baseUrl : 提交url
 *  
 */
$.fn.abccFlip = function(pageParam) {		
	
	var pageNum 	  = pageParam.pageNum && pageParam.pageNum,
		pageCount     = pageParam.pageCount,
		pageGroupSize = pageParam.pageGroupSize,
		baseUrl       = pageParam.baseUrl;
		
	var groupCount,//组数
		currentGroup,//當前組	
		begin,
		end;
		
	var group = 0;
	
	// 計算组数（一般10页为一组）
	groupCount = Math.floor(pageCount / pageGroupSize);
	if (pageCount % pageGroupSize > 0) {
		groupCount += 1;
	}
	
	// 計算當前組	
	currentGroup = Math.floor(pageNum / pageGroupSize);
	if (pageNum % pageGroupSize > 0) {
		currentGroup += 1;
	}
	
	begin = (currentGroup-1) * pageGroupSize + 1;
	end   = (currentGroup-1) * pageGroupSize + pageGroupSize;
	end   = (pageCount < end) ? pageCount : end;//總頁數如果小于end，那么去總頁面數


	
	var $ul = 
		$("<ul></ul>")
			.addClass("flip");
					
	if(currentGroup>1) {
		$("<li></li>")
			.css({float:"left",paddingRight:"1px"})
			.append(
				$("<a></a>")
					.attr("href", baseUrl + ((currentGroup-2)*pageGroupSize+pageGroupSize ))
					.html("[前" + pageGroupSize + "頁]")
			)
			.appendTo($ul);
	}
	for(; begin<=end; begin++) {		
		if(begin == pageNum)
			$("<li></li>")
				.html("[" + begin + "]")
				.appendTo($ul);
		else
			$("<li></li>")
				.append(
					$("<a></a>")
						.attr("href", baseUrl + begin)
						.html("[" + begin + "]")
				)
				.appendTo($ul);
	}
	if(currentGroup<groupCount) {	
		var nex = (pageCount-pageGroupSize)<pageGroupSize ? (pageCount-pageGroupSize) : pageGroupSize;
		$("<li></li>")
			.css({float:"left",paddingLeft:"1px"})
			.append(
				$("<a></a>")
					.attr("href",baseUrl + ( currentGroup*pageGroupSize + 1 ))
					.html("[後" + nex + "頁]")
			)
			.appendTo($ul);	
	}
	
	$(this)
//		.append($("<br/>"))
		.append(
			$("<span></span>")
				.html("當前第" + pageNum + "頁/共" + pageCount + "頁")
		)
		.append(
			$("<span></span>").append($ul)
		);
	if(groupCount>3) {//當分組數多于3個時，加此控件便于用于操作
	
		//bug ---------------------------------------------------------------------------------
		//給select添加一個<option value="">--</option>時，卻生成了兩個。百思不得其解。
		//解決的方法是在生成后刪除一個
		var $select = 
			$('<select name="group"></select>')
				//.attr("name","group")//jquery bug 此句在IE6下无效，造成不能翻页。不知什么原因，把name直接写在select里了
				.css({marginLeft:"4px"})
				.append(
					$("<option><option>")
						.val("")
						.html("--")
				);
		//bug ----------------------------------------------------------------------------------
		
		for(; group<groupCount; group++) {
			
			var optEnd = (group*pageGroupSize+pageGroupSize)<pageCount ? (group*pageGroupSize+pageGroupSize) : pageCount;
			
			$("<option></option>")
				.attr("value",group*pageGroupSize+1)
				.html( (group*pageGroupSize+1) + "-" + optEnd)
				.appendTo($select);
		}	
		$(this).append($select);
	
	
		//解決bug代碼 ------------------------------------
		$("select[name=group]").map(function(){
			$($(this).children()[0]).remove();
		});
		//解決bug代碼 ------------------------------------
		
		//給select控件加事件，向服務器發送請求
		$("select[name=group]",".pagination")
			.change(function(){
				//alert(33);
				$("input[name='pageNum']","form[name='forSelect']").val($(this).val())
				$("form[name='forSelect']").submit();
			});
	}
	$("<div></div>")//添加一个div，让浮动的两个span按默认文档流渲染
		.addClass("clear")
		.insertAfter($(this));
		
	return this;
};


