 String.Format = function(format)
 {
    if ( arguments.length == 0 )
    {
        return '';
    }
    if ( arguments.length == 1 )
    {
        return String(format);
    }

    var strOutput = '';
    for ( var i=0 ; i < format.length-2 ; )
    {
        if ( format.charAt(i) == '{' && format.charAt(i+1) != '{' )
        {
            var token = format.substr(i);
            var index = String(token.match(/\d+/));
            if ( format.charAt(i+index.length+1) == '}' )
            {
                var swapArg = arguments[Number(index)+1];
                if ( swapArg )
                {
                    strOutput += swapArg;
                }
                i += index.length+2;
            }
        }
        else
        {
            if ( format.charAt(i) == '{' && format.charAt(i+1) == '{' )
            {
                strOutput += format.charAt(i);
                i++
            }
            strOutput += format.charAt(i);
            i++;
        }
    }
    strOutput += format.substr(i);
    return strOutput.replace(/{{/g, '{').replace(/}}/g, '}');
 }
 
 
  function cleanHTML(s) {
  // 把标记名统一转换为小写
  s = disableScript(s);
  // 使一些标记兼容XHTML标准
  s = s.replace(/<(hr|br|p|\/\p)>/gi, '');
  // 使图片标记兼容XHTML标准
  s = s.replace(/%/ig,"");
  s = s.replace(/&nbsp;/ig,"");
  
  s = s.replace(/<div>/ig,"");
  s = s.replace(/<\/div>/ig,"");
  
  s = s.replace(/<DIV>/ig,"");
  s = s.replace(/<\/DIV>/ig,"");
  
  s = s.replace(/<\/p>/ig,"");
  s = s.replace(/<P>/ig,"");
  s = s.replace(/<\/P>/ig,"");
  s = s.replace(/<\/BR>/ig,"");
  s = s.replace(/<BR>/ig,"");
  return s; 
}

 function disableScript(s) {
  // 禁用script标记(包括在属性中设置事件属性)
  var scriptPattern = new RegExp('<script[^>]*>.*<\/script\s*>', 'gi');
  s = s.replace(scriptPattern, '<a href=mailto:$1$2$3>$1$2$3</a>');
  
  //禁用frame(iframe)标记
  var framePattern = new RegExp('<i?frame[^>]*>.*<\/i?frame\s*>', 'gi');
  s = s.replace(framePattern, '');  
  
  var formPattern = new RegExp('<form[^>]*>.*</form\s*>', 'gi');
  s = s.replace(formPattern, ''); 
  
  return s;
}
function trim(str) {
	return (str.replace(/(\s+)$/g, '')).replace(/^\s+/g, '');
}



function GetSysTime()
{
        var date = new Date();
	    var hour = date.getHours().toString(10);
	    hour = hour.length < 2 ? '0' + hour : hour;
		var minute = date.getMinutes().toString(10);
		minute = minute.length < 2 ? '0' + minute : minute;
		var second = date.getSeconds().toString(10);
		second = second.length < 2 ? '0' + second : second;
		var value = hour + ':' + minute + ':' + second;
		return value;
}


function encode(str){
  return escape(str);
}

function decode(str){
  return unescape(str);
}



function startLoading() {
//	var loading = $('#loading');
//	var mask = $('#loading-mask');
//	mask.toggle();
//	loading.toggle();
//	var objDeck = mask[0];
//	objDeck.className="showDeck";
//	objDeck.style.filter="alpha(opacity=50)";
//	objDeck.style.opacity=40/100;
//	objDeck.style.MozOpacity=40/100;
}

function endLoading() {
	var loading = $('#loading');
	var mask = $('#loading-mask');
	loading.hide();
	mask.hide();

	
	
	
}


window.onbeforeunload=function()
{
	if(event.clientX>360&&event.clientY<0||event.altKey) 
	{ 
	 	  try
		  {
			  //debugger;
			   ShowSetValue();
			   OHCon2AxShutdown();
		  }
		  catch(err){}
	}
}
window.attachEvent('onunload',function(){
	try
	{
		DisWebAjax.OHXmlU2CLeft(userInfo.SessionID ,userInfo.CsID  ,userInfo.MemberID , userInfo.id, userInfo.SubGroupID.toString());  
		SendP2PCmd("ClientClose" , "1");
	}
	catch(errr)
	{
	}
});





//window.onunload=function()
//{
//
//}
//关闭登录控件
function OHCon2AxShutdown()
{
//alert("Close");
	try
	{
	   if(document.frames["ActivexPage"].$("OHClient").Version != "")
	   {
		   window.event.returnValue = "为了您的安全关闭当前页会关闭您的IE进程！";
	   } 
	   else
	   {
		   //alert(m_bChatMode);
		  // alert(g_iConnState);
     if(userInfo.isValues && userInfo.LastCsID != 0)
     {
		 window.event.returnValue = "如果离开,您将无法继续收到客服的消息,请选择否 , 对我们的客服作出评价!";
	}

	   }
	}
	catch(exception)
	{
     if(userInfo.isValues && userInfo.LastCsID != 0)
     {
		 window.event.returnValue = "如果离开,您将无法继续收到客服的消息,请选择否 , 对我们的客服作出评价!";
	}


	}
	try
	{
		 document.frames["ActivexPage"].OHCon2AxShutdown();
	}
	catch(exception)
	{
	}
}


function ShowDialogList(url) 
	{ 
		  var  iWidth=640; //模态窗口宽度
		  var  iHeight=280;//模态窗口高度
		  var  iTop=(window.screen.height-iHeight)/2;
		  var  iLeft=(window.screen.width-iWidth)/2;
		  window.open(url,"",
		 "Scrollbars=yes,Toolbar=no,Location=no,Direction=no,Resizeable=no,  Width="+iWidth+" ,Height="+iHeight+",top="+iTop+",left="+iLeft) 
	} 
	



/////////////////////////////Thunder JS类  ///////////////////////////////////////
var Thunder = {
	getInstance: function(){
		//优先使用web迅雷,web迅雷未安装则使用迅雷5,迅雷5也未安装或初始化出错抛出异常
		var opt = [Thunder.WebThunder, Thunder.Thunder5];
		//var opt = [Thunder.Thunder5, Thunder.WebThunder];
		for (var i=0; i<opt.length; i++){
			try{
				return opt[i].getInstance();
			}catch(e){
				continue;
			}
		}
		throw "迅雷初始化失败";
	},
	
	setParameter: function(cid, url, refer, stat){
		var inputs = ["thunder_cid", "thunder_down_url", "thunder_down_pageurl", "thunder_stat_pageurl"];
		for (var i=0; i<inputs.length; i++){
			var input = $(inputs[i]);		
			if (isUndef(input) || isNull(input)){
				input = document.createElement("input");
				input.type = "hidden";
				input.id = inputs[i];
				document.body.appendChild(input);
			}
			input.value = arguments[i];
		}
	},
	
	download: function(cid, url, refer, name, stat){
		this.getInstance().download(cid, url, refer, name, stat);
	},
	
	batchDownload: function(data, stat){
		this.getInstance().batchDownload(data, stat);
	}}
var Class={create:function(){return function(){this.initialize.apply(this,arguments);};}}
Thunder.WebThunder = Class.create();
Thunder.WebThunder.getInstance = function(){
//	if (isUndef(this._thunder))
//		this._thunder = new Thunder.WebThunder();
//	return this._thunder;
	return new Thunder.WebThunder();
}
Thunder.WebThunder.prototype = {	
	initialize: function(){
		this.__thunder = new ActiveXObject("ThunderServer.webThunder.1");
	},
	
	getVersion: function(){
		return parseInt(this.__thunder.GetVersion().split(".")[3]);
	},
	
	download: function(cid, url, refer, name, stat){
		var param = "";	
		var version = this.getVersion();

		if (version < 43)
			param = "http://my.xunlei.com/add_task.htm";
		else{
			var serverPath = this.__thunder.GetServerPath();
	   	 	serverPath = serverPath.substr(0, serverPath.length-1);
			param = serverPath + "Page/add_task.htm";
		}

		if (version < 24){
			param += "?PUB_XUNLEI{&*&}" + url.revert() + "{&*&}" + name; 
			this.__thunder.SetBrowserWindowData(param, "新的下载");
		}
		else
		{
			var data = [url.revert(), name, refer.revert(), "", "", cid, "0", stat, ""].join("{\r*\r}");
			this.__thunder.SetVariable("NewTaskData", data);
			this.__thunder.SetBrowserWindowData(param, "新的下载");
		}
		return 0;
	},
	
	batchDownload: function(data, stat){
		var batchTask = this.__thunder.BeginBatchTask();
		if(batchTask == 0){
			alert("批量下载初始化失败");
			return;
		}
		
		var version = this.getVersion();
		for(var i=0; i<data.length; i++){
			if (version < 43)
				this.__thunder.AddTaskToBatch(batchTask, data[i].url, data[i].name, data[i].refer);
			else if (version < 54)
				this.__thunder.AddTaskToBatch(batchTask, data[i].url, data[i].name, data[i].refer, data[i].cid);	
			else
				this.__thunder.AddTaskToBatch(batchTask, data[i].url, data[i].name, data[i].refer, data[i].cid, stat);	
		}
		this.__thunder.EndBatchTask(batchTask);	
	}
}
var Delegate=
{ 
  create:function(_8,_9)
 {
    var f=function()
     {
         var _b=arguments.callee.target;
         var _c=arguments.callee.func;
         return _c.apply(_b,arguments);
     };
     f.target=_8;
     f.func=_9;
     return f;
  }
};
Thunder.Thunder5 = Class.create();
Thunder.Thunder5.getInstance = function(){
	if (isUndef(this._thunder))
		this._thunder = new Thunder.Thunder5();
	return this._thunder;
}
Thunder.Thunder5.prototype = {
	initialize: function(){
		this.__thunder = new ActiveXObject("ThunderAgent.Agent.1");
	},
	
	download: function(cid, url, refer, name, stat){
		try{
			this.addTask(cid, url, refer, name, stat);
			this.commitTasks();
		}catch(e){
			alert(e.message);
		}
	},
	
	batchDownload: function(data, stat){
		try{
			for(i=0; i<data.length; i++)
				this.addTask(data[i].cid, data[i].url, data[i].refer, data[i].name, stat);
			this.commitTasks();
		}catch(e){
			alert(e.message);
		}
//		delete this.__thunder;
	},
	
	addTask: function(cid, url, refer, name, stat){
		var _addTask = [
			Delegate.create(this, function(){this.__thunder.AddTask4(url, "", refer, name, "", -1, 0, -1, "", cid, stat);}),
			Delegate.create(this, function(){this.__thunder.AddTask3(url, "", refer, name, "", -1, 0, -1, "", cid);}),
			Delegate.create(this, function(){this.__thunder.AddTask2(url, "", refer, name, "", -1, 0, -1, "");}),
			Delegate.create(this, function(){this.__thunder.AddTask(url, "", refer, name, "", -1, 0, -1);})
		];
		for (var i=0; i<_addTask.length; i++){
			try{
				_addTask[i]();
				return;
			}catch(e){	
			}
		}
		throw "不支持此方法，请安装最新的迅雷客户端";
	},
	
	commitTasks: function(){
		var _commitTasks = [
			Delegate.create(this, function(){this.__thunder.CommitTasks2(1);}),
			Delegate.create(this, function(){this.__thunder.CommitTasks();})
		];
		for (var i=0; i<_commitTasks.length; i++){
			try{
				_commitTasks[i]();
				return;
			}catch(e){
			}
		}
		throw "不支持此方法，请安装最新的迅雷客户端";
	}
}
////////////////////////////迅雷JS类   end//////////////////////////////////////////

