(function(){var c=this,d=c.jQuery,b=(c.DDC=(c.DDC||{})),a=c.console;d.extend({lazyLoad:function(g){g=d.extend({prefix:"",packages:[],callback:function(){}},g);var f=0,e=function(){if((g.packages instanceof Array)&&g.packages.length){d.getScript((g.prefix||"")+g.packages[f],function(){if(f===g.packages.length-1){if(typeof g.callback==="function"){g.callback.apply(c)}}else{f+=1;e()}})}};d(e)}});d.fn.extend({interactiveCarfinder:function(s){s=d.extend(true,{reseller:"ddc",fields:["make","model","bodyStyle","transmission","minMpg","maxMpg","minYear","maxYear","minMileage","maxMileage","minPrice","maxPrice"],defaults:{make:null,model:null,searchDuration:1},types:[true,true,true],summaryFields:["type","make","model","bodystyle","mpg","year","mileage","price","transmission","duration"],summaryTemplate:null,locale:"en_US",afterInit:function(){}},s);s.summaryFields=(function(z){var A,y={};for(A=0;A<z.length;A++){y[z[A]]=true}return y}(s.summaryFields));d.fn.formify.defaults.tools.validate.settings.useAjaxSubmitHandler=false;var o=d(this)[0].id,e,p,v=true,k=(new Date()).getUTCFullYear(),f=d("input[name=vehicle.type]:checked").val(),t=function(){var y=this;if(!s.summaryTemplate){s.summaryTemplate=new c.EJS({url:"/v8/widgets/automotive/carfinder/components/interactive-carfinder-style1.ejs",type:"["})}s.summaryTemplate.update("carfinderSummary",{form:y,modelEnabled:!!(!s.allowModelAndBodyStyleTogether&&d(".model",y).prev("input").attr("checked"))||(s.allowModelAndBodyStyleTogether&&!!d(".model:visible:not(:disabled)",y).size()),bodyStyleEnabled:!!(!s.allowModelAndBodyStyleTogether&&d(".bodyStyle",y).prev("input").attr("checked"))||(s.allowModelAndBodyStyleTogether&&!!d(".bodyStyle:visible:not(:disabled)",y).size()),labels:b.i18n.labels,isCanadian:(s.locale.toLowerCase().indexOf("ca")!==-1),summaryFields:s.summaryFields})},j=function(A){var y="",z;A=A.toString().split(" ");for(z=0;z<A.length;z+=1){y+=A[z].substring(0,1).toUpperCase()+A[z].substring(1,A[z].length)+" "}return d.trim(y)},x=function(z,y){if(d("[name=maxYear]","#"+o).val()!==y.toString()){d("#yearSlider").slider("values",1,[parseInt(y.toString(),10)])}if(d("[name=minYear]","#"+o).val()!==z.toString()){d("#yearSlider").slider("values",0,[parseInt(z.toString(),10)])}d("#yearSlider").trigger("update").parents("form").change()},q=function(y){var z=y.toString();switch(z.toLowerCase()){case"bmw":z="BMW";break;case"mercedes":z="Mercedes-Benz";break;default:break}return z},g=function(B){var C,A,y=0,z=parseInt(d("input[name=vehicle.type]:checked","#"+o).attr("value")||"0",10);if(c.console&&a.log&&d.isFunction(a.log)){a.log(B)}d(s.fields).each(function(G,J){if(B[this+"s"]&&(J==="make")&&d("input[name=vehicle.type][value=2]","#"+o)[0].checked&&!s.customNewMakes){y=0;C=this;d("select[name="+C+"] option","#"+o).not(":eq(0)").remove();d(s.franchises).each(function(){A=!!(B.selections&&(q(j(this))===B.selections[C.toString()]));d("select[name="+C.toString()+"]","#"+o)[0].options[d("select[name="+C.toString()+"]","#"+o)[0].options.length]=new Option(q(j(this)),q(j(this)),false);if(A){y=d("select[name="+C.toString()+"]","#"+o)[0].options.length-1}});d("select[name="+C.toString()+"]","#"+o)[0].selectedIndex=y}else{if(B[this+"s"]){y=0;C=this;if(d("select[name="+C+"]","#"+o).size()){d("select[name="+C+"] option","#"+o).not(":eq(0)").remove();d(B[C.toString()+"s"]).each(function(){if(!s.exclusions[C.toString()]||(d.inArray(this.toString(),s.exclusions[C.toString()][z])===-1)){A=!!(B.selections&&(this.toString()===B.selections[C.toString()]));d("select[name="+C.toString()+"]","#"+o)[0].options[d("select[name="+C.toString()+"]","#"+o)[0].options.length]=new Option(this,this,false);if(A){y=d("select[name="+C.toString()+"]","#"+o)[0].options.length-1}}});d("select[name="+C.toString()+"]","#"+o)[0].selectedIndex=y}}}if(d("[name="+this+"]","#"+o).is("[type=hidden]")){var H=this.toString().replace(/min|max/,"").toLowerCase(),K=(this.toString().indexOf("min")===0),F=parseInt(d("[name="+this+"]","#"+o).val(),10),E,I,D;if(B[H+"s"]){E=B[H+"s"][(K?0:1)]}if(B.selections&&B.selections[this]&&B.selections[this]!==-1){I=parseInt(B.selections[this].toString(),10);D=I}if(E&&((K&&(D<E))||(!K&&(D>E)))){D=E}if(D&&(D!==F)){d("[name="+this+"]","#"+o).parent().find(".ui-slider").slider("values",K?0:1,[parseInt(D.toString(),10)]);d("[name="+this+"]","#"+o).parent().find(".ui-slider").trigger("update").parents("form").change()}}});if(d("input[name=vehicle.type][value=2]","#"+o)[0].checked&&(f!=="2")&&!(s.defaults.type==="2"&&s.defaults.minYear&&s.defaults.maxYear)){x(k,k+1)}else{if(d("input[name=vehicle.type][value=2]","#"+o)[0].checked&&(f!=="2")&&s.defaults.type==="2"&&s.defaults.minYear&&s.defaults.maxYear){x(s.defaults.minYear,s.defaults.maxYear)}}f=d("input[name=vehicle.type]:checked").val();if((d("select[name=make] option").size()===2)&&(d("select[name=make]")[0].selectedIndex!==1)){d("select[name=make]")[0].selectedIndex=1;d("select[name=model]")[0].selectedIndex=0;d("select[name=make]").change()}d("#"+o+" > *").removeClass("loading");d("select.disabledForLoad").removeClass("disabledForLoad").attr("disabled","");t.apply(e[0]);v=false},l=function(){d("#"+o+" > *").addClass("loading");d("select:not(:disabled)").addClass("disabledForLoad").attr("disabled","disabled");clearTimeout(p);p=setTimeout(function(){var A={},z,y;d(s.fields).each(function(){y=this.toString();z=d("[name="+y+"]");A[y]=(!v&&d(z).val())||(s.defaults&&s.defaults[y])||d(z).val()||""});if(c.console&&a.log&&d.isFunction(a.log)){a.log(d.extend({locale:s.locale,reseller:s.reseller,accountId:s.accountId},A))}b.Api.DataAccessManager.get({url:"http://apis.dealer.com/services/carfinder/v1/choices",encode:true,params:d.extend({locale:s.locale,reseller:s.reseller,accountId:s.accountId},A),callback:g});A=z=undefined},250);return true},w=function(){var y=((d.inArray("Acura",s.franchises)!==-1)||(d.inArray("acura",s.franchises)!==-1)),z=((d.inArray("Honda",s.franchises)!==-1)||(d.inArray("honda",s.franchises)!==-1));if(!s.types[0]){d("input[name=vehicle.type][value=0]",this).attr("disabled","disabled").parent().hide()}if(!s.types[1]){d("input[name=vehicle.type][value=1], input[name=vehicle.type][value=0]",this).attr("disabled","disabled").parent().hide()}if(!s.types[2]){d("input[name=vehicle.type][value=2], input[name=vehicle.type][value=0]",this).attr("disabled","disabled").parent().hide()}if(y||z){d("input[name=vehicle.type][value=0]",this).attr("disabled","disabled").parent().hide()}d("input[name=vehicle.type]:not([disabled]):eq(0)",this).attr("checked","checked").focus().blur();d("input[name=vehicle.type][disabled]").parents("label").css({opacity:0.25});if(!s.allowModelAndBodyStyleTogether&&(d("select[name=model], select[name=bodyStyle]",this).size()===2)){d("select[name=model], select[name=bodyStyle]",this).each(function(A){d(this).parents("label").before('<input type="radio" class="radio" name="modelBodyStyleDepedency"'+(A===0?' checked="checked"':"")+" />")});d("select[name=bodyStyle]",this).attr("disabled","disabled").addClass("disabled");d("input[type=radio][name=modelBodyStyleDepedency]").click(function(){d(this).parent().siblings("div").find("select").attr("disabled","disabled").addClass("disabled")[0].selectedIndex=0;d(this).next("label").find("select").attr("disabled","").removeClass("disabled").parents("form").change()})}},h=function(){d(this).css({visibility:"visible"}).animate({opacity:0.9999},s.afterInit);d("#carfinderLoading").addClass("invisible")},n,m,i,u=function(){m=d("[name=duration]").val();if(e&&m!==n){n=m;t.apply(e[0])}},r=function(){var z=this,A=d('<div class="group2a"><div class="unit first" /><div class="unit last" /></div>'),y;d(A).prependTo(this);d("h4:eq(0), h4:eq(0) + fieldset",this).appendTo(d(".unit.last",A));d("> *",this).not(A).appendTo(d(".unit.first",A));w.apply(z);d("div.submit",this).parent().before('<div id="carfinderSummary" />');e=d(this);d(".duration a[title="+s.defaults.searchDuration+"]",this).click();i=setInterval(u,750);d(s.fields).each(function(){var B=this.toString();if(d("select[name="+B+"]",z).size()&&d.browser.msie&&(d.browser.version==="6.0"||d.browser.version==="7.0")){d("select[name="+B+"]",z)[0].onchange=function(){setTimeout(function(){l();d("select[name="+B+"]",z).parents("form").change();if(d.browser.version==="6.0"){d("label > *:not(span):not(select)").eq(0).focus().blur()}},10)}}else{d("[name="+B+"]",z).change(l)}});d("input[name=vehicle.type]").change(l);if(s.defaults.type){d("[name=vehicle.type]").attr("checked","");d("[name=vehicle.type][value="+s.defaults.type+"]").attr("checked","checked")}if(d.browser.msie&&(d.browser.version==="6.0"||d.browser.version==="7.0")){d("input[name=vehicle.type]").click(function(){d(this).focus().blur().change().parents("form").change()})}h.apply(this);y=setInterval(function(){if(b&&b.i18n){d("[name="+s.fields[0]+"]").change().parents("form").change();clearInterval(y)}},250)};return d(this).each(r)}})}());