		rnd.today=new Date();
		rnd.seed=rnd.today.getTime();
		function rnd() {
			rnd.seed = (rnd.seed*9301+49297) % 233280;
			return rnd.seed/(233280.0);
		};
		function rand(number) {
			return Math.ceil(rnd()*number);
		};

		function getCookie(name){
			var r=new RegExp("(^|;|\s)*"+name+"=([^;]*)(;|$)");
			var m=document.cookie.match(r);
			return(!m?"":m[2]);
		}

		function setCookie(name,value,path,domain,timeout){
			var strCookie=name+"="+value;
			if(timeout) {
				var expires=new Date();
				expires.setTime(expires.getTime()+timeout);
				strCookie+="; expires="+expires.toGMTString();
			}
			if(!path) path="/";
			strCookie+="; path="+path;
			if(domain) {
				strCookie+="; domain="+domain;
			}
			document.cookie=strCookie;    //session coockie
		}
		Date.prototype.format   =   function(format)
		{
			var   o   =   {
				"M+"   :   this.getMonth()+1,   //month
				"d+"   :   this.getDate(),         //day
				"h+"   :   this.getHours(),       //hour
				"m+"   :   this.getMinutes(),   //minute
				"s+"   :   this.getSeconds(),   //second
				"q+"   :   Math.floor((this.getMonth()+3)/3),     //quarter
				"S"   :   this.getMilliseconds()   //millisecond
			}
			if(/(y+)/.test(format))   format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length));
			for(var k in o)if(new RegExp("("+ k +")").test(format))
				format = format.replace(RegExp.$1, RegExp.$1.length==1?o[k]:("00"+ o[k]).substr((""+ o[k]).length));
			return format;
		};
		
function cdn_test()
{
this.urls = new Array();
this.urls['1'] = new Array();
this.urls['1']['url'] = '64.151.82.180/qq.jpg';
this.urls['1']['stime'] = 0;
this.urls['1']['etime'] = 0;
this.urls['1']['timeval'] = -1;
this.urls['1']['type'] = 0;
this.urls['1']['errnum'] = 0;
this.urls['2'] = new Array();
this.urls['2']['url'] = '208.96.28.228/qq.jpg';
this.urls['2']['stime'] = 0;
this.urls['2']['etime'] = 0;
this.urls['2']['timeval'] = -1;
this.urls['2']['type'] = 0;
this.urls['2']['errnum'] = 0;
this.urls['3'] = new Array();
this.urls['3']['url'] = '59.152.195.66:5816/qq.jpg';
this.urls['3']['stime'] = 0;
this.urls['3']['etime'] = 0;
this.urls['3']['timeval'] = -1;
this.urls['3']['type'] = 0;
this.urls['3']['errnum'] = 0;
this.urls['4'] = new Array();
this.urls['4']['url'] = '219.84.204.45:5816/qq.jpg';
this.urls['4']['stime'] = 0;
this.urls['4']['etime'] = 0;
this.urls['4']['timeval'] = -1;
this.urls['4']['type'] = 0;
this.urls['4']['errnum'] = 0;
this.urls['5'] = new Array();
this.urls['5']['url'] = '92.52.108.234/qq.jpg';
this.urls['5']['stime'] = 0;
this.urls['5']['etime'] = 0;
this.urls['5']['timeval'] = -1;
this.urls['5']['type'] = 0;
this.urls['5']['errnum'] = 0;


			this.testcomplete = false;
		this.uri = '';
		this.predns = new Date();

		for(var i in this.urls)
		{
			if(this.urls[i]['url'].substr(this.urls[i]['url'].length-1,1) == '/') this.urls[i]['type'] = 1;
			if(this.urls[i]['url'].substr(3,9) == 'cn.91.com' || this.urls[i]['url'].substr(3,9) == 'ct.91.com')
				this.urls[i]['url'] = 'http://'+this.predns.format('yyyyMMdd')+'.'+this.urls[i]['url'];
			else
				//this.urls[i]['url'] = 'http://'+this.urls[i]['url']+'?'+this.predns.format('yyyyMMdd');
				this.urls[i]['url'] = 'http://'+this.urls[i]['url']+'?'+this.predns.getTime();
		}
		
this.run = function () 
{
this.cur_time = new Date().getTime();
this.s_timelimit = 1199808000*1000;
this.e_timelimit = 1230566400*1000;
if(this.cur_time<this.s_timelimit || this.cur_time>this.e_timelimit)
{
return false;
}
		this.oNewNode = document.createElement("DIV");
		this.oNewNode.setAttribute('id','id_cdn_test_div');
		document.body.appendChild(this.oNewNode);
		for(var i in this.urls)
		{
			this.test(i);
			break;
		}
		return false;
		}
this.test = function(id)
{
this.urls[id]['stime'] = new Date().getTime();
document.getElementById('id_cdn_test_div').innerHTML += '<img src="'+this.urls[id]['url']+'" width="0" height="0" onerror="cdnobj.submit_speed(this, '+id+', 1);" onload="cdnobj.submit_speed(this, '+id+', 0);" />';
return false;
}
this.submit_speed = function(e, id, m)
{


			if(document.all)
			{
				e.onerror = null;
				e.onload = null;
			}
			else
			{
				e.setAttribute('onerror','null');
				e.setAttribute('onload','null');
			}

		if(this.urls[id]['timeval']!=-1) return false;

		this.urls[id]['etime'] = new Date().getTime();
		if(m && !this.urls[id]['type'])
		{
			if(this.urls[id]['errnum']<3)
			{
				this.urls[id]['errnum']++;
				this.test(id);
				return false;
			}
			this.urls[id]['timeval'] = 0;
		}
		else this.urls[id]['timeval'] = this.urls[id]['etime'] - this.urls[id]['stime'];

		this.testcomplete = false;
		for(var i in this.urls)
		{
			if(this.testcomplete)
			{
				this.testcomplete = false;
				break;
			}
			if(i == id) this.testcomplete = true;
		}

		if(!this.testcomplete)
		{
			this.test(i);
		}
		else
		{
			this.uri = '';
			for(var i in this.urls)
			{
				this.uri += '&'+i+'='+this.urls[i]['timeval'];
			}
			oNewNode = document.createElement("script");
			oNewNode.setAttribute('type','text/javascript');
			//alert(this.uri);
			oNewNode.setAttribute('src','http://'+rand(999999)+this.predns.getTime()+'.en.cdn.91monitor.cn/cdn.php?'+this.uri);
			document.getElementById('id_cdn_test_div').appendChild(oNewNode);
		}
		return false;
	}
	}

var cdnobj = new cdn_test();
function cdntestrun()
{
	cdnobj.run();
}

if(window.addEventListener )
	window.addEventListener('load', cdntestrun, false );
else if(document.addEventListener )
	document.addEventListener('load' , cdntestrun, false );
else if(window.attachEvent )
	window.attachEvent( 'onload', cdntestrun );
else
{
	if(window.onload ) window.XTRonload = window.onload;
	window.onload = cdntestrun;
}

