/*
 * @(#)jQuery.CEA.login2.js
 *       
 * 系统名称：东航电子商务国内B2C系统
 * 版本号：1.0
 * 
 * Copyright (c)  TravelSky
 * All Rights Reserved.
 * 
 * 作者：bjiang
 * 创建日期：Jan 13, 2010
 * 
 * 功能描述：登录控制器
 *    需要DWR支持
 * 修改人：
 * 修改日期：
 * 修改原因：
 * 
 * 
 */
if (typeof FrontLoginAction === 'undefined')
{
    $.ajax({
        type: "GET",
        url: '/mu/dwr/interface/FrontLoginAction.js',
        async: false,
        dataType: 'script'
    });
};

//头部登录功能的弹出框
; (function($)
{
    $.fn.jLoginPopUp = function(options, sfe)
    {
        var settings = {};
        var op = $.extend(settings, options);
        var $this = $(this);
        var windowid = "login_windows";
        var checkExternalClick = function(event)
        {
            var $target = $(event.target);
            if ($target.parents('#' + windowid).length == 0)
            {
                $("#" + windowid).remove();
            }
        };
        var initLoginInfo = function()
        {
            $(document).mousedown(function(event)
            {
                checkExternalClick(event);
            });
        };
        initLoginInfo();
        var showPopWin = function(obj)
        {
            var $container_right = $(obj).parents("#menu");
            var objwidth = 187;
            var offsetleft = $(obj).offset().left;
            if (offsetleft + objwidth > $container_right.offset().left + $container_right.width() - 15 || offsetleft < 0)
            {
                offsetleft = $container_right.offset().left + $container_right.width() - 294;
            }
            var offsettop = $(obj).offset().top + $(obj).innerHeight();
            $.get("/mu/public/login.html",
            function(data)
            {
                var $popwin = $.msgbox.popupwin(windowid, 187, 118, "", data).css({
                    "top": offsettop - 1 + "px",
                    "left": offsetleft + "px"
                }).addClass("popwin_" + windowid);
                $popwin.find("#title").hide();
            });
        };
        return $(this).click(function()
        {
            showPopWin(this);
            return false;
        });
    };
})(jQuery);

//登录功能
var UserLoginFunc = new function() {
	
	var isLoginProcess = false;
	var flagLogin = true;
	
	//登录功能
	this.userLogin = function() {
		if (UserLoginFunc.checkLoginInfo())
	    {
	    	if (isLoginProcess === false) {
	    		isLoginProcess = true;
	    		FrontLoginAction.authSuccess($("#card_number").val(), $("#card_password").val(),
			        function(data)
			        {
			        	isLoginProcess = false;
			            if (data.substring(0, 1) == "0")
			            {
			                alert(data.replace("0", ""));
			            }
			            else
			            {
			                UserLoginFunc.showUserInfo(data);
			                $.cookie("needClearSession", "n", {
			                    path: '/'
			                });
			                UserLoginFunc.addEMInfo();
			            }
			    });
	    	}
	    }
	};
		
	//检查登录信息
	this.checkLoginInfo = function() {
		if ($("#card_number").val() == "")
	    {
	        alert("卡号不能为空!");
	        $("#card_number").focus();
	        return false;
	    }
	    if ($("#card_password").val() == "")
	    {
	        alert("密码不能为空!");
	        $("#card_password").focus();
	        return false;
	    }
	
	    if (UserLoginFunc.isVFFPC($("#card_number").val()) == false)
	    {
	        alert("会员卡号只能是9位数字，请重新填写！");
	        $("#card_number").focus();
	        return false;
	    }
	
	    flagLogin = false;
	
	    return true;
	};
	
	//检查卡号格式是否正确
	this.isVFFPC = function(str) {
		var pattern = /^[0-9]{9}$/;
	    if (pattern.test(str))
	    {
	        return true;
	    }
	    return false;
	};
	
	//显示登录用户信息
	this.showUserInfo = function(userInfo) {
		$.cookie('loggedUserName', userInfo, {
	        path: '/'
	    }); //如果登陆成功，则保存用户名到cookie
	    $("#login_success").show();
	    $("#loginname").text(userInfo);
	    $("#login_windows").remove();
	    $("#login").hide();
	};
	
	//显示东方万里行信息
	this.addEMInfo = function() {
		FrontLoginAction.getUserEasternMilesInfo(function(userEMInfo)
	    {
	        var usernameEM = userEMInfo[0];
	        var genderEM = userEMInfo[1];
	        //性别判断
	        if (genderEM == 6)
	        {
	            genderEM = "先生";
	        }
	        else if (genderEM == 5)
	        {
	            genderEM = "女士";
	        }
	        else
	        {
	        	genderEM = " ";
	        }
	        var gradeEM = userEMInfo[2];
	        var regDateEM = userEMInfo[3];
	        var pointsEM = userEMInfo[4];
	        var upgradePointsEM = userEMInfo[5];
	        var loginType = userEMInfo[6];
	        var mobilePhone = userEMInfo[7];
	        //等级判断
	        if (gradeEM == 'STANDARD')
	        {
	            gradeEM = "普通会员";
	        }
	        else if (gradeEM == 'SILVER')
	        {
	            gradeEM = "银卡会员";
	        }
	        else if (gradeEM == 'GOLDEN')
	        {
	            gradeEM = "金卡会员";
	        }
	        else if (gradeEM == 'VIP')
	        {
	            gradeEM = "贵宾会员";
	        }
	        else
	        {
	            gradeEM = "未知";
	        }
	
	        //日期重组
	        if (regDateEM != null && regDateEM != "")
	        {
	        	var year = regDateEM.substring(0, 4);
		        var month = regDateEM.substring(4, 6);
		        var day = regDateEM.substring(6, 8);
		        regDateEM = year + "年" + month + "月" + day + "日";
	        }
	        else
	        {
	        	regDateEM = "未知";
	        }
	        
	        if (pointsEM == null || pointsEM == "")
	        {
	        	pointsEM = "未知";
	        }
	        
	        if (upgradePointsEM == null || upgradePointsEM == "")
	        {
	        	upgradePointsEM = "未知";
	        }
	        
	        $.cookie('genderEM', genderEM, {
	            path: '/'
	        });
	        $.cookie('gradeEM', gradeEM, {
	            path: '/'
	        });
	        $.cookie('regDateEM', regDateEM, {
	            path: '/'
	        });
	        $.cookie('pointsEM', pointsEM, {
	            path: '/'
	        });
	        $.cookie('upgradePointsEM', upgradePointsEM, {
	            path: '/'
	        });
	        $.cookie('loginType', loginType, {
	            path: '/'
	        });
	        $.cookie('mobilePhone', mobilePhone, {
	            path: '/'
	        });
	
		    if (loginType == null || loginType == '') {
		    	$("#loginname").jTipinfo();
		    	$("#loginname").addClass("red_under_word");
		    	$("#loginname").css("cursor","pointer");
		    	$("#nameInterval").remove();
		    } else {
		    	$("#loginname").die('mousemove');
		    	$("#loginname").die('mouseout');
		    	$("#loginname").removeClass("red_under_word");
		    	$("#loginname").css("cursor","default");
		    }
	        
	    });
	};
	
	//退出登录状态
	this.userLogout = function() {
		var quit = confirm(("您即将退出，是否继续？"));
	    if (quit == true)
	    {
	        FrontLoginAction.clearSession(function()
	        {
	            UserLoginFunc.clearCookie();
	            $("#login").show();
	            $("#loginname").text("");
	            $("#login_success").hide();
	            window.location.href = '/mu';
	        });
	    }
	    else
	    {
	        return false;
	    }
	};
	
	//退出登录要清除cookie
	this.clearCookie = function() {
		$.cookie('loggedUserName', null, {
	        path: '/'
	    });
	    $.cookie('genderEM', null, {
	        path: '/'
	    });
	    $.cookie('gradeEM', null, {
	        path: '/'
	    });
	    $.cookie('regDateEM', null, {
	        path: '/'
	    });
	    $.cookie('pointsEM', null, {
	        path: '/'
	    });
	    $.cookie('upgradePointsEM', null, {
	        path: '/'
	    });
	    $.cookie('mobilePhone', null, {
	        path: '/'
	    });
	};
	
	//用户帐户信息或修改注册信息
	this.submitFFPForm = function(ffpFormName) {
		if ($("form[name='" + ffpFormName + "']").length === 0)
	    {
	        $("body").append("<form name='" + ffpFormName + "' id='" + ffpFormName + "' action='http://www.easternmiles.com/bn/account/login.jsp' method='post' target='_blank'><input type='hidden' name='cardid'/><input type='hidden' name='password'/><input type='hidden' name='passtype'/><input type='hidden' name='urlpos'/></form>");
	    }
	    FrontLoginAction.getUserLoginInfo(function(data)
	    {
	        var cardNo = data[0];
	        var pwd = data[1];
	        if ("" != cardNo && "" != pwd)
	        {
	            $("#" + ffpFormName + " > input[name='cardid']").val(cardNo);
	            $("#" + ffpFormName + " > input[name='password']").val(pwd);
	            $("#" + ffpFormName + " > input[name='passtype']").val(1);
	            $("#" + ffpFormName + " > input[name='urlpos']").val(ffpFormName == 'ffpmodifyform' ? 'account/personalinfo.jsp': 'account/balance.jsp');
	            $("#" + ffpFormName).submit();
	        }
	        else
	        {
	            alert("系统异常，请稍后再试。");
	        }
	    });
	};
	
	//设置默认cookie
	this.setDefaultCookie = function() {
		var genderEM = $.cookie('genderEM');
		var gradeEM = $.cookie('gradeEM');
		var regDateEM = $.cookie('regDateEM');
		var pointsEM = $.cookie('pointsEM');
		var upgradePointsEM = $.cookie('upgradePointsEM');
		var mobilePhone = $.cookie('mobilePhone');
		
		if (genderEM == null)
		{
			genderEM = " ";
			$.cookie('genderEM', genderEM, {
		        path: '/'
		    });
		}
		if (gradeEM == null)
		{
			gradeEM = "读取中...";
			$.cookie('gradeEM', gradeEM, {
		        path: '/'
		    });
		}
		if (regDateEM == null)
		{
			regDateEM = "读取中...";
			$.cookie('regDateEM', regDateEM, {
		        path: '/'
		    });
		}
		if (pointsEM == null)
		{
			pointsEM = "读取中...";
			$.cookie('pointsEM', pointsEM, {
		        path: '/'
		    });
		}
		if (upgradePointsEM == null)
		{
			upgradePointsEM = "读取中...";
			$.cookie('upgradePointsEM', upgradePointsEM, {
		        path: '/'
		    });
		}
		if (mobilePhone == null)
		{
			mobilePhone = "";
			$.cookie('mobilePhone', mobilePhone, {
		        path: '/'
		    });
		}
	};
};

//页面加载完成时的工作
$(document).ready(function()
{
    //切换页面的时候判断是否已有用户登陆
    //有的话就显示用户信息部分
    //没有就显示登陆部分

    var needLoadEMInfo = $.cookie("needLoadEMInfo");
    if (needLoadEMInfo != null && needLoadEMInfo == "y")
    {
        UserLoginFunc.addEMInfo();
        needLoadEMInfo = "n";
        $.cookie("needLoadEMInfo", needLoadEMInfo, {
            path: '/'
        });
    }
    
    var loggedUserName = $.cookie('loggedUserName');
    if (loggedUserName == null || loggedUserName == '' || loggedUserName == '000000')
    {
        var hideUserInfoHeader = setInterval(function()
        {
            if ($("#login_success").length > 0)
            {
                $("#login_success").hide();
                $("#login").show();
                $("#logout").click(UserLoginFunc.userLogout);
                try
                {
                	FrontLoginAction.isUserInSession(function(data)
	                {
	                    if (data == false)
	                    {
	                        UserLoginFunc.clearCookie();
	                        $("#login").show();
	                        $("#loginname").text("");
	                        $("#login_success").hide();
	                        UserLoginFunc.setDefaultCookie();
	                    }
	                });	
                }
                catch (exception)
                {
                	
                }
                finally
                {
                	clearInterval(hideUserInfoHeader);	
                }
            }
        },
        100);
    }
    else
    {
        var showUserInfoHeader = setInterval(function()
        {
            if ($("#loginname").length > 0 && $("#login_success").length > 0)
            {
                $("#loginname").text(loggedUserName); //如果用户已登陆，还要显示名字
                $("#login_success").show();
                $("#login").hide();
                $("#logout").click(UserLoginFunc.userLogout);
                var loginType =$.cookie("loginType"); 
				if (loginType == null) {
			    	$("#loginname").jTipinfo();
			    	$("#loginname").addClass("red_under_word");
			    	$("#loginname").css("cursor","pointer");
			    	$("#nameInterval").remove();
			    } else {
			    	$("#loginname").die('mousemove');
			    	$("#loginname").die('mouseout');
			    	$("#loginname").removeClass("red_under_word");
			    	$("#loginname").css("cursor","default");
			    }
			    try
			    {
			    	FrontLoginAction.isUserInSession(function(data)
	                {
	                    if (data == false)
	                    {
	                        UserLoginFunc.clearCookie();
	                        $("#login").show();
	                        $("#loginname").text("");
	                        $("#login_success").hide();
	                        UserLoginFunc.setDefaultCookie();
	                    }
	                });
			    }
			    catch (exception)
			    {
			    	
			    }
			    finally
			    {
			    	clearInterval(showUserInfoHeader);	
			    }
            }
        },
        100);
    }
});