// Member management
// Copyright (c) 2006
// Muzaffar Mahkamov

PIX.member = new Array(); // namespace for member functions

PIX.member.register = function(formName)
{
	this._mForm = YAHOO.util.Dom.get(formName);
	
	this.handleSuccess = function(o)
	{
		if(o.responseText !== undefined)
		{
			var result = o.responseText.parseJSON();
			
			if(result.code == 0)
			{
				PIX.showReport(result['messages']);
			}
			else
			{				
				window.location.href = result.redirect;
			}			
		}
		
		this._mProgressDlg.hide();
	}
	
	this.handleFailure = function(o)
	{
		if(o.responseText !== undefined)
		{
			var errs = [ 'Код транзакции: '+o.tId, 'Код HTTP: ' + o.status, 'Текст ошибки: ' + o.statusText ]
			PIX.showReport(errs);
		}
		
		this._mProgressDlg.hide();
	}
	
	this.callback =
	{
	   success: this.handleSuccess,
	   failure: this.handleFailure,
	   argument: [],
	   scope: this
	}
	
	var val = new Validator();
	val.AddRequired('invitation_code');
	val.AddRequired('first_name');
	val.AddRequired('last_name');
	val.AddRequired('sex');
	val.AddRequired('login');
	val.AddRequired('password');
	val.AddRequired('confirmation');
	val.AddRequired('secret_question');
	val.AddRequired('secret_answer');
	val.AddRequired('email');
	val.AddRequired('code');
	
	
	if(val.Check())
	{
		PIX.hideReport();
	
		var formObject = this._mForm;
	
		YAHOO.util.Connect.setForm(formObject);
	
		var cObj = YAHOO.util.Connect.asyncRequest('POST', 
											   '/reg/', 
												this.callback);
				
		this._mProgressDlg = new YAHOO.widget.Panel("wait", 
								{ width:"240px", 
								  fixedcenter:true, 
								  underlay:"shadow", 
								  close:false, 
								  visible:true, 
								  draggable:true, 
								  modal:true, 
								  effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:0.5} 
								  } 
								 );
								 
		this._mProgressDlg.setHeader("Подождите...");
		this._mProgressDlg.setBody('<img src="\/img\/progress.gif"\/>');

		this._mProgressDlg.render(document.body);
	}
	else
	{
		PIX.showReport(val.errors);	
	}
}

PIX.member.activate = function(formName)
{
	this._mForm = YAHOO.util.Dom.get(formName);
	
	this.handleSuccess = function(o)
	{
		if(o.responseText !== undefined)
		{
			var result = o.responseText.parseJSON();
			
			if(result.code == 0)
			{
				PIX.showReport(result['messages']);
				this._mProgressDlg.hide();
			}
			else
			{
				this._mProgressDlg.hide();
				window.location.href = result.redirect;
			}			
		}		
	}
	
	this.handleFailure = function(o)
	{
		if(o.responseText !== undefined)
		{
			var errs = [ 'Код транзакции: '+o.tId, 'Код HTTP: ' + o.status, 'Текст ошибки: ' + o.statusText ]
			PIX.showReport(errs);
		}
		
		this._mProgressDlg.hide();
	}
	
	this.callback =
	{
	   success: this.handleSuccess,
	   failure: this.handleFailure,
	   argument: [],
	   scope: this
	}
	
	var val = new Validator();
	val.AddRequired('email');
	val.AddRequired('activation_code');
	
	
	if(val.Check())
	{
		PIX.hideReport();
	
		var formObject = this._mForm;
	
		YAHOO.util.Connect.setForm(formObject);
	
		var cObj = YAHOO.util.Connect.asyncRequest('POST', 
											   '/reg/activate/', 
												this.callback);
				
		this._mProgressDlg = new YAHOO.widget.Panel("wait", 
								{ width:"240px", 
								  fixedcenter:true, 
								  underlay:"shadow", 
								  close:false, 
								  visible:true, 
								  draggable:true, 
								  modal:true, 
								  effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:0.5} 
								  } 
								 );
								 
		this._mProgressDlg.setHeader("Подождите...");
		this._mProgressDlg.setBody('<img src="\/img\/progress.gif"\/>');

		this._mProgressDlg.render(document.body);
	}
	else
	{
		PIX.showReport(val.errors);	
	}
}

PIX.member.login = function(formName)
{
	this._mForm = YAHOO.util.Dom.get(formName);
	
	this.handleSuccess = function(o)
	{
		if(o.responseText !== undefined)
		{
			var result = o.responseText.parseJSON();
			
			if(result.code == 0)
			{
				PIX.showReport(result['messages']);
				this._mProgressDlg.hide();
			}
			else
			{
				this._mProgressDlg.hide();
				window.location.href = result.redirect;
			}			
		}		
	}
	
	this.handleFailure = function(o)
	{
		if(o.responseText !== undefined)
		{
			var errs = [ 'Код транзакции: '+o.tId, 'Код HTTP: ' + o.status, 'Текст ошибки: ' + o.statusText ]
			PIX.showReport(errs);
		}
		
		this._mProgressDlg.hide();
	}
	
	this.callback =
	{
	   success: this.handleSuccess,
	   failure: this.handleFailure,
	   argument: [],
	   scope: this
	}
	
	var val = new Validator();
	val.AddRequired('login');
	val.AddRequired('password');
	
	
	if(val.Check())
	{
		PIX.hideReport();
	
		var formObject = this._mForm;
	
		YAHOO.util.Connect.setForm(formObject);
	
		var cObj = YAHOO.util.Connect.asyncRequest('POST', 
											   '/login/', 
												this.callback);
				
		this._mProgressDlg = new YAHOO.widget.Panel("wait", 
								{ width:"240px", 
								  fixedcenter:true, 
								  underlay:"shadow", 
								  close:false, 
								  visible:true, 
								  draggable:true, 
								  modal:true, 
								  effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:0.5} 
								  } 
								 );
								 
		this._mProgressDlg.setHeader("Подождите...");
		this._mProgressDlg.setBody('<img src="\/img\/progress.gif"\/>');

		this._mProgressDlg.render(document.body);
	}
	else
	{
		PIX.showReport(val.errors);	
	}
}