$(document).ready(function () {
    if ($('#auth').attr('id')) {
        $('a[@class*="showAuth"]').click(showAuthForm);
    }
    showConfirmForm();
});

function showAuthForm (invoker, openIdMode) {
    if (invoker) {
        $(invoker).parents('div[@class^="layer_over_message"]').killPopup();
    }
    var container = $('#auth');
    var params = null;
    if (openIdMode) {
       params = {'openIdMode': 1};
    }
    showPopup('login_window', {type: 'GET', data: params, dataType: 'html', url: '/users/auth-form/', success: processAuthFormResponse}, '#auth', 'Авторизация');
    if ($('#capcha1').css('display') == 'none') {
       $('#capcha1').setNewCaptcha();
    }
    return false;
}

function processAuthFormResponse (responseText) {
    $('body').append(responseText);
    popup = $('#auth');
    $('#form_login').ajaxForm({dataType: 'json', beforeSubmit: beforeSubmit, success: proccessAuthFormSumbitResponse});
    popup.openPopup();
    if ($('#capcha1').attr('id')) {
       $('#capcha1').setNewCaptcha();
    }
    return false;
}

function proccessAuthFormSumbitResponse (responseText) {
    form = $('#auth').find('form');
    if (responseText.status == 'success') {
        $('#auth').closePopup();
        if (responseText.params) {
            params = responseText.params;
            $.get('/' + params.module + '/' + params.controller + '/' + params.action, params);
        }
        refreshScreen();
    } else {
        $('#capcha1').setNewCaptcha();
        form.highlightFields(responseText.fields, 'highlight');
        form.hideSplash();
    }
}

function showSignupForm () {
    $('#auth').closePopup(true);
    var container = $('#signup');
    showPopup('signup_window', {type: 'GET', dataType: 'html', url: '/users/signup1/', success: processSignupFormResponse}, '#signup', 'Регистрация (шаг 1 из 2)');
    if ($('#capcha2').css('display') == 'none') {
       $('#capcha2').setNewCaptcha();
    }
    return false;
}

function processSignupFormResponse (responseText) {
    $('body').append(responseText);
    popup = $('#signup');
    popup.find('form').ajaxForm({dataType: 'json', beforeSubmit: beforeSubmit, success: proccessSignupFormSumbitResponse});
    popup.openPopup();
    $('#capcha2').setNewCaptcha();
    return false;
}

function proccessSignupFormSumbitResponse (responseText) {
    form = $('#signup').find('form');
    if (responseText.status == 'success') {
       if (responseText.params) {
           params = responseText.params;
           $.get('/' + params.module + '/' + params.controller + '/' + params.action, params);
       }
       showSignup2();
    } else {
       $('#capcha2').setNewCaptcha();
       form.highlightFields(responseText.fields, 'highlight');
       form.hideSplash();
    }
}

function showSignup2 () {
    $.get('/users/signup2/', function (data) {
        $('#signup').closePopup(true);
        $('body').append(data);
        $('#confirm').openPopup();
    });
}

function showConfirmForm () {
    var container = $('#confirm');
    if (container.attr('id')) {
        container.openPopup();
        container.find('a').click(function () {
            container.closePopup();
            showAuthForm();
        });
    }
}

function showUserDetails () {
    var options = {type: 'GET', dataType: 'html', url: '/users/form/', success: processUserDetailsResponse};
    showPopup('details_window', options, 'details', 'Профиль');
    return false;
}

function processUserDetailsResponse (responseText) {
    $('body').append(responseText);
    detailsPopup = $('#details');
    detailsPopup.find('form').ajaxForm({dataType: 'json', beforeSubmit: beforeSubmit, success: processUserSubmitResponse});
    detailsPopup.find('a[@class="pic_delete"]').click(deleteAvatar);
    detailsPopup.openPopup();
    return false;
}

function processUserSubmitResponse (responseText) {
    form = detailsPopup.find('form');
    if (responseText.status == 'success') {
        detailsPopup.closePopup();
        refreshScreen();
    } else if (responseText.status == 'access denied') {
        popup.addAlert('Доступ запрещен');
    } else {
        showMessages(responseText.currentMessages);
        form.highlightFields(responseText.fields, 'highlight');
        form.hideSplash();
    }
}

function deleteAvatar () {
    if(window.confirm('Удалить картинку?')) {
        $.ajax({type: "GET", url: $(this).attr('href'), dataType: 'json', success: function (response) {
            if (response.status == 'invalid') {
                showMessages(response.currentMessages);
            } else {
                $('#avatar_box').html('<p class="no_images">Нет&nbsp;картинки</p>');
            }
        }
        });
    }
    return false;
}

function showPasswordForm () {
    $('#auth').closePopup(true);
    var container = $('#password');
    showPopup('password_window', {type: 'GET', dataType: 'html', url: '/users/password-form/', success: processPasswordFormResponse}, '#password', 'Восстановление пароля');
    if ($('#capcha3').css('display') == 'none') {
       $('#capcha3').setNewCaptcha();
    }
    return false;
}

function processPasswordFormResponse (responseText) {
    $('body').append(responseText);
    popup = $('#password');
    popup.find('form').ajaxForm({dataType: 'json', beforeSubmit: beforeSubmit, success: proccessPasswordFormSumbitResponse});
    popup.openPopup();
    $('#capcha3').setNewCaptcha();
    return false;
}

function proccessPasswordFormSumbitResponse (responseText) {
    form = $('#password').find('form');
    if (responseText.status == 'success') {
        popup.addAlert('Пароль отправлен на почту', null, 'notification');
    } else {
        $('#capcha3').setNewCaptcha();
        form.highlightFields(responseText.fields, 'highlight');
        form.hideSplash();
    }
}