$(function(){

  // кэш тачек
  var cars = {};

  // слой с объектами
  var layer = {
    name          : $('#layer-car-name'),
    producer      : $('#layer-car-producer'),
    price         : $('#layer-car-price'),
    image         : $('#layer-car-image'),
    engine_volume : $('#layer-car-engine-volume'),
    transmission  : $('#layer-car-transmission'),
    doors         : $('#layer-car-doors'),
    seats         : $('#layer-car-seats'),
    make_year     : $('#layer-car-make-year'),
    rudder        : $('#layer-car-rudder'),
    drive         : $('#layer-car-drive'),
    body          : $('#layer-car-body'),
    car_class     : $('#layer-car-class'),
    city          : $('#layer-car-city'),
    description   : $('#layer-car-description'),
    arrow_left    : $('#layer-car-left'),
    arrow_right   : $('#layer-car-right'),
    id            : $('#layer-car-id')
  };

  // высота дива с инфой [свернут, развернут]
  var car_info_height = [99, 195];

  // кликаем по тачке
  var car_links = $('.sorting_img a, .list_position > a, .special_offer a');
  var current_link;
  var interval;
  car_links.live('click', function(e){
    e.preventDefault();
    var self = this;
    current_link = car_links.index(this);
    var margin_top = $(document).scrollTop() - Math.min($('#layer-car').height(), $(window).height()) / 2;
    $('#layer-car').show().css({ marginTop: margin_top });
    $('#shadow_filler').css({ opacity: 0.3 });
    $('#shadow_filler').show();
    interval = window.setInterval(function() {
      if ($('#shadow_filler').is(':visible'))
      {
        $('#shadow_filler').height(1);
        $('#shadow_filler').height($(document).height());
      }
    }, 200);
    if (cars[this.href]) {
      show_car(cars[this.href]);
    } else {
      $('#layer-car .contents').hide();
      $('#layer-car .loader').show();
      $.getJSON(
        this.href,
        function(car){
          cars[self.href] = car;
          show_car(car);
        }
      );
    }
  });
  // клик по картинке = клик по ссылке
  /*$('.list_position > a').live('click', function(e){
    e.preventDefault();
    $(this).nextAll('.buttons').children('a').click();
  });*/
  // кликаем подробнее
  $('.list_position .buttons a').click(function(e){
    e.preventDefault();
    var div = $(this).parent().prev();
    div.animate({
      height: (div.height() == car_info_height[0] ? car_info_height[1] : car_info_height[0])
    });
  });
  // кликаем по стрелке
  $('#layer-car-left').click(function(e){
    e.preventDefault();
    car_links.eq(current_link-1).click();
  });
  $('#layer-car-right').click(function(e){
    e.preventDefault();
    car_links.eq(current_link+1).click();
  });

  // закрываем слой
  $('#layer-car-close, #layer-car .loader').click(function(e){
    e.preventDefault();
    $('#shadow_filler').fadeOut();
    $('#layer-car').hide();
    clearInterval(interval);
  });

  // переключаем табы в слое
  var menu_tabs = $('#layer-car .tabs .menu_tab a');
  var menu_li = $('#layer-car .tabs .menu_tab li');
  var tabs = $('#layer-car .tabs .tab > div');
  menu_tabs.click(function(e){
    e.preventDefault();
    var i = menu_tabs.index(this);
    menu_tabs.addClass('ajax');
    $(this).removeClass('ajax');
    menu_li.removeClass('radius13_orange');
    menu_li.eq(i).addClass('radius13_orange');
    tabs.hide();
    tabs.eq(i).show();
  });

  // показываем тачку в слое
  function show_car(car) {
    // выставляем значения
    layer.name.text(car.name);
    layer.producer.attr('src', car.producer.image);
    layer.producer.attr('alt', car.producer.name);
    if (car.price) {
      var price = (car.special_price ?
                   '<del><span class="black">' + car.price + ' €</span></del> / <span class="red">' + car.special_price + ' €</span>' :
                   car.price + ' €');
      layer.price.html(price);
      layer.price.show();
    } else {
      layer.price.hide();
    }
    layer.image.attr('src', car.image);
    layer.engine_volume.text(car.engine_volume);
    layer.transmission.text(car.transmission);
    layer.doors.text(car.doors);
    layer.seats.text(car.seats);
    layer.make_year.text(car.make_year);
    layer.rudder.text(car.rudder);
    layer.drive.text(car.drive);
    layer.body.text(car.body);
    layer.car_class.text(car.car_class);
    layer.city.text(car.city);
    layer.description.html(car.description);
    layer.id.val(car.id);
    // стрелки
    if (current_link > 0) {
      layer.arrow_left.attr('href', car_links.eq(current_link-1).attr('href'));
      layer.arrow_left.show();
    } else {
      layer.arrow_left.hide();
    }
    if (current_link < car_links.length-1) {
      layer.arrow_right.attr('href', car_links.eq(current_link+1).attr('href'));
      layer.arrow_right.show();
    } else {
      layer.arrow_right.hide();
    }
    // показываем
    $('#layer-car .contents').show();
    $('#layer-car .loader').hide();
    $('#shadow_filler').height($(document).height());
  }

});
