function image_fader(old_image, new_image_path){
  if(new_image_path.length > 5) {
    if(!$.browser.msie){
      old_image.before(old_image.clone().attr("src",new_image_path).css({"z-index":3})).css({"z-index":4}).fadeOut("slow", function(){$(this).remove();});
    } else {
      old_image.attr('src', new_image_path);
    }
  }
}

$(document).bind("colours_ready",function() {
  $(".colour_pick .colour_swatch_container").eq(0).addClass("colour_swatch_selected");
  $(".colour_swatch").click(function(){
    $(".colour_pick .colour_swatch_container").removeClass("colour_swatch_selected");
    $("#config_form #cf_colour").val("name="+$(this).attr("data-colour")+"&transform="+$(this).attr("data-transform"));
    $(this).parent().addClass("colour_swatch_selected");
    $(".config_colour_val").html($(this).attr("data-colour"));
    $(".model_image_area img:first").attr("data-rgb",$(this).attr("data-rgb"));
    
    var shot_angles = ["front","side","back"];
    for( var i in shot_angles){
      var thumb_image = $("."+shot_angles[i]+"-thumbnail img").eq(0);
      thumb_image.attr("alt",$(this).attr("data-colour")).attr("title",$(this).attr("data-colour"));
      image_fader(thumb_image, $(this).attr("data-image-"+shot_angles[i]+"-thumb"));
      thumb_image.closest("a").attr("href",$(this).attr("data-image-"+shot_angles[i]));
    }
    
    var main_image = $(".model_image_area img").eq(0);
    main_image.attr("alt",$(this).attr("data-colour")).attr("title",$(this).attr("data-colour"));
    image_fader(main_image, $(this).attr("data-image-front"));
  });
  $(".model_image_thumbnails a.car_angle_button").click(function(){
    image_fader($(".model_image_area img").eq(0), $(this).attr("href"));
    return false;
  });
  if($.browser.webkit){
    $(".front-thumbnail img").eq(0).css("margin-left","5px");
    $(".side-thumbnail img").eq(0).css("margin-left","0");
    $(".back-thumbnail img").eq(0).css("margin-left","5px");
  }
  
  $(".colour_pick a[title]").tooltip({position: "center right",tip:'.tooltip',offset: [2, 10],opacity: 0.7}); 
  
	var flashvars = {};
	var params = {
	  swliveconnect:"true",
	  allowscriptaccess:"always",
	  wmode: 'transparent'
	};
	var attributes = {
	  id:"fast360_flash"
	};
	swfobject.embedSWF("/flash/fast360.swf", "fast360", "100%", "100%", "8.0.0", "/flash/expressInstall.swf", flashvars, params, attributes);
	
  var jquery_tools_is_lame = jQuery(".model_image_area img").overlay({expose:"#222",api: true, onLoad: function(){ 
    var f_slow = setInterval(function(){
      var flash_obj = jQuery("#overlay_360 object object")[0];
      if(!flash_obj) flash_obj = jQuery("#overlay_360 object")[0];
      if(flash_obj){
        if(typeof flash_obj.init_360 == "function"){
        clearInterval(f_slow);
        var images_360 = car360s[jQuery(".model_image_area img:first").attr("data-rgb")];
        if(images_360.length) flash_obj.init_360(images_360);
      }else clearInterval(f_slow);
    }
  }, 50);
  }});
  
  jQuery(".model_image_thumbnails .button").click(function(){
    jquery_tools_is_lame.load();
    return false;
  });
});





/**** Accessories Choose *********/
$(document).ready(function() {
  $(".accessories_list .acc_group a:not(.sub a)").click(function(){
    $(".accessories_list .acc_group").removeClass("selected").find(".sub").hide();
    $(this).parent().toggleClass("selected").find(".sub").toggle();
    return false;
  });
  $(".accessories_list .sub a").click(function(){
    $(".accessories_detail").html("").addClass("ajax_loading");
    $.get("/vehicles/accessory_detail/"+$(this).attr("data-id")+"/"+$("#range_accessories_container").attr("data-range"),function(response){
      $(".accessories_detail").removeClass("ajax_loading");
      $(".accessories_detail").html(response);
      
      $(".accessory_add").click(function(){
    		var vname = jQuery(this).attr("data-accessory-name"), 
    				vpart = jQuery(this).attr("data-accessory-part"),
    				vprice = jQuery(this).attr("data-accessory-price"),
    				vstr = "name="+vname+"&part="+vpart+"&price="+vprice
    				;
        $("#config_form").append('<input type="hidden" name="configurator[accessories][]" value="'+vstr+'">');
        return false;
      });
      
    });
    return false;
  });
  
  
  
  $(".accessories_list .acc_group a").eq(0).click();
  $(".accessories_list .sub a").eq(0).click();
  
});

/**** Transmission Choose ******/
$(document).ready(function() {
  $("#auto_transmission_select").change(function(){
    $("#cf_base").val($(this).attr("data-price"));
    $("#cf_trasmission").val("Automatic");
  });
  
  $("#manual_transmission_select").change(function(){
    $("#cf_base").val($(this).attr("data-price"));
    $("#cf_trasmission").val("Manual");
  });
  
});


/**** Save To My Subaru **********/
$(document).ready(function() {
  $(".save_current_car").click(function(){
    $(this).addClass("active");
    $.cookie("vehicle", $("#config_url").text(), {path: '/'});
    $(document).trigger("yoursubaru");
    $(this).removeClass("active");
    alert('Saved as your Vehicle');
    return false;
  });
  
  $("#send_car_dealer").overlay({ 
    expose: '#333', 
    onBeforeLoad: function() { 
       $.get("/vehicles/dealer_send/"+$("#config_url").text(),function(response){
         $("#dealer_send").html(response);
         $(document).trigger("address_lookup");
       });
    } 
  });
});


$(window).load(function() {
  if($("#cf_trigger").val() !=1) $("#cf_trigger").val(1);
});

$(document).ready(function() {
  $(".model_totals .dropdown_range li").each(function(){
    var imgsrc = $(this).attr("data-image");
    $(this).find("a").append("<img src='"+imgsrc+"'>");
  });
  
  $(".model_totals .dropdown_range li").eq(0).remove();
  
  $("#configure_rechoose").hover(
    function(){
      $(this).next(".dropdown_range").removeClass("hidden");
      $(this).next(".dropdown_range").mouseleave(function(){$(this).addClass("hidden");});
    }
  );
  
  $("#configure_next").click(function(){
    $(".model_summary .tabs li .current").parent().next().find("a").click();
  });
  
});

/****** Preload Colour Images **********/
$(document).ready(function() {
  if($.browser.msie && $.browser.version < 8) {

  } else {
    var def_image = $(".model_image_area img").eq(0);
    $(".colour_swatch").each(function(){
      var images_to_preload = [
        $(this).attr("data-image-front"),
        $(this).attr("data-image-front-thumb"),
        $(this).attr("data-image-side-thumb"),
        $(this).attr("data-image-back-thumb"),
        $(this).attr("data-image-side"),
        $(this).attr("data-image-back")
      ];
      for(var i in images_to_preload){
        if(images_to_preload[i].length > 2){
          var img = def_image.clone();
          $("body").append(img);
          $(img).attr("src",images_to_preload[i]).css({"position":"absolute","z-index":3,visibility:"hidden",left:"-2000px"});
        }
      }
    });
  }
  $(document).trigger("colours_ready");
  $(".model_container").css("background","white");
});

$(document).ready(function() {
  $('script[data-observed="config_form"]').bind("wax:complete", function(xhr){
    var share = $("#config_url").text();
    var sub_base_url = "http://subaru.co.uk/vehicles/share/";
    var twitter_base_url = "http://www.twitter.com/home?status=I Just Configured My Subaru - http://subaru.co.uk/vehicles/share/";
    $("a[name=fb_share]").attr("href", "http://facebook.com/sharer.php?u="+sub_base_url+share);
    $("a[name=twitter_share]").attr("href", twitter_base_url+share);
    $("#save_as_pdf").attr("href", "/vehicles/pdf/"+share);
    $("a.accessory-remove-link").unbind("click").click(function(){
      $("#config_form input[value="+$(this).attr("data-value-in-hidden-form")+"]").remove();
      return false;
    });
  });
  
});

$(document).ready(function(){
  if($.browser.msie && parseInt($.browser.version.charAt(0),10) < 8){
    $('.car_angle_button').each(function(){
      $(this).children().attr('style', 'margin-top: 0px !important; margin-left: -9px !important;');
    });
    $('.model_image_thumbnails .button').css('margin-top', '0px');
  }
});

$(document).ready(function(){
  $.get('/vehicles/self_email_form', function(response){
    $('.send_to_self').append(response);
  });
});

$(document).ready(function() {
  $("#gallery .next, #gallery .prev").click(function(){return false;});
  
});

$(document).ready(function() {
  
  if($(".colour_swatch_selected a").attr("data-colour") != $(".config_colour_val").text()) {
    $(".colour_swatch_container").removeClass("colour_swatch_selected");
    var sel = ".colour_swatch_container a[data-colour='"+$(".config_colour_val").text()+"']";
    $(".model_image_area img:first").attr("data-rgb",$(sel).attr("data-rgb"));
    
    var shot_angles = ["front","side","back"];
    for( var i in shot_angles){
      var thumb_image = $("."+shot_angles[i]+"-thumbnail img").eq(0);
      thumb_image.attr("alt",$(sel).attr("data-colour")).attr("title",$(sel).attr("data-colour"));
      image_fader(thumb_image, $(sel).attr("data-image-"+shot_angles[i]+"-thumb"));
      thumb_image.closest("a").attr("href",$(sel).attr("data-image-"+shot_angles[i]));
    }
    
    var main_image = $(".model_image_area img").eq(0);
    main_image.attr("alt",$(sel).attr("data-colour")).attr("title",$(sel).attr("data-colour"));
    image_fader(main_image, $(sel).attr("data-image-front"));
    $(sel).parent().addClass("colour_swatch_selected");
    
  }
});

