window.I = {}
var basic=getpath();
var modelview=function() {
	var self=this;
	self.roleid=ko.observable($('#roleid').val());
	self.filter=ko.observable();
	self.mtype=ko.observable();
	self.mtypes=ko.observableArray();
	self.menus=ko.observableArray();
	self.change=function(item){
		menus(0,15,1,md.roleid(),md.filter(),md.mtype());
		return true;
	}
	self.menusel=function(item){
		var obj={};
		obj.roleid=self.roleid();
		obj.mid=item[0];
		obj.check=item[4]();
		if(obj.roleid==='0'||obj.mid==='0')
		{
			alert('id不能为0!');
			return;
		}
		jQuery.post(basic+'/admin/rolemenucon/menusel.htm',obj, function(data, textStatus, xhr) {
			if(data==null)
				return;
			if(data.code>0)
			{
				alert(data.errmsg);
			}
			if(data.check!=null)
				item[4](data.check);
		},'json');
		return true;
	}
}
jQuery(document).ready(function($) {
	var md=window.md=new modelview();
	ko.applyBindings(md);
	var pagesize=15;
	mtypes();
	menus(0,15,1,md.roleid(),md.filter(),md.mtype());
	$('#searcha').click(function(){
		menus(0,15,1,md.roleid(),md.filter(),md.mtype());
	});
});

function mtypes(){
	jQuery.post(basic+'/admin/rolemenucon/mtypes.htm', {}, function(data, textStatus, xhr) {
		if(data==null)
			return;
		if(data.items!=null)
		{
			window.md.mtypes.removeAll();
			jQuery.each(data.items, function(index, val) {
				window.md.mtypes.push(val);
			});
		}
	},'json');
}

function menus(page,pagesize,pages,roleid,filter,mtype){
	jQuery.post(basic+'/admin/rolemenucon/menus.htm', {page:page,pagesize:pagesize,pages:pages,roleid:roleid,filter:filter,mtype:mtype}, function(data, textStatus, xhr) {
		if(data==null)
			return;
		if(pages>0)
		{
			$('#pagdiv').unbind('page').empty();
			if(data.pages>1)
			{
					$('#pagdiv').bootpag({total:data.pages,maxVisible:10,page:page+1}).on('page',function(event,num){
		  				menus(num-1,pagesize,0,roleid,filter,mtype);
					});
			}
		}
		if(data.items!=null)
		{
			window.md.menus.removeAll();
			jQuery.each(data.items, function(index, val) {
				if(val[4]!=null)
				{
					val[4]=ko.observable(true);
				}else
					val[4]=ko.observable(false);
				window.md.menus.push(val);
			});
		}
	},'json');
}