var globalScrollContainer;
var globalArtContainer;
var ajaxHandler;
var vita = 0;

function init()
	{
	globalScrollContainer = document.getElementById("globalScrollContainer")
	globalScrollContainer.style.top = "0%";

	globalArtContainer = document.getElementById("globalArtContainer")
	globalArtContainer.style.left = "0%";
	
	getArtDirectory();
	};

function getArtDirectory()
	{
	if (window.XMLHttpRequest)
		{
		ajaxHandler = new XMLHttpRequest();
		}
	else if (window.ActiveXObject)
		{
		ajaxHandler = new ActiveXObject("Microsoft.XMLHTTP");
		};

	ajaxHandler.open('get', './_art/artDirectory.csv', true);
	ajaxHandler.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajaxHandler.onreadystatechange = setupArtDisplay;
	ajaxHandler.send();
	};
	
function processArtDirectory(artDirectoryString)
	{
	artDirectoryString = artDirectoryString.replace(/(^\s)|(\s$)/, "");
	artDirectoryString = artDirectoryString.replace(/(\n|\r)+/mgi, "\u000A");
	atest = artDirectoryString;
	var rawArtDirectory = artDirectoryString.split("\u000A");
	var artDirectory = []

	for(var i = 0; i < rawArtDirectory.length; i++)
		if(rawArtDirectory[i].substring(0, 2) == '//')
			continue
		else
			artDirectory.push(rawArtDirectory[i].split(";"));
	
	return artDirectory;
	};

function setupArtDisplay()
	{
	if(ajaxHandler.readyState != 4)
		return true;

	artDirectory = processArtDirectory(ajaxHandler.responseText);

	var artCount = artDirectory.length;
	
	for(var i = 0; i < artCount; i++)
		{
		var artInformation = artDirectory[i];
			
		if(artDirectory[i][4] == 1 || artInformation[4] == 3)
			var artContent = createStaticArtContent(artInformation);
		else
			var artContent = createVimeoArtContent(artInformation);

		var artContainer = document.createElement('div');
		artContainer.className = "artContainer";
		artContainer.style.left = (i * 100 + 50) + "%";
		artContainer.style.marginLeft = -Math.floor(artInformation[2] / 2) - 1 + "px";
		artContainer.style.marginTop = -Math.floor(artInformation[3] / 2) - 1 + "px";
		
		var breakElem = document.createElement('br');
		var descriptionText = document.createTextNode(artInformation[1]);
		
		artContainer.appendChild(artContent);
		artContainer.appendChild(breakElem);
		artContainer.appendChild(descriptionText);
	
		if(i > 0)
			{
			var arrowLeftContainer = document.createElement('div');
			arrowLeftContainer.className = "arrowLeftContainer";
			arrowLeftContainer.onclick = scrollRight;
			
			var arrowLeftText = document.createTextNode('«');
			arrowLeftContainer.appendChild(arrowLeftText);
	
			artContainer.appendChild(arrowLeftContainer);
			};
	
		if(i < artCount - 1)
			{
			var arrowRightContainer = document.createElement('div');
			arrowRightContainer.className = "arrowRightContainer";		
			arrowRightContainer.onclick = scrollLeft;
	
			var arrowRightText = document.createTextNode('»');
			arrowRightContainer.appendChild(arrowRightText);
	
			artContainer.appendChild(arrowRightContainer);
	
			artContent.onclick = scrollLeft;
			}
		else
			{
			artContent.onclick = scrollFarLeft;
			};

		globalArtContainer.appendChild(artContainer);
		};
	}

function createStaticArtContent(artInformation)
	{
	var artContent = new Image();
	artContent.src = "./_art/" + artInformation[0];
	
	artContent.className = "artImage";
	artContent.setAttribute('width', artInformation[2]);
	artContent.setAttribute('height', artInformation[3]);
	
	if(artInformation[4] == 1)
		artContent.style.border = "None !important";
			
	return artContent;
	}

function createVimeoArtContent(artInformation)
	{
	// <iframe src="http://player.vimeo.com/video/16688435?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff" width="640" height="480" frameborder="0"></iframe>
	var iframeSrc = 'http://player.vimeo.com/video/' + artInformation[0] + '?title=0&byline=0&portrait=0&color=ffffff'

	var artContent = document.createElement('iframe');
	
	artContent.setAttribute('src', iframeSrc);
	artContent.setAttribute('width', artInformation[2]);
	artContent.setAttribute('height', artInformation[3]);
	artContent.style.border = "None !important";

	return artContent;
	};

function scrollLeft()
	{
	lastStart = (new Date()).getTime();
	scrollInterval = window.setInterval(scrollLeftIntervalFunc, 15);
	}

function scrollLeftIntervalFunc()
	{
	globalArtContainer.style.left = (parseInt(globalArtContainer.style.left) - 5) + "%";

	if (parseInt(globalArtContainer.style.left) % 100 == 0)
		{
		window.clearInterval(scrollInterval);
//		console.log("time needed: " + ((new Date()).getTime() - lastStart));
		}
	};

function scrollRight()
	{
//	lastStart = (new Date()).getTime();
	scrollInterval = window.setInterval(scrollRightIntervalFunc, 15);
	}

function scrollRightIntervalFunc()
	{
	globalArtContainer.style.left = (parseInt(globalArtContainer.style.left) + 5) + "%";

	if (parseInt(globalArtContainer.style.left) % 100 == 0)
		{
		window.clearInterval(scrollInterval);
//		console.log("time needed: " + ((new Date()).getTime() - lastStart));
		}
	};

function scrollFarLeft()
	{
//	lastStart = (new Date()).getTime();
	scrollInterval = window.setInterval(scrollFarLeftIntervalFunc, 15);
	}

function scrollFarLeftIntervalFunc()
	{
	globalArtContainer.style.left = (parseInt(globalArtContainer.style.left) + 10) + "%";

	if (parseInt(globalArtContainer.style.left) == 0)
		{
		window.clearInterval(scrollInterval);
//		console.log("time needed: " + ((new Date()).getTime() - lastStart));
		}
	};

function scrollToVita()
	{
	if(vita == 1)
		scrollToArt();
	else
		scrollInterval = window.setInterval(scrollToVitaIntervalFunc, 15);
	}

function scrollToVitaIntervalFunc()
	{
	globalScrollContainer.style.top = (parseInt(globalScrollContainer.style.top) - 5) + "%";

	if (parseInt(globalScrollContainer.style.top) % 100 == 0)
		{
		vita = 1;
		window.clearInterval(scrollInterval);
//		console.log("time needed: " + ((new Date()).getTime() - lastStart));
		}
	};

function scrollToArt()
	{
//	lastStart = (new Date()).getTime();
	scrollInterval = window.setInterval(scrollToArtIntervalFunc, 15);
	}

function scrollToArtIntervalFunc()
	{
	globalScrollContainer.style.top = (parseInt(globalScrollContainer.style.top) + 5) + "%";

	if (parseInt(globalScrollContainer.style.top) % 100 == 0)
		{
		vita = 0;
		window.clearInterval(scrollInterval);
//		console.log("time needed: " + ((new Date()).getTime() - lastStart));
		}
	};

window.onload=init;

