//from the jsp file

var byo$ = mrm.$; // jquery object ref
var BYO_IMAGE_BASE = BASE_CONTEXT + '/assets/en/images/tools/BYO';
var pageReady = "false"; var flashReady = "false"; var selectedOptions = ""; var flashOptions = ""; var unSelectedOptions = ""; var allOptions = ""; var categroryHeader = 0; var categroryArray = new Array(); var exColorDisc = ""; var inColorDisc = ""; var exColorCode = ""; var inColorCode = "";
var ERROR_SESSION_EXPIRED = "SESSION_EXPIRED";
var isSummaryPage = false;
var totalPrice = 0;
var popularShowed=false;
var totalInventory =0;
var popularConfigurationOptionList="";

var colorInfo = {
	Set : function(foo,bar) {this[foo] = bar;},
	Get : function(foo) {return this[foo];}
}

var lastPosition = {x:300, y:300};

//this function is called from flash when user pick a color in the flash
function flashSelectOption(chromeId){
	console.log("from flash: "+chromeId);
	if (colorInfo[chromeId] != null) {
		if(colorInfo[chromeId][0]=="exterior") {
			exColorDisc=colorInfo[chromeId][1];
			exColorCode=chromeId;
		}else{
			inColorDisc=colorInfo[chromeId][1];
			inColorCode=chromeId;
		}
		var colorElement = document.getElementById(chromeId);
		if (colorElement != null && colorElement.className != "Required" && colorElement.className != "Selected") {
			toggleOptionJsp(chromeId,"yes");
		}
	}
	else {
		console.log("colorInfo["+chromeId+"] is undefined");
	}
}

function callExternalInterface() {
    thisMovie("flash_object").updateOptions(flashOptions);
}

// hide / show summary page
function tellFlashShowSummary(){
	thisMovie("flash_object").showSummary();    
}
function hideNonSummary(){
	document.getElementById("rightPanel").className="summary";
	if(document.getElementById("optionPageTop")) document.getElementById("optionPageTop").style.display = "none";
	if(document.getElementById("optionPageRight")) document.getElementById("optionPageRight").style.display = "none";
	if(document.getElementById("optionPageBottom")) document.getElementById("optionPageBottom").style.display = "none";
	if(document.getElementById("summaryPageTop")) document.getElementById("summaryPageTop").style.display = "block";
	if(document.getElementById("epLink")) document.getElementById("epLink").style.display = "block";
	if(document.getElementById("summaryPageBottom")) document.getElementById("summaryPageBottom").style.display = "block";
}

function showSummaryColor(){}
function hideSummaryColor(){}

// for flash
function tellFlashShowConfiguration(){
	thisMovie("flash_object").showConfiguration();
}

function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) { return window[movieName]; }
    else { return document[movieName]; }
}

// "reset" options
function resetOption(){
	window.location.href = window.location.search;
        thisMovie("flashObj_nav").changeByoState("step");
}





//this function is called from flash and sends <div id="color"></div> to Flash
function fSendContent(contentID){
	//console.log("fSendContent " + contentID);
	var flashObj = document.getElementById("flash_object");
	if (flashObj) {
		var contentObj = document.getElementById(contentID);
		if (contentObj) {
			//alert(myInnerHTML(contentObj));
			flashObj.receiveContentById(myInnerHTML(contentObj));
			//console.log(myInnerHTML(contentObj));
		} else {
			//alert("div not found");
		}
	} else {
		//alert("could not get reference to flash object");
	}
}

//convert option string between flash and html
function myInnerHTML(node) {
	var str = "";
	if (node.childNodes != null) {
		if (node.childNodes.length > 0) {
			for (var j = 0;  j < node.childNodes.length; j++) {
				str += byoColorInnerHTML(node.childNodes[j]);
			}
		}
		else {
			str += "/>";
		}
	}
	// Previous code. Seemed to be affecting performance on several computers.
	/*var reTag = /(<\/?\w+)([^>]*>)/g;
	var reAttr = /(\w+=)((['"])[\s\S]*\3|[^\s>]+)/g;
	var str = node.innerHTML;

	function fixAttr($0, $1, $2, $3) {
		if ($3) return $1.toLowerCase() + $2;
		else return $1.toLowerCase() + '"' + $2 + '"'
	}
	function fixTag($0, $1, $2) {
		return $1.toLowerCase() + $2.replace(reAttr, fixAttr);
	}
	// clean up tags (make html tags and attributes lowercase)
	str = str.replace(reTag, fixTag);
	// make sure self-closing tags are closed
	var reSelfClosing = new RegExp("\<(area|base|basefont|br|hr|img|input)(.*?)>", "g");
	str = str.replace(reSelfClosing, "<$1$2/>");//*/
	str = str.replace(/<\/li>|<\/dt>/g, "");				// get rid of all closing li and dt tags (for IE)
	str = str.replace(/\s*<li([^>]*)>/g, "<\/li><li$1>");	// put a closing li in front of all opening li
	str = str.replace(/<\/ul>/g, "<\/li><\/ul>");			// put a closing li in front of closing ul
	str = str.replace(/<ul([^>]*)>\s*<\/li>/g, "<ul$1>");	// remove closing li's that appear directly after opening ul
	/*str = str.replace(/\s*<dd([^>]*)>/g, "<\/dt><dd$1>");	// put a closing dt in front of all opening dd's
	//end dan hackery//*/
	return str;//*/
}

function byoColorInnerHTML(node) {
	var nodeNamesWeIgnore = "accessKey|coords|noWrap|dataFormatAs|disabled|dataSrc|object|dataFld|language|compact|contentEditable|inherit|tabIndex|align|clear|shape|charset|urn|dir|css";
    // that string doesn't let us ignore "hreflang" (href) of "hideFocus" (id)
    // it might be easier to search for the attributes we DO want instead of those we DON'T want.
    var result = "";
	switch (node.nodeType) {
	// http://www.zvon.org/xxl/DOM2reference/DOM2/Output/data/_glossary.html#NodeTypes
		case 3: // text node
			var textValue = node.nodeValue;
			textValue = textValue.replaceAll(/\t/g, "");
			textValue = textValue.replaceAll(/\n/g, "");
			textValue = textValue.replaceAll(/\r/g, "");
			result += textValue;
		break;
		case 1:
			result += "<" + node.nodeName.toLowerCase();
			if (node.attributes != null) {
				if (node.attributes.length > 0) {
					for (var i = 0;  i < node.attributes.length; i++) {
						var nodeName = node.attributes.item(i).nodeName;
						//if ((node.attributes.item(i).value != "null") && (node.attributes.item(i).value != "") && (nodeNamesWeIgnore.indexOf(nodeName) == -1)) {
						if ((node.attributes.item(i).value != "null") && (nodeNamesWeIgnore.indexOf(nodeName) == -1)) {
							result += " " + node.attributes.item(i).nodeName;
							result += "=\"";
							if(node.attributes.item(i).nodeName == "alt" || node.attributes.item(i).nodeName == "title"){
								node.attributes.item(i).value = node.attributes.item(i).value.replace("\"", "&#34;");
							}
							result += node.attributes.item(i).value +"\"";
						}
					}
				}
			}
			if (node.childNodes != null) {
				if (node.childNodes.length > 0) {
					result += ">";
					for (var j = 0;  j < node.childNodes.length; j++) {
						result += byoColorInnerHTML(node.childNodes[j]);
					}
					result += "</"+ node.nodeName.toLowerCase() +">";
				}
				else {
					result += "/>";
				}
			}
		break;
	}
	/*result = result.replaceAll("% ","%25 ");
	result = result.replaceAll("\"","%22");
	result = result.replaceAll("&amp;","%26");
	result = result.replaceAll("&","%26");//*/
    return result;
}

function checkPopularConfigurationOption(element, optionList) {
	var optionArray=optionList.split(",");

	for(i = 0; i < optionArray.length; i++){
		var elementIdToCompare = 'form' + optionArray[i];
		if (element.id == elementIdToCompare) {
			element.checked = true;
		}
	}

}

// show build page with selectable options
function showAllOptions(optionList){
    //thisMovie("flashObj_nav").changeByoState("step");
	hideUnselectedOptions(true);
}

// hide unselected options on summary page
function hideUnselectedOptions(opposite){
	if ( opposite == undefined ) opposite = false;
		else opposite = opposite?true:false;
	
	displayBlock	= 'block';
	displayNone		= 'none';
	if ( opposite ) {
		displayBlock	= 'none';
		displayNone		= 'block';
	}
	
	var temp = unSelectedOptions.split(",");
	var tempSelectedCategory = new Array();
	document.getElementById("estimatePaymentLink").style.display = displayBlock;
	var attList = new Array();

	for(var i=0; i<temp.length; i++){
		if(temp[i]!=""&&document.getElementById("row"+temp[i]))
			document.getElementById("row"+temp[i]).style.display = displayNone;
	}
	var temp1 = selectedOptions.split(",");
	
	for(var i=0; i<temp1.length; i++){//hide the checkbox also
		if(temp1[i] != "" && $("form"+temp1[i])){
			
			// checkbox
			$("form"+temp1[i]).setStyle('display',displayNone);
			
			// link
			if($("link"+temp1[i])) $("link"+temp1[i]).setStyle('display','block');
			
			// span text
			//if($("text"+temp1[i])) $("text"+temp1[i]).setStyle('display',displayBlock);
			
			// row
			if($("row"+temp1[i])){
				attList = $("row"+temp1[i]).attributes;
				for (var m=0;m<attList.length;m++){
					if(attList[m].nodeName=="name"){
						tempSelectedCategory.push(attList[m].nodeValue);
					}
				}
			}
			
		}
	}
	
	// this is for the primary (non-accessory) categories
	var categroryShow = "no";
	for(var j=0; j<=categroryHeader; j++){
		for(var i=0; i<tempSelectedCategory.length; i++){
		
			if(tempSelectedCategory[i].indexOf(j)!=-1){
				categroryShow = "yes";
			}

			if($(tempSelectedCategory[i]) != null){
				$(tempSelectedCategory[i]).setStyle('display',displayBlock);
			}
		}
		if(categroryShow=="no") {
			$(categroryArray[j]).setStyle('display',displayNone);
		 }
	}
	
	// accessory categories
	var catDiv, hideCat, allHidden, catSec;
	if($("accessoriesContent")){
	 catSec = $('accessoriesContent').getElements('.categorySection');
	 allHidden = true;
	 if ( opposite ) {
		for ( i=0; i<catSec.length; i++ ) {
			catDiv = catSec[i].getElements('div');
			catSec[i].setStyle('display','block');
			catSec[i].removeClass('summaryAccessoryDisplay');
		}
		$('accessoriesContent').setStyle('display','block');
	 } else {
		for ( i=0; i<catSec.length; i++ ) {
			catDiv = catSec[i].getElements('div');
			hideCat = true;
			for ( j=0; j<catDiv.length; j++ ) {
				if ( catDiv[j].getStyle('display') != 'none' ) hideCat = false;
			}
			if ( hideCat == true ) {
				catSec[i].setStyle('display','none');
			} else {
				allHidden = false;
				catSec[i].addClass('summaryAccessoryDisplay');
			}
		}
		if ( allHidden ) $('accessoriesContent').setStyle('display','none');
	 }
    }
	// buttons and extra items
	if($("optionPageTitle")) $("optionPageTitle").setStyle('display',displayNone);
    if($("optionCategoryTitle")) $("optionCategoryTitle").setStyle('display',displayNone);
	if($("optionPageRight")) $("optionPageRight").setStyle('display',displayNone);
	if($("optionPageBottom")) $("optionPageBottom").setStyle('display',displayNone);
	if($("summaryPageTop")) $("summaryPageTop").setStyle('display',displayBlock);
    if($("summaryPageTitle")) $("summaryPageTitle").setStyle('display',displayBlock);
    if($("summaryCategoryTitle")) $("summaryCategoryTitle").setStyle('display',displayBlock);
	if($("summaryPageBottom")) $("summaryPageBottom").setStyle('display',displayBlock);
    if($("nextSummaryLink")) $("nextSummaryLink").setStyle('display',displayNone);
    if($("cbtDisclaimer")) $("cbtDisclaimer").setStyle('display',displayNone);
	if($("epLink")) $("epLink").setStyle('display',displayBlock);
	if($('boxAppraisal')) $('boxAppraisal').setStyle('display',displayNone);
	if($('boxRAQ')) $('boxRAQ').setStyle('display',displayNone);
	
	$("rightPanel").toggleClass("summary");
	if ( opposite ) $('selectOptions').removeClass('optionsSummary');
		else $('selectOptions').addClass('optionsSummary');
	
	hideCurrentHover();

}
//the above code is from jsp
// show or hide entire option group (not being used)
function showOrHideGroup( groupName ) {
	//get link element and div
	var link = document.getElementById( groupName );
	var div = document.getElementById( groupName + " Div" );

	//shor or hide div
	if( div.style.visibility == "hidden" ) {
		link.innerHTML = "<b>Hide " + groupName + "</b>";
		div.style.display = "";
		div.style.visibility = "visible";
	}
	else {
		link.innerHTML = "<b>Show " + groupName + "</b>";
		div.style.display = "none";
		div.style.visibility = "hidden";
	}
}

function setConflictPopUp(optionCode,content) {
	var linkObj = byo$('#link'+optionCode);
	var optionObj = byo$('#conflictDialog');
	var conflictTop = 0;
	var conflictLeft = 0;
	if ( linkObj.length && optionObj.length ) {
		conflictTop = linkObj.offset().top-optionObj.parent().offset().top+linkObj.height()+2;
		conflictLeft = linkObj.offset().left-optionObj.parent().offset().left+50;
	}
	byo$('#conflictContent').html(content);
	optionObj.css({top:conflictTop,left:conflictLeft,display:'block',visibility:'visible'});
}


// for summary page, to show user's selections
function toggleOption(optionCode) {
//console.log("this option code is:"+optionCode);
	var modalWinMaskDiv = document.getElementById("modalWinMask");
	//alert("[1]:optionCode=" + optionCode + "&random=" + new Date());
	//do toggle request - don't want IE to cache so use random=new Date()
	var request = getRequest();

    request.open("get", "toggleOption.do?optionCode=" + optionCode + "&confirmedValue=yes&random=" + new Date(), false);
    request.send(null);
    //get response
	var returnParams = request.responseText.split("~~"); //alert("toggle returns: "+request.responseText);
	//get toggle conflict
	var isConflict = returnParams[0];
	if ( isConflict == "yesConflict" && modalWinMaskDiv) {
		//alert("[4]");
		//show mask
	    //modalWinMaskDiv.style.display = "";
	    //modalWinMaskDiv.style.height = document.body.offsetHeight;
	    //modalWinMaskDiv.style.width = "100%";
	    //modalWinMaskDiv.style.visibility = "visible";

		//get originating option code and description
		var originatingOptionCode = returnParams[1].split(";;")[0];
		var originatingOptionDesc = returnParams[1].split(";;")[1];

		var addOrDelete = returnParams[2];  //alert("conflict: addordelecte "+addOrDelete);

		//set conflict div table content
		var conflictingOptionCodesAndDescs = returnParams[3].split(";;")

		var content = "<table border=\"0\" bgcolor=\"#fff\" cellspacing=\"0\" cellpadding=\"2\" style=\"font-size:13px;\">";
		if ( addOrDelete == "add" )
			content += "<tr><td colspan=\"2\">The addition of option code: ";
		else
			content += "<tr><td colspan=\"2\">The removal of option code: ";
        //content += "<br><b>" + originatingOptionCode + " (" + originatingOptionDesc + ")</b><br>";
		content += "<br><b>" + originatingOptionCode + "</b><br>";
        content += "</td></tr><tr><td colspan=\"2\">requires selecting one of these options:</td></tr><tr><td colspan=\"2\"><hr></td></tr>";
		//alert("[5]");
		for (var i = 0; i < conflictingOptionCodesAndDescs.length; i++) {
	        var conflictOptionCode = conflictingOptionCodesAndDescs[i].split("::")[0];
	        var conflictOptionDesc = conflictingOptionCodesAndDescs[i].split("::")[1];
            content += "<tr><td><a href='#' ";
            content += "onClick=\"resolveConflict('";
            content += conflictOptionCode;
            content += "');\">Unselected</a></td><td>";
            content += conflictOptionCode + " (" + conflictOptionDesc + ")";
            content += "</td></tr>";
        }
        content += "</table>";
		//alert("[6]");
	    //show conflict dialog and content
		setConflictPopUp(optionCode,content);
	}
	else {
		//alert("[8]:");
		//var testWin = window.open("");
		//testWin.document.write(returnParams);
		//show new option images for each option
		 //alert("no conflict: "+returnParams[1]);
		 if ( isConflict == "UserConfirmationNeeded"){
		 	//modalWinMaskDiv.style.display = "";
		    //modalWinMaskDiv.style.height = document.body.offsetHeight;
		    //modalWinMaskDiv.style.width = "100%";
		    //modalWinMaskDiv.style.visibility = "visible";

			//get originating option code and description
			var originatingOptionCode = returnParams[1].split("::")[0];
			var originatingOptionDesc = returnParams[1].split("::")[1];

			var addOrDelete = returnParams[2];  //alert("conflict: addordelecte "+addOrDelete);


			var content2 = "<table border=\"0\" bgcolor=\"#fff\" cellspacing=\"0\" cellpadding=\"2\" style=\"font-size:13px;\">";
			if ( addOrDelete == "add" )
				content2 += "<tr><td colspan=\"2\">The addition of option code: ";
			else
				content2 += "<tr><td colspan=\"2\">The removal of option code: ";
	        //content2 += "<br><b>" + originatingOptionCode + " (" + originatingOptionDesc + ")</b><br>";
			content2 += "<br><b>" + originatingOptionDesc + "</b><br>";
	        content2 += "</td></tr>";
	        var addOption = returnParams[3];
	         var addOptionArray = returnParams[3].split(";;");
	         var addOptionValueArray =addOptionArray[1].split("::");
	        var deleteOption = returnParams[4];
	        var deleteOptionArray = returnParams[4].split(";;");
	          var deleteOptionValueArray =deleteOptionArray[1].split("::");
	        content2+="<tr><td colspan=\"2\">";
	        if(addOptionArray[0]=="add" &&addOptionValueArray.length>0){
	        	content2+="Required to add following option:<br>";
	        	for(var d=0;d<addOptionValueArray.length;d++){
	        		content2 +=addOptionValueArray[d]+"<br/>";
	        	}
	        }
	        if(deleteOptionArray[0]=="delete" &&deleteOptionValueArray.length>0){
	        	content2+="Required to remove following option:<br>";
	        	for(var d=0;d<deleteOptionValueArray.length;d++){
	        		content2 +=deleteOptionValueArray[d]+"<br/>";
	        	}
	        }

	       content2+=" </td></tr><tr><td colspan=\"2\"><hr></td></tr>";

	      var totalOptionInvoice =returnParams[6];
	      var totalOptionMsrp =returnParams[7];
	      var totalInvoice =returnParams[8];
	      var totalMsrp = returnParams[9];
	      var netPrice = returnParams[9];
	      var accessoryPrice = returnParams[10];
	       /*  alert(returnParams[11]);*/
	        content2+="<td><a href=\"javascript:void(0)\" onClick=\"resolveConflict('"+originatingOptionCode+"')\">Cancel Selection>></a><td></tr>";
	       content2+="<tr><td><a href=\"javascript:void(0)\" onClick=\"showOptionStatus('"+returnParams[5]+"','"+totalOptionInvoice+"','"+totalOptionMsrp+"','"+totalInvoice+"','"+totalMsrp+"','"+totalMsrp+"','"+accessoryPrice+"')\">Continue>></a><td>";
	          content2 += "</table>";
	  	  setConflictPopUp(optionCode,content);

		 }else{
		 	showOptionStatus(returnParams[1],returnParams[2],returnParams[3],returnParams[4] ,returnParams[5] , returnParams[5] , returnParams[6]);
		 }
	}

	//hide mask
	if ( isConflict != "yesConflict" && modalWinMaskDiv)
		modalWinMaskDiv.style.visibility = "hidden";

	callExternalInterface();
}

// being called by toggleOption js function to update status of impacted options and update prices
function showOptionStatus(returnParams,totalOptionInvoice,totalOptionMsrp,totalInvoice,totalMsrp,netPrice,accessoryPrice){
	if (!isSummaryPage) {
		var modalWinMaskDiv = document.getElementById("modalWinMask");
		modalWinMaskDiv.style.visibility = "hidden";
		modalWinMaskDiv.style.display = "none";
		var conflictDiv = document.getElementById("conflictDialog");
			//alert("[7]");
			//conflictDiv.style.top = conflictTop + "px";
	       // conflictDiv.style.left = conflictLeft + "px";
			conflictDiv.style.display = "none";
			conflictDiv.style.visibility = "hidden";
		//alert(totalOptionMsrp+" "+totalInvoice+" "+totalMsrp+" "+netPrice+" "+accessoryPrice);
		//alert(returnParams);
		
		var optionCodes = returnParams.split(";;");
		var defaultWheelFormSelect = null; //sa
		
		for (var i = 0; i < optionCodes.length; i++) {
				//alert(optionCodes[i]);
				var optionString = optionCodes[i].split("::");
				var optionCode2 = optionString[0];
				var optionState = optionString[1];
				//alert("[9]:"+optionCode2);
				//sometimes we get no option code; i.e. Honda vehicles
				if ( optionCode2.length > 0 ) {
					//alert("[9.1]");
					/*var optionImage = document.getElementById("img" + optionCode2);*/
					var optionForm = document.getElementById("form" + optionCode2);

					if(document.getElementById(optionCode2)){
						document.getElementById(optionCode2).className = optionState;
						//console.log("color: "+optionCode2);
					}
					if(optionForm){ //alert(optionForm + " " +optionCode2+" "+optionState);
						//alert("[9.2]:"+optionState);
						//alert("[9.2.1]:"+optionForm);
						//console.log("toggle: "+optionCode2+" " +optionForm.checked + " " + optionState);
						
						optionForm.title = optionState;
						
						if(optionState == "Included" || optionState == "Required" ||optionState == "Selected"){
						
							// workaround for default wheel selection
							if(optionState == "Required") {
								if(optionCode2 == "P6A" || optionCode2 == "P64") {
									defaultWheelFormSelect = optionForm;
									toggleOptionJsp(optionCode2, "yes");
								}
							}
							//
							
							if (optionForm.checked != null) {
								optionForm.checked = true;
							}
							unSelectedOptions = removeOption(unSelectedOptions, optionCode2);
							selectedOptions += ","+optionCode2;
							if(flashOptions.indexOf(optionCode2)!=-1){

							}else{
								flashOptions += ","+optionCode2;
							}
						}else if(optionState == "Excluded" ||optionState == "Unselected" || optionState == "Upgraded"){
							optionForm.checked = false;
							unSelectedOptions += ","+optionCode2;
							selectedOptions = removeOption(selectedOptions,optionCode2);
							if(flashOptions.indexOf(optionCode2)!=-1){
								flashOptions = removeOption(flashOptions,optionCode2);
							}else{

							}
						}
					} else {//alert("not exist option: "+optionCode2);
					}


					var checklistStatus =  document.getElementById("checklistStatus" + optionCode2);
					//alert("[9.4]");
					if( checklistStatus ){
						//alert("[9.5]");
						if( optionState.toLowerCase() == "selected" || optionState.toLowerCase() == "included" || optionState.toLowerCase() == "required" ){
							checklistStatus.innerHTML = "-->";
						} else {
							checklistStatus.innerHTML = "&nbsp;";
						}
					}
				}

			}
			//alert("[10]");
			var checklistTables = document.getElementsByName( "checklistTable" );
			for( var i=0; i < checklistTables.length; i++ ){
				if( checklistTables[i].innerHTML.indexOf("-->") > -1 || checklistTables[i].innerHTML.indexOf("--&gt;") > -1 ){
					checklistTables[i].style.backgroundColor = "White";
				} else {
					checklistTables[i].style.backgroundColor = "Red";
				}
			}
			
			// if using the default wheel workaround, clear the form selection
			if(defaultWheelFormSelect != null){
				defaultWheelFormSelect.checked = false;
			}
			//

			//show new prices
			//document.getElementById("totalOptionInvoice").innerHTML = "$" + totalOptionInvoice;
//			document.getElementById("totalOptionMsrp").innerHTML = "$" + totalOptionMsrp;

			/* -------------Pricing box code------------------- */
			priceBlock.setColorAndOption(totalOptionMsrp,null);
			priceBlock.clearBox();
			priceBlock.showBox("BYO");
			/* -------------Pricing box code------------------- */

			//document.getElementById("totalInvoice").innerHTML = "<b>$" + totalInvoice + "</b>";


			totalMsrp = totalMsrp.replace(",","");
			//var netPriceSpan = 	document.getElementById("netPriceSpan").innerHTML;
			//netPriceSpan = netPriceSpan.replace(",","");
			//netPriceSpan = netPriceSpan.replace("-$","");
	//console.log(totalMsrp+"/"+netPriceSpan+"/"+accessoryPrice);
			accessoryPrice = accessoryPrice.replace(",","");

			if (!isSummaryPage) {
				//var newNetPrice = totalMsrp-netPriceSpan-accessoryPrice;
				//newNetPrice = formatCurrency(newNetPrice);
				//document.getElementById("netPrice").innerHTML = "<b>$" +newNetPrice  + "</b>";
				//var newTotalMsrp = formatCurrency(totalMsrp-accessoryPrice);
				//document.getElementById("totalMsrp").innerHTML = "<b>$" + newTotalMsrp + "</b>";
			//	var newAccessoryPrice = formatCurrency(accessoryPrice);
			//	document.getElementById("accessoryPrice").innerHTML = "<b>$" + newAccessoryPrice + "</b>";
				/* -------------Pricing box code------------------- */
				priceBlock.setAccesories(accessoryPrice,null);
				priceBlock.clearBox();
				priceBlock.showBox("BYO");
				/* -------------Pricing box code------------------- */

			}
	}
}

// called by toggleOption when user remove a selected option
function removeOption(options, option){
	var temp1 = options.split(",");
	var temp2 = "";
	for(var m=0; m<temp1.length; m++){
		if(temp1[m]!=option&&temp1[m]!="") temp2 += ","+temp1[m];
	}
	options = temp2;
	return options;
}

// called when user selects an option on build page
function toggleOptionJsp(optionCode,confirmedValue) {
	//alert("[1] "+optionCode+" - "+confirmedValue);
//console.log("this option code is:"+optionCode);
	confirmedValue = "yes";
	var modalWinMaskDiv = document.getElementById("modalWinMask");
	//alert("[1]:optionCode=" + optionCode + "&random=" + new Date());
	//do toggle request - don't want IE to cache so use random=new Date()
	var request = getRequest();
    request.open("get", "toggleOption.do?optionCode=" + optionCode+ "&confirmedValue=" + confirmedValue + "&random=" + new Date(), false);
    request.send(null);
    //get response
	if(request.responseText===ERROR_SESSION_EXPIRED)
	{
		alert("Your current selections have been lost due to session expiration");
	}
	else
	{
		var returnParams = request.responseText.split("~~"); //alert("toggle returns: "+request.responseText);
		//get toggle conflict
		var isConflict = returnParams[0];
		if ( isConflict == "yesConflict" && modalWinMaskDiv) {
			//alert("[4]");
			//show mask
		   // modalWinMaskDiv.style.display = "";
		    //modalWinMaskDiv.style.height = document.body.offsetHeight;
		    //modalWinMaskDiv.style.width = "100%";
		    //modalWinMaskDiv.style.visibility = "visible";

			//get originating option code and description
			var originatingOptionCode = returnParams[1].split(";;")[0];
			var originatingOptionDesc = returnParams[1].split(";;")[1];

			var addOrDelete = returnParams[2];  //alert("conflict: addordelecte "+addOrDelete);

			//set conflict div table content
			var conflictingOptionCodesAndDescs = returnParams[3].split(";;")

			var content = "<div>";
			if ( addOrDelete == "add" )
				content += "<p>The addition of option:<br/>";
			else
				content += "<p>The removal of option:<br/>";
	        //content += "<br><b>" + originatingOptionCode + " (" + originatingOptionDesc + ")</b><br>";
			content += "<b>" + originatingOptionCode + "</b></p>";
	        content += "<p>Requires selecting one of the following options:</p>";
			//alert("[5]");
	        content += "<ul>";
			for (var i = 0; i < conflictingOptionCodesAndDescs.length; i++) {
		        var conflictOptionCode = conflictingOptionCodesAndDescs[i].split("::")[0];
		        var conflictOptionDesc = conflictingOptionCodesAndDescs[i].split("::")[1];
	            content += "<li><input type=\"radio\" name=\"conflictOption\" value=\""+conflictOptionCode+"\" ";
	            content += "onclick=\"resolveConflict('";
	            content += conflictOptionCode;
	            content += "','no');\"/> ";
	            content += conflictOptionDesc;
	            content += "</li>";
	        }
	        content += "</ul></div>";
			//alert("[6]");
		    //show conflict dialog and content
			setConflictPopUp(optionCode,content);
		}
		else {
			//alert("[8]:");
			//var testWin = window.open("");
			//testWin.document.write(returnParams);
			//show new option images for each option
			 //alert("no conflict: "+returnParams[1]);
			 if ( isConflict == "UserConfirmationNeeded"){
			 	//modalWinMaskDiv.style.display = "";
			   // modalWinMaskDiv.style.height = document.body.offsetHeight;
			   // modalWinMaskDiv.style.width = "100%";
			   // modalWinMaskDiv.style.visibility = "visible";

				//get originating option code and description
				var originatingOptionCode = returnParams[1].split("::")[0];
				var originatingOptionDesc = returnParams[1].split("::")[1];

				var addOrDelete = returnParams[2];  //alert("conflict: addordelecte "+addOrDelete);

				var content3 = "<div>"
				if ( addOrDelete == "add" )
					content3 += "<p>The addition of option:<br/>";
				else
					content3 += "<p>The removal of option code:<br/>";

				content3 += "<b>" + originatingOptionDesc + "</b></p>";
				var addOption = returnParams[3];
				var addOptionArray = returnParams[3].split(";;");
				var addOptionValueArray =addOptionArray[1].split("::");
		        var deleteOption = returnParams[4];
		        var deleteOptionArray = returnParams[4].split(";;");
		        var deleteOptionValueArray =deleteOptionArray[1].split("::");

		        if(deleteOptionArray[0]=="delete" &&deleteOptionValueArray.length>0){
		        	content3+="<p>Requires the removal of the following option(s):<br/>";
		        	for(var d=0;d<deleteOptionValueArray.length;d++){
		        		content3 +=deleteOptionValueArray[d];
		        	}
		        //	content3+="</p>";
		        //	content3+="<p>Requires the addition of the following option(s):<br/>";
		        //	content3+="18 Machined</p>";
		        }

		        if(addOptionArray[0]=="add" &&addOptionValueArray.length>0){
		        	if(addOptionValueArray[0].length >0){
			        	content3+="<p>Requires the addition of the following option(s):<br/>";
			        	for(var d=0;d<addOptionValueArray.length;d++){
			        		content3 += addOptionValueArray[d];
			        	}
			        	//content3+="</p>";
			        	//content3+="<p>Requires the removal of the following options(s):<br/>";
			        	//content3+="18 Machined</p>";
		        	}
		        }

		        var totalOptionInvoice =returnParams[6];
		        var totalOptionMsrp =returnParams[7];
		        var totalInvoice =returnParams[8];
		        var totalMsrp = returnParams[9];
		        var netPrice = returnParams[9];
		        var accessoryPrice = returnParams[10];

		        content3+="<p><a href=\"javascript:void(0)\" onClick=\"resolveConflict('"+originatingOptionCode+"','yes')\">Continue>></a>";
		        content3+="<a id=\"btnCancel\" href=\"javascript:void(0)\" onClick=\"showOptionStatus('"+returnParams[5]+"','"+totalOptionInvoice+"','"+totalOptionMsrp+"','"+totalInvoice+"','"+totalMsrp+"','"+totalMsrp+"','"+accessoryPrice+"')\">Cancel selection>></a></p>";
		        content3+="</div>";
		       setConflictPopUp(optionCode,content);

			 }else{
			 	showOptionStatus(returnParams[1],returnParams[2],returnParams[3],returnParams[4] ,returnParams[5] , returnParams[5] , returnParams[6]);
			 }
		}
		//hide mask
		if ( isConflict != "yesConflict" && modalWinMaskDiv)
			modalWinMaskDiv.style.visibility = "hidden";

		callExternalInterface();
	}
}

function resolveConflict(optionCode,confirmedValue) {
	//hide conflict dialog
    document.getElementById("conflictDialog").style.visibility = "hidden";
    document.getElementById("conflictDialog").style.display = "none";

    //toggle selected conflict option
    toggleOptionJsp(optionCode,confirmedValue);
}

function setOptionPopUp(chromeCode,content) {
	var linkObj = byo$('#link'+chromeCode);
	var optionObj = byo$('#optionDetailDialog');
	var conflictTop = 0;
	var conflictLeft = 0;
	if ( linkObj.length && optionObj.length ) {
		conflictTop = linkObj.offset().top-optionObj.parent().offset().top+linkObj.height()+2;
		conflictLeft = linkObj.offset().left-optionObj.parent().offset().left+50;
	}
	byo$('#optiondetailContent').html(content);
	optionObj.css({top:conflictTop,left:conflictLeft,display:'block',visibility:'visible'});
}

//option description popup when user click on option text
function showOptionPopUpDetailsWithoutAjax(imagePath,chromeCode,styleId,modelId,bodyType,pDesc,uDesc, popupAllStylesTableData, showDetailsLayerImage) {
	hideCurrentHover();
	var trimObjectTable = "";
	if(popupAllStylesTableData!="" ){
		trimObjectTable = "<table id=\"optionTextPopupOptions\">";
		if(popupAllStylesTableData.length>2 && popupAllStylesTableData.substring(popupAllStylesTableData.length-2,popupAllStylesTableData.length)=="^^"){
			popupAllStylesTableData = popupAllStylesTableData.substring(0, popupAllStylesTableData.length-2);
		}
		var trimObjects = popupAllStylesTableData.split("^^");
		for(var trimObjectIndex=0;trimObjectIndex<trimObjects.length;trimObjectIndex++){
			trimObjectTable += "<tr>";
			var trimObject = trimObjects[trimObjectIndex];
			var trimObjectContent = trimObject.split("~~");
			trimObjectTable+="<td border=\"0\" bgcolor=\"#272A30\">"+trimObjectContent[0]+"</td>"
			trimObjectTable+="<td border=\"0\" bgcolor=\"#272A30\">"+trimObjectContent[1]+"</td>"
			trimObjectTable += "</tr>";
		}
		trimObjectTable += "</table>";
	}
	var content = "<table id=\"optionTextPopup\" border=\"0\" bgcolor=\"#fff\" cellspacing=\"0\" cellpadding=\"2\" style=\"font-size:13px;\">";
		content += "<tr><td id='titleDetailded' colspan=2><table border=0><tr><td width='100%'><div id='descDetailed'>"+pDesc+"</div></td><td width=75><div id=\"closeBtn\" onClick='closeMask()'>Close[X]</div></td></tr></table>";
		content += "<tr>";
		if (imagePath != "" && imagePath != null && showDetailsLayerImage) {
			content += "<td class='optionTextPopup left' rowspan='3'>";
			content += "<img id='imgThumbnail' src='" + BASE_CONTEXT + imagePath + "' onError=\"showDefaultImage(this)\"></td>";
		}
		content += "<td class='optionTextPopup right' align=\"left\">"+uDesc+"<br><br><span id=\"optionTextPopupMessage\">&nbsp;</span><br><br></td></tr>";
		//content += "<tr><td class='optionTextPopup'>Trim specific Values to [Add]</td></tr>";
		//hiding the pricing table of all trims
		//content += "<tr><td>"+trimObjectTable+"</td></tr>";
		content += "</table>";
	setOptionPopUp(chromeCode,content);
}

//fill the option popup content
function showOptionPopUpDetails(imagePath,chromeCode,styleId,modelId,bodyType,pDesc,uDesc, popupAllStylesTableData,showDetailsLayerImage) {

	hideCurrentHover();
	var trimObjectTable = "";

	if(popupAllStylesTableData!="" ){
		trimObjectTable = "<table id=\"optionTextPopupOptions\">";
		if(popupAllStylesTableData.length>2 && popupAllStylesTableData.substring(popupAllStylesTableData.length-2,popupAllStylesTableData.length)=="^^"){
			popupAllStylesTableData = popupAllStylesTableData.substring(0, popupAllStylesTableData.length-2);
		}
		var trimObjects = popupAllStylesTableData.split("^^");
		for(var trimObjectIndex=0;trimObjectIndex<trimObjects.length;trimObjectIndex++){
			trimObjectTable += "<tr>";
			var trimObject = trimObjects[trimObjectIndex];
			var trimObjectContent = trimObject.split("~~");
			trimObjectTable+="<td border=\"0\" bgcolor=\"#272A30\">"+trimObjectContent[0]+"</td>"
			trimObjectTable+="<td border=\"0\" bgcolor=\"#272A30\">"+trimObjectContent[1]+"</td>"
			trimObjectTable += "</tr>";
		}
		trimObjectTable += "</table>";
	}
	var optionWinMaskDiv = document.getElementById("optionWinMask");
	var content = "<table id=\"optionTextPopup\" border=\"0\" bgcolor=\"#fff\" cellspacing=\"0\" cellpadding=\"2\" style=\"font-size:13px;\">";
		content += "<tr><td id='titleDetailded' colspan=2><table border=0><tr><td width='100%'><div id='descDetailed'>"+pDesc+"</div></td><td width=75><div id=\"closeBtn\" onClick='closeMask()'>Close[X]</div></td></tr></table>";
		content += "<tr>";
		if (imagePath != "" && imagePath != null && showDetailsLayerImage) {
			content += "<td class='optionTextPopup left' rowspan='3'>";
			content += "<img id='imgThumbnail' src='"+ BASE_CONTEXT + imagePath +"' onError=\"showDefaultImage(this)\"></td>";
		}
		content += "<td class='optionTextPopup right' align=\"left\">"+uDesc+"<br><br><span id=\"optionTextPopupMessage\"><img src='"+BYO_IMAGE_BASE+"/loader.gif' border='1'/></span><br><br></td></tr>";
		//content += "<tr><td class='optionTextPopup'>Trim specific Values to [Add]</td></tr>";
		//hiding the pricing table of all trims
		//content += "<tr><td>"+trimObjectTable+"</td></tr>";
		content += "</table>";

	setOptionPopUp(chromeCode,content);
	setTimeout("toggleAjaxCall(\""+chromeCode+"\", \""+styleId+"\", \""+modelId+"\", \""+bodyType+"\")", 1000);
}

//called by showOptionPopUpDetails(), to retrieve popup content using ajax
function toggleAjaxCall(chromeCode, styleId, modelId, bodyType){
	var request = getRequest();
	var requestURL = "togglePopUpDescription.do?chromeCode=" + chromeCode + "&styleId=" + styleId+"&modelId=" + modelId+"&bodyType=" + bodyType;
	//alert("requestURL="+requestURL);
    request.open("get", requestURL, false);
    request.send(null);
    //get response
    if(request.readyState==4){
// 	alert('form'+chromeCode+': '+$('form'+chromeCode).checked);
		var message = request.responseText; //
		//alert("message="+message);
	    if (message=="In order to choose this feature, you also need to add: Dual Player Headrest DVD System (Dealer Installed Option<sup>4</sup>) -LPO, Noise canceling headphones (2 sets)"){
	       message ="In order to choose this feature, you have also to add: Dual Player Headrest DVD System -LPO, Noise canceling headphones (2 sets)(Dealer Installed Option<sup>4</sup>)";
	    }
		//if(message==""){
			//message = "There's no conflict with other options.";
		//} else
		if( $('form'+chromeCode).checked==true){
		 	message+= "<br><br> <a id='btnRemove' href=\"javascript:closeMask();toggleOptionJsp('"+chromeCode+"', 'no')\"><img src='"+BYO_IMAGE_BASE+"/summary/btn_remove.gif'  height='19' width='76'></a>";
		} else {
			message+= "<br><br> <a id='btnAdd' href=\"javascript:closeMask();toggleOptionJsp('"+chromeCode+"', 'no')\"><img src='"+BYO_IMAGE_BASE+"/summary/btn_add.gif'  height='19' width='40'></a>";

		}
		document.getElementById("optionTextPopupMessage").innerHTML = message;
	}
}

//"close" button in popup
function closeMask(){
	var optionWinMaskDiv = document.getElementById("optionWinMask");
	optionWinMaskDiv.style.visibility = "hidden";
	var optionDiv = document.getElementById("optionDetailDialog");
	optionDiv.style.visibility = "hidden";
}

//when an option doesn't have image from Chrome, show this generic default in popup
function showDefaultImage(imgObj){
	imgObj.src=BYO_IMAGE_BASE+'/thumbnails/generic.jpg';
	return;
}

//zipcode will be retieved from cookie
function getInfoByZipCode(year,pvc,gmModelId, postalCode){
	var cookieValue = getPostalCode();
	if ( (cookieValue ==null||cookieValue=="") && (postalCode!=null&&postalCode!="") ) cookieValue = postalCode;
	
	var requestURL	= BASE_CONTEXT+'/tools/byo/getInfoByZipCode.do';
	var requestVars	= "zipCode="+cookieValue+"&year="+year+"&pvc="+pvc+"&gmModelId="+gmModelId;
	var request = new Request({async:true,url:requestURL,method:'get',onSuccess:parseInfoByZipCode});
	request.send(requestVars);
	
	mrm.$('#lavTopLink').css({visibility:'hidden'});
	mrm.$('#summaryLAVBox').css({display:'none'});
	mrm.$('#summaryLADBox').css({display:'block'});
	$('lavTop').innerHTML = '<img src="'+BASE_CONTEXT+'/assets/en/images/locateVehicle/vl_loading.gif" alt="Loading" width="20px" height="20px" />';
}

function parseInfoByZipCode(responseText, responseXML) {
    //get response
	var message = responseText;
	//alert("message="+message);
	var returnParams = message.split("~~");
	totalInventory = returnParams[2]; // Global variable. Find declaration at top of the filae.
	var inventoryId2 = null;
	if(totalInventory != "0" && $("inventoryId1")){
		document.getElementById("inventoryId1").innerHTML = returnParams[2];
		inventoryId2 = document.getElementById("inventoryId2");
		if(inventoryId2 != null){
			inventoryId2.innerHTML = returnParams[2];
		}
	}else if($("inventoryId1")){
		document.getElementById("inventoryId1").parentNode.innerHTML = "Please click link below to view local inventory";
		document.getElementById("lavTopLinkRef").innerHTML = "View Local Inventory";
		inventoryId2 = document.getElementById("inventoryId2");
		if(inventoryId2 != null){
			inventoryId2.parentNode.innerHTML = "Please click link below to view local inventory";
		}
	}
	document.getElementById("lavTop").innerHTML = totalInventory;
	
	if ( parseInt(totalInventory) > 0 ) {
		mrm.$('#lavTopLink').css({visibility:'visible'});
		mrm.$('#summaryLAVBox').css({display:'block'});
		mrm.$('#summaryLADBox').css({display:'none'});
	}
	
	if(returnParams[1] !="0"){
		//document.getElementById("netPriceSpan").innerHTML = "-$"+formatCurrency(returnParams[1]);
		/* -------------Pricing box code------------------- */
		totalPrice = totalPrice - returnParams[1];
		priceBlock.setCashOffers(returnParams[1]);
		priceBlock.clearBox();
		priceBlock.showBox("BYO");
		/* -------------Pricing box code------------------- */
	}else{
		document.getElementById("priceDetail").innerHTML = "<li>check with dealer</li>";
	}
	postalCode = returnParams[3];
}

//deprecated functions
function showOptionDetails(imageType,optionCode,optionShort,optionDescription) {
	//alert(optionCode);
	var optionWinMaskDiv = document.getElementById("optionWinMask");

	optionWinMaskDiv.style.display = "";
	optionWinMaskDiv.style.height = document.body.offsetHeight;
	optionWinMaskDiv.style.width = "100%";
	optionWinMaskDiv.style.visibility = "visible";
	//alert("Set option mask:"+optionWinMaskDiv);
	var content = "<table border=\"0\" bgcolor=\"#fff\" cellspacing=\"0\" cellpadding=\"2\" style=\"font-size:13px;\">";
		content += "<tr><td colspan='2'>"+optionShort+"&nbsp;&nbsp;&nbsp;&nbsp;<u><a onClick='closeMask()'>Close[X]</a></u></td></tr>";
		content += "<tr><td rowspan='2' class='left'><img id='imgThumbnail' src='"+BYO_IMAGE_BASE+"/thumbnails/"+vehicleCode+"/"+imageType+optionCode+".jpg' onError=\"showDefaultImage(this)\"></td>";
		content += "<td class='right'>"+optionDescription+"</td></tr>";
		content += "<tr><td >Trim specific Values to [Add]</td></tr>";
		content += "</table>";

	/*var targetPosition = getPosition( document.getElementById("img" + optionCode) );*/
	var targetPosition = getPosition( document.getElementById("form" + optionCode) );
	var conflictTop = targetPosition.y - 150;
	var conflictLeft = targetPosition.x;
	document.getElementById("optiondetailContent").innerHTML = content;
	//alert("done setting content on optiondetailContent");
	var optionDiv = document.getElementById("optionDetailDialog");
	//alert("optionDiv:"+optionDiv);
	optionDiv.style.top = conflictTop + "px";
	optionDiv.style.left = conflictLeft + "px";
	optionDiv.style.display = "";
	optionDiv.style.visibility = "visible";
	//alert("OptionDiv:"+optionDiv);
	//if ( optionWinMaskDiv)
	//	optionWinMaskDiv.style.visibility = "hidden";

}
// utility to format price
function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + num);
}
// utility
function getPosition( element ){
	var left = 0;
	var top  = 0;
	var isIElte7 = (BrowserDetect.browser == 'Explorer' && BrowserDetect.version <= 7 );
	if (element){
		do {
			left += element.offsetLeft;
			top += element.offsetTop;
		} while ( element = element.offsetParent );
		if ( isIElte7 ) {
			var bwd = (document.documentElement.clientWidth-document.body.clientWidth)/2;
			left -= bwd;
		}
		lastPosition = {x:left, y:top};
		return {x:left, y:top};
	}else{
		return {x:lastPosition.x-1, y:lastPosition.y-10};
	}
}

// original chrome js functions not being used


function saveStyle( styleId ) {
	var request = getRequest();
    request.open("get", "saveStyle.do?styleId=" + styleId, false);
    request.send(null);

    if( request.responseText == "success" )
    {
       //show msg
        var msgDiv = document.getElementById( "styleSaveDiv" );
        msgDiv.style.display = "";
        msgDiv.style.visibility = "visible";
    }
}

function deleteSavedStyle( styleName )
{
    var request = getRequest();
    request.open("get", "saveStyle.do?actionType=delete&styleName=" + styleName, false);
    request.send(null);

    if( request.responseText == "success" )
    {
        var table = document.getElementById( "savedStyleTable" );
        if( table )
        {
            var rows = table.rows;
            var targetRow = "row_" + styleName;
            for( var i = rows.length - 1; i >= 0; --i )
            {
                if( rows[i].id == targetRow )
                {
                    table.deleteRow( i );
                    break;
                }
            }
        }
		document.getElementById( "savedStyleDiv" ).style.display = table.rows.length > 0 ? "" : "none";
    }
}
function showColorWindow(styleId,orderAvailability,userId,regionId ) {
    window.open( "byoConfigurator.do?scratchListId="+styleId+"&filePathAndName=undefined&orderavailability="+orderAvailability+"&userId="+userId+"&regionId="+regionId+"&colorConfigPage=true", "colorWindow", "width=500px, height=600px, toolbar=no, menubar=no,scrollbars=yes,resizable=yes");
}

function getCustomerFriendlyModelsNames(year,divisionid){
	var request = getRequest();
    request.open("get", "getCustomerFriendlyModelsNames.do?modelYear=" + year + "&divisionId=" +divisionid, false);
    request.send(null);
    var UserFriendlyModelNamesSplitted = request.responseText.split("~~");

	var VehicleListSection=document.getElementById( "cBYPvehicleList" );
	var content="<ul>";
	for( var i = 0; i < UserFriendlyModelNamesSplitted.length; i++ ){
       content+='<li id="cBYPg6sedan" class="new">';
       content+="<h4>";
       content+=UserFriendlyModelNamesSplitted[i];
       content+="</h4>";
       var StyleNamesSplitted=getStylesByConsumerFriendlyModelNameAndDivision(UserFriendlyModelNamesSplitted[i],divisionid);
       content+="<ul>";
       for( var j = 0; j < StyleNamesSplitted.length; j++ )
       		{content+='<li id="cBYPg6sedan1SV" class="new">';
       		 content+='<a href="#">';
       		 content+=StyleNamesSplitted[j];
       		 content+='</a>';
       		 content+="</li>";
       }
       content+="</ul>";
       content+="</li>";
     }
	 content+="</ul>";
	 VehicleListSection.innerHTML=content;
}

function getStylesByConsumerFriendlyModelNameAndDivision(modelname,divisionid){
	var request = getRequest();
    request.open("get", "getStyleNamesByConsumerFriendlyModelNameAndDivision.do?modelName=" + modelname + "&divisionId=" +divisionid, false);
    request.send(null);
    var StyleNamesSplitted=request.responseText.split("~~");
    //var StyleNames="Style1~~Style2~~Style3";
    //var StyleNamesSplitted=StyleNames.split("~~");
    return StyleNamesSplitted;
}
function addOperation(chromeCode){
	closeMask();
	toggleOptionJsp(chromeCode,'no');
}

function trackingByoSummary(model, year, vehicleType, vehicleName, fullVehicleName){
	var divisionObj		= BRAND.toLowerCase();
	var modelObj		= model.toLowerCase();
	var vehicleTypeObj	= vehicleType.toLowerCase();
	var vehicleNameObj	= vehicleName.toLowerCase();
	var trackObj = {
		pageName:	divisionObj+': northamerica: usa: nscwebsite: en: index: vehicles: current-vehicles: '+modelObj+': build-your-own: summary',
		events:		'event5',
		prop3:		vehicleTypeObj,
		prop4:		'build-your-own summary',
		eVar7:		vehicleTypeObj,
		prop11:		'current-vehicles',
		prop21:		divisionObj+': northamerica: usa: nscwebsite: en: index: vehicles: current-vehicles: '+modelObj+': build-your-own: summary',
		eVar26:		fullVehicleName,
		prop33:		modelObj+' | build-your-own',
		prop34:		'build-your-own | summary',
		prop35:		modelObj+' | build-your-own | summary'
	};
	clickTrack(trackObj);
}

function showSubmissionAlert(){
	var position = getScreenCenter();
	document.getElementById('submissionAlert').style.left = position.x-200+"px";
	document.getElementById('submissionAlert').style.top = position.y-100+"px";
	document.getElementById('submissionAlert').style.display='block';
}

function trackingOptions(model, vehicleType, optionCode){
	var divisionObj = BRAND.toLowerCase();
	var modelObj = model.toLowerCase();
	var vehicleTypeObj = vehicleType.toLowerCase();
	var codeObj = optionCode.toLowerCase();
	var trackObj = {
		prop3:		vehicleTypeObj,
		prop4:		'build-your-own options',
		eVar7:		vehicleTypeObj,
		prop16:		'build-your-own',
		prop21:		Omniture_s.campaign+Omniture_s.pageName,
		prop27:		'contentarea',
		prop32:		'buick: us: build-your-own: options: '+modelObj+': '+codeObj,
		prop33:		modelObj+' | build-your-own',
		prop34:		'build-your-own | options',
		prop35:		modelObj+' | build-your-own | options'
	}
	clickTrack(trackObj);
}

function changeYearOverride (year){
	var URL = "/vehicles/"+year+"/"+PARAM["brand"]+"/build.do";

	window.location.href = BASE_CONTEXT + URL;
}

var currentHoverOption = "";

function showHover(imagePath,optionCode,styleId,modelId,bodyType,pDesc,uDesc, popupAllStylesTableData, showDetailsLayerImage, useAjax) {

	if (!$('optionHover'+ optionCode)) {
		pDesc = pDesc.replace(/\"/g, '\\\"');
		uDesc = uDesc.replace(/\"/g, '\\\"');

		if (currentHoverOption != "") {
			hideCurrentHover();
		}

		var newDiv = "<div class=\"optionHover\" id=\"optionHover" + optionCode + "\"";
	//	newDiv += "onmouseout=\"hideCurrentHover();\"";
		newDiv += ">";
		newDiv += "<img src=\"" + BASE_CONTEXT + imagePath + "\">";
		newDiv += "<br/>";
		newDiv += "<a href=\"javascript:void(0);\" onclick=\'";
		if (useAjax) {
			newDiv += "showOptionPopUpDetails(";
		} else {
			newDiv += "showOptionPopUpDetailsWithoutAjax(";
		}
		newDiv += "\"" + imagePath + "\"," + "\"" + optionCode + "\",";
		newDiv += "\"" + styleId + "\"," + "\"" + modelId + "\"," + "\"" + bodyType + "\",";
		newDiv += "\"" + pDesc + "\"," + "\"" + uDesc + "\"," + "\"" + popupAllStylesTableData + "\"," + showDetailsLayerImage + ");return false;";

		newDiv += "\'>View Details</a>";
		newDiv += "</div>";
		var optionHoverFrameDiv = $('optionHoverFrame');
		optionHoverFrameDiv.innerHTML = newDiv;
		
		var refObj = $('link'+optionCode);
		var formPosition = getPosition(refObj);

		optionHoverFrameDiv.style.top = (formPosition.y + getHeight(refObj))  + "px";
		optionHoverFrameDiv.style.left = (formPosition.x + 50) + "px";
		optionHoverFrameDiv.style.display="block";
		//$('row' + optionCode).innerHTML += newDiv;
		currentHoverOption = optionCode;
	}
}

function hideCurrentHover() {
	var optionHoverFrameDiv = $('optionHoverFrame');
	optionHoverFrameDiv.style.display="none";
	optionHoverFrameDiv.innerHTML ="";
}

function showEstimateMonthlyPayment(){
	window.location.href = BASE_CONTEXT+'/pages/mds/pricing/estimatepayment.do';
}

function localDealer() {
	window.location.href = '/tools/dealerlocator/result.do?BRANDID='+WEBSITE_ID+'&searchType=ByPostalCode&searchByPostalCodePostalCode='+postalCode+'&searchByPostalCodeProximity=25'
}


