﻿//json call for authenticate
function authenticate(parametersJson) {
	$.getJSON($("#Login").attr("loginproxyserviceurl")
				, { ParametersJson: parametersJson, CacheBustDateTimeStamp: new Date().toString() }
				, function(json) {
					json = JSON.parse(json.d);
					if (json.Error) {
						alert(json.Message);
					} else if (json.Authenticated) {
						window.location.reload();
					} else {
						alert(json.AuthenticateFailureError);
					}
				}
		);
}

// json call for logout
function logout(parametersJson) {
	$.getJSON($("#LoginLogout").attr("logoutproxyserviceurl")
				, { ParametersJson: parametersJson, CacheBustDateTimeStamp: new Date().toString() }
				, function(json) {
					json = JSON.parse(json.d);
					if (json.Error) {
						alert(json.Message);
					} else {
						window.location.reload()
					}
				}
		);
}

$('#LoginLogout').ready(function() {

	// login lightbox setup on login click
	$('#LoginLogout #LoginLink').click(function() {
		$('#Login').lightbox_me({
			centered: true,
			onLoad: function() {
				$('#Login #LoginUsername').focus();
			},
			closeSelector: '.LoginCancel'
		});
		return false;
	});

	// logout click
	$('#LoginLogout #LogoutLink').click(function() {
		var parametersJson = $("#LoginLogout").attr("logoutproxyserviceparameters");
		logout(parametersJson);
		return false;
	});

});


$('#Login').ready(function() {

	// if press enter in email click the button
	$('#Login #LoginUsername').keypress(function(e) {
		if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
			$('#Login #LoginPassword').focus();
			return false;
		} else {
			return true;
		}
	});

	// clear keyword text box on enter if default email
	$('#Login #LoginUsername').focus(function() {
		if ($.trim($(this).val()) == $(this).attr("default")) {
			$(this).val('');
		}
	});

	// set default keyword text box if empty
	$('#Login #LoginUsername').blur(function() {
		if ($.trim($(this).val()) == '') {
			$(this).val($(this).attr("default"));
		}
	});

	// clear keyword text box on enter if default email
	$('#Login #LoginPassword').focus(function() {
		if ($.trim($(this).val()) == $(this).attr("default")) {
			$(this).val('');
		}
	});

	// set default keyword text box if empty
	$('#Login #LoginPassword').blur(function() {
		if ($.trim($(this).val()) == '') {
			$(this).val($(this).attr("default"));
		}
	});

	// if press enter in email click the button
	$('#Login #LoginPassword').keypress(function(e) {
		if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
			$('#Login #LoginSubmit').click();
			return false;
		} else {
			return true;
		}
	});

	// Login Click
	$('#Login #LoginSubmit').click(function() {

		var errorMessage = '';
		var hasError = false;
		var setFocus;

		// trim any spaces
		$('#Login #LoginUsername').val($.trim($('#Login #LoginUsername').val()));
		$('#Login #LoginPassword').val($.trim($('#Login #LoginPassword').val()));

		// verify data
		if ($('#Login #LoginUsername').val() == '') {
			$('#Login #LoginUsername').focus();
			return false;
		}

		if ($('#Login #LoginPassword').val() == '') {
			$('#Login #LoginPassword').focus();
			return false;
		}

		if ($('#Login #LoginPassword').val() == $('#Login #LoginPassword').attr('default')) {
			errorMessage = errorMessage + '-Enter ' + $('#Login #LoginPassword').attr('default') + '\n';
			setFocus = $('#Login #LoginPassword');
			hasError = true;
		}

		if ($('#Login #LoginUsername').val() == $('#Login #LoginUsername').attr('default')) {
			errorMessage = errorMessage + '-Enter ' + $('#Login #LoginUsername').attr('default') + '\n';
			setFocus = $('#Login #LoginUsername');
			hasError = true;
		}

		if (hasError) {
			errorMessage = 'Please address the following:\n\n' + errorMessage + '\n';
			alert(errorMessage);
			$(setFocus).focus();
			return false;
		} else {
			var parametersJson = $("#Login").attr("loginproxyserviceparameters");
			parametersJson = parametersJson.replace("{username}", $('#Login #LoginUsername').val());
			parametersJson = parametersJson.replace("{password}", $('#Login #LoginPassword').val());
			authenticate(parametersJson);
		}

		return false;
	});

});

