//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('');