var pageObj;

jQuery(document).ready(function(){
	pageObj = new PageProfile();
});


function PageProfile()
{
	this.logon = jQuery.cookie('logon');
	this.profileObj = null;
	
	if(this.logon == null || this.logon == '')
	{// Юзер не залогинен
		jQuery('.logon-form').removeClass('form-invisible');
	}
	else
	{// Юзер залогинен, показываем профиль
		this.showProfile();
	}
		
	this.createHandlers();
	
	// Подключаем календарь
	jQuery('#payment_startdate').datepicker({ dateFormat: 'dd.mm.yy', firstDay: 1, minDate: 0 });
	
	this.userUniverses = new Array();
	this.firstPayment = true;
}


/**
* Вешаем обработчики событий
*/
PageProfile.prototype.createHandlers = function()
{
	var self = this;
	/**
	* Обработка клика по кнопке аутентификации
	*/
	jQuery('#cerebro_logon_form').submit(function(){
		return false;
	});
	
	jQuery('#lf_send_btn').click(function(){
		self.login();
	});
	
	jQuery('#forgot_password_link').click(function(){
		self.forgotPassword();
	});
		
	jQuery('#forgot_password_link_cancel').click(function(){
		jQuery('.logon-form').removeClass('form-invisible');
		jQuery('.forgot-password-form').addClass('form-invisible');
		jQuery('#fpf_username').val('');
		hideErrorMessages();
	});
	
	jQuery('#fpf_send_btn').click(function(){
		hideErrorMessages();
		var correctEmailFlag = (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(jQuery('#fpf_email').val());
		if(correctEmailFlag == true)
		{// Шлем запрос на генерацию нового пароля
			
			var param = '';
			param += 'email='+jQuery('#fpf_email').val();
			var result = getAll__('recovery_password', param);
			if(result.length > 0)
			{
				if(result[0].code.toUpperCase() == 'SECURITY ERROR')
				{// Ошибка безопасности
					errorMessage(msgSecurityError);
					
					jQuery('.logon-form').removeClass('form-invisible');
					jQuery('.forgot-password-form').addClass('form-invisible');
					jQuery('#fpf_username').val('');
				}
				else if(result[0].code.toUpperCase() == 'AJAX ERROR')
				{// Ошибка Ajax
					errorMessage(msgAjaxError);
				}
				else if(result[0].code.toUpperCase() == 'SERVICE ERROR')
				{// Ошибка сервиса
					errorMessage(result[0].message, 'fpf_wrong_email_msg');
				}
				else if(result[0].code.toUpperCase() != 'OK')
				{// Непонятная ошибка
					errorMessage(result[0].code+': '+result[0].message);
				}
				else
				{// Успех
					
					errorMessage(msgPasswordSend+jQuery('#fpf_email').val());
					
					jQuery('.logon-form').removeClass('form-invisible');
					jQuery('.forgot-password-form').addClass('form-invisible');
					jQuery('#fpf_username').val('');
				}
			}
			else
			{// Этого по идее вообще не может быть, но на всякий случай проверим
				errorMessage(msgAjaxError);
			}	
		}
		else
		{
			errorMessage(msgEmailIncorrect, 'fpf_wrong_email_msg');
		}
	});
	
	jQuery('#change_password_link').click(function(){
		self.changePassword();
	});
		
	jQuery('#change_password_link_cancel').click(function(){
		jQuery('.change-password-form').addClass('form-invisible');
		jQuery('#сpf_new_password').val('');
		hideErrorMessages();
	});
	
	jQuery('#cpf_send_btn').click(function(){
		if(jQuery('#сpf_new_password').val() == '')
		{
			errorMessage(msgFillNewPassword, 'cpf_wrong_password_msg');
			return;
		}
		
		var param = '';
		param += 'login='+jQuery('#p_login').val();
		param += '&new_password='+jQuery('#сpf_new_password').val();
		var result = getAll__('change_password', param);
		if(result.length > 0)
		{
			if(result[0].code.toUpperCase() == 'SECURITY ERROR')
			{// Ошибка безопасности
				errorMessage(msgSecurityError);
				
				jQuery('.logon-form').removeClass('form-invisible');
				jQuery('.profile-form').addClass('form-invisible');
				jQuery('.change-password-form').addClass('form-invisible');
			}
			else if(result[0].code.toUpperCase() == 'AJAX ERROR')
			{// Ошибка Ajax
				errorMessage(msgAjaxError);
			}
			else if(result[0].code.toUpperCase() != 'OK')
			{// Непонятная ошибка
				errorMessage(result[0].code+': '+result[0].message);
			}
			else
			{// Успех
				errorMessage(msgPasswordChanged);
				
				jQuery.cookie('logon', '', {path: '/'});
				jQuery('.logon-form').removeClass('form-invisible');
				jQuery('.profile-form').addClass('form-invisible');
				jQuery('.change-password-form').addClass('form-invisible');
			}
		}
		else
		{// Этого по идее вообще не может быть, но на всякий случай проверим
			errorMessage(msgAjaxError);
		}
	});
		
	
	jQuery('#p_send_btn').click(function(){
		self.updateProfile();
	});
	
	jQuery('.profile-headeritem').click(function(){
		if(!$(this).hasClass('current-profile-headeritem'))
		{
			jQuery('.profile-headeritem').removeClass('current-profile-headeritem');
			$(this).addClass('current-profile-headeritem');
			
			if($(this).attr('id').split('_')[1] == 0)
			{// Выбран профиль пользователя
				jQuery('.payment-form').addClass('form-invisible');
				jQuery('.partners-form').addClass('form-invisible');
				self.showProfile();
			}
			
			if($(this).attr('id').split('_')[1] == 1)
			{// Выбрано внесение денег на счет
				jQuery('.profile-form').addClass('form-invisible');
				jQuery('.partners-form').addClass('form-invisible');
				jQuery('.payment-form').removeClass('form-invisible');
				
				self.doPayment();
				
			}
			
			if($(this).attr('id').split('_')[1] == 2)
			{// Выбрана история платежей 
				jQuery('.payment-form').addClass('form-invisible');
				jQuery('.profile-form').addClass('form-invisible');
				jQuery('.partners-form').removeClass('form-invisible');
				
				self.showPartnersPage();
			}
		}
	});
	
	jQuery('#payment_method').change(function(){
		self.paymentFormEvent(1);
	});
	
	jQuery('#payment_tariff').change(function(){
		self.paymentFormEvent(2);
	});
	
	jQuery('#payment_startdate').change(function(){
		self.paymentFormEvent(3);
	});
	jQuery('#payment_period').change(function(){
		self.paymentFormEvent(3);
	});
	
	jQuery('#payment_users').change(function(){
		var sums = self.paymentFormCalculateSum(jQuery('#payment_currency option:selected').val()); 
		if(sums !== false)
		{
			jQuery('#payment_sum').text(sums[0]+' '+jQuery('#payment_currency option:selected').text());
			jQuery('#payment_econ').text(sums[1]+' '+jQuery('#payment_currency option:selected').text());
			
			jQuery('#payment_discount').text(sums[2]+' '+jQuery('#payment_currency option:selected').text());
			jQuery('#payment_tobepaid').text(sums[3]+' '+jQuery('#payment_currency option:selected').text());
			
		}
		else
		{
			jQuery('#payment_sum').text('');
			jQuery('#payment_econ').text('');
			jQuery('#payment_discount').text('');
			jQuery('#payment_tobepaid').text('');
		}
	});
	
	jQuery('#payment_currency').change(function(){
		var sums = self.paymentFormCalculateSum(jQuery('#payment_currency option:selected').val()); 
		if(sums !== false)
		{
			jQuery('#payment_sum').text(sums[0]+' '+jQuery('#payment_currency option:selected').text());
			jQuery('#payment_econ').text(sums[1]+' '+jQuery('#payment_currency option:selected').text());
			jQuery('#payment_discount').text(sums[2]+' '+jQuery('#payment_currency option:selected').text());
			jQuery('#payment_tobepaid').text(sums[3]+' '+jQuery('#payment_currency option:selected').text());
		}
		else
		{
			jQuery('#payment_sum').text('');
			jQuery('#payment_econ').text('');
			jQuery('#payment_discount').text('');
			jQuery('#payment_tobepaid').text('');
		}
	});
	
	jQuery('#payment_next_link').click(function(){
		self.paymentFormEvent(4);
	});
	
	jQuery('#payment_back_link').click(function(){
		self.paymentFormEvent(5);
	});
	
	jQuery('#payment_question').change(function(){
		self.paymentFormEvent(6);
	});
	jQuery('#payment_coupon').change(function(){
		self.paymentFormEvent(7);
	});
	jQuery('#payment_universe').change(function(){
		self.paymentFormEvent(8);
	});
	
	jQuery('#payment_bill_link').click(function(){
		self.paymentProcess(1);
		//alert('Высылаем счет');
	});
	jQuery('#payment_pay_link').click(function(){
		self.paymentProcess(2);
		//alert('Перенаправляем на ChronoPay');
	});
	
	jQuery('#partners_question').click(function(){
		self.partnersFormEvent(1);
	});
	jQuery('#partners_registration_link').click(function(){
		self.partnersFormEvent(2);
	});
	jQuery('#pp_generate_coupons_link').click(function(){
		self.partnersFormEvent(3);
	});
	
};

/**
* Показываем профиль
*/
PageProfile.prototype.updateProfile = function()
{
	//console.log('this.profileObj', this.profileObj);
	
	
	var correctEmailFlag = (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(jQuery('#p_email').val());
	if(correctEmailFlag == false)
	{
		errorMessage(msgEmailIncorrect);
		return;
	}
	
	
	var param = '';
	param += 'usid='+this.profileObj.user_id;
	param += '&fullname='+jQuery('#p_fullname').val();
	param += '&email='+jQuery('#p_email').val();
	param += '&icq='+jQuery('#p_icq').val();
	param += '&phone='+jQuery('#p_phone').val();
	param += '&lang_id='+jQuery('#p_lng').val();
	param += '&digest_time='+jQuery('#p_digest_time').val();
	param += '&interest='+jQuery('#p_interest').val();
	param += '&assigned='+jQuery('#p_assigned').val();
	
	var result = getAll__('update_profile', param);

	if(result.length > 0)
	{
		if(result[0].code.toUpperCase() == 'SECURITY ERROR')
		{// Ошибка безопасности
			this.hideProfile();
		}
		else if(result[0].code.toUpperCase() == 'AJAX ERROR')
		{// Ошибка Ajax
			errorMessage(msgAjaxError);
			this.hideProfile();
		}
		else if(result[0].code.toUpperCase() != 'OK')
		{// Непонятная ошибка
			errorMessage(result[0].code+': '+profile[0].message);
			this.hideProfile();
		}
		else
		{// Профиль сохранен
			errorMessage(msgUpdateSuccess);
		}
	}
	else
	{// Этого по идее вообще не может быть, но на всякий случай проверим
		errorMessage(msgAjaxError);
		this.hideProfile();
	}
};

/**
* Показываем профиль
*/
PageProfile.prototype.showProfile = function()
{
	var profile = getAll__('get_profile', '', new CerebroProfile);
	
	if(profile.length > 0)
	{
		if(profile[0].code.toUpperCase() == 'SECURITY ERROR')
		{// Ошибка безопасности
			this.hideProfile();
		}
		else if(profile[0].code.toUpperCase() == 'AJAX ERROR')
		{// Ошибка Ajax
			errorMessage(msgAjaxError);
			this.hideProfile();
		}
		else if(profile[0].code.toUpperCase() != 'OK')
		{// Непонятная ошибка
			errorMessage(profile[0].code+': '+profile[0].message);
			this.hideProfile();
		}
		else
		{// Сгенерился ответ
			if(profile.length >= 2 && typeof profile[1] == 'object')
			{
				this.profileObj = profile[1];
				jQuery('#p_fullname').val(this.profileObj.full_name);
				jQuery('#p_login').val(this.profileObj.login);
				jQuery('#p_email').val(this.profileObj.email);
				jQuery('#p_icq').val(this.profileObj.icq);
				jQuery('#p_phone').val(this.profileObj.phone);
				
				var langs = this.profileObj.langs_string.split('|');
				var selectLangsContent = '';
				for(var i=0; i<langs.length; i++)
				{
					if(langs[i].split('#')[0] == this.profileObj.lang_id)
					{
						selectLangsContent += '<option value="'+langs[i].split('#')[0]+'" selected="selected">'+langs[i].split('#')[1]+'</option>';
					}
					else
					{
						selectLangsContent += '<option value="'+langs[i].split('#')[0]+'">'+langs[i].split('#')[1]+'</option>';
					}
				}
				jQuery('#p_lng').empty();
				jQuery('#p_lng').append(selectLangsContent);
				
				var tmpDate = new Date();
				tmpDate.setTime(this.profileObj.start_digest_time*1000);
				var startTimeContent = '';
				for(var i=0; i<24; i++)
				{
					if(i == tmpDate.getHours())
					{
						startTimeContent += '<option value="'+i+'" selected="selected">'+i+'</option>';
					}
					else
					{
						startTimeContent += '<option value="'+i+'">'+i+'</option>';
					}
				}
				jQuery('#p_digest_time').empty();
				jQuery('#p_digest_time').append(startTimeContent);
				
				//console.log('profile obj', this.profileObj);
				
				//console.log('interest xml value', this.profileObj.interest);
				var interestContent = '';
				var interestSelectedIndex = 0;
				var interestValues = new Array('', 0, 3600, 10800, 21600, 86400, 604800);
				if(this.profileObj.interest == ''){interestSelectedIndex = 0;}
				else if(this.profileObj.interest == 0){interestSelectedIndex = 1;}
				else if(this.profileObj.interest == 3600){interestSelectedIndex = 2;}
				else if(this.profileObj.interest == 10800){interestSelectedIndex = 3;}
				else if(this.profileObj.interest == 21600){interestSelectedIndex = 4;}
				else if(this.profileObj.interest == 86400){interestSelectedIndex = 5;}
				else if(this.profileObj.interest == 604800){interestSelectedIndex = 6;}
				
				//console.log('interest index', interestSelectedIndex);
				for(var i=0; i<7; i++)
				{
					if(i == interestSelectedIndex)
					{
						interestContent += '<option value="'+interestValues[i]+'" selected="selected">'+times[i]+'</option>';
					}
					else
					{
						interestContent += '<option value="'+interestValues[i]+'">'+times[i]+'</option>';
					}
				}
				jQuery('#p_interest').empty();
				jQuery('#p_interest').append(interestContent);
				
				//console.log('assigned xml value', this.profileObj.assigned);
				var assignedContent = '';
				var assignedSelectedIndex = 0;
				var assignedValues = new Array('', 0, 3600, 10800, 21600, 86400, 604800);
				if(this.profileObj.assigned == ''){assignedSelectedIndex = 0;}
				else if(this.profileObj.assigned == 0){assignedSelectedIndex = 1;}
				else if(this.profileObj.assigned == 3600){assignedSelectedIndex = 2;}
				else if(this.profileObj.assigned == 10800){assignedSelectedIndex = 3;}
				else if(this.profileObj.assigned == 21600){assignedSelectedIndex = 4;}
				else if(this.profileObj.assigned == 86400){assignedSelectedIndex = 5;}
				else if(this.profileObj.assigned == 604800){assignedSelectedIndex = 6;}
				
				//console.log('assigned index', assignedSelectedIndex);
				for(var i=0; i<7; i++)
				{
					if(i == assignedSelectedIndex)
					{
						assignedContent += '<option value="'+assignedValues[i]+'" selected="selected">'+times[i]+'</option>';
					}
					else
					{
						assignedContent += '<option value="'+assignedValues[i]+'">'+times[i]+'</option>';
					}
				}
				jQuery('#p_assigned').empty();
				jQuery('#p_assigned').append(assignedContent);
				
				jQuery('.profile-form').removeClass('form-invisible');
				jQuery('.profile-header').removeClass('form-invisible');
				
				// Обновляем шапку
				jQuery('#cerebro_top_username').text(this.profileObj.full_name);
				
			}
			else
			{
				errorMessage(msgAjaxError);
				this.hideProfile();
			}
		}
	}
	else
	{
		// Этого по идее вообще не может быть, но на всякий случай проверим
		errorMessage(msgAjaxError);
		this.hideProfile();
	}
};

/**
* Скрываем профиль
*/
PageProfile.prototype.hideProfile = function ()
{
	jQuery('.logon-form').removeClass('form-invisible');
	jQuery('.profile-form').addClass('form-invisible');
	jQuery('#fpf_username').val('');
	jQuery('#fpf_password').val('');
	jQuery.cookie('logon', '', {path: '/'});
	
	// скрываем заголовок и форму платежей
	printLog('hide');
	jQuery('.profile-header').addClass('form-invisible');
	jQuery('.payment-form').addClass('form-invisible');
	
};

/**
* Показываем форму восстановления пароля 
*/
PageProfile.prototype.forgotPassword = function()
{
	jQuery('.logon-form').addClass('form-invisible');
	jQuery('#lf_username').val('');
	jQuery('#lf_password').val('');
	jQuery('.forgot-password-form').removeClass('form-invisible');
};

/**
* Показываем форму смены пароля 
*/
PageProfile.prototype.changePassword = function()
{
	jQuery('.change-password-form').removeClass('form-invisible');
	jQuery('#сpf_new_password').val('');
};

/**
* Аутентификация 
*/
PageProfile.prototype.login = function()
{
	hideErrorMessages();
	
	if(jQuery('#lf_username').val() == '' || jQuery('#lf_password').val() == '')
	{
		errorMessage(msgEmptyLoginPassword, 'login_failed_msg');
		return;
	}
		
	var param = '';
	param += 'login='+jQuery('#lf_username').val().toLowerCase();
	param += '&password='+jQuery('#lf_password').val();
	
	var answer = getAll__('user_login', param);
	if(answer.length > 0)
	{
		// Проверяем статус ответа сервера
		if(answer[0].code.toUpperCase() == 'SECURITY ERROR')
		{// Ошибка безопасности
			//errorMessage(answer[0].message);
			errorMessage(msgLoginFailed, 'login_failed_msg');
		}
		else if(answer[0].code.toUpperCase() == 'AJAX ERROR')
		{// Ошибка Ajax
			errorMessage(msgAjaxError);
		}
		else if(answer[0].code.toUpperCase() != 'OK')
		{// Непонятная ошибка
			errorMessage('Unrecognized error. '+answer[0].code+': '+answer[0].message);
		}
		else
		{
			jQuery('.logon-form').addClass('form-invisible');
			jQuery('#lf_username').val('');
			jQuery('#lf_password').val('');
			this.showProfile();
			
			// Обновляем шапку
			jQuery('.top-logon-notlogged').addClass('form-invisible');
			jQuery('.top-logon-logged').removeClass('form-invisible');
		}
	}
};

PageProfile.prototype.doPayment = function()
{
	// Очишаем форму и скрываем ненужные элементы
	jQuery('#s_payment_universe').removeClass('form-invisible');
	jQuery('#s_payment_method').addClass('form-invisible');
	jQuery('#s_payment_payments').addClass('form-invisible');
	jQuery('#s_payment_tariff').addClass('form-invisible');
	jQuery('#s_payment_dates').addClass('form-invisible');
	jQuery('#s_payment_users').addClass('form-invisible');
	jQuery('#s_payment_client').addClass('form-invisible');
	jQuery('#s_payment_question').addClass('form-invisible');
	jQuery('#s_payment_pay').addClass('form-invisible');
	jQuery('#s_payment_bill').addClass('form-invisible');
	jQuery('#s_payment_back').addClass('form-invisible');
	jQuery('#s_payment_summary').addClass('form-invisible');
	jQuery('#payment_users').removeAttr('disabled');
	
	jQuery('#payment_universe').empty();
	jQuery('#payment_method').empty();
	jQuery('#payment_tariff option').removeAttr('selected');
	jQuery(jQuery('#payment_tariff option')[1]).attr('selected', 'selected');
	jQuery('#hint_users').removeClass('hint-bad').addClass('hint-good');
	jQuery('#hint_users').text(paymentHintUsers[0]);
	
	jQuery('#payment_startdate').val('');
	jQuery('#payment_enddate').text('');
	jQuery('#payment_users').val('');
	jQuery('#payment_bankinfo').val('');
	jQuery('#payment_person').val('');
	jQuery('#payment_phone').val('');
	jQuery('#payment_question').removeAttr('checked');
	jQuery('#payment_next_link').removeAttr('disabled');
	jQuery('#payment_pay_link').attr('disabled', 'disabled');
	jQuery('#payment_bill_link').attr('disabled', 'disabled');
	
	jQuery('#payment_email').val(this.profileObj.email);
	
	// Получаем список вселенных
	var param = '';
	var answer = getAll__('get_universes', param,  new CerebroUniverse);
	//alert(answer);
	//printLog(answer, 'unilist');
	//printLog(paymentChooseUniverse, 'paymentChooseUniverse');
	
	if(answer.length > 0)
	{
		// Проверяем статус ответа сервера
		if(answer[0].code.toUpperCase() == 'SECURITY ERROR')
		{// Ошибка безопасности
			//errorMessage(answer[0].message);
			errorMessage(msgLoginFailed, 'login_failed_msg');
		}
		else if(answer[0].code.toUpperCase() == 'AJAX ERROR')
		{// Ошибка Ajax
			errorMessage(msgAjaxError);
		}
		else if(answer[0].code.toUpperCase() != 'OK')
		{// Непонятная ошибка
			errorMessage('Unrecognized error. '+answer[0].code+': '+answer[0].message);
		}
		else
		{
			//printLog(answer.length, 'answer.length')
			if(answer.length >=2)
			{	
				var universesContent = '';
				for(var i = 1; i<answer.length; i++)
				{
					//printLog(answer[i].name, 'universe');
					if(answer[i].uni_id != 31)
					{
						//universesContent += '<option value="'+answer[i].uni_id+'" '+((i==1)?'selected="selected"':'')+'>'+answer[i].name+'</option>';
						universesContent += '<option value="'+answer[i].uni_id+'">'+answer[i].name+'</option>';
						this.userUniverses.push(answer[i]);
					}
				}
				
				jQuery('#payment_universe').append(universesContent);
				jQuery('#payment_universe option:first').attr('selected', 'selected');
				
				var paymentMethodContent = '';
				for(var i = 0; i<paymentMethod.length; i++)
				{
					paymentMethodContent += '<option value="'+i+'" '+((i==0)?'selected="selected"':'')+'>'+paymentMethod[i]+'</option>';
				}
				jQuery('#payment_method').append(paymentMethodContent);
				
				jQuery('#s_payment_method').removeClass('form-invisible');
				
				jQuery('#s_payment_dates').removeClass('form-invisible');
				jQuery('#s_payment_users').removeClass('form-invisible');
				
				// Первичный платеж или нет
				var curUniId = jQuery('#payment_universe option:selected').val();
				//console.log('this.userUniverses', this.userUniverses);
				var curUniIndex = -1;
				for(var i=0; i<this.userUniverses.length; i++)
				{
					if(curUniId == this.userUniverses[i].uni_id)
					{
						curUniIndex = i;
						break;
					}
				}
				//console.log('curUni', this.userUniverses[curUniIndex]);
				
				if(curUniIndex >= 0)
				{
					var curUni = this.userUniverses[curUniIndex];
					var kolbasesArr = this.userUniverses[curUniIndex].kolbases.split('|');
					
					for(var i=0; i<kolbasesArr.length; i++)
					{
						var kolbasa = kolbasesArr[i].split('#');
						if(kolbasa[0].toLowerCase() == 'private' || kolbasa[0].toLowerCase() == 'studio' || kolbasa[0].toLowerCase() == 'business')
						{
							this.firstPayment = false;
							break;
						}
					}
				}
				
				// TODO Убрать
				//this.firstPayment = true;
				
				if(this.firstPayment == true)
				{// 1
					jQuery('#s_payment_tariff').removeClass('form-invisible');
					jQuery('#payment_startdate').datepicker("option", "minDate", new Date());
				}
				else
				{// not 1
					this.paymentNotFirst();					
				}
				
			}
			else
			{
				errorMessage('No universes. Sorry');
			}
			/*
			var universesContent = '<option value="-1" selected="selected">'+paymentChoose+'</option>';
			for(var i = 1; i<answer.length; i++)
			{
				universesContent += '<option value="'+answer[i].uni_id+'">'+answer[i].name+'</option>';
			}
			
			jQuery('#payment_universe').append(universesContent);
			*/
		}
	}
	else
	{
		// Этого по идее вообще не может быть, но на всякий случай проверим
		errorMessage(msgAjaxError);
		this.hideProfile();
	}
};

PageProfile.prototype.paymentNotFirst = function()
{
	var curUniId = jQuery('#payment_universe option:selected').val();
	var curUniIndex = -1;
	for(var i=0; i<this.userUniverses.length; i++)
	{
		if(curUniId == this.userUniverses[i].uni_id)
		{
			curUniIndex = i;
			break;
		}
	}
	if(curUniIndex != -1)
	{
		jQuery('#s_payment_tariff').addClass('form-invisible');
		jQuery('#s_payment_payments').removeClass('form-invisible');
		var kolbasesArr = this.userUniverses[curUniIndex].kolbases.split('|');
		jQuery('#payment_current_tariff').text(kolbasesArr[0].split('#')[0].toUpperCase());
		
		jQuery('#payment_startdate').datepicker("option", "minDate", new Date());
		
		if(kolbasesArr[0].split('#')[0].toUpperCase() == 'PRIVATE')
		{
			jQuery('#payment_tariff').val('0');
			var kolbasaArr = kolbasesArr[0].split('#');
			var endDate = new Date(kolbasaArr[2]*1000);
			var now = new Date();
			if(endDate > now)
			{
				jQuery('#payment_startdate').datepicker("option", "minDate", endDate);
			}
			else
			{
				jQuery('#payment_startdate').datepicker("option", "minDate", now);
			}
			
		}
		else if(kolbasesArr[0].split('#')[0].toUpperCase() == 'STUDIO')
		{
			jQuery('#payment_tariff').val('1');
		}
		else if(kolbasesArr[0].split('#')[0].toUpperCase() == 'BUSINESS')
		{
			jQuery('#payment_tariff').val('2');
		}
			
		//console.log(jQuery('#payment_tariff option:selected').text());
		
		jQuery('#payment_current_payments').empty();
		for(var i=0; i<kolbasesArr.length; i++)
		{
			var kolbasaArr = kolbasesArr[i].split('#');
			if(kolbasaArr[0].toUpperCase() == 'PRIVATE' || kolbasaArr[0].toUpperCase() == 'STUDIO' || kolbasaArr[0].toUpperCase() == 'BUSINESS')
			{
				var startDate = new Date(kolbasaArr[1]*1000);
				var endDate = new Date(kolbasaArr[2]*1000);
				var now = new Date();
				var logins = kolbasaArr[3];
				
				if(now < endDate)
				{
					var strPayment = '<div>'+dateToStr(startDate)+' - '+dateToStr(endDate)+'  ('+logins+' '+paymentAccountsString+')';
					jQuery('#payment_current_payments').append(strPayment);
				}
			}
		}
		jQuery('#hint_users').text('> 0');
		
	}
	
};

PageProfile.prototype.paymentFormEvent = function(action)
{
	if(action == 1)
	{
		if(jQuery('#payment_method option:selected').val() == (paymentMethod.length-1))
		{
			jQuery('#s_payment_client').removeClass('form-invisible');
		}
		else
		{
			jQuery('#s_payment_client').addClass('form-invisible');
		}
	}
	else if(action == 2)
	{// Выбран тариф
		//printLog(jQuery('#payment_tariff option:selected').val(), 'tariff');
		if(jQuery('#payment_tariff option:selected').val() == 0)
		{// Private
			jQuery('#hint_users').text('');
			jQuery('#payment_users').val('5');
			jQuery('#payment_users').attr('disabled', 'disabled');
			
		}
		else
		{
			
			jQuery('#payment_users').val('');
			jQuery('#payment_users').removeAttr('disabled');
			jQuery('#hint_users').removeClass('hint-bad').addClass('hint-good');
			jQuery('#hint_users').text(paymentHintUsers[jQuery('#payment_tariff option:selected').val()-1]);
		}
		
		var sums = this.paymentFormCalculateSum(jQuery('#payment_currency option:selected').val()); 
		if(sums !== false)
		{
			jQuery('#payment_sum').text(sums[0]+' '+jQuery('#payment_currency option:selected').text());
			jQuery('#payment_econ').text(sums[1]+' '+jQuery('#payment_currency option:selected').text());
			jQuery('#payment_discount').text(sums[2]+' '+jQuery('#payment_currency option:selected').text());
			jQuery('#payment_tobepaid').text(sums[3]+' '+jQuery('#payment_currency option:selected').text());
		}
		else
		{
			jQuery('#payment_sum').text('');
			jQuery('#payment_econ').text('');
			jQuery('#payment_discount').text('');
			jQuery('#payment_tobepaid').text('');
		}
	}
	else if(action == 3)
	{// Выбрали дату или период действия тарифа
		var startDate = jQuery('#payment_startdate').val();
		if(startDate != '')
		{
			var objStartDate = new Date();
			objStartDate.setFullYear(parseInt(startDate.split('.')[2], 10), parseInt(startDate.split('.')[1], 10)-1, parseInt(startDate.split('.')[0], 10));
			
			//printLog(objStartDate, 'start date begin');
			var period =  jQuery('#payment_period').val();
			//printLog(period, 'period');
			//objStartDate.setMonth((parseInt(startDate.split('.')[1], 10)-1) + period);
			objStartDate.setMonth(objStartDate.getMonth() + parseInt(period, 10));
			
			//printLog(objStartDate, 'start date end');
			var endDay = objStartDate.getDate();
			if(endDay.toString().length == 1){endDay = '0'+endDay;}
			var endMonth = parseInt(objStartDate.getMonth(), 10) + 1;
			if(endMonth.toString().length == 1){endMonth = '0'+endMonth;}
			
			jQuery('#payment_enddate').text(endDay+'.'+endMonth+'.'+objStartDate.getFullYear());
		}
		
		var sums = this.paymentFormCalculateSum(jQuery('#payment_currency option:selected').val()); 
		if(sums !== false)
		{
			jQuery('#payment_sum').text(sums[0]+' '+jQuery('#payment_currency option:selected').text());
			jQuery('#payment_econ').text(sums[1]+' '+jQuery('#payment_currency option:selected').text());
			jQuery('#payment_discount').text(sums[2]+' '+jQuery('#payment_currency option:selected').text());
			jQuery('#payment_tobepaid').text(sums[3]+' '+jQuery('#payment_currency option:selected').text());
		}
		else
		{
			jQuery('#payment_sum').text('');
			jQuery('#payment_econ').text('');
			jQuery('#payment_discount').text('');
			jQuery('#payment_tobepaid').text('');
		}
	}
	else if(action == 4)
	{
		//printLog('next button click');
		
		var formValid = true;
		
		// Проверка email
		var correctEmailFlag = (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(jQuery('#payment_email').val());
		if(correctEmailFlag == false)
		{
			formValid = false;
			jQuery('#hint_email').text(paymentHintEmail);
		}
		else
		{
			jQuery('#hint_email').text('');
		}
		
		// Проверка даты начала
		//printLog(jQuery('#payment_startdate').val(), 'startdate');
		if(jQuery('#payment_startdate').val() == '')
		{
			formValid = false;
			jQuery('#hint_startdate').text(paymentHintStartdate);
		}
		else
		{
			jQuery('#hint_startdate').text('');
		}
		
		// Проверка количества пользователей
		var users = parseInt('0'+jQuery('#payment_users').val(), 10);
		//printLog(users, 'users');
		
		if(this.firstPayment == true)
		{
			if(	users == 0 ||
					(jQuery('#payment_tariff').val() == 0 && (users != 5)) ||
					(jQuery('#payment_tariff').val() == 1 && (users < 5)) ||
					(jQuery('#payment_tariff').val() == 2 && (users < 10 || users > 25)) ||
					(jQuery('#payment_tariff').val() == 3 && (users < 25))
				)
				{
					formValid = false;
					jQuery('#hint_users').removeClass('hint-good').addClass('hint-bad');
				}
				else
				{
					jQuery('#hint_users').removeClass('hint-bad').addClass('hint-good');
				}
		}
		else
		{
			if(users == 0)
				{
					formValid = false;
					jQuery('#hint_users').removeClass('hint-good').addClass('hint-bad');
				}
				else
				{
					jQuery('#hint_users').removeClass('hint-bad').addClass('hint-good');
				}
		}
		
		// Проверка заполненности данных о клиенте (в случае банковского перевода)
		//printLog();
		
		if(jQuery('#payment_method').val() == (paymentMethod.length - 1) &&
			(jQuery('#payment_bankinfo').val() == '' ||
			 jQuery('#payment_person').val() == '' ||
			 jQuery('#payment_phone').val() == '')	
		)
		{
			formValid = false;
			jQuery('#hint_client').text(paymentHintClient);
		}
		else
		{
			jQuery('#hint_client').text('');
		}
		
		if(jQuery('#payment_method').val() == (paymentMethod.length - 1) && jQuery('#payment_tariff').val() == 0 )
		{
			formValid = false;
			jQuery('#hint_method').text(paymentHintMethod);
		}
		else
		{
			jQuery('#hint_method').text('');
		}
		
		if(jQuery('#payment_method').val() == 2 && jQuery('#payment_currency').val() == 0 )
		{// Вебмани с баксами
			formValid = false;
			jQuery('#hint_method').text(paymentHintMethodWM);
		}
		else
		{
			jQuery('#hint_method').text('');
		}
			
		
		if(formValid == true)
		{// Показываем summary
			//alert('next');
			jQuery('#ps_universe').text(jQuery('#payment_universe option:selected').text());
			jQuery('#ps_email').text(jQuery('#payment_email').val());
			jQuery('#ps_method').text(jQuery('#payment_method option:selected').text());
			jQuery('#ps_tariff').text(jQuery('#payment_tariff option:selected').text());
			jQuery('#ps_startdate').text(jQuery('#payment_startdate').val());
			jQuery('#ps_enddate').text(jQuery('#payment_enddate').text());
			jQuery('#ps_users').text(jQuery('#payment_users').val());
			
			jQuery('#ps_bankinfo').text(jQuery('#payment_bankinfo').val());
			jQuery('#ps_person').text(jQuery('#payment_person').val());
			jQuery('#ps_phone').text(jQuery('#payment_phone').val());
			
			if(jQuery('#s_payment_client').hasClass('form-invisible'))
			{
				jQuery('#s_ps_client').addClass('form-invisible');
			}
			else
			{
				jQuery('#s_ps_client').removeClass('form-invisible');
			}
			
			
			
			// Расчитываем сумму платежа
			var sums = this.paymentFormCalculateSum(jQuery('#payment_currency option:selected').val()); 
			if(sums !== false)
			{
				jQuery('#ps_sum').text(sums[3]+' '+jQuery('#payment_currency option:selected').text());
				//jQuery('#ps_econ').text(sums[1]+' '+jQuery('#payment_currency option:selected').text());
			}
			
			// Показываем summary
			jQuery('#s_payment_universe').addClass('form-invisible');
			jQuery('#s_payment_method').addClass('form-invisible');
			jQuery('#s_payment_tariff').addClass('form-invisible');
			jQuery('#s_payment_dates').addClass('form-invisible');
			jQuery('#s_payment_users').addClass('form-invisible');
			jQuery('#s_payment_client').addClass('form-invisible');
			jQuery('#s_payment_next').addClass('form-invisible');
			jQuery('#s_payment_sum').addClass('form-invisible');
			
						
			jQuery('#s_payment_summary').removeClass('form-invisible');
			jQuery('#s_payment_question').removeClass('form-invisible');
			jQuery('#s_payment_back').removeClass('form-invisible');
			jQuery('#payment_back_link').removeAttr('disabled');
			

			if(jQuery('#payment_method').val() == (paymentMethod.length - 1))
			{// Банковский перевод
				jQuery('#s_payment_bill').removeClass('form-invisible');
			}
			else
			{
				jQuery('#s_payment_pay').removeClass('form-invisible');
			}
		}
	}
	else if(action == 5)
	{// Возвращаем форму назад
		jQuery('#s_payment_universe').removeClass('form-invisible');
		jQuery('#s_payment_method').removeClass('form-invisible');
		jQuery('#s_payment_tariff').removeClass('form-invisible');
		jQuery('#s_payment_dates').removeClass('form-invisible');
		jQuery('#s_payment_users').removeClass('form-invisible');
		
		if(jQuery('#payment_method').val() == (paymentMethod.length - 1))
		{
			jQuery('#s_payment_client').removeClass('form-invisible');
		}
				
		jQuery('#s_payment_next').removeClass('form-invisible');
		jQuery('#s_payment_sum').removeClass('form-invisible');
					
		jQuery('#s_payment_summary').addClass('form-invisible');
		jQuery('#s_payment_question').addClass('form-invisible');
		jQuery('#s_payment_back').addClass('form-invisible');
		jQuery('#s_payment_bill').addClass('form-invisible');
		jQuery('#s_payment_pay').addClass('form-invisible');
		
		jQuery('#payment_bill_link').attr('disabled', 'disabled');
		jQuery('#payment_pay_link').attr('disabled', 'disabled');
		jQuery('#payment_question').removeAttr('checked');
	}
	
	else if(action == 6)
	{// Активируем кнопку оплаты
		if(jQuery('#payment_question').attr('checked') == true)
		{
			if(jQuery('#payment_method').val() == (paymentMethod.length - 1))
			{// Банковский перевод
				jQuery('#payment_bill_link').removeAttr('disabled');
			}
			else
			{
				jQuery('#payment_pay_link').removeAttr('disabled');
			}
		}
		else
		{
			jQuery('#payment_bill_link').attr('disabled', 'disabled');
			jQuery('#payment_pay_link').attr('disabled', 'disabled');
		}
	}
	else if(action == 7)
	{// Проверяем купон
		if(jQuery('#payment_coupon').val() == '')
		{// Купон пустой
			jQuery('#hint_discount_percent').text('');
			
			// TODO Сделать перерасчет суммы
		}
		else
		{
			var param = '';
			param += 'code='+jQuery('#payment_coupon').val();
			param += '&universe='+jQuery('#payment_universe option:selected').val();
			var result = getAll__('coupon_request', param, new CouponInfo());
			//printLog(result);
			
			if(result.length > 0)
			{
				if(result[0].code.toUpperCase() == 'SECURITY ERROR')
				{// Ошибка безопасности
					errorMessage(msgSecurityError);
				}
				else if(result[0].code.toUpperCase() == 'AJAX ERROR')
				{// Ошибка Ajax
					errorMessage(msgAjaxError);
				}
				else if(result[0].code.toUpperCase() != 'OK')
				{// Непонятная ошибка
					errorMessage(result[0].code+': '+result[0].message);
				}
				else
				{// Успех
					if(result[1].status.toUpperCase() == 'OK')
					{
						jQuery('#hint_discount_percent').text(result[1].discount).addClass('hint-good').removeClass('hint-bad'); 
					}
					else
					{
						jQuery('#hint_discount_percent').text(result[1].status).addClass('hint-bad').removeClass('hint-good');
					}
				}
			}
			else
			{// Этого по идее вообще не может быть, но на всякий случай проверим
				errorMessage(msgAjaxError);
			}
		}
	}
	else if(action == 8)
	{
		// TODO Убрать
		//return;
		
		//console.log('uni change');
		this.firstPayment = true;
		// Первичный платеж или нет
		var curUniId = jQuery('#payment_universe option:selected').val();
		//console.log('this.userUniverses', this.userUniverses);
		var curUniIndex = -1;
		for(var i=0; i<this.userUniverses.length; i++)
		{
			if(curUniId == this.userUniverses[i].uni_id)
			{
				curUniIndex = i;
				break;
			}
		}
		//console.log('curUni', this.userUniverses[curUniIndex]);
		
		if(curUniIndex >= 0)
		{
			var curUni = this.userUniverses[curUniIndex];
			var kolbasesArr = this.userUniverses[curUniIndex].kolbases.split('|');
			
			for(var i=0; i<kolbasesArr.length; i++)
			{
				var kolbasa = kolbasesArr[i].split('#');
				if(kolbasa[0].toLowerCase() == 'private' || kolbasa[0].toLowerCase() == 'studio' || kolbasa[0].toLowerCase() == 'business')
				{
					this.firstPayment = false;
					break;
				}
			}
		}
		
		if(this.firstPayment == true)
		{// 1
			jQuery('#s_payment_tariff').removeClass('form-invisible');
			jQuery('#s_payment_payments').addClass('form-invisible');
		}
		else
		{// not 1
			this.paymentNotFirst();
			//jQuery('#s_payment_tariff').addClass('form-invisible');
			//jQuery('#s_payment_payments').removeClass('form-invisible');
		}
	}
};

PageProfile.prototype.paymentFormCalculateSum = function(currency)
{
	// Проверка количества пользователей
	var usersValid = true;
	var users = parseInt('0'+jQuery('#payment_users').val(), 10);
	
	if(	users == 0 ||
		(jQuery('#payment_tariff').val() == 0 && (users != 5)) ||
		(jQuery('#payment_tariff').val() == 1 && (users < 5)) ||
		(jQuery('#payment_tariff').val() == 2 && (users < 10 || users > 25)) ||
		(jQuery('#payment_tariff').val() == 3 && (users < 25))
	)
	{
		usersValid = false;
	}
	
	if(this.firstPayment == false && users != 0)
	{
		usersValid = true;
	}
	
	if(usersValid == true)
	{
		var totalSums = new Array();
		// Расчитываем сумму платежа и скидку
		var sum = 0;
		var econ = 0;
		var discount = 0;
		var topaid = 0;
		
		var tariff = jQuery('#payment_tariff option:selected').val();

		var period = jQuery('#payment_period').val();
		var users  = jQuery('#payment_users').val();
		
		if(currency == 0)
		{	
			if(tariff == 0)
			{//Private
				var sums = new Array(0,35,0,99,0,0,189,0,0,0,0,0,350);
				sum = sums[period];
				econ = (sums[1]*period) - sum;
			}
			else if(tariff == 1)
			{// Studio
				var sumsPerAccount = new Array(0,25,0,70,0,0,130,0,0,0,0,0,250);
				sum = users*sumsPerAccount[period];
				econ = (users*sumsPerAccount[1]*period) - sum;
			}
			else if(tariff == 2)
			{// Business
				var sumsPerAccount = new Array(0,45,0,130,0,0,240,0,0,0,0,0,450);
				sum = (this.firstPayment == true?1000:0) + users*sumsPerAccount[period];
				econ = (this.firstPayment == true?1000:0) + (users*sumsPerAccount[1]*period) - sum;
			}
		}
		else if(currency == 1)
		{
			if(tariff == 0)
			{//Private
				var sums = new Array(0,990,0,2845,0,0,5390,0,0,0,0,0,9900);
				sum = sums[period];
				econ = (sums[1]*period) - sum;
			}
			else if(tariff == 1)
			{// Studio
				var sumsPerAccount = new Array(0,750,0,2150,0,0,4050,0,0,0,0,0,7500);
				sum = users*sumsPerAccount[period];
				econ = (users*sumsPerAccount[1]*period) - sum;
			}
			else if(tariff == 2)
			{// Business
				var sumsPerAccount = new Array(0,1350,0,3850,0,0,7300,0,0,0,0,0,13500);
				sum = (this.firstPayment == true?30000:0) + users*sumsPerAccount[period];
				econ = (this.firstPayment == true?30000:0) + (users*sumsPerAccount[1]*period) - sum;
			}
		}
				
		totalSums.push(sum);
		totalSums.push(econ);
		
		if(parseInt(jQuery('#hint_discount_percent').text(), 10) > 0)
		{
			discount = parseInt(sum*parseInt(jQuery('#hint_discount_percent').text())/100, 10);
			topaid = sum-discount;
		}
		else
		{
			discount = 0;
			topaid = sum;
		}
		totalSums.push(discount);
		totalSums.push(topaid);
		
		//printLog(totalSums, 'calculating sum');
		
		
		return totalSums;
	}
	
	return false;
};

PageProfile.prototype.paymentProcess = function(action)
{
	if(action == 1)
	{// Высылаем счет
		//printLog(this.profileObj, 'profile');
		var param = '';
		param += 'usid='+this.profileObj['user_id'];
		param += '&universe='+jQuery('#payment_universe option:selected').val();
		param += '&email='+jQuery('#ps_email').text();
		param += '&rate='+jQuery('#ps_tariff').text();
		param += '&startdate='+jQuery('#ps_startdate').text();
		param += '&enddate='+jQuery('#ps_enddate').text();
		param += '&period='+jQuery('#payment_period option:selected').val();
		param += '&users='+jQuery('#ps_users').text();
		param += '&bank='+jQuery('#ps_bankinfo').text();
		param += '&person='+jQuery('#ps_person').text();
		param += '&phone='+jQuery('#ps_phone').text();
		param += '&total='+parseInt(jQuery('#ps_sum').text());
		param += '&username='+this.profileObj['full_name'];
		param += '&universename='+jQuery('#payment_universe option:selected').text();
		param += '&lang='+this.profileObj['lang_id'];
		param += '&currency='+jQuery('#payment_currency option:selected').val();
		param += '&coupon='+jQuery('#payment_coupon').val();
		
		var result = getAll__('invoice_request', param);
		
		if(result.length > 0)
		{
			if(result[0].code.toUpperCase() == 'SECURITY ERROR')
			{// Ошибка безопасности
				errorMessage(msgSecurityError);
			}
			else if(result[0].code.toUpperCase() == 'AJAX ERROR')
			{// Ошибка Ajax
				errorMessage(msgAjaxError);
			}
			else if(result[0].code.toUpperCase() != 'OK')
			{// Непонятная ошибка
				errorMessage(result[0].code+': '+result[0].message);
			}
			else
			{// Успех
				location.href = paymentResultPage;
				//printLog(result);
			}
		}
		else
		{// Этого по идее вообще не может быть, но на всякий случай проверим
			errorMessage(msgAjaxError);
		}
	}
	else if(action == 2)
	{// Переброс на хронопей
		//printLog('Перенаправление на хронопей');
		
		
		var products = new Array('005486-0002-0001', '005486-0001-0002');
		//var products = new Array('005785-0001-0001');
		
		// FIXME Включить в нормальном режиме
		jQuery('#cp_product_price').val(parseFloat(jQuery('#ps_sum').text()).toFixed(2));
		// А это убрать
		//jQuery('#cp_product_price').val('1.00');
		
		
		jQuery('#cp_product_id').val(products[jQuery('#payment_currency option:selected').val()]);
		//jQuery('#cp_product_id').val(products[0]);
		//alert(jQuery('#cp_product_id').val());
		
		if(jQuery('#payment_method option:selected').val() == 0)
		{// Credit card
			jQuery('#cp_payment_type').val('1');
		}
		else if(jQuery('#payment_method option:selected').val() == 1)
		{// ЯД
			jQuery('#cp_payment_type').val('16');
		}
		else if(jQuery('#payment_method option:selected').val() == 2)
		{// WM
			jQuery('#cp_payment_type').val('15');
		}
		
		// Заполняем справку по платежу
		var cs1 = '';
		cs1 += this.profileObj['user_id'] + '|';
		cs1 += jQuery('#payment_universe option:selected').val() + '|';
		
		var cs2 = '';
		cs2 += this.profileObj['full_name'] + '|';
		cs2 += jQuery('#payment_universe option:selected').text() + '|';
		cs2 += jQuery('#ps_tariff').text() + '|';
		cs2 += jQuery('#payment_period option:selected').val() + '|';
		cs2 += jQuery('#ps_users').text() + '|';
		cs2 += jQuery('#ps_startdate').text() + '|';
		cs2 += jQuery('#ps_enddate').text() + '|';

		var cs3 = jQuery('#payment_coupon').val();
		jQuery('#cp_cs1').val(cs1);
		jQuery('#cp_cs2').val(cs2);
		jQuery('#cp_cs3').val(cs3);
		
		var param = '';
		param += 'usid='+this.profileObj['user_id'];
		param += '&rate='+jQuery('#ps_tariff').text();
		param += '&period='+jQuery('#payment_period option:selected').val();
		param += '&users='+jQuery('#ps_users').text();
		param += '&total='+jQuery('#cp_product_price').val();
		param += '&pid='+jQuery('#cp_product_id').val();
		param += '&currency='+jQuery('#payment_currency option:selected').val();
		param += '&coupon='+jQuery('#payment_coupon').val();
		param += '&uniid='+jQuery('#payment_universe option:selected').val();
		
		var result = getAll__('get_chronohash', param, new CerebroChronohash());
		//printLog(result, 'result');
		//return;
		
		if(result.length > 0)
		{
			if(result[0].code.toUpperCase() == 'SECURITY ERROR')
			{// Ошибка безопасности
				errorMessage(msgSecurityError);
			}
			else if(result[0].code.toUpperCase() == 'AJAX ERROR')
			{// Ошибка Ajax
				errorMessage(msgAjaxError);
			}
			else if(result[0].code.toUpperCase() != 'OK')
			{// Непонятная ошибка
				errorMessage(result[0].code+': '+result[0].message);
			}
			else
			{// Успех
				jQuery('#cp_sign').val(result[1].chronohash);
				/*
				printLog(jQuery('#cp_product_id').val(), 'pid');
				printLog(jQuery('#cp_product_price').val(), 'price');
				printLog(jQuery('#cp_sign').val(), 'sign');
				printLog(jQuery('#cp_cs1').val(), 'cp_cs1');
				printLog(jQuery('#cp_cs2').val(), 'cp_cs2');
				printLog(jQuery('#cp_cs3').val(), 'cp_cs3');
				printLog(jQuery('#cp_payment_type').val(), 'payment_type');
				*/
				
				jQuery('#cp_payment_form').submit();
			}
		}
		else
		{// Этого по идее вообще не может быть, но на всякий случай проверим
			errorMessage(msgAjaxError);
		}
	}
};

PageProfile.prototype.showPartnersPage = function()
{
	var param = '';
	var result = getAll__('get_agents', param, new CerebroAgent());
	//printLog(result, 'get_agents');
	if(result.length > 0)
	{
		if(result[0].code.toUpperCase() == 'SECURITY ERROR')
		{// Ошибка безопасности
			errorMessage(msgSecurityError);
		}
		else if(result[0].code.toUpperCase() == 'AJAX ERROR')
		{// Ошибка Ajax
			errorMessage(msgAjaxError);
		}
		else if(result[0].code.toUpperCase() != 'OK')
		{// Непонятная ошибка
			errorMessage(result[0].code+': '+result[0].message);
		}
		else
		{// Успех
			if(result.length == 1)
			{// На юзера еще не зарегистрировано агентов
				jQuery('#partners_registration').removeClass('form-invisible');
			}
			else
			{// Агенты есть
				//printLog(result);
				for(var i=1; i<=(result.length<=3?result.length-1:2); i++)
				{
					if(!(result[i].flags&2))
					{// баннеры
						if(result[i].flags&1)
						{// approved
							jQuery('#wp_status').text(partnerStatusGood);
							jQuery('#wp_status').addClass('hint-good');
						}
						else
						{
							jQuery('#wp_status').text(partnerStatusBad);
							jQuery('#wp_status').addClass('hint-bad');
						}
						
						jQuery('#wp_id').text(result[i].uid);
						jQuery('#wp_partner_percent').text(result[i].agent_percent+'%');
						jQuery('#wp_discount').text(result[i].customer_percent+'%');
						
						jQuery('#web_partner').removeClass('form-invisible');
						jQuery('#partner_stats').removeClass('form-invisible');
					}
					else
					{// купоны
						if(result[i].flags&1)
						{// approved
							jQuery('#pp_status').text(partnerStatusGood);
							jQuery('#pp_status').addClass('hint-good');
							
							jQuery('#pp_generate_coupons_link').removeAttr('disabled');
						}
						else
						{
							jQuery('#pp_status').text(partnerStatusBad);
							jQuery('#pp_status').addClass('hint-bad');
						}
						jQuery('#pp_agent_id').val(result[i].uid);
						jQuery('#pp_partner_percent').text(result[i].agent_percent+'%');
						jQuery('#pp_discount').text(result[i].customer_percent+'%');
						
						jQuery('#privileged_partner').removeClass('form-invisible');
						jQuery('#partner_stats').removeClass('form-invisible');
					}
				}
			}
		}
	}
	else
	{// Этого по идее вообще не может быть, но на всякий случай проверим
		errorMessage(msgAjaxError);
	}
};

PageProfile.prototype.partnersFormEvent = function(action)
{
	if(typeof action == 'undefined')
	{action=0;}
	
	if(action == 1)
	{// Активируем кнопку регистрации
		if(jQuery('#partners_question').attr('checked') == true)
		{
			jQuery('#partners_registration_link').removeAttr('disabled');
		}
		else
		{
			jQuery('#partners_registration_link').attr('disabled', 'disabled');
		}
	}
	else if(action == 2)
	{// Выполняем регистрацию партнера
		jQuery('#hint_partners_how').text('');
		
		if(jQuery('#partners_how').val() == '')
		{
			jQuery('#hint_partners_how').text(partnersHintEmptyField);
		}
		else if(jQuery('#p_phone').val() == '')
		{
			jQuery('#hint_partners_how').text(partnersHintEmptyPhone);
		}
		else
		{
			var param = 'userMessage='+jQuery('#partners_how').val();
			var result = getAll__('register_agents', param, new CerebroAgent());
			
			if(result.length > 0)
			{
				if(result[0].code.toUpperCase() == 'SECURITY ERROR')
				{// Ошибка безопасности
					errorMessage(msgSecurityError);
				}
				else if(result[0].code.toUpperCase() == 'AJAX ERROR')
				{// Ошибка Ajax
					errorMessage(msgAjaxError);
				}
				else if(result[0].code.toUpperCase() != 'OK')
				{// Непонятная ошибка
					errorMessage(result[0].code+': '+result[0].message);
				}
				else
				{// Успех
					jQuery('#partners_registration').addClass('form-invisible');
					this.showPartnersPage();
				}
			}
			else
			{// Этого по идее вообще не может быть, но на всякий случай проверим
				errorMessage(msgAjaxError);
			}
		}
	}
	else if(action == 3)
	{
		jQuery('#hint_pp_count').text('');
		
		if(jQuery('#pp_coupons_count').val() == '' || parseInt(jQuery('#pp_coupons_count').val(), 10) < 1)
		{
			jQuery('#hint_pp_count').text(partnersHintEmptyField);
		}
		else
		{
			var param = 'agent='+jQuery('#pp_agent_id').val();
			param += '&count='+parseInt(jQuery('#pp_coupons_count').val(), 10);
			
			var result = getAll__('generate_pcoupons', param, new Coupon());
			printLog(result);
			
			if(result.length > 0)
			{
				if(result[0].code.toUpperCase() == 'SECURITY ERROR')
				{// Ошибка безопасности
					errorMessage(msgSecurityError);
				}
				else if(result[0].code.toUpperCase() == 'AJAX ERROR')
				{// Ошибка Ajax
					errorMessage(msgAjaxError);
				}
				else if(result[0].code.toUpperCase() != 'OK')
				{// Непонятная ошибка
					errorMessage(result[0].code+': '+result[0].message);
				}
				else
				{// Успех
					
					jQuery('#pp_coupons').text('');
					var couponsList = '';
					
					for(var i=1; i<result.length; i++)
					{
						couponsList += result[i].code+'\n';
					}
					jQuery('#pp_coupons').text(couponsList);
					jQuery('#pp_coupons_list').removeClass('form-invisible');
				}
			}
			else
			{// Этого по идее вообще не может быть, но на всякий случай проверим
				errorMessage(msgAjaxError);
			}
		}
	}
};
