﻿var loginAjaxPool = new AjaxPool(ajaxFactory);

function Loginer()
{
    this.ajax;
    this.submitButton;
    this.targetURL;
}

Loginer.prototype.LoginComplated = function (ajaxObj)
{
    var xmlDoc = ajaxObj.req.responseXML;
    var result = xmlDoc.selectSingleNode('LoginXML/Result');
    if (result.text == 'T')
    {
        var cbxSave = document.getElementById('CbxSaveLogin');
        
        /*
        if (cbxSave.checked)
            loginer.SaveMD5(xmlDoc);
        */
        //window.location.href = loginer.targetURL;
        var userName = xmlDoc.selectSingleNode('LoginXML/UserName').text;
        var md5 = xmlDoc.selectSingleNode('LoginXML/MD5').text;
        var psd = xmlDoc.selectSingleNode('LoginXML/PassWord').text;
        var goUrl = document.getElementById('ctl00_HFforSetPassUrl').value;
        
        goUrl += "&bf=" + escape(loginer.targetURL);	//登陆完成之后需要转到的页面
        goUrl += "&uid=" + userName;
        goUrl += "&md5=" + encodeURIComponent(md5);
        if (cbxSave.checked) goUrl += "&psd=" + psd;
        
        window.location.href = goUrl;
		//alert(goUrl);
    }
    else
    {
        var msg = xmlDoc.selectSingleNode('LoginXML/Message').text;
        alert(msg);
        loginer.submitButton.disabled = false;
    }
}

Loginer.prototype.LoginFaild = function (ajaxObj)
{
    loginer.submitButton.disabled = false;
}

Loginer.prototype.LoginByEnterKey = function ()
{
    var btn = document.getElementById('BtnLoginLayer');
    if(event.keyCode==13)
    {
        loginer.Login(btn);
    }
    return false;
}

Loginer.prototype.Login = function (button)
{
    var userName = document.getElementById('TxtUserName').value;
    var password = document.getElementById('TxtPassword').value;
    
    if (userName == '' || password == '')
        alert('用户名和密码不能为空');
    else
    {
        button.disabled = true;
        this.submitButton = button;
        
        var url = ThisWebUrl + 'actionpage/LoginAjax.aspx';
        url += '?u=' + escape(userName) + '&p=' + escape(password);
        
        loginAjaxPool.returnAjax(this.ajax);
        this.ajax = loginAjaxPool.borrowAjax(this.LoginComplated, this.LoginComplated);
        this.ajax.go(url, 'GET');
    }
}

Loginer.prototype.SaveMD5 = function (xmlDoc)
{
    var nextyear = new Date();
    nextyear.setFullYear(nextyear.getFullYear() + 1); 
    var userName = xmlDoc.selectSingleNode('LoginXML/UserName').text;
    var md5 = xmlDoc.selectSingleNode('LoginXML/MD5').text;
    var expireDate = nextyear.toGMTString();
    document.cookie = 'AutoLogin=username=' + userName + '&md5=' + md5 + '; expires=' + expireDate;
}

GetLoginerSession = function ()
{
	try
	{
		var url = 'http://onepass.meihua.info/GetOnePassSession.aspx';
		loginAjaxPool.returnAjax(this.ajax);
		this.ajax = loginAjaxPool.borrowAjax(ReturnLoginerSession, ReturnLoginerSession);
		this.ajax.go(url, 'GET');
	}
	catch(e)
	{
		alert(e.message);
	}
}

ReturnLoginerSession = function (sender)
{
	var showObj = document.getElementById('userInfo');
	
	var xmlDoc = sender.req.responseXML;
    var msg = xmlDoc.selectSingleNode('MeihuaNet/Message').text;
    
    if(msg == "OK")
    {
        var userName = xmlDoc.selectSingleNode('MeihuaNet/OnePass/UserName').text;
		var md5 = xmlDoc.selectSingleNode('MeihuaNet/OnePass/MD5').text;
		
		showObj.innerHTML = userName + '&nbsp;&nbsp;(<a href="http://onepass.meihua.info/OnePassport_Logout.aspx?u=' + userName + '&pid=Today&TargetUrl=http://www.meihua.info/" class="WhiteLink">登出</a>)';
    }
    else if(msg == "Empty")
    {
		showObj.innerHTML = '<a href="###" class="WhiteLink" onclick="Login(\'http://60.28.222.124/zhixun/\');">登录</a>'
						  + ' <a href="http://www.meihua.info/my/MySignup.aspx" class="WhiteLink">注册</a>';
    }
	else
    {
        //alert('错误的操作');
    }
}

var loginer;
function Login(url)
{
    var loginBox = document.getElementById('DivLoginLayer');
    loginBox.style.display = 'block';
    loginBox.style.position = 'absolute';

    var mask = document.getElementById('DivMask');
    mask.style.display = 'block';

    rect = SetCenter();
//    loginBox.style.pixelTop = rect.Height/2 - loginBox.offsetHeight/2;
//    loginBox.style.pixelLeft = rect.Width/2 - loginBox.offsetWidth/2 + 50;
    mask.style.height = rect.Height + 'px';
    mask.style.width = rect.Width + 'px';
    loginBox.style.top = (rect.Height/2 - loginBox.offsetHeight/2) + 'px';
    loginBox.style.left = (rect.Width/2 - loginBox.offsetWidth/2 + 50) + 'px';

    loginer = new Loginer();
    loginer.targetURL = url;
}

function Logout()
{
    var yesterday = new Date();
    yesterday.setDate(yesterday.getDate() - 1); 
    var expireDate = yesterday.toGMTString();
    document.cookie = 'AutoLogin=username=; expires=' + expireDate;
    
    LinkButton1.click();
}

function CloseLoginBox()
{
    var loginBox = document.getElementById('DivLoginLayer');
    loginBox.style.display = 'none';
    
    var mask = document.getElementById('DivMask');
    mask.style.display = 'none';
}

function SetCenter()
{
    var scrollX=0,scrollY=0,width=0,height=0,contentWidth=0,contentHeight=0;
    if(typeof(window.pageXOffset)=='number')
    {
        scrollX=window.pageXOffset;
        scrollY=window.pageYOffset;
    }
    else if(document.body&&(document.body.scrollLeft||document.body.scrollTop))
    {
        scrollX=document.body.scrollLeft;
        scrollY=document.body.scrollTop;
    }
    else if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop))
    {
        scrollX=document.documentElement.scrollLeft;
        scrollY=document.documentElement.scrollTop;
    }
    if(typeof(window.innerWidth)=='number')
    {
        width=window.innerWidth;
        height=window.innerHeight;
    }
    else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight))
    {
        width=document.documentElement.clientWidth;
        height=document.documentElement.clientHeight;
    }
    else if(document.body&&(document.body.clientWidth||document.body.clientHeight))
    {
        width=document.body.clientWidth;
        height=document.body.clientHeight;
    }
    if(document.documentElement&&(document.documentElement.scrollHeight||document.documentElement.offsetHeight))
    {
        if(document.documentElement.scrollHeight>document.documentElement.offsetHeight)
        {
            contentWidth=document.documentElement.scrollWidth;
            contentHeight=document.documentElement.scrollHeight;
        }
        else
        {
            contentWidth=document.documentElement.offsetWidth;
            contentHeight=document.documentElement.offsetHeight;
        }
    }
    else if(document.body&&(document.body.scrollHeight||document.body.offsetHeight))
    {
        if(document.body.scrollHeight>document.body.offsetHeight)
        {
            contentWidth=document.body.scrollWidth;
            contentHeight=document.body.scrollHeight;
        }
        else
        {
            contentWidth=document.body.offsetWidth;
            contentHeight=document.body.offsetHeight;
        }
    }
    else
    {
        contentWidth=width;
        contentHeight=height;
    }
    if(height>contentHeight)
        height=contentHeight;
    if(width>contentWidth)
        width=contentWidth;
        
    var rect = new Object();
    rect.ScrollX = scrollX;
    rect.ScrollY = scrollY;
    rect.Width = width;
    rect.Height = height;
    rect.ContentWidth = contentWidth;
    rect.ContentHeight = contentHeight;
    return rect;
}