$(document).ready(function () {
    $('#question').jFields();

    $('#add-answer').click(function () {
        var c, l;
        l = $('input[name=answer[]]').length;
        c = l + 1;

        if (l < 5) {
            $('#answers').append(
                $('<p></p>')
                    .append(
                        $('<label></label>')
                            .attr('id', 'question-answer-' + c)
                            .text(c + '. Svarsalternativ')
                    ).append(
                        $('<input />')
                            .addClass('text')
                            .attr({
                                'name': 'answer[]',
                                'id': 'question-answer-' + c,
                                'type': 'text'
                            })
                    )
            );
        } else {
            alert('Inte fler än fem svar.');
        }

        return false;
    });

    $('#add-category').click(function () {
        $('#categories').append(
            $('<p></p>')
                .addClass('row')
                .append(
                    $('<input />')
                        .addClass('radio')
                        .attr({
                            'type': 'radio',
                            'name': 'category'
                        })
                ).append(
                    $('<input />')
                        .addClass('text category')
                        .attr({
                            'name': 'category_ajax',
                            'type': 'text'
                        })
                ).append(
                    $('<a></a>')
                        .attr({
                            'id': 'add-category-send',
                            'href': '#'
                        })
                        .text('Spara')
                )
        );

        $('#categories input[type=text]').focus();

        return false;
    });

    $('#add-category-send').live('click', function () {
        var val = $('input[name=category_ajax]').val();

        if (val.length > 0) {
            $.post('/category/create', { 'category': val }, function (j) {
                if (typeof j.error !== 'undefined') {
                    // we can has error.
                } else {
                    $('#add-category-send').remove();
                    $('input[name=category_ajax]').remove();
                    $('#categories input[type=radio]:last')
                        .attr({
                            'checked': 'checked',
                            'id': 'category-' + j.id,
                            'value': j.id
                        }).after(
                            $('<label>')
                                .addClass('radio')
                                .attr('id', 'category-' + j.id)
                                .text(j.name)
                        );
                }
            }, 'json');
        }

        return false;
    });

    $('#question').submit(function () {
        var $fields, e, i, s;
        $fields = $(this).find(':input[type=text]');
        e = 0;
        s = $fields.length;

        for (i = 0; i < s; i += 1) {
            if ($fields.eq(i).val().length === 0) {
                $fields.eq(i).addClass('error');
                e += 1;
            } else {
                $fields.eq(i).removeClass('error');
            }
        }

        if ($(this).find('input[type=radio]:checked').length === 0) {
            e += 1;
        }

        return (e > 0) ? false : true;
    });

    $('#social a').click(function () {
        var $fields, data, i, s;
        $fields = $('#question').find('input[type=text]');
        s = $fields.length;
        data = '';

        for (i = 0; i < s; i += 1) {
            data += $fields.eq(i).attr('id') + ':' + encodeURIComponent($fields.eq(i).val());

            if (i < (s - 1)) {
                data += '|';
            }
        }

        if ($('#question input:checked').length > 0) {
            data += '|' + $('#question input:checked').attr('id') + ':1'
        }

        $.cookie('question', data, {expires: 1});
    });
}).ajaxSend(function () {
    $('#preloader').show();
}).ajaxStop(function () {
    $('#preloader').hide();
});