/**
 * Created by JetBrains PhpStorm.
 * User: kkrivlenia
 * Date: 8/26/11
 * Time: 6:15 PM
 * To change this template use File | Settings | File Templates.
 */
$(document).ready(function() {
	// send activation key
	$('#sendActivationBtn').live('click', function() {
		var login = $('#sendActivationLogin').val();
		if (! login) {
			alert('Не задан Логин');
			return false;
		}
		$.ajax({
			url: '/ajax/passport_answer.php',
			type:'POST',
			dataType:'json',
			data: {op: 'send_ak', l: login},
			cache: false,
			success: function(data) {
				if (! data.msg) {
					alert('Ошибка запроса');
				} else {
					alert(data.msg);
				}
			}
		});
		return false;
	});

	$('#sendActivationKey').live('click', function() {
		var login = $('#popup-wrap').find('.login').val();
		if (! login) {
			alert('Не задано Имя пользователя');
			return false;
		}
		$.ajax({
			url: '/ajax/passport_answer.php',
			type:'POST',
			dataType:'json',
			data: {op: 'send_ak', l: login},
			cache: false,
			success: function(data) {
				if (! data.result || ! data.msg) {
					alert('Ошибка запроса');
				} else {
					$('#popup-wrap .authUserNoactive').hide();
					alert(data.msg);
				}
			}
		});
		return false;
	});

	//handler logout click
	$('#logout').live('click',function(){
		$.cookie('spuid',null,{path:'/',domain: $('#site_cookie_path').val()});
		$.cookie('check_auth',null,{path:'/',domain: $('#site_cookie_path').val()});
	});

	//show popup form authorization

	

	$('.showAuthPopup').live('click', function() {
		$('#a_login').click();
		return false;
	})

	$('#a_login').live('click',function() {
		if ($('#popupAuthorization').length) {
			$.popup.showMask();
			$.popup.showActivity();
			$.popup($('#popupAuthorization').clone());
			//fixed bug IE8 for focus input
			setTimeout(function(){$('#popup-wrap input[type="text"]:first').focus()},200)
			formBindTabPress();
			$.popup.hideActivity();
		} else {

			$.popup.showMask();
			$.popup.showActivity();
			var login_as_user = location.search;
			var url = '/ajax/popup_auth.php';
			url += login_as_user;
			$.ajax({
				url: url,
				type:'POST',
				dataType:'html',
				success: function(data) {
					$('#popup-tmp').append(data);
					$.popup($('#popupAuthorization').clone().show());
					$('#popup-wrap input[type="text"]:first').focus();
					formBindTabPress();
					$.popup.hideActivity();
				}
			});


		}
		return false;
	});

	$('#a_login_link').click(function () {
		$('#a_login').click();
		return false;
	});

	//show popup form register

	$('.showRegistrationPopup').live('click', function() {
		$('#a_register').click();
		return false;
	});

	$('#a_register').live('click',function() {
		if ($('#popupRegistration').length) {
			$.popup.showMask();
			$.popup.showActivity();
			$.popup($('#popupRegistration').clone());
			//fixed bug IE8 for focus input
			setTimeout(function(){$('#popup-wrap input[type="text"]:first').focus()},200)
			formBindTabPress();
			$('#popup-wrap .rp_captcha_img').attr('src', $('#popup-wrap .rp_captcha_img').attr('basesrc') + Math.random());
			$.popup.hideActivity();
		} else {

			$.popup.showMask();
			$.popup.showActivity();

			$.ajax({
				url: '/ajax/popup_registration.php',
				type:'POST',
				dataType:'html',
				success: function(data) {
					$('#popup-tmp').append(data);
					$.popup($('#popupRegistration').clone().show());
					$('#popup-wrap input[type="text"]:first').focus();
					formBindTabPress();
					$('#popup-wrap .rp_captcha_img').attr('src', $('#popup-wrap .rp_captcha_img').attr('basesrc') + Math.random());
					$.popup.hideActivity();
				}
			});


		}
		return false;
	});


	//show popup_reminder_step_1


	$('.showReminderPopup').live('click', function() {
		if ($('#reminder_step_1').length) {
			$.popup.showMask();
			$.popup.showActivity();
			$.popup($('#reminder_step_1').clone());
			$('#popup-wrap .rp_captcha_img_reminder').attr('src', $('#popup-wrap .rp_captcha_img_reminder').attr('basesrc') + Math.random());
			//fixed bug IE8 for focus input
			setTimeout(function(){$('#popup-wrap .email_step_1 input[type="text"]:first').focus()},200)
			formBindTabPress();
			$.popup.hideActivity();
		} else {

			$.popup.showMask();
			$.popup.showActivity();

			$.ajax({
				url: '/ajax/popup_reminder_step_1.php',
				type:'POST',
				dataType:'html',
				success: function(data) {


					$('#popup-tmp').append(data);
					$.popup($('#reminder_step_1').clone().show());
					$('#popup-wrap .rp_captcha_img_reminder').attr('src', $('#popup-wrap .rp_captcha_img_reminder').attr('basesrc') + Math.random());
					$('#popup-wrap .email_step_1 input[type="text"]:first').focus();
					formBindTabPress();
					$.popup.hideActivity();
				}
			});


		}
		return false;
	});


	//refresh captcha

	$('#popup-wrap .rp_captcha_refresh').live('click', function() {
		$('#popup-wrap .rp_captcha_img').attr('src', $('#popup-wrap .rp_captcha_img').attr('basesrc') + Math.random());
		$('#popup-wrap .rp_captcha').val('').focus();
		return false;
	});

	$('#popup-wrap .rp_captcha_refresh_reminder').live('click', function() {
		$('#popup-wrap .rp_captcha_img_reminder').attr('src', $('#popup-wrap .rp_captcha_img_reminder').attr('basesrc') + Math.random());
		$('#popup-wrap .rp_captcha_reminder').val('').focus();
		return false;
	});


	//close popup

	$('#popup-wrap .ico-closeGreen,.closeAuthPopups').live('click', function() {
		$.popup.close();
		return false;
	})


	//toggle popup variant reminder password
	$('.a_email').live('click', function() {
		$('#popup-wrap .question_step_1').hide();
		$('#popup-wrap .email_step_1').show();
		$('#popup-wrap .rp_captcha_img_reminder').attr('src', $('#popup-wrap .rp_captcha_img_reminder').attr('basesrc') + Math.random());
		$('#popup-wrap .email_step_1 input[type="text"]:first').focus();
		formBindTabPress();
		return false;
	})
	$('.a_question').live('click', function() {
		$('#popup-wrap .question_step_1').show();
		$('#popup-wrap .email_step_1').hide();
		$('#popup-wrap .question_step_1 input[type="text"]:first').focus();
		formBindTabPress();
		return false;
	})


	// Send form authorization

	$('#popup-wrap .loginFormSubmit').live('click', function() {
		if (checkAndSetInput()) {
			$('#popup-wrap .popubAutorization form').submit();
		}
		return false;
	});


	// Send form register

	$('#popup-wrap .registerPopupBtn').live('click', function() {
		$('.errorMessage').hide();
		var $form = $(this).parents('form');
		var $rows = $('.rows', $form);
		$rows.removeClass('error');
		$('.errorTxt', $form).html('').hide();
		var data = {};
		$('input, select', $form).each(function() {
			var name = $(this).attr('name');
			if ($(this).is(':checkbox')) {
				data[name] = $(this).attr('checked') ? 'on' : '';
			} else {
				var value = $(this).val();
				data[name] = value;
			}
		});
		data.action = 'addUser';
		$.ajax({
			url: $form.attr('action'),
			type: "POST",
			data: data,
			dataType: 'json',
			success: function(response) {
				if (response.result) {
					var login = $form.find('input[name="login"]').val();
					$('#a_login').click();
					if ($('.authAfterRegisterMessage').length == 0) {
						timerPopupShow = setInterval(function() {
							if ($('.authAfterRegisterMessage').length != 0) {
								$('.authAfterRegisterMessage').html('Регистрация завершена успешно. На указанный Вами email-адрес отправлено письмо с инструкцией по активации Вашей учетной записи.').show();
								$('input.login').val(login);
								$('#popup-wrap .login').focus();
								formBindTabPress();
								clearInterval(timerPopupShow);
							}
						}, 500)
					} else {
						$('.authAfterRegisterMessage').html('Регистрация завершена успешно. На указанный Вами email-адрес отправлено письмо с инструкцией по активации Вашей учетной записи.').show();
						$('input.login').val(login);
						$('#popup-wrap .login').focus();
						formBindTabPress();
					}

				} else {
					var searchRow = function(fieldName) {
						var $rows = $('.rows', $form);
						n = $rows.length;
						for (var i = 0; i < n; i ++) {
							if ($('input[name="' + fieldName + '"]', $rows.eq(i)).length) {
								return $rows.eq(i);
							}
						}
						return null;
					};
					$form.find('.registrationErrorInfo').html(response.msg).slideDown();
					if (response.errors) {
						var errors = response.errors;
						for (var i in errors) {
							var $row = searchRow(errors[i].field);
							if ($row) {
								$row.addClass('error');
								$('.errorTxt', $row).html(errors[i].msg).show();
							}


						}
					}
					$('#popup-wrap .rp_captcha_img').attr('src', $('#popup-wrap .rp_captcha_img').attr('basesrc') + Math.random());
					$form.find('input[type=password],input[name=captcha]').val('');
				}
			}
		});
		return false;
	});


	//send form reminder question step 1
	$('.btn_question_reminder_step_1').live('click', function() {
		var form = $(this).parents('form');
		$('.errorMessage').hide();
		var $rows = $('.rows', form);
		$rows.removeClass('error');
		$('.errorTxt', form).html('').hide();
		$.ajax({
			url: form.attr('action'),
			type: "POST",
			data: form.serialize(),
			dataType: 'json',
			success: function(response) {
				if (response.result) {
					$('#popup-wrap .question_step_1').hide();
					var step2 = $('#popup-wrap .question_step_2');
					step2.show();
					$('#popup-wrap .rp_captcha_img_reminder').attr('src', $('#popup-wrap .rp_captcha_img_reminder').attr('basesrc') + Math.random());
					step2.find('input[type="text"]:first').focus();
					formBindTabPress();
					step2.find('.question').html(response.msg);
					step2.find('input[name=login]').val(form.find('input[name=login]').val());
				} else {
					var searchRow = function(fieldName) {
						var $rows = $('.rows', form);
						n = $rows.length;
						for (var i = 0; i < n; i ++) {
							if ($('input[name="' + fieldName + '"]', $rows.eq(i)).length) {
								return $rows.eq(i);
							}
						}
						return null;
					};
					form.find('.riminderQuestionStep1ErrorInfo').html(response.msg).slideDown();
					if (response.errors) {
						var errors = response.errors;
						for (var i in errors) {
							var $row = searchRow(errors[i].field);
							if ($row) {
								$row.addClass('error');
								$('.errorTxt', $row).html(errors[i].msg).show();
							}


						}
					}

				}

			}
		})
		return false;
	})


	//send form reminder question step 2
	$('.btn_question_reminder_step_2').live('click', function() {
		var form = $(this).parents('form');
		$('.errorMessage').hide();
		var $rows = $('.rows', form);
		$rows.removeClass('error');
		$('.errorTxt', form).html('').hide();
		$.ajax({
			url: form.attr('action'),
			type: "POST",
			data: form.serialize(),
			dataType: 'json',
			success: function(response) {
				if (response.result) {
					var login = form.find('input[name="login"]').val();
					var message = response.msg;
					$('#a_login').click();
					if ($('.authAfterRegisterMessage').length == 0) {
						timerPopupShow = setInterval(function() {
							if ($('.authAfterRegisterMessage').length != 0) {
								$('.authAfterRegisterMessage').html(message).show();
								$('input.login').val(login);
								$('#popup-wrap .login').focus();
								formBindTabPress();
								clearInterval(timerPopupShow);
							}
						}, 500)
					} else {
						$('.authAfterRegisterMessage').html(message).show();
						$('input.login').val(login);
						$('#popup-wrap .login').focus();
						formBindTabPress();
					}

				} else {
					var searchRow = function(fieldName) {
						var $rows = $('.rows', form);
						n = $rows.length;
						for (var i = 0; i < n; i ++) {
							if ($('input[name="' + fieldName + '"]', $rows.eq(i)).length) {
								return $rows.eq(i);
							}
						}
						return null;
					};
					form.find('.riminderQuestionStep2ErrorInfo').html(response.msg).slideDown();
					if (response.errors) {
						var errors = response.errors;
						for (var i in errors) {
							var $row = searchRow(errors[i].field);
							if ($row) {
								$row.addClass('error');
								$('.errorTxt', $row).html(errors[i].msg).show();
							}


						}
					}
					form.find('input[type=password],input[name=captcha]').val('');
					$('#popup-wrap .rp_captcha_img_reminder').attr('src', $('#popup-wrap .rp_captcha_img_reminder').attr('basesrc') + Math.random());
				}

			}
		})
		return false;
	})


	//send form reminder question step 2
	$('.btn_email_reminder_step_1').live('click', function() {
		var form = $(this).parents('form');
		$('.errorMessage').hide();
		var $rows = $('.rows', form);
		$rows.removeClass('error');
		$('.errorTxt', form).html('').hide();
		$.ajax({
			url: form.attr('action'),
			type: "POST",
			data: form.serialize(),
			dataType: 'json',
			success: function(response) {
				if (response.result) {
					var message = response.msg;
					$('#a_login').click();
					if ($('.authAfterRegisterMessage').length == 0) {
						timerPopupShow = setInterval(function() {
							if ($('.authAfterRegisterMessage').length != 0) {
								$('.authAfterRegisterMessage').html(message).show();
								$('#popup-wrap .login').focus();
								formBindTabPress();
								clearInterval(timerPopupShow);
							}
						}, 500)
					} else {
						$('.authAfterRegisterMessage').html(message).show();
						$('#popup-wrap .login').focus();
						formBindTabPress();
					}

				} else {
					var searchRow = function(fieldName) {
						var $rows = $('.rows', form);
						n = $rows.length;
						for (var i = 0; i < n; i ++) {
							if ($('input[name="' + fieldName + '"]', $rows.eq(i)).length) {
								return $rows.eq(i);
							}
						}
						return null;
					};
					form.find('.riminderEmailStep1ErrorInfo').html(response.msg).slideDown();
					if (response.errors) {
						var errors = response.errors;
						for (var i in errors) {
							var $row = searchRow(errors[i].field);
							if ($row) {
								$row.addClass('error');
								$('.errorTxt', $row).html(errors[i].msg).show();
							}


						}
					}
					form.find('input[type=password],input[name=captcha]').val('');
					$('#popup-wrap .rp_captcha_img_reminder').attr('src', $('#popup-wrap .rp_captcha_img_reminder').attr('basesrc') + Math.random());
				}

			}
		})
		return false;
	});

	//handle submit form
	$('#popup-wrap form').live('submit', function() {

		if (!$(this).find('.button-style.btn-a a').hasClass('loginFormSubmit')) {
			$(this).find('.button-style.btn-a a').click();
			return false;
		}

	});

	$('#popup-wrap select[name=secret_question]').live('change',function(){
		if($(this).val() == 1) {
			$('#popup-wrap .secret_question').show();
		} else {
			$('#popup-wrap .secret_question').hide();
		}
	})

});

function formBindTabPress() {
	var form = $('#popup-wrap  form .b-body:visible');
	var checkClass = false;
    var inputs = form.find('input[type=text],input[type=password],input[type=checkbox],select,.btn-a a,.btn-b a');
	var size = inputs.size()-1;
	var currentElementFocus = 0;
	form.unbind('keydown');
	form.bind('keydown', function(e) {

		if(e.which == 9) {
			currentElementFocus = inputs.index($(':focus'));
			if (!e.shiftKey) {
				if (currentElementFocus < size) {
					if (inputs.eq(currentElementFocus + 1).is(':visible')) {
						inputs.eq(currentElementFocus + 1).focus();
					} else {
						inputs.eq(currentElementFocus + 2).focus();
					}
				} else {
					inputs.eq(0).focus();
				}
			} else {
				if (currentElementFocus > 0) {
					if (inputs.eq(currentElementFocus - 1).is(':visible')) {
						inputs.eq(currentElementFocus - 1).focus();
					} else {
						inputs.eq(currentElementFocus - 2).focus();
					}
				} else {
					inputs.eq(size).focus();
				}
			}

			e.preventDefault();
		}

		checkClass = !$(':focus').parent().hasClass('btn-b');

		if(form.find('.button-style.btn-a a').hasClass('loginFormSubmit')&&checkClass){
			if(e.which == 13) {
				if (checkAndSetInput()) {
					if($.browser.msie) {
						$('#popup-wrap .loginFormSubmit').click();
					}
				}
			}
		}

	})

}

function checkAndSetInput()
{
	var login_as_user = $('#popup-wrap .login_as_user');
	var login = $('#popup-wrap .login');
	if (login_as_user.length) {
		if (login_as_user.val().trim() == '') {
			$('#popup-wrap .authFailedLoginAs').show();
			return false;
		}
		$('#popup-wrap .authFailedLoginAs').hide();
		var return_path = $('#popup-wrap').find('input[name="return_path"]');
		var return_path_val = return_path.val();
		return_path_val = return_path_val.replace('[user_login]', login_as_user.val());
		return_path_val = return_path_val.replace('[admin_login]', login.val());
		return_path.val(return_path_val);
	}
	return true;
}


recievePassportAnswer = function (answer) {
	if ((answer.message == 'login_success') || (answer.message == 'authorized')) {
		var href = location.search;
		if(href.search(/login_as_user/) != -1) {
			location.href = "/login/";
		} else {
			var $is_remember_me = $('#popup-wrap input[name=is_remember_me]');
			if($is_remember_me.prop('checked')) {
				$.cookie('puid',answer.puid,{expires:$is_remember_me.data('lifetime'),path:'/',domain: $('#site_cookie_path').val()});
				$.cookie('spuid',answer.spuid,{expires:$is_remember_me.data('lifetime'),path:'/',domain: $('#site_cookie_path').val()});
			} else {
				$.cookie('puid',answer.puid,{path:'/',domain: $('#site_cookie_path').val()});
				$.cookie('spuid',answer.spuid,{path:'/',domain: $('#site_cookie_path').val()});
			}

			if (location.pathname == '/activate/') {
				location.replace('/');
			} else {
				location.replace(location.href);
			}
		}
	} else if (answer.message == 'not_used_cookie') {
		$('#popup-wrap .authFailedCookie').show();
		$('#popup-wrap .authAfterRegisterMessage').hide();
		$('#popup-wrap .authFailedMessage').hide();
		$('#popup-wrap .authUserNoactive').hide();
		$('#popup-wrap .authUserIrrNoactive').hide();
	} else if (answer.message == 'user_notactive') {
		$('#popup-wrap .authUserNoactive').show();
		$('#popup-wrap .authFailedMessage').hide();
		$('#popup-wrap .authAfterRegisterMessage').hide();
		$('#popup-wrap .authFailedCookie').hide();
		$('#popup-wrap .authUserIrrNoactive').hide();
	} else if (answer.message == 'user_irr_notactive') {
		$('#popup-wrap .authUserIrrNoactive').show();
		$('#popup-wrap .authFailedMessage').hide();
		$('#popup-wrap .authAfterRegisterMessage').hide();
		$('#popup-wrap .authFailedCookie').hide();
		$('#popup-wrap .authUserNoactive').hide();
	} else {
		$('#popup-wrap .authFailedMessage').show();
		$('#popup-wrap input[name=password]').val('').focus();
		$('#popup-wrap .authAfterRegisterMessage').hide();
		$('#popup-wrap .authFailedCookie').hide();
		$('#popup-wrap .authUserNoactive').hide();
		$('#popup-wrap .authUserIrrNoactive').hide();
	}
}



