﻿/// <reference path="../jquery/jquery-1.2.6-vsdoc-cn.js" />


//登录状态
var M_LoginStatu_HasLogin = false;     
jQuery(document).ready(function() { 
    GetLoginStatu();
})
//获取登录状态
function GetLoginStatu() {

    
    jQuery.getJSON(
        "http://common.nahuo.com/ajax/Login/ajax.aspx?callback=?",
        {
            Action: "CheckHasLogin",
            Time:new Date() //解决缓存问题
        },
        function(data) {
            if (!data || !data.HasLogin) {
                M_LoginStatu_HasLogin = false;
            } else {
                M_LoginStatu_HasLogin = true;
            }
        });
}



jQuery(document).ready(function() {

    if (!jQuery(".NeedLogin_PopUp") || jQuery(".NeedLogin_PopUp").length <= 0)
        return false;

    /*加载必要的脚本和样式*/
    Init_LoadData();

    jQuery(".NeedLogin_PopUp").click(function() {

        //再次检测登录状态
        GetLoginStatu();
        //阻塞浏览器，保证 GetLoginStatu() 先返回
        jQuery.ajax({
            type : "POST",
            url: "12345678.aspx",
            data : {Date:new Date()},
            async: false,
            timeout: 4000,
            success: function() { }
        });


        var objSender = jQuery(this);
        if (!M_LoginStatu_HasLogin) {
            PopUpLoginWin(objSender);
        }
        return M_LoginStatu_HasLogin;

    }); //end jQuery(".NeedLogin_PopUp").click()

});   //end ready


/*弹出登录窗口 登录返回后触发callback回调函数，并传递给回调函数一个登录状态*/
function PopUpLoginWin(sender,callback) {
        //创建一个弹出div
        var divHtml = '<div><div>';
        var loginWin = jQuery(divHtml);
            loginWin.addClass("jqmWindow");

            //Ajax方式加载界面
            jQuery.getJSON(
                "http://common.nahuo.com/ajax/Login/Login_UI.aspx?callback=?",
                function(data) {
                    //添加html内容
                    loginWin.html(data.Html);

                    //添加弹出窗口支持
                    loginWin.jqm({
                        toTop: true,   //true 让窗口添加到 Body 的第一位置
                        modal: true,
                        overlay: 50
                    });

                    //给窗口添加拖动支持
                    loginWin.jqDrag(".mini_win_header");

                    //关闭点击事件处理
                    loginWin.find("#btn_login_cancel").click(function() {
                        loginWin.jqmHide();
                    });

                    //登录点击事件处理
                    loginWin.find("#btn_login_submit").click(function() {
                        var userName = jQuery("#txt_login_useranme").val();
                        var pwd = jQuery("#txt_login_pwd").val();

                        //loading...
                        var loginTips = jQuery("#div_login_tips");
                        loginTips.html('<div style="line-height:12px; padding-top:10px;"><img src= "http://common.nahuo.com/js/jquery/jqModal/loading.gif" alt="" />&nbsp;<br/>登录中……</div>');
                        loginTips.show();
                        
                        jQuery.getJSON(
                            "http://common.nahuo.com/ajax/Login/ajax.aspx?callback=?",
                            {
                                Action: "DoLogin",
                                UserName: userName,
                                PWD: encodeURIComponent(pwd)
                            },
                            function(data) {
                                if (data.HasLogin) {
                                    //标识为已登录
                                    M_LoginStatu_HasLogin = true;
                                    loginTips.css("height", "150px");
                                    loginTips.css("line-height", "150px");
                                    loginTips.css("font-size", "15px");

                                    loginTips.html("恭喜您登录成功！");
                                    loginTips.css("font-weight","bold");
                                    //如果点击对象没有链接则关闭登录窗口，并返回
                                    if (!jQuery(sender).attr("href")) {
                                        //loginTips.append("<span id='login_tips_second' style='font-weight:bold;'>3<span>秒后自动关闭。");
                                        loginWin.fadeOut(1500, function() { loginWin.jqmHide(); });
                                    } else {
                                        loginWin.fadeOut(1000, function() { window.location.reload(); });
                                        /*
                                        var link = jQuery('<a style="font-weight:bold; color:red; font-size:18px;" target="' + jQuery(sender).attr("target") + '" href="' + jQuery(sender).attr("href") + '">点击继续</a>');
                                        link.click(function() {
                                            window.location.reload();
                                        });
                                        loginTips.append(link);
                                        */
                                    }
                                    loginWin.find(".mini_win_body .login_form").hide();
                                    loginTips.show();      
                                } else {
                                    loginTips.html(data.Message);
                                    loginTips.slideDown();
                                }
                                //调用回调方法
                                if(callback)
                                    callback(M_LoginStatu_HasLogin);
                            });
                    });

                    //回车登录监听
                    loginWin.find("#txt_login_pwd").keyup(function(event) {
                        if (event.keyCode == 13) {
                            loginWin.find("#btn_login_submit").click();
                        }
                    });
                    loginWin.find("#txt_login_useranme").keyup(function(event) {
                        if (event.keyCode == 13) {
                            loginWin.find("#btn_login_submit").click();
                        }
                    });

                    //点击注册事件处理
                    loginWin.find("#lnk_go_login").click(function() {
                        //CheckLoginStatus(sender);
                    })

                    //弹出登录窗口
                    loginWin.jqmShow();
                    //居中弹出窗口
                    MoverWinToCenter(loginWin);

                });  // end Ajax方式加载界面
}


//加载脚本和样式
function Init_LoadData() {

    /*加载样式*/
    var oHead = document.getElementsByTagName('head').item(0);
    var oScript = document.createElement("link");
    oScript.type = "text/css";
    oScript.href = "http://common.nahuo.com/js/jquery/jqModal/jqModal.css";
    jQuery(oScript).attr("rel","stylesheet");
    oHead.appendChild(oScript);
    
    var oScript2 = document.createElement("link");
    oScript2.type = "text/css";
    oScript2.href = "http://common.nahuo.com/ajax/Login/Login_UI.aspx.css";
    jQuery(oScript2).attr("rel","stylesheet");
    oHead.appendChild(oScript2);
    
    
    /*动态加载必要的js*/
    jQuery.getScript("http://common.nahuo.com/js/jquery/jqModal/jqModal.js");
    jQuery.getScript("http://common.nahuo.com/js/jquery/jqModal/jqDnR.js");
    jQuery.getScript("http://common.nahuo.com/js/jquery/jqModal/dimensions.js");
}

//把窗口移动到屏幕中间
function MoverWinToCenter(target) {
    var win = jQuery(target);
    
    win.css("top","50%").css("left","50%");

    if (jQuery.browser.msie && jQuery.browser.version == 6) {
        win.css("margin-left", -(win.width() / 2)).css("margin-top", document.documentElement.scrollTop - (win.height() / 2));
        window.scrollTo(0,document.documentElement.scrollTop);
    } else {
        win.css("margin-left",-(win.width()/2)).css("margin-top",-(win.height()/2));
    }
}

/*页面跳转 sender 为 a 标签*/
function RedirectURL(sender) {
    var link = jQuery(sender);
    var target = link.attr("target").toLowerCase();
    var href = link.attr("href");
    
    if (target == "_self") {
        window.location.href = href;
    } else {
     
        var newWin = window.open(href);
        newWin.focus();
        //newWin.opener.location.reload();
        //window.location.reload();
        setTimeout(window.location.reload(),500);
    }
    
}

/*循环监听是否已经登录,如果已经登录则跳转页面*/
function CheckLoginStatus(sender) {
    
    jQuery.getJSON(
        "http://common.nahuo.com/ajax/Login/ajax.aspx?callback=?",
        {
            Action: "CheckHasLogin"
        },
        function(data) {
            if (data.HasLogin) {
                //已登录跳转页面
                RedirectURL(sender);
            } else {
                //未登录，继续监听
                 setInterval(CheckLoginStatus(sender),3000);
            }
        }); // end getJSON
}
