function showOpenIDForm(prnt, form) {
	$('form.current', prnt).removeClass('current');
	form.addClass('current');
}

function showError(err, fld) {
	if (typeof err === 'number') {
		var errMsg = errors[err];
	} else if (typeof err === 'string') {
		var errMsg = err;
	}
	if ($('.errNotice', fld).length) {
		$('.errNotice', fld).show();
	} else {
		$(fld).append('<span class="errNotice">'+ errMsg +'<i class="arw" /></span>')
	}
}
function hideError(fld) {
	$('.errNotice', fld).hide();
}
function isValidURL(url) {
	var	reg = /^(https?:\/\/)?([0-9a-z-]+\.)+([0-9a-z-])+\/?/i;
	return reg.test(url);
}
function isValidNick(nick) {
	var reg = /^([a-z0-9_]+)$/i;
	return reg.test(nick);
}
function isValidPasswd(pass) {
	return pass.length < 6 ? false : true;
}
function isValidEmail(email) {
	var reg = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	return reg.test(email);
}
$(function() {
	
	$('#content .notices li')
		.mouseover(function(e) {
			$(this).addClass('hover');
			if (e.stopPropagation) {
				e.stopPropagation();
			} else {
				e.cancelBubble = true;
			}
		})
		.mouseout(function() { $(this).removeClass('hover'); });
	/*$('#content .notices li').hover(
		function() {
			var prnt = $(this).parents('li.notice'); 
			if (prnt.hasClass('hover')) {
				prnt.removeClass('hover');
			}
			$(this).addClass('hover');
		},
		function() {
			$(this).removeClass('hover');
		}
	);*/
	
	$('#nav_login a').click(
		function() {
			var prnt = $(this).parent(),
				header = $('#header'),
				form = $('#login-form');
			prnt.toggleClass('open');
			form.toggle();
			$('i.close', form).click(
				function() {
					form.hide();
					prnt.removeClass('open');
				}
			);
			var topIndent = prnt.offset().top - header.offset().top  + prnt.outerHeight(); 
				//leftIndent = prnt.offset().left - header.offset().left - (form[0].offsetWidth/2) + (prnt[0].offsetWidth/2) + 4;
			form.css({'top': topIndent, 'right': 0});
			if ($.trim($('#login-nickname', form).val()) === '') {
				$('#login-nickname', form).focus();
			} else if ($.trim($('#login-pwd', form).val()) === '') {
				$('#login-pwd', form).focus();
			}			
			return !1;
		}
	);
	
	$('#form_shorten a').click(
		function() {
			$(this).next('fieldset').show();
			$(this).hide();
			$('#long_url').focus();
			return !1;
		}
	);
	$('#form_shorten').submit(
		function (e) {
			var	form = $(this),
				urlInput = $('#long_url', form),
				noticeTA = $('#notice_data-text'); 
			if (isValidURL(urlInput.val())) {
				$('#insert_link', form).after('<span class="progress" />');
				$.get(form.attr('action'), form.serialize(), function(res) {
					switch(res.status) {
						case 1:
							urlInput.val('');
							res.shortUrl = res.shortUrl.substring(7);
							var preparedUrl = ($.trim(noticeTA.val()) === '') ? res.shortUrl : ' ' + res.shortUrl;
							noticeTA.val($.trim(noticeTA.val()) + preparedUrl);
							var remaining = parseInt($("#notice_text-count").text()) - preparedUrl.length;
							$("#notice_text-count").text(remaining);
							if (remaining <= 0) {
								$("#form_notice").addClass("warning");
							} else {
								$("#form_notice").removeClass("warning");
							}
							
							noticeTA.focus();
							break;
						case 2:
							//console.warn(errors[res.status]);
							break;
						case 3:
							//console.warn(errors[res.status]);
							break;
					}
					$('.progress', form).remove();
				}, 'json');
			}
			return !1;
			//e.preventDefault();
		}
	);
	
	var loginForm = $('#login-form');
	$('div.icons a.swch', loginForm).click(
		function() {
			var prnt = $(this).parent();
			if (!prnt.hasClass('current')) {
				$('span.current', loginForm).removeClass('current');
				prnt.addClass('current');
				$('form.current', loginForm).removeClass('current');
				var ind = $(this).attr('id').split('_')[0] + '_flds';
				$('form.'+ind, loginForm).addClass('current');
				//showOpenIdForm($(this));
			}
			return !1;
		}
	);
	
	$('#reg-form').append('<i id="magpie"/>');
	
	if ($('#reg-form').length) {
		//var mh = $('#reg-form').height(); 
		//$('#reg-form').css({'min-height': mh, '* html height': mh});
		var regBlockForms = $('#reg-form'),
			regForm = $('form.ss_flds', regBlockForms), 
			oIdForm = $('form.form_openid', regBlockForms);

		$('#nickname', regBlockForms).keyup(
			function() {
				if (!isValidNick($(this).val())) {
					showError(1, $(this).parent());
				} else {
					hideError($(this).parent());
				}
			}
		);
	
		$('#password', regForm).blur(
			function() {
				if (!isValidPasswd($(this).val())) {
					showError('В пароле должно быть хотя бы 6 символов', $(this).parent());
				} else {
					hideError($(this).parent());
				}
			}
		);
		$('#email', regForm).blur(
			function() {
				if (!isValidEmail($(this).val())) {
					showError(4, $(this).parent());
				} else {
					hideError($(this).parent());
				}
			}
		);
		
		$(regForm).submit(
			function() {
				var errors = 0,
					nick = $('#nickname', regForm),
					pass = $('#password', regForm),
					email = $('#email', regForm);
				if ($.trim(nick.val()).length > 0) {
					if (!isValidNick(nick.val())) {
						showError(1, nick.parent());
						errors++;
					}
				} else {
					showError('Введите адрес дневника', nick.parent());
					errors++;
				}
				if ($.trim(pass.val()).length > 0) {
					if (!isValidPasswd(pass.val())) {
						showError('В пароле должно быть хотя бы 6 символов', pass.parent());
						errors++;
					}
				} else {
					showError('Введите пароль', pass.parent());
					errors++;
				}
				if ($.trim(email.val()).length > 0) {
					if (!isValidEmail(email.val())) {
						showError(4, email.parent());
						errors++;
					}
				} else {
					showError('Введите адрес элекстронной почты', email.parent());
					errors++;
				}
				
				if (errors > 0) {
					return !1;
				}
				
			}
		);
	
		$('div.icons a.swch', regBlockForms).click(
			function() {
				var prnt = $(this).parent(); 
				if (!prnt.hasClass('current')) {
					$('span.current', regBlockForms).removeClass('current');
					$(this).parent().addClass('current');
					$('form.current', regBlockForms).removeClass('current');
					var ind = $(this).attr('id').split('_')[0] + '_flds';
					$('form.'+ind, regBlockForms).addClass('current');
				}
				return !1;
			}
		);
		
		oIdForm.submit(
			function() {
				var ljNickFld = $('#lj_nickname', this),
					reg = /^([a-z0-9_]+)$/i;
				console.log(ljNickFld);
				if (ljNickFld.is(':visible') && !reg.test(ljNickFld.val())) {
					showError('Не похоже на никнейм ЖЖ', ljNickFld.parent());
					return !1;
				}
			}
		);
	}
	
	function previewThemeStyle(name) {
		var scriptTag = document.createElement('script');
		scriptTag.type = 'text/javascript';
		scriptTag.src = '/theme/'+name+'/js/main.js';
		$('#form_settings_theme #theme').val(name);
		$('body').append(scriptTag);
		$('head').find('link[title=pretheme]').remove().end().append('<link rel="stylesheet" media="all" href="/theme/'+name+'/css/display.css" title="pretheme" />');
	}
	$('#themes a').click(
		function() {
			if (!$(this).parent('li').hasClass('current')) {
				$('li', $('#themes')).removeClass('current');
				$(this).parent('li').addClass('current');
				var themeName = $(this).attr('href').slice(1);
				rollBackTheme();
				previewThemeStyle(themeName);
				$('#form_settings_theme :submit').css('opacity', '1');
			}
			return !1;
		}
	);
	
});
