//
// Javascript Library to Animate Work Preview Images
//

var pageInitState = true;
var workPreviewState = "";

function getEventTarget(e)
{
	var target;
	if(e.target)
		target = e.target;
	else if(e.srcElement)
		target = e.srcElement;
	if(!target) return false;
	if(target.nodeType == 3)
		target = target.parentNode;
	//console.log("Target ID = '" + target.id + "'");
	return target;
}

function findElementY(element)
{
	var elementY = 0;
	if (element.offsetParent)
	{
		while (element.offsetParent)
		{
			elementY += element.offsetTop
			element = element.offsetParent;
		}
	}
	else if (element.y)
		elementY += element.y;
	//console.log("Element at Y position " + elementY + ".");
	return elementY;
}

window.onload = workPreviewSetup;

function workPreviewSetup()
{
	//console.log("Setting up preview event handlers.");

	
	var workPreviewMenu = document.getElementById("workPreviewMenu");
	
	if(!workPreviewMenu) return true;
	
	workPreviewMenu.onmouseover = workPreview_menuEnter;
	workPreviewMenu.onmouseout = workPreview_menuExit;
	
	var linkElement;

	linkElement = document.getElementById("workPreview_skidmarks");
	linkElement.onmouseover = function (e) { workPreview_itemEnter(e, "skidmarks.jpg"); }
	linkElement.onmouseout = workPreview_itemExit;
	
	linkElement = document.getElementById("workPreview_fume");
	linkElement.onmouseover = function (e) { workPreview_itemEnter(e, "fume.jpg"); }
	linkElement.onmouseout = workPreview_itemExit;
	
	linkElement = document.getElementById("workPreview_dirtybomb");
	linkElement.onmouseover = function (e) { workPreview_itemEnter(e, "dirtybomb.jpg"); }
	linkElement.onmouseout = workPreview_itemExit;
	
	linkElement = document.getElementById("workPreview_familyfirst");
	linkElement.onmouseover = function (e) { workPreview_itemEnter(e, "familyfirst.jpg"); }
	linkElement.onmouseout = workPreview_itemExit;
	
	linkElement = document.getElementById("workPreview_freecycle");
	linkElement.onmouseover = function (e) { workPreview_itemEnter(e, "freecycle.jpg"); }
	linkElement.onmouseout = workPreview_itemExit;
	
	linkElement = document.getElementById("workPreview_ohzone");
	linkElement.onmouseover = function (e) { workPreview_itemEnter(e, "ohzone.jpg"); }
	linkElement.onmouseout = workPreview_itemExit;
	
	linkElement = document.getElementById("workPreview_blow");
	linkElement.onmouseover = function (e) { workPreview_itemEnter(e, "blow.jpg"); }
	linkElement.onmouseout = workPreview_itemExit;
	
	linkElement = document.getElementById("workPreview_tocatchakeith");
	linkElement.onmouseover = function (e) { workPreview_itemEnter(e, "tocatchakeith.jpg"); }
	linkElement.onmouseout = workPreview_itemExit;
	
	linkElement = document.getElementById("workPreview_placemats");
	linkElement.onmouseover = function (e) { workPreview_itemEnter(e, "placemats.jpg"); }
	linkElement.onmouseout = workPreview_itemExit;
	
	linkElement = document.getElementById("workPreview_hobartportraitgroup");
	linkElement.onmouseover = function (e) { workPreview_itemEnter(e, "hobartportraitgroup.jpg"); }
	linkElement.onmouseout = workPreview_itemExit;
	
	linkElement = document.getElementById("workPreview_productlines");
	linkElement.onmouseover = function (e) { workPreview_itemEnter(e, "productlines.jpg"); }
	linkElement.onmouseout = workPreview_itemExit;
	
	linkElement = document.getElementById("workPreview_siliconevalley");
	linkElement.onmouseover = function (e) { workPreview_itemEnter(e, "siliconevalley.jpg"); }
	linkElement.onmouseout = workPreview_itemExit;
	
	linkElement = document.getElementById("workPreview_thehouseofsilverfish");
	linkElement.onmouseover = function (e) { workPreview_itemEnter(e, "thehouseofsilverfish.jpg"); }
	linkElement.onmouseout = workPreview_itemExit;
	
	linkElement = document.getElementById("workPreview_terratowel");
	linkElement.onmouseover = function (e) { workPreview_itemEnter(e, "terratowel.jpg"); }
	linkElement.onmouseout = workPreview_itemExit;
	
	return true;
}

function workPreview_menuEnter(e)
{
	if(pageInitState) return false;
	//console.log("workPreview_menuEnter");
	setTimeout("handleEvent_hideWorkDetails()", 200);
	workPreviewState = "inMenu";
	pageInitState = false;
	return false;
}

function workPreview_menuExit(e)
{
	//console.log("workPreview_menuExit");
	setTimeout("handleEvent_displayWorkDetails()", 200);
	workPreviewState = "";
	pageInitState = false;
	return false;
}

function handleEvent_displayWorkDetails()
{
	if(workPreviewState == "inMenu") return false;
	//console.log("handleEvent_displayWorkDetails");
	document.getElementById("workDetails").style.visibility = "visible";
	pageInitState = false;
	return false;
}

function handleEvent_hideWorkDetails()
{
	if(workPreviewState != "inMenu") return false;
	//console.log("handleEvent_hideWorkDetails");
	document.getElementById("workDetails").style.visibility = "hidden";
	pageInitState = false;
	return false;
}

function workPreview_itemEnter(e, imageURL)
{
	if(pageInitState) return false;

	//console.log("workPreview_itemEnter[imageURL = '" + imageURL + "']");

	if(!e) e = window.event;
	
	var localEventTargetY = findElementY(getEventTarget(e));
	document.getElementById("workPreview").style.top = localEventTargetY + "px";
	document.getElementById("workPreviewImage").src =
		"images/workPreview/previewLoading.gif";
	document.getElementById("workPreview").style.visibility = "visible";
	document.getElementById("workPreviewImage").src =
		"images/workPreview/" + imageURL;
	
	workPreviewState = "inMenuItem";

	pageInitState = false;

	return false;
}

function workPreview_itemExit(e)
{
	//console.log("workPreview_itemExit");
	
	if(!e) e = window.event;
	document.getElementById("workPreview").style.visibility = "hidden";
	
	workPreviewState = "inMenu";

	pageInitState = false;
	
	return false;
}
