//get cookie set cookie EOF var arrCookieId; var arrCookieNum; var show_invite; var show_list; var arr1 = document.cookie.match(new RegExp("(^| )cookieID=([^;]*)(;|$)")); var arr2 = document.cookie.match(new RegExp("(^| )cookieNum=([^;]*)(;|$)")); var arr3 = document.cookie.match(new RegExp("(^| )show_invite=([^;]*)(;|$)")); var arr4 = document.cookie.match(new RegExp("(^| )show_list=([^;]*)(;|$)")); var then = new Date(); then.setTime(then.getTime() + 60 * 60 * 1000 * 60 * 24 * 10000); if(arr1 == null) { arrCookieId = "205113708681252"; arrCookieNum = 1; show_invite = 0; show_list = 1; document.cookie = "cookieID=" + arrCookieId + ";expires=" + then.toGMTString(); document.cookie = "cookieNum=" + arrCookieNum + ";expires=" + then.toGMTString(); document.cookie = "show_invite=" + show_invite + ";expires=" + then.toGMTString(); document.cookie = "show_list=" + show_list + ";expires=" + then.toGMTString(); } else { arrCookieId = arr1[2]; arrCookieNum = parseInt(arr2[2]) + 1; show_invite = arr3[2]; show_list = parseInt(arr4[2]); document.cookie = "cookieNum=" + arrCookieNum + ";expires=" + then.toGMTString(); } //get cookie set cookie EOF //list display and control BOF var list_html = "
在线咨询
"; var invite_html = ""; var nTop = 130; var nMargin = 10; var iframeW = 150; var sPosition = "r"; document.write(list_html); document.write(invite_html); document.getElementById('list').style.top = nTop + "px"; if(sPosition == "r") document.getElementById('list').style.right = nMargin + "px"; else document.getElementById('list').style.left = nMargin + "px"; var obj = new Array(); obj[0] = "invite"; obj[1] = "list"; obj[2] = "side_bar"; lastScrollY = 0; function heartBeat() { var diffY; if(document.documentElement && document.documentElement.scrollTop) diffY = document.documentElement.scrollTop; else if(document.body) diffY = document.body.scrollTop; else { /*Netscape stuff*/ } percent = .1 * (diffY - lastScrollY); if(percent > 0) percent = Math.ceil(percent); else percent = Math.floor(percent); for(var i=0; i 0 && (mouse.x - m.moveDivLeft) > 0) { ID.style.left = (mouse.x - m.moveDivLeft) + "px"; ID.style.top = (mouse.y - m.moveDivTop) + "px"; } mouse = null; } }, getMousePosition: function(ev) { return ev.pageX || ev.pageY ? {x:ev.pageX, y:ev.pageY} : {x:ev.clientX + document.body.scrollLeft - document.body.clientLeft, y:ev.clientY + document.body.scrollTop - document.body.clientTop}; } } _$m.moveDivDown(m_obj, event); } //list display and control EOF //open chat window BOF var talkWindow = null; function win_open(sUrl, nUin, height_width) { if(talkWindow && talkWindow.open && !talkWindow.closed) { alert('您正在对话中'); } else { if(!nUin) nUin = "TalkWin" if(!height_width) height_width = "width=611, height=471"; talkWindow = window.open(sUrl, nUin, height_width); } } function picClick() { //控制大图片的逻辑代码 window.focus(); if(talkWindow && talkWindow.open && !talkWindow.closed) { //当前已经有聊天窗口存在,就不能再点击 alert('你正在和客服交流中...'); return false; } else { if("10011,10012,10013,10014,10015,10016,10017,10018,10019,10020,10028,10029,10030,10061,10062,10063,10064,10065,10066,10067,10068,10069,10070,10071," == "") win_open("http://chat.kingman.cn/service/chatBox.asp?mode=auto&lang=zh&stat=on&arrCookieId=" + arrCookieId); else //对所有客服都留言 win_open("http://chat.kingman.cn/service/chatBox.asp?mode=auto&lang=zh&stat=off&arrCookieId=" + arrCookieId); return; } } //open chat window EOF //////////////////////////////////////////////////////////////////////////////////////// var server_url = 'chat.kingman.cn'; //WebIM服务器端地址 var server_port = '5293'; //WebIM服务器端口 var SendServerUIN = ''; //所有在线客服 var WebChatMSG_BUSY = 114; var CUSTOMER_INVITE = 1; //座席邀请 var SYS_AUTO_INVITE = 2; //系统自动邀请 var flashUIN; var theTalker = ""; var theAsker = ""; var nLoginOrNo = 1; //////////////////////////////////////////// // 1. 常量定义 关于系统消息的定义 //////////////////////////////////////////// //在线状态 ////////////////////// var STATUS_OFFLINE = 1; //下线 var STATUS_INVISIBLE = 10; //隐身" var STATUS_ONLINE = 11; //已经上线" var STATUS_NA = 16; //忙 var STATUS_WEBIM_ONLINE = 12; //webim在线 var STATUS_WEBIM_INVISIBLE = 14; //webim隐身状态 var STATUS_WEBIM_NA = 15; //webim忙/离开状态 var STATUS_EXIT_GROUP = 17; //退出群聊 //消息类型 ////////////////////// var MSG_VEDIO_REPLY = 21; var MSG_AUDIO_REPLY = 22; //Normal text message var MSG_FILE_REPLY = 23; var MSG_FILE = 24; //Normal text message var MSG_VEDIO = 25; //Normal text message var MSG_AUDIO = 26; //Normal text message var MSG_TEXT = 27; //Normal text message var MSG_URL = 28; //URL message This message consists of two parts, separated by 0xFE. First the description of the URL followed by the URL itself. var MSG_GRANT_QUREY = 29; //对方同意接受 var MSG_STOP_VEDIO = 30; //对方关闭视频 var MSG_STOP_AUDIO = 31; //对方关闭 var MSG_STOP_FILE = 32; //对方暂停文件 var MSG_GRANT_AUDIO_QUREY = 35; //对方同意接受 var MSG_GRANT_VEDIO_QUREY = 36; //对方同意接受 var MSG_GRANT_FILE_QUREY = 37; //对方同意接受 var MSG_SHARE_FILE = 40; //浏览共享文件信息 var MSG_TEXT_NA = 41; //NA信息 var MSG_WRITTING_NOW = 42; //对方正在输入消息 var MSG_BATCH_CHAT_REQ = 46; //需要加入群聊的消息 var MSG_GROUP_TEXT = 47; //群聊的文字信息 //操作状态 ////////////////////// var E_SUCCEED = 0; //操作成功 var E_SEND_UDP = 10000; //UDP发送本机出错 var E_NOT_WAIT_NEXT = 10001; //未处于发送状态 var E_MSG_NOT_REACH_PEER = 10002; //消息未能到达对方 var E_USER_ALREADY_LOGIN = 10003; //用户已经登录 var E_USER_NOT_FOUND = 10010; var E_USERNAME_EXIST = 10020; //注册新用户时,用户已经存在。 var E_SOKET_CREATE = 10030; //无法创建socket var E_IP_RESOLVE = 10040; //IP地址转换出错 var E_LOGIN_SUC = 12000; //登录成功 var E_NO_UIN = 12010; //登录不成功,用户名不存在 var E_PWD = 12020; //密码错误 var E_EXPIRED = 12021; //帐号过期 var E_ACCOUNT_DISABLE = 12022; //帐号不可用 var E_LOGIN_FAIL = 12025; //登录不成功,其它原因 var E_NEET_AUTH = 12030; //对方需要认证 var E_FRIEND_REFUSE = 12040; var E_ADD_LIST_SUC = 12050; //用户添加成功 var E_ALREDY_LIST_FRIEND = 12060; //他已经是本组成员 var E_DEL_LIST_SUC = 12070; //成功删除 var E_UPDATE_SUC = 12080; //服务器已经接受你的修改 var E_SEARCH_NO_USER = 12090; //没找到用户 var E_SEARCH_SQL_ERROR = 12092; //查找时SQL出错。 var E_SEARCH_END = 12095; //已经查到最后 var E_PASS_INFO = 12100; //密码信息 var E_NEED_LOGIN = 13000; //未登录 var E_SEND = 13010; //发送出错 var E_NO_CONTACT_LIST = 13020; //无好友列表 var E_CONTACT_LIST_END = 13030; //contact list结束 var E_UPDATE_CONTACT_LIST_GROUP_NAME_SUC = 13040; var FLASH_ERR_NO_RECIEVER_FIND = 2500; //没找到接收者 var FLASH_ERR_USER_NOT_ONLINE = 2520; var FLASH_ERR_MSG_NOT_REACH_PEER = 2530; //消息未到达对方 var WEBIM_ERR_CONN_SUCCEED = 3500; //连接成功 var WEBIM_ERR_CONN_FAIL = 3510; //连接失败 var WEBIM_ERR_CONN_BREAK = 3520; //连接中断 //////////////////////////////////////////// // 2. 与Flash程序通信 //////////////////////////////////////////// var me; function FlashReady() { //调用FLASH程序 me = document["CommP2"]; //swf的id描述,获取正确的引用 connect_server(); } function connect_server() { //连接服务器 me.SetWebIMNetwork(server_url, server_port); me.ConnectToSvr(); } function anonymous_login() { //匿名登录 me.LoginNoName(); } function SysErrCode(nCode, nCmd, sDescription) { switch(nCode) { case WEBIM_ERR_CONN_SUCCEED: //连接成功 nLoginOrNo = 2; anonymous_login(); break; case WEBIM_ERR_CONN_BREAK: //连接中断 if(sDescription.match(/^[0-9]\d*$/) == null) nLoginOrNo = 3; break; case FLASH_ERR_NO_RECIEVER_FIND: //没找到接收者 break; case E_LOGIN_SUC: //登录成功 break; case E_NO_UIN: //登录不成功,用户名不存在 break; default : break; } } function ExeGetMsg(nVer, nSenderUIN, nType, sMsg, sTime) { //收到消息 switch(Number(nType)) { case MSG_TEXT: theAsker = nSenderUIN; window.focus(); if(sMsg != '') chanageUinStart(nSenderUIN, sMsg); else chanageUinStart(nSenderUIN, sMsg); break; case 100: theAsker = nSenderUIN; if(talkWindow && talkWindow.open && !talkWindow.closed) { send_msg(theAsker, '', 114) break; } greateDivForPleace(sMsg, CUSTOMER_INVITE); window.focus(); if(sMsg != '') chanageUinStart(nSenderUIN, sMsg); else chanageUinStart(nSenderUIN, sMsg); break; case 104: if(sMsg == "0" || sMsg == 0) sMsg = ""; theTalker = "|&*" + sMsg; changePage(); break; case 105: break; default : break; } } function ExeLoginNoName(nVer, nHisUIN) { //匿名登录处理返回 if(SendServerUIN != '') { //上传客服列表 me.UploadContactList(nHisUIN, SendServerUIN); changePage(); } flashUIN = nHisUIN; } function send_msg(txtDestUIN, TxtSend, MSG_NUM) { //发送消息 if(txtDestUIN == '' || MSG_NUM == '') return; me.SendMsgTo(0, txtDestUIN, TxtSend, MSG_NUM); } function send_batch_msg(txtBatchUIN, TxtSendValue, TxtSendNUM) { //群发消息(上、下线通知) if(SendServerUIN != '') me.UploadSendList(flashUIN, SendServerUIN); //上传群发对象 if(TxtSendNUM == '' || txtBatchUIN == '') return; me.SendMsgBatch(txtBatchUIN, TxtSendValue, TxtSendNUM); } function send_message(aNUM) { //发送信息(动作) var tmpString; var tempString; tempString = arrCookieId + "|" + theAsker; switch(Number(aNUM)) { case 101: //拒绝邀请 tmpString = theAsker + ","; me.SendMsgTo(0, tmpString, '', aNUM); return; break; case 102: //接受邀请 theTalker = "|&*" + theAsker; tmpString = SendServerUIN; if(tmpString == '') return; break; case 103: //发送游客上线信息 theTalker = "|&*" + theAsker; tmpString = SendServerUIN; if(tmpString == '') return; break; default : //未知 theTalker = "|&*" + theAsker; tmpString = SendServerUIN; break; } send_batch_msg(tmpString, tempString, aNUM); } //////////////////////////////////////////// // 2.1. 上线通知 //////////////////////////////////////////// var lastScript; function loadScript(url) { var h = document.getElementsByTagName("head")[0]; var f = document.createElement("script"); var d = new Date().getTime(); f.type = "text/javascript"; f.id = d; f.charset = 'utf-8'; f.src = url + '&id=' + d; h.appendChild(f); if(lastScript && g(lastScript)) g(lastScript).parentNode.removeChild(g(lastScript)); lastScript = d; } var webUserName = ""; function setWebUserName(userName) { webUserName = userName; if(webUserName == '') webUserName = '访客20:51:13'; } loadScript('http://chat.kingman.cn/service/getBox/getWebUserName.asp?arrCookieId=' + arrCookieId); //获得游客名称 var VArea = '美国 华盛顿哥伦比亚特区Cogent通信公司'; var showType = 'list'; //显示样式 var interval = 5000; //自动邀请间隔 var fromUrl = document.referrer; var pageUrl = document.location; var keyWord = getSearchKeyword(fromUrl); //获取查询关键字 function changePage() { setTimeout("send_batch_msg(SendServerUIN, flashUIN + String('|&*1|&*') + fromUrl + String('|&*') + VArea + String('|&*|&*') + keyWord + String('|&*') + webUserName + String('|&*') + String(arrCookieNum) + '|&*' + pageUrl + '|&*' + arrCookieId + '|&*' + theTalker, 103)", 1000); //向客服发送访客信息 if(showType == "link" && show_invite == 0) { document.cookie = "show_invite=1;expires=" + then.toGMTString(); setTimeout("AutoInvite();", interval); } } function getSearchKeyword(sRefererUrl) { if(sRefererUrl == "") return ""; var kw = ""; var p = "(google.+?[^a]q=([^&]*)|baidu.+?wd=([^&]*)|baidu.+?word=([^&]*)|yahoo.+?p=([^&]*)|sohu.+?query=([^&]*)|yodao.+?q=([^&]*)|sogou.+?query=([^&]*))"; var r = new RegExp(p, 'gim'); var a = r.exec(sRefererUrl); if(a) { for(var i=a.length-1; i>=0; --i) { if(a[i]) { try { kw = decodeURIComponent(a[i]); return kw; } catch(e) { return gb2utf8(a[i]); } } } } return ""; } function gb2utf8(data) { var glbEncode = []; gb2utf8_data = data; var t = gb2utf8_data.replace(/%u/g, "").replace(/%(.{2})%(.{2})/g, "%$1%$2").replace(/%([A-Z].)%(.{2})/g, "@$1$2"); t = t.split("@"); var i=0, j=t.length, k; while(++i < j) { k = t[i].substring(0, 4); if(!glbEncode[k]) { gb2utf8_char = eval("0x" + k); execScript("gb2utf8_char = Chr(gb2utf8_char)", "VBScript"); glbEncode[k] = escape(gb2utf8_char).substring(1, 6); } t[i] = glbEncode[k] + t[i].substring(4); } gb2utf8_data = gb2utf8_char = null; return unescape(t.join("%")); } //////////////////////////////////////////// // 2.2. 邀请 //////////////////////////////////////////// var g_nInviteType; //邀请样式 function greateDivForPleace(strMsg, nType) { document.getElementById("invite").style.display = ""; document.getElementById("divMsg").innerHTML = strMsg; g_nInviteType = nType; } function closeDiv() { if(g_nInviteType == CUSTOMER_INVITE) send_message('101'); document.getElementById("invite").style.display = "none"; return; } function tellDiv() { document.getElementById("invite").style.display = "none"; if(g_nInviteType == CUSTOMER_INVITE) { send_message('102'); win_open("http://chat.kingman.cn/service/chatBox.asp?lang=zh&stat=on&ImTalk=3&uin=" + theTalker + "&arrCookieId=" + arrCookieId); } else if(g_nInviteType == SYS_AUTO_INVITE) picClick(); return; } function AutoInvite() { //自动邀请 if(talkWindow && talkWindow.open && !talkWindow.closed) return false; //已经在聊天状态了 if(document.getElementById("invite").style.display != "") greateDivForPleace('来自美国 华盛顿哥伦比亚特区Cogent通信公司的朋友您好,有什么需要我帮助的吗?', SYS_AUTO_INVITE); } //////////////////////////////////////////////////////////////////////////////////////// document.documentElement.onunload = function SendCloseMsg() { //关闭窗口时,向所有客服发送我已下线的消息 send_batch_msg(SendServerUIN, arrCookieId + "|*$" + "1@109$!*1" + "|*$" + flashUIN, 108); } document.write(''); document.write(' '); document.write(' '); document.write(' '); document.write(' '); document.write(' '); document.write('');