jQuery(document).ready(function($){

  /* Click on hover for sliders */
  var timer = null;
  function startClicker(obj) {
    obj.click();
    timer = setTimeout(function(){startClicker(obj)}, 1000);
  }

  /* Showcase Slider widget */
  if ($('.dt-widgets.showcasesliderwidget .showcase-slider .scrollable').length) {
    $(".dt-widgets.showcasesliderwidget .showcase-slider .scrollable")
      .scrollable({
        interval: 1500, size: 5, speed: 300, clickable: false,
        prev: '.showcasesliderwidget-prev', next: '.showcasesliderwidget-next'
      }).circular();

    $(".showcasesliderwidget-prev, .showcasesliderwidget-next")
      .mouseover(function(){startClicker($(this));});

    $(".showcasesliderwidget-prev, .showcasesliderwidget-next")
      .mouseout(function(){clearTimeout(timer);});

    $('.dt-widgets.showcasesliderwidget .showcase-slider .scrollable .items .item').stop().hover(
      function(){ $(this).children('.trims').show(); },
      function(){ $(this).children('.trims').hide(); }
    );

  }

  /* Slider widget */
  if ($('.dt-widgets.sliderwidget .scrollable').length) {
    $(window).load(function() {
      var visible = 2;
      var grid_size = $('.dt-widgets.sliderwidget').parent().width();
      var img_width = $('.dt-widgets.sliderwidget .scrollable .items .item').width();
      var img_height = $('.dt-widgets.sliderwidget .scrollable .items .item').height();
      var padding = parseInt($('.dt-widgets.sliderwidget .scrollable .items .item').css('padding-left')) + parseInt($('.dt-widgets.sliderwidget .scrollable .items .item').css('padding-right'));
      var margin  = parseInt($('.dt-widgets.sliderwidget .scrollable .items .item').css('margin-right')) + parseInt($('.dt-widgets.sliderwidget .scrollable .items .item').css('margin-left'));
      var whitespace = (margin + padding);
      visible = Math.floor(grid_size / (img_width + whitespace));
      $('.dt-widgets.sliderwidget .scrollable').height(img_height + 10);
      $(".dt-widgets.sliderwidget .scrollable").scrollable({
        interval:1500,size:visible,speed:500,
        prev:'.sliderwidget-prev',
        next:'.sliderwidget-next',
        clickable:false}).circular().autoscroll();
    });
  }

  /* Slideshow Widget */
  if ($('.dt-widgets.slideshowwidget').length) {
    $('.dt-widgets.slideshowwidget').each(function(){
      var slideshow_id = $(this).attr('id');
      var effect = $('#'+slideshow_id+'.dt-widgets.slideshowwidget').attr('rel');
      if (effect == '') effect = 'fade';
      $('#'+slideshow_id+'.dt-widgets.slideshowwidget .slideshowwidget-chrome .slideshowwidget-slides').cycle({
        prev: '#'+slideshow_id+' .slideshowwidget-prev',
        next: '#'+slideshow_id+' .slideshowwidget-next',
        pager: '#'+slideshow_id+' .slideshowwidget-pages',
        fx: effect, sync:true, speed: 300, timeout: 4000, pause: 1,
        slideExpr: 'img', containerResize: 0
      });

      $(window).load(function() {
        var img_height = $('#'+slideshow_id+'.dt-widgets.slideshowwidget .slideshowwidget-slides img').height();
        $('#'+slideshow_id+'.dt-widgets.slideshowwidget .slideshowwidget-slides').height(img_height);
      });
    });
  }

  // Tab Box Widget Tabs
  if ($('.dt-widgets.tabboxwidget .tabbox-tabs').length) {
    $('.dt-widgets.tabboxwidget .tabbox-tabs').tabs('.dt-widgets.tabboxwidget > .tabbox-pane');
  }

  // Showcase Slider Tabs
  if ($('.dt-widgets.showcasesliderwidget .showcase-slider .showcaseslider-tabs').length) {
    $('.dt-widgets.showcasesliderwidget .showcase-slider .showcaseslider-tabs').tabs('.dt-widgets.showcasesliderwidget .showcase-slider > .showcaseslider-pane');
  }

  // Inventory Selector
  function quick_search_makes(saleclass) {
    $('form#quick-search #makes').html('');
    $('form#quick-search #models').html('');
    $.getJSON(
      "http://api.dealertrend.com/"+dt_company_id+"/inventory/vehicles/makes.json?saleclass="+saleclass+"&callback=?",
      function(json_data) {
        for (index in json_data) {
          $('#quick-search #makes').append('<option value="'+json_data[index]+'">'+json_data[index]+'</option>');
        }
        quick_search_models(saleclass, json_data[0]);
      }
    );
  }

  function quick_search_models(saleclass, make) {
    $('form#quick-search #models').html('');
    $.getJSON(
      "http://api.dealertrend.com/"+dt_company_id+"/inventory/vehicles/models.json?saleclass="+saleclass+"&make="+make+"&callback=?",
      function(json_data) { for (index in json_data) {
        $('form#quick-search #models').append('<option value="'+json_data[index]+'">'+json_data[index]+'</option>');
      }}
    );
  }

  if ($('form#quick-search').length) {
    var saleclass = 'New';
    saleclass=$('form#quick-search .saleclass').attr('rel');

    if ($('form#quick-search .saleclass').length) {
      $('form#quick-search .saleclass').click(function(){
        saleclass=$(this).attr('rel');
        quick_search_makes(saleclass);
        if ($('form#quick-search .saleclass').attr('href').length) return false;
      });
    }

    $('form#quick-search #makes').change(function(){
      quick_search_models(saleclass, $(this).attr('value'));
    });

    quick_search_makes(saleclass);
  }

});
