// @TODO - CAPTURE - this function is made global so that capture module can open on scroll
// this feature will be restored after making login modular to be included directly in the capture
// module
function openSignIn () {
	if ( $('#newsletter_form').length ){
		$('#user_newsletter').removeClass("user_link_selected");							  
		$('#newsletter_popup').slideUp(400);
		setTimeout(function(){resetNewsletterForm()}, 500);
	}
	
	if ( $('#register_form').length ){
		$('#user_register').removeClass("user_link_selected");
		$('#register_popup').slideUp(600);
		setTimeout(function(){resetRegister()}, 700);
	}

	$('#user_signin').toggleClass("user_link_selected");						 
	$('#signin_popup').slideToggle(400);
	setTimeout(function(){resetLogin()}, 500);
	
	setTimeout(function(){$("#login_form input[name='username']").focus()}, 500);	
	
	l_sSignInOriginal = '<form id="login_form" action="" name="login_form" onsubmit="return false;">';
	l_sSignInOriginal += '<input type="text" name="username" maxlength="150" class="text_input" /><span class="field_name">User ID:</span>';
	l_sSignInOriginal += '<div class="clear"></div>';
	l_sSignInOriginal += '<input type="password" name="password" maxlength="25" class="text_input" /><span class="field_name">Password:</span>';
	l_sSignInOriginal += '<div class="clear"></div>';
	l_sSignInOriginal += '<p class="forgot">Forgot your <a href="#" id="header_forgot_id">User ID</a> or <a href="#" id="header_forgot_pw">Password</a>?</p>';
	l_sSignInOriginal += '<input type="image" src="/image/button_enter.gif" id="login_submit" name="login_submit" />';
	l_sSignInOriginal += '</form>';
	
	setTimeout(function(){$('#signin_holder').html(l_sSignInOriginal);}, 400);
	setTimeout(function(){assignForgotUserAndPw();}, 400);
	setTimeout(function(){assignLoginSubmit();}, 400);
	$('#login_errors').html('');
	
	//CLOSE ICON EVENT
	//HAS TO BE HERE IN ORDER TO BE VISIBLE IN CALLBACK
	$('#signin_popup .close_icon').click(function(){
		$('#signin_popup').slideUp(400);
		$('#user_signin').removeClass("user_link_selected");
		
		setTimeout(function(){resetLogin()}, 500);
		$('#login_errors').html('');
		return false;
	 });
	 return false;
}

$(document).ready(function(){
	//user menus buttons
	$('.user_link').hover(
		function(){
			$(this).addClass("user_link_hover");	
		},
		function(){
			$(this).removeClass("user_link_hover");
		}
	);
	
	
	/* SIGN IN MENU */
	$('#user_signin').click(function(){
		if( $('#login_form').length ){
			openSignIn();
		}else{
			$('#signin_popup').load('/templates/popup_signin.php',openSignIn);
		}
		return false;
	});
	
	
	/* REGISTER MENU */
	$('#user_register').click(function(){
		if( $('#register_form').length ){
			openRegister();
		}else{
			$('#register_popup').load('/templates/popup_register.php',openRegister);
		}
		return false;
	});
	
	function openRegister(){
		if ( $('#newsletter_form').length ){
			$('#user_newsletter').removeClass("user_link_selected");
			$('#newsletter_popup').slideUp(400);
			setTimeout(function(){resetNewsletterForm()}, 500);
		}
		
		if ( $('#signin_popup').css('display') == 'block' ){
			$('#user_signin').removeClass("user_link_selected");
			$('#signin_popup').slideUp(400);
			if ( $('#login_form').length ){
				setTimeout(function(){resetLogin()}, 500);
			}

		}
		
		$('#user_register').toggleClass("user_link_selected");
		$('#register_popup').slideToggle(600);
		setTimeout(function(){resetRegister()}, 600);
		
		setTimeout(function(){$('#register_success').hide();}, 600);
		setTimeout(function(){$('#register_holder').show();}, 600);

	
		$('#register_popup .close_icon, #thanks_close').click(function(){
			$('#register_popup').slideUp(600);
			
			$('#user_register').removeClass("user_link_selected");
			setTimeout(function(){$('#register_success').hide();}, 700);
			setTimeout(function(){$('#register_holder').show();}, 700);
			setTimeout(function(){resetRegister()}, 700);
			return false;
		});
	
		$('#register_submit').click(function (){
			
			l_aRegForm = document.getElementById('register_form');
			errors = validateCreation(l_aRegForm);
			if(errors.length > 0)	{
				$('#register_errors').html(_xGlobal.printErrors(errors));
				return;
			}
			$('#register_errors').html('');
			disableRegisterForm();
			BaseAjax.register();
			return false;
		});
	
		return false;
	}
	
	
	/* NEWSLETTER MENU */
	$('#user_newsletter').click(function(){
		if( $('#newsletter_form').length ){
			openNewsletter();
		}else{
			$('#newsletter_popup').load('/templates/popup_newsletter.php',openNewsletter);
		}
		return false;
	});
	
	function openNewsletter(){
		if ( $('#register_form').length ){
			$('#user_register').removeClass("user_link_selected");
			$('#register_popup').slideUp(600);
			setTimeout(function(){resetRegister()}, 800);
		}
		if ( $('#signin_popup').css('display') == 'block' ){
			$('#user_signin').removeClass("user_link_selected");
			$('#signin_popup').slideUp(400);
			if ( $('#login_form').length ){
				setTimeout(function(){resetLogin()}, 500);
			}
		}
		
		$('#user_newsletter').toggleClass("user_link_selected");	
		$('#newsletter_popup').slideToggle(400);
		
		$('#newsletter_popup .close_icon').click(function(){
			$('#newsletter_popup').slideUp(400);
			$('#user_newsletter').removeClass("user_link_selected");
			setTimeout(function(){resetNewsletterForm()}, 500);
			return false;
		 });
		
		
		$('#news_submit').click(function (){
			
			$('#newsletter_errors').html('');
			errors = new Array();
			errors = validateEmail('newsletter_form');
			
			if(errors.length > 0)	{
				$('#newsletter_errors').html(_xGlobal.printErrors(errors));					
				return;
			}
			$('#newsletter_errors').html('');
										  
			disableNewsletterForm();	
			BaseAjax.newsletterSignup();
			return false;
	    });
	    
   		return false;

	};
	
	
	/* NEWSLETTER MODULE */
	$('#newsletter_module_submit').click(function (){

		$('#newsletter_module_errors').html('');
		errors = new Array();
		errors = validateEmail('newsletter_module_form');
		
		if(errors.length > 0)	{
			$('#newsletter_module_errors').html(_xGlobal.printErrors(errors));					
			return;
		}
		$('#newsletter_module_errors').html('');							  
									  
		disableNewsletterModuleForm();	
		BaseAjax.newsletterModuleSignup();
		return false;
    });
	
	
	/* ACCOUNT MENU */
	$('#user_account').click (function(){
		if( $('#account_form').length ){
			openAccount();
		}else{
			$('#account_popup').load('/templates/popup_account.php',openAccount);
		}
		return false;
	});
	
	function openAccount(){
		$('#user_account').toggleClass("user_link_selected");	
		$('#account_popup').slideToggle(600);
		
		setTimeout(function(){$('#new_pw_wrapper').hide()}, 700);
		
		resetAccount();
		BaseAjax.getUser();
		
		$('#account_popup .close_icon').click(function(){
		$('#account_popup').slideUp(600);
		$('#user_account').removeClass("user_link_selected");
		setTimeout(function(){$('#new_pw_wrapper').hide()}, 700);
		resetAccount();	
	 });
	 
		 $('#account_change_pw').click(function(){
			$('#new_pw_wrapper').fadeIn(300);							   
		});
	
		$('#account_submit').click(function (){
			
			l_aAccForm = document.getElementById('account_form');
			errors = validateUpdation(l_aAccForm);
			if(errors.length > 0)	{
				$('#account_errors').html(_xGlobal.printErrors(errors));
				return;
			}
			$('#account_errors').html('');
			
			disableUpdateForm();
			BaseAjax.update();
			setTimeout(function(){$('#account_popup').hide()}, 700);
			setTimeout(function(){$('#account_popup').html('')}, 700);
			
			return false;
		});
	
		
		return false;
	};
	
	/* SIGN OUT MENU */
	$('#user_signout').click(function(){ 
		$('#account_popup').slideUp(600);
		$('#user_account').removeClass("user_link_selected");
	
		$('.comment_box_wrapper').slideUp(400);
		resetCommentForm();
		if( $('#account_form').length ){
			resetAccount();	
		}
		BaseAjax.logout();
		setTimeout(function(){$('#account_popup').html('')}, 700);
		return false;
	});	
	
	
	/* DIRECTORY SIGNUP */
	$('#directory_submit').click(function (){
		
		$('#directory_errors').html('');
		errors = new Array();
		errors = validateEmail('directory_form');
		
		if(errors.length > 0)	{
			$('#directory_errors').html(_xGlobal.printErrors(errors));					
			return;
		}

		$('#directory_errors').html('');							  				  
		disableDirectoryForm();
		BaseAjax.directorySignup();
		return false;
    });

	
});

//Click function assigned for elements appearing after document.ready
function assignForgotPwSubmit() {
	$('#forgot_pw_submit').click(function (){
										  
	f = document.getElementById('forgot_pw_form');
	
	errors = new Array();
	errors = validateEmail('forgot_pw_form');
			
	if(errors.length > 0)	{
		$('#login_errors').html(_xGlobal.printErrors(errors));
		return;
	}
	$('#login_errors').html('');
	
	disableForgotPwForm();
	BaseAjax.forgot_pass();
	return false;
    });
}

function assignForgotUserAndPw() {
	$('#header_forgot_id, #header_forgot_pw').click(function(){
		l_sForgotHtml =  '<div class="forgot_password">';
		l_sForgotHtml += '<p class="small_form_text">Enter the email address you signed up with,<br /> and a message will be sent to reset your password.</p>';
		l_sForgotHtml += '<form id="forgot_pw_form" action="" name="forgot_pw_form" onsubmit="return false;">';
		l_sForgotHtml += '<input type="text" id="email" name="email" class="text_input" /><span class="field_name">Email:</span>';
		l_sForgotHtml += '<div class="clear"></div>';
		l_sForgotHtml += '<input type="image" src="/image/button_submit.gif" name="forgot_pw_submit" id="forgot_pw_submit" />';
		l_sForgotHtml += '</form>';
		l_sForgotHtml += '<p class="small_form_text" id="forgot_errors">Not registered yet? It&acute;s quick and easy. Click <br />REGISTER at the top of the page to get started.</p>';
		l_sForgotHtml += '</div>';
		
		$('#signin_holder').html(l_sForgotHtml);
		
		assignForgotPwSubmit();
		
	});	
}


function assignLoginSubmit() {
	$('#login_submit').click(function (){
		f = document.getElementById('login_form');
		
		$('#login_errors').html('');
		errors = new Array();
		errors = validateLogination();
		
		if(errors.length > 0)	{
			$('#login_errors').html(_xGlobal.printErrors(errors));					
			return;
		}
		$('#login_errors').html('');

		disableLoginForm();
		BaseAjax.login();
		
		return false;
	});
}


// ---------------------- Validation Functions -----------------------------------

function validateLogination(){
	p_aValues = document.getElementById('login_form');
	r_asErrors = new Array();				
	if(/[a-zA-Z]{1}[-a-zA-Z0-9]{4}[-a-zA-Z0-9]*/.test(p_aValues.elements['username'].value) == false || 
		(/[a-zA-Z0-9]{6,16}/.test(p_aValues.elements['password'].value) == false))
		r_asErrors.push("Sorry, your user ID or password was not recognized.<br />Please enter a valid user ID and password.");					

	return  r_asErrors;
}

//for registration form
function validateCreation(){	
	p_aValues = document.getElementById('register_form');
	r_asErrors = new Array();		
	if(/[a-zA-Z0-9]{6,16}/.test(p_aValues.elements['password'].value) == false)
		r_asErrors.push("Password must be between 6 and 16 alphanumeric characters.");			
	if(p_aValues.elements['password'].value != p_aValues.elements['password2'].value)
		r_asErrors.push("Password and Confirmation must match.");	
	return  r_asErrors.concat(validate(p_aValues));
}

//for account update form
function validateUpdation(){	
	p_aValues = document.getElementById('account_form');
	r_asErrors = new Array();		
	
	if(p_aValues.elements['password'].value == '' && p_aValues.elements['password2'].value == '')
		return  r_asErrors.concat(validate(p_aValues));
	else{
		if(/[a-zA-Z0-9]{6,16}/.test(p_aValues.elements['password'].value) == false)
			r_asErrors.push("Password must be between 6 and 16 alphanumeric characters.");			
		if(p_aValues.elements['password'].value != p_aValues.elements['password2'].value)
			r_asErrors.push("Password and Confirmation must match.");	
	}
	
	return  r_asErrors.concat(validate(p_aValues));
}

function validateEmail(p_sFormName){
	
	p_aValues = document.getElementById(p_sFormName);
	r_asErrors = new Array();
	
	if(/[_a-zaA-Z0-9-]+([.+_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+([.a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})/.test(p_aValues.elements['email'].value) == false)
		r_asErrors.push("Email Address is in an invalid format.");
	return  r_asErrors;
}

function validate(p_aValues){	
	r_asErrors = new Array();			
	if(/[a-zA-Z]{1}[-a-zA-Z0-9]{3}[-a-zA-Z0-9]*/.test(p_aValues.elements['username'].value) == false)
		r_asErrors.push("Username must be at least 4 characters a-z, 0-9, or - and begin with a letter.");		
	if(/[a-zA-Z]{1}[-\'a-zA-Z ]{0,28}[a-zA-Z]{1}/.test(p_aValues.elements['firstName'].value) == false)
		r_asErrors.push("First Name must be between 2 and 30 characters a-z.");			
	if(/[a-zA-Z]{1}[-\'a-zA-Z ]{0,27}[a-zA-Z]{1}/.test(p_aValues.elements['lastName'].value) == false)
		r_asErrors.push("Last Name must be between 2 and 30 characters a-z.");
	if( p_aValues.elements['year'].value == "0" || 
		p_aValues.elements['day'].value == "0" || 
		p_aValues.elements['month'].value == "0" || 
		p_aValues.elements['year'].value == "" || 
		p_aValues.elements['day'].value == "" || 
		p_aValues.elements['month'].value == "")
		r_asErrors.push("Please choose a birth Month, Day, and Year.");
	//if we choose the usa, we need a zipcode 	
	if(p_aValues.elements['country'].value=='USA' && (/^[0-9]{5}$/.test(p_aValues.elements['zip'].value) == false))
		r_asErrors.push("US Zip Code must be 5 numbers.");				
	if(/[_a-zaA-Z0-9-]+([.+_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+([.a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})/.test(p_aValues.elements['email'].value) == false)
		r_asErrors.push("Email Address is in an invalid format.");
	if((p_aValues.elements['male'].checked == true && p_aValues.elements['female'].checked == true) || 
	   (p_aValues.elements['male'].checked == false && p_aValues.elements['female'].checked == false))
		r_asErrors.push("Please check either Male or Female.");

	return r_asErrors;
}


// ---------------------- Reset Functions -------------------------------------

function resetAccount(){
	enableUpdateForm();
	f = document.getElementById('account_form');
	
	f.elements['firstName'].value = "";
	f.elements['lastName'].value = "";	
	f.elements['email'].value = "";
	f.elements['female'].checked = false;
	f.elements['male'].checked = false;
	//f.elements['username'].value = "";
	f.elements['password'].value = "";
	f.elements['password2'].value = "";
	f.elements['year'].selectedIndex = 0;
	f.elements['month'].selectedIndex = 0;
	f.elements['day'].selectedIndex = 0;
	f.elements['zip'].value = "";
	f.elements['country'].selectedIndex = 0;	
	
	$('#account_errors').html('');
}

function disableUpdateForm(){
	f = document.getElementById('account_form');
	
	f.elements['firstName'].disabled = true;
	f.elements['lastName'].disabled = true;	
	f.elements['email'].disabled = true;
	f.elements['female'].disabled = true;
	f.elements['male'].disabled = true;
	//f.elements['username'].disabled = true;
	f.elements['password'].disabled = true;
	f.elements['password2'].disabled = true;
	f.elements['year'].disabled = true;
	f.elements['month'].disabled = true;
	f.elements['day'].disabled = true;
	f.elements['zip'].disabled = true;	
	f.elements['country'].disabled = true;	
	document.getElementById('account_submit').disabled = true;
}

function enableUpdateForm(){
	f = document.getElementById('account_form');
	
	f.elements['firstName'].disabled = false;
	f.elements['lastName'].disabled = false;	
	f.elements['email'].disabled = false;
	f.elements['female'].disabled = false;
	f.elements['male'].disabled = false;
	//f.elements['username'].disabled = false;	
	f.elements['password'].disabled = false;
	f.elements['password2'].disabled = false;
	f.elements['year'].disabled = false;
	f.elements['month'].disabled = false;
	f.elements['day'].disabled = false;
	f.elements['zip'].disabled = false;	
	f.elements['country'].disabled = false;	
	document.getElementById('account_submit').disabled = false;
}


function resetLogin(){
	enableLoginForm();
	f = document.getElementById('login_form');
		
	f.elements['username'].value = "";		
	f.elements['password'].value = "";	
	$('#login_errors').html('');
}

function disableLoginForm(){
	f = document.getElementById('login_form');
		
	f.elements['username'].disabled = true;		
	f.elements['password'].disabled = true;	
	document.getElementById('login_submit').disabled = true;
}

function enableLoginForm(){
	f = document.getElementById('login_form');
	f.elements['username'].disabled = false;		
	f.elements['password'].disabled = false;	
	document.getElementById('login_submit').disabled = false;
}

function disableForgotPwForm(){
	f = document.getElementById('forgot_pw_form');
		
	f.elements['email'].disabled = true;		
	document.getElementById('forgot_pw_submit').disabled = true;
}

function resetRegister(){
	
	enableRegisterForm();
	f = document.getElementById('register_form');
	
	f.elements['firstName'].value = "";	
	f.elements['lastName'].value = "";	
	f.elements['email'].value = "";
	f.elements['male'].checked = false;
	f.elements['female'].checked = false;
	f.elements['username'].value = "";
	f.elements['password'].value = "";
	f.elements['password2'].value = "";
	f.elements['year'].selectedIndex = 0;
	f.elements['month'].selectedIndex = 0;
	f.elements['day'].selectedIndex = 0;		
	f.elements['zip'].value = "";		
	f.elements['country'].selectedIndex = 0;
	f.elements['reg_newsletter'].checked = false;
	f.elements['declined_info'].checked = false;
	$('#register_errors').html(''); 
}

function disableRegisterForm(){
	f = document.getElementById('register_form');
	
	f.elements['firstName'].disabled = true;
	f.elements['lastName'].disabled = true;
	f.elements['email'].disabled = true;
	f.elements['male'].disabled = true;
	f.elements['female'].disabled = true;
	f.elements['zip'].disabled = true;
	f.elements['country'].disabled = true;
	f.elements['username'].disabled = true;
	f.elements['password'].disabled = true;
	f.elements['password2'].disabled = true;
	f.elements['year'].disabled = true;
	f.elements['month'].disabled = true;
	f.elements['day'].disabled = true;	
	f.elements['reg_newsletter'].disabled = true;
	f.elements['declined_info'].disabled = true;
	document.getElementById('register_submit').disabled = true;
}


function enableRegisterForm(){
	f = document.getElementById('register_form');
	
	f.elements['firstName'].disabled = false;
	f.elements['lastName'].disabled = false;
	f.elements['email'].disabled = false;
	f.elements['male'].disabled = false;
	f.elements['female'].disabled = false;
	f.elements['username'].disabled = false;
	f.elements['password'].disabled = false;
	f.elements['password2'].disabled = false;
	f.elements['year'].disabled = false;
	f.elements['month'].disabled = false;
	f.elements['day'].disabled = false;	
	f.elements['zip'].disabled = false;	
	f.elements['country'].disabled = false;
	f.elements['reg_newsletter'].disabled = false;
	f.elements['declined_info'].disabled = false;
	document.getElementById('register_submit').disabled = false;
}


function resetNewsletterForm(){
	enableNewsletterForm();
	f = document.getElementById('newsletter_form');

	f.elements['email'].value = "";	
}

function disableNewsletterForm(){
	f = document.getElementById('newsletter_form');
	
	f.elements['email'].disabled = true;
	document.getElementById('news_submit').disabled = true;
}

function enableNewsletterForm(){
	f = document.getElementById('newsletter_form');
	
	f.elements['email'].disabled = false;
	document.getElementById('news_submit').disabled = false;
}


function resetNewsletterModuleForm(){
	enableNewsletterModuleForm();
	f = document.getElementById('newsletter_module_form');
		
	f.elements['email'].value = "";	
}

function disableNewsletterModuleForm(){
	f = document.getElementById('newsletter_module_form');
	
	f.elements['email'].disabled = true;
	document.getElementById('newsletter_module_submit').disabled = true;
}

function enableNewsletterModuleForm(){
	f = document.getElementById('newsletter_module_form');
	
	f.elements['email'].disabled = false;
	document.getElementById('newsletter_module_submit').disabled = false;
}

function resetDirectoryForm(){
	enableDirectoryForm();
	f = document.getElementById('directory_form');
		
	f.elements['email'].value = "";	
}

function disableDirectoryForm(){
	f = document.getElementById('directory_form');
	
	f.elements['email'].disabled = true;
	document.getElementById('directory_submit').disabled = true;
}

function enableDirectoryForm(){
	f = document.getElementById('directory_form');
	
	f.elements['email'].disabled = false;
	document.getElementById('directory_submit').disabled = false;
}




// ---------------------- Ajax Functions --------------------------------------

BaseAjax.getUser = function(){
	BaseAjax._xArgs.data = 'a=getUserAccount';
	BaseAjax._xArgs.returnDiv = '#return_div';
	BaseAjax.makeAjaxCall('/include/lib/user/action.php');	
}

BaseAjax.logout = function(){
	BaseAjax._xArgs.data = 'a=logoutUser';
	BaseAjax._xArgs.returnDiv = '#return_div';
	BaseAjax.makeAjaxCall('/include/lib/user/action.php');	
}

BaseAjax.register = function(){	
	f = document.getElementById('register_form');
    BaseAjax._xArgs.data = 'a=createUser';
	BaseAjax._xArgs.data += '&username='+escape(f.elements['username'].value);
    BaseAjax._xArgs.data += '&firstName='+escape(f.elements['firstName'].value);
    BaseAjax._xArgs.data += '&lastName='+escape(f.elements['lastName'].value);	
    BaseAjax._xArgs.data += '&email='+escape(f.elements['email'].value);	
    BaseAjax._xArgs.data += '&password='+escape(f.elements['password'].value);
    BaseAjax._xArgs.data += '&password2='+escape(f.elements['password2'].value);
    BaseAjax._xArgs.data += '&year='+escape(f.elements['year'].value);
	BaseAjax._xArgs.data += '&month='+escape(f.elements['month'].value);
	BaseAjax._xArgs.data += '&day='+escape(f.elements['day'].value);	
    BaseAjax._xArgs.data += '&zip='+escape(f.elements['zip'].value);	
    BaseAjax._xArgs.data += '&country='+escape(f.elements['country'].value);	
	if(f.elements['male'].checked)
		BaseAjax._xArgs.data += '&gender=m';
	else if(f.elements['female'].checked)
		BaseAjax._xArgs.data += '&gender=f';
	
	if(f.elements['reg_newsletter'].checked)
		BaseAjax._xArgs.data += '&newsletter=y';
	else
		BaseAjax._xArgs.data += '&newsletter=n';
	
	if(f.elements['declined_info'].checked)
		BaseAjax._xArgs.data += '&declined_info=y';
	else
		BaseAjax._xArgs.data += '&declined_info=n';	
	
	
    BaseAjax._xArgs.returnDiv = '';
	BaseAjax._xArgs.callBack = BaseAjax.register_callback;
	BaseAjax.makeAjaxCall('/include/lib/user/action.php');	
}

BaseAjax.register_callback = function(){	
	//enableRegisterForm();
	$('#return_div').html(BaseAjax.returnVar);
}


BaseAjax.update = function(){
	f = document.getElementById('account_form');
	
		BaseAjax._xArgs.data = 'a=updateUser';
		BaseAjax._xArgs.data += '&firstName='+escape(f.elements['firstName'].value);
		BaseAjax._xArgs.data += '&lastName='+escape(f.elements['lastName'].value);	
		BaseAjax._xArgs.data += '&email='+escape(f.elements['email'].value);
		BaseAjax._xArgs.data += '&username='+escape(f.elements['username'].value);			
		BaseAjax._xArgs.data += '&password='+escape(f.elements['password'].value);
		BaseAjax._xArgs.data += '&password2='+escape(f.elements['password2'].value);
		BaseAjax._xArgs.data += '&year='+escape(f.elements['year'].value);
		BaseAjax._xArgs.data += '&month='+escape(f.elements['month'].value);
		BaseAjax._xArgs.data += '&day='+escape(f.elements['day'].value);	
		BaseAjax._xArgs.data += '&zip='+escape(f.elements['zip'].value);	
		BaseAjax._xArgs.data += '&country='+escape(f.elements['country'].value);
		if(f.elements['male'].checked)
			BaseAjax._xArgs.data += '&gender=m';
		else if(f.elements['female'].checked)
			BaseAjax._xArgs.data += '&gender=f';		

	BaseAjax._xArgs.returnDiv = '#return_div';
	
    BaseAjax.makeAjaxCall('/include/lib/user/action.php');
	BaseAjax._xArgs.callBack = BaseAjax.update_callback;
}

BaseAjax.update_callback = function(){	
	enableUpdateForm();	
}

BaseAjax.login = function(){
	f = document.getElementById('login_form');
	
	BaseAjax._xArgs.data = 'a=loginUser';
	BaseAjax._xArgs.data += '&username='+escape(f.elements['username'].value);	
	BaseAjax._xArgs.data += '&password='+escape(f.elements['password'].value);
	BaseAjax._xArgs.returnDiv = '#return_div';
	
	BaseAjax._xArgs.callBack = BaseAjax.login_callback;
	BaseAjax.makeAjaxCall('/include/lib/user/action.php');
}

BaseAjax.login_callback = function(){
	enableLoginForm();

	if (typeof(_xCaptureModuleJS) != "undefined") {// @TODO - CAPTURE - remove this check once login functionality is built into the capture module directly
		if (_xCaptureModuleJS.openLoginFlag) {
			if( scrollback == true ){
				_xCaptureModuleJS.openLoginFlag = false;
				$.scrollTo("#just_captured", 0, { duration:500, onAfter:function () { _xCaptureModuleJS.swapContent("upload"); } });
			}
		}
	}
	
	else if (g_bOpenLoginFlag) {
			
			if( scrollback == true ){
				g_bOpenLoginFlag = false;
				$.scrollTo("#comments_module", 0, { duration:500, onAfter:function () { $('.comment_box_wrapper').slideDown(400); } });
			}
	}
	else if (g_bArchiveOpenLoginFlag) {
			if( scrollback == true ){
				g_bArchiveOpenLoginFlag = false;
				$.scrollTo("#archive_tabs", 0, { duration:500, onAfter:function () { archiveIssueRedirect(g_nArchiveIssue); } });
				g_nArchiveIssue="";
			}
	}
	
}

BaseAjax.forgot_pass = function(){
	
	f = document.getElementById('forgot_pw_form');

	BaseAjax._xArgs.data = 'a=forgotPassword';
	BaseAjax._xArgs.data += '&email='+escape(f.elements['email'].value);
	
	BaseAjax._xArgs.returnDiv = '#return_div';
	BaseAjax.makeAjaxCall('/include/lib/user/action.php');
}

BaseAjax.newsletterSignup = function(){
	
	f = document.getElementById('newsletter_form');
	
	BaseAjax._xArgs.data = 'a=newsletterSignup';
	BaseAjax._xArgs.data += '&email='+escape(f.elements['email'].value);
		
	BaseAjax._xArgs.returnDiv = '#return_div';
	BaseAjax.makeAjaxCall('/include/lib/user/action.php');
}

BaseAjax.newsletterModuleSignup = function(){
	
	f = document.getElementById('newsletter_module_form');
	
	BaseAjax._xArgs.data = 'a=newsletterModuleSignup';
	BaseAjax._xArgs.data += '&email='+escape(f.elements['email'].value);
	
	BaseAjax._xArgs.returnDiv = '#return_div';
	BaseAjax.makeAjaxCall('/include/lib/user/action.php');
}

BaseAjax.directorySignup = function(){

	f = document.getElementById('directory_form');

	BaseAjax._xArgs.data = 'a=directorySignup';
	BaseAjax._xArgs.data += '&email='+escape(f.elements['email'].value);

	BaseAjax._xArgs.returnDiv = '#return_div';
	BaseAjax.makeAjaxCall('/include/lib/user/action.php');
}