var keyreg = /\[key\]/gi;
var displayreg = /\[display\]/gi;
var urlreg = /\[url\]/gi;

function openPopup (theurl) {
	window.open(theurl, '', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=530,top=10,left=10');
}

function openPopupSpecify (theurl,thewidth,theheight) {
	window.open(theurl, '', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width='+thewidth+',height='+theheight+',top=10,left=10');
}

function writeAreaNav () {
	//code for guided mode
	var areastyletemp;
	var lastareastyletemp;
	var selectedareastyletemp;
	var lastselectedareastyletemp;
	
		if (modetype == "guided")
		{
			areastyletemp = disableareastyle;
			lastareastyletemp = disablelastareastyle;
			selectedareastyletemp = disableselectedareastyle;
			lastselectedareastyletemp = disablelastselectedareastyle;
		}
		else
		{
			areastyletemp = areastyle;
			lastareastyletemp = lastareastyle;
			selectedareastyletemp = selectedareastyle;
			lastselectedareastyletemp = lastselectedareastyle;
		}
		
	//end guided mode	
	
	var towrite = "";
	for (var i = 0; i < areaarray.length; i++) {
		if (i == (areaarray.length - 1)) towrite = (currentarea == areaarray[i][0]) ? lastselectedareastyletemp : lastareastyletemp;
		else towrite = (currentarea == areaarray[i][0]) ? selectedareastyletemp : areastyletemp;
		towrite = towrite.replace(displayreg, areaarray[i][1]);
		towrite = towrite.replace(urlreg, "window.location='" + areaarray[i][2] + "';");
		towrite = towrite.replace(/:/g, "%3A");
		towrite = towrite.replace(keyreg, areaarray[i][0]);
		if (((showallpages) || (currentarea == areaarray[i][0])) && (towrite.indexOf("[pages]") != -1)) {
			document.write(towrite.substring(0, towrite.indexOf("[pages]")));
			writePageNav(areaarray[i][0]);
			document.write(towrite.substring((towrite.indexOf("[pages]") + 7), towrite.length));
		}
		else document.write(towrite);
	}
}

function writePageNav (whicharea) {
	//code for guided mode
	var pagestyletemp;
	var lastpagestyletemp;
		
		if (modetype == "guided")
		{
			pagestyletemp = disablepagestyle;
			lastpagestyletemp = disablelastpagestyle;
		}
		else
		{
			pagestyletemp = pagestyle;
			lastpagestyletemp = lastpagestyle;
		}
	//end guided mode	
	
	var towrite = "";
	var popstr = "";
	var thisareapagearray = new Array();
	for (var i = 0; i < pagearray.length; i++) {
		if (pagearray[i][0] == whicharea) thisareapagearray[thisareapagearray.length] = pagearray[i];
	}
	if (whicharea == "NVS") {
		for (var i = 0; i < thisareapagearray.length; i++) {
			switch (thisareapagearray[i][1]) {
				case "NVSearchResult":
				case "NVZeroSearchResult":
				case "NVDtl":
				case "NVModDtlStart":
					var arr1 = thisareapagearray.slice(0,i);
					var arr2 = thisareapagearray.slice(i+1);
					thisareapagearray = arr1.concat(arr2);
					i--;
					break;
			}
		}
	} else if (whicharea == "UVS") {
		for (var i = 0; i < thisareapagearray.length; i++) {
			switch (thisareapagearray[i][1]) {
				case "UVSearchResult":
				case "UVZeroSearchResult":
				case "UVDtl":
				case "CADCPOVehDtl":
				case "GMCertUVDtl":
					var arr1 = thisareapagearray.slice(0,i);
					var arr2 = thisareapagearray.slice(i+1);
					thisareapagearray = arr1.concat(arr2);
					i--;
					break;
			}
		}
	} else if (whicharea == "AboutUs") {
		for (var i = 0; i < thisareapagearray.length; i++) {
			switch (thisareapagearray[i][1]) {
				case "MeetOurTeamDtl":
				case "NewsAndEventDtl":
					var arr1 = thisareapagearray.slice(0,i);
					var arr2 = thisareapagearray.slice(i+1);
					thisareapagearray = arr1.concat(arr2);
					i--;
					break;
			}
		}
	} else if (whicharea == "Finance") {
		for (var i = 0; i < thisareapagearray.length; i++) {
			if ((thisareapagearray[i][1] == "InsuranceDetail") || (thisareapagearray[i][1] == "ProtectYourVehicleDetail")) {
				var arr1 = thisareapagearray.slice(0,i);
					var arr2 = thisareapagearray.slice(i+1);
					thisareapagearray = arr1.concat(arr2);
				i--;
			}
		}
	} else if (whicharea == "Service") {
		for (var i = 0; i < thisareapagearray.length; i++) {
			if (thisareapagearray[i][1] == "ServiceDetail") {
				var arr1 = thisareapagearray.slice(0,i);
					var arr2 = thisareapagearray.slice(i+1);
					thisareapagearray = arr1.concat(arr2);
				i--;
			}
		}
	} else if (whicharea == "Parts") {
		for (var i = 0; i < thisareapagearray.length; i++) {
			if (thisareapagearray[i][1] == "PartsDtl") {
				var arr1 = thisareapagearray.slice(0,i);
					var arr2 = thisareapagearray.slice(i+1);
					thisareapagearray = arr1.concat(arr2);
				i--;
			}
		}
	} else if (whicharea == "Accessories") {
		for (var i = 0; i < thisareapagearray.length; i++) {
			if (thisareapagearray[i][1] == "AccessoriesDetail") {
				var arr1 = thisareapagearray.slice(0,i);
					var arr2 = thisareapagearray.slice(i+1);
					thisareapagearray = arr1.concat(arr2);
				i--;
			}
		}
	}
	for (var i = 0; i < thisareapagearray.length; i++) {
		if (i == (thisareapagearray.length - 1)) towrite = (currentpage == thisareapagearray[i][1]) ? lastselectedpagestyle : lastpagestyletemp;
		else towrite = (currentpage == thisareapagearray[i][1]) ? selectedpagestyle : pagestyletemp;
		towrite = towrite.replace(displayreg, thisareapagearray[i][2]);
		var pos = thisareapagearray[i][3].indexOf("http://");
		if (pos == -1) {
			thisareapagearray[i][3] = (thisareapagearray[i][3].replace(/:/g, "%3A"));
		}
		else {
		 thisareapagearray[i][3] = ("http://" + (thisareapagearray[i][3].substr(pos + 7).replace(/:/g, "%3A")));
		}
		popstr = "javascript:openPopup('" + thisareapagearray[i][3] + "');";
		towrite = (thisareapagearray[i][4]) ? towrite.replace(urlreg, popstr) : towrite.replace(urlreg, thisareapagearray[i][3]);
		towrite = towrite.replace(keyreg, thisareapagearray[i][1]);
		document.write(towrite);
	}
}

function writeDealerDefHeader (whicharea) {
	var towrite = "";
	var popstr = "";
	var thisareapagearray = new Array();
	for (var i = 0; i < pagearray.length; i++) {
		if (pagearray[i][0] == whicharea) thisareapagearray[thisareapagearray.length] = pagearray[i];
	}
	for (var i = 0; i < thisareapagearray.length; i++) {
		if (currentpage == thisareapagearray[i][1]) {
			towrite = dealerdefheaderstyle;
			towrite = towrite.replace(displayreg, thisareapagearray[i][2]);
			document.write(towrite);
		}
	}
}

function writeBLevelHeader (whicharea) {
	var towrite = "";
	var popstr = "";
	var thisareapagearray = new Array();
	for (var i = 0; i < pagearray.length; i++) {
		if (pagearray[i][0] == whicharea) thisareapagearray[thisareapagearray.length] = pagearray[i];
	}
	for (var i = 0; i < thisareapagearray.length; i++) {
		if (currentpage == thisareapagearray[i][1]) {
			towrite = blevelheaderstyle;
			towrite = towrite.replace(displayreg, thisareapagearray[i][2]);
			document.write(towrite);
		}
	}
}

function writeToolNav () {
	//code for guided mode
	var toolstyletemp;
	var lasttoolstyletemp;
	var selectedtoolstyletemp;
	var lastselectedtoolstyletemp;
	
		if (modetype == "guided")
		{
			toolstyletemp = disabletoolstyle;
			lasttoolstyletemp = disablelasttoolstyle;
			selectedtoolstyletemp = disableselectedtoolstyle;
			lastselectedtoolstyletemp = disablelastselectedtoolstyle;
		}
		else
		{
			toolstyletemp = toolstyle;
			lasttoolstyletemp = lasttoolstyle;
			selectedtoolstyletemp = selectedtoolstyle;
			lastselectedtoolstyletemp = lastselectedtoolstyle;
		}
	//end guided mode
	
	var towrite = "";
	var popstr = "";
	for (var i = 0; i < toolarray.length; i++) {
		if (i == (toolarray.length - 1)) towrite = (currenttool == toolarray[i][0]) ? lastselectedtoolstyletemp : lasttoolstyletemp;
		else towrite = (currenttool == toolarray[i][0]) ? selectedtoolstyletemp : toolstyletemp;
		towrite = towrite.replace(displayreg, toolarray[i][1]);
		if ((toolarray[i][0] == "GMACCredit") || (toolarray[i][0] == "PaymentEstimator") || (toolarray[i][0] == "AffordabilityCalculator")){
			popstr = "openPopupSpecify('" + toolarray[i][2] + "','585','495');";
		} else {
			popstr = "openPopup('" + toolarray[i][2] + "');";
		}
		towrite = (toolarray[i][3]) ? towrite.replace(urlreg, popstr) : towrite.replace(urlreg, "window.location='" + toolarray[i][2] + "';");
		towrite = towrite.replace(/:/g, "%3A");
		towrite = towrite.replace(keyreg, toolarray[i][0]);
		if (toolarray[i][0] == "RequestBestPrice") {
			if (modetype == "guided") {
			towrite = ('<option value="void(0)">Request A Quote</option><option value="void(0)">Hold This Vehicle</option><option value="void(0)">Schedule a Test Drive</option>');
			}
			else {
			towrite = ('<option value="' + popstr + '">Request A Quote</option><option value="' + popstr + '">Hold This Vehicle</option><option value="' + popstr + '">Schedule a Test Drive</option>');
			}
		towrite = towrite.replace("Request A Quote/Hold This Vehicle/Schedule a Test Drive", towrite);
		}
		document.write(towrite);
	}
}

function writeInlineToolNav () {
	//code for guided mode
	var inlinetoolstyletemp;
	var lastinlinetoolstyletemp;
	
		if (modetype == "guided")
		{
			inlinetoolstyletemp = disableinlinetoolstyle;
			lastinlinetoolstyletemp = disablelastinlinetoolstyle;
		}
		else
		{
			inlinetoolstyletemp = inlinetoolstyle;
			lastinlinetoolstyletemp = lastinlinetoolstyle;
		}
	//end guided mode
	
	var towrite = "";
	var popstr = "";
	var img_name = "";
	var key_val = "";
	var found = false;
	for (var j = 0; j < writeInlineToolNav.arguments.length; j++) {
		img_name = (writeInlineToolNav.arguments[j].indexOf(",") != -1) ? writeInlineToolNav.arguments[j].split(",")[1] : writeInlineToolNav.arguments[j];
		key_val = (writeInlineToolNav.arguments[j].indexOf(",") != -1) ? writeInlineToolNav.arguments[j].split(",")[0] : writeInlineToolNav.arguments[j];
		if (j == (writeInlineToolNav.arguments.length - 1)) towrite = lastinlinetoolstyletemp;
		else towrite = inlinetoolstyletemp;
		for (var i = 0; i < toolarray.length; i++) {
			if (key_val == toolarray[i][0]) {
				found = true;
				towrite = towrite.replace(displayreg, toolarray[i][1]);
				if ((toolarray[i][0] == "GMACCredit") || (toolarray[i][0] == "PaymentEstimator") || (toolarray[i][0] == "AffordabilityCalculator")){
					popstr = "javascript:openPopupSpecify('" + toolarray[i][2] + "','585','495');";
				} else {
					popstr = "javascript:openPopup('" + toolarray[i][2] + "');";
				}
				towrite = (toolarray[i][3]) ? towrite.replace(urlreg, popstr) : towrite.replace(urlreg, toolarray[i][2]);
				towrite = towrite.replace(keyreg, img_name);
				document.write(towrite);
				i = toolarray.length;
			}
		}
		if (!found) {
			for (var i = 0; i < pagearray.length; i++) {
				if (key_val == pagearray[i][1]) {
					found = true;
					towrite = towrite.replace(displayreg, pagearray[i][2]);
					popstr = "javascript:openPopup('" + pagearray[i][3] + "');";
					towrite = (pagearray[i][4]) ? towrite.replace(urlreg, popstr) : towrite.replace(urlreg, pagearray[i][3]);
					towrite = towrite.replace(keyreg, img_name);
					document.write(towrite);
					i = pagearray.length;
				}
			}
		}
		found = false;
	}
}

function writeFooter () {
	var footerstyletemp;
	var lastfooterstyletemp;
	var towrite = "";
	var popstr = "";
	var footerarray = new Array();
	for (var i = 0; i < pagearray.length; i++) {
		if (pagearray[i][0] == "Footer") footerarray[footerarray.length] = pagearray[i];
	}
	for (var i = 0; i < footerarray.length; i++) {
	//code for guided mode
		if ((modetype == "guided") && ((footerarray[i][2] == "Site Map") || (footerarray[i][2] == "Links")))
		{
			footerstyletemp = disablefooterstyle;
			lastfooterstyletemp = disablelastfooterstyle;
		}
		else
		{
			footerstyletemp = footerstyle;
			lastfooterstyletemp = lastfooterstyle;
		}
	//end guided mode
		if (i == (footerarray.length - 1)) towrite = lastfooterstyletemp;
		else towrite = footerstyletemp;
		towrite = towrite.replace(displayreg, footerarray[i][2]);
		popstr = "javascript:openPopup('" + (footerarray[i][3].replace(/:/g, "%3A")) + "');";
		towrite = (footerarray[i][4]) ? towrite.replace(urlreg, popstr) : towrite.replace(urlreg, footerarray[i][3]);
		towrite = towrite.replace(keyreg, footerarray[i][1]);
		document.write(towrite);
	}
}

function writeSiteMap (numcols) {
	//code for guided mode
	var sitemappagestyletemp;
	
		if (modetype == "guided")
		{
			sitemappagestyletemp = disablesitemappagestyle;
		}
		else
		{
			sitemappagestyletemp = sitemappagestyle;
		}
	//end guided mode
	
	var towrite = "";
	var pagetowrite = "";
	var completestr = "";
	var popstr = "";
	var colwidth = Math.round((100 / numcols));
	completestr  = "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" width=\"100%\">";
	for (var i = 0; i < areaarray.length; i++) {
		if ((i % numcols) == 0) completestr += "<tr valign=\"top\">";
		towrite = sitemapareastyle;
		towrite = towrite.replace(displayreg, areaarray[i][1]);
		towrite = towrite.replace(urlreg, areaarray[i][2]);
		towrite = towrite.replace(keyreg, areaarray[i][0]);
		if (towrite.indexOf("[pages]") != -1) {
			completestr += "<td width=\"" + colwidth + "%\">" + towrite.substring(0, towrite.indexOf("[pages]"));
			for (var j = 0; j < pagearray.length; j++) {
				if (pagearray[j][0] == areaarray[i][0]) {
					var printit = true;
					switch (areaarray[i][0]) {
						case "NVS":
							switch (pagearray[j][1]) {
								case "NVSearchResult":
									printit = false;
									break;
								case "NVZeroSearchResult":
									printit = false;
									break;
								case "NVDtl":
									printit = false;
									break;
								case "NVModDtlStart":
									printit = false;
									break;
							}
						case "UVS":
							switch (pagearray[j][1]) {
								case "UVSearchResult":
									printit = false;
									break;
								case "UVZeroSearchResult":
									printit = false;
									break;
								case "UVDtl":
									printit = false;
									break;
								case "CADCPOVehDtl":
									printit = false;
									break;
								case "GMCertUVDtl":
									printit = false;
									break;
							}
						case "AboutUs":
							switch (pagearray[j][1]) {
								case "MeetOurTeamDtl":
									printit = false;
									break;
								case "NewsAndEventDtl":
									printit = false;
									break;
							}
						case "Finance":
							switch (pagearray[j][1]) {
								case "InsuranceDetail":
									printit = false;
									break;
								case "ProtectYourVehicleDetail":
									printit = false;
									break;
							}
						case "Service":
							switch (pagearray[j][1]) {
								case "ServiceDetail":
									printit = false;
									break;
							}
						case "Parts":
							switch (pagearray[j][1]) {
								case "PartsDtl":
									printit = false;
									break;
							}
						case "Accessories":
							switch (pagearray[j][1]) {
								case "AccessoriesDetail":
									printit = false;
									break;
							}
						break;
					}
					if (printit) {
						pagetowrite = sitemappagestyle;
						pagetowrite = pagetowrite.replace(displayreg, pagearray[j][2]);
						popstr = "javascript:openPopup('" + pagearray[j][3] + "');";
						pagetowrite = (pagearray[j][4]) ? pagetowrite.replace(urlreg, popstr) : pagetowrite.replace(urlreg, pagearray[j][3]);
						pagetowrite = pagetowrite.replace(keyreg, pagearray[j][1]);
						completestr += pagetowrite;
					}
				}
			}
			completestr += towrite.substring((towrite.indexOf("[pages]") + 7), towrite.length) + "</td>";
		}
		else completestr +="<td width=\"" + colwidth + "%\">" + towrite + "</td>";
		if ((i % numcols) == 1) completestr += "</tr><tr><td colspan=\"" + numcols + "\">&nbsp;</td></tr>";
	}
	completestr += "</table>";
	document.write(completestr);
}

function getQueryValue (which) {
	var query_array = document.location.search.substr(1).split("&")
	if (query_array[0] != "") {
		for (var i = 0; i < query_array.length; i++) {
			query_array[i] = query_array[i].split("=");
		}
		for (var i = (query_array.length - 1); i >= 0; i--) {
			if (query_array[i][0] == which) {
				return query_array[i][1];
			}
		}
	}
	return "";
}

var currentareaquery = getQueryValue("navArea");

//------------------------------------------------

//nav rollovers

if (document.images) {	
	image_on = new Image(); image_on.src = dealerpath + "/images/subnav_arrow.gif";
	image_off = new Image(); image_off.src = dealerpath + "/images/spacer.gif";
}	

function changeImages(imageName, imageState) {
	if (document.images) {
		eval("document.images." + imageName + ".src = " + imageState + ".src");
	}
}

//---------------------------------------------------

