/*
 * DrivingSales jQuery Library
 * File: 	jquery.ds.login.js
 * Purpose: login functions
 *
 * Copyright (c) 2010 DrivingSales, Inc.
 *
 * Date: 6/08/2010
 */

var ajax_login_post_form = null;
var joining_community = false;
var community_id = 0;
var refresh_after_login = false;
var login_callback = null;
var reg_callback = null;
var scroll_y = 0;

function pre_popup(){ scroll_y = window.pageYOffset; $.scrollTo(0); $("#wrap").hide('fast'); }
function post_popup(){ $("#wrap").show('fast'); setTimeout( function(){ $.scrollTo(scroll_y); }, 1000); }

function ajax_login(first_run, template, submit_now, ral, callbackFunction)
{
	pre_popup();
	
	var params = {};
	if(first_run == null) { params = $("#ajax-login-form").serializeArray(); }
	if(template == null) { template = 'default'; }
	if(submit_now == true) { params = { 'email': $('#ajax-email').val(), 'pass': $('#ajax-pass').val() }; }
	if(ral == true) { refresh_after_login = true; }
	if(callbackFunction != null && callbackFunction != false) { login_callback = callbackFunction; } else if(callbackFunction == false) { login_callback = null; }
	$("#popup-login .popup-inner .content").html("<h2>Loading...</h2>");
	$.post(baseUrl+'ajax/calls_user/login_or_register/login/'+template+'/'+new Date().getTime(), params, function(data) {
		$("#popup-login .popup-inner .content").html(data.html);
		$("#popup-login").show('fast');
		
		if(data.success)
		{
			setTimeout(function(){$("#popup-login").fadeOut('slow');},1000);
			setTimeout("ajax_login_success()",1100);
			if(typeof login_callback == 'function')
			{
				login_callback.call();
			}
			else if(typeof reg_callback == 'function')
			{
				reg_callback.call();
			}
			if(refresh_after_login)
			{
				location.reload();
			}
		}
	}, "json");
}

function ajax_register(first_run, template, pass_values, callbackFunction)
{
	pre_popup();
	
	var params = {};
	if(first_run == null) { params = $("#ajax-reg-form").serializeArray(); }
	if(template == null) { template = 'default'; }
	if(pass_values != null) { params = pass_values; }
	if(callbackFunction != null && callbackFunction != false) { reg_callback = callbackFunction; } else if(callbackFunction == false) { reg_callback = null; }
	$("#popup-login .popup-inner .content").html("<h2>Loading...</h2>");
	$.post(baseUrl+'ajax/calls_user/login_or_register/register/'+template+'/'+new Date().getTime(), params, function(data) {
		$("#popup-login .popup-inner .content").html(data.html);
		$("#popup-login").show('fast');
		
		if(data.success)
		{
			setTimeout(function(){$("#popup-login").fadeOut('slow');},1000);
			setTimeout("ajax_login_success()",1100);
			if(typeof reg_callback == 'function')
			{
				reg_callback.call();
			}
		}
	}, "json");
}

function ajax_forgot_password(first_run, template)
{
	var params = {};
	if(first_run == null) { params = $("#ajax-forgotpass-form").serializeArray(); }
	$("#popup-login .popup-inner .content").html("<h2>Loading...</h2>");
	$.post(baseUrl+'ajax/calls_user/forgot_password/'+template+'/'+new Date().getTime(), params, function(data) {
		$("#popup-login .popup-inner .content").html(data.html);
		$("#popup-login").show('fast');
		
		if(data.success){}
	}, "json");
}

function ajax_community_join(id, confirm, submit_now)
{
	pre_popup();
	
	joining_community = true;
	community_id = id;
	if(submit_now == null) { submit_now = false; }
	if(!logged_in)
	{
		ajax_login(true, 'join_community', submit_now);
		return;
	}
	
	var params = {};
	if(confirm == true) { params = { join : "confirm" }; }
	$("#popup-login .popup-inner .content").html("<h2>Loading...</h2>");
	$.post(baseUrl+'ajax/calls_user/join_community/'+id+'/'+new Date().getTime(), params, function(data) {
		$("#popup-login .popup-inner .content").html(data.html);
		$("#popup-login").show('fast');
		
		if(data.join_success){
			setTimeout(function(){$("#popup-login").fadeOut('slow');},1000);
			setTimeout("ajax_community_join_success()",1100);
		}
	}, "json");
}

function ajax_community_join_success()
{
	location.reload(true);
}

function ajax_login_success()
{
	logged_in = true;
	if(ajax_login_post_form != null)
	{
		// Submit form
		$(ajax_login_post_form).submit();
	}
	if(joining_community == true)
	{
		// Run join community task
		ajax_community_join(community_id);
	}
	else
	{
		post_popup();
	}
	
	$("#greeting").load(baseUrl+'ajax/calls_user/greeting/'+new Date().getTime());
}

function ajax_login_set_post_form(post_form)
{
	ajax_login_post_form = post_form;
}

$(document).ready(function() {
	$("#popup-login #cancel").click( function(){ $("#popup-login").fadeOut('slow'); post_popup(); } );
});
