//Variable Definitions
var myCar = new mitsuCar();
var trimList = new Array();
var extColorList = new Array();
var intColorList = new Array();
var bpClassArray = new Array("bprItem", "bprItemAlt");
var dealerList = null;
var myTimer = new Array();
var specialOffersList = new Array();
var calcTimer = 0;
var navStep = 0;
var showingInfo = false;
var myZip = "";
var dbModelName = "";
var arrowHTML = "";
var zipReset = false;
var pacAccTotal = 0;
var finishedHeaderImage = "";
var modelHeaderImage = "";
var finishInit = false;
var displayPartnerPricing = false;
var strCurrSelAccessories = "";
var tmpWar1 = "";
var tmpWar2 = "";
var selectedModel;
var isFindOffersSubmitRequest = false;

/*********************************************
* Check query string for ModelId and TrimId  *
* If ModelId found preselect model           *
* If ModelId and TrimId found preselect trim *
*********************************************/
function checkQuery() {
	var args = new Object();
	var query = location.search.substring(1);
	var pairs = query.split("&");
	for (var i=0; i < pairs.length; i++) {
		var pos = pairs[i].indexOf('=');
		if (pos == -1) continue;
		var argname = pairs[i].substring(0,pos);
		var value = pairs[i].substring(pos+1);
		args[argname]=unescape(value);
	}

	//Grab arrow image from first cell
	arrowHTML = getItem('arrow1').innerHTML;

	if (args['modelId']) {
		advanceNav(1);

		//getItem('bprDisclaimerDiv').innerHTML = MSRP1 + moneyFormat(myCar.destPrice) + MSRP2 + moneyFormat(myCar.destPrice + 125) + MSRP3;
		getItem('bprDisclaimerDiv').style.visibility = 'visible';

		myCar.modelId = parseInt(args['modelId']);
		//Assign to offer form
		getItem(inputModelId).value =  myCar.modelId;
		if (args['trimId']) {
			myCar.trimId = args['trimId'];
			advanceNav(2);
			getTrims(myCar.trimId);
			getExtColors();
			advanceNav(3);
		} else {
			getTrims();
		}
		//Check that a zipcode exists.
		if (sessionZipCode == "") {
				//Default Zipcode for somewhere in the US but not in Alaska.
				//This will make the default destination and handling charge appear
				//While not making the check zip function obsolete.
				sessionZipCode = "94105";
		} else {
			getItem('bprZip').value = sessionZipCode;
		}
	}


}

//Definition for special offer data
function specialOffer(id, shortDesc, longDesc, legalDesc, savings, endDate, offerType) {
	this.id = id;
	this.shortDesc = shortDesc;
	this.longDesc = longDesc;
	this.savings = savings;
	this.legal = legalDesc;
	this.endDate = endDate;
	this.offerType = offerType;
	this.selected = false;		//Used for pricing and display
}

//Definition for accessory data
function accessoryItem (id, name, price, image, copy){
	this.accessoryId = id;
	this.price = price;
	this.name = name;
	this.image = ((image!="")?"<":"")+image;
	this.copy = copy;
	this.selected = false;		//Used for pricing and display
	this.visible = true; 			//Used to hide accessory when included in a selected package
	this.enabled = true;
}

//Definition for accessory package data
function accessoryPackage(id, shortDesc, longDesc, footnote, price, partnerPrice, packageExclusions, packageRequirements, accessoryExclusions, accessoryInclusions) {
	this.shortDesc = shortDesc;
	this.longDesc = longDesc;
	this.footnote = footnote;
	this.price = price;
	this.partnerPrice = partnerPrice;
	this.selected = false;		//Used for pricing and display
	this.packageId = id;
	this.enabled = true;			//Used for package exclusions
	this.packageExclusions = packageExclusions;
	this.packageRequirements = packageRequirements;
	this.accessoryExclusions = accessoryExclusions;
	this.accessoryInclusions = accessoryInclusions;
}

//Definition for finance data
function financeValues() {
	this.tradeIn = 0;
	this.downPayment = 0;
	this.termMonths = 72;			//Default term
	this.apr = "";						//Default unassigned APR
	this.payment = 0;
}

//Update vehicle financing data from calculator form
function updateFinance() {
	var tradeIn = getItem("bprCalcTrade").value;
	var downPayment = getItem("bprCalcDown").value;
	var apr = getItem("bprCalcApr").value;
	myCar.finance.tradeIn = (tradeIn=="")?0:parseFloat(stripMoney(tradeIn));
	myCar.finance.downPayment = (downPayment=="")?0:parseFloat(stripMoney(downPayment));
	myCar.finance.termMonths = parseInt(getItem("bprCalcTerm").value);
	myCar.finance.apr = (apr=="")?"":parseFloat(stripMoney(apr));
	updatePricing();
	surveyRequest ('kpi');
}

//Stripping commas and $ from money values
function stripMoney(moneyString) {
	moneyString = moneyString.replace(/,/, "");
	moneyString = moneyString.replace(/\$/, "");
	return moneyString;
}

//Currently unused - Definition for lease data
function leaseValues() {
	this.tradeIn = 0;
	this.termMonths = 72;			//Default term
	this.rate = 1.9;					//Default rate
	this.payment = "0";
}

//Definition for trim data
function trimLine(id, name, msrp, img, footnote, features, partnerPrice, partnerCashIncentive, partnerDate, printImg) {
	this.id = id;
	this.name = name;
	this.msrp = msrp;
	this.carImg = "<"+img;
	this.footnote = footnote;
	this.features = features;
	this.partnerPrice = partnerPrice;
	this.cashIncentive = partnerCashIncentive;
	this.partnerDate = partnerDate;
	this.printImg = "<" + printImg;
}

//Calculate payment estimates
function calculatePayments(v) {
	if (v.finance.termMonths && typeof(v.finance.apr) != "string") {
		i = (v.finance.apr / 100 / 12);
		if (i) {
			v.finance.payment = (Math.round((v.totalPrice - v.finance.tradeIn - v.finance.downPayment) / ( ( 1 / i) * ( 1 - Math.pow( 1 / (1+i), v.finance.termMonths))) * 100 ) / 100);
		} else {
			//Prevent divide by zero for 0% APR offer
			v.finance.payment = (Math.round((v.totalPrice - v.finance.tradeIn - v.finance.downPayment) / v.finance.termMonths * 100 ) / 100);
		}
	}
}

//Definition for exterior color
function extColor(id, name, img, carImg, charge) {
	this.colorId = id;
	this.name = name;
	this.thumbImg = "<" + img;
	this.carImg = "<" + carImg;
	this.charge = charge;
	this.selected = false;
}

//Definition for interior
function intColor(id, name, img) {
	this.colorId = id;
	this.name = name;
	this.thumbImg = "<" + img;
	this.selected = false;
}

//Definition for the whole vehicle object
function mitsuCar() {
	this.modelId = 0;
	this.modelName = "";
	this.trimId = 0;
	this.trimName = "";
	this.trimImg = "";
	this.trimFootnote = "";
	this.trimFeatures = "";
	this.destPrice = 0;
	this.packages = new Array();
	this.accessories = new Array();
	this.extColor = new Array();
	this.intColor = new Array();
	this.msrp = 0;
	this.partnerPrice = 0;
	this.partnerSavings = 0;
	this.cashIncentive = 0;
	this.totalPrice = 0;
	this.finance = new financeValues();
	this.lease = new leaseValues();
	this.specialOffers = new Array();
	this.dealer = new Array();
}

//Recalculate and display all pricing information
function updatePricing() {

	var price = (displayPartnerPricing)?myCar.partnerPrice:myCar.msrp;
	pacAccTotal = 0;
	pacAccPartnerTotal = 0;

	if (!displayPartnerPricing) {
		//Display premium paint charge line item for consumers
		var chargeLayer = getItem("premiumPaintChargeItem");
		if (myCar.extColor.charge) {
			price += myCar.extColor.charge;
			if (chargeLayer != null) {
				getItem("premiumPaintCharge").innerHTML = myCar.extColor.charge + curAfter;
				chargeLayer.style.visibility = "visible";
				chargeLayer.style.position = "relative";
			}
		} else {
			if (chargeLayer != null) {
				chargeLayer.style.visibility = "hidden";
				chargeLayer.style.position = "absolute";
			}
		}
	} else {
		//Display premium paint charge line item for partners
		var msrpChargeLayer = getItem("diMsrpPaintChargeItem");
		var diChargeLayer = getItem("diPaintChargeItem");
		if (myCar.extColor.charge) {
			price += myCar.extColor.charge;
			getItem("diMsrpPaintCharge").innerHTML = myCar.extColor.charge + curAfter;
			getItem("diPaintCharge").innerHTML = myCar.extColor.charge + curAfter;
			msrpChargeLayer.style.visibility = "visible";
			msrpChargeLayer.style.position = "relative";
			diChargeLayer.style.visibility = "visible";
			diChargeLayer.style.position = "relative";
		} else {
			msrpChargeLayer.style.visibility = "hidden";
			msrpChargeLayer.style.position = "absolute";
			diChargeLayer.style.visibility = "hidden";
			diChargeLayer.style.position = "absolute";
		}

	}

	if (!displayPartnerPricing) {
		//Display destination charge line item for consumers
		var chargeLayer = getItem("destPriceItem");
		if (myCar.destPrice) {
			price += myCar.destPrice;
			if (chargeLayer != null) {
				getItem("destPrice").innerHTML = myCar.destPrice + curAfter;
				chargeLayer.style.visibility = "visible";
				chargeLayer.style.position = "relative";
			}
		} else {
			if (chargeLayer != null) {
				chargeLayer.style.visibility = "hidden";
				chargeLayer.style.position = "absolute";
			}
		}
	} else {
		var chargeLayer = getItem("destPriceItem");
		chargeLayer.style.visibility = "hidden";
		chargeLayer.style.position = "absolute";
	}


	//Add accessory costs
	for (prop in myCar.accessories) {
		curAcc = myCar.accessories[prop];
		if (curAcc.selected) {
			pacAccTotal += curAcc.price;
		}
	}

	//Add package costs
	var pacSelString = "";
	for (prop in myCar.packages) {
		curPac = myCar.packages[prop];
		if (curPac.selected) {
			//myCar.partnerSavings += curPac.price - curPac.partnerPrice;
			pacAccTotal += curPac.price;
			pacAccPartnerTotal += curPac.partnerPrice
			pacSelString += URLencode(curPac.shortDesc) + "|";
		}
	}
	if (pacSelString != "") {
		//Remove terminating pipe
		pacSelString = pacSelString.substr(0, pacSelString.length - 1);

		//Assign to offer form
		getItem(inputPackageName).value = pacSelString;
	}

	if (displayPartnerPricing) {
		//Add destination charge to packages as these are one line item for partners
		pacAccPartnerTotal += myCar.destPrice;
		pacAccTotal += myCar.destPrice;

	}

	//Display Packages & Accessories line item
	try { getItem("pacAccTotal").innerHTML = moneyFormat(pacAccPartnerTotal) + curAfter; } catch (e) {}
	if (!displayPartnerPricing) {
		//Packages Line Item for consumers
		var pacAccLayer = getItem("pacAccItem");
		if (pacAccTotal) {
			getItem("pacAccTotal").innerHTML = moneyFormat(pacAccTotal) + curAfter;
			if (pacAccLayer != null) {
				pacAccLayer.style.visibility = "visible";
				pacAccLayer.style.position = "relative";
			}
		} else {
			if (pacAccLayer != null) {
				pacAccLayer.style.visibility = "hidden";
				pacAccLayer.style.position = "absolute";
			}
		}
	} else {
		var msrpPacAccLayer = getItem("diMsrpDestPacItem");
		var diPacAccLayer = getItem("diDestPacItem");
		if (pacAccPartnerTotal) {
			getItem("diMsrpDestPac").innerHTML = moneyFormat(pacAccTotal) + curAfter;
			getItem("diDestPac").innerHTML = moneyFormat(pacAccPartnerTotal) + curAfter;
			msrpPacAccLayer.style.visibility = "visible";
			msrpPacAccLayer.style.position = "relative";
			diPacAccLayer.style.visibility = "visible";
			diPacAccLayer.style.position = "relative";
		} else {
			msrpPacAccLayer.style.visibility = "hidden";
			msrpPacAccLayer.style.position = "absolute";
			diPacAccLayer.style.visibility = "hidden";
			diPacAccLayer.style.position = "absolute";
		}

	}
	price += ((displayPartnerPricing)?pacAccPartnerTotal:pacAccTotal);

	//Subtract savings
	if (!displayPartnerPricing) {
		for (prop in myCar.specialOffers) {
			curOff = myCar.specialOffers[prop];
			if (curOff.selected) {
				price -= curOff.savings;
			}
		}
	}

	//Subtract Partner Cash Incentive
	var cashIntLayer = getItem('cashIncentiveLine');
	var diLayer = getItem('dealerInvoiceLineItem');
	if (displayPartnerPricing) {
		price -= myCar.cashIncentive;
		getItem('cashIncentiveVal').innerHTML = moneyFormat(myCar.cashIncentive) + curAfter;
		if (cashIntLayer != null && myCar.cashIncentive > 0) {
			cashIntLayer.style.visibility = "visible";
			cashIntLayer.style.position = "relative";
		}
		if (diLayer != null) {
			diLayer.style.visibility = "visible";
			diLayer.style.position = "relative";
		}
	} else {
		if (cashIntLayer != null) {
			cashIntLayer.style.visibility = "hidden";
			cashIntLayer.style.position = "absolute";
		}
		if (diLayer != null) {
			diLayer.style.visibility = "hidden";
			diLayer.style.position = "absolute";
		}
	}

	myCar.totalPrice = price;
	msrpPrice = myCar.msrp + pacAccTotal;
	if (myCar.extColor.charge) msrpPrice += myCar.extColor.charge;
	myCar.partnerSavings = msrpPrice - myCar.totalPrice;
	calculatePayments(myCar);

	// refactored by JJG
	buildDisplayPricing();
	//getItem('bprDisclaimerDiv').innerHTML = MSRP1 + moneyFormat(myCar.destPrice) + MSRP2 + moneyFormat(myCar.destPrice + 125) + MSRP3;

	//Pricing reordering for final screen
	if (navStep == 5) {
		advanceNav(5);
		//displayFinished();
	}

}

// refactor by JJG
function buildDisplayPricing(){

	var bprPrintApr = "&nbsp;";
	try {

		if(getItem("bprCalcApr").value != -1) {
			bprPrintApr = getItem("bprFinanceTermsInside").innerHTML = myCar.finance.apr + perWith + "&nbsp;";
		}
	} catch(e) {}

	//always update the bprTotalPrice if the num
	if (getItem("bprTotalPrice") != null) {
		getItem("bprTotalPrice").innerHTML = curBefore + moneyFormat(myCar.totalPrice) + curAfter;
	}

	//not initial state
	//Mike Ottinger added the condition in front to go into this if,
	//if displayPartnerPricing is true
	if ((displayPartnerPricing) || getItem("bprTotalPrice") != null && (getItem("bprCalcApr").value != -1 || getItem("bprCalcTrade").value || getItem("bprCalcDown").value) ) {

		getItem("diTotal").innerHTML = moneyFormat(myCar.totalPrice) + curAfter;
		getItem("diMsrpTotal").innerHTML = moneyFormat(msrpPrice) + curAfter;
		getItem("diSavings").innerHTML = moneyFormat(myCar.partnerSavings) + curAfter;

		if (myCar.finance.termMonths > 0 && typeof(myCar.finance.apr) != "string") {
			//Display payment estimate
			//Hide default message
			getItem("bprFinancePaymentDefault").innerHTML = "";
			getItem("bprFinancePaymentInsideDefault").innerHTML = "";

			//if monthly payment get rid of estimate payment button //mitch
			//<img class="button" src="/MMNA/build/images/bpr_btnEstMonthlyPay.gif" border="0" alt="Estimated Monthly Payment" onclick="slideUp('financeCalc', 'financeCalcButton', slideStepValue, 187)">
			$(".estPaymentBtn").html("Your Estimated Monthly Payment");
			//getItem("estimateMonthlyPaymentBtn").innerHTML = "<span style='color:red'>Your Estimated Monthly Payment</span>";
			// differences for languages
			getItem("bprFinanceTerms").innerHTML = "<span style='font-size: 16px; font-weight: bold;'>" + curBefore + moneyFormat(myCar.finance.payment) + curAfter + "</span>&nbsp;";	//getItem("bprFinancePayment").innerHTML = curBefore + moneyFormat(myCar.finance.payment) + curAfter;
			$(".monthlyPayment").html(curBefore + moneyFormat(myCar.finance.payment) + curAfter);
			
			//getItem("bprFinanceTerms2").innerHTML = "<span style='font-size: 16px; font-weight: bold; color:red'>" + curBefore + moneyFormat(myCar.finance.payment) + curAfter + "</span>&nbsp;";
			if (langCode == "en-us" ) {
				getItem("bprFinanceTerms").innerHTML += estimatedAt + " " + myCar.finance.termMonths + " " + mosAt + "&nbsp;@ " + bprPrintApr + curBefore + (myCar.finance.tradeIn + myCar.finance.downPayment) + curAfter + " " + downPayment + "&nbsp;" + availAPR + ".";
			} else {
				getItem("bprFinanceTerms").innerHTML += "<span style='line-height:9px;'>" + estimatedAt + "&nbsp;" + myCar.finance.termMonths + " " + mosAt + " " + bprPrintApr + curBefore + (myCar.finance.tradeIn + myCar.finance.downPayment) + curAfter + " " + downPayment + " " + availAPR + "." + "</span>";
			}

			//Put values inside calculator
			getItem("bprFinancePaymentInside").innerHTML = curBefore + moneyFormat(myCar.finance.payment) + curAfter;
			getItem("bprFinanceTermsInside").innerHTML = estimatedAt + " " + myCar.finance.termMonths + " " + mosAt + " " + bprPrintApr + curBefore + (myCar.finance.tradeIn + myCar.finance.downPayment) + curAfter + " " + downPayment + " " + availAPR;
		}
		else {
			//Hide display of payment estimate
			getItem("bprFinancePaymentDefault").innerHTML = defaultCalcMessage;
			getItem("bprFinancePaymentInsideDefault").innerHTML = defaultCalcMessage;
			
			
			$(".estPaymentBtn").html("<img class=\"button\" src=\"/MMNA/build/images/bpr_btnEstMonthlyPay."+langCode+".png\" border=\"0\" alt=\"Estimated Monthly Payment\" onclick=\"slideUp('financeCalc', 'financeCalcButton', slideStepValue, 187)\">");//getItem("estimateMonthlyPaymentBtn").innerHTML = "<img class=\"button\" src=\"/MMNA/build/images/bpr_btnEstMonthlyPay.gif\" border=\"0\" alt=\"Estimated Monthly Payment\" onclick=\"slideUp('financeCalc', 'financeCalcButton', slideStepValue, 187)\">";
			//getItem("bprFinancePayment").innerHTML = " ";
			getItem("bprFinanceTerms").innerHTML = " ";
			getItem("bprFinancePaymentInside").innerHTML = "&nbsp;";
			getItem("bprFinanceTermsInside").innerHTML = "&nbsp;";
		}
	}
	else { // user hasn't entered data into calculator
		//getItem("bprFinancePayment").innerHTML = "&nbsp;";
		try {
			
			//getItem("estimateMonthlyPaymentBtn").innerHTML = "<img class=\"button\" src=\"/MMNA/build/images/bpr_btnEstMonthlyPay.gif\" alt=\"Estimated Monthly Payment\" border=\"0\" onclick=\"slideUp('financeCalc', 'financeCalcButton', slideStepValue, 187)\">";
			$(".estPaymentBtn").html("<img class=\"button\" src=\"/MMNA/build/images/bpr_btnEstMonthlyPay."+langCode+".png\" border=\"0\" alt=\"Estimated Monthly Payment\" onclick=\"slideUp('financeCalc', 'financeCalcButton', slideStepValue, 187)\">");
			
			getItem("bprFinanceTerms").innerHTML = bprCalcIntro;
			//getItem("bprFinanceTerms2").innerHTML = "&nbsp;";
			$(".monthlyPayment").html("&nbsp;");
			
			getItem("bprFinancePaymentInside").innerHTML = "&nbsp;";
			getItem("bprFinanceTermsInside").innerHTML = "&nbsp;";
		} catch(e) {}
	}
}

//add by Mike O
//escape() encodes most of the stuff you need to encode.
//It misses single (%27) and double (%22) quotes, the plus sign (%2B) and slash (%2F)
// This might be better in the util file

function URLencode(sStr) {
    return escape(sStr).
			replace(/\+/g, '%2B').
			replace(/\"/g,'%22').
			replace(/\'/g, '%27').
			replace(/\//g,'%2F');
}

function showMSRPDisclaimer(discTitle) {
	showDisclaimer("discMSRP_"+selectedModel, discTitle);
}

function showPZEVDisclaimer(discTitle) {
	showDisclaimer("discPZEV_"+selectedModel, discTitle);
}

function loadDisclaimersForModel (selectedModel) {
	// all of this is temporary until we can get a better disclaimer system in place
	// something that loads notes dynamically and adjusts link text accordingly
	clearDisclaimer();
	
	switch  (selectedModel) {
		
	    case 100035: // outlander 2010
	    	addDisclaimer("discManuSuggestedPrice", "discGlobalAirbags", "discGlobalEpa");
	    break;
		
	    case 100031: // lancer 2010
	    	addDisclaimer("discMSRP_"+selectedModel, "discGlobalAirbags", "discGlobalPzev", "discLnRoadside", "disciPod", "discGlobalEpa");
	    break;
	    
	    case 100033: // sportback 2010
	    	addDisclaimer("discMSRP_"+selectedModel, "discGlobalAirbags", "discPzev161", "discLnRoadside", "disciPod", "discGlobalEpa");
	    break;
	    
	    default:
	    	addDisclaimer("discMSRP_"+selectedModel, "discGlobalAirbags", "discPZEV_"+selectedModel, "discLnRoadside", "disciPod", "discGlobalEpa");
	}
}


//Pick a model
function selectModel(modelId) {
	
	selectedModel = modelId;
    //add disclaimers dynamically for this model
	loadDisclaimersForModel (modelId);
	
	myCar.modelId = modelId;
	//Assign to offer form
	getItem(inputModelId).value =  modelId;
	//Put model name into right column display
	getTrims();

	getItem('bprDisclaimerDiv').style.visibility = 'visible';
	
	
	/*if (dealerList == null) {
		getDealerList();
	}*/
}

//Call destination price servlet and retrieve destination price based on zip (Alaska or Continental US)
function getDestPrice() {
	//var priceArgs = "modelId=" + myCar.modelId + "&zipCode=" + sessionZipCode;
	//Remove possibility of returning alaskan zip
	var priceArgs = "modelId=" + myCar.modelId + "&zipCode=94105";
	makeRequest('/MMNA/destPrice.do', priceArgs, 'eval(myCar.destPrice=parseInt(http_request[i].responseText));updatePricing();');
}

//Get Dealer List
function getDealerList(whichFunction) {
	dealerList = null;
	var zipArgs = "bprZip=" + sessionZipCode + "&dealerMax=5&filterEcom=true&lang=" + langCode;
	makeRequest('/MMNA/findDealer.do', zipArgs, 'eval(http_request[i].responseText);writeDealerList("'+whichFunction+'")');
}

//Check zipcode for dealer
function checkRFQZip(whichFunction) {
	sessionZipCode = getItem('bprZip').value;
	zipArgs = "zipCode=" + sessionZipCode + "&lang=" + langCode;
	//Send zip to servelet for validation
	makeRequest('/MMNA/validateZip.do', zipArgs, 'eval(setRFQZip(http_request[i].responseText, "'+whichFunction+'"));');
}

//If zip is valid display valid message and move to the next step else display invalid zip message
function setRFQZip(isValid,whichFunction) {
	if(isValid != "false") {
		getDealerList(whichFunction);
		getItem('zipCode').value = $.trim(sessionZipCode);
	} else {
		alert(bprNoZipError);
	}
}

//Return RFQ Box to initial state
function restoreRfqBox() {
	getItem('bprEnterZip').style.display = "block";
	getItem('nextDealerLinkDiv').style.display = "none";
	getItem('bprRfq').style.backgroundImage = "url(../build/images/bpr_bgRfqPrintDetails."+langCode+".gif)";
}

function writeDealerList(whichFunction) {

	//Check for null dealers
	if (dealerList == null) {
		alert(nextDealerError);
		return;
	}

	PMADealer = null;
	fullDealerDiv = getItem('bprFullDealerList');
	//Set correct header image
	if (whichFunction == "printFinal") {
		getItem('bprRfq').style.backgroundImage = "url(../build/images/bpr_bgPrintDetails."+langCode+".gif)";
	} else {
		getItem('bprRfq').style.backgroundImage = "url(../build/images/bpr_bgRfq."+langCode+".gif)";
	}

	fullDealerDiv.innerHTML = "";
	var dealerCount = 0;
	for (dealer in dealerList) {
		dealerCount++;
		dealerData = dealerList[dealer];
		fullString = "<div class='bprDealerRadio'><input type='radio' name='dealerRadio' onClick='selectDealer(\"" + dealerData.id + "\")' value='" + dealerData.id + "' " + ((PMADealer == null)?"checked='checked'":"") + "></div>";
		fullString += "<div class='bprDealerRadioData'><span style='float:right;padding-right: 10px'>("+dealerData.miles+" " + bprMiles + ")</span><b class='bprDarkLink'>" + dealerData.name + "</b><br/>";
		fullString += dealerData.address + "<br/>";
		fullString += dealerData.city + ", " + dealerData.state + " " + dealerData.zip + "<br/>";
		fullString += dealerData.phone + "</div>";
		fullDealerDiv.innerHTML += fullString;
		//Put first PMA Dealer
		if (PMADealer == null) {
			PMADealer = dealerData;
			PMADealerDiv = getItem('bprDealerList');
			PMAString = "";
			PMAString = "<b class='bprDarkLink'>" + PMADealer.name + "</b><br/>";
			PMAString += PMADealer.address + "<br/>";
			PMAString += PMADealer.city + ", " + PMADealer.state + " " + PMADealer.zip + "<br/>";
			PMAString += PMADealer.phone;
			//PMADealerDiv.innerHTML = PMAString;

			//Assign PMA as selected Dealer
			myCar.dealer = PMADealer;

			//Assign to offer form
			getItem(inputDealerId).value = myCar.dealer.id;

		}
	}
	var NextDealerDiv = getItem('nextDealerLinkDiv');
	var SelectDealerDiv = getItem('dlrSelectHdr');
	if (whichFunction == "printFinal") {
		NextDealerDiv.innerHTML = "<div style='float:right; margin-top:57px' class='bprModelHeader' onclick='javascript:printFinal();'>" + nextButtonImg + "</div>" + PMAString + "<br/>" + nextDealerLinkPrint;
		SelectDealerDiv.innerHTML = PrintHeader;
	} else {
		NextDealerDiv.innerHTML = "<div style='float:right; margin-top:57px' class='bprModelHeader' onclick='javascript:requestQuote();'>" + nextButtonImg + "</div>" + PMAString + "<br/>" + nextDealerLinkPrint;
		SelectDealerDiv.innerHTML = RfqHeader;
	}

	//Set Link in dealer list
	getItem('dealerListNextLink').href="javascript:" + whichFunction + "();";


	//Hide zip entry and show PMA Dealer and Next button
	NextDealerDiv.style.display = "block";
	getItem('bprEnterZip').style.display = "none";
}

function selectDealer(dealerId) {
	myCar.dealer = dealerList["dealer"+dealerId+"key"];
	newDealerDiv = getItem('bprDealerList');
	newString = "";
	if (myCar.dealer.url != "" ) {
		newString = "<a href='"+myCar.dealer.url+"' class='bprDarkLink' target='_blank'>" + myCar.dealer.name + "</a><br/>";
	} else {
		newString = "<b class='bprDarkLink'>" + myCar.dealer.name + "</b><br/>";
	}
	newString += myCar.dealer.address + "<br/>";
	newString += myCar.dealer.city + ", " + myCar.dealer.state + " " + myCar.dealer.zip + "<br/>";
	newString += myCar.dealer.phone;
	//newDealerDiv.innerHTML = newString;
	//Assign to offer form
	getItem(inputDealerId).value = myCar.dealer.id;
}

function displayFullDealerList() {

	getItem('bprMoreDealers').style.visibility = 'visible';

}

function assignPrintImg(modelID) {
	switch(modelID.toString()) {
		case "100025":case "100015":case "100000":case "100009":case "100029":
			myCar['printImg'] = "09_Eclipse_bp_print.jpg";
			break;
		case "100024":case "100016":case "100001":case "100030":
			myCar['printImg'] = "09_Spyder_bp_print.jpg";
			break;
		case "100029":
			myCar['printImg'] = "10_Eclipse_bp_print.jpg";
			break;
		case "100033":
			myCar['printImg'] = "10_Sportback_bp_print.jpg";
			break;
		case "100030":
			myCar['printImg'] = "09_Spyder_bp_print.jpg";
			break;
		case "100028":case "100038":
			myCar['printImg'] = "10_Endeavor_bp_print.jpg";
			break;
		case "100017":case "100003":case "100013":
			myCar['printImg'] = "08_Endeavor_bp_print.jpg";
			break;
		case "100020":case "100010":case "100018":case "100002":
			myCar['printImg'] = "09_Galant_bp_print.jpg";
			break;
		case "100022":case "100004":case "100014":
			myCar['printImg'] = "09_Lancer_bp_print.jpg";
			break;
		case "100021":case "200017":case "100005":case "100032":
			myCar['printImg'] = "08_Evo_bp_print.jpg";
			break;
		case "100026":
			myCar['printImg'] = "09_Outlander_bp_print.jpg";
			break;
		case "100027":
			myCar['printImg'] = "09_Raider_bp_print.jpg";
			break;
		case "100007":case "100011":case "100019":
			myCar['printImg'] = "08_Outlander_bp_print.jpg";
			break;
		case "100023":case "100008":case "100012":
			myCar['printImg'] = "08_Raider_bp_print.jpg";
			break;
		default:
			myCar['printImg'] = "09_Lancer_bp_print.jpg";
	}
}

//Call trims servlet
function getTrims(optSelectId) {
	var modelArgs = "modelId=" + myCar.modelId + "&lang=" + langCode;

	trimList = null;
	//Check for coming in with trim ID
	if (optSelectId) {
		makeRequest('/MMNA/trims.do', modelArgs, 'eval(http_request[i].responseText);writeTrims();selectTrim("trim'+optSelectId+'");getItem("bprNavText2").innerHTML=myCar.trimName;assignPrintImg(myCar.modelId);');
	} else {
		makeRequest('/MMNA/trims.do', modelArgs, 'eval(http_request[i].responseText);writeTrims();displayTrims();selectTrim("trim" + defaultTrimId);assignPrintImg(myCar.modelId);');
	}
}


function findRegionalOffers() {
	isFindOffersSubmitRequest = true;
	slideDown('specialOffers', 'specialOffersButton', slideStepValue, 187);
	if (selectedModel) {
	    selectModel(selectedModel);
	} else {
		// if modelId is in the URL (GET) we end up here with selectedModel undefined
		selectModel(myCar.modelId);
		
	}
}

//Display Trims
function writeTrims() {
	
	getItem('finishedHeaderImage').innerHTML = "<" + finishedHeaderImage;
	getItem('modelHeaderImage').innerHTML = "<" + modelHeaderImage;
	myCar.modelName = dbModelName;
	getItem("bprNavText1").innerHTML = dbModelName;
	//Show divs
	//getItem('bprModelColumn').style.visibility='hidden';
	$('#bprModelColumn').hide();
	$('#bprContainer').show();
	
	getItem('bprLeftColumn').style.visibility='visible';
	getItem('bprRightColumn').style.visibility='visible';
	var trimContainer = getItem('step2Data');
	trimContainer.innerHTML = "";
	var bpClassToggle = 0;
	document.tImages = null;
	document.tImages = new Array();
	tmpWar1 = vehWar1;
	tmpWar2 = vehWar2;
	for (prop in trimList) {
		trimItem = trimList[prop];
		trimPrefix = prop.substring(0,prop.indexOf("key"));
		document.tImages[prop] = new Image;
		document.tImages[prop].src = trimItem.carImg.substring(trimItem.carImg.indexOf("src")+5,trimItem.carImg.indexOf("width")-2);
		trimContainerString  = "<div class=\"" + bpClassArray[bpClassToggle] + "\" id=\""+trimPrefix+"div\"" + ((isSafari)?" style=\"min-height: 20px\"":"") + ">";
		trimContainerString += "  <div class=\"bprItemInterior\" onclick=\"selectTrim('"+trimPrefix+"');\" id=\""+trimPrefix+"int\" style=\"padding:2px 0;\" >";
		trimContainerString += "    <div class=\"bprItemInput\"><input type=\"radio\" id=\""+trimPrefix+"radio\" class=\"dataPaneInput\"/></div><div class=\"bprItemName\" style=\"width:240px; margin-left:20px\">"+trimItem.name;
		trimContainerString += "    </div></div>";
		trimContainerString += "    ";
		trimContainerString += "</div>";
		bpClassToggle = (bpClassToggle + 1) % 2;
		trimContainer.innerHTML += trimContainerString;
	}
	selectTrim("trim" + myCar.trimId);
}

function displayTrims() {
		advanceNav(2);
		getDestPrice();
		getItem('step2').style.visibility = "visible";
}

function selectTrim(trimId) {
	//Check if trim has changed
	if (trimId != ("trim" + myCar.trimId)) {
		myCar.packages = "";
		myCar.accessories = "";

		try { //Turn off existing trim
			var curTrimDiv = getItem("trim"+myCar.trimId+"int");
			var curTrimBox = getItem("trim"+myCar.trimId+"radio");
			curTrimDiv.className ="bprItemInterior";
			curTrimBox.checked = false;
			//Clear colors and accessories
			resetTrimItems();
		} catch(e) {}

	}

	try { //Turn on new trim
		//Assign for RFQ
		/*
		getItem(inputTrimName).value = trimList[trimId + "key"].name;
		getItem(inputTrimId).value = trimList[trimId + "key"].id;
		*/
		$('#' + inputTrimName).attr('value', trimList[trimId + "key"].name);
		$('#' + inputTrimId).attr('value', trimList[trimId + "key"].name);
		
		var trimDiv = getItem(trimId+"int");
		var trimBox = getItem(trimId+"radio");
		trimDiv.className ="bprItemInteriorSelected";
		trimBox.checked = true;
		myCar.trimId = trimList[trimId + "key"].id;
		myCar.trimName = trimList[trimId + "key"].name;
		myCar.trimImg = trimList[trimId + "key"].carImg;
		myCar.msrp = trimList[trimId + "key"].msrp;
		myCar.partnerPrice = Math.round(trimList[trimId + "key"].partnerPrice);
		myCar.cashIncentive = trimList[trimId + "key"].cashIncentive;
		myCar.trimFootnote = trimList[trimId + "key"].footnote;
		myCar.trimFeatures = trimList[trimId + "key"].features;
		
		
		if(myCar.trimName == 'Ralliart') {
			vehWar1 = tmpWar1.replace(/5-year\/60,000-mile<br\/>\(Ralliart (3-year\/36,000-mile)\)/,'$1');
			vehWar2 = tmpWar2.replace(/10-year\/100,000-mile<br\/>\(Ralliart (5-year\/60,000-mile)\)/,'$1');
		} else {
			vehWar1 = tmpWar1.replace(/(5-year\/60,000-mile)<br\/>\(Ralliart 3-year\/36,000-mile\)/,'$1');
			vehWar2 = tmpWar2.replace(/(10-year\/100,000-mile)<br\/>\(Ralliart 5-year\/60,000-mile\)/,'$1');
		}
		
	
		//Check for activation of partner pricing
		if (trimList[trimId + "key"].partnerDate < new Date() && ( isPartnerLoggedIn || isFnFuserLoggedIn == 'true') ) {
			
			displayPartnerPricing = true;
			//display correct pricing pannel
			var ppLayer = getItem('partnerPricing');
			var cpLayer = getItem('regPricing');
			cpLayer.style.visibility = 'hidden';
			cpLayer.style.position = 'absolute';
			ppLayer.style.visibility = 'visible';
			ppLayer.style.position = 'relative';
		} else {
			getItem('destPriceItem').style.visibility='visible';
		}

		getItem('bprVehicleBlurb').innerHTML = trimList[trimId + "key"].footnote;
		getItem('finishedFeatures').innerHTML = myCar.trimFeatures;

		showCarImg(myCar.trimImg);
		//Put trim name into right column display
		getItem("bprTrimName").innerHTML = myCar.trimName;
	} catch(e) {
		return;
	}

	getSpecialOffers();
    //alert ('after get special offers');
	//Set MSRP
	getItem('msrp').innerHTML = moneyFormat(myCar.msrp);
	getItem('diMsrp').innerHTML = moneyFormat(myCar.msrp);
	getItem('dealerInvoice').innerHTML = moneyFormat(myCar.partnerPrice);
	//Set Destination & Handling
	getItem('destPrice').innerHTML = moneyFormat(myCar.destPrice);
	//Recalculate pricing
	updatePricing();
}

function compareTrims() {
	//showingInfo = true;
	/*
	makeLayer("bodyDiv", "trimBodyInfo", "bprTrimInfo");
	var trimLayer = getItem("trimBodyInfo");
	trimLayer.style.left = "200px";
	//trimLayer.style.top = "0px";
	trimLayer.innerHTML = "<div class=\"bprTrimCompHeader\"><div class=\"bprAccPacClose\" onClick=\"killLayer('bodyDiv','trimBodyInfo')\">"+closeLabel+"</div>"+myCar.modelName+"</div>";
	trimLayer.innerHTML += "<div class=\"bprTrimCompContent\"><"+trimCompareImage+"</div>";
	trimLayer.innerHTML += "<div class=\"bprTrimCompContent\">"+trimCompareText+"</div>";
	*/
	//addDisclaimer("discGlobalAirbags", "discPzevInCa");
	var trimContent = "<div><"+trimCompareImage+"</div><div>"+trimCompareText+"</div>";
	jQuery.facebox( '<div class="popupHeader" style="width:auto"><div class="popupTitle">'+myCar.modelName+'</div><div onclick="$(document).trigger(\'close.facebox\')" class="bprAccPacClose">X CLOSE</div></div><div class="bprAccDesc">'+trimContent+'</div>' );
}

function compareBody() {
	makeLayer("bprRightColumn", "trimBodyInfo", "bprBodyInfo");
	var trimLayer = getItem("trimBodyInfo");
	trimLayer.style.left = "-360px";
	//trimLayer.style.top = "0px";
	trimLayer.innerHTML = "<div class=\"bprBodyCompHeader\"><div class=\"bprAccPacClose\" onClick=\"killLayer('bprRightColumn','trimBodyInfo')\">"+closeLabel+"</div>"+myCar.modelName+"</div>";
	trimLayer.innerHTML += "<div class=\"bprBodyCompContent\"><"+bodyCompareImage+"</div>";
	trimLayer.innerHTML += "<div class=\"bprBodyCompContent\">"+bodyCompareText+"</div>";
}

function displayStandardFeatures() {
	jQuery.facebox( '<div><div class="popupHeader"><div class="popupTitle">'+myCar.trimName+'</div><div onclick="$(document).trigger(\'close.facebox\')" class="bprAccPacClose">X CLOSE</div></div><div class="bprAccDesc">'+myCar.trimFeatures+'</div>' );
}

//AJAX CALL for Exterior colors
function getExtColors() {
	//Clear any previous colors
	var extContainer = getItem('step3DataExt');
	extContainer.innerHTML = "";

	var trimArg = "trimId=" + myCar.trimId + "&lang=" + langCode;
	if (myCar.extColor == "") {
		makeRequest('/MMNA/extColors.do', trimArg, 'eval(http_request[i].responseText);displayExtColors();selectExtColor("ext"+defaultExtColor);');
	} else {
		displayExtColors();
		selectExtColor("ext"+defaultExtColor);
		//Redisplay last exterior colors
		getItem('step3').style.visibility = "visible";
	}
}

//Show exterior colors
function displayExtColors() {
	var extContainer = getItem('step3DataExt');
	extContainer.innerHTML = "";
	document.eImages = null;
	document.eImages = new Array();
	//Draw each color in the list
	for (prop in extColorList) {
		extItem = extColorList[prop];
		extPrefix = prop.substring(0,prop.indexOf("key"));
		//Preload images
		document.eImages[prop] = new Image;
		document.eImages[prop].src = extItem.carImg.substring(extItem.carImg.indexOf("src")+5,extItem.carImg.indexOf("width")-2);
		extContainerString  = "<div id=\""+extPrefix+"div\"  class=\"bprColorThumb\">";
		extContainerString  += "<a href=\"javascript:selectExtColor('"+extPrefix+"')\" onMouseOver=\"showCarImg(extColorList['"+ prop +"'].carImg);showTip('"+extPrefix+"','ext');clearTimeout(myTimer['"+extPrefix+"']);\" onMouseOut=\"killTip('"+extPrefix+"');showCarImg(myCar.extColor.carImg);\">"+extItem.thumbImg+"</a></div>";
		extContainer.innerHTML += extContainerString;
	}
	getItem('step3').style.visibility = "visible";
}

function showCarImg(imageTag) {
	getItem('vehicleImg').innerHTML = (imageTag);
	//alert ('finished image swap');
}

function showTip(colorId, whichColor) {
	makeLayer("bprRightColumn", colorId+"tip", "bprColorTip");
	tipLayer = getItem(colorId+"tip");
	originDiv = getItem(colorId+"div");
	originImg = getItem(colorId+"img");
	//Turned rollover off for int color
	if (originImg && whichColor == "ext") {
		originImg.src = originImg.src.replace(/Chip\./i, "Chip-over.");
	}
	originParent = getItem('step3Data');
	pageShell = getItem('pageContent');
	tipLayer.style.top = ( getposOffset(originDiv, "top") - getposOffset(originParent, "top") + getItem("step3").offsetTop + 36 )+ "px";
	tipLayer.style.left = ( getposOffset(originDiv, "left") - getposOffset(originParent, "left") - getItem("bprRightColumn").offsetLeft + getItem("bprLeftColumn").offsetLeft + 25 ) + "px";
	tipLayer.style.zIndex = '1000';

	if (whichColor == "ext") {
		tipLayer.innerHTML = "<div class=\"bprColorTipInterior\" onMouseOver=\"clearTimeout(myTimer['"+colorId+"']);showCarImg(extColorList['"+ colorId +"key'].carImg);\" onMouseOut=\"killTip('"+colorId+"');showCarImg(myCar.extColor.carImg);\" onClick=\"selectExtColor('"+colorId+"')\"><nobr>&nbsp;"+extColorList[colorId+"key"].name+"&nbsp;</nobr></div>";
	} else {
		tipLayer.innerHTML = "<div class=\"bprColorTipInterior\" onMouseOver=\"clearTimeout(myTimer['"+colorId+"']);\" onMouseOut=\"killTip('"+colorId+"')\" onClick=\"selectIntColor('"+colorId+"')\"><nobr>&nbsp;"+intColorList[colorId+"key"].name+"&nbsp;</nobr></div>";
	}
}

function killTip(colorId) {
	timerCode = 'killLayer("bprRightColumn", "'+colorId+'tip")';
	originImg = getItem(colorId+"img");
	if (originImg && (colorId != "ext" + myCar.extColor.colorId) &&  (colorId != "int" + myCar.intColor.colorId)) {
		originImg.src = originImg.src.replace(/Chip-over/i, "Chip");
	}
	myTimer[colorId] = window.setTimeout(timerCode, 50);
}

function selectExtColor(extColor) {
	try { //Turn off old color
		var curExtImg = getItem("ext"+myCar.extColor.colorId+"img");
		if (curExtImg) {
			curExtImg.src = curExtImg.src.replace(/Chip-over/i, "Chip");
		}
	} catch(e) {}

	try { //Turn on new color
		var extImg = getItem(extColor+"img");
		if (extImg) {
			extImg.src = extImg.src.replace(/Chip\./i, "Chip-over.");
		}
		myCar.extColor = extColorList[extColor + "key"];

		getItem("extColorName").innerHTML = myCar.extColor.name;
	} catch(e) {}

	//Clear Int color
	myCar.intColor = "";

	//Assign to offer form
	getItem(inputExtColorName).value = myCar.extColor.name;

	updatePricing();
	getIntColors();
}

//AJAX CALL for Interior colors
function getIntColors() {
	//Clear any int colors
	var intContainer = getItem('step3DataInt');
	intContainer.innerHTML = "";
	var extColArg = "colorId=" + myCar.extColor.colorId + "&lang=" + langCode;
	if (myCar.intColor == "") {
		makeRequest('/MMNA/intColors.do', extColArg, 'eval(http_request[i].responseText);displayIntColors();selectIntColor("int"+defaultintColor);');
	}
}

function displayIntColors() {
	var intContainer = getItem('step3DataInt');
	//Draw each color in the list
	intContainer.innerHTML = "";
	for (prop in intColorList) {
		intItem = intColorList[prop];
		intPrefix = prop.substring(0,prop.indexOf("key"));

		intContainerString  = "<div id=\""+intPrefix+"div\"  class=\"bprColorThumb\">";
		intContainerString  += "<a href=\"javascript:selectIntColor('"+intPrefix+"')\" onMouseOver=\"showTip('"+intPrefix+"','int');clearTimeout(myTimer['"+intPrefix+"']);\" onMouseOut=\"killTip('"+intPrefix+"')\" style='cursor:default'>"+intItem.thumbImg+"</a></div>";
		intContainer.innerHTML += intContainerString;
	}
	getItem('step3').style.visibility = "visible";
	//Only preload Packages Once
	if (myCar.packages == "") { getPackages(); }
}

function selectIntColor(intColor) {
/*	try { //Turn off old color
		var curIntImg = getItem("int"+myCar.intColor.colorId+"img");
		if (curIntImg) {
			curIntImg.src = curIntImg.src.replace(/Chip-over/i, "Chip");
		}
	} catch(e) {}

	try { //Turn on new color
		var intImg = getItem(intColor+"img");
		if (intImg) {
			intImg.src = intImg.src.replace(/Chip\./i, "Chip-over.");
		}
		myCar.intColor = intColorList[intColor + "key"];
		getItem("intColorName").innerHTML = myCar.intColor.name;
	} catch(e) {	}

	//Assign to offer form
	getItem(inputIntColorName).value = myCar.intColor.name;
*/
}

//AJAX CALL for Packages
function getPackages() {
	var packageArg = "trimId="+myCar.trimId + "&lang=" + langCode;
	//Check to ensure the array is empty before filling
	if (myCar.packages == "") {
		makeRequest('/MMNA/packages.do', packageArg, 'eval(http_request[i].responseText);');
	} else {
		//Redisplay last packages and accessories
		getItem('step4').style.visibility = "visible";
		initScrollbar('step4Data', 'step4Container', 'step4ScrollPath', 'step4Scroller');
	}
	if (!displayPartnerPricing) {
		//Partners don't see accessory listing in B&P
		getAccessories();
	}
}

function displayPackages() {
	//Put Packages on the page
	var pacAccDiv = getItem('step4Data');
	var count = 0;
	for (i in myCar.packages) {
		count++
	}
	if (count != 0 && !getItem('step4Pac')) {

		var pacContainer = document.createElement('div');
		pacContainer.style.marginBottom = "10px";
		pacContainer.id = "step4Pac";
		pacAccDiv.appendChild(pacContainer);
		pacAccDiv.style.visibility = "visible";
		var bpClassToggle = 0;
		if (pacContainer.innerHTML == "") {
			pacContainer.innerHTML = "<div class=\"bprHeader\" style=\"top: -2px\"><div style='float:right; color: #FFFFFF; padding-right: 6px'>"+((displayPartnerPricing)?dealerInvoiceHeader:msrpHeader)+"</div>"+pacHeaderText+"</div><div class=\"bprComment\" id=\"pacComment\" ></div>";
			for (prop in myCar.packages) {

				pacItem = myCar.packages[prop];
				pacPrefix = prop.substring(0,prop.indexOf("key"));

				pacContainerString  = "<div class=\"" + bpClassArray[bpClassToggle] + "\" id=\""+pacPrefix+"div\" >";
				pacContainerString += "  <div class=\"bprItemInterior\" onClick=\"togglePackageSelected('"+pacPrefix+"');\" id=\""+pacPrefix+"int\" >";
				pacContainerString += "    <div class=\"bprItemInput\"" + ((isSafari)?" style=\"margin-top: 1px\"":"") + "><input type=\"checkbox\" id=\""+pacPrefix+"box\"  class=\"dataPaneInput\"/></div>";
				pacContainerString += "    <div onClick=\"displayPackageInfo('"+pacPrefix+"')\" class=\"bprMoreInfo\">| ? |</div><div class=\"bprItemPrice\">" +((displayPartnerPricing)?pacItem.partnerPrice:pacItem.price)+"</div><div class=\"bprItemDollar\">$</div>";
				pacContainerString += "    <div class=\"bprItemName\">"+pacItem.shortDesc+"</div></div>";
				pacContainerString += "</div>";
				bpClassToggle = (bpClassToggle + 1) % 2;
				pacContainer.innerHTML += pacContainerString;

			}
			initScrollbar('step4Data', 'step4Container', 'step4ScrollPath', 'step4Scroller');
		}
		getItem('step4').style.visibility = "visible";
	}
}

//AJAX CALL for Accessories
function getAccessories() {
	var accessoryArg = "trimId="+myCar.trimId + "&lang=" + langCode;
	//Check to ensure the array is empty before filling
	if (myCar.accessories == "") {
		makeRequest('/MMNA/accessories.do', accessoryArg, 'eval(http_request[i].responseText);');
	}

}

//Put Accessories on the page
function displayAccessories() {
	//Check for Partner Login and accessories list exists
	var count = 0;
	for (i in myCar.accessories) {
		count++
	}
	if (!displayPartnerPricing &&  count != 0 && !getItem('step4Acc') ) {
		var pacAccDiv = getItem('step4Data');
		var accContainer = document.createElement('div');
		accContainer.id = "step4Acc";
		pacAccDiv.appendChild(accContainer);
		var bpClassToggle = 0;

		if (accContainer.innerHTML == "") {
			accContainer.innerHTML = "<div class=\"bprHeader\"><div style='float:right; color: #FFFFFF; padding-right: 6px'>"+msrpHeader+"</div>"+accHeaderText+"</div><div class=\"bprComment\" id=\"accComment\" ></div>";
			for (prop in myCar.accessories) {

				accItem = myCar.accessories[prop];
				accPrefix = prop.substring(0,prop.indexOf("key"));

				accContainerString  = "<div class=\"" + bpClassArray[bpClassToggle] + "\" id=\""+accPrefix+"div\">";
				accContainerString += "  <div class=\"bprItemInterior\" onClick=\"toggleAccessorySelected('"+accPrefix+"');\" id=\""+accPrefix+"int\" " + ((isSafari)?" style=\"padding: 2px 0\"":"") + ">";
				accContainerString += "    <div class=\"bprItemInput\"" + ((isSafari)?" style=\"margin-top: 1px\"":"") + "><input type=\"checkbox\" id=\""+accPrefix+"box\" class=\"dataPaneInput\"/></div>";
				accContainerString += "    <div onClick=\"displayAccessoryInfo('"+accPrefix+"')\" class=\"bprMoreInfo\">|&nbsp;?&nbsp;|</div><div class=\"bprItemPrice\">"+accItem.price+"</div><div class=\"bprItemDollar\">$</div>";
				accContainerString += "    <div class=\"bprItemName\">"+accItem.name+"</div></div>";
				accContainerString += "</div>";

				bpClassToggle = (bpClassToggle + 1) % 2;
				accContainer.innerHTML += accContainerString;
			}
		}

		accContainer.innerHTML += '<div style="padding: 5px">'+accDisclaimer+'</div>';


	}
	getItem('step4').style.visibility = "visible";
	initScrollbar('step4Data', 'step4Container', 'step4ScrollPath', 'step4Scroller');
}

//Set Accessory selected state and display
function toggleAccessorySelected(accId) {
	//Check if info button was pressed
	if (showingInfo) {
		showingInfo = false;
		return;
	}
	//Make sure accessory is enabled
	if (myCar.accessories[accId+"key"].enabled) {
		var accDiv = getItem(accId+"int");
		var accBox = getItem(accId+"box");
		var accClassName = accDiv.className;

		//Determine selected state
		if (myCar.accessories[accId+"key"].selected) {
			//Already selected - deselect
			myCar.accessories[accId+"key"].selected = false;
			accBox.checked = false;
			accDiv.className = "bprItemInterior";
		} else {
			//Not selected - select
			myCar.accessories[accId+"key"].selected = true;
			accBox.checked = true;
			accDiv.className = "bprItemInteriorSelected";
		}
	}
	
	updatePricing();
}

//Set Accessory enabled state and display
function toggleAccessoryEnabled(accId) {
	var accDiv = getItem(accId+"int");
	var accBox = getItem(accId+"box");
	var accClassName = accDiv.className;

	//Determine enabled state of accessory
	if (myCar.accessories[accId+"key"].enabled) {
		myCar.accessories[accId+"key"].enabled = false;
		accBox.enabled = false;

		//When an accessory is disabled it is also deselected
		if (myCar.accessories[accId+"key"].selected) {
			myCar.accessories[accId+"key"].selected = false;
			accBox.checked = false;
			accDiv.className = "bprItemInterior";
		} else {
			accDiv.className = "bprItemInteriorSelectedDisabled";
		}
	} else {
		myCar.accessories[accId+"key"].enabled = true;
		accBox.enabled = true;
	}
}

//Set Package selected state and display
function togglePackageSelected(pacId) {
	//Check if info button was pressed
	if (showingInfo) {
		showingInfo = false;
		return;
	}
	//Make sure package is enabled
	if (myCar.packages[pacId+"key"].enabled) {
		var pacDiv = getItem(pacId+"int");
		var pacBox = getItem(pacId+"box");
		var pacClassName = pacDiv.className;

		//Determine selected state
		if (myCar.packages[pacId+"key"].selected) {
			//Already selected - deselect
			myCar.packages[pacId+"key"].selected = false;
			pacBox.checked = false;
			pacDiv.className = "bprItemInterior";
			killLayer("pacComment",pacId+"comment");
			//Deselect any packages requiring this one
			for (accPackage in myCar.packages) {
				// Don't modify current package
				var curPackage = myCar.packages[accPackage];
				if ("pac" + curPackage.packageId != pacId) {
					//Check if selected
					if (curPackage.selected) {
						for (var reqGroup = 0; reqGroup < curPackage.packageRequirements.length; reqGroup++) {
							for (var reqs = 0; reqs < curPackage.packageRequirements[reqGroup].length; reqs++) {
								if ("pac" + myCar.packages["pac" + curPackage.packageRequirements[reqGroup][reqs] + "key"].packageId == pacId) {
									//Found a selected package that requires the one we're turning off so turn it off too
									if(!areRequirementsMet("pac" + myCar.packages["pac" + curPackage.packageId + "key"].packageId)) {
										if (myCar.packages["pac" + curPackage.packageId + "key"].packageRequirements.length < 2) {
												togglePackageSelected("pac" + myCar.packages["pac" + curPackage.packageId + "key"].packageId);
										}
									}
								}
							}
						}
					}
				}
			}
		} else {
			//Not selected - select
			curPackage = myCar.packages[pacId+"key"];
			curPackage.selected = true;
			pacBox.checked = true;
			pacDiv.className = "bprItemInteriorSelected";
			//Select any packages required by this one
			if (curPackage.packageRequirements.length > 1) {
				//There is a requirements OR value
				areRequirementsMet(pacId);
			} else {
				//Only one requirements set
				for (var reqs = 0; reqs < curPackage.packageRequirements[0].length; reqs++) {
					if (!myCar.packages["pac" + curPackage.packageRequirements[0][reqs] + "key"].selected) {
						togglePackageSelected("pac"+ curPackage.packageRequirements[0][reqs]);
					}
				}
			}
			//Deselect any packages excluded by this one
			for (var exc = 0; exc < curPackage.packageExclusions.length; exc++) {
				try {
					if (myCar.packages["pac" + curPackage.packageExclusions[exc] + "key"].selected) {
						togglePackageSelected("pac"+curPackage.packageExclusions[exc]);
					}
				} catch(e) {}
			}
		}
	}
	clearComments('pacComment');
	updatePricing();
}

function displayFinished() {
	$('#bprFinishedColumn').show();
	//getItem('bprFinishedColumn').style.display = "block";
	getItem('bprFinishedColumn').style.visibility = "visible";
	//Display Warranty Info
	getItem('warrantyCol1').innerHTML = vehWar1;
	getItem('warrantyCol2').innerHTML = vehWar2;
	getItem('warrantyCol3').innerHTML = vehWar3;
	getItem('warrantyCol4').innerHTML = vehWar4;

	//Write package summary
	finPacDiv = getItem('bprFinishedPac');
	pacList = "";
	for (pack in myCar.packages) {
		if (myCar.packages[pack].selected) {
			pacList +=  myCar.packages[pack].shortDesc + ", ";
		}
	}
	pacList = pacList.replace(/\s*,\s*$/,"");
	if (pacList != "") {
		finPacDiv.innerHTML = pacList;
	} else {
		finPacDiv.innerHTML = bprNoneSelected;
	}

	//Write Accessory summary
	finAccDiv = getItem('bprFinishedAcc');
	accList = "";
	strCurrSelAccessories = ""; //for omniture
	for (accessory in myCar.accessories) {
		if (myCar.accessories[accessory].selected) {
			accList +=  myCar.accessories[accessory].name + ", ";
		}
	}
	accList = accList.replace(/\s*,\s*$/,"");
	if (accList != "") {
		finAccDiv.innerHTML = accList;
		strCurrSelAccessories = accList;
	} else {
		finAccDiv.innerHTML = bprNoneSelected;
	}

	//Display vehicle Image
	getItem('vehicleImgFinal').innerHTML = getItem('vehicleImg').innerHTML;

	getItem('bprVehicleNameFinal').innerHTML = myCar.modelName + " " + myCar.trimName;
	initScrollbar('bprSPData', 'bprSPDataContainer', 'bprSPScrollPath', 'bprSPScroller');
}

function printDisplayAcc(accList){
	if (!accList) accList = bprNoneSelected+".";
	return accList;	
}

function printDisplayPac(pacList){
	if (!pacList) pacList = bprNoneSelected+".";
	return pacList;	
}

function clearComments(commentContainer) {
	commentParent = getItem(commentContainer);
	for (var i = commentParent.childNodes.length; i>0; i--) {
		comId = commentParent.childNodes[i-1].id;
		comId = comId.substring(0, comId.indexOf("comment"));
		areRequirementsMet(comId);
	}
}

//Check if requirements are met
function areRequirementsMet(pacId) {
	curPackage = myCar.packages[pacId + "key"];
	for (reqGroupCheck = 0; reqGroupCheck < curPackage.packageRequirements.length; reqGroupCheck++) {
		reqsMet = true;
		for (reqsCheck = 0; reqsCheck < curPackage.packageRequirements[reqGroupCheck].length; reqsCheck++) {
			if (!myCar.packages["pac" + curPackage.packageRequirements[reqGroupCheck][reqsCheck] + "key"].selected) {
				reqsMet = false;
			}
		}
		if (reqsMet) {
			//At least one set of requirements is met - remove or message
			killLayer("pacComment",pacId+"comment");
			return true;
		} else {
			//Display message if there is an OR option in package requirements
			makeLayer("pacComment",pacId+"comment", "bprComment");
			packageComment = getItem(pacId + "comment");
			// FIXME - Get real comment
			packageComment.innerHTML = bprRequires;
		}
	}

	//Requirements not met
	return false;
}

//Set Package enabled state and display
function togglePackageEnabled(pacId) {

}

function resetTrimItems() {
	myCar.extColor = new Array();
	myCar.intColor = new Array();
	myCar.packages = new Array();
	myCar.accessories = new Array();
	for (offer in myCar.specialOffers) {
		if (myCar.specialOffers[offer].selected) {
			killLayer('bprLineItems',myCar.specialOffers[offer].id+'LineItem');
		}
	}
	myCar.specialOffers = new Array();
	if (getItem('step4Acc')) {
		killLayer('step4Data', 'step4Acc');
	}
	if (getItem('step4Pac')) {
		killLayer('step4Data', 'step4Pac');
	}
}

//Change state of lefthand nav
function advanceNav(step) {
	navStep = step;
	navItem1 = getItem("bprNavText1");
	navItem2 = getItem("bprNavText2");
	navItem3 = getItem("bprNavText3");
	navItem4 = getItem("bprNavText4");
	navItem5 = getItem("bprNavText5");

	navNumber1 = getItem("bprNavNum1");
	navNumber2 = getItem("bprNavNum2");
	navNumber3 = getItem("bprNavNum3");
	navNumber4 = getItem("bprNavNum4");
	navNumber5 = getItem("bprNavNum5");

	navArrow1 = getItem("arrow1");
	navArrow2 = getItem("arrow2");
	navArrow3 = getItem("arrow3");
	navArrow4 = getItem("arrow4");
	navArrow5 = getItem("arrow5");

	//Reset bordering
	for (i = 1; i < 6; i++) {
		if (i == step) {
			getItem("nav"+i).style.borderBottom = "1px dashed #000";
		} else {
			getItem("nav"+i).style.borderBottom = "none";
		}
	}

	switch (step) {
		case 1:
			getItem('step2').style.visibility = "hidden";
			getItem("bprLeftColumn").style.visibility = "hidden";
			getItem('bprDisclaimerDiv').style.visibility = 'hidden';  //Admintrack 1995
			getItem("bprRightColumn").style.visibility = "hidden";
			if (getItem("pacAccItem").style.visibility == "visible") {
				getItem("pacAccItem").style.visibility = "hidden";
			}
			getItem("destPriceItem").style.visibility = "hidden";
			getItem("partnerPricing").style.visibility = "hidden";
			getItem("diMsrpDestPacItem").style.visibility = "hidden";
			getItem("diMsrpPaintChargeItem").style.visibility = "hidden";
			getItem("diDestPacItem").style.visibility = "hidden";
			getItem("diPaintChargeItem").style.visibility = "hidden";

			getItem("premiumPaintChargeItem").style.visibility = "hidden";
			
			//getItem("bprModelColumn").style.visibility = "visible";
			$("#bprModelColumn").show();
			getItem("arrow0").innerHTML = "";
			
			getItem("bprDrawers").style.visibility = "hidden";
			myCar = new mitsuCar();
updateFinance();
			//Set Step 1 active
			navItem1.className = "bprNavItemTextSelected";
			navNumber1.className = "bprNavNumberSelected";
			navArrow1.innerHTML = arrowHTML;
			navItem1.innerHTML = bprSelectModel;
			//Reset Step 2 default
			navItem2.className = "bprNavItemText";
			navNumber2.className = "bprNavNumber";
			navArrow2.innerHTML = "";
			navItem2.innerHTML = bprSelectTrim;

			//Close open special offers or finance drawer
			slideDown('financeCalc', 'financeCalcButton', slideStepValue, 187);
			slideDown('specialOffers', 'specialOffersButton', slideStepValue, 187);
			reInitAcc=setTimeout(reInitAccBarFunc, 200);

			getItem('bprDisclaimerDiv').style.visibility = 'hidden';
			clearDisclaimer();
			//addDisclaimer("discManuSuggestedPrice");
			getItem('bprSpecialOffersZipFormDiv').style.visibility = "hidden";
			break;
		case 2:
			//Update finance calculator
			updateFinance();
			getItem("bprDrawers").style.visibility = "visible";
			//Set Step 1 completed
			myCar.modelName = dbModelName;
			navItem1.innerHTML = myCar.modelName;
			navItem1.className = "bprNavItemTextCompleted";
			navNumber1.className = "bprNavNumberCompleted";
			navArrow1.innerHTML = "";
			//Set Step 2 active
			navItem2.className = "bprNavItemTextSelected";
			navNumber2.className = "bprNavNumberSelected";
			navArrow2.innerHTML = arrowHTML;
			navItem2.innerHTML = bprSelectTrim;
			//Reset Step 3 default
			navItem3.className = "bprNavItemText";
			navNumber3.className = "bprNavNumber";
			navArrow3.innerHTML = "";
			navItem3.innerHTML = bprSelectColors;

//			getItem("bprPayDisc").style.visibility = "visible";

			//fire omniture event:
			bubbleSequentialEvent(" var variables = [ {name: 'pageName', value: 'B&P: Select Trim'}, {name: 'events', value: 'prodview'}, {name: 'products', value: ';" + myCar.modelName + "'}, {name: 'zip', value: '" + sessionZipCode + "'} ]");
			
			getItem('bprSpecialOffersZipFormDiv').style.visibility = "visible";	
			
			//loadDisclaimersForModel (myCar.modelId);
			$("a.bprMSRPswap").each( function () {
				$(this).attr('href', 'javascript:showDisclaimer("discMSRP_'+myCar.modelId+'", "Build and Price")');
			});
						
			break;
		case 3:
			//Set Step 2 completed
			navItem2.className = "bprNavItemTextCompleted";
			navNumber2.className = "bprNavNumberCompleted";
			navItem2.innerHTML = myCar.trimName;
			navArrow2.innerHTML = "";
			//Set Step 3 active
			navItem3.className = "bprNavItemTextSelected";
			navNumber3.className = "bprNavNumberSelected";
			navArrow3.innerHTML = arrowHTML;
			navItem3.innerHTML = bprSelectColors;

			//Reset Step 3 default
			navItem4.className = "bprNavItemText";
			navNumber4.className = "bprNavNumber";
			navArrow4.innerHTML = "";
			navItem4.innerHTML = bprSelectAccPac;

		//	getItem("bprPayDisc").style.visibility = "visible";

			getItem('step4').style.visibility='hidden';
			getItem('step4Data').style.visibility='hidden';
			getItem('step4ScrollPath').style.visibility='hidden';
			try {
				getItem('step4Pac').style.visibility='hidden';
			} catch(e) {}
			try {
				getItem('step4Acc').style.visibility='hidden';
			} catch(e) {}

			getItem('step3').style.visibility='visible';
			//fire omniture event:
			bubbleSequentialEvent(" var variables = [ {name: 'pageName', value: 'B&P: Select Color'}, {name: 'events', value: 'scAdd'}, {name: 'products', value: ';" + myCar.modelName + "'}, {name: 'zip', value: '" + sessionZipCode + "'} ]");
			getItem('bprSpecialOffersZipFormDiv').style.visibility = "visible";	
			break;
		case 4:


			//Set Step 3 completed
			navItem3.className = "bprNavItemTextCompleted";
			navNumber3.className = "bprNavNumberCompleted";
			navItem3.innerHTML = myCar.extColor.name;
			navArrow3.innerHTML = "";
			//Set Step 4 active
			navItem4.className = "bprNavItemTextSelected";
			navNumber4.className = "bprNavNumberSelected";
			navArrow4.innerHTML = arrowHTML;
			navItem4.innerHTML = bprSelectAccPac;

			//Reset Step 5 default
			navItem5.className = "bprNavItemText";
			navNumber5.className = "bprNavNumber";
			navArrow5.innerHTML = "";
			navItem5.innerHTML = bprSeeFinished;

		//	getItem("bprPayDisc").style.visibility = "visible";

			getItem('bprMoreDealers').style.visibility='hidden';
			getItem('step3').style.visibility='hidden';
			//getItem('bprFinishedColumn').style.visibility='hidden';
			$('#bprFinishedColumn').hide();
			getItem('bprRfq').style.visibility='hidden';

			getItem('step4').style.visibility='visible';
			getItem('step4Data').style.visibility='visible';
			getItem('step4ScrollPath').style.visibility='visible';
			try {
				getItem('step4Pac').style.visibility='visible';
			} catch(e) {}
			try {
				getItem('step4Acc').style.visibility='visible';
			} catch(e) {}
			getItem('bprRightColumn').style.visibility='visible';

			getItem('premiumPaintChargeItemFinal').style.visibility = 'hidden';
			getItem('pacAccItemFinal').style.visibility = 'hidden';
			getItem('bprSPScrollPath').style.visibility = 'hidden';

			if (displayPartnerPricing) {
				getItem('partnerPricing').style.visibility = "visible";
				getItem('partnerPricingFinal').style.visibility = "hidden";
				getItem('diMsrpPaintChargeItemFinal').style.visibility="hidden";
				getItem('diMsrpPaintChargeItemFinal').style.position="absolute";
				getItem('diPaintChargeItemFinal').style.visibility="hidden";
				getItem('diPaintChargeItemFinal').style.position="absolute";

				//Redisplay pac/dest charge if coming back from step 5
				getItem("diMsrpDestPacItem").style.visibility="visible";
				getItem("diDestPacItem").style.visibility="visible";

				//Redisplay paint charge if coming back from step 5
				if (myCar.extColor.charge) {
					getItem("diMsrpPaintChargeItem").style.visibility="visible";
					getItem("diPaintChargeItem").style.visibility="visible";
				}

			} else {
				getItem("destPriceItem").style.visibility="visible";
				//Redisplay accessory/packages if coming back from step 5
				if (pacAccTotal != 0) {
					getItem("pacAccItem").style.visibility="visible";
				}
				//Redisplay paint charge if coming back from step 5
				if (myCar.extColor.charge) {
					getItem("premiumPaintChargeItem").style.visibility="visible";
				}

			}

			//Hide Estimated payment
			getItem('finalEstPrice').style.visibility = 'hidden';
			initScrollbar('step4Data', 'step4Container', 'step4ScrollPath', 'step4Scroller');
			//fire omniture event:
			bubbleSequentialEvent(" var variables = [ {name: 'pageName', value: 'B&P: Select Package/Accessories'}, {name: 'events', value: 'scOpen'}, {name: 'products', value: ';" + myCar.modelName + "'}, {name: 'zip', value: '" + sessionZipCode + "'}, {name: 'eVar1', value: '" + myCar.trimName + "'} ]");

			//Redisplay finance/special offers drawers if comming back from step 5
			getItem('bprDrawers').style.visibility = "visible";
			getItem('bprSpecialOffersZipFormDiv').style.visibility = "visible";	
			reloadDisclaimers();
			break;
		case 5:

			//Close open special offers or finance drawer
			getItem('bprDrawers').style.visibility = "visible";
			slideDown('financeCalc', 'financeCalcButton', slideStepValue, 187);
			slideDown('specialOffers', 'specialOffersButton', slideStepValue, 187);reInitAcc=setTimeout(reInitAccBarFunc, 200);
			//Set Step 4 completed
			navItem4.className = "bprNavItemTextCompleted";
			navNumber4.className = "bprNavNumberCompleted";
			navItem4.innerHTML = bprAccPacAdded;
			navArrow4.innerHTML = "";

			//Set Step 5 active
			navItem5.className = "bprNavItemTextSelected";
			navNumber5.className = "bprNavNumberSelected";
			navArrow5.innerHTML = arrowHTML;

		//	getItem("bprPayDisc").style.visibility = "visible";

			getItem("destPriceItem").style.visibility="hidden";
			getItem("pacAccItem").style.visibility="hidden";
			getItem("premiumPaintChargeItem").style.visibility="hidden";


			getItem("diMsrpDestPacItem").style.visibility="hidden";
			getItem("diMsrpPaintChargeItem").style.visibility="hidden";
			getItem("diDestPacItem").style.visibility="hidden";
			getItem("diPaintChargeItem").style.visibility="hidden";

            
			if (displayPartnerPricing) {
				getItem("regPricingFinal").style.visibility="hidden";
				getItem("regPricingFinal").style.position="absolute";
				getItem("partnerPricingFinal").style.visibility="visible";
				getItem("partnerPricingFinal").style.position="absolute";
			}

			getItem('bprRightColumn').style.visibility='hidden';
			getItem('step4').style.visibility='hidden';
			getItem('step4Data').style.visibility='hidden';
			getItem('step4ScrollPath').style.visibility='hidden';
			try {
				getItem('step4Pac').style.visibility='hidden';
			} catch(e) {}
			try {
				getItem('step4Acc').style.visibility='hidden';
			} catch(e) {}

			getItem('partnerPricing').style.visibility = "hidden";
			getItem('bprRfq').style.visibility='visible';

			getItem('msrpFinal').innerHTML = moneyFormat(myCar.msrp) + curAfter;
			getItem('dealerInvoiceFinal').innerHTML = moneyFormat(myCar.partnerPrice) + curAfter;
			//Display Packages and Accessory total

			if (pacAccTotal > 0 && !displayPartnerPricing) {
				getItem('pacAccTotalFinal').innerHTML = moneyFormat(pacAccTotal) + curAfter;
				getItem('pacAccItemFinal').style.visibility = 'visible';
				getItem('pacAccItemFinal').style.position = 'relative';
				getItem('pacAccItemFinal').style.display = 'block';
			} else {
				getItem('pacAccItemFinal').style.visibility = 'hidden';
				//getItem('pacAccItemFinal').style.position = 'absolute';
				getItem('pacAccItemFinal').style.display = 'none';
			}

			getItem('destPriceFinal').innerHTML = moneyFormat(myCar.destPrice) + curAfter;

			//Display premium paint charge
			if (myCar.extColor.charge > 0 && !displayPartnerPricing) {
				getItem('premiumPaintChargeFinal').innerHTML = moneyFormat(myCar.extColor.charge) + curAfter;
				getItem('premiumPaintChargeItemFinal').style.visibility = 'visible';
				getItem('premiumPaintChargeItemFinal').style.position = 'relative';
				getItem('premiumPaintChargeItemFinal').style.display = 'block';
			} else {
				getItem('premiumPaintChargeItemFinal').style.visibility = 'hidden';
				//getItem('premiumPaintChargeItemFinal').style.position = 'absolute';
				getItem('premiumPaintChargeItemFinal').style.display = 'none';
			}

			//Display Special Offers
			specialOffersDiv = getItem('specialOffersFinal');
			specialOffersDiv.innerHTML = "";
			for (offer in myCar.specialOffers) {

				curOffer = myCar.specialOffers[offer];
				if (curOffer.selected) {
					specialOffersDiv.innerHTML += "<div class='bprLineItemNeg'>"+curOffer.shortDesc+" - " + spcOfrEnds + " " + formatDate(curOffer.endDate) + "</div>";
					if (curOffer.savings > 0) {
						specialOffersDiv.innerHTML += "<div class='bprLineItemCurNeg'>-"+curBefore+"</div><div class='bprLinePriceNeg'>"+moneyFormat(curOffer.savings)+"</div>";
					}
				}
			}


			//Final Pricing
			getItem('totalFinal').innerHTML = moneyFormat(myCar.totalPrice) + curAfter;
			getItem('monthFinal').innerHTML = moneyFormat(myCar.finance.termMonths) + curAfter;
			getItem('percentFinal').innerHTML = myCar.finance.apr + curAfter; //jordan: creates a traling 0: moneyFormat(myCar.finance.apr) + curAfter;
			getItem('downFinal').innerHTML = curBefore + (myCar.finance.tradeIn + myCar.finance.downPayment) + curAfter;
			getItem('paymentFinal').innerHTML = moneyFormat(myCar.finance.payment) + curAfter;

			//Final Pricing Display
			if (displayPartnerPricing) {

				getItem('diMsrpFinal').innerHTML = getItem('diMsrp').innerHTML;
				getItem('diMsrpDestPacFinal').innerHTML = getItem('diMsrpDestPac').innerHTML;
				getItem('diMsrpPaintChargeFinal').innerHTML = getItem('diMsrpPaintCharge').innerHTML;
				getItem('diMsrpTotalFinal').innerHTML = getItem('diMsrpTotal').innerHTML;
				getItem('diDestPacFinal').innerHTML = getItem('diDestPac').innerHTML;
				getItem('diPaintChargeFinal').innerHTML = getItem('diPaintCharge').innerHTML;
				getItem('cashIncentiveValFinal').innerHTML = getItem('cashIncentiveVal').innerHTML;
				getItem('diTotalFinal').innerHTML = getItem('diTotal').innerHTML;
				getItem('diSavingsFinal').innerHTML = getItem('diSavings').innerHTML;
				
				if (pacAccTotal == 0) {
					getItem('diMsrpDestPacItemFinal').style.visibility="hidden";
					getItem('diMsrpDestPacItemFinal').style.position="absolute";
				}
				if (pacAccPartnerTotal == 0) {
					getItem('diDestPacItemFinal').style.visibility="hidden";
					getItem('diDestPacItemFinal').style.position="absolute";
				}
				if (!myCar.extColor.charge) {
					getItem('diMsrpPaintChargeItemFinal').style.visibility="hidden";
					getItem('diMsrpPaintChargeItemFinal').style.position="absolute";
					getItem('diPaintChargeItemFinal').style.visibility="hidden";
					getItem('diPaintChargeItemFinal').style.position="absolute";
				} else {
					getItem('diMsrpPaintChargeItemFinal').style.visibility="visible";
					getItem('diMsrpPaintChargeItemFinal').style.position="relative";
					getItem('diPaintChargeItemFinal').style.visibility="visible";
					getItem('diPaintChargeItemFinal').style.position="relative";
				}
				
			}
            
			if (myCar.finance.payment > 0) {
				//Display Estimated payment
				//getItem('finalEstPrice').style.visibility = 'visible';
			}

			//fire omniture event:
			bubbleSequentialEvent(" var variables = [ {name: 'pageName', value: 'B&P: Finished Vehicle'}, {name: 'events', value: 'scView'}, {name: 'products', value: ';" + myCar.modelName + "'}, {name: 'zip', value: '" + sessionZipCode + "'}, {name: 'eVar2', value: '" + myCar.extColor.name + "'} ]");

			var axel = Math.random()+"";
			var a = axel * 10000000000000;
			getItem('bpStepFiveView').innerHTML = '<IFRAME SRC="http://fls.doubleclick.net/activityi;src=1033846;type=elead741;cat=build538;ord='+ a + '?" WIDTH=1 HEIGHT=1 FRAMEBORDER=0 style="display:NONE;background-color: transparent;"></IFRAME>';
			getItem('bprSpecialOffersZipFormDiv').style.visibility = "visible";
			
			surveyRequest ('kpi');
			break;
		default:
	}
}

//Make RFQ form visible
function requestQuote() {
	getItem('bprMoreDealers').style.visibility = 'hidden';
	getItem('bprRfqForm').style.visibility = 'visible';
	formDiv = getItem('form');
	formDiv.style.visibility = 'visible';
	bubbleSequentialEvent(" var variables = [ {name: 'pageName', value: 'B&P: Request Quote Form'}, {name: 'events', value: 'scCheckout'}, {name: 'products', value: ';" + myCar.modelName + "'} ]");
    
	for(var i = 0; i < showHideElements.length; i++) {
		var elemRef = getItem(showHideElements[i]);
		if(elemRef) {
			elemRef.style.visibility = "visible";
		}
	}
	
	//jQuery.facebox($('#bprRfqForm').html());

	var axel = Math.random()+"";
	var a = axel * 10000000000000;
	getItem('bpFormView').innerHTML = '<IFRAME SRC="http://fls.doubleclick.net/activityi;src=1033846;type=elead741;cat=reque574;ord='+ a + '?" WIDTH=1 HEIGHT=1 FRAMEBORDER=0 style="display:NONE;background-color: transparent;"></IFRAME>';

}

function hideRFQ() {
	restoreRfqBox();
	getItem('bprRfqForm').style.visibility = 'hidden';
	getItem('enterZipCopy').innerHTML = bprEnterZip;

	formDiv = getItem('form');
	formDiv.style.visibility = 'hidden';

	for(var i = 0; i < showHideElements.length; i++) {
		var elemRef = getItem(showHideElements[i]);
		if(elemRef) {
			elemRef.style.visibility = "hidden";
		}
	}
}

function resetZip() {
	zipReset = true;
	getItem('bprZip').value = "";
	getItem('bprZip').focus();
}

//Validate zipcode and set it into the seesion
function recordZip() {
	sessionZipCode = getItem('bprZip').value;
	zipArgs = "zipCode=" + sessionZipCode + "&lang=" + langCode;
	//Send zip to servelet for validation
	makeRequest('/MMNA/validateZip.do', zipArgs, 'eval(setZip(http_request[i].responseText));');
}

//If zip is valid display valid message and move to the next step else display invalid zip message
function setZip(isValid) {
	if(isValid != "false") {
		//Collapse zip messaging
		//getItem('bprZipText').innerHTML = zipValidMsg;
		if (!zipReset) {
			//Move to step 1
			if (!navStep) { advanceNav(1); }
			//Update Destination price
			if (myCar.modelId) { getDestPrice(); }
			//Get Dealer List
			//getDealerList();
		} else {
			zipReset = false;
			displaySpecialOffers();
		}
	} else {
		sessionZipCode = "";
		//Display error messaging
		//getItem('bprZipText').innerHTML = zipInvalidMsg;
	}

}

//Check if a zipcode is already in the session
function checkZip() {
	if (sessionZipCode != "") {
		setZip(true);
	}
}

//FIXME - We need a good display for this instead of an alert
function alertZip() {
	alert(msgEnterZip);
}

function displayPackageInfo(pacId) {
	/*
	showingInfo = true;
	makeLayer("bodyDiv", "accPacInfo", "bprAccPacInfo");
	var pacLayer = getItem("accPacInfo");
	pacLayer.innerHTML = "<div class=\"bprAccPacHeader\"><div class=\"bprAccPacClose\" onClick=\"killLayer('bodyDiv','accPacInfo')\">"+closeLabel+"</div>"+myCar.packages[pacId+"key"].shortDesc+"</div>";
	pacLayer.innerHTML +="<div class=\"bprAccDesc\"><p><b>MSRP: $"+myCar.packages[pacId+"key"].price+"</b><br/>"+myCar.packages[pacId+"key"].longDesc+"</p></div>";
	// display add link iff package is not selected
	if ( ! myCar.packages[pacId+"key"].selected)
		pacLayer.innerHTML +="<div class=\"bprAccPacAddLink\" onClick=\"killLayer('bprRightColumn','accPacInfo');togglePackageSelected('pac"+myCar.packages[pacId+"key"].packageId+"')\">"+bprAddToYourDealer+"</div>";
    */
	showingInfo = true;
	var PackageText="<div class=\"bprAccDesc\"><p><b>MSRP: $"+myCar.packages[pacId+"key"].price+"</b><br/>"+myCar.packages[pacId+"key"].longDesc+"</p></div>";
	if ( ! myCar.packages[pacId+"key"].selected)
		 PackageText+="<div class=\"bprAccPacAddLink\" onClick=\"togglePackageSelected('pac"+myCar.packages[pacId+"key"].packageId+"')\">"+bprAddToYourDealer+"</div>";
	
	jQuery.facebox( '<div><div class="popupHeader"><div class="popupTitle">'+myCar.packages[pacId+"key"].shortDesc+'</div><div onclick="$(document).trigger(\'close.facebox\')" class="bprAccPacClose">X CLOSE</div></div><div class="bprAccDesc">'+PackageText+'</div>' );
}

function displayAccessoryInfo(accId) {
	/*
	showingInfo = true;
	makeLayer("bodyDiv", "accPacInfo", "bprAccPacInfo");
	var accLayer = getItem("accPacInfo");
	accLayer.innerHTML = "<div class=\"bprAccPacHeader\"><div class=\"bprAccPacClose\" onClick=\"killLayer('bodyDiv','accPacInfo')\">"+closeLabel+"</div>"+myCar.accessories[accId+"key"].name+"</div>";
	accLayer.innerHTML +="<div class=\"bprAccImg\">"+myCar.accessories[accId+"key"].image+"</div><div class=\"bprAccDesc\"><p><b>MSRP: $"+myCar.accessories[accId+"key"].price+"</b><br/>"+myCar.accessories[accId+"key"].copy+"</p></div>";
	// display add link iff accessory is not selected
	if ( ! myCar.accessories[accId+"key"].selected)
		accLayer.innerHTML +="<div class=\"bprAccPacAddLink\" onClick=\"killLayer('bprRightColumn','accPacInfo');toggleAccessorySelected('acc"+myCar.accessories[accId+"key"].accessoryId+"')\">"+bprAddToYourDealer+"</div>";
	*/
	showingInfo=true;
    var AccessoryText = "<div class=\"bprAccImg\">"+myCar.accessories[accId+"key"].image+"</div><div class=\"bprAccDesc\"><p><b>MSRP: $"+myCar.accessories[accId+"key"].price+"</b><br/>"+myCar.accessories[accId+"key"].copy+"</p></div>";
    if ( ! myCar.accessories[accId+"key"].selected)
    	AccessoryText +="<div class=\"bprAccPacAddLink\" onClick=\"toggleAccessorySelected('acc"+myCar.accessories[accId+"key"].accessoryId+"')\">"+bprAddToYourDealer+"</div>";
	 
	jQuery.facebox( '<div><div class="popupHeader"><div class="popupTitle">'+myCar.accessories[accId+"key"].name+'</div><div onclick="$(document).trigger(\'close.facebox\')" class="bprAccPacClose">X CLOSE</div></div><div class="bprAccDesc">'+AccessoryText+'</div>' );


}

/*************************************************************
* This function calls the specialOffers servlet with trimId  *
* as an argument.  On return of the AJAX call the javascript *
* is evaluated and then written to the layer                 *
*************************************************************/
function getSpecialOffers() {
	//AJAX CALL for Special Offers
	//var regOffersZipCode = getItem("regOffersZipCode").value ;
	var regOffersZipCode = $("#regOffersZipCode").val();
	var trimArgs = "trimId=" + myCar.trimId + "&lang=" + langCode + "&zipCode=" + regOffersZipCode;
	makeRequest('/MMNA/specialOffers.do', trimArgs, 'eval(http_request[i].responseText);writeSpecialOffers();');

}

//Write out all special offers available for the selected trim
function writeSpecialOffers() {
	
 //	alert( isInValidZip  + ".." + isShowEnterZip );
	

	
	var offersString = "";
	var sortingArray = new Array();
	var autoSelectArray = new Array();
	for (offer in myCar.specialOffers) {
		sortingArray.push(offer);
	}

	maxOffer = 0;
	for (var i = 0; i < sortingArray.length; i++) {
		offerItem = myCar.specialOffers[sortingArray[i]];
		if(offerItem.offerType != 3){
			maxOffer += offerItem.savings;
		}
		if (offerItem.offerType == 1) autoSelectArray.push(offerItem.id);
		if (offerItem.savings > 0 && offerItem.offerType != 3) { //Display with checkbox
			offersString += "<div class='bprSpecialOfferItem'><div class='bprSpecialOfferBox'><input type='checkbox' id='spcOfr"+offerItem.id+"' onClick='toggleOfferSelected(\""+offerItem.id+"\")'"+((offerItem.offerType == 1)?" selected":"")+"/></div>";
			offersString += "<div class='bprSpecialOfferCopy'><div class='bprSpecialOfferDesc' onClick='toggleOfferSelected(\""+offerItem.id+"\")'>"+offerItem.shortDesc+"<br/>" + spcOfrEnds + " " + formatDate(offerItem.endDate) + ".</div>";
			offersString += offerItem.longDesc + " <a href='javascript:displayLegal(\""+offerItem.id+"\")'>"+spcOfrDetails+"</a>";
			offersString += "<div class='bprSpecialOfferLegal' id='legal"+offerItem.id+"'>"+offerItem.legal+" <a href='javascript:hideLegal(\""+offerItem.id+"\")'>"+spcOfrHide+"</a></div></div></div>";
		} else { // Display without checkbox
			offersString += "<div class='bprSpecialOfferItem'><div class='bprSpecialOfferBox'>&nbsp;</div>";
			offersString += "<div class='bprSpecialOfferCopy'><div class='bprSpecialOfferDesc'>"+offerItem.shortDesc+"<br/>" + spcOfrEnds + " " + formatDate(offerItem.endDate) + ".</div>";
			offersString += offerItem.longDesc + " <a href='javascript:displayLegal(\""+offerItem.id+"\")'>"+spcOfrDetails+"</a>";
			offersString += "<div class='bprSpecialOfferLegal' id='legal"+offerItem.id+"'>"+offerItem.legal+" <a href='javascript:hideLegal(\""+offerItem.id+"\")'>"+spcOfrHide+"</a></div></div></div>";
		}
	}

	// accomodate different language text lengths
	
	if (maxOffer != "0") {
	   if (langCode == "en-us" ) {
	      getItem('specialOffersButton').innerHTML = "<div style='width: 178; padding-top: 20px; font-size: 12px'>" + upTo + " <span style='font-size: 16px;'>" + curBefore + moneyFormat(maxOffer) + curAfter + "</span> " + cashBack + "<br />" + " <span style='font-size: 9px;'>" + availOffers + "</span>" + "</div>"; //jjg added width to stle
	   } else {
		  getItem('specialOffersButton').innerHTML = "<div style='padding-top: 22px; font-size: 9px; font-weight:normal;'>" + upTo + " <span style='font-size: 11px; font-weight:bold;'>" + curBefore + moneyFormat(maxOffer) + curAfter + "</span> " + cashBack + "<br />" + " <span style='line-height:9px;'>" + availOffers + "</span>" + "</div>";
	   }
    }
    else {
    	//alert ('no offers');
    	//$('#specialOffersButton').html('');
       //getItem('specialOffersButton').style.visibility = "hidden";
    }
    

	getItem('specialOffersData').innerHTML = offersString;

	for (var j = 0; j < autoSelectArray.length; j++) {
		toggleOfferSelected(autoSelectArray[j]);
	}

	//if the Special Offer box is open - refresh it - so that it expands based on no of offers
	if( document.getElementById('specialOffers').style.visibility == 'visible' && !isFindOffersSubmitRequest ) {
		slideUp('specialOffers', 'specialOffersButton', slideStepValue, 187, displaySpecialOffers() );
	}
	
	//show the regional zip error messages 
	if( isInValidZip ) {
		getItem('spoInvalidZipMsgId').style.display = 'block';
		getItem('spoInfoZipMsgId').style.display = 'none';


	} else {
		getItem('spoInvalidZipMsgId').style.display = 'none';
		getItem('spoInfoZipMsgId').style.display = 'block';

	}
	
	if( isShowEnterZip ) {
		getItem('spoEnterValidZipMsgId').style.display = 'block';
		getItem('spoEnterValidZipMsgId1').style.display = 'block';
	} else {
		getItem('spoEnterValidZipMsgId').style.display = 'none';
		getItem('spoEnterValidZipMsgId1').style.display = 'none';
		if( isFindOffersSubmitRequest ) {
			slideUp('specialOffers', 'specialOffersButton', slideStepValue, 187, displaySpecialOffers() );
		}
	}
	isFindOffersSubmitRequest = false;
}

//Initialize special offers box scrollbar and zipcode copy
function displaySpecialOffers() {

	//getItem('specialOffersZip').innerHTML = sessionZipCode;
	initScrollbar('specialOffersData', 'specialOffersDataContainer', 'specialOffersScrollPath', 'specialOffersScroller');
}

//Toggle selected state for a special offer
function toggleOfferSelected(id) {
	var currentOffer = myCar.specialOffers["offer"+id+"key"];
	var offerBox = getItem('spcOfr'+currentOffer.id);
	if (currentOffer.selected) {
		//Deselect Offer
		currentOffer.selected = false;
		offerBox.checked = false;
		killLayer('bprLineItems',id+'LineItem');
	} else {
		//Select offer
		currentOffer.selected = true;
		offerBox.checked = true;
		makeLayer('bprLineItems', id+'LineItem', '');
		getItem(id+'LineItem').innerHTML = "<div class='bprLineItemNeg'>" + currentOffer.shortDesc + " - " + spcOfrEnds + " " + formatDate(currentOffer.endDate) + "</div>";
		if (currentOffer.savings) {
			getItem(id+'LineItem').innerHTML += "<div class='bprLineItemCurNeg'>-" + curBefore + "</div><div class='bprLinePriceNeg'>"+moneyFormat(currentOffer.savings)+curAfter+"</div>";
		}
	}
	updatePricing();
}

//Display legal for a special offer
function displayLegal(id) {
	getItem('legal'+id).style.visibility='visible';
	getItem('legal'+id).style.position='relative';
	initScrollbar('specialOffersData', 'specialOffersDataContainer', 'specialOffersScrollPath', 'specialOffersScroller');
}

//Hide legal for a special offer
function hideLegal(id) {
	getItem('legal'+id).style.visibility='hidden';
	getItem('legal'+id).style.position='absolute';
	initScrollbar('specialOffersData', 'specialOffersDataContainer', 'specialOffersScrollPath', 'specialOffersScroller');
}

function hideThanks() {
	killLayer("bprFinishedColumn", "thankYouChild");
}

//Read in query params for the 3rd Party RFQ page HttpModelBuilder.do and request data
function checkRfqQuery() {

	var rfqArgs = new Array();
	var query = location.search.substring(1);
	var pairs = query.split("&");
	for (var i = 0; i<pairs.length; i++) {
		var pos = pairs[i].indexOf('=');
		if (pos == -1) continue;
		var argName = pairs[i].substring(0, pos);
		var argValue = pairs[i].substring(pos+1);
		rfqArgs[argName] = argValue;
	}

	sessionZipCode = rfqArgs['zip'];

	zipArgs = "zipCode=" + rfqArgs['zip'];
	var idVal = rfqArgs['trimId'];
	if (!idVal) {
		idVal = rfqArgs['trim']
	}

	//Hide navigation and reformat for KBB include
	if (rfqArgs['noNav'] == "true") {
		getItem("ftrDiv").style.visibility = "hidden";
		ultParent = getItem("pageContent");
	//	getItem("bodyDiv").style.top = "0";
		getItem("bodyDiv").style.left = "-216px";
		getItem("buildMore").target = "_blank";
		//getItem("bprDisclaimerDiv").style.left = "580px";
		//getItem("bprDisclaimerDiv").style.top = "400px";

		for (i=0; i < ultParent.childNodes.length; i++) {
			child = ultParent.childNodes[i];
			if (child.className == "hdrContainer") {
				ultParent.removeChild(child);
			}
			if (child.id == "nav") {
				ultParent.removeChild(child);
			}
		}
	}

	thirdPartyArgs= "zipCode=" + rfqArgs['zip'] + "&trimId=" + idVal + "&lang=" + langCode;
	//Send zip to servelet - validation not required but we want to put the zip in the session
	makeRequest('/MMNA/validateZip.do', zipArgs, '');
	//getDealerList();
	makeRequest('/MMNA/thirdPartyRfq.do', thirdPartyArgs, 'eval(http_request[i].responseText);setRfqContent()');

}

//Initialize the page for the 3rd Party RFQ page HttpModelBuilder.do
function setRfqContent() {

	try {

		updatePricing();

		getItem('vehicleImgFinal').innerHTML = "<" + myCar.trimImg;
		getItem('bprVehicleNameFinal').innerHTML = myCar.modelName + " " + myCar.trimName;
		getItem('totalFinal').innerHTML = myCar.totalPrice;
		getItem('finishedFeatures').innerHTML = myCar.trimFeatures;
		getItem('finishedHeaderImage').innerHTML = "<" + finishedHeaderImage;
		//Set for RFQ
		getItem(inputModelId).value =  myCar.modelId;
		//getItem(inputTrimName).value = myCar.trimName;
		$('#' + inputTrimName).attr('value',  myCar.trimName);
		//getItem(inputTrimId).value = myCar.trimId;
		$('#' + inputTrimId).attr('value', myCar.trimId);
		getItem('bprRfq').style.visibility='visible';
		getItem('msrpFinal').innerHTML = moneyFormat(myCar.msrp) + curAfter;
		getItem('destPriceFinal').innerHTML = moneyFormat(myCar.destPrice) + curAfter;
		getItem('totalFinal').innerHTML = moneyFormat(myCar.totalPrice) + curAfter;
		getItem('monthFinal').innerHTML = moneyFormat(myCar.finance.termMonths) + curAfter;
		getItem('percentFinal').innerHTML = moneyFormat(myCar.finance.apr) + curAfter;
		getItem('paymentFinal').innerHTML = moneyFormat(myCar.finance.payment) + curAfter;
		//getItem('bprFinishedColumn').style.visibility = 'visible';
		$('#bprFinishedColumn').show();
		getItem('warrantyCol1').innerHTML = vehWar1;
		getItem('warrantyCol2').innerHTML = vehWar2;
		getItem('warrantyCol3').innerHTML = vehWar3;
		getItem('warrantyCol4').innerHTML = vehWar4;
		getItem('bprZip').value = sessionZipCode;


	} catch(e) {

	}
}


function printFinal() {
	restoreRfqBox();	
	accList = printDisplayAcc(accList);
	pacList = printDisplayPac(pacList);
	getItem('bprMoreDealers').style.visibility = "hidden";
	
	var packString, accString, specOffers = "";
	var premium_paint = getItem('premiumPaintChargeFinal').innerHTML;
	var pack_total = moneyFormat(getItem('pacAccTotalFinal').innerHTML).replace(/,+/,",");
	
	// Omniture Support
	bubbleSequentialEvent(" var variables = [ {name: 'prop9', value: 'Print B&P'} ]");
		
	// English / Spanish translation
	var isSpanish = (getLang()=="es-us");
	
	var txtMSRP = (isSpanish) ? "MSRP" : "MSRP";
	var txtList = (isSpanish) ? "Lista" : "List";
	var txtTotal = (isSpanish) ? "EL TOTAL" : "YOUR TOTAL";
	var txtDestination = (isSpanish) ? "Destino y Manejo" : "Destination &amp; Handling";
	var txtClosestDealer = (isSpanish) ? "Su concesionario m&aacute;s cerca" : "Your closest dealer";
	
	var hdrPackages = (isSpanish) ? "Paquetes" : "Packages";
	var hdrAccessories = (isSpanish) ? "Accesorios" : "Accessories";	
	var hdrSpecialOffers = (isSpanish) ? "Ofertas Especiales" : "Special Offers";
	var hdrWarranty = (isSpanish) ? "Garant&iacute;a del Veh&iacute;culo" : "Warranty";
	var hdrPremiumPaintCharge = (isSpanish) ? "Premium Paint Charge" : "Premium Paint Charge";
	var hdrStdFeatures = (isSpanish) ? "Caracter&iacute;sticas Est&aacute;ndares" : "Standard Features";
	
	var hdrPackagesAccessories = hdrPackages +" "+ ((isSpanish)?"y":"&amp;") +" "+ hdrAccessories;

	// Create HTML for new Print Preview window
	finalString = '<link href="/MMNA/css/bpr_print.css" rel="stylesheet" type="text/css">';
	finalString += '<div id="mainDiv" align="center">';
	finalString += '  <table cellpadding="0" cellspacing="2" border="0" width="664">';
	finalString += '    <tr>';
	finalString += '      <td colspan="2" style="text-align:center;"><img src="/MMNA/images/bp/' + myCar.printImg + '" /></td>';
	finalString += '    </tr>';
	finalString += '    <tr>';
	finalString += '      <td class="column left" style="width:327.5px;"><div id="bprVehicleNameFinal" class="heading" style="font-size:14px;padding:7px 15px;text-align:left;">' + getItem('bprVehicleNameFinal').innerHTML + '</div>';
	finalString += '        <div class="content">';
	finalString += '          <table cellpadding="5" cellspacing="0" border="0" style="margin: 0 auto;">';
	finalString += '            <tr>';
	finalString += '              <td><b>'+ txtMSRP +'*:</b></td>';
	finalString += '              <td style="text-align: right;">$' + moneyFormat(myCar.msrp) + '</td>';
	finalString += '			</tr>';
	finalString += '			<tr>';
	finalString += '              <td><b>'+ txtDestination +'*:</b></td>';
	finalString += '			  <td style="text-align: right;">$' + moneyFormat(myCar.destPrice) + '</td>';
	finalString += '			</tr>';	
	
	for(prop in myCar.packages){
		var pack = myCar.packages[prop];
		if(pack.selected) {
			packString += '			<tr>';
			packString += '			  <td style="padding-left: 15px; border-right: 2px solid">' + pack.shortDesc + '</td>';
			packString += '			  <td style="padding-right: 20px;text-align: right;">$' + moneyFormat(pack.price) + '</td>';
			packString += '			</tr>';
		}
	}
	for(prop in myCar.accessories){
		var acc = myCar.accessories[prop];
		if(acc.selected) {
			accString += '			<tr>';
			accString += '			  <td style="padding-left: 15px; border-right: 2px solid">' + acc.name + '</td>';
			accString += '			  <td style="padding-right: 20px;text-align: right;">$' + moneyFormat(acc.price) + '</td>';
			accString += '			</tr>';
		}
	}
	for(prop in myCar.specialOffers){
		specOffer = myCar.specialOffers[prop];
		if(specOffer.selected) {
			specOffers += '			<tr>';
			specOffers += '			  <td><span class="red">&nbsp;&nbsp;' + specOffer.shortDesc + '</span></td>';
			specOffers += '			  <td style="text-align: right;"><span class="red">- $' + moneyFormat(specOffer.savings) + '</span></td>';
			specOffers += '			</tr>';
		}
	}
	
	if(packString || accString) {
		finalString += '			<tr>';
		finalString += '              <td><b>'+ hdrPackagesAccessories +':</b></td>';
		finalString += '			  <td style="text-align: right;">$'+ pack_total +'</td>';
		finalString += '			</tr>';
	}
	
	if(premium_paint) {
		finalString += '			<tr>';
		finalString += '              <td><b>'+ hdrPremiumPaintCharge +':</b></td>';
		finalString += '			  <td style="text-align: right;">$'+ moneyFormat(premium_paint) +'</td>';
		finalString += '			</tr>';
	}
	
	if(specOffers) {
		finalString += '			<tr>';
		finalString += '              <td><b class="red">'+ hdrSpecialOffers +':</b></td>';
		finalString += '			  <td>&nbsp;</td>';
		finalString += '			</tr>';
		finalString += specOffers;
	}
	
	finalString += '            <tr>';
	finalString += '              <td class="total">'+ txtTotal +'</td>';
	finalString += '              <td class="total" style="text-align: right;width:105px;">$' + moneyFormat(myCar.totalPrice) + '</td>';
	finalString += '            </tr>';
	finalString += '          </table>';
	finalString += '          <h1>'+ txtClosestDealer +':</h1>';
	finalString += '          <div class="dealer">';
	finalString += '            <h2>' + myCar.dealer.name + '</h2>';
	finalString += myCar.dealer.address;
	finalString += '<br/>';
	finalString += myCar.dealer.city + ", " + myCar.dealer.state + " " + myCar.dealer.zip + '<br/>';
	finalString += myCar.dealer.phone;
	finalString += '</div>';
//	finalString += '          <small>' + getItem('bprDisclaimerDiv').innerHTML + '</small></div></td>';
	finalString += '      <td class="column right"><div class="heading" style="text-align:left;padding:9px 15px">'+ hdrStdFeatures +'</div>';
	finalString += '        <div class="content">' + myCar.trimFeatures.replace(/<\/?a.*?>/g,"")  + '</div></td>';
	finalString += '    </tr>';
	finalString += '  </table>';
	finalString += '    <table cellpadding="0" cellspacing="2" border="0" width="668" style="margin-top:3px;"><tr>';
	finalString += '      <td class="column left"><div class="heading">'+ hdrPackages +'</div>';
	finalString += '        <div class="content">';
	finalString += '          <p id="bprFinishedPac">' + pacList + '</p>';
	finalString += '        </div></td>';
	finalString += '      <td class="column right"><div class="heading">'+ hdrAccessories +'</div>';
	finalString += '        <div class="content">';
	finalString += '          <p id="bprFinishedAcc">' + accList + '</p>';
	finalString += '        </div></td>';
	finalString += '    </tr>';
	finalString += '  </table>';
	finalString += '    <style type="text/css" media="screen"> .nodisplay { display: none; }</style><style type="text/css" media="print"> .nodisplay { display: block; }</style>';
	finalString += '    <!--[If IE]><div class="nodisplay">&nbsp;</div><![endif]--><div class="nodisplay" style="margin:0;padding:0;border:0;">&nbsp;</div><!--[If IE]><div class="nodisplay">&nbsp;</div><![endif]-->';
	finalString += '	<table cellpadding="0" cellspacing="2" width="669" style="margin-top:3px;"><tr>';
	finalString += '      <td colspan="2" class="column"><div class="heading">'+ hdrWarranty +'</div>';
	finalString += '        <div class="content">';
	finalString += '          <table cellpadding="0" cellspacing="0" border="0">';
	finalString += '            <tr>';
	finalString += '              <td id="warrantyCol1" class="warranty_first">' + vehWar1 + '</td>';
	finalString += '              <td id="warrantyCol2" class="warranty">' + vehWar2 + '</td>';
	finalString += '              <td id="warrantyCol3" class="warranty">' + vehWar3 + '</td>';
	finalString += '              <td id="warrantyCol4" class="warranty_final">' + vehWar4 + '</td>';
	finalString += '            </tr>';
	finalString += '          </table>';
	finalString += '        </div></td></tr>';
	finalString += '    </table>';
	
	if(packString || accString) {
		finalString += ' <table style="border:4px solid black;margin-top:5px"  cellpadding="5" cellspacing="0" width="668">';
		finalString += '	<tr><th colspan="2" style="color: #999;text-align:left;padding-left:15px;background-color:#000;border-bottom: 2px solid #000;">'+ hdrPackagesAccessories +" "+ txtList +':</th></tr>';
		finalString += packString;
		finalString += accString;
		finalString += '			<tr>';
		finalString += '              <td style="padding-left: 15px;border-right: 2px solid #000;border-top: 2px solid #000"><b>'+ hdrPackagesAccessories +' Total:</b></td>';
		finalString += '			  <td style="padding-right: 20px;text-align:right;border-top: 2px solid #000"><b>$'+ pack_total +'</b></td>';
		finalString += '			</tr>';
		finalString += ' </table>';
	}
	
	finalString += '<table width="664">';
	finalString += '    <tr>';
	finalString += '      <td colspan="2" id="airDisDiv"><small>'+ getItem('airDisDiv').innerHTML +'</small></td>';
	finalString += '    </tr>';
	finalString += '</table>';
	finalString += '</div><script type="text/javascript">window.onload=function(){setTimeout("window.print()",1000)}</script>';
	
	<!-- Start of DoubleClick Spotlight Tag: Please do not remove-->
	<!-- Activity Name for this tag is: Print Details Page -->
	<!-- Web site URL where tag should be placed: http://www.mitsubishicars.com/MMNA/jsp/build.do? - Call Tag after user has submitted zip code and hit "print details" button -->
	<!-- This tag must be placed within the opening <body> tag, as close to the beginning of it as possible-->
	<!-- End of DoubleClick Spotlight Tag: Please do not remove-->
	var axel = Math.random()+""; var a = axel * 10000000000000;

	finalString += '<IFRAME SRC="http://fls.doubleclick.net/activityi;src=1033846;type=elead741;cat=print634;ord='+ a + '?" WIDTH=1 HEIGHT=1 FRAMEBORDER=0 style="display:NONE;background-color: transparent;"></IFRAME>';
	
	var openDirs = window.open("about:blank", "finalModel", "status=0,menubar=1,scrollbars=1,width=690,height=530");
	openDirs.document.write(finalString.replace(/undefined/g,""));
	openDirs.document.close();
	openDirs.focus();
}


var showHideElements = new Array();
showHideElements.push("phoneType");
showHideElements.push("state");
showHideElements.push("timeframe");
showHideElements.push("currentMake");
showHideElements.push("currentModel");
showHideElements.push("currentYear");

function showHideFields() {
	var offerFormDiv = getItem('bprRfqForm');

	var elementCount = (offerFormDiv.style.visibility != "visible")?0:showHideElements.length;
	for(var i = 0; i < elementCount; i++) {
		var elemRef = getItem(showHideElements[i]);
		if(elemRef) {
			if(elemRef.style.visibility != "hidden") {
				elemRef.style.visibility = "hidden";
			}
			else {
				elemRef.style.visibility = "visible";
			}
		}
	}
}
