window.dhtmlHistory.create();

function historyChanged(newLoc, hisData)
{
	if(newLoc == "" && !dhtmlHistory.firstLoad)
	{
		hideWorkInfo();
	}
	else if(newLoc != "")
	{
		displayWorkInfo(newLoc);
	}		
}

function displayWorkInfo(title)
{
	var workTitle = "#TITLE#";
	var workDesc = "#DESCRIPTION#";
	var workURL = "#URL#";
	var workType = "#TYPE#";
	
	var http = getHTTPObject();
	http.open("GET", "assets/def/works.list", false);
	http.send(null);
	
	workinfo = http.responseText.substring(http.responseText.indexOf("[" + title + "]"), http.responseText.indexOf("[/" + title + "]"));
	workinfo = workinfo.substr(2 + title.length);
			
	workTitle = workinfo.substring(workinfo.indexOf("[title]") + 7, workinfo.indexOf("[/title]"));
	workDesc = workinfo.substring(workinfo.indexOf("[desc]") + 6, workinfo.indexOf("[/desc]"));
	workURL = workinfo.substring(workinfo.indexOf("[url]") + 5, workinfo.indexOf("[/url]"));
	workType = workinfo.substring(workinfo.indexOf("[type]") + 6, workinfo.indexOf("[/type]"));
			
	document.getElementById("work_title").innerHTML = workTitle;
	document.getElementById("work_type").innerHTML = workType;
	document.getElementById("work_desc").innerHTML = workDesc;
	document.getElementById("work_preview").href = workURL;
		
	document.getElementById("back_cover").style.display = "block";
	document.getElementById("work_info_root_container").style.display = "block";
	
	document.getElementById("work_preview").style.backgroundImage = "url(assets/decor/loading.gif)";
	var img = new Image;
	var imgsrc = "assets/image/" + title + "_preview.png";
	img.onload = function()
	{
		document.getElementById("work_preview").style.backgroundImage = "url(" + imgsrc + ")";
	}
	img.src = imgsrc;
	
	dhtmlHistory.add(title, title);
}

var tloaded = 0;
var numberOfThumbs = 0;

function thumbLoaded()
{
	tloaded++;
	if(tloaded == numberOfThumbs)
	{
		thumbsLoaded();
	}
}

function createThumbs()
{
	var thumbslist;
	var worklist;
	
	var http = getHTTPObject();
	http.open("GET", "assets/def/thumbs.list", false);
	http.send(null);
	thumbslist = http.responseText.replace(/\s/g, '').split(';');
	
	var http = getHTTPObject();
	http.open("GET", "assets/def/works.list", false);
	http.send(null);
	worklist = http.responseText;
	
	output = "";
	
	numberOfThumbs = thumbslist.length;
	
	for(i = 0; i < thumbslist.length; ++i)
	{
		var name = thumbslist[i];
		
		var img = new Image();
		
		img.onload = thumbLoaded;
		
		img.src = "assets/image/" + name + "_thumb.png";
		
		var workinfo = worklist.substring(worklist.indexOf("[" + name + "]"), worklist.indexOf("[/" + name + "]"));
		workinfo = workinfo.substr(2 + name.length);
		var title = workinfo.substring(workinfo.indexOf("[title]") + 7, workinfo.indexOf("[/title]"));
		var type = workinfo.substring(workinfo.indexOf("[type]") + 6, workinfo.indexOf("[/type]"));
		type = type.replace("&#8209;", "-");
		
		output += "<img class=\"workthumb\" title=\"" + title + " / " + type + "\" onClick=\"displayWorkInfo('" + name + "');\" src=\"assets/image/" + name + "_thumb.png\" />";
	}
	document.getElementById("content").innerHTML = output;
}

window.onload = function()
{
	dhtmlHistory.initialize();
	dhtmlHistory.addListener(historyChanged);
	
	var img = new Image();
	img.src = "assets/decor/bg.jpg";
	createThumbs();
	
	// this next line is just for Internet Explorer,
	// since it needs a bit of handholding to get the simplest of things
	// working when the rest of the browsers work just fine!
	// we'll give it 5 seconds to load the images and then fuck it, just display everything
	// even if it isn't ready
	if(navigator.userLanguage)
	{
		setTimeout("thumbsLoaded();", 5000);
	}
}

function thumbsLoaded()
{
	document.getElementById("top_loading").style.display = "none";
	displayBack();
	if(dhtmlHistory.firstLoad) document.getElementById("back_cover").style.display = "none";
}

function hideWorkInfo()
{
	dhtmlHistory.add("", 0);
	document.getElementById("back_cover").style.display = "none";
	document.getElementById("work_info_root_container").style.display = "none";
	
}

function displayBack()
{
	document.getElementById("bg").style.backgroundImage = "url(assets/decor/bg.jpg)";
	document.getElementById("root").style.visibility = "visible";
}

function getHTTPObject() 
{
	if(typeof XMLHttpRequest != 'undefined')
	{
		return new XMLHttpRequest();
	}
	try
	{
		return new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e) 
	{
		try
		{
			return new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e)
		{}
	}
	return false;
}