// JavaScript Document

var midNavRestOpacity = 0.4;
var midNavHoverOpacity = 1;
var defaultThumbOpacity = 0.2;
var currentPortfolioIndex = 0;

function setPage()
{
	if (page == "Portfolio")
	{
		if (category != "")
		{
			setToCategory(getID(category));
		}
		else if (portfolioItem != "")
		{
			document.getElementById("wrapper_DIV").removeChild(document.getElementById("midNav_DIV"));
			loadPortfolioItem(portfolio.items[0]);
			setOpacity(document.getElementById("reverseBtnDiv"), 0);
			if (portfolio.items.length <= 1)
			{
				setOpacity(document.getElementById("forwardBtnDiv"), 0);
			}
		}
	}
	else if (page == "Services")
	{
		if (category != "")
		{
			setToCategory(getID(category));
			setDefinition(getID(category));
		}
	}
	else if (page == "Skills")
	{
		if (category != "")
		{
			setSkillCategory(category, skill);
			window.scroll(0, sY);
		}
	}
	document.getElementById(page + "_Low").style.color = "#FFFFFF";
	var X = getX(page);
	document.getElementById(page).style.background = 'url(images/TopNavigation.jpg) ' + X + 'px -60px no-repeat';
}

function loadPortfolioItem(Item)
{
	setOpacity(document.getElementById("portfolioContainer"), 0);
	if (Item.type == "pic")
	{
		setOpacity(document.getElementById("portfolioVideoDiv"), 0);
		document.getElementById("portfolioImage").width = Item.width;
		document.getElementById("portfolioImage").height = Item.height;
		document.getElementById("portfolioImage").src = portfolio.relPath + Item.url;
		document.getElementById("portfolioVideoDiv").innerHTML = "&nbsp;";
	}
	else
	{
		document.getElementById("portfolioImage").src = ""
		document.getElementById("portfolioImage").width = 0;
		document.getElementById("portfolioImage").height = 0;
		
		var str = "<iframe src=\"" + Item.url + "\" width=\"" + Item.width + "\" height=\"" + Item.height + "\" frameborder=\"0\"></iframe>";
		document.getElementById("portfolioVideoDiv").innerHTML = str;
		setOpacity(document.getElementById("portfolioVideoDiv"), 1);
	}
	document.getElementById("portfolioContainer").style.top = 265 - (parseInt(Item.height) / 2) + "px";
	document.getElementById("portfolioContainer").style.left = 470 - (parseInt(Item.width) / 2) + "px";
	document.getElementById("portfolioItemFooterDiv").innerHTML = "Item " + (parseInt(currentPortfolioIndex) + 1) + " of " + portfolio.items.length;
	document.getElementById("portfolioItemTitleDiv").innerHTML = Item.title;
	var delayTime = getBrowserTime();
	setTimeout(showPortfolioItem, delayTime);
}

function getBrowserTime()
{
	var time = 1000;
	if (BrowserDetect == "Safari")
	{
		time = 250;
	}
	return time;
}

function showPortfolioItem()
{
	setOpacity(document.getElementById("portfolioContainer"), 1);
}

function setVideo()
{
	window.alert("Setting " + videoSource);
	document.getElementById("portfolioVideoEmbed").src = videoSource;
}

function nextPortfolioItem()
{
	currentPortfolioIndex ++;
	loadPortfolioItem(portfolio.items[currentPortfolioIndex]);
	if (currentPortfolioIndex + 1 >= portfolio.items.length)
	{
		setOpacity(document.getElementById("forwardBtnDiv"), 0);
	}
	setOpacity(document.getElementById("reverseBtnDiv"), 1);
}

function prevPortfolioItem()
{
	currentPortfolioIndex --;
	loadPortfolioItem(portfolio.items[currentPortfolioIndex]);
	if (currentPortfolioIndex == 0)
	{
		setOpacity(document.getElementById("reverseBtnDiv"), 0);
	}
	setOpacity(document.getElementById("forwardBtnDiv"), 1);
}

function setToCategory(id)
{
	setOpacity(document.getElementById("brainMatter_" + id + "_DIV"), 1);
	setOpacity(document.getElementById("label_" + id + "_DIV"), 1);
	setOpacity(document.getElementById("id_" + id + "_DIV"), 1);
	setOpacity(document.getElementById(getName(id) + "_DIV"), midNavHoverOpacity);
	var categories = "";
	if (page == "Portfolio")
	{
		categories = portfolioCategories;
		for (var i = 0 ; i < portfolioItems.length ; i++)
		{
			var opacity = parseFloat(portfolioItems[i]["relevance_" + getName(id)]);
			if (opacity > 0)
			{
				setOpacity(document.getElementById(portfolioItems[i]["id"]), opacity);
			}
			else
			{
				setOpacity(document.getElementById(portfolioItems[i]["id"]), 0.05);
			}
			document.getElementById("percentage_" + portfolioItems[i]["id"]).innerHTML = (opacity * 100) + "%";
		}
		setOpacity(document.getElementById("portfolioTitleDiv"), 0);
		rampPercentage(getName(id), 100);
	}
	else if (page == "Services")
	{
		categories = serviceCategories;
		setOpacity(document.getElementById("instructionCopy"), 0);
	}
	if (categories != "")
	{
		for (i = 0 ; i < categories.length ; i++)
		{
			if (categories[i] != getName(id))
			{
				setOpacity(document.getElementById(categories[i] + "_DIV"), midNavRestOpacity);
				setOpacity(document.getElementById("brainMatter_" + getID(categories[i]) + "_DIV"), 0);
				setOpacity(document.getElementById("label_" + getID(categories[i]) + "_DIV"), 0);
				setOpacity(document.getElementById("id_" + getID(categories[i]) + "_DIV"), 0);
			}
		}
	}
}

function setSkillCategory(id, skill)
{
	var leftOpacity = id == 'LEFT' ? 1 : 0.1;
	var ctrOpacity = id == 'CTR' ? 1 : 0.1;
	var rightOpacity = id == 'RIGHT' ? 1 : 0.1;
	var technicalOpacity = id == 'LEFT' ? 1 : (id == 'CTR' ? 0.65 : 0.2);
	var creativeOpacity = id == 'RIGHT' ? 1 : (id == 'CTR' ? 0.65 : 0.2);
	setOpacity(document.getElementById("brainMatter_LEFT"), leftOpacity);
	setOpacity(document.getElementById("brainMatter_CTR"), ctrOpacity);
	setOpacity(document.getElementById("brainMatter_RIGHT"), rightOpacity);
	setOpacity(document.getElementById("technicalID_DIV"), technicalOpacity);
	setOpacity(document.getElementById("creativeID_DIV"), creativeOpacity);
	setSkillDefinitions(leftDefinitions, leftOpacity, skill);
	setSkillDefinitions(ctrDefinitions, ctrOpacity, skill);
	setSkillDefinitions(rightDefinitions, rightOpacity, skill);
}

function setSkillDefinitions(category, catOpacity, skill)
{
	for (var i = 0 ; i < category.length ; i++)
	{
		var defOpacity = skill == category[i] ? 1 : (skill == "" ? (catOpacity + 0.4) : 0.5);
		setOpacity(document.getElementById(category[i]), defOpacity);
	}
}

function setScroll(skill)
{
	var ScrollTop = document.body.scrollTop;
 
	if (ScrollTop == 0)
	{
		if (window.pageYOffset)
			ScrollTop = window.pageYOffset;
		else
			ScrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
	}
	var href1 = document.getElementById(skill).href;
	document.getElementById(skill).href = href1 + "&scroll=" + ScrollTop;
}

function rollOver(id , dir)
{
	if (dir == "MidNavBar")
	{
		setToCategory(getID(id));
		setDefinition(getID(id));
	}
	else if (dir == "brainMatter")
	{
		setToCategory(id);
		setDefinition(id);
	}
	else if (dir == "topBrainMatter")
	{
		setSkillCategory(id, "");
	}
	else if (dir == "Portfolio")
	{
		var hoverItem;
		for (var i = 0 ; i < portfolioItems.length ; i++)
		{
			if (portfolioItems[i]["id"] == id)
			{
				setOpacity(document.getElementById(portfolioItems[i]["id"]), 1);
				document.getElementById("percentage_" + portfolioItems[i]["id"]).innerHTML = "";
				hoverItem = portfolioItems[i];
				document.getElementById("portfolioTitleName").innerHTML = portfolioItems[i]["name"];
				document.getElementById("portfolioTitleElement").innerHTML = portfolioItems[i]["year"] == "" ? "n/a" : portfolioItems[i]["year"];
			}
			else
			{
				setOpacity(document.getElementById(portfolioItems[i]["id"]), 0.05);
			}
			setOpacity(document.getElementById("portfolioTitleDiv"), 1);
		}
		if (category == "")
		{
			for (i = 0 ; i < portfolioCategories.length ; i++)
			{
				opacity = parseFloat(hoverItem["relevance_" + portfolioCategories[i]]);
				setOpacity(document.getElementById(portfolioCategories[i] + "_DIV"), 0);
				setOpacity(document.getElementById("brainMatter_" + getID(portfolioCategories[i]) + "_DIV"), opacity);
				setOpacity(document.getElementById("label_" + getID(portfolioCategories[i]) + "_DIV"), opacity);
				setOpacity(document.getElementById("id_" + getID(portfolioCategories[i]) + "_DIV"), opacity);
				rampPercentage(portfolioCategories[i], (opacity * 100));
			}
		}
	}
}

function setDefinition(id)
{
	if (page == "Services")
	{
		document.getElementById("defTitleSpan").innerHTML = serviceDefinitions[id]['title'];
		document.getElementById("defNounSpan").innerHTML = "n.";
		document.getElementById("defPhoneticSpan1").innerHTML = serviceDefinitions[id]['phonetic1'];
		document.getElementById("defPhoneticSpan2").innerHTML = "[" + serviceDefinitions[id]['phonetic2'] + "]";
		document.getElementById("defSpan").innerHTML = serviceDefinitions[id]['definition'];
	}
}

function clearDefinition()
{
	if (page == "Services")
	{
		document.getElementById("defTitleSpan").innerHTML = "";
		document.getElementById("defNounSpan").innerHTML = "";
		document.getElementById("defPhoneticSpan1").innerHTML = "";
		document.getElementById("defPhoneticSpan2").innerHTML = "";
		document.getElementById("defSpan").innerHTML = "";
	}
}

function getName(id)
{
	var name = "";
	if (page == "Portfolio")
	{
		name = id == 0 ? "Design" : (id == 1 ? "Development" : (id == 2 ? "Interactive" : (id == 3 ? "MultiDisplay" : (id == 4 ? "VideoGFX" : "Software"))));
	}
	else if (page == "Services")
	{
		name = id == 0 ? "WebDesign" : (id == 1 ? "WebDevelopment" : (id == 2 ? "GraphicDesign" : (id == 3 ? "MotionGraphics" : (id == 4 ? "VideoEditing" : "SoftwareDesign"))));
	}
	return name;
}

function getID(name)
{
	var id = "";
	if (page == "Portfolio")
	{
		id = name == "Design" ? 0 : (name == "Development" ? 1 : (name == "Interactive" ? 2 : (name == "MultiDisplay" ? 3 : (name == "VideoGFX" ? 4 : 5))));
	}
	else if (page == "Services")
	{
		id = name == "WebDesign" ? 0 : (name == "WebDevelopment" ? 1 : (name == "GraphicDesign" ? 2 : (name == "MotionGraphics" ? 3 : (name == "VideoEditing" ? 4 : 5))));
	}
	return id;
}

function setOpacity(obj, opacity)
{
	if(BrowserDetect.browser != "Internet Explorer")
	{
		obj.style.opacity = opacity;
	}
	else
	{
		obj.filters.alpha.opacity = (opacity * 100);
	}
	obj.style.display = opacity > 0 ? "block" : "none";
	//obj.style.mozOpacity = opacity;
}

function rollOut(id, dir)
{
	var name = dir == "MidNavBar" || dir == "Portfolio" || dir == "Services" ? id : getName(id);
	id = dir == "MidNavBar" ? getID(name) : id;
	var cat = page != "Portfolio" && page != "Services" ? "" : category;
	if ((dir == "MidNavBar" || dir == "brainMatter") && cat != name)
	{
		setOpacity(document.getElementById("brainMatter_" + id + "_DIV"), 0);
		setOpacity(document.getElementById("label_" + id + "_DIV"), 0);
		setOpacity(document.getElementById("id_" + id + "_DIV"), 0);
		setOpacity(document.getElementById(name + "_DIV"), midNavRestOpacity);
		if (page == "Portfolio")
		{
			document.getElementById("percentage_" + id).innerHTML = "0%";
			for (var i = 0 ; i < portfolioItems.length ; i++)
			{
				setOpacity(document.getElementById(portfolioItems[i]["id"]), defaultThumbOpacity);
				document.getElementById("percentage_" + portfolioItems[i]["id"]).innerHTML = "";
			}
			setOpacity(document.getElementById("portfolioTitleDiv"), 0);
		}
		else if (page == "Services")
		{
			setOpacity(document.getElementById("instructionCopy"), 100);
		}
	}
	else if (dir == "topBrainMatter")
	{
		if (category != "")
		{
			setSkillCategory(category, skill);
		}
		else
		{
			setSkillCategory(id, "");
		}
	}
	else if (dir == "Portfolio")
	{
		for (var i = 0 ; i < portfolioItems.length ; i++)
		{
			setOpacity(document.getElementById(portfolioItems[i]["id"]), defaultThumbOpacity);
			document.getElementById("percentage_" + portfolioItems[i]["id"]).innerHTML = "";
		}
		for (i = 0 ; i < portfolioCategories.length ; i++)
		{
			setOpacity(document.getElementById(portfolioCategories[i] + "_DIV"), midNavRestOpacity);
			setOpacity(document.getElementById("brainMatter_" + getID(portfolioCategories[i]) + "_DIV"), 0);
			setOpacity(document.getElementById("label_" + getID(portfolioCategories[i]) + "_DIV"), 0);
			setOpacity(document.getElementById("id_" + getID(portfolioCategories[i]) + "_DIV"), 0);
		}
		setOpacity(document.getElementById("portfolioTitleDiv"), 0);
	}
	clearDefinition();
	if (cat != "")
	{
		setToCategory(getID(cat));
		setDefinition(getID(cat));
	}
}

function getX(name)
{
	var x = name == 'Portfolio' ? 0 :(name == 'About' ? -131 : (name == 'Services' ? -261 : (name == 'Skills' ? -392 : (name == 'Clients' ? -523 : (name == 'Contact' ? -653 : -784)))));
	return x;
}

function rampPercentage(name, target)
{
	var perObj = document.getElementById("percentage_" + getID(name));
	var parObj = document.getElementById("id_" + getID(name) + "_DIV");
	var opacity = BrowserDetect.browser != "Internet Explorer" ? parObj.style.opacity : parseInt(parObj.filters.alpha.opacity) / 100;
	if (opacity > 0)
	{
		currentValue = perObj.innerHTML.slice(0, perObj.innerHTML.length - 1);
		currentValue = parseInt(currentValue) + (userSpeed * 20);
		currentValue = currentValue > target ? target : currentValue;
		if (currentValue < target)
		{
			currentValue = target;
		}
		perObj.innerHTML = currentValue + "%";
	}
}

// determines user's speed

function testSpeed()
{
	var date1 = new Date();
	var time1 = date1.getTime();
	setTimeout(reRun);
	function reRun()
	{
		var date2 = new Date();
		var time2 = date2.getTime();
		var value = (time2 - time1) / 10;
		setUserSpeed(Math.ceil(value));
	}
}

function setUserSpeed(value)
{
	userSpeed = value;
	//window.alert(userSpeed);
	setPage();
}

window.onload = function()
{
	var userSpeed = 1;
	testSpeed();
}

