// Dialogs
$(function dialog() {
	// Common
	$(".bg, .close").bind('click', function(event) {
		$(".bg").hide();
		$(".dialog").hide();
	});
	$(document).bind('keydown', function (event) {
		if (event.keyCode == 27) {
			$(".bg").hide();
			$(".dialog").hide();
			$("#code_block textarea").hide();
		}
	});
	
	// SignIn
	$(".enter").bind('click', function(event) {
		event.preventDefault();
		$(".bg").show();
		$("#signin").show();
		$("#login").focus();
		event.stopPropagation();
	});
	$('.site form input[type="submit"]').bind('click', function(event) {
		event.preventDefault();
var form = $('.site form')
form.find('input').removeClass('error')
var inp = form.find('input[value=""]:not(input[type="hidden"])')
if(inp.length) {
 	   inp.addClass('error')
} else {
form.get(0).submit();
}
		event.stopPropagation();
	});

	$("#openid").bind('click', function(event) {
		event.preventDefault();
		$(".dialog li a").removeClass("sel");
		$(this).addClass("sel");
		$(".site").hide();
		$("#open_container_lj").hide();
		$("#open_container_yandex").hide();
		$("#open_container").show();
		$(".openid-form").focus();
		event.stopPropagation();
	});
	$('div#open_container form input[type="submit"]').bind('click', function(event) {
		event.preventDefault();
var form = $('div#open_container form')
form.find('input').removeClass('error')
var inp = form.find('input[value=""]:not(input[type="hidden"])')
if(inp.length) {
 	   inp.addClass('error')
} else {
form.get(0).submit();
}
		event.stopPropagation();
	});

	$("#livejournal").bind('click', function(event) {
		event.preventDefault();
		$(".dialog li a").removeClass("sel");
		$(this).addClass("sel");
		$(".site").hide();
		$("#open_container").hide();
		$("#open_container_yandex").hide();
		$("#open_container_lj").show();
		$(".openid-form").focus();
		event.stopPropagation();
	});
	$('div#open_container_lj form input[type="submit"]').bind('click', function(event) {
		event.preventDefault();
var form = $('div#open_container_lj form')
form.find('input').removeClass('error')
var inp = form.find('input[value=""]:not(input[type="hidden"])')
if(inp.length) {
 	   inp.addClass('error')
} else {
form.get(0).submit();
}
		event.stopPropagation();
	});

	$("#yandex").bind('click', function(event) {
		event.preventDefault();
		$(".dialog li a").removeClass("sel");
		$(this).addClass("sel");
		$(".site").hide();
		$("#open_container_lj").hide();
		$("#open_container").hide();
		$("#open_container_yandex").show();
		$(".openid-form").focus();
		event.stopPropagation();
	});
	$('div#open_container_yandex form input[type="submit"]').bind('click', function(event) {
		event.preventDefault();
var form = $('div#open_container_yandex form')
form.find('input').removeClass('error')
var inp = form.find('input[value=""]:not(input[type="hidden"])')
if(inp.length) {
 	   inp.addClass('error')
} else {
form.get(0).submit();
}
		event.stopPropagation();
	});
	$("#site").bind('click', function(event) {
		event.preventDefault();
		$(".dialog li a").removeClass("sel");
		$(this).addClass("sel");
		$(".site").show();
		$("#open_container").hide();
		$("#open_container_lj").hide();
		$("#open_container_yandex").hide();
		$("#login").focus();
		event.stopPropagation();
	});
	
	// Reg
	$(".reg_button").bind('click', function(event) {
		event.preventDefault();
		$(".reg-exit").hide();
		$(".reg-fields").show();
		$(".bg").show();
		$("#reg").show();
		$("#user_login").focus();
		event.stopPropagation();
	});
	$("#reg_exit").bind('click', function(event) {
	  event.preventDefault();
	  var form = $('#reg')
var loginf = $(form).find('input[name="username"]');
var p1f = $(form).find('input[name="password"]');
var p2f = $(form).find('input[name="pass_verify"]');
var emailf = $(form).find('input[name="email"]');
var inp = form.find('input[value=""]:not(input[type="hidden"])')
form.find('input').removeClass('error')
$('div.reg-fields > div.reg-forms > span').html('')

//email
var email_re = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i
var email_v = email_re.test(emailf.val());
if(!email_v) {
 emailf.addClass('error');
 $('div.reg-fields > div.reg-forms').eq(3).find('span').html('Некорректный email')
}

//passwords
var pass_v1 = p1f.val().length>=3 && p1f.val().length<=16
var pass_v2 = (p1f.val() == p2f.val())
if(!pass_v1) {
 p1f.addClass('error');
 $('div.reg-fields > div.reg-forms').eq(1).find('span').html('Некорректный пароль')
}
if(!pass_v2) {
 p2f.addClass('error');
 $('div.reg-fields > div.reg-forms').eq(2).find('span').html('Значения обоих полей с паролями должны совпадать.')
}

//login
var login_re = /^([\w-\s]+$)/i
var login_v = login_re.test(loginf.val()) && loginf.val().length >= 3 && loginf.val().length <= 16;
if(!login_v) {
 loginf.addClass('error');
 //error.html('Некорректный Логин')
}



	  if(inp.length || !email_v || !login_v || !pass_v1 || !pass_v2) {
 	   inp.addClass('error')
 	  } else {
             $(form).append("<input type='hidden' name='hint' value='" + Math.random() + "'/>");
             $(form).append("<input type='hidden' name='nickname' value='" + $(form).find('input[name="username"]').val() + "'/>");
$('#reg-preloader').show();
$("#reg_exit").val('Подождите...').attr('disabled', 'disabled')
             jQuery.post($(form).attr('action'), $(form).serializeArray(),
             function(data, textStatus) {
$('#reg-preloader').hide()
$("#reg_exit").val('Зарегистрироваться').attr('disabled', '')
                if(data) {
                  $('div.reg-fields > div.reg-forms:first > span').html('Этот логин уже занят') //data
                  loginf.addClass('error');
                } else {
		  $(".reg-fields").hide();
		  $(".reg-exit").show();
		  event.stopPropagation();
                }
	      }, "html");
  	  }

	});
	
	// Recover Password
	$("#pass_recover_button").bind('click', function(event) {
		event.preventDefault();
		$("#pass_recover_inputs").show();
		$("#pass_recover_sent").hide();
		$("#pass_recover_text").focus();
		$("#signin").hide();
		$("#pass_recover").show();
		event.stopPropagation();
	});
	$("#pass_recover_submit").bind('click', function(event) {
		event.preventDefault();

var form = $('#pass_recover')
form.find('input').removeClass('error')
var inp = form.find('input[value=""]:not(input[type="hidden"])')
if(inp.length) {
 	   inp.addClass('error')
} else {
             jQuery.post($(form).attr('action'), $(form).serializeArray(),
             function(data, textStatus) {
		$("#pass_recover_inputs").hide();
		$("#pass_recover_sent").show();
                event.stopPropagation();
	      }, "html");
}


		event.stopPropagation();
	});

})

$(window).bind('load', function(event) {
	$(".bg").css({ opacity:"0.9" });
});

// Code
$(function code() {
	$("#code_block a").bind('click', function(event) {
		event.preventDefault();
		if ( $("#code_block textarea").css("display") == "none" ) {
			$("#code_block textarea").show().focus();
		} else {
			$("#code_block textarea").hide();
		}
		event.stopPropagation();
	});
})

// Lightbox
$(function() {
	$('a.lightbox').lightBox();
});

// Profile
$(function profiletabs() {
	$("#p-entries").bind('click', function(event) {
		event.preventDefault();
		$("#profile-tabs a").removeClass("active");
		$(this).addClass("active");
		$("#profile-recent-entries").show();
		$("#profile-recent-comments").hide();
		$("#profile-favorite").hide();
		event.stopPropagation();
	});
	$("#p-comments").bind('click', function(event) {
		event.preventDefault();
		$("#profile-tabs a").removeClass("active");
		$(this).addClass("active");
		$("#profile-recent-entries").hide();
		$("#profile-recent-comments").show();
		$("#profile-favorite").hide();
		event.stopPropagation();
	});
	$("#p-favorite").bind('click', function(event) {
		event.preventDefault();
		$("#profile-tabs a").removeClass("active");
		$(this).addClass("active");
		$("#profile-recent-entries").hide();
		$("#profile-recent-comments").hide();
		$("#profile-favorite").show();
		event.stopPropagation();
	});
});