(function ($) {

// Добавление объявлений
$('.adding_parths')
    .on('click', '.sver:not(.a)', function(){
        $('.pod_add').slideUp(500);
        $('.adding_parths').children('.sver').removeClass('a');
        $('.adding_parths').children('.sver').text('Развернуть');
        $(this).addClass('a');
        $(this).text('Свернуть');
        $(this).parent().next().slideDown(500);
    })
    .on('click', '.sver.a', function(){
        $(this).removeClass('a');
        $(this).text('Развернуть');
        $(this).parent().next().slideUp(500);
    });

$('.page_adding_cat')
    .on('click', '.main_category > div.adding > a', function () {
        var id = $(this).attr('data-id');
        var html = '';
        $.getJSON('/rest-advert/categories/'+id, function(cabinet){
            if (cabinet.length != 0)
            {
                var ceil = Math.ceil(cabinet.length / 3) - 1;

                html += '<div class="subcats delka" style="width: 732px; display: block;">';
                html += '<table cellpadding="0" cellspacing="0">';

                for (i in cabinet) {
                    var elem = cabinet[i];

                    html += '<tr><td><a href="javascript:void(0);" data-id="'+elem.id+'">'+elem.name+'</a></td></tr>';

                    if(i == ceil || i == ceil*2+1)
                        html += '</table><table cellpadding="0" cellspacing="0">';
                    else if(i == cabinet.length)
                        html += '</table>';
                }

                html += '</div>';

                $('.delka').remove();
                var was = $('.main_category').find('a[data-id="'+id+'"]').parent().html();
                $('.main_category').find('a[data-id="'+id+'"]').parent().html(was + html);
                var height = $('.subcats').height() + 10;
                $('.page_adding_cat .category_on_main').css('margin-bottom',height);
            }
        });

        return false;
    })
    .on('click', '.subcats a', function (){
        var data_id = $(this).attr('data-id');
        var html = '';
        $('.subcats a').removeClass('cc');
        $(this).addClass('cc');
        $('input[name="category_id"]').val(data_id);

        // Добавляем список полей, выбранной категории

        $.getJSON('/rest-advert/category-fields/'+data_id, function(cabinet){
            if (cabinet.length != 0)
            {
                html += '<div class="category_fields"><table cellspacing="0" cellpadding="0" class="table_cat_field">';

                for (i in cabinet)
                {
                    var elem = cabinet[i];
                    var required = '';

                    if(elem.required == true)
                        required = '<span>*</span>';

                    if (elem.type == 'textarea')
                        html += '<tr><td valign="top">'+elem.name+required+'</td><td><textarea name="'+elem.name+'"></textarea></td></tr>';
                    else if (elem.type == 'select')
                    {
                        html += '<tr><td>'+elem.name+required+'</td><td><select name="'+elem.name+'">';
                        for (ii in elem.variants)
                        {
                            var elem2 = elem.variants[ii];

                            html += '<option value="'+elem2.value+'">'+elem2.value+'</option>';
                        }
                        html += '</select></td></tr>';
                    }
                    else if (elem.type == 'checkbox' || elem.type == 'radio')
                    {
                        html += '<tr><td>'+elem.name+required+'</td><td>';
                        for (ii in elem.variants)
                        {
                            var elem2 = elem.variants[ii];

                            if(elem.type == 'radio' && ii == 0)
                                html += '<input type="'+elem.type+'" name="'+elem.name+'" value="'+elem2.value+'" id="'+elem.name+'_'+elem2.id+'" checked="checked" /><label for="'+elem.name+'_'+elem2.id+'">'+elem2.value+'</label>';
                            else
                                html += '<input type="'+elem.type+'" name="'+elem.name+'" value="'+elem2.value+'" id="'+elem.name+'_'+elem2.id+'" /><label for="'+elem.name+'_'+elem2.id+'">'+elem2.value+'</label>';
                        }
                        html += '</td></tr>';
                    }
                    else
                    {
                        html += '<tr><td>'+elem.name+required+'</td><td><input type="'+elem.type+'" name="'+elem.name+'" /></td></tr>';
                    }

                }

                html += '</table></div>';

                $('.category_fields').remove();
                $('#step4').prev().before(html);
            }
        });

        // end

        return false;
    })
    .on('click', 'a.reset', function (){
        $('.subcats a').removeClass('cc');
        $('.page_adding_cat input').val('');

        var percent = $('.block_percent > div > span').text();

        $('.block_percent > div > div').animate({
            width: "-="+percent
        }, 2000, function() {
            $(this).next().text('0%');
        });

        return false;
    })
    .on('click', '#step2, #step3, #step4', function(){
        var step = $(this).attr('id');

        $(this).parent().slideUp(500);
        $(this).parent().next().children('.sver').click();

        if(step == 'step2')
        {
            $('.block_percent > div > div').animate({
                width: "+=25%"
            }, 2000, function() {
                $(this).next().text('25%');
            });
        }
        if(step == 'step3')
        {
            $('.block_percent > div > div').animate({
                width: "+=25%"
            }, 2000, function() {
                $(this).next().text('50%');
            });
        }
        if(step == 'step4')
        {
            $('.block_percent > div > div').animate({
                width: "+=25%"
            }, 2000, function() {
                $(this).next().text('75%');
            });
        }

        return false;

    })
    .on('click', '#step5', function(){
        $('form[action="/adding"]').submit();
        return false;
    });

// Drag and Drop
var dropZone = $('#dropZone'),
    maxFileSize = 1000000; // максимальный размер фалйа - 1 мб.

// Проверка поддержки браузером
if (typeof(window.FileReader) == 'undefined') {
    dropZone.text('Не поддерживается браузером!');
    dropZone.addClass('error');
}

// Добавляем класс hover при наведении
dropZone[0].ondragover = function() {
    dropZone.addClass('hover');
    return false;
};

// Убираем класс hover
dropZone[0].ondragleave = function() {
    dropZone.removeClass('hover');
    return false;
};

// Обрабатываем событие Drop
dropZone[0].ondrop = function(event) {
    event.preventDefault();
    dropZone.removeClass('hover');
    dropZone.text('Файл успешно помещен!');
    dropZone.addClass('drop');

    var file = event.dataTransfer.files[0];

    // Проверяем размер файла
    if (file.size > maxFileSize) {
        dropZone.text('Файл слишком большой!');
        dropZone.removeClass('drop');
        dropZone.addClass('error');
        return false;
    }

    // Создаем запрос
    var xhr = new XMLHttpRequest();
    xhr.upload.addEventListener('progress', uploadProgress, false);
    xhr.onreadystatechange = stateChange;
    xhr.open('POST', '/adding');
    xhr.setRequestHeader('X-FILE-NAME', file.name);
    xhr.send(file);
};

// Показываем процент загрузки
function uploadProgress(event) {
    var percent = parseInt(event.loaded / event.total * 100);
    dropZone.text('Загрузка: ' + percent + '%');
}

// Пост обрабочик
function stateChange(event) {
    if (event.target.readyState == 4) {
        if (event.target.status == 200) {
            dropZone.text('Загрузка успешно завершена!');
        } else {
            dropZone.text('Произошла ошибка!');
            dropZone.removeClass('drop');
            dropZone.addClass('error');
        }
    }
}
// end;

}(jQuery));