var imfocus = 1;                                // 窗口焦点

var retry_num = 0;                              // 重试次数
var lnkover = 0;                                // 1：建立连接   2：准备连接  3：断开连接

var m_hasreg = -1;                              // 是否已经发送注册
var worker_online = 0;                          // 客服人员是否在线 
//var m_regName = "";                           // 注册昵称
var m_regEmail = "";                            // 注册邮箱
var m_regPhone = "";                            // 注册电话
var m_regQQ = "";                               // 注册QQ
var m_regMSN = "";                              // 注册MSN
var m_regCompany = "";                          // 注册单位
var m_regAddr = "";                             // 注册地址

var obj_id = 0;                                 // 客服ID
var obj_name = "";                              // 客服昵称

var autoshow = 0;                               // 1：已显示自动应答，无需再次显示
var rec_stat = 0;                               // 留言状态 1：允许留言 0：不允许
var sendtyptime = 0;                            // 发送TYP时间
var settyptime = getTime();                     // 设置TYP信息的时间
var typtime = 8;                                // 发送TYP间隔时间
var sendtyp_type = 0;                           // 发送TYP类别  0：普通消息提示  1：发送消息预知
var typcontent = "";                            // 消息预知内容

var m_typTimer = 0;                             // 消息预知定时器
var m_gidTimer = 0;                             // 读取gid定时器
var m_autoTimer = 0;                            // 自动连接定时器
var m_leftTime = zdkf_auto;                     // 自动连接时间
var m_tempLeftTime = 0;                         // 部门alert后自动连接时间
var m_noTalkTimer = 0;                          // 不说话定时器

var m_success = false;                          // 对话标志
var m_busy = false;                             // 占线
var m_busyCnt = 0;                              // 访客队列位置
var m_browserClose = false;                     // 浏览器关闭按钮被点击过
var m_toolHtml = "";                            // 工具栏中的innerHTML
var m_clickLink = false;                        // 点击连接

var CONST_GID_OVERTIME = 5;                     // GID超时检测次数
var CONST_REG_OVERTIME = 4;                     // REG超时检测次数
var isImportTimer = 0;                          // 检测是否导入定时器
var isImportTryNum = 0;                         // 检测是否导入计数

var CONST_NOTALK_TIP = (auto_disconnect-3)*60;  // 提示分钟次数
var CONST_NOTALK_OVER = 180;                    // 3分钟次数
var noTalkNum = 0;                              // 提示分钟次数
var noTalkOver = 0;                             // 3分钟计数

var m_startInitial = false;                     // 触发initial()
var m_isLink = false;                           // 是否已点击连接

try
{
  var g_comm = new CXMLClientKh("http://"+host, "/sendmsg.jsp", true);  // 通讯对象 /sendmsg.jsp
}
catch(e)
{
  insertErrorInfos("2", "comm", "create g_comm failed!");
}

// 初始化
function initial()
{
  if(m_startInitial) return;
  try
  {
    m_startInitial = true;

    display_status(infos[18]+".");
    display_msg_center(infos[18]+".");

    first_get();  // 从cookie中读取gid

    if(myid>0) // cookie中gid>0
    {
      isold = 1;
      mainProgram();
    }
    else
    {
      document.getElementById("kh_gid").src = "http://"+host+"/iframe_get_gid.php";
      m_gidTimer = setInterval("getGidTimer()", 1000);
    }
    
    if(company_tpl!="minichat")
    {
      if(copartner!="shopex")
      {
        document.getElementById("iframe_brief").src = brief;  // 公司简介
      }
      document.getElementById("iframe_logo").src = logo;  // logo

      if(dbgg!="")
      {
        getAdList();  // 底部广告
      }
    }

    document.getElementById("iframe_fav").src = "iframe_fav.php";  // 收藏夹

    getPostkey(); // 设置发送快捷键

    try
    {
      document.getElementById("im").SetVariable("domp3", 0);  // 设置声音flash
    }
    catch(e){}

    document.getElementById("face_src").src = "face.php?company_id="+company_id+"&locate="+locate; // 加载表情

    preLoadImages("../img/pf_bg.gif", "../img/pf_close.gif", "../img/info_tip.gif", "style/chat/"+company_tpl+"/img/send1_"+locate+".gif", "../img/open.gif", "../img/close.gif");  // 预加载图片

    document.getElementById("scan_speed").src = "http://www.53kf.com/scan_speed.php?arg="+arg+"&from_server="+host;  // 测速
  }
  catch(e)
  {
    m_startInitial = false;
  }
}

// 检测gid读取是否完毕
function getGidTimer()
{
  myid = get_flash_gid();

  if(myid>=0)
  {
    clearInterval(m_gidTimer);
    if(myid>0)
    {
      isold = 1;
    }
    //document.getElementById("input1").innerHTML += "timer"+myid;
    mainProgram(); // 读取flash完毕
  }
  else
  {
    retry_num++;
    if(retry_num>=CONST_GID_OVERTIME)
    {
      clearInterval(m_gidTimer);
      insertErrorInfos("2", "flash", "mainserverim load failed!");
      mainProgram(); // 读取flash失败
    }
  }
}

// 获取flash
function get_flash_gid()
{
  try
  {
    return document.frames["kh_gid"].window.guest_id;
  }
  catch(e)
  {
    try
    {
      return document.getElementById("kh_gid").contentWindow.guest_id;
    }
    catch(e)
    {
      return 0;
    }
  }
}

// 主程序
function mainProgram()
{
  if(myid>0 && reg_c!="" && (reg_stat==0 || m_lyszc=="on"))
  {
    is_import_true();
  }

  if(is_wlist==2) // is_wlist: 2 显示客服列表 0 不显示
  {
    to_main_kf();
    if(zdkf_auto!="off")
    {
      m_autoTimer = setInterval("autoLink()", 1000);
    }
  }
  else
  {
    if(is_wlist==0 && online_cnt=="0")
    {
      if(lyurl.trim()!="")  // 自定义留言
      {
        zdyly_url();
        return;
      }
      if(zsk=="1" && (zsk_auto_login=="0" || zsk_state=="1")) // 机器人
      {
        showzsk();
        return;
      }
    }

    if(lnkover==0)
    {
      if(online_cnt=="0" && lyurl.trim()!="") // 自定义留言
      {
        zdyly_url()
        return;
      }
      if(is_zdkf=="0" && zsk=="1" && online_cnt=="0")
      {
        if(m_zsk_all.length>0)
        {
          if(m_zsk_all[0].state=="1")
          {
            m_robid = m_zsk_all[0].id;
            zsk_name = m_zsk_all[0].name;
            zsk_prompt = m_zsk_all[0].prompt;
            showzsk();
            return;
          }
        }
      }
      to_kf(wids, worker_name);
    }
  }
}

// 是否已经导入
function is_import_true()
{
  try
  {
    var httprequest = createHttpRequest();
    if(httprequest!=null)
    {
      var senddata = "action=get_status&company_id="+company_id+"&guest_id="+myid;

      var url = "impl/rpc_customer.php";
      httprequest.open("POST", url, true);
      httprequest.setRequestHeader("Content-Length", senddata.length);
      httprequest.setRequestHeader("CONTENT-TYPE", "application/x-www-form-urlencoded");
      httprequest.send(senddata);

      httprequest.onreadystatechange = function()
      {
        if(4==httprequest.readyState)
        {
          if(200==httprequest.status)
          {
            //alert(httprequest.responseText);
            var dom = httprequest.responseXML;
            var rspNodes = XMLParseRsp(dom);

            if(rspNodes!=null)
            {
              var rspNode = rspNodes[0];
              var status = XMLGetRspHead(rspNode, "status");
              document.getElementById("kh_has_import").value = status;
            }
          }
        }
      }
    }
  }
  catch(e){}
}

// 自动连接倒计时
function autoLink()
{
  if(m_leftTime<0)
  {
    to_kf(wids, "");
    clearInterval(m_autoTimer);
    m_leftTime = zdkf_auto;
  }
  else
  {
    msg = "<font color='red'>"+m_leftTime+"</font> "+infos[59];
    display_status(msg);
    m_leftTime--;
  }

  m_tempLeftTime = m_leftTime;
}

g_comm.OnErr = errProc;
g_comm.OnDebug = debugProc;

g_comm.OnLinkOpen = linkOpenProc;
g_comm.OnLinkClose = linkCloseProc;
g_comm.OnTimeOverClose = timeOverCloseProc;
g_comm.OnRecvTalkMsg = recvTalkMsgProc;
g_comm.OnTyping = typingProc;
g_comm.OnSetupTyping = setupTypingProc;
g_comm.OnRecvFile = recvFileProc;
g_comm.OnWaitCount = waitCountProc;

g_comm.OnRecvRlk = recvRlkProc;
g_comm.OnLnkFail = lnkFailProc;
g_comm.OnQstFail = qstFailProc;
g_comm.OnFilFail = filFailProc;

// 错误处理
function errProc(ecode, message)
{
  //alert("error: " + ecode + ", " + message);
}

// 调试处理
function debugProc(dbgInfo)
{
  //alert("visitor:"+dbgInfo);
}

// LNK 返回
function linkOpenProc(errCode, errMsg) // errCode 客服状态 0：正常 1：客服不在线 2：离线 3：占线
{
  myid = g_comm.GetGid();
  mytempid = g_comm.GetTid();
  obj_name = g_comm.GetKfname();
  obj_id = g_comm.GetKfid();

  try
  {
    setCookie2("guest_id", myid);
    setFlashGid();
  }catch(e){}

  document.getElementById("input1").focus();
  if(obj_id==0)
  {
		if(errCode==1) // no worker online in the company
    {
      stat = infos[5];
      display_status(infos[5]);
      getWlist(1);
      lnkover = 2;
      rec_stat = 1;
    }
    if(errCode==2) // the worker is not online (离线)
    {
      stat = infos[5];
      try
      {
        display_status(infos[5]);
        document.getElementById("l-ts-wd").title = worker_name;
      }catch(e){}
      
      getWlist(1);
      
      lnkover = 2;
      rec_stat = 1;
    }
    if(errCode==3) // 占线
    {
      m_busy = true;

      display_status(infos[6]);
      disp = "";
      msg_busy = "<div class=\"busy\"><table cellpadding='5'><tr><td>"+UBBCode(UBBEncode(busy_prompt))+"</td></tr><tr><td>"+infos[66]+" <font color='red'>"+m_busyCnt+"</font> "+infos[67]+"</td></tr><tr><td>"+infos[68]+"</td></tr></table>";
     
      if(zsk=="1" && (zsk_auto_login=="0" || zsk_state=="1"))
      {
        msg_busy += infos[69]+"</div>";
      }
      else
      {
        msg_busy += "</div>";
      }

      display_msg2(msg_busy);

      lnkover = 2;
      rec_stat = 1;
    }
    if(errCode==11) // be blocked
    {
      display_status(infos[1]);
      display_msg(UBBCode(UBBEncode(reject_prompt)));
      lnkover = 2;
      rec_stat = 0;
    }
    if(errCode==100) // open two window
    {
      display_status(infos[1]);
      display_msg(infos[22]);
      lnkover = 2;
    }
    if(errCode==101) // no this worker
    {
      //display_status(infos[24]);
      //display_msg(infos[5]); // to be modified .......... show the worker's list  of the company  ,just as ecode 1

      stat = infos[5];
      display_status(infos[5]);
      getWlist(1);
      lnkover = 2;
      rec_stat = 1;
    }

    if(errCode==111)
    {
      alert(infos[111]);

      set_rlnk();
      lnkover = 200;

      var curUrl = window.location.href;
      window.location.href = curUrl;
    }

    document.getElementById("l-ts-wd").className = "";
    document.getElementById("l-ts-close").innerHTML = "&nbsp;";
  }
  else
  {
    hide_wait();

    if(imfocus==0)
    {
      window.focus();
    }

		lnksuccess();

    showConnPrompt();

    if(m_noTalkTimer==0 && auto_disconnect!=0)
    {
      m_noTalkTimer = setInterval("checkNoTalk()", 1000); // 开启不说话定时器
    }

    if(m_typTimer==0)
    {
      m_typTimer = setInterval("sendTypMsg()", 1000); // 开启消息预知定时器
    }
  }

	if(worker_online>0) // 首次LNK
	{
		try
		{
			do_send_reg(m_regName, m_regEmail, m_regPhone, m_regQQ, m_regMSN, m_regCompany, m_regAddr, company_id, myid, obj_id);
			m_hasreg = 1;
		}catch(e){}
	}
}

// 设置iframe_fav变量
function set_rlnk()
{
  try
  {
    document.frames["iframe_fav"].window.rlnk = 1;
  }
  catch(e)
  {
    try
    {
      document.getElementById("iframe_fav").contentWindow.rlnk = 1;
    }
    catch(e){}
  }
}

// 显示接通提示
function showConnPrompt()
{
  display_msg2("<div class='send-msg-name' style='margin-top:0px;'>"+obj_name+"&nbsp;"+getTime2()+"</div><p class='recv-msg-content'>"+UBBCode(UBBEncode(conn_prompt))+"</p>");

  if(question!="")
  {
    g_comm.SendTalkMsg(UrlEncode(question));
    display_msg2("<div class='send-msg-name'>"+infos[13]+"&nbsp;"+getTime2()+"</div><p class='send-msg-content'>"+question+"</p>");
  }
}

// 发送 TYP
function sendTypMsg()
{
  if(getTime()-settyptime>=8)
  {
    clearTYP();
  }

  sendTYP();
}

// 检查访客是否说话
function checkNoTalk()
{
  if(noTalkNum<CONST_NOTALK_TIP)
  {
    noTalkNum++;
  }
  else
  {
    if(noTalkOver==0)
    {
      msgTip(infos[108]);
    }
    if(noTalkOver<CONST_NOTALK_OVER)
    {
      noTalkOver++;
    }
    else
    {
      vote_true = true;
      clearInterval(m_noTalkTimer);
      closeLink();
    }
  }
}

// 连接成功显示相关
function lnksuccess()
{
  lnkover = 1;
  rec_stat = 0;
  m_success = true;
  try
  {
    document.getElementById("im").SetVariable("domp3", 1);
  }catch(e){}
  document.getElementById("clue").innerHTML = obj_name+" "+infos[26];

  if(locate=="cn")
  {
    display_status("与 <a href='#' onclick='kfInfo()'>"+obj_name+"</a> 交谈中");
  }
  else if(locate=="tw")
  {
    display_status("與 <a href='#' onclick='kfInfo()'>"+obj_name+"</a> 交談中");
  }
  else if(locate=="en")
  {
    display_status(infos[9]+" <a href='#' onclick='kfInfo()'>"+obj_name+"</a>");
  }
  else if(locate=="ja")
  {
    display_status("<a href='#' onclick='kfInfo()'>"+obj_name+"</a> "+infos[9]);
  }
  else if(locate=="ko")
  {
    display_status("<a href='#' onclick='kfInfo()'>"+obj_name+"</a> "+infos[9]);
  }
  else if(locate=="ge")
  {
    display_status("<a href='#' onclick='kfInfo()'>"+obj_name+"</a> "+infos[9]);
  }
  else if(locate=="ru")
  {
    display_status("<a href='#' onclick='kfInfo()'>"+obj_name+"</a> "+infos[9]);
  }
  else if(locate=="fr")
  {
    display_status("<a href='#' onclick='kfInfo()'>"+obj_name+"</a> "+infos[9]);
  }
  
  document.getElementById("l-ts-wd").className = "right_border";
  document.getElementById("l-ts-close").innerHTML = '<a href="#" onclick="closeLink()"><img src="style/chat/'+company_tpl+'/img/dialog_close_'+locate+'.gif" alt="'+infos[96]+'" border=0 ></a>';
}

// WAT 返回
function waitCountProc(cnt)
{
  if(cnt<0)
  {
    getWlist(1);
  }
  else
  {
    m_busyCnt = cnt;

    if(m_busy==true)
    {
      display_status(infos[6]);
      
      msg_busy = "<div class=\"busy\"><table cellpadding='5'><tr><td>"+UBBCode(UBBEncode(busy_prompt))+"</td></tr><tr><td>"+infos[66]+" <font color='red'>"+cnt+"</font> "+infos[67]+"</td></tr><tr><td>"+infos[68]+"</td></tr></table>";
       
      if(zsk=="1" && (zsk_auto_login=="0" || zsk_state=="1"))
      {
        msg_busy += infos[69]+"</div>";
      }
      else
      {
        msg_busy += "</div>";
      }

      disp = "";
      display_msg2(msg_busy);
    }
  }
}

function hide_wait()
{
  try
  {
		var re = new RegExp("class=\"busy\"", "gim");
		disp = disp.replace(re,'class=\"\" style=\"display:none\"');

		document.getElementById("box-main-l-disp").innerHTML = disp;
		document.getElementById('box-main-l-disp').scrollTop += 100000;
	}catch(e){}
}

// ULN 返回
function linkCloseProc(robid)
{
  clearInterval(m_noTalkTimer);

  if(robid!="")
  {
    m_robid = robid;
    showzsk(1);
    document.getElementById("l-ts-wd").className = "";
    document.getElementById("l-ts-close").innerHTML = "&nbsp;";
    closeUpload();
    return;
  }

  m_success = false;

  g_comm.ShutDown(true);  // 断开GET连接

  lnkover = 3;
  display_msg("<br>"+UBBCode(UBBEncode(close_prompt)));
  display_status(infos[12]);

  if(kfpf!=0 && !vote_true)
  {
    vote_open();
  }

  clearTYP();
  closeUpload();

  document.getElementById("l-ts-wd").className = "";
  document.getElementById("l-ts-close").innerHTML = "&nbsp;";
}

// FLN 返回
function timeOverCloseProc(link)
{
  clearInterval(m_noTalkTimer);

  m_success = false;

  g_comm.ShutDown(true);  // 断开GET连接

  lnkover = 3;
  display_msg("<br>"+UBBCode(UBBEncode(close_prompt)));
  display_status(infos[12]);

  if(kfpf!=0 && !vote_true)
  {
    vote_open();
  }

  clearTYP();
  closeUpload();

  document.getElementById("l-ts-wd").className = "";
  document.getElementById("l-ts-close").innerHTML = "&nbsp;";
}

// 收到 QST
function recvTalkMsgProc(msg)
{
  try
  {
    document.getElementById("im").SetVariable("domp3", 1);
  }catch(e){}

  msg = UBBCode(msg);
  msg = msg.replace(/(<br>)/g, "<br>");

  display_msg2("<div class='send-msg-name'>"+obj_name+"&nbsp;"+getTime2()+"</div><p class='recv-msg-content'>"+msg+"</p>");
  if(imfocus==0)
  {
    window.focus();
    document.getElementById("input1").focus();
  }
  clearTYP();
}

// 收到 TYP
function typingProc()
{
  setTYP();
}

function setupTypingProc(mode)
{
  if(mode==CONST_TYPE_MODE_WITHOUT_MSG)
  {
    typtime = 8;
  }
  else
  {
    typtime = 4;
  }
  sendtyp_type = mode;
}

// 收到 FIL
function recvFileProc(fileName)
{
  try
  {
    document.getElementById("im").SetVariable("domp3", 1);
  }catch(e){}

  display_msg("<span style='font-size:13px;'>• "+obj_name+"&nbsp;"+infos[44]+" \"<a title='"+infos[45]+"' href='"+getStringField(fileName, "*", 1)+"' target='_blank'>"+getStringField(fileName, "*", 2)+"</a>\"</span>");
  if(imfocus==0)
  {
    window.focus();
    document.getElementById("input1").focus();
  }
  clearTYP();
}

// 发送 TYP
function sendTYP()
{
  if(getTime()-sendtyptime>=typtime && typcontent!=document.getElementById("input1").value)
  {
    if(sendtyp_type==0)
    {
      if(document.getElementById("input1").value!="")
      {
        g_comm.SendTyping("");  // 发送消息提示
      }
    }
    else
    {
      if(document.getElementById("input1").value!="")
      {
        msg = UBBEncode(document.getElementById("input1").value);
        try
        {
          msg = msgFilter(msg);
        }catch(e){}
        g_comm.SendTyping(UBBCode(UrlEncode(msg)));  // 发送消息预知
      }
    }
    sendtyptime = getTime();
    typcontent = document.getElementById("input1").value;
  }
}

// TYP 显示
function setTYP()
{
  settyptime = getTime();
  document.getElementById("clue").style.display = "block";
}

// TYP 隐藏
function clearTYP()
{
  settyptime = getTime();
  document.getElementById("clue").style.display = "none";
}

// 发送消息 QST
function qstmsg(msg)
{
  setNoTalkVariable();
  g_comm.SendTalkMsg(msg);
}

// 发送 FIL
function send_FIL(filename)
{
  setNoTalkVariable();
  g_comm.SendFile(filename);
}

// 点击结束对话按钮 发送 ULN
function closeLink()
{
  g_comm.TerminateLink();
}

// 收到 RLK
function recvRlkProc()
{
  msgTip(infos[104]);
}

// LNK 连接失败提示
function lnkFailProc()
{
  failTip(0, "");
}

// QST 发送失败提示
function qstFailProc(msg)
{
  failTip(1, msg);
}

// FIL 发送失败提示
function filFailProc()
{
  failTip(2, "");
}



// 填写注册信息
function to_reg()
{
  if(locate=="en")
  {
    var str = "<table class=\"to_reg\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\">";
    str += "<tr><td width=\"100%\" align=\"left\" colspan=\"3\"><div class=\"to_reg_title\">"+UBBCode(UBBEncode(reg_prompt))+"</div></td></tr>";
    str += "<tr valign=\"top\" id=\"reg_err_tr\" style=\"display:none\"><td colspan=\"3\" align=\"center\"><img src=\"/img/red2.gif\">&nbsp;<font color=\"#C00000\"><b><span id=\"reg_err\"></span></b></font></td></tr>";
    
    str += rwordstr;

    str += "<tr><td></td><td align=\"left\"><input type=\"submit\" onclick=\"to_link(this)\" value=\"Start Talk\"></td></tr>";
    str += "</table>";
    display_status("Waiting for beginning");
    display_msg(str);

    document.getElementById("input1").value = "Please click the button of \"Start Talk\"!";
  }
  else if(locate=="cn")
  {
    if(company_id==876601 || company_id==60603)
    {
      var str = "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\">";
      str += "<tr><td width=\"100%\" bgcolor=\"#D8E8FF\" align=\"center\" colspan=\"3\"><span style=\"font-size:14px\">请填写您的信息。</span></td></tr>";
      str += "<tr><td align=\"right\" colspan=\"3\"><br>* 请如实提供您的真实姓名和用户名，否则客服中心有权拒绝回答您的提问。<br><br></td></tr>";
      str += "<tr valign=\"top\" id=\"reg_err_tr\" style=\"display:none\"><td colspan=\"3\" align=\"center\"><img src=\"/img/warning.gif\">&nbsp;&nbsp;&nbsp;&nbsp;<img src=\"/img/red2.gif\">&nbsp;<font color=\"#C00000\"><b><span id=\"reg_err\"></span></b></font></td></tr>";
      str += "<tr><td align=\"right\"><b>真实姓名:</b></td><td><input type=\"text\" name=\"reg_first_name\" maxlength=\"50\" size=\"30\"> &#160;<input type=\"hidden\" name=\"reg_mail\"><input type=\"hidden\" name=\"reg_phone\"></td><td>&nbsp;</td></tr>";
      str += "<tr><td align=\"right\"><b>用户名:</b></td><td><input type=\"text\" maxlength=\"100\" name=\"reg_last_name\" size=\"30\"> &#160;</td><td>&nbsp;</td></tr>";
      str += "<tr><td colspan=\"3\" align=\"center\"><br><input type=\"submit\" onclick=\"to_link(this)\" value=\"开始对话\"></td></tr>";
      str+="</table>";
      display_status("等待开始对话");
      display_msg(str);

      document.getElementById("input1").value="请点击按钮 \"开始对话\"!";
    }
    else
    {
      var str = "<table class=\"to_reg\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\">";
      str += "<tr><td width=\"100%\" align=\"left\" colspan=\"2\"><div class=\"to_reg_title\">"+UBBCode(UBBEncode(reg_prompt))+"</div></td></tr>";
      str += "<tr valign=\"top\" id=\"reg_err_tr\" style=\"display:none\"><td colspan=\"2\" align=\"center\"><img src=\"/img/red2.gif\">&nbsp;<font color=\"#C00000\"><b><span id=\"reg_err\"></span></b></font></td></tr>";
      
      str += rwordstr;
      
      str += "<tr><td></td><td align=\"left\"><input type=\"submit\" onclick=\"to_link(this)\" value=\"开始对话\"></td></tr>";
      str += "</table>";
      display_status("等待开始对话");
      display_msg(str);

      document.getElementById("input1").value = "请点击按钮 \"开始对话\"!";
    }
  }
  else if(locate=="tw")
  {
    var str = "<table class=\"to_reg\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\">";
    str += "<tr><td width=\"100%\"  align=\"left\" colspan=\"3\"><div class=\"to_reg_title\">"+UBBCode(UBBEncode(reg_prompt))+"</div></td></tr>";
    str += "<tr><td align=\"right\" colspan=\"3\">&nbsp;</td></tr>";
    str += "<tr valign=\"top\" id=\"reg_err_tr\" style=\"display:none\"><td colspan=\"3\" align=\"center\"><img src=\"/img/red2.gif\">&nbsp;<font color=\"#C00000\"><b><span id=\"reg_err\"></span></b></font></td></tr>";
    
    str += rwordstr;

    str += "<tr><td></td><td align=\"left\"><input type=\"submit\" onclick=\"to_link(this)\" value=\"開始對話\"></td></tr>";
    str += "</table>";
    display_status("等待開始對話");
    display_msg(str);

    document.getElementById("input1").value = "請點擊按鈕 \"開始對話\"!";
  }
  else if(locate=="ja")
  {
    var str = "<table class=\"to_reg\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\">";
    str += "<tr><td width=\"100%\"  align=\"left\" colspan=\"3\"><div class=\"to_reg_title\">"+UBBCode(UBBEncode(reg_prompt))+"</div></td></tr>";
    str += "<tr><td align=\"right\" colspan=\"3\">&nbsp;</td></tr>";
    str += "<tr valign=\"top\" id=\"reg_err_tr\" style=\"display:none\"><td colspan=\"3\" align=\"center\"><img src=\"/img/red2.gif\">&nbsp;<font color=\"#C00000\"><b><span id=\"reg_err\"></span></b></font></td></tr>";
    
    str += rwordstr;

    str += "<tr><td></td><td align=\"left\"><input type=\"submit\" onclick=\"to_link(this)\" value=\"対話を始める\"></td></tr>";
    str += "</table>";
    display_status("待機中の対話を開始する");
    display_msg(str);

    document.getElementById("input1").value = "ボタンをクリックしてください \"対話を始める\"!";
  }
  else if(locate=="ru")
  {
    var str = "<table class=\"to_reg\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\">";
    str += "<tr><td width=\"100%\"  align=\"left\" colspan=\"3\"><div class=\"to_reg_title\">"+UBBCode(UBBEncode(reg_prompt))+"</div></td></tr>";
    str += "<tr><td align=\"right\" colspan=\"3\">&nbsp;</td></tr>";
    str += "<tr valign=\"top\" id=\"reg_err_tr\" style=\"display:none\"><td colspan=\"3\" align=\"center\"><img src=\"/img/red2.gif\">&nbsp;<font color=\"#C00000\"><b><span id=\"reg_err\"></span></b></font></td></tr>";
    
    str += rwordstr;

    str += "<tr><td></td><td align=\"left\"><input type=\"submit\" onclick=\"to_link(this)\" value=\"Start Talk\"></td></tr>";
    str += "</table>";
    display_status("Waiting for beginning");
    display_msg(str);

    document.getElementById("input1").value = "Please click the button of \"Start Talk\"!";
  }
  else if(locate=="ge")
  {
    var str = "<table class=\"to_reg\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\">";
    str += "<tr><td width=\"100%\"  align=\"left\" colspan=\"3\"><div class=\"to_reg_title\">"+UBBCode(UBBEncode(reg_prompt))+"</div></td></tr>";
    str += "<tr><td align=\"right\" colspan=\"3\">&nbsp;</td></tr>";
    str += "<tr valign=\"top\" id=\"reg_err_tr\" style=\"display:none\"><td colspan=\"3\" align=\"center\"><img src=\"/img/red2.gif\">&nbsp;<font color=\"#C00000\"><b><span id=\"reg_err\"></span></b></font></td></tr>";
    
    str += rwordstr;

    str += "<tr><td></td><td align=\"left\"><input type=\"submit\" onclick=\"to_link(this)\" value=\"Start Talk\"></td></tr>";
    str += "</table>";
    display_status("Waiting for beginning");
    display_msg(str);

    document.getElementById("input1").value = "Please click the button of \"Start Talk\"!";
  }
  else if(locate=="ko")
  {
    var str = "<table class=\"to_reg\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\">";
    str += "<tr><td width=\"100%\"  align=\"left\" colspan=\"3\"><div class=\"to_reg_title\">"+UBBCode(UBBEncode(reg_prompt))+"</div></td></tr>";
    str += "<tr><td align=\"right\" colspan=\"3\">&nbsp;</td></tr>";
    str += "<tr valign=\"top\" id=\"reg_err_tr\" style=\"display:none\"><td colspan=\"3\" align=\"center\"><img src=\"/img/red2.gif\">&nbsp;<font color=\"#C00000\"><b><span id=\"reg_err\"></span></b></font></td></tr>";
    
    str += rwordstr;

    str += "<tr><td></td><td align=\"left\"><input type=\"submit\" onclick=\"to_link(this)\" value=\"Start Talk\"></td></tr>";
    str += "</table>";
    display_status("Waiting for beginning");
    display_msg(str);

    document.getElementById("input1").value = "Please click the button of \"Start Talk\"!";
  }
  else if(locate=="fr")
  {
    var str = "<table class=\"to_reg\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\">";
    str += "<tr><td width=\"100%\"  align=\"left\" colspan=\"3\"><div class=\"to_reg_title\">"+UBBCode(UBBEncode(reg_prompt))+"</div></td></tr>";
    str += "<tr><td align=\"right\" colspan=\"3\">&nbsp;</td></tr>";
    str += "<tr valign=\"top\" id=\"reg_err_tr\" style=\"display:none\"><td colspan=\"3\" align=\"center\"><img src=\"/img/red2.gif\">&nbsp;<font color=\"#C00000\"><b><span id=\"reg_err\"></span></b></font></td></tr>";
    
    str += rwordstr;

    str += "<tr><td></td><td align=\"left\"><input type=\"submit\" onclick=\"to_link(this)\" value=\"Attendez que le dialogue\"></td></tr>";
    str += "</table>";
    display_status("Attendez que le dialogue");
    display_msg(str);

    document.getElementById("input1").value = "S'il vous plaît appuyez sur le bouton \"Attendez que le dialogue\"!";
  }

  // 滚动条置顶
  document.getElementById("box-main-l-disp").scrollTop += -10000;
  setTimeout("set_reg_focus()", 1);
}

// 设置注册焦点
function set_reg_focus()
{
  try
  {
    if(reg_c!="")
    {
      var arr = reg_c.split(",");
      document.getElementById("reg_"+arr[0]).focus();
    }
  }
  catch(e){}
}

// 点击开始对话
function to_link(obj)
{
  if(company_id==876601 || company_id==60603)
  {
    var reg_first_name = document.getElementById("reg_first_name").value.trim();
    var reg_last_name = document.getElementById("reg_last_name").value.trim();
    
    m_regName = reg_first_name+" "+reg_last_name;

    if(m_regName=="")
    {
      document.getElementById("reg_err").innerHTML = alertinfo;
      document.getElementById("reg_err_tr").style.display = "";
      return false;
    }
  }
  else
  {
    var arr = reg_c.split(",");
    for(var i=0; i<arr.length; i++)
    {
      try
      {
        if(zdyly_ck.indexOf(arr[i])>-1)
        {
          if(document.getElementById("reg_"+arr[i]).value.trim()=="")
          {
            var alertinfo = "";
            if(arr[i]=="name")
            {
              alertinfo = infos[51];
            }
            else if(arr[i]=="email")
            {
              alertinfo = infos[52];
            }
            else if(arr[i]=="phone")
            {
              alertinfo=infos[53];
            }
            else if(arr[i]=="qq")
            {
              alertinfo = infos[55];
            }
            else if(arr[i]=="msn")
            {
              alertinfo = infos[85];
            }
            else if(arr[i]=="company")
            {
              alertinfo = infos[86];
            }
            else if(arr[i]=="addr")
            {
              alertinfo = infos[112];
            }

            document.getElementById("reg_err").innerHTML = alertinfo;
            document.getElementById("reg_err_tr").style.display = "";
            document.getElementById("reg_"+arr[i]).focus();
            return false;
          }
          if(!checkRegInput(arr[i]))
          {
            return false;
          }
        }
        else
        {
          if(document.getElementById("reg_"+arr[i]).value.trim()!="")
          {
            if(!checkRegInput(arr[i]))
            {
              return false;
            }
          }
        }
      }catch(e){}
    }

    if(reg_c.indexOf("name")>-1)
    {
      m_regName = document.getElementById("reg_name").value.trim();
    }
    if(reg_c.indexOf("email")>-1)
    {
      m_regEmail = document.getElementById("reg_email").value.trim();
    }
    if(reg_c.indexOf("phone")>-1)
    {
      m_regPhone = document.getElementById("reg_phone").value.trim();
    }
    if(reg_c.indexOf("qq")>-1)
    {
      m_regQQ = document.getElementById("reg_qq").value.trim();
    }
    if(reg_c.indexOf("msn")>-1)
    {
      m_regMSN = document.getElementById("reg_msn").value.trim();
    }
    if(reg_c.indexOf("company")>-1)
    {
      m_regCompany = document.getElementById("reg_company").value.trim();
    }
    if(reg_c.indexOf("addr")>-1)
    {
      m_regAddr = document.getElementById("reg_addr").value.trim();
    }
  }

  // 1.check mail  2.send_NAM 3.save infos

  // 新客户填写，老客户不填写，检查customer是否有记录来区分新老
  obj.disabled = true;

  disp = "";
  display_status(infos[18]);

  reg_stat = 2;

  // 连接对话
  connectTalk();

  document.getElementById("input1").value = "";
}

// 检查输入项
function checkRegInput(inputName)
{
  if(inputName=="email")
  {
    if(!document.getElementById("reg_"+inputName).value.trim().IsEmail())
    {
      alert(infos[109]);
      document.getElementById("reg_"+inputName).focus();
      return false;
    }
  }
  if(inputName=="phone")
  {
    if(document.getElementById("reg_"+inputName).value.trim().length<7 || !document.getElementById("reg_"+inputName).value.trim().IsNumber())
    {
      alert(infos[54]);
      document.getElementById("reg_"+inputName).focus();
      return false;
    }
  }
  if(inputName=="msn")
  {
    if(!document.getElementById("reg_"+inputName).value.trim().IsEmail())
    {
      alert(infos[110]);
      document.getElementById("reg_"+inputName).focus();
      return false;
    }
  }
  return true;
}

// 判断是否注册
function to_kf(wid, wname, online)
{
  if(m_isLink)
  {
    return;
  }
  m_isLink = true;

  disp = "";
  worker_id = wid;
  worker_name = wname;

	clearInterval(m_autoTimer);
  m_leftTime = zdkf_auto;

  if(zdkf_type==2)
  {
    if(wid=="" && is_wlist==3 && online_cnt!="0")
    {
      alert(infos[65]);
      m_isLink = false;
      if(zdkf_auto!="off")
      {
        m_leftTime = m_tempLeftTime;
        m_autoTimer = setInterval("autoLink()", 1000);
      }
      return;
    }
  }

	if(typeof(online)!="undefined")
	{
		worker_online = online;
	}
	else
	{
		worker_online = online_cnt;
	}

  if(reg_stat==0 && reg_c!="" && worker_online>=1)
  {
    if(isold==0)
    {
      to_reg();
    }
    else
    {
      m_hasreg = document.getElementById("kh_has_import").value;
      if(m_hasreg==0)
      {
        to_reg();
      }
      else if(m_hasreg==1)
      {
        connectTalk();
      }
      else
      {
        isImportTimer = setInterval("checkIsImport()", 500);
      }
    }
  }
  else
  {
    connectTalk();
  }
}

// 检测is_import_true()返回
function checkIsImport()
{
  m_hasreg = document.getElementById("kh_has_import").value;
  if(m_hasreg!=-1)
  {
    clearInterval(isImportTimer);
    if(m_hasreg==0)
    {
      to_reg();
    }
    else
    {
      connectTalk();
    }
  }
  else
  {
    if(isImportTryNum>=CONST_REG_OVERTIME)
    {
      clearInterval(isImportTimer);
      insertErrorInfos("2", "rpc", "is_import_true request failed!");
      m_hasreg = 0;
      to_reg();
    }
    isImportTryNum++;
  }
}

// 连接对话 发送 LNK
function connectTalk()
{
  if(m_clickLink==false)
  {
    m_clickLink = true;
    g_comm.SetKhInfo(myid, UrlEncode(frompage), UrlEncode(talkpage), UrlEncode(lnk_param));
    if(m_regName!="")
    {
      g_comm.OpenLink(company_id, worker_id, 0, UrlEncode(UBBEncode(conn_prompt)), UrlEncode(HtmlEncode(m_regName)));
    }
    else
    {
      g_comm.OpenLink(company_id, worker_id, 0, UrlEncode(UBBEncode(conn_prompt)));
    }
    display_status(infos[18]+"...");
    display_msg_center(infos[18]+"...");
  }

  autoshow = 0;
  lnkover = 2;
}

// 显示客服列表
function to_main_kf()
{
  try
  {
    disp = "";
    display_status(infos[30]);
    display_msg(getWlist(2));

    // 滚动条置顶
    document.getElementById("box-main-l-disp").scrollTop += -10000;
    
    if(rec_stat==1)
    {
      document.getElementById("part_buttons").innerHTML = m_toolHtml;
    }
  }
  catch(e)
  {
    return;
  }

  worker_id = 0;
  autoshow = 0;
  lnkover = 2;
  is_wlist = 3;
  rec_stat = 0;
}

// 自助答疑
function showzsk(type)
{
  if(type!=1)
  {
    g_comm.QuitWait();
  }
  g_comm.ShutDown(true);  // 断开GET连接

  clearInterval(m_autoTimer);
  m_leftTime = zdkf_auto;

  document.getElementById("part_leaveword").style.display="none";
	document.getElementById("input1").focus();

  var offline_key = 23;
  var cname_tp = cname;
  if(locate=="en")
  {
    offline_key = 23;
    cname_tp = "";
  }

  m_toolHtml = document.getElementById("part_buttons").innerHTML;

  display_status(infos[80]);
  display_tool(infos[83]);

  rec_stat = 1;
  //is_wlist = 3;
  lnkover = 200;  // 机器人自助应答

  if(type==1) // 转接过来的
  {
    for(var i=0; i<m_zsk_all.length; i++)
    {
      if(m_robid==m_zsk_all[i].id)
      {
        zsk_name = m_zsk_all[i].name;
        zsk_prompt = m_zsk_all[i].prompt;
        break;
      }
    }
    
    var msg = "<br />"+infos[87]+"<br /><table width='90%' border='0' cellspacing='0' cellpadding='0'><tr><td width='80' align='center'><img src='style/chat/"+company_tpl+"/img/machine.gif' ></td><td>"+infos[93]+infos[91]+" "+HtmlDecode(zsk_name)+"<br />"+HtmlDecode(zsk_prompt)+"</td></tr></table>";
    
    display_msg(msg);
  }
  else
  {
    disp = "<table width='90%' border='0' cellspacing='0' cellpadding='0'><tr><td width='80' align='center'><img src='style/chat/"+company_tpl+"/img/machine.gif' ></td><td>"+infos[93]+infos[91]+" "+HtmlDecode(zsk_name)+"<br />"+HtmlDecode(zsk_prompt)+"</td></tr></table>";
    document.getElementById("box-main-l-disp").innerHTML = disp;
    if(!m_busy)
    {
      insertTalkTotal();  // 插入talk_total表
    }
  }

  if(m_robid!="")
  {
    // 获取问题分类
    sendtext("GetTypeList");
  }
  else
  {
    alert("error");
  }
}

// 客服助手
function showauto()
{
  //document.getElementById("input1").readOnly = false;
  //document.getElementById("send").disabled = false;
  document.getElementById("input1").focus();

  var offline_key = 23;
  var cname_tp = cname;
  if(locate=="en")
  {
    offline_key = 23;
    cname_tp = "";
  }
  no_autoreply();
  if(typeof(autoreplys["0"])!="undefined")
  {
    display_msg("<span id=\"autoreply\" style=\"display:\"><font color=\"#666666\">"+cname_tp+infos[4]+":</font><br>&nbsp;&nbsp;"+autoreplys["0"]+"</span>");
  }
}

// 没有自动应答回复
function no_autoreply()
{
  var re = new RegExp("id=\"autoreply\" style=\"display:","gim");
  disp = disp.replace(re,'id=\"\" style=\"display:none');
  re = new RegExp("<br><span id=\"\" style=\"display:none","gim");
  disp = disp.replace(re,'<span id=\"\" style=\"display:none');
}

// 显示客服名片 
function kfInfo()
{
  
}

//自定义留言
function zdyly_url()
{
	if(lytype==1)
	{
		location.href=lyurl;
	}
  else
	{
		display_status(infos[5]);
		document.getElementById("box-main-l-disp").focus();
		display_msg("<br><a href=\""+lyurl+"\" target=\"_blank\">点击发送留言</a>");
	}
}

// 咨询其他客服
function talkWithOthers()
{
  var curUrl = window.location.href;
  var toUrl = curUrl.replace(/(kflist=off)/gim, "kflist=on").replace(/kf=.*&/gim, "kf=&");
  window.location.href = toUrl;
}




// 创建对象
function createHttpRequest()
{
  try
  {
    var httpRequest = new ActiveXObject("MSXML2.XMLHTTP");
  }
  catch(e)
  {
    var httpRequest = new XMLHttpRequest();
  }

  return httpRequest;
}

// 插入错误信息
function insertErrorInfos(err_from, err_type, err_detail)
{
  try
  {
    var httprequest = createHttpRequest();
    if(httprequest!=null)
    {
      var err_from = UrlEncode(HtmlEncode(err_from));
      var err_type = UrlEncode(HtmlEncode(err_type));
      var err_detail = UrlEncode(HtmlEncode(err_detail));

      var senddata = "err_from="+err_from+"&err_type="+err_type+"&err_detail="+err_detail+"&company_id="+company_id+"&id6d="+obj_id;

      var url = "err_infos.php";
      httprequest.open("POST", url, true);
      httprequest.setRequestHeader("Content-Length", senddata.length);
      httprequest.setRequestHeader("CONTENT-TYPE", "application/x-www-form-urlencoded");
      httprequest.send(senddata);

      httprequest.onreadystatechange = function()
      {
        if(4==httprequest.readyState)
        {
          if(200==httprequest.status)
          {
            //alert(httprequest.responseText);
            var dom = httprequest.responseXML;
            var rspNodes = XMLParseRsp(dom);
           
            if(rspNodes!=null)
            {
              var rspNode = rspNodes[0];
              if(rspNode!=null)
              {
                var ecode = unescape(rspNode.attributes.getNamedItem("ecode").nodeValue);
              }
             
              if(ecode==0)
              {
                //alert("success");
              }
              else
              {
                //alert("failed");
              }
            }
          }
        }
      }
    }
  }
  catch(e){}
}

// 获取广告列表
function getAdList()
{
  document.getElementById("ad_html").innerHTML = "<iframe height=25 width=100% src='http://"+dbgg+"' frameborder=0 allowTransparency=true scrolling=no></iframe>";
}

// 设置flash的cookie
function setFlashGid()
{
  try
  {
    document.getElementById("kh_gid").src = "http://"+host+"/iframe_set_gid.php";
  }
  catch(e){}
}

// 失败提示 type: 0:LNK 1:QST 2:FIL
function failTip(type, msg)
{
  if(type==0)
  {
    var msg = infos[100];
    display_status(msg);
  }
  else if(type==1)
  {
    var msg = '<img src="../img/info_tip.gif" height="16" width="16"> <font style="color:#666666">'+infos[101]+' "'+failMsg(msg)+'" '+infos[102]+'</font>';
    display_msg(msg);
  }
  else if(type==2)
  {
    var msg = '<img src="../img/info_tip.gif" height="16" width="16"> <font color="#666666">'+infos[103]+'</font>';
    display_msg(msg);
  }
}

// 消息提示
function msgTip(msg)
{
  var msg = '<img src="../img/info_tip.gif" height="16" width="16"> <font color="#666666">'+msg+'</font>';
  display_msg(msg);
}

// 设置不说话变量
function setNoTalkVariable()
{
  noTalkNum = 0;
  noTalkOver = 0;
}

// 插入talk_total表
function insertTalkTotal()
{
  try
  {
    var httprequest = createHttpRequest();
    if(httprequest!=null)
    {
      var url = "lword.php";
      var senddata = "company_id="+company_id+"&guest_id="+myid+"&tempid="+mytempid+"&referer="+talkpage+"&referer1="+frompage+"&zsk=1";

      httprequest.open("POST", url, true);
      httprequest.setRequestHeader("Content-Length", senddata.length);
      httprequest.setRequestHeader("CONTENT-TYPE", "application/x-www-form-urlencoded");
      httprequest.send(senddata);

      httprequest.onreadystatechange = function()
      {
        if(4==httprequest.readyState)
        {
          if(200==httprequest.status)
          {
            var restxt = httprequest.responseText;
            ret = str_to_obj(restxt);
            if(parseInt(ret.tempid)>0)
            {
              mytempid = ret.tempid;
            }
            if(parseInt(ret.guestid)>0)
            {
              myid = ret.guestid;
              //document.getElementById("input1").innerHTML = myid;
            }
            try
            {
              setCookie2("guest_id", myid);
              setFlashGid();
            }catch(e){}
          }
        }
      }
    }
  }
  catch(e){}
}