﻿/*
'=====================================================================
' Author: xuanhu
' Create on 2007-6-29
' Version: 1.5 增加未读短消息数量统计，增加用户信息查询
'=====================================================================
*/
/*function killErrors() {
return true;
}
window.onerror = killErrors;*/
//var loginstate = false;
var UserName;
function checkNavigator()
{
   if(navigator["cookieEnabled"]==false)
   {
      alert("温馨提示：\n\n对不起，登陆操作需要先开启您浏览器的Cookies才能正常登陆！");
   }
}
var urls = {
    login:"/XML/"
    ,xqlogin:"/inc/login_yes.inc.aspx"
}
var LoginPopUp=Class.create();
LoginPopUp.prototype = {
    initialize: function() {
        this.x = 410; //登陆框所在X轴
        this.y = 20; //登陆框所在Y轴
        this.command = null;
        this.appxml = null;
        this.users = "";
        this.MessageId = null;
        this.LoginId = null;
        this.sendXML = null;   //发送XML
        this.responseXML = null;
        this.msg = null;
        this.code = null;
        this.fun = null; //外挂函数
        this.attwindow = window;
    }
    , set: function(f, mess) {//用户登陆操作
        //checkNavigator();
        //        if($("userloginMsg"))
        //        {
        //           // AlertDIV($("userloginMsg"),"<img src=images/loading.gif border=0 width=188/><br>正在验证......");
        //        }
        this.MessageId = mess ? $(mess) : $("Message");
        this.LoginId = $("loginmsg");
        this.command = "userlogin";
        this.users = f.strUser.value.toLowerCase();
        this.appxml = "<username>" + this.users + "</username>"
	       + "<userpsw>" + f.strPWD.value + "</userpsw>"
           + "<note>" + f.note.checked + "</note>"
	       + "<url>" + f.url.value + "</url>";
        this.loadings();
        this.load();
        return false;
    }
    , get: function() {//查询用户登陆状态
        //        if($("userloginMsg"))
        //        {
        //            //AlertDIV($("userloginMsg"),"<img src=images/loading.gif border=0 width=188/><br>正在加载内容......");
        //
        //        }
        this.MessageId = $("loginmsg");
        this.LoginId = $("loginmsg");
        this.loadings();
        var cacheLogins = getCookie("logins");
        if (cacheLogins == "2EE7615C2F50") {//已登陆，验证登陆的合法性 
            this.command = "checkUsersLoginState";
            this.appxml = "<loginstate>" + getDataTime() + "</loginstate>";
            this.load();
        }
        else
            this.lose();
        return false;
    }
    , load: function()//加载函数 
    {
        this.sendXML = toSCPXML(this.command, this.appxml);
        _sendx(urls.login, this.databind.bind(this), this.LoginId, "POST", this.sendXML);
    }
    , databind: function(p, v) {
        this.responseXML = v;
        this.parameter();
        if (this.command == "userlogin") this.loginInfo();
        else this.checkInfo();
    }
    , loginInfo: function() {
        if (this.code == 2000) {
            this.hide();
            this.setInfo();
            this.startup();
        }
        else if (this.code == 5000) {
            if ($("alertDIV")) $("alertDIV").removeNode(true);
            if (this.MessageId) this.MessageId.innerHTML = "<font color=red>" + this.msg + "</font>";
            else alert(msg);
        } else {
            alert("系统提示：\n\n您当前的操作服务器无法响应，请联系管理员解决这一问题！");
        }
    }
    , checkInfo: function() {
        var o = this.LoginId;
        if (this.code == 2000) {
            var userinfo = this.msg.split("|");
            if (userinfo != null && userinfo[0] == "yes") {
                this.users = userinfo[1];
                this.msg = userinfo[3];
                this.setInfo();
                this.startup();
                return;
            }
        }
        this.lose();
    }
    , setInfo: function() {//登陆成功后的信息设定 
        //如果是首页
        if ($("userloginMsg")) {

            new Ajax.Updater(
			$("userloginMsg"),
			urls.xqlogin,
			{
			    method: 'get',
			    //parameters: par,
			    evalScripts: true
			});

            // _sendx(urls.xqlogin+"?tmp"+getDataTime(),this.pagebind.bind(this),"userloginMsg");
        }
        var o = this.LoginId;

        if (!o) return;
        var str = " <ul><li><b class=\"org\">" + this.users + "</b> 欢迎回家 | <a href=\"http://" + this.users + ".5lin.com\" target=\"_blank\">去我的地盘</a>";
        if (pur < 6) {
            str += " | <a href=\"/adminroot/\">系统管理</a>";
        }
        str += " | <a href=\"/public/logout.asp\">退出</a></li></ul>";
        o.innerHTML = str;

    }
    , startup: function() {//设置用户登陆后的功能项
        UserName = this.users;
        setUserConfig(this.users);
        loginstate = true;
        if (this.fun != null) this.fun(); //外挂函数
    }
    , parameter: function() {//参数处理 
        this.msg = getMessage(this.responseXML, "msg");
        this.code = getCode(this.responseXML);
    }
    , loadings: function() {
        if (this.MessageId) this.MessageId.innerHTML = "请梢等，正在验证信息...";
    }
    , show: function() {
        var _d = $('LoginDIV');
        _d.show();
        _d.style.left = 410;
        _d.style.top = 20;
    }
    , hide: function() {
        if ($('LoginDIV')) $('LoginDIV').hide();
        if ($('moveLogin')) $('moveLogin').hide();
        this.HideOverSels('LoginDIV');
        document.body.style.width = "1002px";
        document.getElementsByTagName('html')[0].style.overflow = "auto";
    }
    , lose: function() {//未登陆信息 
        //如果是首页
        if ($("userloginMsg")) {
            $("userloginMsg").innerHTML = this.myNotLogin();
        }
        var _html = "<form name=\"logincomm\" onsubmit=\"return login.set(this,'loginmsg');\">"
            + "<ul><li>用户名：</li>"
            + "<li><input name=\"strUser\" type=\"text\" class=\"inp1\" /></li>"
            + " <li>密码：</li>"
            + "<li><input name=\"strPWD\" type=\"password\" class=\"inp1\" />"
            + " </li>"
            + "<li><input name=\"url\" type=\"hidden\" value=\"http://www.5lin.com/\">"
            + "<input name=\"note\" type=\"hidden\" value=\"false\">"
            + "<input type=\"submit\" value=\"登录\" class=\"inp2\" \/></li>"
            + "<li><span><a href=\"http://reg.5lin.com\" target=\"_blank\">注册<\/a></span></li>"
            + "</form>";
        if (this.LoginId) this.LoginId.innerHTML = _html;

    }
    , myNotLogin: function() {
        var _html = '<form name="userloginform" onsubmit="return login.set(this,\'userloginErrorMsg\');">'
        + '<div class="login_dlq">'
        + '<ul><li>用户名'
        + '      <input name="strUser" type="text" />'
        + '    </li>'
        + '    <li>密　码'
        + '      <input name="strPWD" type="password" />'
        + '    </li></ul>'
        + '  <ol><li>'
        + '       <input name="note" type="checkbox" value="1" />'
        + '    </li>'
        + '    <li>下次自动登录</li>'
        + '    <li><input name="url" type="hidden" value="' + location.host + '">'
        + '      <input name="logsend" type="submit" value="登录" class="inp3"/>'
        + '    </li>'
        + '  </ol>'
        + '<div style="color:#FF6600;padding-left:24px!important;margin:0px!important;text-align:left!important;clear:both;" id="userloginErrorMsg"></div>'
        + '<div class="login_zcyh">'
        + '   <dl>'
        + '     <dt><a href="/reg.aspx">业主注册</a></dt>'
        + '     <dd><a href="regfirm.aspx">商家入驻</a></dd>'
        + '   </dl>'
        + '</div>'
        + '</div>'
        + '</form>';
        return _html;
    }
    , pagebind: function(p, v) {
        $(p).innerHTML = v;
    }
    , HideOverSels: function(objID) {
        var sels = document.getElementsByTagName('select');
        for (var i = 0; i < sels.length; i++) {
            if (this.Obj1OverObj2($(objID), sels[i])) {
                sels[i].style.visibility = 'hidden';
            }
            else {
                sels[i].style.visibility = 'visible';
            }
        }
    }
    , getLeftPosition: function(Obj) {
        try {
            for (var sumLeft = 0; Obj != document.body; sumLeft += Obj.offsetLeft, Obj = Obj.offsetParent);
            return sumLeft;
        }
        catch (e)
        { }
    }
    , getTopPosition: function(Obj) {
        try {
            for (var sumTop = 0; Obj != document.body; sumTop += Obj.offsetTop, Obj = Obj.offsetParent);
            return sumTop;
        }
        catch (e)
        { }
    }
    //判断obj1是否遮挡了obj2
    , Obj1OverObj2: function(obj1, obj2) {
        var result = true;
        if (!obj1.visible()) return false;
        var obj1Left = this.getLeftPosition(obj1) - document.body.scrollLeft;
        var obj1Top = this.getTopPosition(obj1) - document.body.scrollTop;
        var obj1Right = obj1Left + obj1.offsetWidth;
        var obj1Bottom = obj1Top + obj1.offsetHeight;
        var obj2Left = this.getLeftPosition(obj2) - document.body.scrollLeft;
        var obj2Top = this.getTopPosition(obj2) - document.body.scrollTop;
        var obj2Right = obj2Left + obj2.offsetWidth;
        var obj2Bottom = obj2Top + obj2.offsetHeight;
        if (obj1Right <= obj2Left || obj1Bottom <= obj2Top || obj1Left >= obj2Right || obj1Top >= obj2Bottom) {
            result = false;
        }
        return result;
    }
    , logMar: function(x, y) {
        this.x = x;
        this.y = y;
    }
    , state: function(fun) {
        fun = fun ? fun : this.fun ? this.fun : function() { return true };
        if (loginstate) { if (fun()) return true; }
        else {
            var logindiv = $("LoginDIV");
            var w = getPagePosition(this.attwindow);
            logindiv.style.top = 0 + "px";
            logindiv.style.left = 0 + "px";
            logindiv.style.width = w.clientWidth + "px";
            logindiv.style.height = document.body.clientHeight + "px";
            logindiv.style.backgroundColor = "#ffffff";
            logindiv.style.overflow = "hidden";
            //logindiv.style.position = "relative";
            logindiv.style.filter = "alpha(opacity=70)";
            //this.logMar(0,0);
            //DisplayDIV(this.x,this.y,logindiv.id); 


            //movediv.style.top = "px";
            //movediv.style.left = "px";
            logindiv.show();
            var movediv = $("moveLogin");
            movediv.show();
            movediv.style.left = parseInt(w.clientWidth / 2) - (movediv.offsetWidth / 2);
            movediv.style.top = parseInt(w.clientHeight / 2) - (movediv.offsetHeight / 2) + w.scrollTop;
            //跟随滚屏
            if (movediv.onscroll == null)
                movediv.onscroll = new ChatInfoPopUp.Float(this.attwindow, movediv);
            movediv.onscroll.start();
            this.HideOverSels(logindiv);
            document.body.style.width = "1002px";
            document.getElementsByTagName('html')[0].style.overflow = "hidden";
            return false;
        }
    }
}
