
$(function() {

//{{{ login / signup / logout

	$(".account input").focus(function() {
		var el = $(this);
		if (this.name == 'password' && el.attr("type") != 'password') {
			var el2 = $('<input/>').attr("type", "password").attr("name", "password");
			el.after(el2);
			el.remove();
			el2.focus();
		}
		this.select();

	}).blur(function() {
		if (!this.value) { this.value = this.name; }
	});

	// login / forgot password scrollable
	$("#loginscroll").scrollable({ next: '#anext', prev: '#aprev' });

	// toggle login / signup
	$("#acc a").each(function(i)  {         

		var a = $(this);

		a.mouseover(function() {
			a.addClass("active");
		});

		a.tooltip({
			tip: i == 0 ? '#loginscroll' : '#signup',
			position: 'bottom right',
			offset: [-10, i == 0 ? -45 : -52],
			events: {
				tooltip: 'mouseover'
			},

			onShow: function(e) {
				a.addClass("active");
				$(i > 0 ? '#loginscroll' : '#signup').hide();
			},
			onBeforeHide: function(e, i) {
				a.removeClass("active");
			}
		});
	});

	function closeAcc() {
		var panel = $("#acc .active").data("tooltip");
		if (panel) { panel.hide(); }
		$("#acc a").removeClass("active");
	}

	$(document).click(function(e) {
		var el = $(e.target)
		if ($(".account:visible").length && !el.is(".account") && !el.parents(".account").length && !el.is("#acc a")) {
			closeAcc();
		}
	});

	$(document).keydown(function(e) {
		if (e.keyCode == 27) { closeAcc(); }
	});


	function formSubmit(form, action, fn) {

		form = $(form).fadeTo(400, 0.6);

		// error container
		var err = form.find(".error");
		if (!err.length) { err = $("<p></p>").addClass("error"); form.append(err); }
		err.hide();

		$.post(action + "?" + form.serialize(), function(res) {
			form.fadeTo(200, 1);

			res = eval("(" + res + ")");
			if (res.message) {
				err.html(res.message).show();
				setTimeout(function() { err.slideUp(); }, 3000);
			} else {
				if (typeof fn == 'string') { err.html(fn).show(); }
				else { fn.call(); }
			}
		});

		return false;
	}

	$.formSubmit = formSubmit;


	
//}}}


});

