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