$j = jQuery.noConflict();

function showLogin(){
	$j('.overlay_title_bar .error_message').html('');
	showMask();
	$j('#login_overlay').fadeIn('fast');
}

function hideLogin(){
	hideMask();
	$j('#login_overlay').fadeOut('fast');
}

function showRegister(){
	$j('#register_overlay').css('z-index','3000');
	showMask();
	$j('#register_overlay').fadeIn('fast');
}

function hideRegister(){
	hideMask();
	$j('#register_overlay').fadeOut('fast');
	$j('#register_2_overlay').fadeOut('fast');
	$j('#register_complete_overlay').fadeOut('fast');
}

function showOptin(){
	$j('#optin_overlay').center();
	$j('#optin_overlay').css('z-index','3000');
	showMask();
	$j('#optin_overlay').fadeIn('fast');
}

function showOptinStatus(){
	$j('#optin_status_overlay').center();
	$j('#optin_overlay').css('z-index','3000');
	$j('#optin_status_overlay').fadeIn('fast');
	//setTimeout("$j('#optin_status_overlay').fadeOut('fast'); hideMask();", 5000);
}

function hideOptin(){
	hideMask();
	$j('#optin_overlay').fadeOut('fast');
	$j('#optin_status_overlay').fadeOut('fast');
}

function goToStep1(){
	$j('#register_overlay').css('z-index','3000');
	$j('#register_overlay').fadeIn('fast');
	$j('#register_2_overlay').fadeOut('fast');
}

function goToRegistrationComplete(){
	if(typeof($j.checkoutAfterLogin) != 'undefined'){
		window.location.reload( false );
	}
	else{
		refreshAccountLinks();
		$j('#register_complete_overlay').fadeIn('fast');
	}
}

function processRegistration(){
	showLoader();
	$j('#register_2_overlay').css('z-index','100');
	$j('.account_overlay_content .error_message').html('');
	$j('.overlay_title_bar .error_message').html('');
	$j.post('/users/save_registration', $j('#registerStep2Form').serialize(),
								   function(data){
									   //alert(data);
									   if(data.success == 'true'){
									   	$j('#register_2_overlay').fadeOut('fast');
										goToRegistrationComplete();
									   }
									   else{
									   		setFormErrors(data['errors']);
											$j('#register_2_overlay').css('z-index','3000');
									   }
									   hideLoader();
								}, 'json');
}


function validateStep1(){
	showLoader();
	$j('#register_overlay').css('z-index','100');
	$j('#register_overlay .account_overlay_content .error_message').html('');
	$j('#register_overlay .overlay_title_bar .error_message').html('');
	$j.post('/users/register', $j('#registerStep1Form').serialize(),
								   function(data){
									   if(data.success == 'true'){
									   	$j('#register_2_overlay').css('z-index','3000');
										$j('#register_overlay').fadeOut('fast');
										$j('#register_2_overlay').fadeIn('fast');
									   }
									   else{
									   		setFormErrors(data['errors']);
									   }
									   $j('#register_overlay').css('z-index','3000');
									   hideLoader();
								}, 'json');
}

function validateOptin(){
	showLoader();
	$j('#optin_overlay').hide();
	$j('#optin_overlay').css('z-index','100');
	$j('#optin_overlay .account_overlay_content .error_message').html('');
	$j('#optin_overlay .overlay_title_bar .error_message').html('');
	$j.post('/users/optin', $j('#optInForm').serialize(),
								   function(data){
									   //alert(debug(data,0));
									   if(data.success == 'true'){
										   showOptinStatus();
									   }
									   else{
									   		setFormErrors(data['errors']);
											$j('#optin_overlay').fadeIn('fast');
									   }
									   $j('#optin_overlay').css('z-index','3000');
									   hideLoader();
								}, 'json');
}

function debug(obj, indent) {
	var out = '';
	var tabs  = '';
	for (var i = 0; i <= indent; i++) {
		tabs += "\t";
	}
	for (itm in obj){
		if (Object.prototype.toString.call(obj[itm]) === '[object Object]') {
			out += tabs + itm + " {\n";
			out += tabs + debug(obj[itm], indent+1);
			out += tabs + "}\n";
		} else {
			out += tabs + itm + ": " + obj[itm] + "\n";
		}
	}
	return out;
}

function setFormErrors(errors){
	for(var i in errors){
		//alert(errors[i]);
		$j('#'+i+'_error_msg').html(errors[i]);
		if(i == 'email_address'){
			$j('#registrationEmail').html(errors['registrationEmail']);
		}
	}
}

function processLogin(){
	showLoader();
	$j('.overlay_title_bar .error_message').html('');
	$j('#login_overlay').fadeOut('fast');
	$j.post('/users/login', $j('#loginForm').serialize(),
								   function(data){
									   if(data.success == 'true'){
											if($j.checkoutAfterLogin == true){
												$j('a.checkout_not_logged_in').removeClass('checkout_not_logged_in');
												$j.checkoutAfterLogin = false;
												//$j('#checkout_btn').trigger('click');
												window.location.reload( false );
											}
											else{
												window.location.reload( false );
											}
									   }
									   else{
									   		setFormErrors(data['errors']);
											hideLoader();
											$j('#login_overlay').fadeIn('fast');
									   }
								}, 'json');
}

function refreshAccountLinks(){
	url = '/users/refresh_account_links';
	$j("#account_links_container_wrap").load(url);
}

function logout(){
	showLoader();
	showMask();
	document.location.href = '/users/logout&redirect='+document.location.href.replace('#', 'hash');
}

function initAccountLinks(){
	$j('#login_link').live('click',function(event){
									event.preventDefault();
									$j.checkoutAfterLogin = false;
									showLogin(); 	
									 });
	
	$j('a.checkout_not_logged_in').click(function(event){
									event.preventDefault();
									$j.checkoutAfterLogin = true;
									showLogin(); 	
									 });
	
	$j('#do_login_link').click(function(event){
									event.preventDefault();
									processLogin(); 	
									 });
	
	$j('#hide_login_link').click(function(event){
									event.preventDefault();
									hideLogin(); 	
									 });
	
	$j('#login_create_account_link').click(function(event){
									event.preventDefault();
									$j('#login_overlay').fadeOut('fast');
									$j('#register_overlay').fadeIn('fast');
									 });
	
	$j('#register_link').live('click',function(event){
									event.preventDefault();
									showRegister();
									 });
	$j('#hide_register_link').click(function(event){
									event.preventDefault();
									hideRegister(); 	
									 });
	
	$j('.optin_link').click(function(event){
									event.preventDefault();
									showOptin(); 	
									 });
	$j('#hide_optin_link, #hide_optin_status_link').click(function(event){
									event.preventDefault();
									hideOptin(); 	
									 });
	
	$j('#hide_register_2_link').click(function(event){
									event.preventDefault();
									hideRegister(); 	
									 });
	
	$j('#hide_register_complete_link').click(function(event){
									event.preventDefault();
									hideRegister(); 	
									 });
	
	$j('#register_step_2_link').click(function(event){
									event.preventDefault();
									validateStep1(); 	
									 });
	
	$j('#register_step_1_link').click(function(event){
									event.preventDefault();
									goToStep1(); 	
									 });
	
	$j('#register_step_complete_link').click(function(event){
									event.preventDefault();
									processRegistration(); 	
									 });
	
	$j('#logout_link').click(function(event){
									event.preventDefault();
									logout(); 	
									 });
	
}

function checkForceLogin(){
	if(typeof($j.forceLogin) != 'undefined'){
		$j('#hide_login_link').css('display', 'none');
		$j('#login_create_account_link').css('display', 'none');
		showLogin();
	}
}

$j(document).ready(function() {
	checkForceLogin();
	initAccountLinks();
});
