﻿// JScript 文件 流量统计的类
var TrafficStatistics = Class.create();
TrafficStatistics.prototype=
{
    initialize:function(webdomain)
    {
        this.webdomain = webdomain;
    },
    _getReferrer:function()
    {
        var r = document.referrer;
        var rs = ['lyocs','ask','aol','google','baidu','yahoo','msn','altavista','netscape','cnn','looksmart','about','mamma','search','bing','search.ilse','ekolay','mynet','nostrum','terra','ozu'];
        if(r&&r!='')
        {
            r = r.replace(/(.*?):\/\/(?:([^:@]+)(?::([^@]*))?@)?([^:@\/]+)(?::(\d+))?(?:(\/.*?)(?:\?(.*?))?(?:#(.*?))?)$/g,'$4');
            rs.each(function(item){if(r.toLowerCase().indexOf(item)>-1)return item;});
        }
        else
        {
            r='直接输入地址';
        }
        return r;
    },
    _getOS:function()
    {
        var u = navigator.userAgent.toLowerCase();
        if(u.include('windows')){return 'Windows';}
        else if(u.include('linux')){return 'Linux';}
        else if(u.include('max')){return 'Mac';}
        else if(u.include('x11')){return 'Unix';}
        else{return 'Unknown';}
    },
    _getVersion:function(u,identify,end)
    {
        var s = u.indexOf(identify) + identify.length;
        var tu = u.substring(s, u.length);
        var ts = tu.indexOf(end);
        if(ts==-1)
        {
            ts = tu.length;
        }
        return tu.substring(0, ts);
    },
    _getBrowser:function()
    {
        var u = navigator.userAgent.toLowerCase();
        if(u.include('opera')){return 'Opera ' + this._getVersion(u,'opera/',' ');}
        else if(u.include('chrome')){return 'Chrome ' + this._getVersion(u,'chrome/',' ');}
        else if(u.include('msie')){return 'Microsoft Internet Explorer ' + this._getVersion(u,'msie ',' ');}
        else if(u.include('safari')){return 'Safari ' + this._getVersion(u,'version/',' ');}
        else if(u.include('firefox')){return 'Firefox ' + this._getVersion(u,'firefox/',' ');}
        else{return 'Unknown';}
    },
    trackPageview:function()
    {
        var l = window.location.href.replace(/(.*?):\/\/(?:([^:@]+)(?::([^@]*))?@)?([^:@\/]+)(?::(\d+))?(?:(\/.*?)(?:\?(.*?))?(?:#(.*?))?)$/g,'$1://$4:$5');
        if(l[l.length-1]==':')
        {
            l = l.substring(0, l.length - 1);
        }
        if(l==this.webdomain)
        {
            var url = this.webdomain + '/ajax/trafficstatistics.aspx?b=' + encodeURIComponent(this._getBrowser()) + '&url=' + encodeURIComponent(window.location.href) + '&os=' + this._getOS() + '&r=' + encodeURIComponent(this._getReferrer()) + '&date=' + new Date().getTime();
            new Ajax.Request(url, {method:'get',asynchronous: false});
        }
    }
}