(function(b){var a=function(M){this.settings=M;var C=this;var u=this.settings.hoursArray;var E=this.settings.yearLabels;var A=this.settings.years;var s=this.settings.mileageLabels;var x=this.settings.mileages;var f=this.settings.priceLabels;var g=this.settings.prices;var n=this.settings.bodystyles;var I=this.settings.colors;var B=this.settings.newmakes;var G=this.settings.types;var v=document.forms.testdrive;var d=v.elements["vehicle.type"];var h=v.elements.year;var O=v.elements.make;var w=v.elements.model;var k=v.elements.bodyStyle;var H=b("#testdrive .preferredApptDate select").attr("name");var D=b("#testdrive .preferredApptTime select").attr("name");var p=v.elements[H];var t=v.elements[D];var e={Honda:{"Accord Hybrid":[2005,2007],"CR-V":[1996,2010],"Del Sol":[1992,1997],"EV Plus":[],Element:[2003,2010],Fit:[2007,2010],Insight:[1999,2006],Odyssey:[1995,2010],Passport:[1993,2001],Pilot:[2003,2010],Prelude:[1980,2001],Ridgeline:[2006,2010],S1999:[],S2000:[1999,2009]},Acura:{CL:[1997,2003],Integra:[1980,2001],Legend:[1980,1995],MDX:[2001,2010],NSX:[1991,2005],"NSX-T":[1995,2005],RDX:[2007,2010],RL:[1996,2010],RSX:[2002,2006],SLX:[1996,1999],TL:[1996,2010],TSX:[2004,2010],Vigor:[1992,1995]},Volkswagen:{Cabrio:[1993,1999]}};var o=function(){function P(S,U,af,R){var Z=(S!=null)?S-1:0;var U=(U!=null)?U:14;var Y=new Date;var ab=Y.getFullYear();var Q=Y.getMonth();var T=Y.getDate();var W=Y.getDay();var ag=[];var X=[];var V=[];var aa=[];var ad=["Sun","Mon","Tues","Wed","Thurs","Fri","Sat"];var ae=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var ac=[31,28,31,30,31,30,31,31,30,31,30,31];if((Q==1)&&((ab/4)==parseInt(ab/4))){ac[1]=29}W=((W+Z)%7);if((T+Z)>ac[Q]){T=((T+Z)-ac[Q]);if(Q==11){Q=0;ab++}else{Q++}}else{T=(T+Z)}ag[0]=ab;X[0]=Q;V[0]=T;aa[0]=W;for(i=1;i<U;i++){if(V[i-1]>=ac[X[i-1]]){V[i]=1;if(X[i-1]==11){X[i]=0;ag[i]=(ag[i-1]+1)}else{X[i]=(X[i-1]+1);ag[i]=ag[i-1]}}else{V[i]=(V[i-1]+1);X[i]=X[i-1];ag[i]=ag[i-1]}aa[i]=((W+i)%7)}for(i=R;i<aa.length;i++){if((u[aa[i]].toLowerCase().search(/\d/)>-1)&&(u[aa[i]])){b("form select[name="+af+"]")[0].options[i]=new Option(ad[aa[i]]+" "+ae[X[i]]+" "+V[i]+" "+ag[i],ad[aa[i]]+" "+ae[X[i]]+" "+V[i]+" "+ag[i])}}}if(M.formtype===1){P(C.settings.testDriveApptDelay,C.settings.testDriveApptRange,H,p.options.length)}};var r=function(){var Q;var P;for(Q=0;Q<G.length;Q++){if(Q==0){P=0}else{if(Q==1){P=2}else{P=1}}d.options[Q]=new Option(G[Q],P)}if((B.length==0)||(B[0]=="preowned")){d.options[0]=null;d.options[0]=null;d.selectedIndex=0}else{if(C.settings.hasused==0){d.options[0]=null;d.selectedIndex=0;d.options[1]=null}else{if(M.defaults.vehicleType){b("select[name=vehicle.type] option[value="+M.defaults.vehicleType+"]").attr("selected","selected")}else{if((B[0].toLowerCase()=="honda")||(B[0].toLowerCase()=="acura")){d.options[0]=null;d.selectedIndex=1}}}}};var y=function(P){var S;var R=1;var T=0;if(d.options[d.selectedIndex].value!=2){}else{var Q=new Date;T=(A.length-2)}if(!P){L(v.year)}for(S=T;S<A.length;S++){v.year.options[R++]=new Option(E[S],A[S])}if((!P)&&(T>0)){v.year.selectedIndex=1}if(M.defaults.year){b("select[name=year] option[value="+M.defaults.year+"]").attr("selected","selected")}};var m=function(R){y();if(!R){R=d.options[d.selectedIndex].value}L(v.make);L(v.model);v.make.disabled=false;if(R!=2){var Q=0;if(B.length>0){if(B[0].toLowerCase()=="honda"){var P=K("Honda");v.make.options[++Q]=new Option(vehicles[P][0],vehicles[P][0])}else{if(B[0].toLowerCase()=="acura"){var P=K("Acura");v.make.options[++Q]=new Option(vehicles[P][0],vehicles[P][0])}}}for(i=0;i<vehicles.length;i++){if((B.length==0)||((B[0].toLowerCase()!="honda")&&(B[0].toLowerCase()!="acura"))||((B[0].toLowerCase()=="honda")&&(vehicles[i][0]!="Honda"))||((B[0].toLowerCase()=="acura")&&(vehicles[i][0]!="Acura"))){v.make.options[++Q]=new Option(vehicles[i][0],vehicles[i][0])}}v.model.disabled=true;if(typeof(v.minMileage)!="undefined"){v.minMileage.disabled=false;v.maxMileage.disabled=false}}else{for(i=0;i<B.length;i++){var P=K(B[i]);v.make.options[i+1]=new Option(vehicles[P][0],vehicles[P][0])}if(v.make.options.length==2){v.make.selectedIndex=1;l(v.make);v.model.disabled=false}else{v.model.disabled=true}if(typeof(v.minMileage)!="undefined"){v.minMileage.disabled=true;v.maxMileage.disabled=true}}if(M.defaults.make){b("select[name=make] option[value="+M.defaults.make+"]").attr("selected","selected");setTimeout(function(){b("select[name=make]").click()},1000)}};var l=function(R){var S=v.model.value;L(v.model);if(R.selectedIndex!=0){var Q=K(R.options[R.selectedIndex].value);if(Q==-1){v.model.disabled=true}else{var P=0;for(i=1;i<vehicles[Q].length;i++){if(c(vehicles[Q][0],vehicles[Q][i])){v.model.options[++P]=new Option(vehicles[Q][i],vehicles[Q][i])}}v.model.disabled=false}}v.model.value=S;if(v.model.selectedIndex<0){v.model.selectedIndex=0}if(M.defaults.model){b("select[name=model] option[value="+M.defaults.model+"]").attr("selected","selected")}};var q=function(){var P;for(P=0;P<n.length;P++){v.bodyStyle.options[P+1]=new Option(n[P],n[P])}if(M.defaults.bodyStyle){b("select[name=bodyStyle] option[value="+M.defaults.bodyStyle+"]").attr("selected","selected")}};var z=function(){v.transmission.options[1]=new Option("Automatic","Automatic");v.transmission.options[2]=new Option("Standard","Standard")};var L=function(Q){var P=Q.options.length;for(i=(P-1);i>=1;i--){Q.options[i]=null}};var K=function(P){var Q=-1;for(j=0;j<vehicles.length;j++){if(vehicles[j][0].toLowerCase().replace(/ /g,"")==P.toLowerCase().replace(/ /g,"")){Q=j;break}}if(Q==-1){alert("Model list not found for: "+P+".\n\nPlease contact Dealer.com support at 888-895-2994.")}return(Q)};var c=function(P,Q){var S=(v.year.value!="")?v.year.value:0;var R=true;if((typeof(e[P])!="undefined")&&(typeof(e[P][Q])!="undefined")){if((e[P][Q].length==0)||((S>e[P][Q][1]))){R=false}}return(R)};var N=function(Q,P){if(v.model.value&&v.bodyStyle.value&&!P){if(Q.name=="model"){resetObj=v.bodyStyle}else{resetObj=v.model}alert("Please select a Model **OR** a Bodystyle.\n\nResetting "+resetObj.name+".");resetObj.selectedIndex=0}};var F=function(){for(key in C.settings.testDriveApptTimeLabels){var Q=t.options;var P=C.settings.testDriveApptTimeLabels[key];Q[Q.length]=new Option(P,key)}};var J=function(P){P=jQuery.extend({fromtype:1,allowModelAndBodyStyleTogether:false},P);o();r();y();m();q();z();F();b(d).click(function(){m(this.options[this.selectedIndex].value)});b(h).click(function(){l(v.make)});b(O).click(function(){l(this)});b(w).click(function(){N(this,P.allowModelAndBodyStyleTogether)});b(k).click(function(){N(this,P.allowModelAndBodyStyleTogether)})};J({allowModelAndBodyStyleTogether:this.settings.allowModelAndBodyStyleTogether})};DDC.TestDrive=a})(jQuery);