﻿
// ****************************************
// lavaImCaller.js ver 1.0
// 
// 此库用于使用 Lava-Lava 及其 WebIM 的网站调用。请先部署 WebIM，并配置 WebIM 的 config 目录下内容
// ****************************************

// ****************************************
// OEM配置部分
// 如果网页中添加了WebIM的oem_cfg.js，并在其中配置了lavaoemid，也可不在此配置lavaoemid
// ****************************************
if (typeof(lavaoemid)	=="undefined")	{ 
	var lavaoemid=575; 
}
// WebIM 网页部分的部署url路径
var baseWebIMUrl= 'http://im.ttzcw.com:8000/';


// ****************************************
// WebIM部分
// ****************************************
var webIMUrl	= baseWebIMUrl+'index.htm';
var webIMCookieUrl = baseWebIMUrl+'js/setImCookie.htm';
var webIM_window = null;
if (typeof(webImLang)=="undefined") { var webImLang='chs'; }

// 弹出窗口启动对话，无客户端就弹出WebIM，否则启动客户端。buddyGID为被叫者GID，gid为主叫方GID。
// buddyName 和 sPassport 必须是经过 escape 编码的，避免在其中存在特殊符号。sPassMD5是经过MD5编码的密码，避免密码传递泄露。
function lavaImChatWith( buddyGID, buddyName, gid, sPassport, sPassMD5 ) {
	if (check_is_lava_installed(lavaoemid)>0){ // 如果有客户端，则启动客户端
		if(!gid || gid=='') { gid = trim(GetCookie('lavaid')); }
		var shtml;
		if(gid!='') { 
			shtml = "lava://chat?" + "gid=" + gid+ "&contact=" + buddyGID; 
		}else{
			shtml = "lava://chat?" + "contact=" + buddyGID;
		}
		var e=document.getElementById('iframe_lavaim_ctt');
		if (!e){
			e = document.createElement('iframe');
			e.id='iframe_lavaim_ctt';
			e.style.display='none';
			document.body.appendChild(e);
		}
		e.src = shtml;
		//window.opener=null;
		//setTimeout('window.close();', 1000 );
		return;			// 启动客户端后退出函数
	}
	// 如果没有检查到客户端，则弹出一个新的 webIM Chat 窗口
	var webChatUrl = webIMUrl+'?lang='+webImLang;
	webChatUrl += '&windowName=WebIM_'+location.hostname.replace( /\.|:/g , '_')+'&toGID='+buddyGID+'&toName='+buddyName;
	if (gid && gid.trim()!='') { webChatUrl += '&fromGID='+gid.trim(); }
	if (sPassport && sPassport.trim()!='') { 
		webChatUrl += '&passport='+sPassport.trim(); 
	}else{
		if (sPassMD5 && sPassMD5.trim()!='') { 
			webChatUrl += '&password='+sPassMD5.trim(); 	
		}
	}	window.open(webChatUrl,'','width=640,height=450,menubar=0,toolbar=0,directories=0,location=0,status=0,scrollbars=0');
}

// ****************************************
// ctt部分
// ****************************************
var islavasetup		= 0;		// 0: 没安装  1: 完整版  2: mini版
var isdownloadctrl	= false;	// download lavactrl.cab

// thisBrowser =  isIE :  isOpera :  isFirefox  : ''
var thisBrowser = (navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0)? 'isIE': 
	 (navigator.userAgent.indexOf('Firefox') >= 0? 'isFirefox' :(navigator.userAgent.indexOf('Opera') >= 0?'isOpera':''));
			
// lava ctt control version info
var lavactrlclsid = "CLSID:8AE01514-0125-4597-BDA3-B44B94340E4A";
var lavacttcaburl = location.href.substring(0, location.href.indexOf('/', 7)+1) + 'download/lavactrl_test.cab#version=1,0,0,6';
var lavacttctrlurl = location.href.substring(0, location.href.indexOf('/', 7)+1) +'lavactrl.htm';
var lavactturl = location.href.substring(0, location.href.indexOf('/', 7)+1) +'lavactt.htm';
var _lava_version = null;

// ****************************************
// 【检查客户端】有关函数
// ****************************************

// 检查客户端安装 - 返回： 0 : 未安装  1 : 完整版2 : mini版
function check_is_lava_installed(oemid){
	// 如果不支持 ActiveXObject，就按没安装处理, Firefox 总是按照没安装处理
	if (!window.ActiveXObject){
		islavasetup = 0;
		return islavasetup;
	}
	if (oemid) { lavaoemid = oemid; }
	try{
		var obj = null;
		try {
			obj = new ActiveXObject("LAVACTRL.LavaCtrlCtrl.1");
			isdownloadctrl = (obj)?true:false;
			if (obj) {
				islavasetup = obj.IsLavaInstalled(lavaoemid);
				if (!islavasetup){
					islavasetup = obj.IsMiniLavaInstalled(lavaoemid, "2") ;
					if (islavasetup) islavasetup = 2;
			}	}
		}catch(e){	obj = null;	}
		if (!islavasetup && isdownloadctrl)
		try {
			obj = document.createElement("OBJECT");
			obj.classid = lavactrlclsid;
			obj.codeBase = lavacttcaburl;
			islavasetup = obj.IsLavaInstalled(lavaoemid);
			if (!islavasetup) {
				islavasetup = obj.IsMiniLavaInstalled(lavaoemid, "2") ;
				if (islavasetup) islavasetup = 2;
			}
		}catch(e){	}
	}catch(e){	}
	//alert('isdownloadctrl == ' + isdownloadctrl)
	//alert('lava__ver ==' + islavasetup );	
	return islavasetup;
}

// select install version!
function checkcttcall(s){
	var lava__ver = check_is_lava_installed(lavaoemid);
	if ( (lava__ver <= 0) || ((lava__ver==2)&&((s.indexOf('tribe') > 0) || (s.indexOf('call') > 0)))) { // 超出了所安装Mini版或WebIM所能支持的功能
		return false;
	}
	window.location.href = s;
	setTimeout('window.opener=null; window.close()', 1000 );
	return true;
}

// ****************************************
// 【ctt启动交流】有关函数
// ****************************************

function Standardtalkto(contactid, lavaid){
//	alert(contactid);
	if(!lavaid || lavaid=='') lavaid = GetCookie('lavaid');
	lavaid=trim(lavaid);
	//lavaid = (lavaid.indexOf(visitorZoneIdStr)>=0)? '':lavaid;
	var shtml;
	if(lavaid!='') shtml = "lava://chat?" + "gid=" + lavaid+ "&contact=" + contactid;
	else shtml = "lava://chat?" + "contact=" + contactid;
	checkcttcall(shtml);
}

function addContact(contactid,lavaid){
	if(!lavaid || lavaid=='') lavaid = GetCookie('lavaid');
	lavaid=trim(lavaid);
	var shtml;
	if(lavaid!='') shtml = "lava://add?" + "gid=" + lavaid+ "&contact=" + contactid;
	else shtml = "lava://add?" + "contact=" + contactid;   		
	checkcttcall(shtml);
}

function addtribe(tribeid,lavaid){
	if(!lavaid || lavaid=='') lavaid = GetCookie('lavaid');
	lavaid=trim(lavaid);
	var shtml;
	if(lavaid!='') shtml = "lava://addtribe?" + "gid=" + lavaid+ "&id=" + tribeid;
	else shtml = "lava://addtribe?" + "id=" + tribeid;
	checkcttcall(shtml);
}

function entertribe(tribeid,lavaid){
	if(!lavaid || lavaid=='') lavaid = GetCookie('lavaid');
	lavaid=trim(lavaid);
	var shtml;
	if(lavaid!='') shtml = "lava://entertribe?" + "gid=" + lavaid+ "&id=" + tribeid;
	else shtml = "lava://entertribe?" + "id=" + tribeid;
	checkcttcall(shtml);
}

function createtribe(lavaid){
	if(!lavaid || lavaid=='') lavaid = GetCookie('lavaid');
	lavaid=trim(lavaid);
	var shtml;
	if(lavaid!='') shtml = "lava://newtribe?" + "gid=" + lavaid;
	else shtml = "lava://newtribe?";
	checkcttcall(shtml);
}



// ***************************************
// 【系统】通用函数
// ***************************************

function trim(s){return s.replace(/(^\s*|\s*$)/g,"");}
String.prototype.trim = function(){ return this.replace(/(^\s*)|(\s*$)/g, ""); }

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 '';
}
