function loadMenu()
{
	var menuChildren = document.getElementById('menuContainer').getElementsByTagName("a");

	for(var i=0; i < menuChildren.length; i++)
	{
		if(menuChildren[i].parentNode.className != 'activeMenu')
		{
			menuChildren[i].onmouseover=function(){
				this.parentNode.className="activeMenu";
				this.parentNode.getElementsByTagName("img")[0].src="images/nav_cap.jpg";
			};

			menuChildren[i].onmouseout=function(){
				this.parentNode.className="";
				this.parentNode.getElementsByTagName("img")[0].src="images/pixel.gif";
			};
		}
	}
}

var scrollFlag="stop";

function startScroll(scrollDir,scrollContainer)
{
	if(scrollFlag != "start")
	{
		scrollFlag="start";
		document.onmouseup=function(){stopScroll();};
		doScroll(scrollDir,scrollContainer);
	}
}

function stopScroll()
{
	scrollFlag="stop";
}

function doScroll(scrollDir,scrollContainer)
{
	if(scrollFlag != "stop")
	{
		if(scrollDir=="left")
			document.getElementById(scrollContainer).scrollLeft += -5;
		else
			document.getElementById(scrollContainer).scrollLeft += 5;

		setTimeout("doScroll('" + scrollDir + "','" + scrollContainer + "');",50);
	}
}

var borderSize=10;

function hidePortfolio()
{
	document.getElementById('portfolioDisplay').style.display="none";
	document.getElementById('portfolioImg').style.display="none";
	document.getElementById('portfolioClientDetailsContainer').style.display="none";
	// We use the scriptaculous library for the nice fading out effect
	new Effect.Fade('dimContainer', { duration: 0.4});
}

function displayPortfolio(portfolioType,portfolioID)
{
	var dimContainerObj, focusContainerObj, portfolioDisplayObj, portfolioImgObj;

	var pageDims = getPageDims();

	if(! document.getElementById('dimContainer'))
	{
		dimContainerObj = document.createElement("DIV");
		dimContainerObj.id = "dimContainer";
		dimContainerObj.className = "dimContainerCSS";
		dimContainerObj.style.display = "none";
		dimContainerObj.onclick = function(){
			hidePortfolio();
		};
		document.getElementsByTagName("body").item(0).appendChild(dimContainerObj);

		focusContainerObj = document.createElement("DIV");
		focusContainerObj.id = "focusContainer";
		focusContainerObj.className = "focusContainerCSS";
		focusContainerObj.onclick = function(e){
			if (!e) var e = window.event;
			var clickObj = Event.element(e).id;
			if (clickObj == 'focusContainer')
				hidePortfolio();
		};
		document.getElementsByTagName("body").item(0).appendChild(focusContainerObj);

		portfolioDisplayObj = document.createElement("DIV");
		portfolioDisplayObj.id = "portfolioDisplay";
		portfolioDisplayObj.className = "portfolioDisplay";
		document.getElementById('focusContainer').appendChild(portfolioDisplayObj);

		portfolioImgObj = document.createElement("IMG");
		portfolioImgObj.id="portfolioImg";
		portfolioImgObj.style.display="none";
		document.getElementById('portfolioDisplay').appendChild(portfolioImgObj);
	}
	else
	{
		dimContainerObj = document.getElementById('dimContainer');
		focusContainerObj = document.getElementById('focusContainer');
		portfolioDisplayObj = document.getElementById('portfolioDisplay');
		portfolioDisplayObj.style.display="";
		portfolioImgObj = document.getElementById('portfolioImg');
	}

	dimContainerObj.style.height = pageDims.pageHeight + "px";;
	dimContainerObj.style.width = "100%";

	focusContainerObj.style.top = pageDims.yScroll + (pageDims.winHeight / 10) + "px";

	var portfolioClientID, portfolioClientName, portfolioClientDesc, portfolioClientLink, portfolioClientImage;

	portfolioInfoObj = createAJAXObj();
	portfolioInfoObj.onreadystatechange = function(){
		if(portfolioInfoObj.readyState==4)
		{
			try
			{
				// This handles the XML parsing in Internet Explorer
				portfolioInfoXML=new ActiveXObject("Microsoft.XMLDOM");
				portfolioInfoXML.async="false";
				portfolioInfoXML.loadXML(portfolioInfoObj.responseText);
			}
			catch(e)
			{
				try
				{
					// This handles the XML parsing in otherwise normal, non-crappy browsers (ex. Firefox, Opera, etc.)
					parser=new DOMParser();
					portfolioInfoXML=parser.parseFromString(portfolioInfoObj.responseText,"text/xml");
				}
				catch(e)
				{
					return;
				}
			}

			var portfolioClients = portfolioInfoXML.getElementsByTagName(portfolioType + "_client");
			for(var i=0; i < portfolioClients.length; i++)
			{
				var foundPortfolioClient=false;
				var clientXML = portfolioClients[i];

				for (var j=0; j < clientXML.childNodes.length; j++)
				{
					var clientNode = clientXML.childNodes[j];
					if(clientNode.childNodes[0])
						var clientNodeValue = clientNode.childNodes[0].nodeValue;

					if(clientNode.tagName=="clientID")
					{
						if(clientNodeValue==portfolioID)
						{
							portfolioClientID=clientNodeValue;
							foundPortfolioClient=true;
						}
						else
						{
							foundPortfolioClient=false;
						}
					}

					if(foundPortfolioClient)
					{
						if(clientNode.tagName=="clientName")
						{
							portfolioClientName=clientNodeValue;
						}
						else if(clientNode.tagName=="description")
						{
							portfolioClientDesc=clientNodeValue;
						}
						else if(clientNode.tagName=="link")
						{
							portfolioClientLink=clientNodeValue;
						}
						else if(clientNode.tagName=="image")
						{
							portfolioClientImage=clientNodeValue;
						}
					}
				}
			}

			var portfolioImgPreload = new Image();
			portfolioImgPreload.onload = function(){
				document.getElementById('portfolioImg').src=portfolioClientImage;

				var widthScale = ((portfolioImgPreload.width + (borderSize * 2)) / Element.getWidth('portfolioDisplay')) * 100;
				var heightScale = ((portfolioImgPreload.height + (borderSize * 2)) / Element.getHeight('portfolioDisplay')) * 100;

				if(heightScale != 100)
					new Effect.Scale('portfolioDisplay', heightScale, {scaleX: false, duration: 0.4, queue: 'front'});

				if(widthScale != 100)
					new Effect.Scale('portfolioDisplay', widthScale, {scaleY: false, delay: 0.4, duration: 0.4});

				new Effect.Appear('portfolioImg', { duration: 0.4, queue: 'end', afterFinish: function(){updatePortfolioDetails(portfolioClientName,portfolioClientDesc,portfolioClientLink);}});

			};
			portfolioImgPreload.src=portfolioClientImage;
		}
	};
	portfolioInfoObj.open("GET","scripts/portfolio.xml?Time=" + (new Date()).getTime(),true);
	portfolioInfoObj.send(null);

	//We use the scriptaculous library for the nice fading in effect
	new Effect.Appear('dimContainer', { duration: 0.4, from: 0.0, to: 0.7 });
}

function updatePortfolioDetails(clientName,clientDesc,clientLink)
{
	var detailsContainerObj, portfolioCloseImg, clientInfoObj;

	if(! document.getElementById('portfolioClientDetailsContainer'))
	{
		detailsContainerObj = document.createElement("DIV");
		detailsContainerObj.id = "portfolioClientDetailsContainer";
		detailsContainerObj.className = "portfolioClientDetails";
		detailsContainerObj.style.display="none";
		document.getElementById('focusContainer').appendChild(detailsContainerObj);

		portfolioCloseImg = document.createElement("IMG");
		portfolioCloseImg.id="closePortfolioBtn";
		portfolioCloseImg.src="images/closePortfolioBtn.jpg";
		portfolioCloseImg.className="closePortfolioBtn";
		portfolioCloseImg.onclick=function(){
			hidePortfolio();
		};
		document.getElementById('portfolioClientDetailsContainer').appendChild(portfolioCloseImg);

		clientInfoObj = document.createElement("DIV");
		clientInfoObj.id="clientInfoContainer";
		clientInfoObj.className="clientInfoContainer";
		document.getElementById('portfolioClientDetailsContainer').appendChild(clientInfoObj);

		clientNameContainer = document.createElement("DIV");
		clientNameContainer.id="clientNameContainer";
		clientNameContainer.className="clientInfo";
		document.getElementById('clientInfoContainer').appendChild(clientNameContainer);

		clientDescContainer = document.createElement("DIV");
		clientDescContainer.id="clientDescContainer";
		clientDescContainer.className="clientInfo";
		document.getElementById('clientInfoContainer').appendChild(clientDescContainer);

		clientLinkContainer = document.createElement("DIV");
		clientLinkContainer.id="clientLinkContainer";
		clientLinkContainer.className="clientInfo";
		document.getElementById('clientInfoContainer').appendChild(clientLinkContainer);
	}
	else
	{
		detailsContainerObj = document.getElementById('portfolioClientDetailsContainer');
		portfolioCloseImg = document.getElementById('closePortfolioBtn');
		clientInfoObj = document.getElementById('clientInfoContainer');
		clientNameContainer = document.getElementById('clientNameContainer');
		clientDescContainer = document.getElementById('clientDescContainer');
		clientLinkContainer = document.getElementById('clientLinkContainer');
	}

	detailsContainerObj.style.width = Element.getWidth('portfolioDisplay') + "px";

	clientNameContainer.innerHTML = "<strong>Client:</strong> " + clientName;
	if(clientDesc)
		clientDescContainer.innerHTML = clientDesc;

	if(clientLink)
		clientLinkContainer.innerHTML = "<strong>Link:</strong> <a href=\"" + clientLink + "\" target=\"_blank\">Click Here</a>";

	new Effect.Appear('portfolioClientDetailsContainer', { duration: 0.4, from: 0.0, to: 1 });
}

function getPageDims()
{
	var pageHeight, pageWidth;

	if(window.innerHeight && window.scrollMaxY)
	{
		pageHeight = window.innerHeight + window.scrollMaxY;
		pageWidth = window.innerWidth + window.scrollMaxX;
	}
	else if(document.body.scrollHeight > document.body.offsetHeight)
	{
		pageHeight = document.body.scrollHeight;
		pageWidth = document.body.scrollWidth;
	}
	else
	{
		pageHeight = document.body.offsetHeight;
		pageWidth = document.body.offsetWidth;
  	}

	var winHeight, winWidth;

	if (self.innerHeight)
	{
		winWidth = self.innerWidth;
		winHeight = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
	{
		winWidth = document.documentElement.clientWidth;
		winHeight = document.documentElement.clientHeight;
	}
	else if (document.body)
	{
		winWidth = document.body.clientWidth;
		winHeight = document.body.clientHeight;
	}	

	if(pageHeight < winHeight)
		pageHeight = winHeight;
	if(pageWidth < winWidth)
		pageWidth = winWidth;

	var xScroll, yScroll;

	if(self.pageYOffset)
	{
		yScroll = self.pageYOffset;
		xScroll = self.pageXOffset;
	}
	else if(document.documentElement && document.documentElement.scrollTop)
	{
		yScroll = document.documentElement.scrollTop;
		xScroll = document.documentElement.scrollLeft;
	}
	else if(document.body)
	{
		yScroll = document.body.scrollTop;
		xScroll = document.body.scrollLeft;
	}

	return {pageHeight:pageHeight, pageWidth:pageWidth, winHeight:winHeight, winWidth:winWidth, yScroll:yScroll, xScroll:xScroll};
}

function createAJAXObj()
{
	var AJAXObj=null;

	if(typeof XMLHttpRequest != "undefined"){AJAXObj = new XMLHttpRequest();}
	if(! AJAXObj && typeof ActiveXObject!="undefined")
	{
		try{AJAXObj = new ActiveXObject("Msxml2.XMLHTTP");}
		catch(e){
			try	{AJAXObj = new ActiveXObject("Microsoft.XMLHTTP");}
			catch(e2){
				try{AJAXObj = new ActiveXObject("Msxml2.XMLHTTP.4.0");}
				catch(e3){
					AJAXObj = null;
					return false;
				}
			}
		}
	}

	return AJAXObj;
}