var version = 3.0;
var v = 0;
if(urlLink==undefined){var urlLink;try{urlLink=window.location.href;}catch(e){try{urlLink=document.URL;}catch(e){urlLink="";}}}
/********************for clear swf object when close the ie window start*********/
window.onunload=function(){try{var m=navigator.userAgent.toLowerCase().indexOf("msie")!=-1;if(m){var lh=document.getElementById('topcmm_123livehelp');livehelp.removeChild(lh);}}catch(e){}}
/********************for clear swf object when close the ie window end*********/
/**************************for open swf method start**************************/
var init_room;
var init_url;
var init_nickname;
var init_preColor;

function getParameter(arg){arg=(arg=="")?(arg+"?"):(arg+"&");return arg;}
function openSWF(urlValue,widthValue,heightValue)
{
	var indexOfSWF=urlValue.indexOf('.swf');
	var indexOfInterrogation=urlValue.indexOf('?');
	var ieURL="";
	var otherBrowserURL="";
	var swfURL="";
	var parameter="";
	if(indexOfInterrogation!=-1)
	{
		swfURL=urlValue.substring(0,indexOfInterrogation);
		parameter=urlValue.substring(indexOfInterrogation);
	}
	else
	{
		swfURL=urlValue;
	}				
	if(init_room!=undefined&&parameter.indexOf("init_room")==-1)
	{
		parameter=getParameter(parameter);	
		parameter+="init_room="+init_room;
	}
	if(init_url!=undefined&&parameter.indexOf("init_url")==-1)
	{
		parameter=getParameter(parameter);	
		parameter+="init_url="+init_url;
	}
	if(init_nickname!=undefined&&parameter.indexOf("init_nickname")==-1)
	{
		parameter=getParameter(parameter);				
		parameter+="init_nickname="+init_nickname;
	}
	if(init_preColor!=undefined&&parameter.indexOf("init_preColor")==-1)
	{
		parameter=getParameter(parameter);				
		parameter+="init_preColor="+init_preColor;
	}	
	if(indexOfSWF!=-1)
	{
		ieURL=swfURL.substring(0,indexOfSWF);
		otherBrowserURL=swfURL;
	}
	else
	{
		ieURL=swfURL;
		otherBrowserURL=swfURL+'.swf';
	}
	ieURL=ieURL+parameter;
	otherBrowserURL=otherBrowserURL+parameter;
	var m=navigator.userAgent.toLowerCase().indexOf("msie")!=-1
	if(m)//for ie, resolve the active swf problem
	{
		document.write('<DIV id="livehelp">');
		AC_FL_RunContent('codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,19,0','width',widthValue,'height',heightValue,'src',ieURL,'id','topcmm_123livehelp','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','movie',ieURL,'name','topcmm_123livehelp','swfLiveConnect','true'); 
		document.write('</DIV>');
	}
	else
	{
		try
		{
			//if firefox use document.write('<OBJECT...'>) to embed swf object, the browser will throw SetVariable is not a method exception
			document.write('<DIV id="livehelp">');
			document.getElementById("livehelp").innerHTML='<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,19,0" WIDTH="'+widthValue+'" HEIGHT="'+heightValue+'" id="topcmm_123livehelp"><PARAM NAME=movie VALUE="'+otherBrowserURL+'"><PARAM NAME=quality VALUE="high"><PARAM NAME="menu" value="false"><EMBED src="'+otherBrowserURL+'" quality=high menu=false WIDTH="'+widthValue+'" HEIGHT="'+heightValue+'" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" scale="noscale" name="topcmm_123livehelp" swLiveConnect="true"></EMBED></OBJECT>';
			document.write('</DIV>');
		}
		catch(e)
		{
			//can not use proxy
			document.write('<DIV id="livehelp"><OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,19,0" WIDTH="'+widthValue+'" HEIGHT="'+heightValue+'" id="topcmm_123livehelp"><PARAM NAME=movie VALUE="'+otherBrowserURL+'"><PARAM NAME=quality VALUE="high"><PARAM NAME="menu" value="false"><EMBED src="'+otherBrowserURL+'" quality=high menu=false WIDTH="'+widthValue+'" HEIGHT="'+heightValue+'" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" scale="noscale" name="topcmm_123livehelp" swLiveConnect="true"></EMBED></OBJECT></DIV>');
		}
	}
}
/**************************for open swf method end******************************/
/*******************************Adobe method start******************************/
//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';
  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
/*******************************Adobe method end******************************/

//display status img start
function displayStatusImg(onlineImg,offlineImg,clientHtmlUrl,win_width,win_height,init_url,init_room,init_nickname,init_preColor)
{
	var htmlcode = (s == 1) ? onlineImg : offlineImg;
	var functionStr="openClientInNewWindow('"+clientHtmlUrl+"','"+win_width+"','"+win_height+"','"+init_url+"','"+init_room+"','"+init_nickname+"','"+init_preColor+"');return false;";
	htmlcode = '<a href="'+clientHtmlUrl+'" target="123livehelp_client" onclick="'+functionStr+'"><img src="' + htmlcode + '"border="0"></a>';
	document.write(htmlcode);
}

function openClientInNewWindow(clientHtmlUrl,win_width,win_height,init_url,init_room,init_nickname,init_preColor)
{
	if(win_width=="undefined"||win_width=="")
	{
		win_width=495;
	}
	if(win_height=="undefined"||win_height=="")
	{
		win_height=440;
	}
	var parameter="";
	if(init_url=="undefined"||init_url=="")
	{
		init_url=urlLink;
	}
	parameter=getParameter(parameter);	
	parameter+="init_url="+init_url;
	if(init_room!="undefined"&&init_room!="")
	{
		parameter=getParameter(parameter);	
		parameter+="init_room="+init_room;
	}
	if(init_nickname!="undefined"&&init_nickname!="")
	{
		parameter=getParameter(parameter);	
		parameter+="init_nickname="+init_nickname;
	}
	/*if(init_preColor!=undefined&&init_preColor!="")
	{
		parameter=getParameter(parameter);	
		parameter+="init_preColor="+init_preColor;
	}*/
	var urlStr=clientHtmlUrl+parameter;
	var win = window.open(urlStr, "123livehelp_client"+Math.round(Math.random()*1000), "resizable=1, width="+win_width+",height="+win_height+",status=1");
}
//display status img end

//generator code
var CLIENT_HTML="client.html";
var LIVE_STATUS_JS="live_status.js";
var MAIN_JS="123livehelp.js";
var ONLINE_JPG="img/online.jpg";
var OFFLINE_JPG="img/offline.jpg";
var ONLINE_1_JPG="img/online1.jpg";
var OFFLINE_1_JPG="img/offline1.jpg";
var ONLINE_2_JPG="img/online2.jpg";
var OFFLINE_2_JPG="img/offline2.jpg";
var CLIENT_HTML_CODE_TEMPLATE='<script language="javascript" src="#livestatusjs#"></script>\r\n<script language="javascript" src="#mainjs#"></script>\r\n<script language="javascript">\r\ndisplayStatusImg("#online#","#offline#","#clienthtmlurl#","#width#","#height#");\r\n</script>';	
var CLIENT_STANDARD_EMBED_CODE=generateCode("0","495","440");

function generateCode(button_type,win_width,win_height)
{
	var rootUrl=urlLink.substring(0,urlLink.lastIndexOf('/'));
	var livestatusjs=LIVE_STATUS_JS;
	var mainjs=MAIN_JS;
	var online=ONLINE_JPG;
	var offline=OFFLINE_JPG;
	var clientHtml="client.html";
	switch(button_type)
	{
		case '0':
				online=ONLINE_JPG;
				offline=OFFLINE_JPG;
				break;
		case '1':
				online=ONLINE_1_JPG;
				offline=OFFLINE_1_JPG;
				break;
		case '2':
				online=ONLINE_2_JPG;
				offline=OFFLINE_2_JPG;
				break;
	  default:
	  		online=ONLINE_JPG;
				offline=OFFLINE_JPG;
	}
	if (win_width < 495)
	{
			alert("width can't be less than 495");
			return CLIENT_STANDARD_EMBED_CODE;
	}
	if (win_height < 440)
	{
			alert("height can't be less than 440");
			return CLIENT_STANDARD_EMBED_CODE;	
	}
	var embedCode=CLIENT_HTML_CODE_TEMPLATE;
	while(embedCode.indexOf("#livestatusjs#")!=-1)
	{
		livestatusjs=rootUrl+'/'+livestatusjs;
		embedCode=embedCode.replace("#livestatusjs#",livestatusjs);
	}
	while(embedCode.indexOf("#mainjs#")!=-1)
	{
		mainjs=rootUrl+'/'+mainjs;
		embedCode=embedCode.replace("#mainjs#",mainjs);
	}
	while(embedCode.indexOf("#online#")!=-1)
	{
		online=rootUrl+'/'+online;
		embedCode=embedCode.replace("#online#",online);
	}
	while(embedCode.indexOf("#offline#")!=-1)
	{
		offline=rootUrl+'/'+offline;
		embedCode=embedCode.replace("#offline#",offline);
	}
	while(embedCode.indexOf("#clienthtmlurl#")!=-1)
	{
		clientHtml=rootUrl+'/'+clientHtml;
		embedCode=embedCode.replace("#clienthtmlurl#",clientHtml);
	}
	while(embedCode.indexOf("#width#")!=-1)
	{
		embedCode=embedCode.replace("#width#",win_width);
	}
	while(embedCode.indexOf("#height#")!=-1)
	{
		embedCode=embedCode.replace("#height#",win_height);
	}
	return embedCode;
}

//generator code
function getContentDocument(e)
{
	if(e.contentDocument){return(e.contentDocument);}else if(e.contentWindow){return(e.contentWindow.document);}else if(e.document){return(e.document);}else{return(undefined);}
}
var documentjs={
 getScripts:function(){
  var retsrc=new Array();
  for(var i=0;i<document.getElementsByTagName('script').length;i++){
   if(document.getElementsByTagName('script')[i].src!=null && document.getElementsByTagName('script')[i].src!=''){
    var s=document.getElementsByTagName('script')[i].src;
    if(s.indexOf('//')>0){
     s=s.substr(s.indexOf('//')+2);
     retsrc[retsrc.length]=s.substr(s.indexOf('/'));
    }else{
     retsrc[retsrc.length]=s;
    }    
   }
  }
  return retsrc;
 },
 isLoadedByName:function(jsname){
  var js=documentjs.getScripts();
  var f=false;
  for(var i=0;i<js.length;i++){
   var s=js[i].split('/');
   if(s[s.length-1].toLowerCase()==jsname.toLowerCase()){
    f=true;break;
   }
  }
  return f;
 },
 isLoadedByPath:function(path){
  var js=documentjs.getScripts();
  var f=false;
  for(var i=0;i<js.length;i++){
   if(js[i].toLowerCase()==path.toLowerCase()){
    f=true;break;
   }
  }
  return f;
 },
 loadScriptHead:function(path){
  if(!documentjs.isLoadedByPath(path)){
   head=document.getElementsByTagName('head').item(0);
         script=document.createElement('script');
         script.src=path;
         script.type='text/javascript';
         script.defer=true;
         void(head.appendChild(script));
  }
 },
 loadScriptBody:function(path){
  if(!documentjs.isLoadedByPath(path)){
   script=document.createElement('script');
         script.src=path;
         script.type='text/javascript';
         script.defer=true;
         document.body.appendChild(script);
  }
 }
}

var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && 
  navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) 
{
	document.write('<SCRIPT LANGUAGE=VBScript\> \n');
	document.write('on error resume next \n');
	document.write('Sub lhclient_FSCommand(ByVal command, ByVal args)\n');
	document.write(' call lhclient_DoFSCommand(command, args)\n');
	document.write('end sub\n');
	document.write('</SCRIPT\> \n');
}

function lhclient_DoFSCommand(command, args)
{
	if ((command == "123livehelp") && (args == "focus"))
	{
		focus();	
	}
}
//mehtods for demo page
function generateEmbedCodeFromForm()
{
	var button_type="0";
	var buttonTypeLength=document.customForm.button_type.length;
	for(i=0;i<buttonTypeLength;i++)
	{
		if(document.customForm.button_type[i].checked)
		{
			button_type=document.customForm.button_type[i].value;
			break;
		}
	}
	var	win_width=document.customForm.win_width.value;
	var win_height=document.customForm.win_height.value;
	var embedCode=generateCode(button_type,win_width,win_height);
	document.customForm.embedCode.value=embedCode;
}

function openCustomClient1()
{
	var win_width = document.customForm.win_width.value;
	var win_height = document.customForm.win_height.value;
	if (win_width < 495)
	{
		alert("width can't be less than 495");
		return;
	}
	if (win_height < 440)
	{
		alert("height can't be less than 440");
		return;	
	}
	//var win_color=document.customForm.win_color.value;
	openClientInNewWindow("client.html",win_width,win_height,"","","","");
}

function openCustomClient2()
{
	var init_nickname=document.customForm.init_nickname.value;
	var init_room=document.customForm.init_room.value;
	openClientInNewWindow("client.html","","","",init_room,init_nickname,"");
}
//mehtods for demo page
