/* Redudant and hard coded: YES, and that's bad. But simple and easy to follow - Also YES! - and that's good.
I always opt for the latter, sorry pattern purists :) */
function imageLoadCallback()
{
	if (++loadingIndex == portfolioImages.length)
	{
		if (portfolioImages[1].src.charAt(portfolioImages[1].src.length - 1) != "#")
		{
			/* Make both sides the same */
			var firstImage = (portfolioMiddleSliders[0].style.marginLeft == "0px") || (portfolioMiddleSliders[0].style.marginLeft == "");

			if (firstImage)
			{
				portfolioImages[1].src = portfolioImages[0].src;
				portfolioImages[3].src = portfolioImages[2].src;
				portfolioImages[5].src = portfolioImages[4].src;
			}
			else
			{
				portfolioImages[0].src = portfolioImages[1].src;
				portfolioImages[2].src = portfolioImages[3].src;
				portfolioImages[4].src = portfolioImages[5].src;
			}

			/* Set offset, new images and launch animation */
			if (movingForward)
			{
				/* offset */
				portfolioMiddleSliders[0].style.marginLeft = "0px";
				portfolioSideSliders[0].style.marginLeft = "0px";
				portfolioSideSliders[1].style.marginLeft = "0px";
				/* images */
				portfolioImages[1].src = portfolioObjects[0].src;
				portfolioImages[3].src = portfolioObjects[2].src;
				portfolioImages[5].src = portfolioObjects[4].src;
				/* Animation */
				move(-SMALL_IMAGE_WIDTH, -LARGE_IMAGE_WIDTH);
			}
			else
			{
				/* offset */
				portfolioMiddleSliders[0].style.marginLeft = -LARGE_IMAGE_WIDTH + "px";
				portfolioSideSliders[0].style.marginLeft = -SMALL_IMAGE_WIDTH + "px";
				portfolioSideSliders[1].style.marginLeft = -SMALL_IMAGE_WIDTH + "px";
				/* images */
				portfolioImages[0].src = portfolioObjects[0].src;
				portfolioImages[2].src = portfolioObjects[2].src;
				portfolioImages[4].src = portfolioObjects[4].src;
				/* Animation */
				move(0, 0);
			}
		}
		else
		{
			/* simple initial load */
			for (var i = 0; i < portfolioObjects.length; i++)
			{
				portfolioImages[i].src = portfolioObjects[i].src;
			}
			setTitles();
		}
	}
}

var portfolioImages;
var portfolioObjects = new Array();
var portfolioMiddleSliders;
var portfolioSideSliders;
var loadingIndex, sliderIndex;
var movingForward = true;
var currentPortfolioIndex;
var selectedIndex = 0;

$(document).ready(function(){
	/* Top slider */
    lastBlock = $("#a1");
    maxWidth = 320;
    minWidth = 110;	

    $(".divStabilizer ul li a").hover(
      function(){
        $(lastBlock).animate({width: minWidth+"px"}, { queue:false, duration:400 });
	$(this).animate({width: maxWidth+"px"}, { queue:false, duration:400});
	lastBlock = this;
      }
    );

	/* Portfolio section */
	portfolioImages = $(".divPortfolio img");
	portfolioMiddleSliders = $(".divPortfolioMiddleInner");
	portfolioSideSliders = $(".divPortfolioSideInner");
	currentPortfolioIndex = portfolioRecords.length - 1;
	loadNextImages();

	/* w3c validation nonsense */
	$(".imgPortfolioOverlay")[0].useMap="#mapPortfolio";
	document.getElementById("mapPortfolio").name = "mapPortfolio";
	var socialLinks = $(".divSocial a, .lnkTweet");
	for (var s = 0; s < socialLinks.length; s++)
	{
		socialLinks[s].target="_blank";
	}

	/* Fade in the main body */
	//setTimeout("$('.divWrapBody').fadeIn(1000)", 1500);
});

function loadNextImages()
{
	var sliders = $(".divPortfolio img");
	sliderIndex = 0;
	var loadingPortfolioIndex = currentPortfolioIndex;
	loadingIndex = 0;
	for (var loadIndex = 0; loadIndex < portfolioImages.length; loadIndex++)
	{
		var imageHeight = 114;
		if ((loadIndex == 2) || (loadIndex == 3))
		{
			imageHeight = 195;
		}
		var imgLoad = new Image();
		portfolioObjects[loadIndex] = imgLoad;
		imgLoad.onload = imageLoadCallback;
		imgLoad.src = "/cms/controller/services/Thumbnail.ashx?height=" + imageHeight + "&fileName=/media/adeo_portfolio.screenshot/" + portfolioRecords[loadingPortfolioIndex][2];
		var imgPersona = document.getElementById("imgPersona");
		if ((loadIndex % 2) == 0)
		{
			if (loadIndex == 2)
			{
				selectedIndex = loadingPortfolioIndex;

			}
			loadingPortfolioIndex++;
		}
		if (loadingPortfolioIndex >= portfolioRecords.length)
		{
			loadingPortfolioIndex = 0;
		}
	}
}

var SMALL_IMAGE_WIDTH = 113;
var LARGE_IMAGE_WIDTH = 205;

function movePrevious()
{
	currentPortfolioIndex--;
	if (currentPortfolioIndex < 0)
	{
		currentPortfolioIndex = portfolioRecords.length - 1;
	}
	movingForward = false;
	loadNextImages();
}
function moveNext()
{
	currentPortfolioIndex++;
	if (currentPortfolioIndex >= portfolioRecords.length)
	{
		currentPortfolioIndex = 0;
	}
	movingForward = true;
	loadNextImages();
}
function move(amount, amount2)
{
	$(".divPortfolioSideInner").animate({marginLeft: amount}, 500, "swing");
	$(".divPortfolioMiddleInner").animate({marginLeft: amount2}, 500, "swing", setTitles);
}

function setTitles() 
{
	document.getElementById("spanTitle").innerHTML = portfolioRecords[selectedIndex][0];
	var anchorWebsite = document.getElementById("anchorWebsite");
	anchorWebsite.target = "_blank";
	anchorWebsite.innerHTML = portfolioRecords[selectedIndex][1].replace("http://", "");
	anchorWebsite.href = "http://" + anchorWebsite.innerHTML;
	if (portfolioRecords[selectedIndex][3]) //else, leave it there
	{
		backgroundImage = "/cms/controller/services/Thumbnail.ashx?width=328&fileName=/media/adeo_portfolio.personaImage/" + portfolioRecords[selectedIndex][3];					
		document.getElementById("divPersona").style.backgroundImage = "url('" + backgroundImage + "')";
	}
	if (portfolioRecords[selectedIndex][4]) //else, leave it there
	{
		document.getElementById("lblTestimonial").innerHTML = portfolioRecords[selectedIndex][4];
	}

}
