window.I = {}
var basic=getpath();
pagesize=15;
var modelview=function() {
var self=this;
self.role=ko.observable($('#role').val());
self.opers=ko.observableArray();
self.rolemodules=ko.observableArray();
self.opcheck=function(item){
	var obj={};
	obj.module=item.module;
	obj.role=self.role();
	obj.value=item.value();
	obj.check=item.check();

	jQuery.post(basic+'/admin/modulecon/rolemodule.htm', obj, function(data, textStatus, xhr) {
		if(data==null)
			return;
		if(data.code>0){
			alert(data.hint);
		}else{
			if((obj.value&data.item.value)>0){
				item.check(true)
			}else{
				item.check(false);
			}
		}
	},'json');
	
	};
};


jQuery(document).ready(function($) {
	var md=window.md=new modelview();
	ko.applyBindings(md);
		init(md.role())
});
	
function init(role){
	jQuery.post(basic+'/admin/opercon/opers.htm',  function(data, textStatus, xhr) {
		if(data==null)
			return;
		if(data.items!=null){
			jQuery.each(data.items, function(index, val) {
				md.opers.push(val);			
			});
			rolemodules(0,pagesize,1,role);
		}
	},'json');
}

function rolemodules(page,pagesize,pages,role){
	jQuery.post(basic+'/admin/modulecon/rolemodules.htm', {role: role,page:page,pagesize:pagesize,pages:pages}, function(data, textStatus, xhr) {
		if(data==null)
			return;
		if(pages>0){
			var pagediv=$('#pagdiv');
			pagediv.unbind('page').empty();
			if(data.pages>1){
				$('#pagdiv').bootpag({total:data.pages,maxVisible:10,page:page+1}).on('page',function(event,num){
		  			rolemodules(num-1,pagesize,0,role);
				});
			}
			md.rolemodules.removeAll();
			if(data.items!=null){
				var opers=md.opers();
				jQuery.each(data.items, function(index, rm) {
					rm.ops=[];
					jQuery.each(opers, function(index, val) {
						var op={};
						op.id=val.id;
						op.module=rm.id;
						op.title=val.title;
						op.value=val.value;
						if(val&&rm.opvalue>0){
							op.check=true;
						}else{
							op.check=false;
						}
						rm.ops.push(op);
					});
					md.rolemodules.push(ko.mapping.fromJS(rm));	
				});
				
			}
		}
	},'json');
}