﻿Ext.onReady(function() {
	Ext.lib.Ajax.defaultPostHeader += '; charset=utf-8';
});


var LoingDialog = {};

/**
 * 登录后执行此方法，默认为空方法，调用show方法设置
 */
LoingDialog.callbackMethod = function(){};

/**
 * 判断是否登录，如果已经登录，执行callBackMethod
 * 如果未登录，弹出登录窗口进行登录
 * @param {Object} o 参数是一个对象，该对象须包含以下属性：<ul>
 * <li><b>el</b> {String/Element} Dom元素id或Dom 元素</li>
 * <li><b>method</b> {Function} 登录后执行的回调方法</li>
 * <li><b>fn</b> {Function} </li>
 * </ul>
 */
LoingDialog.show = function(o){
	if(o.method){
		LoingDialog.callbackMethod = o.method;
	}else{
		LoingDialog.callbackMethod = function(){};
	}
	var ts = o.el;
	o.el = Ext.getDom(o.el); 
	
	Ext.Ajax.request({
		url : "/checkLogin.aspx", 
		method: 'GET',
		success: function ( result, request ) { 
		    var info=new Object();
		    eval("info="+result.responseText+";");
			if(info.name){
				LoingDialog.callbackMethod();
			}else{
				Ext.Ajax.request({
					url : "/MiniLogin.aspx", 
					method: 'GET',
					success: function ( result, request ) { 
						option = {
							title: getTitleHTML(""),
							msg: result.responseText,
							width:358,
							animEl: o.el,
							afterShow:LoingDialog.initLoginForm
						}
						if(typeof o.fn == "function"){
							option.fn = o.fn;
						}
						Betzc.pageShow(option);
					},
					failure: function ( result, request) { 
						showRequestFailure(o.el);
					} 
				});				
			}
		},
		failure: function ( result, request) { 
			showRequestFailure(o.el);
		} 
	});
};


/**
 * 初始化登录表单：从cookie里获取用户名，定位光标，刷新验证码
 */
LoingDialog.initLoginForm = function(){
	var objForm = document.forms.DialogLoginForm;
	objForm.elements["userName"].focus();
};
 
/**
 * 检查登录表单是否填写正确
 * @param {Object} objForm	表单对象
 */
LoingDialog.checkLoginForm = function(objForm){
	var loginErrorMsg = Ext.getDom("loginErrorMsg");
    if (objForm.elements["userName"].value ===""){
      loginErrorMsg.innerHTML = "<font color=\"red\">请填写您的用户名！</font>";
	  objForm.elements["userName"].focus();
	  return false;
    }
 
    if (objForm.elements["password"].value ===""){
      loginErrorMsg.innerHTML = "<font color=\"red\">请填写您的密码！</font>";
	  objForm.elements["password"].focus();
	  return false;
    }  
    return true;
};

/**
 * 使用ajax请求提交登录表单
 * @param {Object} objForm 表单对象
 */
LoingDialog.submitLoginForm = function(objForm){
	if(this.checkLoginForm(objForm)){		
		var tempFn = objForm.onkeydown;
		objForm.onkeydown = function(){};
		var td_loginSumbit = Ext.getDom("td_loginSumbit");
		var loginstatus=Ext.getDom("loginstatus");
		var tempData = td_loginSumbit.innerHTML;
		td_loginSumbit.innerHTML = getWaitingHTML({msg:"正在登录，请稍等...",cls:"loadData2"});
		
		Ext.Ajax.request({
			form : objForm,
			method: 'POST',
			success: function ( result, request ) {
				if(result.responseText.indexOf("success")>=0){
				    if(loginstatus)
				        loginstatus.innerHTML=' &nbsp;  [<a href="/Users/LoginOut.aspx">退出</a>]';
					Ext.MessageBox.hide(LoingDialog.callbackMethod);
				}else{
					objForm.onkeydown = tempFn;
					td_loginSumbit.innerHTML = tempData;
					var loginErrorMsg = Ext.getDom("loginErrorMsg");
					loginErrorMsg.innerHTML = "<font color=\"red\">" + result.responseText + "</font>";
					
					if(result.responseText.indexOf("密码")>=0){
						objForm.elements["password"].focus();
						objForm.elements["password"].select();
					}
				}
			},
			failure: function ( result, request) { 
				objForm.onkeydown = tempFn;
				td_loginSumbit.innerHTML = tempData;
				var loginErrorMsg = Ext.getDom("loginErrorMsg");
				loginErrorMsg.innerHTML = "<font color=\"red\">登录时发生异常！</font>";
			} 
		});		
	}	
	return false;
};



// 点击支付宝登录后，循环判断是否已登录成功
function CheckLoginState(){
    Ext.Ajax.request({
	    url : "/checkLogin.aspx", 
	    method: 'GET',
	    success: function ( result, request ) { 
	        var info=new Object();
	        eval("info="+result.responseText+";");
		    if(info.name) {LoingDialog.callbackMethod();}
		    else
		        window.setTimeout("CheckLoginState()", 1500);
	    },
		failure: function(){ window.setTimeout("CheckLoginState()", 2000);}
    });    
}


// 检查是否完成充值
function CheckPayState(func,form,money){

    Ext.Ajax.request({
	    url : "/users/getmoney.aspx", 
	    method: 'GET',
	    success: function ( result, request ) { 
	        if(parseFloat(result.responseText)>=money){
	            if(func=="submitScheme") submitScheme(form);
	            if(func=="submitSchemeForm2") submitSchemeForm2(form);
	            if(func=="submitSchemeSSQForm") submitSchemeSSQForm(form);	            
	            if(func=="uploadFile") uploadFile();
	        }
		    else
		        window.setTimeout( function(){CheckPayState(func,form,money)}, 1500);
	    },
		failure: function(){ window.setTimeout(function(){CheckPayState(func,form,money)}, 2000);}
    });    
}

