var service_contracts={};service_contracts.app={model:{selectedOptions:[],rememberedOptions:[],pricingPageOn:false,plans:window.scsplans,plansByID:window.scsplansByID,planOptionsByDeductible:{addPlan:function(b){service_contracts.app.model.planOptionsByDeductible=$merge(service_contracts.app.model.planOptionsByDeductible,b);}},buildPlanOptionsByDeductible:function(c){for(i in c){if($defined(c[i].deductible)){var d={};d[c[i].deductible]={};d[c[i].deductible][c[i].code]={};d[c[i].deductible][c[i].code].term=c[i].term;d[c[i].deductible][c[i].code].miles=c[i].miles;service_contracts.app.model.planOptionsByDeductible.addPlan(d);}}},availableOptions:[],sortPlanOptions:function(a,b){if(a.term!=b.term){return a.term-b.term;}else{return a.miles-b.miles;}},selectedPlanID:0,selectedOptionCode:0,selectedPlanPrice:0,selectedDeductible:0,selectedSurcharges:0,selectedSurchargeList:[],setSelectedPlanPrice:function(b){if($defined(b)){this.selectedPlanPrice=parseInt(b);}},setSelectedDeductible:function(b){if($defined(b)){this.selectedDeductible=b;}},setSelectedSurcharges:function(b){if($defined(b)){if(b!=0){this.selectedSurcharges+=parseInt(b);}else{this.selectedSurcharges=0;}}},fixedDeductible:true,fixedTime:false,term_and_miles_defined:false,term_param:0,miles_param:0},view:{updateDisplay:function(f){if(f==1){if($defined(service_contracts.app.page_div_id_map1[service_contracts.app.model.rememberedOptions[1]])){$(service_contracts.app.page_div_id_map1[service_contracts.app.model.rememberedOptions[1]]).setStyle("display","none");}$(service_contracts.app.page_div_id_map1[service_contracts.app.model.selectedOptions[1]]).setStyle("display","block");}else{if(f==2){if(service_contracts.app.model.pricingPageOn==true){this.setTermOptionsHTML(service_contracts.app.controller.buildDurationOptions(service_contracts.app.model.plansByID[service_contracts.app.model.selectedPlanID].plan_options));service_contracts.app.model.buildPlanOptionsByDeductible(service_contracts.app.model.plansByID[service_contracts.app.model.selectedPlanID].plan_options);this.setDeductibleOptionsHTML(service_contracts.app.controller.buildDeductibleOptionString(service_contracts.app.model.planOptionsByDeductible));this.setSurchargeOptionsHTML(service_contracts.app.controller.buildSurchargeOptionString(service_contracts.app.model.plansByID[service_contracts.app.model.selectedPlanID].surcharges));this.updatePackageTitleSubheader();this.updateComparePlanLink();this.updateSelectLabelHead();this.updateCustomerServiceMessage();if(service_contracts.app.model.selectedOptionCode!=0){this.updateTerm(service_contracts.app.model.selectedOptionCode);}else{this.updateTerm(document.time_mileage_deductible_form.time.value);}this.updateDeductible();}else{var g="";var h="?opt1="+service_contracts.app.model.selectedOptions[1]+"&opt2="+service_contracts.app.model.selectedOptions[2];var e="";if(service_contracts.app.model.selectedOptions[2].match(/option2c/)){e="pricing_conv.html";}else{if((service_contracts.app.model.selectedOptions[1]=="opt1f")&&((service_contracts.app.model.selectedOptions[2]=="option2d")||(service_contracts.app.model.selectedOptions[2]=="option2e"))){e=service_contracts.app.pricing_page_map1[service_contracts.app.model.selectedOptions[2]]+"_cpov680.html";}else{e=service_contracts.app.pricing_page_map1[service_contracts.app.model.selectedOptions[2]]+service_contracts.app.pricing_page_map2[service_contracts.app.model.selectedOptions[1]];}}window.location.href=e+h;return false;}}}},setTermOptionsHTML:function(b){$("time_mileage_span").setHTML(b);},setDeductibleOptionsHTML:function(b){$("deductible_span").setHTML(b);},setSurchargeOptionsHTML:function(b){$("surcharges_check_boxes").setHTML(b);},updateTerm:function(b){service_contracts.app.model.setSelectedSurcharges("0");service_contracts.app.model.setSelectedPlanPrice(service_contracts.app.model.plansByID[service_contracts.app.model.selectedPlanID].plan_options[b].price);service_contracts.app.model.selectedOptionCode=service_contracts.app.model.plansByID[service_contracts.app.model.selectedPlanID].plan_options[b].code;this.updatePlanCode(service_contracts.app.model.plansByID[service_contracts.app.model.selectedPlanID].plan_options[b].code);this.updatePlanType(service_contracts.app.model.plansByID[service_contracts.app.model.selectedPlanID].plan_type);this.setSurchargeOptionsHTML(service_contracts.app.controller.buildSurchargeOptionString(service_contracts.app.model.plansByID[service_contracts.app.model.selectedPlanID].surcharges));this.updatePrice();},updateDeductible:function(b){service_contracts.app.model.setSelectedDeductible(b);this.updatePrice();},updateSurcharges:function(k,h,j){if($defined(j)&&(j!="")){var f=$$("."+j);for(var g=0;g<f.length;g++){if((f[g].id!=h)&&(f[g].checked==true)){service_contracts.app.model.selectedSurchargeList.remove(f[g].id);service_contracts.app.model.setSelectedSurcharges(f[g].value*-1);f[g].checked=false;}}}if(service_contracts.app.model.selectedSurchargeList.contains(h)){service_contracts.app.model.selectedSurchargeList.remove(h);k*=-1;}else{service_contracts.app.model.selectedSurchargeList.include(h);}service_contracts.app.model.setSelectedSurcharges(k);this.updatePrice();},updatePrice:function(b){$("est_price").setHTML(this.numberFormat(service_contracts.app.model.selectedPlanPrice+service_contracts.app.model.selectedDeductible+service_contracts.app.model.selectedSurcharges));},updatePlanCode:function(b){if($defined(b)){$("plan_code").setHTML("Option Code: "+b);}},updatePlanType:function(b){if($defined(b)){$("plan_code_des").setHTML(b);}},updateComparePlanLink:function(){var e=window.location.toString();if(e.indexOf("pricing_conv")==-1){var f="";var h="";if(e.indexOf("pricing_max")!=-1){f="#max_care";h="<a href='#' id='compare_to' onclick='javascript: service_contracts.app.view.comparePlans(); return false;'>Compare To: ADDED CARE PLUS</a>";}else{if(e.indexOf("pricing_added")!=-1){f="#added_care";h="<a href='#' id='compare_to' onclick='javascript: service_contracts.app.view.comparePlans(); return false;'>Compare To: MAXIMUM CARE</a>";}}var g=$$(f+" h1").getText();$$(f+" h1").setHTML(g+"&nbsp;&nbsp;&nbsp;&nbsp;"+h);}},updateSelectLabelHead:function(){if((service_contracts.app.model.fixedTime==false)&&(service_contracts.app.model.fixedDeductible==true)){$("variable_time_set_deductible").setStyle("display","block");}else{if((service_contracts.app.model.fixedTime==true)&&(service_contracts.app.model.fixedDeductible==true)){$("variable_time_deductible").setStyle("display","block");}else{if((service_contracts.app.model.fixedTime==true)&&(service_contracts.app.model.fixedDeductible==false)){$("set_time_deductible").setStyle("display","block");}}}},updateCustomerServiceMessage:function(){if($defined($("price_disclaimer_b"))){var b=$("price_disclaimer_b").innerHTML;if($defined(brand)){b=b.replace(/dealer/i,brand.substring(0,1).toUpperCase()+brand.substring(1)+" dealer");}$("price_disclaimer_b").setHTML(b);}},updatePackageTitleSubheader:function(){var b="";if(service_contracts.app.model.rememberedOptions[1]!="opt1f"){b="with a ";}$(service_contracts.app.page_div_id_map3_opt2[service_contracts.app.model.rememberedOptions[2]]).setHTML(b+service_contracts.app.page_div_id_map3_opt1[service_contracts.app.model.rememberedOptions[1]]);},numberFormat:function(c){c=parseInt(c).toFixed(2);c+="";x=c.split(".");x1=x[0];x2=x.length>1?"."+x[1]:"";var d=/(\d+)(\d{3})/;while(d.test(x1)){x1=x1.replace(d,"$1,$2");}return"$"+x1+x2;},setCheckedValue:function(e,g){if(!$defined(e)){return;}var h=e.length;if(h==undefined){e.checked=(e.value==g.toString());return;}for(var f=0;f<=h;f++){if($defined(e[f])){e[f].checked=false;if(e[f].value==g.toString()){e[f].checked=true;}}}},goBack:function(){var b="";if($defined(service_contracts.app.model.rememberedOptions[1])){b="?opt1="+service_contracts.app.model.rememberedOptions[1];}window.location.href="/en/service_contracts/help_me_choose/"+b;},comparePlans:function(){var l="";var j=service_contracts.app.option_conversion_map[service_contracts.app.model.selectedOptions[2]];var o="?opt1="+service_contracts.app.model.selectedOptions[1]+"&opt2="+j;var p="&planterm="+service_contracts.app.model.plansByID[service_contracts.app.model.selectedPlanID].plan_options[service_contracts.app.model.selectedOptionCode].term;var q="&planmiles="+service_contracts.app.model.plansByID[service_contracts.app.model.selectedPlanID].plan_options[service_contracts.app.model.selectedOptionCode].miles;var m="";var n="_";for(var k=0;k<service_contracts.app.model.selectedSurchargeList.length;k++){if(k>0){m+=n;}else{m+="&surchargelist=";}m+=service_contracts.app.model.selectedSurchargeList[k];}if((service_contracts.app.model.selectedOptions[1]=="opt1f")&&((service_contracts.app.model.selectedOptions[2]=="option2d")||(service_contracts.app.model.selectedOptions[2]=="option2e"))){l=service_contracts.app.pricing_page_map1[j]+"_cpov680.html";}else{l=service_contracts.app.pricing_page_map1[j]+service_contracts.app.pricing_page_map2[service_contracts.app.model.selectedOptions[1]];}window.location.href=l+o+p+q+m;return false;}},controller:{update_option:function(d,c){if(parseInt(d)>0){service_contracts.app.model.selectedOptions[d]=c;service_contracts.app.view.updateDisplay(d);service_contracts.app.model.rememberedOptions=service_contracts.app.model.selectedOptions.copy();}},buildDurationOptions:function(k){if($defined(k)){var l=0;service_contracts.app.model.availableOptions=[];for(i in k){service_contracts.app.model.availableOptions.push(k[i]);}service_contracts.app.model.availableOptions.sort(service_contracts.app.model.sortPlanOptions);var o="<select name='time' id='time_select' onchange='javscript: service_contracts.app.view.updateTerm(this.value); linkTrack(\"content\",\"plan option \"+this.value);'>";var h="";var m="";if($defined(service_contracts.app.model.availableOptions[0])){if(service_contracts.app.model.availableOptions[0]["term"]==0){if(service_contracts.app.controller.isSelectedDurationOption(service_contracts.app.model.availableOptions[0]["code"],service_contracts.app.model.availableOptions[0]["term"],service_contracts.app.model.availableOptions[0]["miles"])==true){m="selected";}h+="<option "+m+" value='"+service_contracts.app.model.availableOptions[0]["code"]+"'>Lifetime</option>";l++;}}for(var j=l;j<service_contracts.app.model.availableOptions.length;j++){var n="";m="";if((service_contracts.app.model.availableOptions[j]["term"])==39){n+=(service_contracts.app.model.availableOptions[j]["term"]);n+=" Months";}else{n+=((service_contracts.app.model.availableOptions[j]["term"])/12);n+=" Years";}if(service_contracts.app.controller.isSelectedDurationOption(service_contracts.app.model.availableOptions[j]["code"],service_contracts.app.model.availableOptions[j]["term"],service_contracts.app.model.availableOptions[j]["miles"])==true){m="selected";}o+="<option "+m+" value='"+service_contracts.app.model.availableOptions[j]["code"]+"'>"+n+" / "+service_contracts.app.model.availableOptions[j]["miles"]+" Miles</option>";}o+=h;o+="</select>";return o;}return"<select><option>N/A</option></select>";},isSelectedDurationOption:function(d,e,f){if(service_contracts.app.model.term_and_miles_defined&&(e==service_contracts.app.model.term_param)&&(f==service_contracts.app.model.miles_param)){return true;}else{if(d==service_contracts.app.model.selectedOptionCode){return true;}}return false;},buildDeductibleOptionString:function(c){if($defined(c)){var d=[];for(i in c){if(i>=0){d.push(i);}}d.sort();}if(d.length==1){service_contracts.app.model.fixedDeductible=true;return service_contracts.app.view.numberFormat(d[d.length-1]);}else{service_contracts.app.model.fixedDeductible=false;return"None";}},buildSurchargeOptionString:function(k){var j="";var m=0;if($defined(k)){for(i in k){var o=true;var n="";if($defined(k[i].exclude)){var l=new RegExp(service_contracts.app.model.plansByID[service_contracts.app.model.selectedPlanID].plan_options[document.time_mileage_deductible_form.time.value].code);if(k[i].exclude.match(l)){o=false;}}if(o==true){if(service_contracts.app.model.selectedSurchargeList.contains(k[i].sid)){n="checked";service_contracts.app.model.setSelectedSurcharges(k[i].price);}m++;var h="";if($defined(k[i].group)){h=k[i].group;}j+="<p class='cscbox' ><span class='surchargeBox'><input type='checkbox' name='"+k[i].sid+"' id='"+k[i].sid+"'  class='"+h+"' value='"+k[i].price+"' onclick='javascript: service_contracts.app.view.updateSurcharges(this.value, this.id, \""+h+'"); linkTrack("content","surcharge '+k[i].description+" "+k[i].price+"\");' "+n+" /></span> <span class='surchargeDesc'><label for='"+k[i].sid+"' style='cursor: pointer;'>"+k[i].description+"</label></span></p>";}}}if(m==0){j+="<p class='cscbox' ><span class='surchargeBox'>&nbsp;</span><span class='surchargeDesc'>No surcharges apply to selected option.</span></p>";}return j;}},init:function(){if((window.location.toString()).match(/help_me_choose\/pricing.*/)){var b=false;if(!(getParameter("opt1").length>1)){b=true;}else{if(!(getParameter("opt2").length>1)){b=true;}}if(b==true){window.location.href="/en/service_contracts/help_me_choose/";}if(getParameter("opt1").length>1){service_contracts.app.model.selectedOptions[1]=getParameter("opt1");service_contracts.app.model.rememberedOptions=service_contracts.app.model.selectedOptions.copy();}if(getParameter("opt2").length>1){service_contracts.app.model.selectedOptions[2]=getParameter("opt2");service_contracts.app.model.rememberedOptions=service_contracts.app.model.selectedOptions.copy();}if(getParameter("optcode").length>1){service_contracts.app.model.selectedOptionCode=getParameter("optcode");}else{if($defined(getParameter("planterm"))&&$defined(getParameter("planmiles"))){service_contracts.app.model.term_and_miles_defined=true;service_contracts.app.model.term_param=getParameter("planterm");service_contracts.app.model.miles_param=getParameter("planmiles");}}if(getParameter("surchargelist").length>2){service_contracts.app.model.selectedSurchargeList=getParameter("surchargelist").split("_");service_contracts.app.model.selectedSurchargeList.remove("");}service_contracts.app.model.selectedPlanID=scsplans[service_contracts.app.model.selectedOptions[1]][service_contracts.app.model.selectedOptions[2]];service_contracts.app.model.pricingPageOn=true;service_contracts.app.view.updateDisplay(2);$("back_to_results").addEvent("click",function(){service_contracts.app.view.goBack();return false;});}else{if(getParameter("opt1").length>1){service_contracts.app.view.setCheckedValue(document.scsform.opt1,getParameter("opt1"));service_contracts.app.controller.update_option(1,getParameter("opt1"));}}},page_div_id_map1:{opt1a:"within_warranty_life",opt1b:"within_warranty_3_36",opt1c:"within_warranty_7_70",opt1d:"within_warranty_8_80",opt1e:"within_warranty_5_100",opt1f:"older_vehicle",opt1g:"within_warranty_6_80",opt1h:"within_warranty_7_100"},page_div_id_map2:{option2a:"Maximum Care",option2b:"Added Care Plus",option2c:"Convenience Package",option2d:"Maximum Care",option2e:"Added Care Plus",option2f:"Maximum Care",option2g:"Added Care Plus"},page_div_id_map3_opt1:{opt1a:"Lifetime Powertrain Limited Warranty",opt1b:"3-Year / 36,000-Mile Warranty",opt1e:"5-Year / 100,000-Mile Powertrain Limited Warranty",opt1c:"7-Year / 70,000-Mile Powertrain Limited Warranty",opt1d:"8-Year / 80,000-Mile Certified Pre-Owned Powertrain Limited Warranty",opt1g:"6-Year / 80,000-Mile Certified Pre-Owned Powertrain Limited Warranty",opt1f:"My vehicle is older",opt1h:"7-Year / 100,000-Mile Certified Pre-Owned Powertrain Limited Warranty"},page_div_id_map3_opt2:{option2a:"max_care_sub",option2b:"added_care_sub",option2c:"conv_package_sub",option2d:"max_care_sub",option2e:"added_care_sub",option2f:"max_care_sub",option2g:"added_care_sub"},pricing_page_map1:{option2a:"pricing_max",option2b:"pricing_added",option2d:"pricing_max",option2e:"pricing_added",option2f:"pricing_max",option2g:"pricing_added"},pricing_page_map2:{opt1a:"_new.html",opt1b:"_new.html",opt1c:"_new.html",opt1d:"_cpov.html",opt1e:"_new.html",opt1f:"_cpov.html",opt1g:"_cpov680.html",opt1h:"_cpov.html"},option_conversion_map:{option2a:"option2b",option2b:"option2a",option2d:"option2e",option2e:"option2d",option2f:"option2g",option2g:"option2f"}};onload_register("service_contracts.app.init()");
