/* ---------------------------------------------------------------------------------------------------------------------------------------- */

function $ (node_id) { return document.getElementById (node_id); }

/* ---------------------------------------------------------------------------------------------------------------------------------------- */

function InitPage (is_startpage)
{
	InitCurrProjectLink();
	
	if (is_startpage)
	{
		if (project_list.length)
		{
			window.setTimeout("{ window.location.href = project_list[0][0] + '.html' }", 5000);
		}
	}
	else
	{
		PopulateProjectList();
		InitScroller ("scroll_left");
		InitScroller ("scroll_right");
		InitScroller ("scroll_content");
		PreloadIconImages();
		ActivateFirstIcon();
	}
}

/* ---------------------------------------------------------------------------------------------------------------------------------------- */

function InitCurrProjectLink()
{
	if (project_list.length)
	{
		var top_menu_proj_link_node = document.getElementById ("curr_project");
		if (top_menu_proj_link_node)
		{
			top_menu_proj_link_node.href = project_list[0][0] + '.html';
		}
	}
}

/* ---------------------------------------------------------------------------------------------------------------------------------------- */

function PopulateProjectList()
{
	var filename = document.URL.replace (/\\/g, "/");
	filename = filename.substring (filename.lastIndexOf ("/") + 1);
	filename = filename.substring (0, filename.lastIndexOf ("."));

	if (project_list.length)
	{
		var node_project_list = document.getElementById ("project_list");
		if (node_project_list)
		{
			var list_content = "";
			for (var i = 0; i < project_list.length; i++)
			{
				list_content += '<li><a href="' + project_list[i][0] + '.html"' + (filename == project_list[i][0] ? ' class="active"' : '') + '>' + project_list[i][1] + '</a></li>';
			}
			node_project_list.innerHTML = list_content;
		}
	}
}

/* ---------------------------------------------------------------------------------------------------------------------------------------- */

function InitScroller (scroll_node_id)
{
	var node = document.getElementById (scroll_node_id);
	if (node)
	{
		var scroll_area_height = node.parentNode.offsetHeight;
		var scroll_content_height = node.offsetHeight;
	
		if (scroll_area_height < scroll_content_height)
		{
			InitScrollConstants (scroll_node_id, scroll_area_height);
			document.getElementById (scroll_node_id + "_nav1").style.display = "inline";
			document.getElementById (scroll_node_id + "_nav2").style.display = "inline";
		}
	}
}

/* ---------------------------------------------------------------------------------------------------------------------------------------- */

function PreloadIconImages()
{
	var parent_node = $("icons");
	if (parent_node)
	{
		var image_nodes = parent_node.getElementsByTagName ("IMG");
		for (var i = 0; i < image_nodes.length; i++)
		{
			$("img_preload").src = GetIconName (image_nodes[i].src, true);
		}
	}
}

/* ---------------------------------------------------------------------------------------------------------------------------------------- */

function ActivateFirstIcon()
{
	var parent_node = $("icons");
	if (parent_node)
	{
		var image_nodes = $("icons").getElementsByTagName ("IMG");
		if (image_nodes)
		{
			ShowImage (image_nodes[0]);
		}
	}
}

/* ---------------------------------------------------------------------------------------------------------------------------------------- */

function DeactivateIcons()
{
	var icon_nodes = $("icons").getElementsByTagName ("IMG");
	for (var i = 0; i < icon_nodes.length; i++)
	{
		icon_nodes[i].src = GetIconName (icon_nodes[i].src, false);
		icon_nodes[i].parentNode.className = "";
	}
}

/* ---------------------------------------------------------------------------------------------------------------------------------------- */

function ShowImage (icon_node)
{
	DeactivateIcons();
	
	icon_node.src = GetIconName (icon_node.src, true);
	icon_node.parentNode.className = "active";
	
	$("img_big").src = GetBigImageName (icon_node.src);
}

/* ---------------------------------------------------------------------------------------------------------------------------------------- */

function GetBigImageName (image_url)
{
	var result = "";
	var image_path = GetImagePath (image_url);
	var image_id = GetImageID (image_url);
	var image_ext = GetImageExtension (image_url);
	
	image_id  = image_id.substring (0, image_id.length - 5);
	return image_path + image_id + image_ext;
}

/* ---------------------------------------------------------------------------------------------------------------------------------------- */

function GetIconName (image_url, active)
{
	var result = "";
	var image_path = GetImagePath (image_url);
	var image_id = GetImageID (image_url);
	var image_ext = GetImageExtension (image_url);
	
	result = image_path + image_id + (active ? "_active" : "") + image_ext;
	
	return result;
}

/* ---------------------------------------------------------------------------------------------------------------------------------------- */

function GetImageExtension (image_url)
{
	return image_url.substring (image_url.lastIndexOf ("."));
}

/* ---------------------------------------------------------------------------------------------------------------------------------------- */

function GetImagePath (image_url)
{
	return image_url.substring (0, image_url.lastIndexOf ("/") + 1);
}

/* ---------------------------------------------------------------------------------------------------------------------------------------- */

function GetImageID (image_url)
{
	var image_id = image_url.substring (image_url.lastIndexOf ("/") + 1);
	image_id = image_id.substring (0, image_id.lastIndexOf ("."));
	
	
	if (image_id.substring (image_id.length - 7) == "_active")
	{	
		image_id = image_id.substring (0, image_id.length - 7);
	}
	
	return image_id;
}
