//========================================================================
// 操作员对象
// 对象名：operateUser
// 属性：
// 方法：
//         
//========================================================================

var operateUser = function(){
	this.C_LOGINMODE = "";     // 登录模式
	this.N_USERID  = "";       // 操作员号
	this.C_LOGINNAME = "";     // 登录名称
	this.C_USERNAME = "";      // 操作员名称
	this.C_PASSWORD = "";      // 操作员口令
	this.D_PASSWORDYXZQ = "";  // 操作员口令有效期
	this.C_RYDM = "";          // 操作员员工代码
	this.C_DWDM = "";          // 所属单位代码
	this.C_DWMC = "";          // 所属单位名称
	this.C_ZTDWDM = "";        // 所属主体单位代码
	this.C_ZTDWMC = "";        // 所属主体单位名称
	this.C_RYLYDM = ""         // 人员来源代码
	this.C_CZYLYMC = "";       // 人员来源名称
	this.C_ZT = "";            // 当前状态
	this.D_JYZXSJ = "";        // 禁用注销时间
	this.C_JYZXYY = "";        // 禁用注销原因
	this.C_YXSC = "";          // 是否允许删除
	this.C_PKI = "";           // 用户使用的PKI号
    this.C_SFZLX = "";         // 身份证件类型
	this.C_SFZXLXMC = "";      // 身份证件类型名称
	this.C_SFZHM = "";         // 身份证件号码
	this.C_JTXZQH = "";        // 家庭住址行政区划
    this.C_JTXZQHMC = "";      // 家庭住址行政区划名称
	this.C_JTXXDZ = "";        // 家庭住址详细地址
    this.C_JTDH = "";          // 家庭电话
	this.C_JTYB = "";          // 家庭邮编
	this.C_DWDH = "";          // 单位电话
	this.C_DWCZ = "";          // 单位传真
	this.C_SJHM = "";          // 手机号
	this.C_XLTHM = "";         // 小灵通号
	this.C_EMAIL = "";         // 电子邮件
	this.C_NC = "";            // 昵称
	this.C_TX = "";            // 头像
	this.C_ZDYTX = "";         // 自定义头像
	this.C_XSIETOOLS = "";     // 是否显示IE工具栏
	this.C_YCCD = "";          // 隐藏功能菜单
	this.C_DXWND = "";         // 短信提示窗口弹出方式
	this.C_DXTSSOUND = "";     // 短信提示音
	this.C_FACE = "";          // 工作界面主体风格
	this.C_DEFAULTTAB = "";    // 登录后左侧显示TAB
	this.C_LOGINJSXXXT = "";   // 是否登录及时消息系统
	this.C_CHECKSB = "";       // 是否交验登录设备
	this.C_GXPWD = "";         // 是否需更新口令
    this.N_DLSBBH = "";        // 登录设备编号
	this.C_ZCTSXX = "";        // 注册设备时的提示信息
	this.C_JYSBXX = "";        // 交验设备是否注册提示信息
    this.N_JYSBRET = "";       // 交验设备是否注册返回参数
	this.C_SAVELOG = "";       // 是否保存登录日志
	this.N_LOGNUM = "";        // 登录日志记录号
	this.C_MSG = "";           // 信息
	this.N_RET = "";           // 标志

	this.C_SESSIONID = "";     // 连接SESSION号
	this.C_PCNAME = "";        // 登录计算机名称
	this.C_MACID = "";         // MAC地址
	this.C_CPUID = "";         // CPU号
	this.C_IPADDRESS = "";     // IP地址
	this.C_PROTOCOL = "";      // 安装协议
	this.C_DISK = "";          // 磁盘信息

	this.C_WNDTITLE = "";      // 窗口标题（指浏览器或Windowns窗口标题）
	this.C_WNDSTATUS = "";     // 窗口状态栏显示信息（指浏览器或Windowns窗口状态栏）
	this.C_MAINTITLE = "";     // 主界面标题
	this.C_MAINTITLEFONT = ""; // 主界面标题字体
	this.C_MAINTITLEFONTSIZE = ""; // 主界面标题字体大小
	this.C_TITLEPIC = "";      // 标题图标，指向图标文件的地址及名称
	this.N_TITLEPICHEIGHT = "";// 标题图标高
	this.N_TITLEPICWIDTH = ""; // 标题图标宽
	this.C_PTVERSION = "";     // 平台当前版本
	this.C_WEBURL = "";        // 当前系统的WEB URL地址
	this.C_AUTHORITY = "";     // 操作员业务权限 -- 以 '|'分隔
	this.C_FJ_AUTHORITY = "";  // 操作员附加业务权限 -- 以 '|'分隔
	this.C_MSGSERVERADDRESS = "";  // 及时消息服务器地址
	this.C_MSGSERVERPORT = "";     // 及时消息服务器端口
	this.C_USEOLDPT = "";          // 是否使用原平台
	this.C_OLDPTYWQX = "";         // 原平台在本系统中对应业务编号
	this.C_OLDPTUSERLOGINNAME = "" // 对应原平台用户登录名
    this.C_OLDPTPASSWORD = ""      // 原平台口令
	this.C_IFGUEST       = "0"     // 是否为游客
}


// 方法定义
// 1. 用户登录
operateUser.prototype.userLogin = function(loginmode, loginname, password,
	                                       macid, ipaddress,
										   pcname, cpuid,
										   protocol, disk, pki){

	var chgpassword = MD5(loginname + password);
	// 取得随机数
	var getRandom = new AjaxProxy();
	getRandom.invoke("CreateRandom", false);
	var random = getRandom.getString("PWDRANDOM");
	// 将加密后的口令和随机数再次进行加密
	var newpassword = MD5(chgpassword + random);
	// 执行登录用户认证服务
	var ChkLogin = new AjaxProxy();
	ChkLogin.addParm("LoginMode" , loginmode);
	ChkLogin.addParm("LoginName" , loginname);
	ChkLogin.addParm("PassWord" , newpassword);
	ChkLogin.addParm("MacID", macid);
	ChkLogin.addParm("IPAddress", ipaddress);
	ChkLogin.addParm("PCName", pcname);
    ChkLogin.addParm("CPUID", cpuid);
	ChkLogin.addParm("Protocol", protocol);
	ChkLogin.addParm("Disk", disk);
	ChkLogin.addParm("PKI", pki);
	ChkLogin.invoke("check_loginuser", false);
	// 判断执行后是否成功
	var flag = ChkLogin.getString("N_RET");
	if (flag != "0")
	{
		this.N_RET = flag;
		this.C_MSG = ChkLogin.getString("C_MSG");
		return false;
	}
	// 登录成功, 取得当前操作员信息
	this.C_WEBURL = ChkLogin.getString("WEBURL");
	this.C_SESSIONID = ChkLogin.getString("C_SESSION");
	this.C_LOGINMODE = loginmode;
	this.N_USERID  = ChkLogin.getString("RESULT", 1, "N_USERID");
	this.C_LOGINNAME = ChkLogin.getString("RESULT", 1, "C_LOGINNAME");
	this.C_USERNAME = ChkLogin.getString("RESULT", 1, "C_USERNAME");
	this.C_PASSWORD = ChkLogin.getString("RESULT", 1, "C_PASSWORD");
	this.D_PASSWORDYXZQ = ChkLogin.getString("RESULT", 1, "D_PASSWORDYXZQ");
	this.C_RYDM = ChkLogin.getString("RESULT", 1, "C_RYDM");
	this.C_DWDM = ChkLogin.getString("RESULT", 1, "C_DWDM");

	this.C_DWMC = ChkLogin.getString("RESULT", 1, "C_DWMC");
	this.C_ZTDWDM = ChkLogin.getString("RESULT", 1, "C_ZTDWDM");
	this.C_ZTDWMC = ChkLogin.getString("RESULT", 1, "C_ZTDWMC");
	this.C_RYLYDM = ChkLogin.getString("RESULT", 1, "C_RYLYDM");
	this.C_CZYLYMC = ChkLogin.getString("RESULT", 1, "C_CZYLYMC");
	this.C_ZT = ChkLogin.getString("RESULT", 1, "C_ZT");
	this.D_JYZXSJ = ChkLogin.getString("RESULT", 1, "D_JYZXSJ");
	this.C_JYZXYY = ChkLogin.getString("RESULT", 1, "C_JYZXYY");
	this.C_YXSC = ChkLogin.getString("RESULT", 1, "C_YXSC");
	this.C_PKI = ChkLogin.getString("RESULT", 1, "C_PKI");
    this.C_SFZLX = ChkLogin.getString("RESULT", 1, "C_SFZLX");
	this.C_SFZXLXMC = ChkLogin.getString("RESULT", 1, "C_SFZXLXMC");
	this.C_SFZHM = ChkLogin.getString("RESULT", 1, "C_SFZHM");
	this.C_JTXZQH = ChkLogin.getString("RESULT", 1, "C_JTXZQH");
    this.C_JTXZQHMC = ChkLogin.getString("RESULT", 1, "C_JTXZQHMC");
	this.C_JTXXDZ = ChkLogin.getString("RESULT", 1, "C_JTXXDZ");
    this.C_JTDH = ChkLogin.getString("RESULT", 1, "C_JTDH");
	this.C_JTYB = ChkLogin.getString("RESULT", 1, "C_JTYB");
	this.C_DWDH = ChkLogin.getString("RESULT", 1, "C_DWDH");
	this.C_DWCZ = ChkLogin.getString("RESULT", 1, "C_DWCZ");
	this.C_SJHM = ChkLogin.getString("RESULT", 1, "C_SJHM");
	this.C_XLTHM = ChkLogin.getString("RESULT", 1, "C_XLTHM");
	this.C_EMAIL = ChkLogin.getString("RESULT", 1, "C_EMAIL");
	this.C_NC = ChkLogin.getString("RESULT", 1, "C_NC");
	this.C_TX = ChkLogin.getString("RESULT", 1, "C_TX");
	this.C_ZDYTX = ChkLogin.getString("RESULT", 1, "C_ZDYTX");
	this.C_XSIETOOLS = ChkLogin.getString("RESULT", 1, "C_XSIETOOLS");
	this.C_YCCD = ChkLogin.getString("RESULT", 1, "C_YCCD");
	this.C_DXWND = ChkLogin.getString("RESULT", 1, "C_DXWND");
	this.C_DXTSSOUND = ChkLogin.getString("RESULT", 1, "C_DXTSSOUND");
	this.C_FACE = ChkLogin.getString("RESULT", 1, "C_FACE");
	if (this.C_FACE == null || this.C_FACE == "")
	{
		this.C_FACE = "1";
	}
	this.C_DEFAULTTAB = ChkLogin.getString("RESULT", 1, "C_DEFAULTTAB");
	this.C_LOGINJSXXXT = ChkLogin.getString("RESULT", 1, "C_LOGINJSXXXT");
	this.C_CHECKSB = ChkLogin.getString("RESULT", 1, "C_CHECKSB");
	this.C_GXPWD = ChkLogin.getString("RESULT", 1, "C_GXPWD");
    this.N_DLSBBH = ChkLogin.getString("RESULT", 1, "N_DLSBBH");
	this.C_ZCTSXX = ChkLogin.getString("RESULT", 1, "C_ZCTSXX");
	this.C_JYSBXX = ChkLogin.getString("RESULT", 1, "C_JYSBXX");
	this.N_JYSBRET = ChkLogin.getString("RESULT", 1, "N_JYSBRET");
    this.C_SAVELOG = ChkLogin.getString("RESULT", 1, "C_SAVELOG");
	this.N_LOGNUM = ChkLogin.getString("RESULT", 1, "N_LOGNUM");
	this.C_MSG = ChkLogin.getString("RESULT", 1, "C_MSG");
	this.N_RET = ChkLogin.getString("RESULT", 1, "N_RET");

	this.C_PCNAME = pcname;
	this.C_MACID = macid;
	this.C_CPUID = cpuid;
	this.C_IPADDRESS = ipaddress;
	this.C_PROTOCOL = protocol;
	this.C_DISK = disk;

    this.C_WNDTITLE = ChkLogin.getString("RESULT", 1, "C_WNDTITLE");
	this.C_WNDSTATUS = ChkLogin.getString("RESULT", 1, "C_WNDSTATUS");
	this.C_MAINTITLE = ChkLogin.getString("RESULT", 1, "C_MAINTITLE");
	this.C_MAINTITLEFONT = ChkLogin.getString("RESULT", 1, "C_MAINTITLEFONT");
	this.C_MAINTITLEFONTSIZE = ChkLogin.getString("RESULT", 1, "C_MAINTITLEFONTSIZE");
	this.C_TITLEPIC = ChkLogin.getString("RESULT", 1, "C_TITLEPIC");
	this.N_TITLEPICHEIGHT = ChkLogin.getString("RESULT", 1, "N_TITLEPICHEIGHT");
	this.N_TITLEPICWIDTH = ChkLogin.getString("RESULT", 1, "N_TITLEPICWIDTH");
	this.C_PTVERSION = ChkLogin.getString("RESULT", 1, "C_PTVERSION");
	this.C_MSGSERVERADDRESS = ChkLogin.getString("RESULT", 1, "C_MSGSERVERADDRESS");
	this.C_MSGSERVERPORT = ChkLogin.getString("RESULT", 1, "C_MSGSERVERPORT");
	this.C_USEOLDPT = ChkLogin.getString("RESULT", 1, "C_USEOLDPT");
	this.C_OLDPTYWQX = ChkLogin.getString("RESULT", 1, "C_OLDPTYWQX");
	this.C_OLDPTUSERLOGINNAME = ChkLogin.getString("RESULT", 1, "C_OLDPTUSERLOGINNAME");
    this.C_OLDPTPASSWORD = ChkLogin.getString("RESULT", 1, "C_OLDPTPASSWORD");
	this.C_IFGUEST = ChkLogin.getString("RESULT", 1, "C_IFGUEST");
    // 取得业务权限
	this.C_AUTHORITY = "";     // 操作员业务权限 -- 以 '|'分隔
	var rownum = ChkLogin.getRowCount("AUTHORITYRESULT") * 1;
	for (var i = 1; i <= rownum; i++){
		this.C_AUTHORITY = this.C_AUTHORITY + "|" + ChkLogin.getString("AUTHORITYRESULT", i, "C_YWQXDM");
	}
	// 取得附加权限
	this.C_FJ_AUTHORITY = "";  // 操作员附加业务权限 -- 以 '|'分隔
	rownum = ChkLogin.getRowCount("AUTHORITYRESULT_FJ");
	for (var i = 1; i <= rownum; i++){
		this.C_FJ_AUTHORITY = this.C_FJ_AUTHORITY + "|" + ChkLogin.getString("AUTHORITYRESULT_FJ", i, "C_FJQXDM");
	}

    chgpassword = null;
	getRandom = null;
	random = null;
	newpassword = null;
	flag = null;
	rownum = null;
	ChkLogin = null;
	CollectGarbage();
	return true;
}

// 2. 新增用户在线信息
operateUser.prototype.userInsertOnLine = function(ywqxdm, bz){
	var LoginOnLine = new AjaxProxy();
	LoginOnLine.addParm("1" , this.N_USERID);
	LoginOnLine.addParm("2" , this.C_LOGINMODE);
	LoginOnLine.addParm("3" , this.N_LOGNUM);
	LoginOnLine.addParm("4",  this.N_DLSBBH);
	LoginOnLine.addParm("5",  ywqxdm);
	LoginOnLine.addParm("6",  this.C_SESSIONID);
    LoginOnLine.addParm("7",  this.C_PKI);
	LoginOnLine.addParm("8",  this.C_PCNAME);
	LoginOnLine.addParm("9",  this.C_MACID);
	LoginOnLine.addParm("10", this.C_CPUID);
	LoginOnLine.addParm("11", this.C_IPADDRESS);
	LoginOnLine.addParm("12", this.C_PROTOCOL);
	LoginOnLine.addParm("13", this.C_DISK);
	LoginOnLine.addParm("14", bz);
	LoginOnLine.invoke("PT_LOGIN.PF_PT_INSERT_USER_ONLINE", false);
	// 判断执行后是否成功
	var flag = LoginOnLine.getString("PN_RET") * 1;
	if (flag != 0)
	{
		var dispMsg = LoginOnLine.getString("PC_MSG");
		showMessage(dispMsg, '0');
		return false;
	}

	LoginOnLine = null;
	CollectGarbage();
	return true;
}

// 2. 将用户信息保存至Session和Application中
operateUser.prototype.saveUserToSessionAppliation = function(){
	var saveuserSA = new AjaxProxy();
	saveuserSA.addParm("LoginMode" , this.C_LOGINMODE);
	saveuserSA.addParm("UserID" ,    this.N_USERID);
	saveuserSA.addParm("LoginName" , this.C_LOGINNAME);
	saveuserSA.addParm("UserName",   this.C_USERNAME);
	saveuserSA.addParm("RyDM",       this.C_RYDM);
	saveuserSA.addParm("DwDM",       this.C_DWDM);
    saveuserSA.addParm("DwMC",       this.C_DWMC);
	saveuserSA.addParm("ZTDwDM",     this.C_ZTDWDM);
	saveuserSA.addParm("ZTDwMC",     this.C_ZTDWMC);
	saveuserSA.addParm("PKINum",     this.C_PKI);
	saveuserSA.addParm("SESSIONID",  this.C_SESSIONID);
	saveuserSA.addParm("RYLYDM",     this.C_RYLYDM);
	saveuserSA.addParm("CZYLYMC",    this.C_CZYLYMC);
	saveuserSA.addParm("SFZHM",      this.C_SFZHM);
	saveuserSA.addParm("JTDH",       this.C_JTDH);
	saveuserSA.addParm("JTYB",       this.C_JTYB);
	saveuserSA.addParm("DWDH",       this.C_DWDH);
	saveuserSA.addParm("DWCZ",       this.C_DWCZ);
	saveuserSA.addParm("SJHM",       this.C_SJHM);
	saveuserSA.addParm("XLTHM",      this.C_XLTHM);
	saveuserSA.addParm("EMAIL",      this.C_EMAIL);
	saveuserSA.addParm("ALLYWQX",    this.C_AUTHORITY);
	saveuserSA.addParm("ALLYWFJQX",  this.C_FJ_AUTHORITY);

	saveuserSA.addParm("SAVEMODE",   "0");   // 1 - 同时将信息保存至Application中
	saveuserSA.invoke("saveUserSessionApplication", false);
	// 判断执行后是否成功
	var flag = saveuserSA.getString("C_RETFLAG") * 1;
	if (flag != 0)
	{
		var dispMsg = saveuserSA.getString("C_RETMSG");
		showMessage(dispMsg, '0');
		return false;
	}
	saveuserSA = null;
	CollectGarbage();
	return true;
}


// 3. 用户注销、退出程序
operateUser.prototype.userLogOut = function(logoutyy, ywqxdm, fjqxdm){
	var logout = new AjaxProxy();
	logout.addParm("UserID" ,      this.N_USERID);
	logout.addParm("LoginLogNum" , this.N_LOGNUM);
	logout.addParm("LogOutYY" ,    logoutyy);
	logout.addParm("czUserID",     this.N_USERID);
	logout.addParm("ywqxDM",       ywqxdm);
	logout.addParm("fjqxDM",       fjqxdm);
	logout.invoke("user_logout", false);
	// 判断执行后是否成功
	var flag = logout.getString("N_RET") * 1;
	if (flag != 0)
	{
		var dispMsg = logout.getString("C_MSG");
		showMessage(dispMsg, '0');
		return false;
	}
	logout = null;
	CollectGarbage();
	return true;

}


operateUser.prototype.test = function(){
	alert(this.C_USERNAME);
}
