$(document).ready(function() {
    $('.promo_img').hover(
        function() {
            $(this).find('.info').fadeIn();
        },
        function() {
            $(this).find('.info').fadeOut();
        }
    );

    img_roller.init();

    $('#arenda_form').submit(function() {
        var options = {
            dataType: 'json',
            beforeSubmit: function() {
                $('#form_success').hide();
                $('#form_error').hide();
            },
            success: function(data) {
                if(data.success) {
                    $('#form_success').fadeIn();
                    $('#arenda_form').hide();
                    setTimeout(function() {$('#form_success').fadeOut();$('#arenda_form').show()}, 5000);
                } else {
                    $('#form_error').fadeIn();
                    setTimeout(function() {$('#form_error').fadeOut();}, 5000);
                }
            }
        }

        $(this).ajaxSubmit(options);
        return false;
    });
   
   $('#loading').ajaxStart(function() {$(this).show();});
   $('#loading').ajaxStop(function() {$(this).fadeOut();});


    $('a[href^=#expand_]').click(function() {
        var obj = $(this);
        var id = obj.attr('href');
        var expand = $(id);
        if(expand.css('display').toLowerCase() == 'none')
            expand.slideDown();
        else
            expand.slideUp();

        return false;
    });
});


ghtml = {
    options: function(list, selected, first) {
        var code = '';
        if (first && first !== undefined) {
            code += '<option value="">'+first+'</option>';
        }
        $.each(list, function(i, n) {
            code += '<option value="'+i+'" ';
            if (selected && selected !== undefined && selected == i) {
                code += 'selected = "selected"';
            }
            code += '>'+n+'</option>';
        });
        return code;
    }
}

img_roller = {
    img_list: new Array(),
    imgs: new Array(),
    img_info: new Array(),
    shift: 75,
    auto: true,
    step: 2500,

    init: function() {
        img_roller.imgs = $('.promo_img');

        // прелоадер фоток
        for(var i in img_roller.img_list) {
            for(var j in img_roller.img_list[i]) {
                var ti = new Image();
                ti.src = img_roller.img_list[i][j];
            }
        }

        img_roller.imgs.each(function() {
            var obj = $(this);
            var obj_index = img_roller.imgs.index(obj);
            img_roller.img_info[obj_index] = {cur_pic: 0, shift: 0, start_pos: {x: 0, y: 0}, timer: null};

            if(img_roller.auto) img_roller.img_info[obj_index].timer = setTimeout(function() {img_roller.autoroll(obj);}, img_roller.step);

            obj.mousemove(function(e) {
                var obj = $(this);
                var obj_index = img_roller.imgs.index(obj);

                // если не указана стартовая позиция для расчёта смещения, указываем её
                if(img_roller.img_info[obj_index].start_pos.x == 0 && img_roller.img_info[obj_index].start_pos.y == 0) {
                    img_roller.img_info[obj_index].start_pos.x == e.clientX;
                    img_roller.img_info[obj_index].start_pos.y == e.clientY;
                }

                // проверяем смещение
                var shiftX = Math.abs(e.clientX - img_roller.img_info[obj_index].start_pos.x);
                var shiftY = Math.abs(e.clientY - img_roller.img_info[obj_index].start_pos.y);
                if(shiftX > shiftY) img_roller.img_info[obj_index].shift = shiftX
                else img_roller.img_info[obj_index].shift = shiftY;

                if(img_roller.img_info[obj_index].shift >= img_roller.shift) {
                    var img_index = img_roller.img_info[obj_index].cur_pic + 1;
                    if(img_index >= img_roller.img_list[obj_index].length) img_index = 0;

                    img_roller.img_info[obj_index].cur_pic = img_index;
                    var src = img_roller.img_list[obj_index][img_index];
                    obj.attr('style', 'background-image: url("'+src+'")');

                    img_roller.img_info[obj_index].shift = 0;
                    img_roller.img_info[obj_index].start_pos.x = e.clientX;
                    img_roller.img_info[obj_index].start_pos.y = e.clientY;
                }
            }).hover(
                function() {
                    var obj = $(this);
                    var obj_index = img_roller.imgs.index(obj);

                    clearTimeout(img_roller.img_info[obj_index].timer);
                    img_roller.img_info[obj_index].timer = null;
                },
                function() {
                    var obj = $(this);
                    var obj_index = img_roller.imgs.index(obj);

                    img_roller.img_info[obj_index].timer = setTimeout(function() {img_roller.autoroll(obj);}, img_roller.step);
                }
            );
        });
    },
    autoroll: function(obj) {
        var obj_index = img_roller.imgs.index(obj);

        var img_index = img_roller.img_info[obj_index].cur_pic + 1;
        if(img_index >= img_roller.img_list[obj_index].length) img_index = 0;

        img_roller.img_info[obj_index].cur_pic = img_index;
        var src = img_roller.img_list[obj_index][img_index];
        obj.attr('style', 'background-image: url("'+src+'")');

        img_roller.img_info[obj_index].timer = setTimeout(function() {img_roller.autoroll(obj);}, img_roller.step);
    }
}

