/**
 * Client-side функции регистрации и авторизации пользователей
 * @author     Dmitry Bykadorov <dmitry.bykadorov@gmail.com>
 * @version    SVN: $Id: user.js 4 2009-04-12 15:36:57Z hudson $
 * 
 */

/**
 * Ajax запрос на авторизацию
 */
$.submitLogin = function(){
    $(".loginProgress").css("z-index", "1000");

    var remember_me;

    // Обрабатываем чекбокс
    if($("input[@name=remember_me]").attr('checked')){
        remember_me = 1;
    } else {
        remember_me = 0;
    }

    $.ajax({
        url:            "/" + $.page_vars['culture'] + "/user/login",
        type:           "POST",
        timeout:        100000,
        cache:          false,
        data: {
            email:      $("input[@name=email]").val(),
            password:   $("input[@name=password]").val(),
            remember_me:remember_me
        },
        success:        function(data, status){
            $("#commonPopUp").html(data);
        },
        complete:       function() {
            // Спрятать прогресс
            $(".loginProgress").css("z-index", "-1");
            // Если авторизация успешна нужно:
            if($("#loginSuccess").val()){
                var message = $("#loginMessage").val();
                // Закрыть попап регистрации
                $.modal.close();
                // Показать flash
                $.showFlash('ok', message);
                // Показать блок авторизованного пользователя
                $.toggleUserBlock();
                // Показать блок для сохранения результатов поиска
                $.toggleUserSearchBlock();
            }
        },
        error:          function(XMLHttpRequest, textStatus, errorThrown){
            $("#commonPopUp").html("<div id=\"searchError\">Ошибка выполнения запроса.<br>Если проблема повторяется несколько раз, пожалуйста обратитесь в службу поддержки.</div>");
        }
    });
};

/**
 * Ajax запрос на восстановление пароля
 */
$.submitNewPassword = function(){
    $(".loginProgress").css("z-index", "1000");

    $.ajax({
        url:            "/" + $.page_vars['culture'] + "/user/forgotPass",
        type:           "POST",
        timeout:        100000,
        cache:          false,
        data: {
            email:      $("input[@name=email]").val()
        },
        success:        function(data, status){
            $("#commonPopUp").html(data);
        },
        complete:       function() {
            // Спрятать прогресс
            $(".loginProgress").css("z-index", "-1");
            // Если авторизация успешна нужно:
            if($("#forgotpassSuccess").val()){
                var message = $("#forgotpassMessage").val();
                // Закрыть попап регистрации
                $.modal.close();
                // Показать flash
                $.showFlash('ok', message);
            }
        },
        error:          function(XMLHttpRequest, textStatus, errorThrown){
            var message = "Ошибка выполнения запроса.<br>Если проблема повторяется несколько раз, пожалуйста обратитесь в службу поддержки.";
            $.showFlash('err', message);
        }
    });
};
 
/**
 * Ajax запрос на регистрацию
 */
$.submitReg = function(){
    $(".registerProgress").css("z-index", "1000");
    $.ajax({
        url:                    "/" + $.page_vars['culture'] + "/user/registration",
        type:                   "POST",
        timeout:                100000,
        cache:                  false,
        data: {
            first_name:         $("input[@name=first_name]").val(),
            last_name:          $("input[@name=last_name]").val(),
            email_addr:         $("input[@name=email_addr]").val(),
            password_orig:      $("input[@name=password_orig]").val(),
            password_confirm:   $("input[@name=password_confirm]").val()
        },
        success:                function(data, status){
            $("#commonPopUp").html(data);
        },
        complete:               function() {
            // Спрятать прогресс
            $(".registerProgress").css("z-index", "-1");
            // Если регистрация успешна нужно:
            if($("#registrationSuccess").val()){
                //alert("registrationSuccess");
                var message = $("#registrationMessage").val();
                // Закрыть попап регистрации
                $.modal.close();
                // Показать flash
                $.showFlash('ok', message);
            }
        },
        error:                  function(XMLHttpRequest, textStatus, errorThrown){
            var message = "Ошибка выполнения запроса.<br>Если проблема повторяется несколько раз, пожалуйста обратитесь в службу поддержки.";
            $.showFlash('err', message);
        }
    });
};

/**
 * Сохранение предложения в фаворитах
 */
$.saveFavoriteProperty = function (property_id, object) {

    // Выполняем асинхронные запрос на сохранение
    $.ajax({
        url:        "/" + $.page_vars['culture'] + "/search/saveFavoriteProperty",
        type:       "POST",
        timeout:    100000,
        dataType:   'xml',
        cache:      false,
        data: {
            property_id: property_id
        },
        success: function(data, status){
            var message = $("#message", data).text();
            var success = $("#success", data).text();
            
            if(eval(success)){
                // Если все хорошо
                $.showFlash('ok', message);
                
                // Обновлем кнопку сохранения
                if( object ) {
                    $(object)
                        .removeClass('favorites')
                        .addClass('favorites-already-in')
                        .html($.page_vars['i18n_strings']['Already in favorites']);
                }
                return;
            }
            else
            {
                // Если какая-то ошибка...
                $.showFlash('warn', message);
                $("#top").focus();
                return;
            }
        },
        complete: function() {

        },
        error: function(XMLHttpRequest, textStatus, errorThrown){
            $.showFlash('err', $.page_vars['i18n_strings']['Query Error. Please contact support.']);
            $("#top").focus();
            return;
        }
    });
}