﻿function insertOlcsObject()
{
	var str = "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000'" + 
	"codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' "+
	"width='0' height='0' id='proxy' align='middle'>"+
	"<param name='allowScriptAccess' value='always' />"+
	"<param name='movie' value='"+baseurl+"proxy.swf?baseurl="+baseurl+"' /><param name='quality' value='high' />"+
	"<param name='bgcolor' value='#ffffff' />"+
	"<embed src='"+baseurl+"proxy.swf?baseurl="+baseurl+"' quality='high' bgcolor='#ffffff' width='0' height='0' name='proxy' align='middle' allowScriptAccess='always' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />"+
	"</object>";
	
	document.write(str);
}

function insertOlcsMenu()
{
	var str = "<div id='bfmmenu'" + 
		"style='left: 1037px; visibility: visible; width: 185px; position: absolute; top: 67px; height: 80px; background-color:"+normal+"' >" +
		"<div onmouseup='stopMenuDrag(this)' onmousemove='dragMenu(this)' onmousedown='startMenuDrag(this)' id='dragbar'>"+
			"<img src='"+baseurl+"img/menutop.gif' border='0' height='22' width='185'></div>"+
    		"<ul id='bfmList'>"+
       		"<li class='bfmbar'>"+
			"<div bgground='"+baseurl+"img/menus.gif' align='left'>"+
			"<a class='actuator' id='productsActuator' href='#'>"+
			"<img src='"+baseurl+"img/menumiddle.gif' border='0' height='67' width='185'></a>"+
           	"<ul class='bfmenu' id='productsMenu'>"+
            "<li><a class='actuator' id='newPhonesActuator' href='#'>"+
			"<img src='"+baseurl+"img/menuzu.gif' border='0' height='18' width='18'>在线客服</a>"+
            "<ul class='bfsubm' id='newPhonesMenu'></ul>"+
			"</li></ul></div></li>"+
			"<li><img src='"+baseurl+"img/menudown.gif' height='22' width='185'></li></ul>"+
        	"</div>";
	document.write(str);
}

//开始拖动
function startDrag(obj)
{
	if (event.button == 1)
	{
		//锁定标题栏;
		obj.setCapture();
		//定义对象;
		var olcswin = obj.parentNode;
		var sha = olcswin.nextSibling;
		//记录鼠标和层位置;
		x0 = event.clientX;
		y0 = event.clientY;
		x1 = parseInt(olcswin.style.left);
		y1 = parseInt(olcswin.style.top);
		//记录颜色;
		normal = obj.style.backgroundColor;
		//改变风格;
		obj.style.backgroundColor = hover;
		olcswin.style.borderColor = hover;
		obj.nextSibling.style.color = hover;
		sha.style.left = x1 + offx;
		sha.style.top  = y1 + offy;
		moveable = true;
	}
}
//拖动;
function drag(obj)
{
	if(moveable)
	{
		var win = obj.parentNode;
		var sha = win.nextSibling;
		
		if (x1 + event.clientX - x0 < leftlimit)
			win.style.left = leftlimit;
		else if (x1 + event.clientX - x0 < rightlimit)
			win.style.left = x1 + event.clientX - x0;			
		else
			win.style.left = rightlimit;
			
		
		if (y1 + event.clientY - y0 > toplimit)
			win.style.top  = y1 + event.clientY - y0;
		else
			win.style.top  = toplimit;

		sha.style.left = parseInt(win.style.left) + offx + 10;
		sha.style.top  = parseInt(win.style.top) + offy + 10;
	}
}
//停止拖动;
function stopDrag(obj)
{
	if(moveable)
	{
		var win = obj.parentNode;
		var sha = win.nextSibling;
		var msg = obj.nextSibling;
		win.style.borderColor     = normal;
		obj.style.backgroundColor = normal;
		msg.style.color           = normal;
		sha.style.left = obj.parentNode.style.left;
		sha.style.top  = obj.parentNode.style.top;
		obj.releaseCapture();
		moveable = false;
	}
}

//start menu drag
function startMenuDrag(obj)
{
	if (event.button == 1)
	{
		//锁定标题栏;
		obj.setCapture();
		var win = obj.parentNode;
		
		x0 = event.clientX;
		y0 = event.clientY;
		x1 = parseInt(win.style.left);
		y1 = parseInt(win.style.top);

		moveable = true;
	}
}
//stop menu drag
function stopMenuDrag(obj)
{
	if (moveable) {
		obj.releaseCapture();
		moveable = false;
	}
	
}
//dragging menu
function dragMenu(obj)
{
	if (moveable)
	{
		var win = obj.parentNode;
		win.style.top = y1 + event.clientY - y0;
		win.style.left = x1 + event.clientX - x0;
	}
}

//获得焦点;
function getFocus(obj)
{
	if(obj.style.zIndex!=index)
	{
		index = index + 2;
		var idx = index;
		obj.style.zIndex=idx;
		obj.nextSibling.style.zIndex=idx-1;
	}
}
//最小化;
function min(obj)
{
	var win = obj.parentNode.parentNode;
	var sha = win.nextSibling;
	var tit = obj.parentNode;
	var msg = tit.nextSibling;
	var flg = msg.style.display=="none";
	if(flg)
	{
		win.style.height  = parseInt(msg.style.height) + parseInt(tit.style.height) + 2*2;
		sha.style.height  = win.style.height;
		msg.style.display = "block";
		obj.innerHTML = "0";
	}
	else
	{
		win.style.height  = parseInt(tit.style.height) + 2*2;
		sha.style.height  = win.style.height;
		obj.innerHTML = "2";
		msg.style.display = "none";
	}
}

//关闭;
function cls(obj)
{
	var win = obj.parentNode.parentNode;
	var sha = win.nextSibling;
	win.style.visibility = "hidden";
	sha.style.visibility = "hidden";
}

//创建一个对象;
function xWin(id,w,h,l,t,tit,msg)
{
	index = index+2;
	this.id      = id;
	this.width   = w;
	this.height  = h;
	this.left    = l;
	this.top     = t;
	this.zIndex  = index;
	this.title   = tit;
	this.message = msg;
	this.obj     = null;
	this.bulid   = bulid;
	this.bulid();
}

//初始化;
function bulid()
{
	var str = ""
		+ "<div id=xMsg" + this.id + " "
		+ "style='"
		+ "z-index:" + this.zIndex + ";"
		+ "width:" + this.width + ";"
		+ "height:" + this.height + ";"
		+ "left:" + this.left + ";"
		+ "top:" + this.top + ";"
		+ "background-color:#4E72B6;"
		+ "color:;"
		+ "font-size:10px;"
		+ "font-family:Verdana;"
		+ "position:absolute;"
		+ "cursor:default;"
		+ "border:1px solid;"
		+ "layer-background-color: #4E72B6;"
		+ "' "
		+ "onmousedown='getFocus(this)'>"
			+ "<div "
			+ "style='"
			+ "background-color:" + normal + ";"
			+ "width:" + (this.width-2*2) + ";"
			+ "height:20;"
			+ "color:white;"
			+ "' "
			+ "onmousedown='startDrag(this)' "
			+ "onmouseup='stopDrag(this)' "
			+ "onmousemove='drag(this)' "
			+ "ondblclick='min(this.childNodes[1])'"
			+ ">"
				+ "<span style='width:" + (this.width-2*12-4) + ";padding-left:3px;'><img src='"+baseurl+"img/onhe.gif' width='21' height='19' align='absmiddle'>" + this.title + "</span>"
				+ "<span style='width:12;border-width:0px;color:white;font-family:webdings;' onclick='min(this)'>0</span>"
				+ "<span style='width:12;border-width:0px;color:white;font-family:webdings;' onclick='cls(this)'>r</span>"

			+ "</div>"
				+ "<div style='"
				+ "width:100%;"
				+ "height:" + (this.height-20-4) + ";"
				+ "background-color:white;"
				+ "line-height:14px;"
				+ "word-break:break-all;"
				+ "padding:-2px;"
				+ "'>" + this.message
				+ "<table width='100%'  border='0' cellspacing='0' cellpadding='0'><tr><td width='57%'>"
				+ "<textarea name=chatmsglog" + this.id + " rows=30 style='height: 220px;width: 280px;background:#D3D3D3;text:#0A0A0A;line-height: 20px' readonly ></textarea>"
				+ "</td><td width='43%' valign='top'><p>&nbsp;</p></td></tr></table>"
				+ "<img src='"+baseurl+"img/onmid.gif' width='290' height='9'>"
				
				+ "<div align='left'><table width='100%'  border='0' cellspacing='0' cellpadding='0'><tr>"
				+ "<td width='48%'><textarea name=chatmsg" + this.id + " rows=3 cols=16 style='height: 80px;width: 230px;overflow:auto;background-color:#F3F3F3;text:#000000' onkeydown='if (event.keyCode==13 && event.shiftKey==false) {event.keyCode=8; sendMsg1(\"" + this.id + "\");}'></textarea></td>"
				
				+ "<td width='52%'><div align='center'>"
				+ "<input type=button value='发送' onclick='sendMsg1(\"" + this.id + "\");' style='width:60px;height:80px'>"				
				+ "</div></td></tr></table>[发送:Enter,换行:Shift+Enter] 　  <span style='color:#FF6600;font-weight:bold;'>www.beefirm.com</span></div>"
				+ "</div>"

		+ "</div>"
		+ "<div id=shadow"+this.id+" " 
		+ "style='"
		+ "width:" + this.width + ";"
		+ "height:" + this.height + ";"
		+ "top:" + this.top + ";"
		+ "left:" + this.left + ";"
		+ "z-index:" + (this.zIndex-1) + ";"
		+ "position:absolute;"
		+ "background-color:black;"
		+ "filter:alpha(opacity=40);"
		+ "'>by wildwind</div>";
	document.body.insertAdjacentHTML("beforeEnd",str);
}

function getNameByGid(gid)
{
	var ii;
	
	for (ii = 0; ii < sIndex; ii++) {
		if (gid == sjid[ii]) {
			return sname[ii];
		}	
	}
	
	return "Unknown";
}


function receivemsg()
{

}
var winList = new Array();
var desList = new Array();
var aIndex = 0;
var litext = "";
function addwindow(gid, name)
{
	var id = gid;
	
	if (!document.getElementById("xMsg"+gid)) {
		desList[aIndex] = gid;
		winList[aIndex++] = new xWin(id, fixedwidth, fixedheight, startx + aIndex * 10, starty + aIndex * 20, name,"客户服务");
	}
	else {
		var d = document.getElementById("xMsg"+gid);
		d.style.visibility = "visible";
		d = document.getElementById("shadow"+gid);
		d.style.visibility = "visible";
	}	
}

function showlist()
{
	var str = "<div id=serlist style='left:600;top:40;position:absolute'><input type='button' onclick='javascript:getList1()' value='进入客服系统'></div>";	
	document.body.insertAdjacentHTML("beforeEnd",str);
}

function initializeMenu(menuId, actuatorId) 
{
    var menu = document.getElementById(menuId);
    var actuator = document.getElementById(actuatorId);

    if (menu == null || actuator == null) return;

	actuator.parentNode.style.backgroundImage = "url(/images/plus.gif)";  
	actuator.onclick = function() {
        var display = menu.style.display;
        
		if ("productsActuator" == this.id) {
			getList1();
		}
		
		this.parentNode.style.backgroundImage =
            (display == "block") ? "url(/images/plus.gif)" : "url(/images/minus.gif)";
        menu.style.display = (display == "block") ? "none" : "block";
	
        return false;
    }
}


// JavaScript Document

var timeInterval = 1000;

function initAjax()
{
    var ajax=false;
    try {
      ajax = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
          ajax = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
          ajax = false;
      }
    }
    if (!ajax && typeof XMLHttpRequest!='undefined') {
      ajax = new XMLHttpRequest();
    }
    return ajax;
}

var sjid = new Array();
var sname = new Array();
var sIndex = 0;

function GetMsgFromText(text)
{
  	var myReg1 = /<jid>([_a-z0-9A-Z\.\-]+@[_a-z0-9A-Z\.]+\.[a-z0-9]{2,4})<\/jid><msg>([\w\W]+?)<\/msg>/g;
  	var jid;
  	var content;
  	var t;
	var msgbox;
	var panelbox;

  	while(myReg1.test(text)) {
    	jid = RegExp.$1;
    	content = RegExp.$2;
    	t = getNameByGid(jid);

    	msgbox = document.getElementById("chatmsglog"+jid);
		panelbox = document.getElementById("xMsg"+jid);
		
        if (msgbox != null) {
		    msgbox.value += t + "对您说:" + content + "\n";
    	    msgbox.scrollTop += 10000;
			
			if (panelbox.style.visibility == 'hidden') {
				panelbox.style.visibility = 'visible';
			}
		}
		else {
			for (var i = 0; i < sIndex; i++) {
				if (sjid[i] == jid) {
					addwindow(jid, sname[i]);
					msgbox = document.getElementById("chatmsglog"+jid);
					msgbox.value += t + "对您说:" + content + "\n";
		    	    msgbox.scrollTop += 10000;
					break;
				}
			}
		}
		msgbox = null;
		panelbox = null;
  	}
}

function CheckMsg()
{
  	var url = baseurl+"check.php";
    //实例化Ajax对象
    var ajax = initAjax();
	var postStr = "";
	var timeDelay;
	
    //使用Post方式进行请求
    ajax.open("POST", url, true);

  	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

  	postStr="realm="+realm+"&guestid="+guestid;

  	ajax.send(postStr);
    //获取执行状态
    ajax.onreadystatechange = function() {
    //如果执行是状态正常，那么就把返回的内容赋值给上面指定的层
      	if (ajax.readyState == 4 && ajax.status == 200) {
      		if (ajax.responseText.length > 2) {
        		GetMsgFromText(ajax.responseText);
        		this.focus();
      		}
			timeDelay = setTimeout("CheckMsg()", timeInterval);
			ajax = null;
      	}
	  	else if (ajax.readyState == 4){
			timeDelay = setTimeout("CheckMsg()", 5*timeInterval);
			ajax = null;
		}
    }
}


function convert(msg)
{
  msg = msg.replace(/\&/g, '&amp;');
  msg = msg.replace(/\%/g, '%25');
  msg = msg.replace(/\&/g, '%26');
  msg = msg.replace(/\+/g, '%2B');
  msg = msg.replace(/\</g, '%26lt;')
  return msg;
}

function convert1(msg)
{
  	msg = msg.replace(/\&/g, '&amp;');
   	msg = msg.replace(/\</g, '&lt;');
	return msg;
}

function sendmsg(id)
{
  var msgbox = document.getElementById("chatmsglog"+id);
  var inputbox = document.getElementById("chatmsg"+id);
  var gjidbox = document.getElementById("selectgid"+id);
  var message = inputbox.value;

  msgbox.value += "您对" + getNameByGid(id) + " 说:" + inputbox.value+"\n" ;

  inputbox.value="";

  msgbox.scrollTop += 10000;  //尽量设大
  var url = baseurl+"send.php";

  //实例化Ajax对象
    var ajax = initAjax();
    //使用Post方式进行请求
    ajax.open("POST", url, true);

  ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

  message = convert(message); //convert the special char to %xx format for post.

  postStr ="realm=" + realm + "&guestid=" + guestid + "&jid=" + id + "&msg=" + message;

  ajax.send(postStr);

  ajax.onreadystatechange = function() {
    //如果执行是状态正常，那么就把返回的内容赋值给上面指定的层
      if (ajax.readyState == 4 && ajax.status == 200) {
	  	ajax = null;
      }
    }
}

var firstGetList = 0;
function getlist()
{
	if (firstGetList)
		return;
    firstGetList = 1;
	var url = baseurl+"getser.php";
    var ajax;

	var current_url = convert1(document.URL); 
	var ref_link = convert1(document.referrer);       
	var navi = navigator.appName;  
	var language = navigator.browserLanguage;      
	var title = document.title;          
	var code = document.charset; 

    ajax = initAjax();

    ajax.open("POST", url, true);
    ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

    postStr="realm="+realm + "&guestid=" + guestid +"&cu="+current_url+"&rl="+ref_link+"&nv="+navi+"&la="+language+"&title="+title+"&co="+code;
    ajax.send(postStr);

    ajax.onreadystatechange = function() {
        if (ajax.readyState == 4 && ajax.status == 200) {
        var myReg1 = /<jid>([_a-z0-9A-Z\.\-]+@[_a-z0-9A-Z\.]+\.[a-z0-9]{2,4})<\/jid><name>([^u4e00-u9fa5]*[0-9A-Za-z]*)<\/name>/g;
        var t = "";
        while (myReg1.test(ajax.responseText)) {
            litext += "<LI><A href=\"javascript:addwindow('" + RegExp.$1 + "', '" + RegExp.$2 + "')\" ><img src='"+baseurl+"img/menuren.gif' width='13' height='17' border='0'>客服"+RegExp.$2 + "</A> </li>";            t = "客服"+RegExp.$2;
            sname[sIndex] = RegExp.$2;
            sjid[sIndex++] = RegExp.$1;
            //d.innerHTML += "<input type='button' onclick=\"addwindow('" + RegExp.$1 + "', '" + t + "')\" value='" + t + "'>";
        }
        var menu = document.getElementById("newPhonesMenu");
        menu.innerHTML = litext;
		CheckMsg();
		ajax = null;
		
      }
    }
}

function thisMovie(movieName) {
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];
}

function sendMsg1(id) {
	var msgbox = document.getElementById("chatmsglog"+id);
  	var inputbox = document.getElementById("chatmsg"+id);
  	var gjidbox = document.getElementById("selectgid"+id);
  	var message = inputbox.value;
	
	if (message.length > 400) {
		message = message.substring(0, 400);	
	}
  	
	msgbox.value += "您对" + getNameByGid(id) + " 说:" + message+"\n" ;

	
  	inputbox.value="";

  	msgbox.scrollTop += 10000;  //尽量设大
  	message = convert1(message); //convert the special char to %xx format for post.
  	thisMovie("proxy").fSendMsg(realm, guestid, id, message);
}

function checkMsg1() {
	thisMovie("proxy").fCheckMsg(realm, guestid);
}

function getList1() {
	if (firstGetList == 1)
		return;
    firstGetList = 1;
	var current_url = document.URL; 
	var ref_link = document.referrer;       
	var navi = navigator.appName;  
	var language = navigator.browserLanguage;      
	var title = document.title;          
	var code = document.charset; 
    
	thisMovie("proxy").fGetList(realm, guestid, current_url, ref_link, navi, language, title, code);
}

function jsSendMsg(content) {
	if (content != "ok")
		alert(content);
}

function jsCheckMsg(content) {
	var timeDelay;
	if (content != "null") {
		GetMsgFromText(content);
		this.focus();
	}
	timeDelay = setTimeout("checkMsg1()", timeInterval);
}

function jsCheckError(msg) {
	timeDelay = setTimeout("checkMsg1()", timeInterval*5);	
}

function jsGetList(content) {
	
    var myReg1 = /<jid>([_a-z0-9A-Z\.\-]+@[_a-z0-9A-Z\.]+\.[a-z0-9]{2,4})<\/jid><name>([^u4e00-u9fa5]*[0-9A-Za-z]*)<\/name>/g;
    var t = "";
	
    while (myReg1.test(content)) {
        litext += "<LI><A href=\"javascript:addwindow('" + RegExp.$1 + "', '" + RegExp.$2 + "')\" ><img src='"+baseurl+"img/menuren.gif' width='13' height='17' border='0'>客服"+RegExp.$2 + "</A> </li>";            t = "客服"+RegExp.$2;
        sname[sIndex] = RegExp.$2;
        sjid[sIndex++] = RegExp.$1;
    }
    var menu = document.getElementById("newPhonesMenu");
    menu.innerHTML = litext;
	
	if (inititive == 1) {
		setTimeout("sayHello()", 2000);
	}
	checkMsg1();
}

function sayHello()
{
	GetMsgFromText("<jid>"+invitor+"</jid><msg>"+hello+"</msg>");
}

function getCookieVal (offset)
{
  	var endstr = document.cookie.indexOf (";", offset);
  	if (endstr == -1)
    	endstr = document.cookie.length;
  	return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) 
{
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
    	if (document.cookie.substring(i, j) == arg)
      		return getCookieVal (j);
    	i = document.cookie.indexOf(" ", i) + 1;
    	if (i == 0) break; 
  	}
  	return null;
}

function SetCookie (name, value)
{
    var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;
    document.cookie = name + "=" + escape (value) +
    ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
    ((path == null) ? "" : ("; path=" + path)) +
    ((domain == null) ? "" : ("; domain=" + domain)) +
    ((secure == true) ? "; secure" : "");
}

function writeC() 
{
	var f=document.getElementById("formv");
	var n=f.cookiename.value;
	var v=f.cookievalue.value;
    
	var expdate = new Date();
    expdate.setTime (expdate.getTime() + 180 * (24 * 60 * 60 * 1000)); //+1 day

	SetCookie(n, v, expdate, "/");
}

function readC()
{
	var f=document.getElementById("formv");
	var n=f.cookiename.value;
	
	var v=GetCookie(n);
	
	f.cookievalue.value = v;
}

function generateGID()
{
	var num = Math.random(); 
	
	num *= 1000000;	
	return Math.round(num);
}

function getGuestID()
{
	var n="gid";
	var gid = GetCookie(n);
	if (gid == null) {
		gid = generateGID();
		var expdate = new Date();
		expdate.setTime(expdate.getTime() + 180 * (24*60*60*1000));		
		SetCookie("gid", gid, expdate, "/");
	}
	return gid;
}

function _bfolcsstart()
{
	insertOlcsObject();
	insertOlcsMenu();
	guestid = getGuestID();
	initializeMenu("productsMenu", "productsActuator");
    initializeMenu("newPhonesMenu", "newPhonesActuator");
    initializeMenu("compareMenu", "compareActuator");
	if (inititive == 1) {
		setTimeout("getList1()", 2000);
	}
}
