/*
* Created by:Mascot.Leo
* Blog:http://hi.baidu.com/rockofages
* Any bug or suggestion ,please report to Email:featherheaven@gmail.com
*/
var Passport = {
    version: 2.0,
    _cookie_prefix : 'M_',
    domainName : '',
    referPage : '',
    uid : '',
    loginid: '',
    realName :'',
    sex : '',
    dob : '',
    idCard : '',
    job : '',
    city : '',
    address : '',
    zipcode : '',
    tel :'',
    earn : '',
    qq : '',
    msn : '',
    hobby : '',
    amail :'',
    useremail :'',
    SSOCode : '',
    noLoginUrl : '',
    loginedUrl : '',
    loginType : '',
    forward:'',
    partnerUrl:''
};
//读取cookie方法
function getCookie(name)
{
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;

    while (i < clen)
    {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg)
        {
            var endstr = document.cookie.indexOf(";", j);
            if (endstr == -1)    endstr = document.cookie.length;
            try
            {
                var r = decodeURI(document.cookie.substring(j, endstr));
            }
            catch(e)
            {
                var r = document.cookie.substring(j, endstr);
            }
            return r;
        }
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break;
    }
    return null;
}
//读取members相关cookie方法
Passport.getCookie = function(n)
{
    return getCookie(Passport._cookie_prefix + n);
}
//获得当前域名
Passport.getDomain = function()
{
    if (document.domain.indexOf("opensource.com.cn") != -1)
    {
        Passport.domainName = "opensource.com.cn";
        return true;
    }
    else
        if (document.domain.indexOf("nubb.com") != -1)
        {
            Passport.domainName = "nubb.com";
            return true;
        }else if(document.domain.indexOf("people.com.cn") != -1){
            Passport.domainName = "people.com.cn";
            return true;
        }else if(document.domain.indexOf("fantasy.sports.cctv.com") != -1){
            Passport.domainName = "cctv.com";
            return true;
        }
        else
        {
            return false;
        }
}
// 判断是否登陆
Passport.isLogin = function()
{
    var tuid = 0;
    Passport.getDomain();
//    if (!Passport.getDomain())
//    {
//        return false;
//    }
    if (tuid = Passport.getCookie('loginId'))    // 登陆
    {
        Passport.loginid = tuid;
        Passport.uid = Passport.getCookie('userId');
        Passport.SSOCode = Passport.getCookie('codeCookie');
        return true;
    }
    else
    {
        return false;
    }
}
//验证cookie是否有效做相应页面跳转
Passport.isSecurityLogin = function()
{
    if (Passport.isLogin())    // 登陆
    {
        Passport.getUserInfo(Passport.uid, Passport.SSOCode);
        if (Passport.loginedUrl != "")
        {
            location.href = Passport.loginedUrl;
        }
        return true;
    }
    else
    {
        var url;
        if (Passport.noLoginUrl != "")
        {
            location.href = Passport.noLoginUrl;
            return false;
        }
        else if (Passport.loginedUrl != "")
        {
            return false;
        }
        else
        {
            //            if (Passport.domainName == "china.nba.com")
            //            {
            //                url = "http://passport.china.nba.com/nba/o/default.jsp";
            //            }
            //            else
            if (Passport.domainName == "nubb.com")
            {
                url = "http://members.nubb.com/nubb/o/default.jsp";
            }
            alert("请登陆后再访问本页");
            Passport.href(url);
            return false;
        }
    }
}
//验证cookie有效性
Passport.ticketCheck = function()
{
    if (Passport.isLogin())    // 登陆
    {
        if (Passport.getUserInfo(Passport.uid, Passport.SSOCode))
        {
        }
        return true;
    }
    else
    {
        return false;
    }
}
//登录输入信息验证
Passport.loginCheck = function()
{
    var loginid = document.getElementById('loginId').value;
    var pass = document.getElementById('password').value;
    if (loginid == '')
    {
        alert('登陆帐号不能为空');
        document.getElementById('loginId').focus();
        return false;
    }
    if (pass == '')
    {
        alert('登陆密码不能为空');
        document.getElementById('password').focus();
        return false;
    }
    return true;
}
//使用提交form方式以获得reffer
Passport.href = function(url)
{
    var f = document.createElement('form');
    f.action = url;
    f.innerHTML = "<input name='refer' id='refer'  type='hidden' value='isReferPage'/>";
    document.body.appendChild(f);
    f.submit();
}
//Members退出
Passport.logout = function()
{
    Passport.partenerLogout("Passport.ucLogout(\"Passport.nubbLogout(\\\"Passport.logoutOverDo();\\\");\");");
//    Passport.ucLogout("Passport.nubbLogout(\"Passport.logoutOverDo();\");");
    return true;
}
//nubb退出
Passport.nubbLogout = function(callback)
{
    Passport.getDomain();
    var url ='http://members.nubb.com/nubb/o/logout.jsp?time=' + new Date();
    if(Passport.domainName == "people.com.cn"){
         url ='http://sports.members.people.com.cn/nubb/o/logout.jsp?time=' + new Date() +"&domain=people";
    }
    var nubbLogout = document.createElement('script');
    nubbLogout.id = "nubbLogout";
    nubbLogout.type = 'text/javascript';
    nubbLogout.src = url;
    nubbLogout.charset = 'utf-8';
    nubbLogout.onload = nubbLogout.onreadystatechange = function()
    {
        if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")
        {
            document.body.removeChild(nubbLogout);
            eval(callback);
        }
    }
    document.body.appendChild(nubbLogout);
    return true;
}

//Members登录，使用固定id为loginId,password文本框登陆
Passport.login = function()
{
    if (Passport.loginCheck())
    {
        var loginId = encodeURI(document.getElementById('loginId').value);
        var password = document.getElementById('password').value;
        Passport.loginWithParams(loginId, password);
    }
    return true;
}

Passport.loginWithParams = function(loginId, password)
{

    var url = "http://members.nubb.com/ui/login.jsp?loginId=" + loginId + '&password=' + password;
    var loginSrc = document.createElement('script');
    loginSrc.type = 'text/javascript';
    loginSrc.src = url;
    loginSrc.charset = 'utf-8';
    loginSrc.onload = loginSrc.onreadystatechange = function()
    {
        if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")
        {

            Passport.getUrlPairs(window.location.search);
            var uInfoJson = eval('(' + loginResult + ')');
            loginResult = encodeURIComponent(loginResult);
            if (uInfoJson.status == 0)
            {
                //如果页面有错误信息显示方法，那么调用该方法显示错误信息
                if (typeof(showError) == "function")
                {
                    showError(uInfoJson.text);
                }
                else
                {
                    alert(uInfoJson.text)
                }
                return false;
            }
            //判断域名
            Passport.getDomain();
            if(Passport.domainName == "people.com.cn"){
                var peopleCookie = document.createElement('script');
                peopleCookie.type = 'text/javascript';
                peopleCookie.src = 'http://sports.members.people.com.cn/nubb/o/login.jsp?jsonStr=' + loginResult + '&loginType=' + Passport.loginType + "&domain=people";
                peopleCookie.charset = 'utf-8';
                peopleCookie.onload = peopleCookie.onreadystatechange = function()
                {
                    if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")
                    {
                        document.body.removeChild(peopleCookie);
                    }
                }
                document.body.appendChild(peopleCookie);
            }
            var nubbCookie = document.createElement('script');
            nubbCookie.type = 'text/javascript';
            nubbCookie.src = 'http://members.nubb.com/nubb/o/login.jsp?jsonStr=' + loginResult + '&loginType=' + Passport.loginType;
            nubbCookie.charset = 'utf-8';
            nubbCookie.onload = nubbCookie.onreadystatechange = function()
            {
                if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")
                {
                    document.body.removeChild(nubbCookie);
                    Passport.partenerLogin("Passport.ucLogin('Passport.loginOverDo();');");
//                        Passport.ucLogin('Passport.loginOverDo();');
                }
            }
//                document.body.appendChild(nbaCookie);
            document.body.appendChild(nubbCookie);
            document.body.removeChild(loginSrc);
        }
    }
    document.body.appendChild(loginSrc);
    return true;
}

//为央视网写入fantasy游戏COOKIE
function cookieforpeopel(){
            var peopleCookie = document.createElement('script');
            peopleCookie.type = 'text/javascript';
            peopleCookie.src = 'http://members.nubb.com/nubb/o/login.jsp?jsonStr=' + loginResult + '&loginType=' + Passport.loginType;
            peopleCookie.charset = 'utf-8';
            peopleCookie.onload = peopleCookie.onreadystatechange = function()
            {
                if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")
                {
                    document.body.removeChild(peopleCookie);
                }
            }
            document.body.appendChild(peopleCookie);
}

//登录结束页面处理
Passport.loginOverDo = function()
{
    if (Passport.forward != "")
    {
        //        alert(Passport.forward);
        if (Passport.loginType == 4)
        {
            top.location.href = Passport.forward;
            return true;
        } else {
            location.href = Passport.forward;
            return true;
        }
    }
    if (Passport.loginedUrl != "")
    {
        location.href = Passport.loginedUrl;
        return true;
    }
    if (document.referrer.indexOf('logout.jsp') != -1)
    {
        location.reload();
        return true;
    }
    else
    {
        if (Passport.referPage != "")
        {
            location.href = Passport.referPage;
            return true;
        } else
        {
            if (typeof(loginCallback) == "function")
            {
                loginCallback();
//                if (Passport.referPage != "")
//                {
//                    location.href = Passport.referPage;
//                }
                return true;
            } else
            {
                location.reload();
                return true;
            }
        }
    }
}

//登出结束页面处理
Passport.logoutOverDo = function()
{
    Passport.getUrlPairs(window.location.search);

    if (typeof(logoutCallback) == "function")
    {
        logoutCallback();
        return true;
    } else {
        location.reload();
        return true;
    }
}

//UC论坛相关登录
Passport.ucLogin = function(callback)
{
    var forumCookie = document.createElement('script');
    forumCookie.id = 'forumCookieNubb';
    forumCookie.type = 'text/javascript';
    forumCookie.src = 'http://passport.forum.nubb.com/passport.php?time=' + new Date().getTime();
    forumCookie.charset = 'utf-8';
    forumCookie.onload = forumCookie.onreadystatechange = function()
    {
        if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")
        {
            document.body.removeChild(forumCookie);
            try {
                if (typeof(forum_src) == "object" && forum_src.length > 0)
                {
                    Passport.srcLoad(forum_src, 0, callback);
                    return true;
                } else
                {
                    eval(callback);
                    return false;
                }
            } catch(e) {
                eval(callback);
                return false;
            }
        }
    }
    forumCookie.onerror = function()
    {
        eval(callback);
        return false;
    }
    document.body.appendChild(forumCookie);
}
////UC论坛相关退出
Passport.ucLogout = function(callback)
{
    var forumCookie = document.createElement('script');
    forumCookie.type = 'text/javascript';
    forumCookie.src = "http://passport.forum.nubb.com/passport.php?act=logout&time=" + new Date().getTime();
    forumCookie.charset = "utf-8";
    forumCookie.onload = forumCookie.onreadystatechange = function()
    {
        if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")
        {
            document.body.removeChild(forumCookie);
            try {
                if (typeof(forum_src) == "object" && forum_src.length > 0)
                {
                    Passport.srcLoad(forum_src, 0, callback);
                    return true;
                } else
                {
                    eval(callback);
                    return false;
                }
            } catch(e) {
                eval(callback);
                return false;
            }
        }
    }
    forumCookie.onerror = function()
    {
        eval(callback);
        return false;
    }
    document.body.appendChild(forumCookie);
}

//Nubb合作伙伴退出
Passport.partenerLogout = function(callback)
{
    var partnerLogout = document.createElement('script');
    partnerLogout.type = 'text/javascript';
    partnerLogout.src = "http://members.nubb.com/partner/partnerLogout.jsp?time=" + new Date().getTime();
    partnerLogout.charset = "utf-8";
    partnerLogout.onload = partnerLogout.onreadystatechange = function()
    {
        if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")
        {
            document.body.removeChild(partnerLogout);
            if (typeof(nubb_partners_logout) == "object")
            {
                Passport.srcLoad(nubb_partners_logout, 0, callback);
                return true;
            } else
            {
                eval(callback);
                return false;
            }
        }
    }
    partnerLogout.onerror = function()
    {
        eval(callback);
        return false;
    }
    document.body.appendChild(partnerLogout);
}

//Nubb合作伙伴登陆
Passport.partenerLogin = function(callback)
{
    var nubbPartnerNode = document.createElement('script');
    nubbPartnerNode.type = 'text/javascript';
    nubbPartnerNode.src = 'http://members.nubb.com/partner/partnerLogin.jsp?time=' + new Date().getTime();
    nubbPartnerNode.charset = 'utf-8';
    nubbPartnerNode.onload = nubbPartnerNode.onreadystatechange = function()
    {
        if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")
        {
            if (typeof(nubb_partners_login) == "object")
            {
                if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")
                {
                    Passport.srcLoad(nubb_partners_login, 0, callback);
                    return true;
                }
            } else
            {
                eval(callback);
                return true;
            }
        }
    }
    nubbPartnerNode.onerror = function()
    {
        eval(callback);
        return false;
    }
    document.body.appendChild(nubbPartnerNode);
}

//处理数组提供的src地址，并控制加载顺序，在加载完毕后调用回调方法callback
Passport.srcLoad = function (nubbSrc, number, callback)
{
    var tmpNubbSrcNode = document.createElement('script');
    tmpNubbSrcNode.type = 'text/javascript';
    tmpNubbSrcNode.src = nubbSrc[eval(number)];
    tmpNubbSrcNode.charset = 'utf-8';
    tmpNubbSrcNode.onload = tmpNubbSrcNode.onreadystatechange = function()
    {
        if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")
        {
            //            alert(nubbSrc[eval(number)]);
            document.body.removeChild(tmpNubbSrcNode);
            if (number == (nubbSrc.length - 1))
            {
                if (callback != "")
                {
                    eval(callback);
                    return true;
                } else
                {
                    return true;
                }
            } else
            {
                number++;
                Passport.srcLoad(nubbSrc, number, callback);
                return true;
            }
        }
    }
    tmpNubbSrcNode.onerror = function()
    {
        if (number == (nubbSrc.length - 1))
        {
            if (callback != "")
            {
                eval(callback);
                return true;
            } else
            {
                return true;
            }
        } else
        {
            number++;
            Passport.srcLoad(nubbSrc, number, callback);
            return false;
        }
    }
    document.body.appendChild(tmpNubbSrcNode);
}
//设置登陆框回车顺序
function enter(key)
{
    document.onkeydown = function (e)
    {
        var e = e || window.event;
        var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
        if (e.keyCode == 0x0D)
        {
            if (key == 1)
            {
                with (document.getElementById('loginId'))
                {
                    focus();
                    if (value.length > 0)
                    {
                        document.getElementById('password').focus();
                    }
                }
            }
            else if (key == 2)
            {
                Passport.login();
            }
        }
    }
}

//验证是否安全登陆
Passport.getUserInfo = function(tuid, mcode)
{
    var validateResult = document.createElement('script');
    validateResult.type = 'text/javascript';
    var url = "http://members.nubb.com/ui/helper/validateMcode.jsp";
    validateResult.src = url;
    validateResult.charset = 'utf-8';
    validateResult.onload = validateResult.onreadystatechange = function()
    {
        if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")
        {
            var uInfoJson = eval('(' + validateMcodeResult + ')');
            if (validateMcodeResult.indexOf("\"status\":0") != -1)
            {
                alert(uInfoJson.text);
                Passport.logout();
                return false;
            }
            else
            {
                Passport.realName = uInfoJson.username == "null" ? "" : uInfoJson.username;
                Passport.sex = uInfoJson.usergender == "null" ? "" : uInfoJson.usergender;
                Passport.dob = uInfoJson.userdob == "null" ? "" : uInfoJson.userdob;
                Passport.idCard = uInfoJson.identitynumber == "null" ? "" : uInfoJson.identitynumber;
                Passport.job = uInfoJson.occupation == "null" ? "" : uInfoJson.occupation;
                Passport.city = uInfoJson.provinceid == "null" ? "" : uInfoJson.provinceid;
                Passport.address = uInfoJson.useraddr == "null" ? "" : uInfoJson.useraddr;
                Passport.zipcode = uInfoJson.postalcode == "null" ? "" : uInfoJson.postalcode;
                Passport.tel = uInfoJson.usertel == "null" ? "" : uInfoJson.usertel;
                Passport.earn = uInfoJson.income == "null" ? "" : uInfoJson.income;
                Passport.qq = uInfoJson.qq == "null" ? "" : uInfoJson.qq;
                Passport.msn = uInfoJson.msn == "null" ? "" : uInfoJson.msn;
                Passport.hobby = uInfoJson.hobby == "null" ? "" : uInfoJson.hobby;
                Passport.amail = uInfoJson.rnbamail == "null" ? "" : uInfoJson.rnbamail;
                Passport.useremail = uInfoJson.useremail == "null" ? "" : uInfoJson.useremail;
                if (typeof(infoRemend) == "object")
                {
                    infoRemend.init();
                    return true;
                }
                else if (typeof(getUserInfoCallback) == "function")
                {
                    getUserInfoCallback();
                    return true;
                }
                return true;
            }
        }
    }
    document.body.appendChild(validateResult);
}
//当前地址参数截取
Passport.getUrlPairs = function(url)
{
    var sSearch;
    var paramsPairs;
    sSearch = (url.length > 1) ? url.substring(1) : "";
    if (sSearch != "")
    {
        paramsPairs = sSearch.split("&");
        for (var i = 0; i < paramsPairs.length; i++)
        {
            //            alert("Paramter " + i + ": Name=" + paramsPairs[i].split("=")[0] + " Value=" + paramsPairs[i].split("=")[1]);
            if (paramsPairs[i].split("=")[0] == "forward")
            {
                Passport.forward = decodeURIComponent(paramsPairs[i].split("=")[1]);
//                return paramsPairs[i].split("=")[1];
                //                return encodeURIComponent(paramsPairs[i].split("=")[1]);
                //                return true;
                //                decodeURIComponent(aPairs[i].split("=")[1]);
            } else if (paramsPairs[i].split("=")[0] == "refer")
            {
                if (paramsPairs[i].split("=")[1] == "isReferPage")
                    Passport.referPage = document.referrer;
            } else if (paramsPairs[i].split("=")[0] == "loginType")
            {
                Passport.loginType = paramsPairs[i].split("=")[1];
            }
        }
    }
    return "";
}