var Books = Class.create({
	initialize : function(){
	},
	changeBookGroup : function(bgId,that){
		if(that){
			var ele = that.parentNode;
			var others = $(ele).adjacent("span.menu_default");
			ele.className = "menu_default menu_focus";
			others.each(function(s){
				s.className = "menu_default";
			});
		}
		var arr = [null,1,bgId];
		this.gotoPage(arr);
	},
	initPage : function(array){
		var arr = [];
		arr.push($F("gr_totalPageCount"));
		arr.push($F("gr_pageNumber"));
		arr.push($F("gr_bookGroupId"));
		arr.push(5);
		arr.unshift(this);
		
		if(arr[1] > 1){
			// 111是总页数, 10是当前显示的页数, 9是每组显示的页数, 
			// [1, 2, 3]是对象数组,这个数组在回调用户的回调函数时会被作为参数传入回调函数
			var vp = new VoxPaginate(arr[1], arr[2], arr[arr.length - 1], arr);
			vp.addPageChangeCallback(function(totalPageCount, currentPageNumber, attachArray){
				var that = attachArray.shift();
				attachArray[0] = totalPageCount;
				attachArray[1] = currentPageNumber;
				that.gotoPage(attachArray);
			});
		}
		
	},
	//切到某个页面
	gotoPage : function(arr){
		var url = constants.url() + "/apps/sale/bookGroup.action";
		var params = {
				pageNumber 	: arr[1],
				bookGroupId : arr[2],
				COUNT_PER_PAGE : (arr[3]?arr[3]:null)
		};
		var callback = function(response){
			//监听页面元素
			//取消监听的原因:
			//	因为它是监听整个页面的所有元素,而这里只需要监听返回的页面片;
			//	造成的问题是,返回的页面片之外的其他元素会被监听两次;
			//listenEle();
			basket.listenEleForBasket();
			//初始化分页
			this.initPage();
			
		}
		$("bh_groupBody").update("loading...");
		this.update("bh_groupBody", url, params, callback.bind(this));
		
		url = constants.url() + "/apps/sale/domainList.action?requestType=Mine";
		this.update("domain", url);
	},
	//添加上单个特定元素的监听事件
	listenerOnForPractice : function(ele){
		//决定是打开新窗口,还是给属性赋值
		var handle = function(){
			var args = $A(arguments);
			args.shift();
			openWindowForPractice(args[0]);
		}
		Event.observe(ele,'click',handle.bindAsEventListener(this,ele));
	},
	//异步更新
	update : function(id,url,params,callback,asyn){
		new Ajax.Updater(id,url,{
			asynchronous : asyn,
			parameters : params,
			onComplete : callback,
			evalScripts : true
		});
		
	}
});
var books = null;
books = new Books();
