var UserLogin = new Class({
	options : {
		errorMsg			: {
			'color'			: '#FF0000',
			'font-size'		: '12px',
			'padding-left'	: '8px'
		}		
	},
	
	initialize : function(obj, options){
		this.form	= $('loginForm');
		this.msgarea = $('result');
		this.submit = $('submit');
		
		this.form.addEvent('submit', function(e){
			e.stop();
			var doSubmit = this.validate();
			if(!doSubmit){
				return;
			}
			
			this.submit.value = "Please wait...";
			this.submit.setProperty('disabled', true);
			this.form.set('send', {
				onSuccess:function(txt){
					this.result(txt);
				}.bind(this),
				
				onFailure:function(){
					this.submit.value = 'Sign in';
					this.submit.setProperty('disabled', false);
					this.setMsg('System busy, please try later');
				}.bind(this)
			});

			this.form.send();
			
		}.bind(this));		
	},
	
	result : function(jsontxt){
		this.msgarea.empty();
		var results = JSON.decode(jsontxt);
		if($chk(results) && results.result == 'true'){
			window.location = '/user.go?m=home';
			
			return;
		}
		
		this.submit.value = 'Sign in';
		this.submit.setProperty('disabled', false);
		this.setMsg('Email or password incorrect');
	},
	
	validate : function(){
		var doSubmit = true;
		this.msgarea.empty();
		if($('email').value == '' || $('passwd').value == ''){
			this.setMsg('Please enter email and password');
			doSubmit = false;
		}
		return doSubmit;
	},
	
	setMsg : function(msg){
		this.msgarea.set('text', msg).setStyles(this.options.errorMsg);
	}
});
UserLogin.implement(new Events, new Options);
