/*$Id: login.js,v 1.3 2009-02-20 15:39:53 dbernabei Exp $*/
/**
 * Login dialog script
 *
 * Displays a login inline dialog, submits it per AJAX and redirects the user
 * on successful login.
 * 
 * Example:
 * <a href="/orderHistory?SID=..." onclick="return login(this.href)" />
 *
 * Dynamic variables:
 * loginSpinner, loginMsgFailed, loginAjaxServer
 *
 * Copyright (C) 2007 GSI Commerce Europe S.L.. All rights reserved.
 */

var loginSpinner    = '...';
var loginAjaxServer = '/service/AJAXServer.php';

var loginMsgFailed  = 'Login failed. Please try again.';
var loginLostPasswordSent = 'Password sent.';

/*$().ready(function() {
    $('#loginDialog').jqm();
});*/

var login = {
    login: function(redirect, callback) {
        if (redirect) {
            login.redirect = redirect;
        }
        if (callback) {
        	login.callback = callback;
        }
        tb_show('', '#TB_inline?height=250&amp;width=350&amp;inlineId=loginDialog',false);//?height='+_mthis.height+'&amp;width='+_mthis.width+'
		//$('#loginDialog').jqmShow();
        return false;
    },

    showLostPassword: function() {
        $('#loginDialogLogin').hide();
        $('#loginDialogLostPassword').show();
    },

    showLogin: function() {
        $('#loginDialogLogin').show();
        $('#loginDialogLostPassword').hide();
    },

    submit: function(form) {
        var user     = $('#loginFieldUser').val();
        var password = $('#loginFieldPassword').val();

        var isValid = true;

        if (!user || !/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/i.test(user)) {
            isValid = false;
            $('#loginFieldUser').addClass('loginError');
        } else {
            $('#loginFieldUser').removeClass('loginError');
        }

        if (!password) {
            isValid = false;
            $('#loginFieldPassword').addClass('loginError');
        } else {
            $('#loginFieldPassword').removeClass('loginError');
        }

        if (!isValid)
        {
            return false;
        }

        $("#loginMessage").html(loginSpinner);
        $('.loginElement').attr('disabled', true);

        $.post(
            loginAjaxServer,
            {
                SID: SID,
                DataHandler: 'CustomerLogin',
                action: 'login',
                user: user,
                password: password
            },
            function(json){
                if (!json._result) {
                    alert('Error: Invalid response: ' + json);
                    return;
                }
                if (json._result != 1) {
                    $("#loginMessage").html(loginMsgFailed);
                   
                } else {
                    $("#loginMessage").empty();

					if (login.callback) {
                    	login.callback();
					} 
					if (login.redirect) {                    	
                        document.location.href = login.redirect;
                    } else {
                        tb_remove();
						//$('#loginDialog').jqmHide();
                    }
                }

                $('.loginElement').removeAttr('disabled');
            },
            'json'
        );

        return false;
    },

    lostSubmit: function(form, returnToLogin) {
        var user = $('#loginLostPasswordFieldUser').val();

        if (!user || !/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/i.test(user)) {
            $('#loginLostPasswordFieldUser').addClass('loginError');
            return false;
        } else {
            $('#loginLostPasswordFieldUser').removeClass('loginError');
        }

        $("#loginLostPasswordMessage").html(loginSpinner);
        $('.loginElement').attr('disabled', true);

        $.post(
            loginAjaxServer,
            {
                SID: SID,
                DataHandler: 'CustomerLogin',
                action: 'lostPassword',
                user: user
            },
            function(json){
                if (!json._result) {
                    alert('Error: Invalid response: ' + json);
                    return;
                }
                
                if (json._result != 1) {
                    $("#loginLostPasswordMessage").html(loginMsgFailed);
                } else if (returnToLogin) {
                    $("#loginLostPasswordMessage").empty();
                    $("#loginMessage").html(loginLostPasswordSent);
                    login.showLogin();
                } else {
                    $("#loginLostPasswordMessage").html(loginLostPasswordSent);
                    $("#loginLostPasswordSubmitFields").empty();
                    $("#loginLostPasswordReturnFields").show();
                }

                $('.loginElement').removeAttr('disabled');
            },
            'json'
        );

        return false;
    }
};
