$(document).ready(function() {
  var base = $("base").attr("href");
  $("ul li.mainmenu").paramList();
  $('a.issuu').issuu();

  var bigImage;
  var lastSelected = $();

  $(".carselectorContent .carthumb").mouseenter( function(e) {
    bigImage = $(this).next().clone().fadeIn("slow");
    
    $("body").append(bigImage);
  });

  $(".carselectorContent .carthumb").mousemove( function(e) {
    if(typeof(bigImage) != 'undefined')
      bigImage.css("left", e.pageX+30+"px").css("top", e.pageY-60+"px");
  });

  $(".carselectorContent .carthumb").mouseleave( function(e) {
    if(typeof(bigImage) != 'undefined')
      bigImage.remove();
  });

  $(".carselectorContent .carContainer").click(function() {
    //lastSelected.removeClass("arrowLeftSelected");
    //lastSelected = $(".arrowLeft", this).addClass("arrowLeftSelected");

    window.location = base + $(this).find(".carDetailInfo a.view").attr("href");
  });

  //compareing
  var options = {
    'value' : 'price',
    'category' : false,
    'body' : false,
    'transmission' : false,
    'fuel' : false
  }

  var hash= location.hash.substr(1);
  if(hash) {
    split = hash.split("&");
    $.each(split, function(i, value) {
      value = value.split("=");
      options[value[0]] = value[1];
    });
    $.fn.compare(options);
  }

  $("#values ul li").click(function() {
    options["value"] = $(this).attr("id").substr(6);
    $.fn.compare(options);
  });

  $(".params ul li").click(function() {
    var param = $(this).parent().parent().attr("id").substr(7);
    if(!$(this).hasClass("selected")) {
      var value = $(this).attr("id").substr(6);
      options[param] = value;
    } else {
      options[param] = false;
    }
    $.fn.compare(options);
  });

  $("a.reset_selector").click(function() {
    options['category'] = false;
    options['body'] = false;
    options['transmission'] = false;
    options['fuel'] = false;
    $.fn.compare(options);
  });

});

$.fn.compare = function(options) {
  settings = jQuery.extend({
    'type' : $("#type").val()
  }, options);

  $.json('model', 'comparedata', settings, function(j) {
    if(j.status == 'ok') {
      //change selected value
      $("#values ul li").removeClass("selected");
      $("#values ul").find("#value_" + options["value"]).addClass("selected");

      //change selected params
      var paramtypes = ["category", "body", "transmission", "fuel"];
      $.each(paramtypes, function(i, paramtype) {
        $("#params_" + paramtype + " ul li").removeClass("selected");
        if($("#params_" + paramtype + " ul").find("#param_" + options[paramtype]).length > 0) {
          $("#params_" + paramtype + " ul").find("#param_" + options[paramtype]).addClass("selected");
          $("#params_" + paramtype + " span.default").hide();
          $("#params_" + paramtype + " span.custom").remove();
          $("#params_" + paramtype + " span.default").after('<span class="choices custom">' + $("#params_" + paramtype + " ul").find("#param_" + options[paramtype]).find("a").html() + '</span>');
        } else {
          $("#params_" + paramtype + " span.custom").remove();
          $("#params_" + paramtype + " span.default").show();
        }
      });
      //change steps
      if(j.steps) {
        var stephtml = '';
        $.each(j.steps, function(key, step) {
          stephtml += '<p>' + step + ' ' + $.translate("unit_" + settings['value'], "model.compare") + '</p>';
        });
        $("#steps").html(stephtml);
        $("#steps p:first").addClass("first");
        $("#steps p:last").addClass("last");
      }

      //change models
      $(".carContainer").hide();
      $.each(j.models, function(key, model) {
        if(!model.hide) {
          var item = $("#model_" + model.id);
          item.css({
            "top" : (key * j.height) + 'px'
            });
          item.show();
          item.find("img.image_small").animate({
            "left" : (model.value_from + 20) + "px"
            });
          item.find("img.image_name").animate({
            "left" : (model.value_from + 20) + "px"
            });
          item.find("div.arrowLeft").animate({
            "left" : (model.value_from) + "px",
            "width" : model.value_to + "px"
            });
        }
      });
      var url = location.pathname + '#value=' + settings['value'] + '&category='  + settings['category'] + '&body='  + settings['body'] + '&transmission='  + settings['transmission'] + '&fuel='  + settings['fuel'];
      window.location = url;
    }
  });
}

$.fn.paramList = function() {
  return this.each(function() {
    var paramList = $(this);
    var onitem = false
    var childul = $(this).find("ul");
    var height = ((childul.find("li").length * 25) > '200') ? 200 : (childul.find("li").length * 25);


    $(this).find("p.L1").mouseenter(function() {
      t = setTimeout(function() {
        if(onitem && !paramList.hasClass("opened")) {
          $(".carselectorContent .col-menu li.mainmenu").removeClass("opened");
          $(".carselectorContent .col-menu li.mainmenu ul").css({
            "height" : "0px"
          });
          paramList.addClass("opened");
          childul.animate({
            "height" : height + "px"
          });
        }
      }, 300);
      onitem = true;
    });

    $(this).find("p.L1").mouseleave(function() {
      onitem = false;
    });
    
  });
}
