//**********************************************************************************************************
// js handling the login procedures
// constants
var NORMAL_STATE = 4;
var LOGIN_PREFIX = 'login.php?';
// variables
var messageElement = false;
var hasSeed = false;
var loggedIn = false;
var seed_id = 0;
var seed = 0;
var hash = '';
var fullname = '';
var messages = '';

//**********************************************************************************************************
function initLogin(){
	$('#user').bind('focus', function(){ focusField(); });
	$('#pass').bind('focus', function(){ focusField(); });
	$('#loginfrm').submit(function(){
		var action = $(this).attr('action');
		$('#loginbtn').attr('disabled','disabled');
		$('#task').val($('#loginbtn').val());
		if ($('#task').val() == 'LogIn'){
			validateLogin();
		}
		var user = $('#user').val();
		$.post(action, { task: $('#task').val(), user: $('#user').val(), pass: $('#pass').val(), hash: hash, id: seed_id },
		function(data){
			var result = data.split(':');
			switch(result[0]){
				case 'LoggedIn':
					window.location.replace($('#srcDomain').val()+'/dealer_setup.php');
					//window.location.reload(true);
				break;
				case 'LoggedOut':
					loggedIn = false;
					hasSeed = false;
					location.replace($('#srcDomain').val());
				break;
				default:
					$('#user').val('');
					$('#pass').val('');
					$('#task').val('');
					$('#loginbtn').attr('disabled','');
					$('#user').focus();
					showResponse(data);
					return false;
				break;
			}
			return false;
		});
		return false;
	});
	return false;
}
//**********************************************************************************************************
function init_psdLogin(){
	$('#un').bind('focus', function(){ focusField(); });
	$('#pw').bind('focus', function(){ focusField(); });
	$('#psdloginfrm').submit(function(){
		var action = $(this).attr('action');
		$('#psdloginBtn').attr('disabled','disabled');
		$('#task').val($('#psdloginBtn').val());
		if ($('#task').val() == 'LogIn'){
			validate_psdLogin();
		}
		var user = $('#un').val();
		$.post(action, { task: $('#task').val(), user: $('#un').val(), pass: $('#pw').val(), hash: hash, id: seed_id },
		function(data){
			var result = data.split(':');
			switch(result[0]){
				case 'LoggedIn':
					parent.window.location.replace($('#srcDomain').val()+'/dealer_setup.php');
					parent.closeDialog();
				break;
				case 'LoggedOut':
					loggedIn = false;
					hasSeed = false;
					location.replace($('#srcDomain').val());
				break;
				default:
					$('#un').val('');
					$('#pw').val('');
					$('#task').val('');
					$('#psdloginBtn').attr('disabled','');
					$('#un').focus();
					showResponse(data);
				break;
			}
			return false;
		});
		return false;
	});
	return false;
}
//**********************************************************************************************************
function validate_psdLogin(){
	if(loggedIn){ return false; }
	var user = $('#un').val();
	var pass = $('#pw').val();
	if(user != '' && pass != '') {
		hash = hex_md5(pass + seed);
	}
	return false;
}
//**********************************************************************************************************
function showLogin(){
	$('#showLoginBtn').fadeOut(700, function(){
		$('#loginboxs').fadeIn(700);
	});
}
//**********************************************************************************************************
function showLoginBox(){
	openDialog('login.php', 840, 340, '', '', 'no', 'no', '');
}
//**********************************************************************************************************
function showRegistrationForm(){
	parent.window.location.replace($('#srcDomain').val()+'/addaccount.php');
	parent.closeDialog();
}
//**********************************************************************************************************
function initForgotPassword(){
	$('#forgot_passbtn').attr('disabled', 'disabled');
	$.post('../include/login.php', { task: 'ForgotPassword', forgot_username: $('#forgot_username').val() },
	function(data){
		switch(data){
			case 'EmailedAccountLogin':
				showResponse('An Email containing your Login Credentials has been sent to you.');
				$('#forgotPasswordFrm').slideUp(500);
			break;
			case 'UserNameNotFound':
				showResponse('Could not find Username in our system.');
				$('#forgot_passbtn').attr('disabled', '');
			break;
			default:
				alert('An Error Occured:'+data);
			break;
		}
		return false;
	});
	return false;
}
//**********************************************************************************************************
function initForgotUserName(){
	$('#forgot_usernamebtn').attr('disabled', 'disabled');
	$.post('../include/login.php', { task: 'ForgotUserName', user_email: $('#forgot_useremail').val() },
	function(data){
		switch(data){
			case 'EmailedUserName':
				showResponse('An Email containing your Login Credentials has been sent to you.');
				$('#forgotPasswordFrm').slideUp(500);
			break;
			case 'EmailNotFound':
				showResponse('Could not find Email Address in our system.');
				$('#forgot_usernamebtn').attr('disabled', '');
			break;
			default:
				alert('An Error Occured:'+data);
			break;
		}
		return false;
	});
	return false;
}
//**********************************************************************************************************
function getSeed(){
	if (!loggedIn && !hasSeed) {
		$.post("include/login.php", { task: 'getseed' },
		function(data){
			results = data.split('|');
			seed_id = results[0];
			seed = results[1];
			hasSeed = true;
		});
	}
	return false;
}
//**********************************************************************************************************
function validateLogin(){
	if (loggedIn){ return false; }
	var user = $('#user').val();
	var pass = $('#pass').val();
	if (user != '' && pass != '') {
		hash = hex_md5(pass + seed);
	}
	return false;
}
//**********************************************************************************************************
function focusField(){
	try {
		if(messageElement != false){ alert('found message element?');
			document.getElementById('msg').removeChild(messageElement);
			//$(messageElement).remove();
		}
		getSeed();
	}
	catch (e){ } // do nothing... hides an apparent firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=236791
	return false;
}
//**********************************************************************************************************
