document.write('<div style="display:none" id="speed_img_div"></div>');

speed_makeImg.timer = null;
function speed_makeImg(src,host){
    var tmp = new Date().getTime();
    src += '?t='+tmp;
    document.getElementById('speed_img_div').innerHTML = '<img onload="speed_imgLoaded(\''+host+'\',1)" onerror="speed_imgLoaded(\''+host+'\',0)" onabort="speed_imgLoaded(\''+host+'\',0)" src="'+src+'" style="display:none" />';
    
    speed_makeImg.start = new Date().getTime();
    window.clearTimeout(speed_makeImg.timer);
    speed_makeImg.timer = null;
    speed_makeImg.timer = window.setTimeout(speed_abort,1000);
}

//图片下载到达一定时间后或图片下载完成后调用此函数，进入下一张图片下载，当前下载中断
function speed_abort(){
    document.getElementById('speed_img_div').innerHTML = '';
    window.clearTimeout(speed_makeImg.timer);
    speed_makeImg.timer = null;
    speed_imgLoaded(hostlist[speed_imgLoaded.times],0);
}

function speed_saveMs(host,ms){
    if(undefined===speed_imgLoaded.speed[host]){
        speed_imgLoaded.speed[host] = [];
    }
    speed_imgLoaded.speed[host].push(ms);
} 

speed_imgLoaded.speed = {};
speed_imgLoaded.times = 0;
function speed_imgLoaded(_host,success){
    window.clearTimeout(speed_makeImg.timer);
    speed_makeImg.timer = null;

    speed_imgLoaded.times++;
    if(speed_poll_times<speed_imgLoaded.times) return;

    if(success){
        var curr = new Date().getTime();
        var ms = curr - speed_makeImg.start;
    }else{ //下载失败
        ms = 1000;
    }
//    msg(speed_imgLoaded.times+'  '+_host+'  '+ms);
    speed_saveMs(_host,ms);

    //避免死循环
    if(speed_imgLoaded.times>50) return false;
    
    //图片下载完毕
    if(speed_poll_times<=speed_imgLoaded.times){
        var fasthosts = {}; //记录每个域名较快的次数
        var mscount = {}; //记录每个域名的ms总和
        for(var i=0;i<speed_test_times;++i){
            var min = Number.MAX_VALUE;
            var fasthost = null;
            for(var host in speed_imgLoaded.speed){
                var hostmslist = speed_imgLoaded.speed[host];
                var ms = hostmslist[i];

                if(!mscount[host]) mscount[host] = 0;
                mscount[host] += ms;
                
                if(ms<min){
                    min = ms;
                    fasthost = host;
                }
            }

            if(fasthost){
                if(!fasthosts[fasthost]) fasthosts[fasthost] = 0;
                fasthosts[fasthost]++;
            }
        }

        //判断速度较快票数最多的为最快域名
        fasthost = null;
        var max = 0;
        for(var host in fasthosts){
            var votes = fasthosts[host];
            if(votes>max){
                fasthost = host;
                max = votes;
            }
        }

        if(!fasthost) return;

        //限制必须每次都是该域名较快才保存结果
        if(max<speed_test_times) return;

        //判断较快的主机是否比别的主机使用的时长快30%
        fastms = mscount[fasthost];
        for(var host in mscount){
//            msg(host+'共耗时'+mscount[host]+'ms');
            if(host==fasthost) continue;
            if(fastms > mscount[host]*0.7) return;
        }
        
//        msg('较快的域名：'+fasthost);
        //设置过期时间
        var expires = new Date().getTime()+1*600000;
        Cookie.setCookie(speed_cookiename, fasthost, expires,'/','sudu.cn');
        if(window.location.hostname!=fasthost){
            window.location = window.location.toString().replace(window.location.hostname,fasthost);
        }
    }else{ //继续下载下一个图片
        var i = speed_imgLoaded.times; //不能赋值给i，在IE下i为undefined
        speed_makeImg('http://'+hostlist[speed_imgLoaded.times]+'/'+imgname,hostlist[speed_imgLoaded.times]);
    }
}

var host = window.location.hostname;
var speed_cookiename = 'SUDU_SPEED_IDC';
var spped_times_cookiename = 'SUDU_SPEED_TIMES';
var cookie_host = Cookie.getCookie(speed_cookiename);
if(cookie_host){
    if(host!=cookie_host){
        window.location = window.location.toString().replace(host,cookie_host);
    }
}else{
    var speed_test_times = Cookie.getCookie(spped_times_cookiename)-0;
    if(isNaN(speed_test_times)) speed_test_times = 0;
    if(speed_test_times<5){
        var expires = new Date().getTime()+2*3600000;
        Cookie.setCookie(spped_times_cookiename, ++speed_test_times , expires,'/','sudu.cn');
        
        var cnchost = 'cnc.sudu.cn';
        if(host==cnchost) host = 'www.sudu.cn';
        window.speed_test_times = 2; //每个主机的图片下载2次
        
        window.hostlist_single = [cnchost,host];
        //生成一个重复host的数组用于循环
        
        var hostlist = [];
        for(var i=0;i<speed_test_times;++i){
            hostlist = hostlist.concat(hostlist_single);
        }
        
        window.speed_poll_times = hostlist.length;
        var imgname = 'speed.jpg';
        speed_makeImg('http://'+hostlist[0]+'/'+imgname,hostlist[0]);
    }
}

