/**
 * Open login dialog
 */
$(document).ready(function() {
    $('#header').remove();
    $('#content').remove();
    
    var winHeight = document.body.clientHeight;
    var diagHeight = $('#login').css('height');
    diagHeight = diagHeight.substr(0, diagHeight.length - 2);
    diagHeight = Number(diagHeight);
    
    // The window's height is to small to show the dialog
    var tmpHeight = 0;
    if ((winHeight - 50) < diagHeight){
    	tmpHeight = 0;
    } else {
    	tmpHeight = parseInt((winHeight - diagHeight - 50) / 2); 
    }
    
    $('#login').css('margin', tmpHeight + 'px auto');
    $('button').bind('click', function(){
    	authenticate();
    }).button();
    
	if (document.location.protocol == 'http:') {
		$('#login_status').html('You are using an unencrypted session!');
		$('#login_status').css('color', 'red');
	}
	
	if (!$("#login input[name='username']").val()) {
		$("#login input[name='username']").focus();
	} else {
		$("#login input[name='password']").focus();
	}

	// When enter is hit while in username, advance to password
	$("#login input[name='username']").keydown(function(event) {
		if (event.keyCode == 13) {
			$("#login input[name='password']").focus();
		}
	});

	// Submit authentication if enter is pressed in password field
	$("#login input[name='password']").keydown(function(event) {
		if (event.keyCode == 13) {
			authenticate();
		}
	});
});

/**
 * Update login dialog
 * 
 * @param data
 *            Data returned from AJAX call
 * @param txtStatus
 *            Status of login
 */
function onlogin(data, txtStatus) {
	// Clear password field regardless of what happens
	var usrName = $("#login input[name='username']").val();
	$("#login input[name='password']").val('');
	if (data.authenticated == 'yes') {
		$('#login_status').text('Login successful');
		window.location = 'service.php';
				
		// Set user name cookie
		var exDate = new Date();
		exDate.setTime(exDate.getTime() + (240 * 60 * 1000));
		$.cookie('xcat_username', usrName, { expires: exDate });
	} else {
		$('#login_status').text('Authentication failure');
		$('#login_status').css('color', '#FF0000');
	}
}

/**
 * Authenticate user for new session
 */
function authenticate() {
	$('#login_status').css('color', '#000000');
	$('#login_status').html('Authenticating...');
	
	var passwd = $("#login input[name='password']").val();
	$.post('lib/srv_log.php', {
		username : $("#login input[name='username']").val(),
		password : passwd
	}, onlogin, 'json');
}