Ext.namespace('mm.loginpanel.base');
mm.loginpanel.base.construct = function(autoconstruct){
	this.el = $('.mm-loginpanel-base');
	this.constructor = function()
	{
		this.email = this.el.find('.email');
		this.password = this.el.find('.password');

		this.el.find('form').bind('submit', function(event){
			event.preventDefault();
			this.el.find('.button').click();
		}.createDelegate(this))

		this.password.bind('keypress', function(event){
			if (event.keyCode == 13) {
				this.el.find('.button').click();
			}
		}.createDelegate(this));

		this.el.find('.button').bind('click', function(){
			var mail = this.email.val();
			var pass = this.password.val();
			this.rpc_login(mail, pass, function(conn,success,response){
				var response_data = Ext.util.JSON.decode(response.responseText);
				
				
				var appendix = $('.appendix').css({
					width: $(document).width(),
					height: $(document).height()
				});

				if (response_data.data.success)
				{
					var config = {
						parent: {
							el: appendix
						}, 
						text: {
							title: __('Login successful'),
							text: __('Your login was successful. The page will reload now.'),
							buttontext: 'ok'
						},
						callback: function()
						{
							window.location.reload();
						}.createDelegate(this)
					};
				}
				else
				{
					var config = {
						parent: {
							el: appendix
						}, 
						text: {
							title: __('Login failed'),
							text: __('Your login failed. Please try again.'),
							buttontext: 'ok'
						},
						callback: function()
						{
							this.password.val('');
							this.email.focus().select();
						}.createDelegate(this)
					};
				}
				new mm.messagebox.base.construct(config);
				if (response_data.data.success)
				{
					var task = new Ext.util.DelayedTask(function(){
						window.location.reload();
					})
					task.delay(2000);
				}
			}.createDelegate(this));
		}.createDelegate(this));
	}
	if (typeof autoconstruct != 'undefined' && autoconstruct)
	{
		this.constructor();
	}
};
mm.loginpanel.base.construct.prototype.domname = 'mm-loginpanel-base';
mm.loginpanel.base.construct.prototype.namespace = mm.loginpanel.base;
mm.loginpanel.base.construct.prototype.rpc_login = function(){
	var last = arguments.length-1;
	var callback = arguments[last];
	var args = [];
	for(var i=0; i<arguments.length; i++)
	{
		args[i] = arguments[i];	
	}

	var params = {data:args.slice(0, args.length-1)}
	Ext.Ajax.request({
		url: 'http://www.my-musix.com/rpc/loginpanel/base/login',
		callback: callback,
		jsonData: params
	});
}
mm.loginpanel.base.obj = new mm.loginpanel.base.construct(true);
