$(document).ready(function(){
	var reg_name = $("#register-name"),
		reg_email = $("#register-email"),
		reg_password = $("#register-password"),
		login_email = $("#login-email"),
		login_password = $("#login-password"),
		allFields = $([]).add(reg_name).add(reg_email).add(reg_password).add(login_email).add(login_password);
	var $register_popup = $("#register-popup");
	var	$login_popup = $("#login-popup");

	function checkRegexp(o,regexp) {
		if ( !( regexp.test( o.val() ) ) ) {
			o.addClass('ui-state-error').focus();
			return false;
		} else {
			return true;
		}
	}
	
	$('.login-button').click(function(){
		if(!$login_popup.is(':animated') && !$register_popup.is(':animated')){
			if($login_popup.is(':visible')){
				$login_popup.find('.field input').removeClass('ui-state-error').val('');
				$login_popup.find('.messages').html('');
				$login_popup.slideUp(100);
			} else {
				if($register_popup.is(':visible')){
					$register_popup.slideUp(100).find('.field input').removeClass('ui-state-error').val('');
				}
				$login_popup.slideDown(100).find('input:first').focus();
			}
		}
		return false;
	});
	
	$('.register-button').click(function(){
		if(!$login_popup.is(':animated') && !$register_popup.is(':animated')){
		if($register_popup.is(':visible')){
			$register_popup.find('.field input').removeClass('ui-state-error').val('');
			$register_popup.find('.messages').html('');
			$register_popup.slideUp(100);
		} else {
			if($login_popup.is(':visible')){
				$login_popup.slideUp(100).find('.field input').removeClass('ui-state-error').val('');
			}
			$register_popup.slideDown(100).find('input:first').focus();
		}
		}
		return false;
	});
	
	$('#login-cansel').click(function(){
		$login_popup.slideUp(100)
		$login_popup.find('.field input').removeClass('ui-state-error').val('');
		$login_popup.find('.messages').html('');
		return false;
	});
	
	$('#register-cansel').click(function(){
		$register_popup.slideUp(100);
		$register_popup.find('.field input').removeClass('ui-state-error').val('');
		$register_popup.find('.messages').html('');
		return false;
	});
	
	$('#login-form').submit(function(){
		var bValid = true;
		allFields.removeClass('ui-state-error');

		bValid = checkRegexp(login_password,/^([0-9a-zA-Z])+$/);
		bValid = checkRegexp(login_email,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);

		if (bValid) {
			$.post("/user/login", $("#login-form").serialize(), function(data){
				var oAuto = eval('(' + data + ')');
				if(oAuto['status']){
					$("#login-popup").css('width', 360).html('Рады видеть вас снова!');
					$("#settings-links").html(oAuto['panel']).addClass('visible');
					$('#login').removeClass('visible');
					$('.comment-form').addClass('visible').next('div').remove();
					$('#add-ticket').find('a').removeAttr('onclick');
					
					setTimeout(function(){
						$("#login-popup").slideUp('fast');
					}, 1500)
				} else {
					$("#login-popup").find('.messages').html(oAuto['message']);
				}
			});
		}
		return false;
	});
	
	$('#register-form').submit(function(){
		var bValid = true;
		allFields.removeClass('ui-state-error');

		bValid = checkRegexp(reg_name,/^[a-z]([0-9a-z_])+$/i);
		bValid = checkRegexp(reg_password,/^([0-9a-zA-Z])+$/);
		bValid = checkRegexp(reg_email,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
		
		if (bValid) {
			$.post("/user/register", $("#register-form").serialize(), function(data){
				var oAuto = eval('(' + data + ')');
				if(oAuto['status']){
					$("#register-popup").css('width', 360).html('Отлично! Осталось только проверить свою почту!');
				} else {
					$("#register-popup .messages").html(oAuto['message']);
				}
			});
		}
		return false;
	});
	
	$('#search-terms').focus(function(){
		s = $(this);
		if(s.val() == 'Поиск') s.val('');
	}).blur(function(){
		s = $(this);
		if(!s.val()) s.val('Поиск');
	});
	
	$changeCity = $('#change-city');
	$changeCityWidth = $changeCity.width() + 1;
	$changeCityHeight = $changeCity.height();
	$('#change-city-link').toggle(function(){
		$changeCity.width(260).height(80);
		$('#change-city-form').height(45).show();
		setTimeout(function(){
			$changeCity.find('input:first').focus();
		}, 110)
	},function(){
		$changeCity.width($changeCityWidth).height($changeCityHeight);
		$('#change-city-form').hide();
	});
	
	$('#leave-comment-submit').click(function(){
		$form = $('#leave-comment-form');
		$comment = $form.find('textarea');
		
		if($comment.val() != ''){
			$form.submit();
		} else {
			$comment.addClass('ui-state-error');
		}
		return false;
	});
	
	$('#topic-leave-submit').click(function(){
		$form = $('#leave-topic-comment-form');
		$comment = $form.find('textarea');
		
		if($comment.val() != ''){
			$form.submit();
		} else {
			$comment.addClass('ui-state-error');
		}
		return false;
	});
	
	$('#user-settings-submit').click(function(){
		$('#user-settings-form').submit();
		return false;	
	});
	
	
	$('#advanced-search-terms').focus();
	$('#search-button a').click(function(){
		$('#advanced-search-form').submit();
		return false;	
	});
	
	$('#select-search-categories').click(function(){
		if($('#search-categories').find('input:checked').length == 7){
			$('#search-categories').find('input').removeAttr('checked');
		} else {
			$('#search-categories').find('input').attr('checked', 'checked');
		}
	});
	
	$('#search-categories').find('input:not(:first)').click(function(){
		$('#select-search-categories').removeAttr('checked');
	});
	
	$('#select-add-subscribtions').click(function(){
		if($('#subscriptions-list').find('input:checked').length == 7){
			$('#subscriptions-list').find('input').removeAttr('checked');
		} else {
			$('#subscriptions-list').find('input').attr('checked', 'checked');
		}
	});
	
	$('#subscriptions-list').find('input:not(:first)').click(function(){
		$('#select-add-subscribtions').removeAttr('checked');
	});
	
	$(".city-autocomplete").autocomplete("/search/city_autocomplete", {
		minChars: 2,
		mustMatch: true
	});
});

function openLogin(){
	$popup = $("#login-popup");
	if(!$popup.is(':visible')){
		$('.login-button').click();
	} else {
		$popup.find('input:first').focus();
	}
}