﻿function Debug(statement) {
	alert(statement);
}

function applyInventoryHover() {
	var tblInventory;
	var tables = document.getElementsByTagName("table");
	for(var x = 0, len = tables.length; x < len; x++) {
		if(tables[x].className.indexOf("inventoryList") !== -1) {
			tblInventory = tables[x];
			break;
		}
	}

	if(tblInventory) {
		var trs = tblInventory.getElementsByTagName("tr");
		var tds;
		for(var r = 0, len = trs.length; r < len; r++) {
			if(trs[r].className == "dataRow") {
				tds = trs[r].getElementsByTagName("td");
				for(var c = 0, cLen = tds.length; c < cLen; c++) {
					if(tds[c].attachEvent) {
						tds[c].attachEvent("onmouseover", rowHover);
						tds[c].attachEvent("onmouseout", rowHoverOut);
						tds[c].attachEvent("onclick", rowClick);
					} else if(tds[c].addEventListener) {
						tds[c].addEventListener("mouseover", rowHover, false);
						tds[c].addEventListener("mouseout", rowHoverOut, false);
						tds[c].addEventListener("click", rowClick, false);
					}
				}
			}
		}
	}
}

function rowHover(evt) {
	evt = evt || window.event;
	var target = evt.target || evt.srcElement;
	var tr = target;
	while(tr.tagName.toLowerCase() !== "tr") {
		tr = tr.parentNode;
	}
	
	var tds = tr.getElementsByTagName("td");
	for(var x = 0, len = tds.length; x < len; x++) {
		//tds[x].className = "hover";
		tds[x].className = tds[x].className + " hover";		
	}
}

function rowHoverOut(evt) {
	evt = evt || window.event;
	var target = evt.target || evt.srcElement;
	var tr = target;
	while(tr.tagName.toLowerCase() !== "tr") {
		tr = tr.parentNode;
	}
	
	var tds = tr.getElementsByTagName("td");
	for(var x = 0, len = tds.length; x < len; x++) {
		//tds[x].className = "";
		var s = tds[x].className.replace("hover", "");
		tds[x].className = s;
	}
}

function rowClick(evt) {
	evt = evt || window.event;
	var target = evt.target || evt.srcElement;
	var tr = target;
	while(tr.tagName.toLowerCase() !== "tr") {
		tr = tr.parentNode;
	}

	var links = tr.getElementsByTagName("a");
	window.location.href = links[0].href;
}

function setupMap() {
	var strDealerName = document.getElementById("hdnMapDealerName").value;
	var strStreetAddress = document.getElementById("hdnMapAddress").value;
	var strPhoneNumber = document.getElementById("hdnMapPhoneNumber").value;
	var arrLatLong = document.getElementById("hdnMapLatLong").value.split(", ");
	var map = null;
	map = new VEMap('map');
	map.SetDashboardSize(VEDashboardSize.Normal);
	map.LoadMap(new VELatLong(arrLatLong[0],arrLatLong[1]), 14);
	
	var shape = new VEShape(VEShapeType.Pushpin, map.GetCenter());
	shape.SetTitle("<h3>" + strDealerName + "</h3>");
	shape.SetDescription("<p>" + strStreetAddress + "<br />" + strPhoneNumber + "</p>");
	map.AddShape(shape);
	//map.ShowInfoBox(shape);
}

function createEquipmentToggle() {
	var obj = document.getElementById('vehicle-spec');
	if (obj != null) {
		obj.style.display = 'none';
	}
}

function displayEquipment(evt) {
	evt = evt || window.event;
	var target = evt.target || evt.srcElement;
	
	document.getElementById("lnkViewEquipment").style.display = "none";
	document.getElementById("equipment").style.display = "block";
	
	evt.cancelBubble = true;
	evt.returnValue = false;
	
	if(evt.stopPropagation) {
		evt.stopPropagation();
		evt.preventDefault();
	}
}

function setupModelLinks() {
	if(document.getElementById("lnkVehicleInterior")) {
		var lnkVehicleInterior = document.getElementById("lnkVehicleInterior");
		var lnkVehicleExterior = document.getElementById("lnkVehicleExterior");
		var lnkColorPalette = document.getElementById("lnkColorPalette");
		
		if(window.attachEvent) {
			lnkVehicleInterior.attachEvent("onclick", showInteriorImages);
			lnkVehicleExterior.attachEvent("onclick", showExteriorImages);
			lnkColorPalette.attachEvent("onclick", showColorPalette);
		} else if(window.addEventListener) {
			lnkVehicleInterior.addEventListener("click", showInteriorImages, false);
			lnkVehicleExterior.addEventListener("click", showExteriorImages, false);
			lnkColorPalette.addEventListener("click", showColorPalette, false);
		}
	}
}

function cancelEvent(evt) {
	evt.returnValue = false;
	evt.cancelBubble = true;
	if(evt.stopPropagation) {
		evt.stopPropagation();
		evt.preventDefault();
	}
}

function getMakeModelName() {
	//var h1 = document.getElementById("main-content").getElementsByTagName("h1")[0];
	var h1 = document.getElementById('hdnTitle');
	//var strTitle = h1.innerHTML.substr(19);
	var strTitle = h1.value;//.substr(19);
	//strTitle = strTitle.substr(0, strTitle.length - 1);
	return strTitle;
}

function showInteriorImages(evt) {
	evt = evt || window.event;
	var path = "http://assets.clickmotive.com/ail/interior_036_swf_480/" + document.getElementById("hdnVIF").value + "_in036_480.swf";
	showFlashMovie(path, getMakeModelName() + " Interior 360 Images", 480, 360);
	cancelEvent(evt);
}

function showExteriorImages(evt) {
	evt = evt || window.event;
	
	var path = "http://assets.clickmotive.com/ail/exterior_036_swf_480/" + document.getElementById("hdnVIF").value + "_ex036_480.swf";
	showFlashMovie(path, getMakeModelName() + " Exterior 360 Images", 480, 360);
	cancelEvent(evt);
}

function showColorPalette(evt) {
	evt = evt || window.event;
	
	var divCover = createCover();
	
	var divColors = document.getElementById("color-palette");
	divCover.colors = divColors;
	divColors.style.display = "block";
	divColors.style.border = "5px solid #333333";
	divColors.style.top = "150px";
	divColors.style.left = (divCover.clientWidth / 2 - divColors.clientWidth / 2) + "px";
	divColors.style.zIndex = 11000;
	
	var divHeader = createHeader(getMakeModelName() + " Color Palette", divColors);
	divCover.header = divHeader;
	
	var divFooter = createFooter(divColors.clientHeight, divColors);
	divCover.footer = divFooter;
	
	cancelEvent(evt);
}

function removeCover(evt) {
	var target = document.getElementById("back-cover");
	var ddls = document.getElementsByTagName("select");
	
	for(var y = 0, len = ddls.length; y < len; y++) {
		ddls[y].style.visibility = "visible";
	}
	
	if(target.movie) target.parentNode.removeChild(target.movie, true);
	if(target.header) target.parentNode.removeChild(target.header, true);
	if(target.footer) target.parentNode.removeChild(target.footer, true);
	if(target.colors) target.colors.style.display = "none";
	target.parentNode.removeChild(target, true);
}

function createCover() {

	var ddls = document.getElementsByTagName("select");
	for(var x = 0, len = ddls.length; x < len; x++) {
		ddls[x].style.visibility = "hidden";
	}

	document.documentElement.style.position = "relative";
	
	var bodyWidth = document.documentElement.clientWidth;
	var bodyHeight = document.documentElement.clientHeight;
	
	if(window.opera) {
		bodyWidth = document.body.clientWidth;
		bodyHeight = document.body.clientHeight;
	}
	
	var divCover = document.createElement("div");
	divCover.id = "back-cover";
	if(divCover.attachEvent) {
		divCover.attachEvent("onclick", removeCover);
	} else if(divCover.addEventListener) {
		divCover.addEventListener("click", removeCover, false);
	}
	
	divCover.style.position = "absolute";
	divCover.style.backgroundColor = "#000000";
	var opacity = 40;
	divCover.style.opacity = divCover.style.MozOpacity = divCover.style.KhtmlOpacity = opacity/100;
	divCover.style.filter = "alpha(opacity=" + opacity + ")";
	divCover.style.width = bodyWidth + "px";
	divCover.style.height = bodyHeight + "px";
	divCover.style.top = "0";
	divCover.style.left = "0";
	divCover.style.cursor = "pointer";
	divCover.style.zIndex = 10000;
	document.body.appendChild(divCover);
	
	return divCover;
}

function showFlashMovie(movie, title, width, height, vars) {
	if(!width) { width = 400; }
	if(!height) { height = 300; }
	if(!vars) { vars = ""; }
	
	var divCover = createCover();
	var divMovie = document.createElement("div");
	
	divMovie.style.border = "5px solid #000000";
	divMovie.style.position = "absolute";
	divMovie.style.top = "150px";
	divMovie.style.left = (divCover.clientWidth / 2 - width / 2) + "px";
	divMovie.style.width = width;
	divMovie.style.height = height;
	divMovie.style.zIndex = 11000;
	
	var strMovie = movie;
	var strParams =
		"<param name=\"menu\" value=\"false\" />"
		+ "<param id=\"FlashVars\" name=\"FlashVars\" value=\"" + vars + "\" />";
	var strMovieHTML = "<object type=\"application/x-shockwave-flash\" data=\"" + strMovie + "\" width=\"" + width + "\" height=\"" + height + "\">" + strParams + "</object>";
	
	/*@cc_on
		strMovieHTML = "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0\" width=\"" + width + "\" height=\"" + height + "\">"
		+ "<param name=\"movie\" value=\"" + strMovie + "\" />"
		+ strParams
		+ "</object>";
	@*/
	
	divMovie.innerHTML = strMovieHTML;
	document.body.appendChild(divMovie);
	divCover.movie = divMovie;
	
	var divMovieHeader = createHeader(title, divMovie);
	divCover.header = divMovieHeader;
	
	var divMovieFooter = createFooter(height, divMovie);
	divCover.footer = divMovieFooter;
}

function createHeader(title, divMovie) {
	var divMovieHeader = document.createElement("div");
	divMovieHeader.style.position = "absolute";
	divMovieHeader.style.top = "120px";
	divMovieHeader.style.left = divMovie.style.left;
	divMovieHeader.style.height = "30px";
	divMovieHeader.style.width = divMovie.style.width;
	divMovieHeader.style.zIndex = 12000;
	
	var h1Title = document.createElement("h1");
	h1Title.style.color = "#FFFFFF";
	h1Title.style.float = "left";
	h1Title.style.margin = "0";
	h1Title.style.padding = "0";
	h1Title.innerHTML = title;
	divMovieHeader.appendChild(h1Title);
	document.body.appendChild(divMovieHeader);
	
	return divMovieHeader;
}

function createFooter(height, divMovie) {
	var divMovieFooter = document.createElement("div");
	divMovieFooter.innerHTML = "Close [x]";
	divMovieFooter.style.position = "absolute";
	divMovieFooter.style.top = (150 + height + 15) + "px";
	divMovieFooter.style.left = divMovie.style.left;
	divMovieFooter.style.width = divMovie.style.width;
	divMovieFooter.style.zIndex = 13000;
	divMovieFooter.style.color = "#FFFFFF";
	divMovieFooter.style.textAlign = "right";
	divMovieFooter.style.cursor = "pointer";
	document.body.appendChild(divMovieFooter);
	
	if(divMovieFooter.attachEvent) {
		divMovieFooter.attachEvent("onclick", removeCover);
	} else if(divMovieFooter.addEventListener) {
		divMovieFooter.addEventListener("click", removeCover, false);
	}
	
	return divMovieFooter;
}

function setMainImage(imageURL) {
	var heroshot;
	if(document.getElementById("heroshot")) {
		heroshot = document.getElementById("heroshot").getElementsByTagName("img")[0];
	} else {
		heroshot = document.getElementById("main-photo").getElementsByTagName("img")[0];
	}
	heroshot.src = imageURL;
}

function fixEolasStupidity() {
	var is = document.getElementById("ImageSlider");
	if(is && is.outerHTML) {
		var strHTML = is.outerHTML;
		
		var params = is.getElementsByTagName("param");
		var flashVars = "";
		for(var x = 0, len = params.length; x < len; x++) {
			if(params[x].name.toLowerCase() == "flashvars") {
				flashVars = params[x].value;
			}
		}
		
		strHTML = strHTML.replace(/<param name="FlashVars" value="">/ig, "<param name=\"FlashVars\" value=\"" + flashVars + "\">");
		is.outerHTML = strHTML;
	}
}

function createDropdown() {
	var menuEls = document.getElementById("navigation").getElementsByTagName("li");
	for(var x = 0, len = menuEls.length; x < len; x++) {
		menuEls[x].onmouseover = function() {
			offsetMenu(this);
			//this.className = "hover";
			this.className = this.className + " hover";			
		}
		menuEls[x].onmouseout = function() {
			//this.className = "";
			var s = this.className.replace("hover", "");
			this.className = s;
		}
	}
}


function offsetMenu(obj)
{
	var elements = obj.getElementsByTagName('ul');
    //var elements = getElementsByClass('subItemContainer', obj, 'ul');
    for(i = 0; i < elements.length; i++)
    {
		if (elements[i].className.toUpperCase() == 'SUBMENUITEM')
		{
			if (elements[i].parentNode == obj)
			{
				if (elements[i].parentNode.tagName.toUpperCase() == "LI")
				{
//					if (obj.offsetTop == 0)
//					{
						var offset = 0;
						
						for (j=0; j<obj.parentNode.childNodes.length; j++)
						{
							if ((obj.parentNode.childNodes[j].tagName) && (obj.parentNode.childNodes[j].tagName.toUpperCase() == "LI"))
							{
								if (obj.parentNode.childNodes[j] == obj)
								{
									break;
								}
								else
								{
									offset += 1;
								}
							}
						}
						elements[i].style.top = ((offset * 20) + 20) + "px";
//					}
//					else
//					{
//						elements[i].style.top = obj.offsetTop + "px";
//					}
				}
			}
		}
    }
}


function startup() {
	var url = window.location.pathname.substr(window.location.pathname.lastIndexOf("/") + 1).toLowerCase();
	switch(url) {
		case "inventorysearch.aspx":
			applyInventoryHover();
			break;
		case "maplocation.aspx":
			setupMap();
			break;
		case "vehicle.aspx":
			createEquipmentToggle();
			break;
		case "default.aspx":
			setupModelLinks();
			break;
	}
	
	createDropdown();
	fixEolasStupidity();
}
