﻿/*
 * ITV Media Login module
 */
ITVM = window.ITVM ||
{};

ITVM.Login = (function($)
{
	var handlerActions = {
		LOGIN_CHECK: 'logincheck',
		REMINDPASSWORD: 'remindpassword'
	};
	
	function remindPassword(e)
	{
		var email_address = $('.email-forgotten').val();
		
		var successFunc = function(data, status)
		{
			$('#login-button,.login-surrogate').click();
			$('.dialog.login .user-message').html(data);
		};
		
		var errorFunc = function(XMLHttpRequest, textStatus, errorThrown)
		{
			$('.dialog.login .user-message').html('<p>There has been an error with sending your reminder email.</p>');
		};
		
		if (email_address !== '') 
		{
			sendCommand({
				action: handlerActions.REMINDPASSWORD,
				email_address: email_address
			}, successFunc);
		}
		
		e.preventDefault();
	}
	
	function checkLoginCredentials()
	{
		$('.dialog.login .user-message').html('');
		var username = $('#' + ITVM.serverControls.Email).val();
		var password = $('#' + ITVM.serverControls.Password).val();
		
		var options = {
			action: handlerActions.LOGIN_CHECK,
			username: username,
			password: password
		};
		
		var responseText = $.ajax({
			async: false,
			data: options,
			dataType: 'json',
			type: 'GET',
			url: '/common/template/usercontrols/handlers/LoginHandler.ashx'
		}).responseText;
		
		// unsafe! Use JSON2 parser
		var response = (new Function('return ' + responseText))();
		
		if (!response.passed) 
		{
			$('.dialog.login .user-message').html('<p>Username/password not recognised. Please try again.</p>');
		}
		return response.passed;
	}
	
	function sendCommand(options, successCB, errorCB)
	{
		$.ajax({
			data: options,
			dataType: 'json',
			success: successCB,
			error: errorCB,
			type: 'GET',
			url: '/common/template/usercontrols/handlers/LoginHandler.ashx'
		});
	}
	
	function init()
	{
		$('.remind-password a').click(ITVM.Login.remindPassword);
		
		if (NETJOHNHENRY.getQueryString('promptlogin') == '1') 
		{
			$('#login-button,.login-surrogate').click();
		}
	}
	
	return {
		init: init,
		remindPassword: remindPassword,
		checkLoginCredentials: checkLoginCredentials
	};
	
})(jQuery);

jQuery(ITVM.Login.init);



