/************************************************************************
 globalFunctionality.js
 jpl 3/27/08
 
	Suite of global JavaScript functions specific to LiveFeed.
	
	void			
	boolean			isValidUsername(username)
	boolean			isValidPassword(password)
	void			submitLogin()
	
************************************************************************/
	
	LFData = {};
	dbug.enable();

window.addEvent('domready', function() {
	
	
	loginPopUp = new PopUpWindow('Log In to LiveFeed', 
		{injectLocation: $('loginInjectDiv'),
		 width: '312px', left: '640px', top: '80px'});
	
});
	
/****************************************************************************
//	SECTION::Login - Pop Up Login Interface
*/
	loginIsLoaded = false;
	function toggleLogin() {
		if(loginPopUp.isOpen())
			loginPopUp.close();
		else {
			if(loginIsLoaded)
				loginPopUp.open();
			else {
				showLoad();
				new Ajax('/AJAXLoad.asp?l=loadLoginInterface', {
					method: 'get',
					update: loginPopUp.getContentDiv(),
					evalScripts: true,
					onComplete: function() {
						loginPopUp.open();
						hideLoad();
						loginIsLoaded = true;
					}
				}).request();
			}
		}
	}
	
	
	function submitLogin() {
		new Ajax('/AJAXActionLogin.asp?a=login', {
			method: 'post',
			data: $('loginForm'),
			evalScripts: true
		}).request();
	}
	
	function launchLoginHelper() {
		$('loginHelperForm').username.value = $('loginForm').username.value;
		swapSections('loginFormDiv', 'loginHelperFormDiv');
	}
	
	
	function cancelLoginHelper() {
		swapSections('loginHelperFormDiv', 'loginFormDiv');
	}
	
	function closeLoginHelper() {
		swapSections('loginHelperCompletion', 'loginFormDiv');
	}
	
	
	function submitLoginHelpRequest() {
		var theForm = $('loginHelperForm');
		
		if(theForm.helpMode[0].checked  &&  theForm.username.value == '') {
			calert('Please indicate your username.');
			theForm.username.focus();
			return;
		}
		
		if(theForm.helpMode[1].checked  &&  !isValidEmailAddress(theForm.email.value)) {
			calert('Please indicate your email address on file (must be valid).');
			theForm.email.select();
			return;
		}
		
		new Ajax('/AJAXActionLogin.asp?a=loginHelper', {
			method: 'post',
			data: theForm,
			evalScripts: true
		}).request();
	}
	
/*
//	End SECTION::Login - Pop Up Login Interface
****************************************************************************/




	// boolean isValidUsername(username)
	//	Returns true if username conforms to all rules of valid usernames.
	//	If false, sets value of LFData.errorMessage and LFData.errorReason
	//	for processing later.
	function isValidUsername(username) {
		
		if (!username  ||  username == null) {
			LFData.errorMessage = 'Please enter a username.';
			LFData.errorReason = 'usernames cannot be blank';
			return false;
		}
		
		username = trim(username);
		
		if (username.length < 2) {
			LFData.errorMessage = 
				'Please enter a longer username (2 characters minimum).';
			LFData.errorReason = 'usernames must be at least 2 characters long';
			return false;
		}
		
		if (username.indexOf(' ') >= 0) {
			LFData.errorMessage = 'Please enter a username without spaces.';
			LFData.errorReason = 'username cannot contain spaces';
			return false;
		}
		
	//	if (!/^\w{2, 50}$/.test(username)) {
	//		LFData.errorMessage = 'Please enter a username with only alphanumeric characters';
	//		LFData.errorReason = 'username cannot contain non-alphanumeric characters';
	//		return false;
	//	}
		return true;
	}
	
	
	// boolean isValidPassword(password)
	//	Returns true if password conforms to all rules of valid password.
	//	If false, sets value of LFData.errorMessage and LFData.errorReason
	//	for processing later.
	function isValidPassword(password) {
		
		if (!password  ||  password == null  || password == '') {
			LFData.errorMessage = 'Please enter a password.';
			LFData.errorReason = 'passwords cannot be blank';
			return false;
		}
		
		if (password.length < 6) {
			LFData.errorMessage = 
				'Please enter a longer password (6 characters minimum).';
			LFData.errorReason = 'passwords must be at least 6 characters long';
			return false;
		}
		
		return true;
	}
	