function parse_id(id_str)
{
	return parseInt(id_str.substr(1));
}

function construct_id(id_num)
{
	return 't' + id_num;
}

function shift_left(t)
{
	var lowest_id = 100;
	var parsed_id = 0;
	
	// Find the lowest id of the visible thumbnails
	while(t.attr("class") == "thumbnailVisible")
	{
		parsed_id = parse_id(t.attr("id"));
		if(parsed_id < lowest_id) {
			lowest_id = parsed_id;
        }
		t = t.next();
	}
	
	var thumb;
	var row_length = 6;
	var right_nav = $("span[@id=right_nav]");
	for(var i = 1; i <= 3; i++)
	{
		if(lowest_id - i >= 0)
		{
			if(right_nav.css("visibility") == "hidden") {
				right_nav.css("visibility", "visible");
            }
            thumb = $("span[@id=" + construct_id(lowest_id - i) + "]");
            thumb.attr("class", "thumbnailVisible");
            thumb = $("span[@id=" + construct_id(lowest_id + row_length - i) + "]");
            thumb.attr("class", "thumbnailHidden");
			
			if(lowest_id - i == 0)
			{
                thumb = $("span[@id=left_nav]");
                thumb.css("visibility", "hidden");
			}
		}
	}
	return true;
}

function shift_right(t)
{   
	//var total = document.evaluate('count(//span[@class = "thumbnailVisible"] | //span[@class = "thumbnailHidden"])', document, null, XPathResult.ANY_TYPE, null);
	var total_thumbnails = $("span.thumbnailVisible | span.thumbnailHidden").length;
	var highest_id = 0;
	var parsed_id = 0;
	var current_node = t;
	
	// Find the highest id of the visible thumbnails
	while(t.attr("class") == "thumbnailVisible") {
		parsed_id = parse_id(t.attr("id"));
		if(parsed_id > highest_id) {
			highest_id = parsed_id;
        }
		t = t.next();
	}
	var thumb;
	var row_length = 6;
	var left_nav = $("span[@id=left_nav]");
	
	// Hide and Reveal thumbnails
	for(var i = 1; i <= 3; i++)
	{
		if( (highest_id + i) < total_thumbnails)
		{	
			if(left_nav.css("visibility") == "hidden") {
				left_nav.css("visibility", "visible");
            }
            thumb = $("span[@id=" + construct_id(highest_id + i) + "]");
			thumb.attr("class", "thumbnailVisible");
            thumb = $("span[@id=" + construct_id(highest_id - row_length + i) + "]");
            thumb.attr("class", "thumbnailHidden");
			
			if(highest_id + i == total_thumbnails - 1)
			{
                thumb = $("span[@id=right_nav]");
                thumb.css("visibility", "hidden");
			}
		}
	}
	return true;
}

function thumbnail_shift(right)
{
    var v_t = $("span.thumbnailVisible");

	if(right) {
		shift_right(v_t);
    } else {
		shift_left(v_t);
    }
	
	return true;
}

function append_link_go(url)
{
	window.location = url + '&o=' + parse_id($("span.thumbnailVisible").attr("id"));
	return true;
}