
function Permission(app){
	this.app = app

}

Permission.prototype._showGeneralPermission = function(uid, name) {
  var win = new Window(this.app, 'permission__showGeneralPermission_'+uid)
  var doc = new JSON.Document('packet', JSON.DefaultPacket('permission', 'getCommon'))
  doc.packet.query.uid = uid+''
  doc.packet.query.name = name
  win.loadContent({permission_GeneralPermissions:'permission/GeneralPermissions.js'},doc,function(){});
}

Permission.prototype._groups = function() {
  var win = new Window(this.app, 'permission__groups')
  var doc = new JSON.Document('packet', JSON.DefaultPacket('permission', 'listGroups'))
  win.loadContent({permission_groups:'permission/groups.js'},doc,function(){});
}

Permission.prototype._editGroup = function(gid, gname) {
  var win = new Window(this.app, 'permission_editGroup_'+gid)
  var doc = new JSON.Document('packet', JSON.DefaultPacket('permission', 'getGroup'))
  doc.packet.query.gid = gid
  doc.packet.query.gname = gname
  win.loadContent({permission_editgroup:'permission/editgroup.js'},doc,function(){});
}

Permission.prototype._showCustomPermission = function(uid, name, gid) {
	var win = new Window(this.app, 'permission__showCustomPermission_'+uid)
	var doc = new JSON.Document('packet', JSON.DefaultPacket('permission', 'getAdvanced'))
	if(gid) doc.packet.query.gid = gid+''
	if(uid) {
      doc.packet.query.uid = uid+''
      tmpl = {permission_CustomPermissions:'permission/CustomPermissions.js'}
	} else {
      win.loadContent({permission_CustomPermissionsG:'permission/CustomPermissionsG.js'}, doc,function(){});
	}
	
	
	
}

Permission.prototype.updateGeneralPermissions = function(parent, win, form, uid) {
	var doc = new XML.Document('packet', XML.DefaultPacket('permission', 'setCommon'))
	doc.packet.xmldata = this.app.parseForm(form).form
	doc.packet.query.uid = uid;
	var req = new XML.Request( function(response){
		if(response.packet.type == "response"){
			$(win).close()
			this.app.status('Permissions updated')
		} else {
			alert("error: " + doc.serialize())
		}
	}.bind(this))
	req.send(this.app.server, doc)
}

Permission.prototype.updateCutomPermissions = function(parent, win, form, uid) {
	var doc = new XML.Document('packet', XML.DefaultPacket('permission', 'setAdvanced'))
	doc.packet.xmldata = this.app.parseForm(form).form
	doc.packet.query.uid = uid;

	var req = new XML.Request( function(response){
		if(response.packet.type == "response"){
			$(win).close()
			this.app.status('Permissions updated')
		} else {
			alert("error: " + doc.serialize())
		}
	}.bind(this))
	req.send(this.app.server, doc)
}
Permission.prototype.updateCutomGroupPermissions = function(form, gid) {
	var doc = new JSON.Document('packet', JSON.DefaultPacket('permission', 'setAdvancedG'))
	doc.packet.xmldata = this.app.parseForm(form);
	doc.packet.query.gid = gid+'';
	var req = new JSON.Request( function(response){
		if(response.packet.type == "response"){
			this.app.status('Permissions updated')
		} else {
			alert("error: " + doc.serialize())
		}
	}.bind(this))
	req.send(this.app.server, doc)
}



Permission.prototype._addGroup = function() {
  var conf = new XML.Document('xmldata', {})
  conf.xmldata.options = {title: 'New permission group', modale:"1", name: 'group_new'}
  conf.xmldata.button = [{image:'refresh.gif', action:'refresh'}, {image:'hide.gif', action:'hideContent'}, {image:'close.gif', action:'close'}]
     conf.xmldata.style = {width:'300px', height:'150px', position: 'absolute'}
  var win = new Window(this.app, conf)
  var doc = new XML.Document('packet', XML.DefaultPacket('permission', 'getGroup'))
  win.loadContent('permission/editgroup.xsl', doc);
}



Permission.prototype.editGroupAction = function(form, win, action) {
	var doc = new XML.Document('packet', XML.DefaultPacket('permission', action+'Group'))
	doc.packet.xmldata = this.app.parseForm(form).form
	var req = new XML.Request( function(response){
		if(response.packet.type == "response"){
			win.close()
			this.app.getWindowByName('listGroups').refresh()
			this.app.status('Permissions updated')
		} else {
			alert("error: " + doc.serialize())
		}
	}.bind(this))
	req.send(this.app.server, doc)
}

