/*
 *	Class: phone.login
 */
phone.login = {};

/*
 *	Function: setup
 *	Initiate everything for login. Setup vars, events, etc.
 */
phone.login.setup = function() {
	phone.login.api = new API({resource:'users'});
	phone.login.$container = $('#login').show();
	
	phone.login.$form_login = phone.login.$container.find('form.login').submit(function() {
		console.log('submit login');
		phone.login.submit_login();
		return false;
	});
	
	phone.login.$form_forgot_password = phone.login.$container.find('form.forgot_password').submit(function() {
		console.log('submit');
		phone.login.submit_forgot_password();
		return false;
	}).hide();

	phone.login.$btn_register = phone.login.$container.find('.btn_register').button(phone.register.show);
	
	phone.login.$btn_login = phone.login.$form_login.find('.btn_submit').button(function() {
		phone.login.$form_login.submit();
	});
	
	phone.login.$btn_forgot_password = phone.login.$form_forgot_password.find('.btn_submit').button(function() {
		phone.login.$form_forgot_password.submit();
	});
	
	phone.login.$btn_show_forgot_password = phone.login.$form_login.find('.btn_show_forgot_password').button(phone.login.showForgotPassword);
	phone.login.$btn_hide_forgot_password = phone.login.$form_forgot_password.find('.btn_hide_forgot_password').button(phone.login.hideForgotPassword);	

	//Password-reset
	if(PASSWORD_RESET_TOKEN) {
		$popup.info('PASSWORD_RESET_TOKEN_FOUND');
	}
};

phone.login.submit_login = function() {
	var phone_number = $.phone_number(phone.login.$form_login.find('input[name=phoneNumber]').val());
	
	var data = {
		phoneNumber: 	phone_number.number,
		password: 		phone.login.$form_login.find('input[name=password]').val()
	}
	
	if(!phone_number.valid) {
		$popup.error('FIELDS_NUMBER_INVALID');
		return false;
	}

	if(!data.phoneNumber) {
	 $popup.error('FIELDS_NUMBER_MISSING');
	 return false;
	}
	
	if(!data.password) {
		$popup.error('FIELDS_PASSWORD_MISSING');
		return false;
	}
	
	if(PASSWORD_RESET_TOKEN) {
		url_vars = 'change_password/' + PASSWORD_RESET_TOKEN;
	} else {
		url_vars = 'login';
	}
	
	phone.login.api.call({method:'POST', url_vars:url_vars, data:data, success:function(data) {
		//Password changed
		if(PASSWORD_RESET_TOKEN) {
			$popup.info('CHANGE_PASSWORD_SUCCESS');
		}
		//Set user
		user.current = data.user;
		//Setup all sections
		phone.setup();
		//Populate userdata
		user.populate(user.current);	
	}});
};

phone.login.submit_forgot_password = function() {
	
	var email = phone.login.$form_forgot_password.find('input[name=email]').val();

	if(!email) {
	 $popup.error('FIELDS_EMAIL_MISSING');
	 return false;
	}
	
	phone.login.api.call({method:'POST', url_vars:'forgot_password/'+email, loading:'FORGOT_PASSWORD_REQUESTING', info:'FORGOT_PASSWORD_SUCCESS'});	
};

phone.login.showForgotPassword = function() {
	phone.login.$container.find('h1.login').animate({'opacity':0},100);
	phone.login.$container.find('form.login').animate({'opacity':0, 'margin-top':-140}, 200);
	phone.login.$form_forgot_password.fadeIn(200);
};

phone.login.hideForgotPassword = function() {
	phone.login.$container.find('h1.login').animate({'opacity':1},200);
	phone.login.$container.find('form.login').animate({'opacity':1, 'margin-top':0}, 200);
	phone.login.$form_forgot_password.fadeOut(200);
};

