<!--
/**
 * chatRecors.js
 * @fileoverview 交谈记录功能，包括查询[按类型/客服/日期]、列表、内容显示、备注、访客信息、历史对话记录几个功能模块
 * @author Lynk Li
 */

/**
 * @class ChatRecordsManage 交谈记录类
 * @constructor
 * @author Lynk Li
 */
function ChatRecordsManage() {
	/**
	 * 列表分页页码
	 */
	this.page = 0;
	/**
	 * 对话记录列表数组，用于存储对话记录列表数据，参见{@link #rsList}
	 */
	this.arr = null;
	/**
	 * 访客信息数组，存储对话记录对应的访客信息，参见{@link #rsFileDownload}
	 */
	this.viArr = null;
	/**
	 * 上次获取信息的访客的ID，如果访客ID相同就不用再次获取
	 */
	this.lastSnid = "";
	/**
	 * 历史对话记录分页页码
	 */
	this.historyPage = 0;
	/**
	 * 历史对话记录列表数组，存储历史对话记录数据
	 */
	this.historyArr = null;
	/**
	 * 记录当前访问的对话记录的Addtion ID
	 */
	this.addtionId = "";
	/**
	 * 记录当前访问的对话记录的日期
	 */
	this.recordDate = "";
	/**
	 * 记录当前查看的对话的索引
	 */
	this.current = -1;
	/**
	 * 记录最近一次查询的对话记录类型
	 */
	this.type = 0;
	/**
	 * 客服ID
	 */
	this.opid = "";
	/**
	 * 当天的日期，格式形如2007-06-12
	 */
	this.date = (new Date()).print("%Y-%m-%d");
	this.gotoChatRecordsInterface = ChatRecordsManage_gotoChatRecordsInterface;
	this.resizeUI = ChatRecordsManage_resizeUI;
	this.showListTitle = ChatRecordsManage_showListTitle;
	this.getDayOptions = ChatRecordsManage_getDayOptions;
	this.getOperatorOptions = ChatRecordsManage_getOperatorOptions;
	this.getTypeOptions = ChatRecordsManage_getTypeOptions;
	this.setListTitle = ChatRecordsManage_setListTitle;
	this.getList = ChatRecordsManage_getList;
	this.rsList = ChatRecordsManage_rsList;
	this.showList = ChatRecordsManage_showList;
	this.gotoPage = ChatRecordsManage_gotoPage;
	
	this.doDelete = ChatRecordsManage_doDelete;
	this.rsDelete = ChatRecordsManage_rsDelete;
	this.removeChatRecords = ChatRecordsManage_removeChatRecords;
	
	this.view = ChatRecordsManage_view;
	this.showContent = ChatRecordsManage_showContent;
	this.rsFileDownload = ChatRecordsManage_rsFileDownload;
	this.viewViInfo = ChatRecordsManage_viewViInfo;
	this.saveAs = ChatRecordsManage_saveAs;
	this.doRemark = ChatRecordsManage_doRemark;
	this.rsRemark = ChatRecordsManage_rsRemark;
	this.getHistory = ChatRecords_getHistory;
	this.rsHistory = ChatRecords_rsHistory;
	this.showHistoryList = ChatRecords_showHistoryList;
	this.historyGoto = ChatRecords_historyGoto;
	this.viewHistory = ChatRecords_viewHistory;
	this.rsViewHistory = ChatRecords_rsViewHistory;
	this.removeHistory = ChatRecords_removeHistory;
}

/**
 * 跳转到留言信箱页面
 * @see #setInnerType
 */
function ChatRecordsManage_gotoChatRecordsInterface() {
	if (document.getElementById("chatRecordsMain")) {
		document.getElementById("chatRecordsMain").style.display = "";
	} else {
		var chatRecordsMain = document.createElement("div");
		chatRecordsMain.id = "chatRecordsMain";
		document.getElementById("contentRight").insertBefore(chatRecordsMain, null);
		this.showListTitle();
	}
	
	if (_common.innerType != "" && _common.innerType != "chatRecords") {
		document.getElementById(_common.innerType + "Main").style.display = "none";
	}
	
	_common.setInnerType("chatRecords");
}

/**
 * 显示列表标题
 * @see #setListTitle
 * @see #resizeUI
 */
function ChatRecordsManage_showListTitle() {
	var chatRecordsMain = document.getElementById("chatRecordsMain");
	if (!chatRecordsMain) return;
	
	if (this.opid == "") this.opid = _personSession.id;
	var data = {
		images_path : _setting.imagesPath,
		getListEnabled : _versionFlag.get(38),
		chatRecords : {
			dateOptions : this.getDayOptions(this.date),
			opOptions	: this.getOperatorOptions(this.opid),
			typeOpions	: this.getTypeOptions(this.type)
			},
		_versionFlag: _versionFlag
		};
	
	var str = TrimPath.processDOMTemplate("chatRecords_list_tpl", data);
	chatRecordsMain.innerHTML = str;
	this.setListTitle();
	if (this.arr != null && this.page != 0) this.showList(this.page);
	this.resizeUI();
}

/**
 * 设置显示List Title
 * 编号、对话类型、访客、客服、日期、开始时间、持续时间、备注、操作
 */
function ChatRecordsManage_setListTitle() {
	//删除列表TR
	var chatRecords_listTb = document.getElementById("chatRecords_listTb");
	while (chatRecords_listTb.childNodes.length > 0) {
		chatRecords_listTb.removeChild(chatRecords_listTb.childNodes[0]);
	}
	var oTr = chatRecords_listTb.insertRow();
	oTr.id = "chatRecords_listTrTitle";
	
	oTd = oTr.insertCell();
	oTd.innerHTML = _langPackage.chatRecords.listTitle.code;
	oTd.className = "system_td_1";
	oTd.bgColor = "#FFFFFF";
	oTd.width = "10%";
	oTd.height = "22";
	
	oTd = oTr.insertCell();
	oTd.innerHTML = _langPackage.chatRecords.listTitle.type;
	oTd.className = "system_td_1";
	oTd.bgColor = "#FFFFFF";
	oTd.width = "10%";
	oTd.height = "22";
	
	oTd = oTr.insertCell();
	oTd.innerHTML = _langPackage.chatRecords.listTitle.visitor;
	oTd.className = "system_td_1";
	oTd.bgColor = "#FFFFFF";
	oTd.width = "10%";
	oTd.height = "22";
	
	oTd = oTr.insertCell();
	oTd.innerHTML = _langPackage.chatRecords.listTitle.operator;
	oTd.className = "system_td_1";
	oTd.bgColor = "#FFFFFF";
	oTd.width = "9%";
	oTd.height = "22";
	
	oTd = oTr.insertCell();
	oTd.innerHTML = _langPackage.chatRecords.listTitle.date;
	oTd.className = "system_td_1";
	oTd.bgColor = "#FFFFFF";
	oTd.width = "14%";
	oTd.height = "22";
	
	oTd = oTr.insertCell();
	oTd.innerHTML = _langPackage.chatRecords.listTitle.start;
	oTd.className = "system_td_1";
	oTd.bgColor = "#FFFFFF";
	oTd.width = "14%";
	oTd.height = "22";
	
	oTd = oTr.insertCell();
	oTd.innerHTML = _langPackage.chatRecords.listTitle.lastTime;
	oTd.className = "system_td_1";
	oTd.bgColor = "#FFFFFF";
	oTd.width = "14%";
	oTd.height = "22";
	
	oTd = oTr.insertCell();
	oTd.innerHTML = _langPackage.chatRecords.listTitle.remark;
	oTd.className = "system_td_1";
	oTd.bgColor = "#FFFFFF";
	oTd.width = "7%";
	oTd.height = "22";
	
	oTd = oTr.insertCell();
	oTd.innerHTML = _langPackage.chatRecords.listTitle.operate;
	oTd.className = "system_td_1";
	oTd.bgColor = "#FFFFFF";
	oTd.width = "12%";
	oTd.height = "22";
	
	oTr = chatRecords_listTb.insertRow();
	oTr.id = "chatRecords_introTr";
	
	oTd = oTr.insertCell();
	oTd.id = "chatRecords_introTd";
	oTd.innerHTML = _langPackage.chatRecords.listTitle.waitInfo;
	oTd.className = "system_td_1";
	oTd.bgColor = "#FFFFFF";
	oTd.height = "22";
	oTd.colSpan = 9;
	try {
		document.getElementById("chatRecords_dispPagesDiv").innerHTML = "";
	} catch (exc) {
		_common.alertDebug("ChatRecordsManage_setListTitle:" + exc);
	}
	ts_makeSortable(document.getElementById("chatRecords_listTb"));
}

/**
 * 获取日期Options
 * @param String sday 选中的日期值
 * @returns String Options HTML String
 */
function ChatRecordsManage_getDayOptions(sday) {
	var today = new Date();
	execScript('start  = DateAdd("m", -1, date)', 'vbscript');
	var startday = new Date(start);
	var strOptions = "";
	var day = today;
	while (day.getTime() >= startday.getTime()) {
		var strDay = day.print("%Y-%m-%d");
		var selected = "";
		if (strDay == sday) selected = "selected"; 
		strOptions += "<option value='" + strDay + "' " + selected + ">" + strDay + "</option>";
		day = new Date(day.getTime() - 86400000);
	}
	return strOptions;
}

/**
 * 获取类型Options
 * @param int iType 选中类型的值
 * @returns String Options HTML String
 */
function ChatRecordsManage_getTypeOptions(iType) {
	var arrType = _langPackage.chatRecords.typeArr;
	var strOptions = "";
	for (var i = 0; i < arrType.length; i++) {
		var selected = "";
		if (iType == i) selected = "selected"; 
		strOptions += "<option value='" + i + "' " + selected + ">" + arrType[i] + "</option>";
	}
	return strOptions;
}

/**
 * 获取客服Options
 * @param String opid 选中客服的ID
 * @returns String Options HTML String
 */
function ChatRecordsManage_getOperatorOptions(opid) {
	var strOptions = "";
	if (_personSession.type != "A") {
		var selected = "";
		if (_personSession.id == opid) selected = "selected"; 
		strOptions += "<option value='" + _personSession.id + "' " + selected + ">" + _personSession.nick + "</option>";
	} else {
		strOptions += "<option value='0'>" + _langPackage.chatRecords.typeArr[0] + "</option>";
		for (var i = 0; i < _operators.operators.length; i++) {
			var op = _operators.operators[i];
			var selected = "";
			if (op.id == opid) selected = "selected"; 
			strOptions += "<option value='" + op.id + "' " + selected + ">" + op.name + "</option>";
		}
	}
	return strOptions;
}

/**
 * 改变交谈记录的界面大小
 */
function ChatRecordsManage_resizeUI() {
	/*height*/
	var winHeight = document.documentElement.clientHeight;
	var logoAdv = document.getElementById("logoAdv");
	var chatRecordsMain = document.getElementById("chatRecordsMain");
	if (!chatRecordsMain) return;
	
	if (winHeight < _setting.minMainHeight) winHeight = _setting.minMainHeight;
	
	var chatRecordsHeight = winHeight - logoAdv.clientHeight;
	chatRecordsMain.style.height = chatRecordsHeight;
	try {
		var contentRight = document.getElementById("contentRight");
		contentRight.style.height = chatRecordsHeight;
	} catch (exc) {
		_common.alertDebug("ChatRecordsManage_resizeUI:" + exc);
	}
	try {		
		var system_right_top = document.getElementById("system_right_top");
		var system_right_menu = document.getElementById("system_right_menu");
		var chatRecords_contentDiv = document.getElementById("chatRecords_contentDiv");
		if (!chatRecords_contentDiv) chatRecords_contentDiv = document.getElementById("chatRecords_historyListDiv");
		if (system_right_menu) {
			chatRecords_contentDiv.style.height = chatRecordsHeight - system_right_top.clientHeight - system_right_menu.clientHeight - 32;
		} else {
			chatRecords_contentDiv.style.height = chatRecordsHeight - system_right_top.clientHeight - 32;
		}
	} catch (exc) {
		_common.alertDebug("ChatRecordsManage_resizeUI:" + exc);
	}
}

/**
 * 获取对话记录列表
 * 消息格式：&lt;M>&lt;C>9014;邀请类型[0:全部 1:客服邀请 2:访客邀请];按受客服ID列表[逗号隔开];对话记录日期&lt;/C>&lt;/M>
 */
function ChatRecordsManage_getList() {
	var type = document.getElementById("chatRecords_selectType").value;
	var ops = document.getElementById("chatRecords_selectOperator").value;
	var date = document.getElementById("chatRecords_selectDate").value;
	
	this.type = type;
	this.opid = ops;
	this.date = date;
	
	if (ops == "0") {
		ops = "";
		for (var i = 0; i < _operators.operators.length; i++) {
			if (i != 0) ops += ",";
			ops += _operators.operators[i].id;
		}
	}
	
	//删除列表TR
	this.setListTitle();
	var chatRecords_introTr = document.getElementById("chatRecords_introTr");
	chatRecords_introTr.style.display = "";
	var chatRecords_introTd = document.getElementById("chatRecords_introTd");
	chatRecords_introTd.innerHTML = _langPackage.chatRecords.list.waitInfo;
	_common.send("<M><C>9014;" + type + ";" + ops + ";" + date + "</C></M>");
}

/**
 * 收到对话记录列表
 * @param HJWebClMsgStringMsg msg9014 &lt;M>&lt;C>9014;邀请类型[0:全部 1:客服邀请 2:访客邀请];按受客服ID列表[逗号隔开];对话记录日期&lt;/C>&lt;/M>
 * @see #showList
 */
function ChatRecordsManage_rsList(msg9014) {
	if (msg9014.commands[0] != "0") {
		_common.popPrompt(4, _langPackage.chatRecords.list.failed);
		_common.ocxPrompt(4, _langPackage.chatRecords.list.failed, "");
		var chatRecords_introTr = document.getElementById("chatRecords_introTr");
		chatRecords_introTr.style.display = "";
		var chatRecords_introTd = document.getElementById("chatRecords_introTd");
		chatRecords_introTd.innerHTML = _langPackage.chatRecords.listTitle.waitInfo;
	} else {
		this.arr = new Array();
		for (var i = 0; i < msg9014.datas.length; i++) {
			for (var j = 0; j < msg9014.datas[i].length; j++) {
				var cr = msg9014.datas[i][j];
				var a = cr.split(";");
				if (a.length > 10) {
					this.arr.push(a);
				}
			}
		}
		this.showList(1);
	}
}



/**
 * 显示对话记录列表
 &lt;M>
  &lt;C>9014;错误号;版本号;对话记+E186录日期&lt;/C>
  &lt;D>
    &lt;R>
      &lt;F>
        0 ID[ADDITION_RECORDS表中的ID];
		1 ChatID[CHAT_RECORDS表中的ID];
		2 RecordOwnerID[记录拥有者ID];
		3 记录插入时间;
		4 OperatorID[客服ID];
		5 SNID[访客];
		6 StartTime[开始时间];
		7 EndTime[结束时间];
		8 RemarkDate[添加备注时间];
		9 dir[文件路径];
		10 ChatType[A - 客服交谈；B - 访客交谈];
		11 Initiative[类型 0：被动  1：主动];
		12 GroupID;
		13 DesignateOperatorID[客服ID];
		14 DesignatedepartmentID[部门ID];
      &lt;/F>      
    &lt;/R>
  &lt;/D>
&lt;/M>
 * @param int page 显示的分页页码
 * @see #gotoPage
 */
function ChatRecordsManage_showList(page) {
	this.setListTitle();
	
	var chatRecords_introTr = document.getElementById("chatRecords_introTr");
	chatRecords_introTr.style.display = "none";
	var chatRecords_listTb = document.getElementById("chatRecords_listTb");
	
	if (page <= 0) page = 1;
	var t = Math.ceil(this.arr.length / _setting.pageCount);
	if (t == 0) t = 1;
	if (page > t) page = t;
	
	this.page = page;
	
	var start = (page - 1) * _setting.pageCount;
	var end = start + _setting.pageCount;
	
	for (var i = start; i < end && i < this.arr.length; i++) {
		var oTr = chatRecords_listTb.insertRow();
		oTr.id = "chatRecords_listTr" + this.arr[i][0];
		//编号
		var oTd = oTr.insertCell();
		oTd.innerHTML = this.arr[i][1];// this.arrStatus[];
		oTd.align = "center";
		oTd.height = 22;
		oTd.bgColor = "#FFFFFF";
		//对话类型
		oTd = oTr.insertCell();
		var strType = "";
		if (this.arr[i][10] == "A") {
			strType = _langPackage.chatRecords.list.opChat;
		} else {
			if (this.arr[i][11] == "0") {
				strType = _langPackage.chatRecords.typeArr[2];
			} else {
				strType = _langPackage.chatRecords.typeArr[1];
			}
		}
		oTd.innerHTML = strType;		
		oTd.align = "center";
		oTd.bgColor = "#FFFFFF";
		//访客
		oTd = oTr.insertCell();
		oTd.innerHTML = _monitor.removeHeadZeroes(this.arr[i][5].substring(4));
		//oTd.className = "td1";
		oTd.bgColor = "#FFFFFF";
		//客服
		oTd = oTr.insertCell();
		var op = _common.getArrayObjByPropertyValue(_operators.operators, "id", this.arr[i][4]);
		var opname = "";
		if (op != null) opname = op.name;
		oTd.innerHTML = opname;
		oTd.align = "center";
		oTd.bgColor = "#FFFFFF";
		//日期
		oTd = oTr.insertCell();
		var date = this.arr[i][6];
		if (date.length > 10) date = date.substring(0, 10)
		oTd.innerHTML = date;
		oTd.align = "center";
		oTd.bgColor = "#FFFFFF";
		oTd.style.wordBreak = "break-all";
		//开始时间
		oTd = oTr.insertCell();
		var startTime = "";
		if (this.arr[i][6].length >= 19) startTime = this.arr[i][6].substring(11, 19);
		oTd.innerHTML = startTime;
		oTd.align = "center";
		oTd.bgColor = "#FFFFFF";
		oTd.style.wordBreak = "break-all";
		//持续时间
		oTd = oTr.insertCell();		
		var strTime = "00" + _langPackage.chatRecords.list.hour + "00" + _langPackage.chatRecords.list.minute + "00";
		if (this.arr[i][6].length >= 19 && this.arr[i][7].length >= 19) {
			strTime = _common.countSeconds(this.arr[i][6], this.arr[i][7]);
		}
		oTd.innerHTML = strTime;
		oTd.align = "center";
		oTd.bgColor = "#FFFFFF";
		//备注
		oTd = oTr.insertCell();
		var strRemark = this.arr[i][8];
		if (strRemark != this.arr[i][7] && strRemark.length > 10 && parseInt(strRemark.substring(0,4)) > 2000) strRemark = _langPackage.chatRecords.list.remark;
		else strRemark = "";
		oTd.innerHTML = strRemark;
		oTd.align = "center";
		oTd.bgColor = "#FFFFFF";
		//操作
		oTd = oTr.insertCell();
		var strOperate = "";
		if (_versionFlag.get(41) == 1) strOperate += "<a href=\"#\" onclick=\"_chatRecords.view('" + this.arr[i][1] + "', '" + this.arr[i][9] + "', '" + this.arr[i][0] + "', '" + this.arr[i][3] + "', " + i + ")\">" + _langPackage.allUse.view + "</a>";
		if (_personSession.type == "A" && _versionFlag.get(47) == 1) strOperate += " <a href=\"#\" onclick=\"_chatRecords.doDelete('" + this.arr[i][0] + "', '" + this.arr[i][3] + "')\">" + _langPackage.allUse.del + "</a>";
		oTd.innerHTML = strOperate;
		oTd.align = "center";
		oTd.bgColor = "#FFFFFF";
	}
	this.gotoPage(page);
}

/**
 * 显示分页
 * @param int page 显示的分页页码
 */
function ChatRecordsManage_gotoPage(page) {
	var chatRecords_dispPagesDiv = document.getElementById("chatRecords_dispPagesDiv");
	if (!chatRecords_dispPagesDiv) return;
	chatRecords_dispPagesDiv.innerHTML = _dispPagesJs(this.arr.length, page, "_chatRecords.showList", "");
}

/**
 * 执行删除对话记录
 * @param HJWebClMsgStringMsg msg9152 消息格式：&lt;M>&lt;C>9152;RecordID[对应ADDITION_RECORDS表中的ar_id字段];RecordDate[对话记录插入时间]&lt;/C>&lt;/M>
 */
function ChatRecordsManage_doDelete(id, date) {
	if (window.confirm(_langPackage.chatRecords.list.delConfirm)) {
		_common.send("<M><C>9152;" + id + ";" + date + "</C></M>");
	}
}

/**
 * 返回删除对话记录
 * @param HJWebClMsgStringMsg msg9152 消息格式：&lt;M>&lt;Cmsg9152;错误ID;RecordID[发信命令中的RecordID];版本号&lt;/C>&lt;/M>
 */
function ChatRecordsManage_rsDelete(msg9152) {
	if (msg9152.commands[0] != "0") {
		_common.popPrompt(4, _langPackage.chatRecords.list.delFailed);
		_common.ocxPrompt(4, _langPackage.chatRecords.list.delFailed, "");
	} else {
		var id = msg9152.commands[1];
		var chatRecords_historyListDiv = document.getElementById("chatRecords_historyListDiv");
		if (chatRecords_historyListDiv) this.removeHistory(id);
		else this.removeChatRecords(id);
		_common.popPrompt(4, _langPackage.chatRecords.list.delSuccess);
		_common.ocxPrompt(4, _langPackage.chatRecords.list.delSuccess, "");
	}
}

/**
 * 删除对话记录并刷新显示
 * @param String id 对话记录的ID
 * @see #showListTitle
 */
function ChatRecordsManage_removeChatRecords(id) {
	for (var i = 0; i < this.arr.length; i++) {
		if (this.arr[i][0] == id) {
			this.arr = this.arr.slice(0, i).concat(this.arr.slice(i+1));
			break;
		}
	}
	this.showListTitle();
}

/**
 * 查看对话记录的详细信息
 * 对应消息：&lt;M>&lt;C>9156;HandleID[操作ID];ChatID[对应CHAT_RECORDS表中的cr_id字段];filePaht[不带后缀的文件路径]&lt;/C>&lt;/M>
 * @param String chatId 对话ID
 * @param String path 对话记录路径
 * @param String addtionId 附加记录ID
 * @param String date 时间
 * @param String index 当前查看的对话记录的索引ID
 * @param #resizeUI
 */
function ChatRecordsManage_view(chatId, path, addtionId, date, index) {
	var chatRecordsMain = document.getElementById("chatRecordsMain");
	var data = {
		images_path : _setting.imagesPath,
		_versionFlag: _versionFlag
		};	
	var str = TrimPath.processDOMTemplate("chatRecords_infoDownLoadWait_tpl", data);
	chatRecordsMain.innerHTML = str;
	
	_common.send("<M><C>9156;1;" + chatId + ";" + path + "</C></M>");
	this.viArr = null;
	this.addtionId = addtionId;
	this.recordDate = date;
	this.current = index;
	this.resizeUI();
}

/**
 * 返回下载对话记录的内容
 * @param HJWebClMsgStringMsg msg9156 &lt;M>&lt;C>9156;错误ID;HandleID[操作ID];ChatID[发送命令中的ChatID];fileContent[文件内容]&lt;/C>&lt;/M>
 */
function ChatRecordsManage_rsFileDownload(msg9156) {
	var content = "";
	if (msg9156.commands[0] != "0") {
		var chatRecords_contentDiv = document.getElementById("chatRecords_contentDiv");
		if (!chatRecords_contentDiv) return;
		chatRecords_contentDiv.innerHTML = _langPackage.chatRecords.view.downloadFailed;
	} else if (msg9156.commands[1] == "2") {
		this.rsViewHistory(msg9156);
	} else {
		var chatRecords_contentDiv = document.getElementById("chatRecords_contentDiv");
		if (!chatRecords_contentDiv) return;
		var re = /%E5%85%AC%E5%8F%B8%E5%90%8D%E7%A7%B0%3A(.*?)%3Cbr%3E%E5%8F%82%E4%B8%8E%E6%88%90%E5%91%98%3A(.*?)%3Cbr%3E%E8%81%8A%E5%A4%A9%E5%BC%80%E5%A7%8B%E6%97%B6%E9%97%B4%3A(.*?)%3Cbr%3E%E8%81%8A%E5%A4%A9%E7%BB%93%E6%9D%9F%E6%97%B6%E9%97%B4%3A(.*?)%3Cbr%3E(.*?)%E8%AE%BF%E5%AE%A2ID%3A(.*?)%3Cbr%3E%E8%AE%BF%E5%AE%A2%E6%98%B5%E7%A7%B0%3A(.*?)%3Cbr%3E%E8%AE%BF%E5%AE%A2%E8%87%AA%E7%A7%B0%3A(.*?)%3Cbr%3E%E5%A4%87%E6%B3%A8%3A(.*?)%3Cbr%3E%E6%9D%A5%E6%BA%90%E7%BD%91%E9%A1%B5%3A(.*?)%3Cbr%3E%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%3A(.*?)%3Cbr%3E%E5%85%B3%E9%94%AE%E5%AD%97%3A(.*?)%3Cbr%3EIP%3A(.*?)%3Cbr%3E%E6%89%80%E5%9C%A8%E5%9C%B0%E5%8C%BA%3A(.*?)%3Cbr%3E%E4%B8%8A%E7%BD%91%E6%96%B9%E5%BC%8F%3A(.*?)%3Cbr%3E%E6%B5%8F%E8%A7%88%E6%AC%A1%E6%95%B0%3A(.*?)%3Cbr%3E%E9%A6%96%E6%AC%A1%E6%B5%8F%E8%A7%88%E6%97%B6%E9%97%B4%3A(.*?)%3Cbr%3E%E4%B8%8A%E6%AC%A1%E6%B5%8F%E8%A7%88%E6%97%B6%E9%97%B4%3A(.*?)%3Cbr%3E%E4%BA%A4%E8%B0%88%E6%AC%A1%E6%95%B0%3A(.*?)%3Cbr%3E(.*?)%E6%B5%8F%E8%A7%88%E5%99%A8%3A(.*?)%3Cbr%3E%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%3A(.*?)%3Cbr%3E%E8%AF%AD%E8%A8%80%3A(.*?)%3Cbr%3E%E5%88%86%E8%BE%A8%E7%8E%87%3A(.*?)%3Cbr%3Eflash%E6%92%AD%E6%94%BE%E5%99%A8%E7%89%88%E6%9C%AC%E5%8F%B7%3A(.*?)%3Cbr%3E(.*?)%E7%A6%BB%E5%BC%80%E6%97%B6%E9%97%B4%3Cbr%3E(.*?)%3Cbr%3E%3Cbr%3E(.*?)%E5%AF%B9%E8%AF%9D%E5%86%85%E5%AE%B9%3C(.*?)\-{5,}%3Cbr%3E(.*)/i;
		var arr = msg9156.commands[3].match(re);
		for (var i = 0; i < arr.length; i++) {
			var strP = decodeURIComponent(arr[i]);
			strP = strP.replace(/\+/g, " ");
			if (strP.length > 0) {
				var ch = strP.substring(0, 1);
				while (ch == " " || ch == "　" || ch == "\t") {
					strP = strP.substring(1);
					if (strP.length == 0) break;
					ch = strP.substring(0, 1);
				}
			}
			arr[i] = strP;
		}
		/*
		alert("公司名称:" + arr[1]);
		alert("对话成员:" + arr[2]);
		alert("开始时间:" + arr[3]);
		alert("结束时间:" + arr[4]);
		
		alert("访客SNID:" + arr[6]);
		alert("访客昵称:" + arr[7]);
		alert("访客自称:" + arr[8]);
		alert("访客备注:" + arr[9]);
		alert("来源网页:" + arr[10]);
		alert("搜索引擎:" + arr[11]);
		alert("关键字:" + arr[12]);
		alert("访客IP:" + arr[13]);
		alert("所在地区:" + arr[14]);
		alert("上网方式:" + arr[15]);
		alert("浏览次数:" + arr[16]);
		alert("首次浏览:" + arr[17]);
		alert("上次浏览:" + arr[18]);
		alert("交谈次数:" + arr[19]);
		
		
		alert("浏览器:" + arr[21]);
		alert("系统:" + arr[22]);
		alert("系统语言:" + arr[23]);
		alert("分辨率:" + arr[24]);
		alert("Flash:" + arr[25]);
		
		alert("轨迹:" + arr[27]);
		alert("对话内容:" + arr[30]);
		*/
		if (this.lastSnid != arr[6]) {
			this.lastSnid = arr[6];
			this.historyArr = null;
		}
		this.viArr = arr;
		
		var data = {
			images_path : _setting.imagesPath,
			saveEnable	: _versionFlag.get(12),
			deleteEnable: _versionFlag.get(13),
			opIsAdmin	: _personSession.type,
			lt			: "<",
			chatRecords : {
				content		: arr[30],
				addtionId	: this.addtionId,
				recordDate	: this.recordDate
				},
			_versionFlag: _versionFlag
			};
		var str = TrimPath.processDOMTemplate("chatRecords_infoShow_tpl", data);
		
		chatRecords_contentDiv.innerHTML = str;
		this.resizeUI();
	}
}

/**
 * 查看交谈记录内容
 */
function ChatRecordsManage_showContent() {
	if (this.viArr == null) return;
	var chatRecordsMain = document.getElementById("chatRecordsMain");
	if (!chatRecordsMain) return;
	
	var data = {
		images_path : _setting.imagesPath,
		opIsAdmin	: _personSession.type,
		saveEnable	: _versionFlag.get(12),
		deleteEnable: _versionFlag.get(13),
		lt			: "<",
		chatRecords : {
			content		: this.viArr[30],
			addtionId	: this.addtionId,
			recordDate	: this.recordDate
			},
		_versionFlag: _versionFlag
		};
	var str = TrimPath.processDOMTemplate("chatRecords_infoDownLoadWait_tpl", data);
	chatRecordsMain.innerHTML = str;
	str = TrimPath.processDOMTemplate("chatRecords_infoShow_tpl", data);
	var chatRecords_contentDiv = document.getElementById("chatRecords_contentDiv");
	chatRecords_contentDiv.innerHTML = str;
	this.resizeUI();
}

/**
 * 查看访客信息
 */
function ChatRecordsManage_viewViInfo() {
	if (this.viArr == null) return;
	var chatRecordsMain = document.getElementById("chatRecordsMain");
	if (!chatRecordsMain) return;
	
	var data = {
		images_path : _setting.imagesPath,
		chatRecords : {
			viArr		: this.viArr
			},
		_versionFlag: _versionFlag
		};
	var str = TrimPath.processDOMTemplate("chatRecords_visitor_tpl", data);
	chatRecordsMain.innerHTML = str;
	this.resizeUI();
}

/**
 * 保存记录
 */
function ChatRecordsManage_saveAs() {
	try {
		var st = window.open();
		st.document.open("html","UTF-8");
		var title = _langPackage.chatRecords.view.saveFileTitle;
		if (title.length == 0) title += "Trans_";
		var date = new Date();
		var month = date.getMonth() + 1;
		var sMonth = month.toString();
		if (month < 10) sMonth = "0" + sMonth;
		title += date.getYear().toString()+sMonth+(date.getDate()).toString()+date.getHours().toString()+date.getMinutes().toString()+".html";
		st.document.writeln("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /><title>"+title+"</title><style type=\"text/css\"> body { margin-left: 0px; margin-top: 0px; } </style></head><body>");
		st.document.write(this.viArr[30]);
		st.document.writeln("</body></html>");
		var ret = st.document.execCommand("SaveAs", true, title);
		st.close();
	} catch (exc) {
		_common.alertDebug("ChatRecordsManage_saveAs:" + exc);
	}
}

/**
 * 执行添加备注
 * 相应消息格式：&lt;M>&lt;C>9154;ChatID[对应CHAT_RECORDS表中的cr_id字段];Remark[备注信息];filePath[文件路径];RecordDate[对话记录插入时间]&lt;/C>&lt;/M>
 */
function ChatRecordsManage_doRemark() {
	if (this.current == -1) return false;
	/*
	0 ID[ADDITION_RECORDS表中的ID];
	1 ChatID[CHAT_RECORDS表中的ID];
	2 RecordOwnerID[记录拥有者ID];
	3 记录插入时间;
	4 OperatorID[客服ID];
	5 SNID[访客];
	6 StartTime[开始时间];
	7 EndTime[结束时间];
	8 RemarkDate[添加备注时间];
	9 dir[文件路径];
	10 ChatType[A - 客服交谈；B - 访客交谈];
	11 Initiative[类型 0：被动  1：主动];
	12 GroupID;
	13 DesignateOperatorID[客服ID];
	14 DesignatedepartmentID[部门ID];
	 */
	var chatId = this.arr[this.current][1];
	var textarea = document.getElementById("chatRecords_remarkText");
	if (!textarea) return false;
	var remark = textarea.value;
	var filePath = this.arr[this.current][9];
	var recordDate = this.arr[this.current][3];
	if (remark == "") {
		_common.popPrompt(4, _langPackage.chatRecords.remark.contentEmpty);		
		_common.ocxPrompt(4, _langPackage.chatRecords.remark.contentEmpty, "");
		textarea.focus();
		return false;
	}
	try {
		var chatRecords_remarkBtnDiv = document.getElementById("chatRecords_remarkBtnDiv");
		chatRecords_remarkBtnDiv.innerHTML = _langPackage.chatRecords.remark.saving;
		textarea.disabled = true;
	} catch (exc) {
		_common.alertDebug("ChatRecordsManage_doRemark:" + exc);
	}
	recordDate = recordDate.substring(0, 10);
	_common.send("<M><C>9154;" + chatId + ";" + remark + ";" + filePath + ";" + recordDate + "</C></M>");
}

/**
 * 返回添加备注
 * @param HJWebClMsgStringMsg msg9154 &lt;M>&lt;C>9154;错误ID;ChatID[发送命令中的ChatID];记录修改时间[CHAT_RECORDS表中的cr_date_mt字段];版本号&lt;/C>&lt;/M>
 */
function ChatRecordsManage_rsRemark(msg9154) {
	if (msg9154.commands[0] != "0") {
		_common.popPrompt(4, _langPackage.chatRecords.remark.saveFailed);	
		_common.ocxPrompt(4, _langPackage.chatRecords.remark.saveFailed, "");
		try {
			var chatRecords_remarkBtnDiv = document.getElementById("chatRecords_remarkBtnDiv");
			chatRecords_remarkBtnDiv.innerHTML = "<a href=\"#\" onclick=\"_chatRecords.doRemark();\"><img src=\"" + _setting.imagesPath + "mail_accession.gif\" width=\"68\" height=\"22\" border=\"0px\" /></a>";
			var textarea = document.getElementById("chatRecords_remarkText");
			textarea.disabled = false;
		} catch (exc) {
			_common.alertDebug("ChatRecordsManage_doRemark:" + exc);
		}
	} else {
		_common.popPrompt(4, _langPackage.chatRecords.remark.saveSuccess);
		_common.ocxPrompt(4, _langPackage.chatRecords.remark.saveSuccess, "");
		try {
			var chatRecords_remarkBtnDiv = document.getElementById("chatRecords_remarkBtnDiv");
			chatRecords_remarkBtnDiv.innerHTML = "<a href=\"#\" onclick=\"_chatRecords.doRemark();\"><img src=\"" + _setting.imagesPath + "mail_accession.gif\" width=\"68\" height=\"22\" border=\"0px\" /></a>";
			var textarea = document.getElementById("chatRecords_remarkText");
			var newRemark = textarea.value;
			var chatRecords_info_contentDiv = document.getElementById("chatRecords_info_contentDiv");
			if (chatRecords_info_contentDiv) {
				chatRecords_info_contentDiv.innerHTML = chatRecords_info_contentDiv.innerHTML + "<br />" + _langPackage.chatRecords.remark.remarker + _personSession.nick + "<br />" + _langPackage.chatRecords.remark.date + (new Date()).print("%Y-%m-%d") + "<br />" + textarea.value;
			}
			textarea.value = "";
			textarea.disabled = false;
		} catch (exc) {
			_common.alertDebug("ChatRecordsManage_doRemark:" + exc);
		}
	}
}

/**
 * 获取历史对话记录
 * 相应消息格式：&lt;M>&lt;C>9016;SNID&lt;/C>&lt;/M>
 */
function ChatRecords_getHistory() {
	if (this.viArr == null || this.viArr[6] == "") return;
	var chatRecordsMain = document.getElementById("chatRecordsMain");
	if (!chatRecordsMain) return;
	
	var data = {
		images_path : _setting.imagesPath,
		_versionFlag: _versionFlag
		};
	var str = TrimPath.processDOMTemplate("chatRecords_historyWait_tpl", data);
	chatRecordsMain.innerHTML = str;
	
	if (this.historyPage != 0 && this.historyArr != null) this.showHistoryList(this.historyPage);
	else {
		_common.send("<M><C>9016;" + this.viArr[6] + "</C></M>");
	}
	this.resizeUI();
}

/**
 * 返回历史对话记录列表
 * @param HJWebClMsgStringMsg msg9016 &lt;M>
  &lt;C>9016;ErrorID;SNID&lt;/C>
  &lt;D>
    &lt;R>
      &lt;F>
        0 ID[ADDITION_RECORDS表中的ID];
		1 ChatID[CHAT_RECORDS表中的ID];
		2 RecordOwnerID[记录拥有者ID];
		3 记录插入时间;
		4 OperatorID[客服ID];
		5 SNID[访客];
		6 StartTime[开始时间];
		7 EndTime[结束时间];
		8 RemarkDate[添加备注时间];
		9 dir[文件路径];
		10 ChatType[A - 客服交谈；B - 访客交谈];
		11 Initiative[类型 0：被动  1：主动];
		12 GroupID;
		13 DesignateOperatorID[客服ID];
		14 DesignatedepartmentID[部门ID];
      &lt;/F>      
    &lt;/R>
  &lt;/D>
&lt;/M>
 */
function ChatRecords_rsHistory(msg9016) {
	if (msg9016.commands[0] != "0") {
		_common.popPrompt(4, _langPackage.chatRecords.history.failed);		
		_common.ocxPrompt(4, _langPackage.chatRecords.history.failed, "");
		var chatRecords_historyListDiv = document.getElementById("chatRecords_historyListDiv");
		if (chatRecords_historyListDiv) chatRecords_historyListDiv.innerHTML = _langPackage.chatRecords.history.failed;
	} else {
		this.historyArr = new Array();
		for (var i = 0; i < msg9016.datas.length; i++) {
			for (var j = 0; j < msg9016.datas[i].length; j++) {
				var cr = msg9016.datas[i][j];
				var a = cr.split(";");
				if (cr.length > 10) {
					this.historyArr.push(a);
				}
			}
		}
		this.showHistoryList(1);
	}
}

/**
 * 显示历史交谈记录列表
 * @param int page 历史对话记录分页页码
 * @see #historyGoto
 */
function ChatRecords_showHistoryList(page) {
	var chatRecords_historyListDiv = document.getElementById("chatRecords_historyListDiv");
	if (!chatRecords_historyListDiv) return;
	
	if (page <= 0) page = 1;
	var t = Math.ceil(this.historyArr.length / _setting.pageCount);
	if (t == 0) t = 1;
	if (page > t) page = t;
	
	this.historyPage = page;
	
	var start = (page - 1) * _setting.pageCount;
	var end = start + _setting.pageCount;
	
	var histories = new Array();
	for (var i = start; i < end && i < this.historyArr.length; i++) {
		var op = _common.getArrayObjByPropertyValue(_operators.operators, "id", this.historyArr[i][4]);
		var opname = "";
		if (op != null) opname = op.name;
		var date = this.historyArr[i][6];
		if (date.length > 10) date = date.substring(0, 10);
		var startTime = "";
		if (this.historyArr[i][6].length >= 19) startTime = this.historyArr[i][6].substring(11, 19);
		var strTime = "00" + _langPackage.chatRecords.history.hour + "00" + _langPackage.chatRecords.history.minute + "00";
		if (this.historyArr[i][6].length >= 19 && this.historyArr[i][7].length >= 19) {
			strTime = _common.countSeconds(this.historyArr[i][6], this.historyArr[i][7]);
		}
		var obj = {
			id		: this.historyArr[i][0],
			opname	: opname,
			date	: date,
			startTime : startTime,
			strTime	: strTime,
			chatId	: this.historyArr[i][1],
			path	: this.historyArr[i][9],
			dateIn	: this.historyArr[i][3]
			};
		histories.push(obj);
	}
	
	var data = {
		images_path : _setting.imagesPath,
		opIsAdmin	: _personSession.type,
		histories	: histories,
		_versionFlag: _versionFlag
		};
	var str = TrimPath.processDOMTemplate("chatRecords_historyList_tpl", data);
	chatRecords_historyListDiv.innerHTML = str;
	
	this.historyGoto(page);
	ts_makeSortable(document.getElementById("chatReords_historyTb"));
}

/**
 * 历史对话记录分页跳转
 * @param int page 历史对话记录分页页码
 */
function ChatRecords_historyGoto(page) {
	var chatRecords_historyDispPagesDiv = document.getElementById("chatRecords_historyDispPagesDiv");
	if (!chatRecords_historyDispPagesDiv) return;
	chatRecords_historyDispPagesDiv.innerHTML = _dispPagesJs(this.historyArr.length, page, "_chatRecords.showHistoryList", "");
}

/**
 * 查看历史对话记录内容
 * 相应消息：&lt;M>&lt;C>9156;2;" + chatId + ";" + path + "&lt;/C>&lt;/M>
 * @param String chatId 对话记录Chat Id
 * @param String path 对话记录文件对应地址
 */
function ChatRecords_viewHistory(chatId, path) {
	_common.send("<M><C>9156;2;" + chatId + ";" + path + "</C></M>");
}

/**
 * 返回历史对话记录的内容
 * @param HJWebClMsgStringMsg msg9156 相应消息 &lt;M>&lt;C>9156;错误ID;HandleID[操作ID];ChatID[发送命令中的ChatID];fileContent[文件内容]&lt;/C>&lt;/M>
 */
function ChatRecords_rsViewHistory(msg9156) {
	var str = _urlCoder.decode(msg9156.commands[3], "UTF-8");
	str = str.replace(/\+/g, " ");
	
	try {
		var st = window.open();
		st.document.open("html","UTF-8");
		st.document.writeln(str);
		st.focus();
	} catch (exc) {
		alert(_langPackage.chatRecords.history.openWinError);
	}
}

/**
 * 从对话记录列表中删除一条记录，并重新显示
 * @param String id 历史对话记录的ID
 */
function ChatRecords_removeHistory(id) {
	for (var i = 0; i < this.historyArr.length; i++) {
		if (this.historyArr[i][0] == id) {
			this.historyArr = this.historyArr.slice(0, i).concat(this.historyArr.slice(i+1));
			break;
		}
	}
	this.showHistoryList(this.historyPage);
}

var _chatRecords = new ChatRecordsManage();
-->