// login class for yolax.com/passport ver 2.0

var login = Class.create(Base, {
	api: './api/global.php',
	defaultPage: './',

	initialize: function() {},

	doLogin: function() {
		var form = $('form'), loguser;
		if (!(loguser = this.validateForm(form))) return;
		new _ajax({api:this.api, queryObject:Object.extend({'do':'dologin'}, loguser), callFunc:[this, 'loggedResult'], showTips:true});
	},

	validateForm: function(f) {
		var username = f.getInputs('text', 'username')[0], password = f.getInputs('password', 'password')[0];
		if (username.getValue().blank()) {
			username.activate();
			return this.innerTips('请输入您的登录名');
		}
		if (password.getValue().blank()) {
			password.activate();
			return this.innerTips('请输入您的登录密码');
		}
		return {'username': username.getValue(), 'password': password.getValue()};
	},

	loggedResult: function(xml) {
		var code = Element.nodeText(xml.getElementsByTagName('parsecode')[0]);
		switch (code) {
			case 'loggedin':
				location.href = this.defaultPage;
				break;

			case 'invalid_logon_user':
				this.innerTips("登录名不存在");
				$('username').activate();
				break;

			case 'outof_trytimes':
				this.innerTips("请您在"+Element.nodeText(xml.getElementsByTagName('timeleft')[0])+"后重新尝试登录");
				break;

			case 'invalid_logon_password':
				var timesleft = parseInt(Element.nodeText(xml.getElementsByTagName('trytimesleft')[0]));
				this.innerTips(timesleft > 0 ?
					("密码错误，您还有"+timesleft+"次尝试机会") :
					("您可能忘记了密码，请在"+Element.nodeText(xml.getElementsByTagName('timeleft')[0])+"后重新尝试登录，或请使用【取回密码】")
				);
				if (timesleft>0) $('password').activate();
				else $('getpass').focus();
				break;

			case 'blockade_login':
				this.innerTips("您的帐户目前处于冻结状态，请联系客服人员以获得帮助");
				break;

			default:
				location.href = this.defaultPage;
		}
	},

	innerTips: function(msg) {
		var area = $('sign_explan');
		area.update(msg);
	},
	
	initTips: function(form) {
		form = $(form);
		var usn = form.getInputs('text', 'username')[0], pwd = form.getInputs('password', 'password')[0], self = this;
		usn.observe('focus', function(){if(this.getValue().blank()) self.innerTips('请输入您的登录名')}).observe('blur', function(){self.innerTips('')});
		pwd.observe('focus', function(){if(this.getValue().blank()) self.innerTips('请输入您的登录密码')}).observe('blur', function(){self.innerTips('')});
		usn.activate();
	}
});

var clsLogin = new login();