﻿
$(document).ready(function ()
{
	// Set up generic ajaxError function(should maybe be somewhere else).
	$(document).ajaxError(function (e, xhr, settings, exception)
	{
		alert('Tekniskt fel vid inloggning! Kontakta webmaster@stureby.com.');
		$.unblockUI();
	});

	ToggleWatermark(false, "UserNameTextBox");
	ToggleWatermark(false, "UserPWDTextBox");
});

function EnterLogin(e, txtObj, selObj)
{
	evt = e || window.event;
	var keyPressed = evt.which || evt.keyCode;

	if (keyPressed == 13)
	{
		$("#LoginButton").focus();
		Login();
	}
}

function ToggleWatermark(focus, control)
{
	// NOTE: Jag skippade tinywatermark-pluginen eftersokm den inte fungerade med sparade lösenord i browsern. Övriga liknande plugins
	// klarar det inte heller eftersom det måste finnas ett synligt input-fält av type Password för att browsern ska kunna plocka upp
	// det sparade lösenordet - därför går det inte att gömma och visa fält. Istället visas/göms en div ovanpå fälten.

	if (control == "UserPWDTextBox")
	{
		if (!focus && $("#SpanUserPWDTextBox > input").val() == "" )
			$("#UserPWDWatermark").show();
		else
			$("#UserPWDWatermark").hide();
	}
	else if (control == "UserNameTextBox")
	{
		if (!focus && $("#SpanUserNameTextBox > input").val() == "")
			$("#UserNameWatermark").show();
		else
			$("#UserNameWatermark").hide();
	}
	else if (control == "UserPWDWatermark")
	{
		$("#UserPWDWatermark").hide();
		$("#SpanUserPWDTextBox > input").focus();
	}
	else if (control == "UserNameWatermark")
	{
		$("#UserNameWatermark").hide();
		$("#SpanUserNameTextBox > input").focus();
	}
}

function Login() {
	/*
	TODO:
	- Byt ut onpropertychange som är IE-specifik.
	- Bryt ut felen och gör olika beteende beroden på tex fel lösenord eller om medlemen ej finns. Låt felmeddelandet försvinna automatiskt bara vid fel angivet lösenord.
	- Vid inloggning om det finns okvitterade aktiviteter eller betalning visa blockui med growl message.
	*/

	// Verify the user credentials with an async jquery post.
	$.ajax({
	  type: 'POST',
	  url: findControl("input", "hiddenServerPath").value,
	  data: { UserName: findControl("input", "UserNameTextBox").value, Password: findControl("input", "UserPWDTextBox").value },
	  success: LoginCallback
	});

	
	// Remove the waitcursor for BlockUI and use default instead.
	$.blockUI.defaults.css.cursor = "default";
	$.blockUI.defaults.overlayCSS.cursor = "default";
			
	// Show message during login with BlockUI
	$.blockUI({ message: '<div style="text-align:center; padding:20pt"><table><tr><td style="width:100px"/><td class="LoginBusyImage"/><td style="padding-left:5px;"><span style="font-size:14pt; font-weight:bold"> Inloggning pågår...</span></td></tr></table></div>' });
}

function LoginCallback(ErrorMsg)
{
	if (ErrorMsg != "")
	{
		// Show error message with BlockUI.
		$.blockUI({ message: '<div id= "blockMessage" style="text-align:center; padding:20pt"><span style="font-size:10pt; vertical-align:middle">' + ErrorMsg + '</span></div>', timeout: 3000, onUnblock: function () { UIUnBlocked(); } });
		$('.blockOverlay').click($.unblockUI);
		$('#blockMessage').click($.unblockUI);
	}
	else
		__doPostBack('DoLogin', findControl("input", "UserNameTextBox").value);
}

function UIUnBlocked()
{
	// Set focus to password and select all text.
	var UserPWDTextBox = findControl("input", "UserPWDTextBox");
	if (UserPWDTextBox != null)
	{
		UserPWDTextBox.focus();
		UserPWDTextBox.select();
	}
}
