SportpostLoginForm = function(app){
	var form = this;
	form.app = app;

	form.popup = $("#login-form-popup");
	if (form.popup.length){
		$(document).bind("activateContext", function(event, context){
			form.activateLoginRequiredButtons(context);
		})
		form.popup.find("form").bind("submit", function(e){
			e.preventDefault();
			e.stopPropagation();
			form.submit();
			return false;
		});
		
		$("#login-form-close").click(function(){
			form.hide();
		}).addClass("clickable");
	}
	return form;
}

SportpostLoginForm.prototype.activateLoginRequiredButtons = function(){
	var form = this;

	$(".login-required").not(".login-form-activated").click(function(){
		var elem = $(this);

		form.href = elem.hasClass("redirect-after-login") ? elem.attr("href") : false;
		form.display(elem.hasClass("hide-fbconnect"));
		return false;
	}).addClass("login-form-activated clickable");
}

SportpostLoginForm.prototype.display = function(hideConnectButton){
	var form = this;
	
	if (!form.shown && form.popup.length){
		form.shown = true;
		
		$.blockUI({
			message: "",
			fadeIn: 0, 
			fadeOut: 0
		});
/*		
		if (hideConnectButton) {
			$("#login-fbconnect-container").hide();
		} else {
			$("#login-fbconnect-container").show();
		}
*/		
		form.popup.css({
			opacity: 0,
			top: $(document).scrollTop() + 44
		}).fadeTo("fast", 1, function(){
			form.popup.css("opacity", "");
			$("#login-form-username").focus();

/*			
			form.hideHandler = function(event){
				form.hide(event);
			}
			
			$(document).bind("click", form.hideHandler);
*/			
		});
	}
}

SportpostLoginForm.prototype.submit = function(){
	var form = this;

	if (!form.busy) {
		var login = $("#login-form-username").val();
		var password = $("#login-form-password").val();
		var msg = $("#login-form-error");
		
		if ($.trim(login) == "" || $.trim(password) == "") {
			msg.html("Please input E-mail and Password.");
		} else {
			msg.html('<img src="/images/img/loading.gif" width="16" height="16" alt="" align="absmiddle">&nbsp;&nbsp;&nbsp;Please wait, logging you in.');
	
			form.busy = true;
			form.popup.addClass("busy");
			var remember = ($("#login-form-remember").is(":checked")) ? 1 : 0;
			$.ajax({
				url: "/ajax_login",
				dataType: "json",
				type: "POST",
				data: {
					username: login,
					password: password,
					remember: remember,
					"_": Math.random()
				},
				complete: function(){
					form.popup.removeClass("busy");
				},
				error: function (XMLHttpRequest, textStatus, errorThrown) {
					msg.html('Login error, please try again later.');
					form.busy = false;
				},
				success: function(data){
					if (data.result != undefined && data.result == 1){
						msg.html('Login successful.');
						$(document.body).addClass("busy");
						$("#login-form-buttons").remove();
						if (form.href && form.href != "" && form.href != "#"){
							location.href = form.href;
						} else {
							location.reload();
						}
					} else {
						msg.html('E-mail and/or Password is invalid.');
						form.busy = false;
					}
				}
			});
		}
	}
}

SportpostLoginForm.prototype.hide = function(event){
	var form = this;

	if (form.shown && !form.busy && form.popup.length 
//		&& event.target != form.popup[0] && $.inArray(form.popup[0], $(event.target).parents()) == -1
	) {
		form.popup.fadeTo("fast", 0, function(){
			form.popup.css({
				opacity: 0,
				top: "-3000px"
			});
//			$(document).unbind("click", form.hideHandler);
			form.shown = false;
			$("#login-form-error").html("");
		});
		$.unblockUI({
			fadeOut: 0
		});
	}
}
