var gallery_image = 1;
var gallery_album = "Backgrounds";
var gallery_solution = 1280;
var gallery_interval = null;
var gallery_background1_id = "background";
var gallery_background2_id = "background2";
var gallery_started = false;
var gallery_max_images = 10;
var gallery_btn_start_id = "btn_start";
var gallery_btn_stop_id = "btn_stop";


function gallerySolution()
{
	if(screen.width <= 1024)
	{
		gallery_solution = 1024;
	}
	else if(screen.width <= 1280)
	{
		gallery_solution = 1280;
	}
	else if(screen.width <= 1920)
	{
		gallery_solution = 1920;
	}
	else
	{
		gallery_solution = 'full';
	}	
}

function galleryInit()
{	
	gallerySolution();
	galleryStart();
	galleryLoadFolder();
	galleryLoadImages(gallery_album);
}

function galleryNext()
{
	galleryLoad(gallery_image+1, gallery_album, gallery_solution);
}

function galleryLast()
{
	galleryLoad(gallery_image-1, gallery_album, gallery_solution);	
}

function galleryStart()
{
	window.clearTimeout(gallery_interval);
	gallery_interval = window.setTimeout("galleryNext()", 30000);
	
	$(gallery_btn_start_id).style.display = "none"; //First node is an empty text node :D
	$(gallery_btn_stop_id).style.display = ""; //Last node is an empty text node :D
	
	gallery_started = true;
}

function galleryStop()
{
	window.clearTimeout(gallery_interval);

	$(gallery_btn_start_id).style.display = ""; //First node is an empty text node :D
	$(gallery_btn_stop_id).style.display = "none"; //Last node is an empty text node :D

	gallery_started = false;
}

function galleryLoad(image, album, solution)
{
	gallery_image = image;
	gallery_album = album;
	gallery_solution = solution;
	galleryAlpha($(gallery_background2_id), 0);
	$(gallery_background2_id).src = "image.php?image=" + image + "&album=" + album + "&solution=" + solution + "";	
	
	if(gallery_started)
	{
		galleryStart();
	}
	
	$(gallery_background2_id).onload = new Function("galleryBlend(0)");
}
function galleryLoadFirst()
{
	gallery_image = 0;

	$(gallery_background2_id).src = "image.php?image=" + gallery_image + "&album=" + gallery_album + "&solution=" + gallery_solution + "";	
	$(gallery_background1_id).src = "image.php?image=" + gallery_image + "&album=" + gallery_album + "&solution=" + gallery_solution + "";	
}

function galleryAlpha(element, alpha)
{

	if(element.style.filter)
	{
		element.style.filter = "alpha(opacity=" + alpha + ")";		
	}
	else if(element.style.opacity)
	{
		element.style.opacity = alpha / 100;
	}
	else if(element.style.MozOpacity)
	{
		element.style.MozOpacity = alpha / 100;
	}
	else
	{
		element.style.opacity = alpha / 100;
	}
}
function galleryBlend(alpha)
{
	galleryAlpha($(gallery_background2_id), alpha);
	
	if(alpha < 100)
	{
		window.setTimeout("galleryBlend(" + (alpha+4) +")",5);
	}
	else
	{
		$(gallery_background1_id).src = "image.php?image=" + gallery_image + "&album=" + gallery_album + "&solution=" + gallery_solution + "";
	}
}

var gallery_main_id = "gallery_main";
var gallery_up_id = "btn_maximize";
var gallery_down_id  = "btn_minimize";
var gallery_move_id = "gallery";
var gallery_position_max = 0;
var gallery_position_min = -400;
var gallery_main_moved_out = false;

function galleryMoveUp()
{
	var bottom = $(gallery_main_id).style.bottom.toPosition();
	
	var gallery_percentage = parseInt((((bottom) / (gallery_position_min)) * 100)) - 3;
	
	if(gallery_percentage > 0)
	{	
		galleryMovePercentage(gallery_percentage);
		window.setTimeout("galleryMoveUp()", 30);
	}
	else
	{
		galleryMovePercentage(0);
	}
}

function galleryMoveDown(max_percentage)
{
	max_percentage = max_percentage?max_percentage:100;

	var bottom = $(gallery_main_id).style.bottom.toPosition();
	
	var gallery_percentage = parseInt((((bottom) / (gallery_position_min)) * 100)) + 3;
	
	if(gallery_percentage <= max_percentage)
	{
		galleryMovePercentage(gallery_percentage);
		window.setTimeout("galleryMoveDown(" + max_percentage + ")", 30);
	}
	else
	{
		galleryMovePercentage(max_percentage);
	}
}

function galleryMovePercentage(gallery_percentage)
{
	$(gallery_main_id).style.bottom = gallery_position_min * (gallery_percentage/100);
	
	if(gallery_percentage == 0)
	{
		$(gallery_up_id).style.visibility = "hidden";
		$(gallery_down_id).style.visibility = "visible";
	}
	else if(gallery_percentage == 100)
	{
		$(gallery_down_id).style.visibility = "hidden";
		$(gallery_up_id).style.visibility = "visible";
	}
}

var gallery_directory_url = "directory.php";
var gallery_folder_container = "gallery_folder_container";
var gallery_image_container = "gallery_image_container";

function galleryLoadFolder()
{
	var aj = new ajax(gallery_directory_url + "?mode=album", 'GET', 'sync', '', false, alert);
	var xml = aj.send();
	
	var folder = xml.getElementsByTagName('directory');
	
	$(gallery_folder_container).innerHTML = "";
	$(gallery_folder_container).style.width = 0;
	
	for(var i = 0; i < folder.length; i++)
	{
		var album = xml_get_value(folder[i], "album");
		var images = xml_get_value(folder[i], "images");
		var comment = xml_get_value(folder[i], "comment");

		$(gallery_folder_container).innerHTML += 
			"<span class=\"gallery_folder\" id=\"gallery_folder" + i + "\" onclick=\"galleryLoadImages('" + album + "')\" onmouseover=\"setPngBackground(this, './images/image_down.png');\" onmouseout=\"setPngBackground(this, './images/image.png');\">"+
			"<div style=\"width:160px;\" align=\"center\" onmouseover=\"tooltip('<b>" + album + "</b><br>" + images + " Images<br>" + comment + "', this.id, 'right', 'tooltip_folder')\" id=\"gallery_folder" + i + "_tip\">" +
			"	<img src=\"image.php?solution=70&album=" + album + "&dummy=1\" class=\"gallery_folder_image\">" +
			"	<img src=\"image.php?solution=70&album=" + album + "&dummy=2\" class=\"gallery_folder_image\"><br>" +
			"	<img src=\"image.php?solution=70&album=" + album + "&dummy=3\" class=\"gallery_folder_image\">" +
			"	<img src=\"image.php?solution=70&album=" + album + "&dummy=4\" class=\"gallery_folder_image\">" +
			"</div>" +
			"</span>";	
		$(gallery_folder_container).style.width = $(gallery_folder_container).style.width.toPosition() + 230;				
	
		setPngBackground($("gallery_folder" + i), "./images/image.png");
	}
}

function galleryLoadImages(album, status)
{
	if(!status)
	{
		blender('content_images', 'horizontal', 1, 101, '%', 5, new Function("galleryLoadImages('" + album + "', 'closed')"));	
	}
	else if(status == 'closed')
	{
		var aj = new ajax(gallery_directory_url + "?mode=image&album=" + album, 'GET', 'sync', '', false, alert);
		var xml = aj.send();
		
		var folder = xml.getElementsByTagName('image');
		
		$(gallery_image_container).innerHTML = "";
		$(gallery_image_container).style.width = 0;
		
		for(var i = 0; i < folder.length; i++)
		{
			var name = xml_get_value(folder[i], "name");
			var date = xml_get_value(folder[i], "date");
			var model = xml_get_value(folder[i], "model");
			var objectiv = xml_get_value(folder[i], "objectiv");
			var aperture = xml_get_value(folder[i], "aperture");
			var exposure = xml_get_value(folder[i], "exposure");
			var comment = xml_get_value(folder[i], "comment");
			
	
			$(gallery_image_container).innerHTML += 
				"<span class=\"gallery_image\" style=\"background-url:\" id=\"gallery_image" + i +"\" onclick=\"galleryLoad(" + i + ",'" + album + "', gallery_solution)\"  onmouseover=\"setPngBackground(this, './images/image_down.png');\" onmouseout=\"setPngBackground(this, './images/image.png');\" >" +
					"<div align=\"center\" style=\"width:100%\" id=\"gallery_image" + i + "_tip\" onmouseover=\"tooltip('<b>" + name + "</b><br>Date: " + date + ", F: " + aperture + ", T: " + exposure + "<br> Camera: " + model + "<br> Objectiv: " + objectiv + "<br>" + comment +"', this.id, 'right', 'tooltip_images')\">" +
						"<img src=\"image.php?solution=160&album=" + album + "&image=" + (i) +"\" class=\"gallery_inner_image\">" + 
					"</div>" +
				"</span>&nbsp;";	
			$(gallery_image_container).style.width = $(gallery_image_container).style.width.toPosition() + 230;

			setPngBackground($("gallery_image" + i), "./images/image.png");
		}
		
		$(scroll_content_id).scrollLeft = 0;	
			
		blender('content_images', 'horizontal', 101, 1, '%', 5);
	}
}

function xml_get_value(xml, element)
{

	var data = xml.getElementsByTagName(element);
	if(data.length > 0 && data[0].firstChild)
	{
		return data[0].firstChild.nodeValue;
	}
	else
	{
		return "";
	}

}
