var regDialog = 0, regContinueDialog = 0;

$(document).ready(function(){

$('#regButton,.reg_link').click(function() {
    reload_registration_captcha();
    if(regContinueDialog) {
        $.dialogClose({type: regDialog});
        regContinueDialog = $.dialog({
            idContent: '#registration_continue',
            closeBtn: '#registration_continue .close',
            mainClass: 'userStyle',
            overlayColor: '#fff',
            overlayOpacity: '40'
        });
    }
    else {
        regDialog = $.dialog({
            idContent: '#registration',
            closeBtn: '#registration .close',
            mainClass: 'userStyle',
            overlayColor: '#fff',
            overlayOpacity: '40'
        });
    }
    return false;
});

$('#recReg, #recReg2').bind('click', function () {
    reload_registration_captcha('password_recover');
    idNumReg = $.dialog({
        idContent: '#recovery',
        closeBtn: '#recovery .close',
        mainClass: 'userStyle',
        overlayColor: '#fff',
        overlayOpacity: '40'
    });
    return false;
});

$('#captcha_registration').click(function(){reload_registration_captcha();});
$('#captcha_password_recover').click(function(){reload_registration_captcha('password_recover');});

$('#registration form').submit(function(){
    var form = $(this);
    var data = form.serializeArray();
    $.ajax({
        url: BASE_URL + 'auth/ajax_register_step1',
        type: 'POST',
        dataType: 'json',
        data: data,
        beforeSend: function(){
            $('.error-tooltip').remove();
            form.find('input').removeClass('error');
            form.find('.submitCRY').css('opacity', '0.5');
        },
        success: function(result) {
            form.find('.submitCRY').css('opacity', '1');
            for(field_name in result.errors) {
                var f = form.find('input[name="'+field_name+'"]');
                if(f.size()) {
                    var error = result.errors[field_name];
                    f.addClass('error');
                    $('<div class="error-tooltip"></div>').appendTo('body').html(error)
                        .css({top: f.offset().top + 'px', left: (f.offset().left + f.width()) + 'px'}).show();
                }
            }
            if(result.errors['captcha']) reload_registration_captcha();
            if(form.find('input.error').size() == 0) {
                $.dialogClose({type: regDialog});
                regContinueDialog = $.dialog({
                    idContent: '#registration_continue',
                    closeBtn: '#registration_continue .close',
                    mainClass: 'userStyle',
                    overlayColor: '#fff',
                    overlayOpacity: '40'
                });
            }
        }
    });
    return false;
});

$('#recovery form').submit(function(){
    var form = $(this);
    var data = form.serializeArray();
    $.ajax({
        url: BASE_URL + 'auth/ajax_recover_password',
        type: 'POST',
        dataType: 'json',
        data: data,
        beforeSend: function(){
            form.find('input').removeClass('error');
            form.find('.submitCR').css('opacity', '0.5');
        },
        success: function(result) {
            form.find('.submitCR').css('opacity', '1');
            for(field_name in result.errors) {
                var f = form.find('input[name="'+field_name+'"]');
                if(f.size()) {
                    var error = result.errors[field_name];
                    f.addClass('error');
                    $('<div class="error-tooltip"></div>').appendTo('body').html(error)
                        .css({top: f.offset().top + 'px', left: (f.offset().left + f.width()) + 'px'}).show();
                }
            }
            if(result.errors['captcha']) reload_registration_captcha('password_recover');
            if(form.find('input.error').size() == 0) {
                location = BASE_URL + '/auth/login/';
            }
        }
    });
    return false;
});

$('#registration_continue form').submit(function(){
    var form = $(this);
    var data = form.serializeArray();
    $.ajax({
        url: BASE_URL + 'auth/ajax_register_step2',
        type: 'POST',
        dataType: 'json',
        data: data,
        beforeSend: function(){
            form.find('input').removeClass('error');
            form.css('opacity', '0.5');
        },
        success: function(result) {
            for(field_name in result.errors) {
                var f = form.find('input[name="'+field_name+'"]');
                if(f.size()) {
                    var error = result.errors[field_name];
                    f.addClass('error');
                    $('<div class="error-tooltip"></div>').appendTo('body').html(error)
                        .css({top: f.offset().top + 'px', left: (f.offset().left + f.width()) + 'px'}).show();
                }
            }
            if(form.find('input.error').size() == 0) {
                location.reload();
            }
            else {
                form.css('opacity', '1');
            }
        }
    });
    return false;
});

$('#id_avatar_file').live('change', function(){
    upload_registration_avatar();
});

// start debug
/*regContinueDialog = $.dialog({
    idContent: '#registration_continue',
    closeBtn: '#registration_continue .close',
    mainClass: 'userStyle',
    overlayColor: '#fff',
    overlayOpacity: '40'
});*/
// end debug

});

function reload_registration_captcha(tag) {
    if(!tag) tag = 'registration';
    $('#captcha_'+tag).attr('src', BASE_URL + 'captcha/'+tag+'?'  + (new Date().getTime()));
}

function upload_registration_avatar() {
    $("#avatar_upload_in_progress")
    .ajaxStart(function(){
        $(this).show();
        $('#avatar_upload_error').hide();
    })
    .ajaxComplete(function(){
        $(this).hide();
    });
    var form = $('#avatar_upload_form');
    data = { ajax: 1 };
    data[CSRF_TOKEN_NAME] = CSRF_HASH;
    $.ajaxFileUpload({
        url: form.attr('action'),
        secureuri:false,
        fileElementId:'id_avatar_file',
        dataType: 'json',
        data: data,
        success: function (data, status) {
            if(!data.error) {
                $('#avatar_image').attr('src', data.image.url).show();
            }
            else {
                $('#avatar_upload_error').html(data.error).show();
            }
        },
        error: function (data, status, e) {
        }
    });
    return false;
}
