function fuc_layoutInfo() {
	var info = new Array(4);
	if (browser.lteIE6) {
		info[0] = document.body.clientWidth;
		info[1] = document.body.clientHeight;
		info[2] = document.body.scrollLeft;
		info[3] = document.body.scrollTop;
	} else if (browser.gteIE7) {
		info[0] = document.documentElement.clientWidth;
		info[1] = document.documentElement.clientHeight;
		info[2] = document.documentElement.scrollLeft;
		info[3] = document.documentElement.scrollTop;
	} else {
		info[0] = window.innerWidth;
		info[1] = window.innerHeight;
		info[2] = window.pageXOffset;
		info[3] = window.pageYOffset;
	}
	return info;
}

function fuc_layoutResize(e) {
	var layoutInfo = fuc_layoutInfo();
	// height - header - gap - gap - footer
	var galleryHeight = layoutInfo[1] - 117 - 25 - 25 - 100;
	if (galleryHeight < 368) {
		galleryHeight = 368;
	}
	var galleryWidth = Math.floor(galleryHeight / 271 * 442);
	var navWidth = Math.floor((layoutInfo[0] - galleryWidth) / 2);
	if (navWidth < 250) {
		navWidth = 250;
		galleryWidth = layoutInfo[0] - 250 - 250;
		if (galleryWidth < 600) {
			galleryWidth = 600;
		}
		galleryHeight = Math.floor(galleryWidth * 271 / 442);
	}
	ul_nav.style.width = navWidth + "px";
	div_center.style.width = (navWidth + galleryWidth) + "px";
	gallery.div_gallery.style.width = galleryWidth + "px";
	gallery.div_gallery.style.height = galleryHeight + "px";
}

function fuc_galleryImageOpacity(opacity) {
	var object = gallery.images[gallery.current].image;
	object.style.opacity = (opacity / 100);
	object.style.MozOpacity = (opacity / 100);
	object.style.KhtmlOpacity = (opacity / 100);
	
	if (browser.isIE) {
		var alphaPos = object.style.filter.indexOf("alpha(opacity");
		if (alphaPos == -1) {
			object.style.filter += "alpha(opacity=" + opacity + ")";
		} else {
			object.style.filter = object.style.filter.substr(0, alphaPos) + "alpha(opacity=" + opacity + ")";
		}
	}
	if (opacity >= 100) {
		fuc_galleryRemoveOldImage();
	}
}

function fuc_galleryPreparePrev() {
	if (gallery.waiting) {
		gallery.current -= 2;
	} else {
		gallery.current--;
	}
	if (gallery.current < 0) {
		gallery.current = gallery.images.length + gallery.current;
	}
	var previous = new Array();
	for (var temp in gallery.previous) {
		if (gallery.previous[temp] != gallery.current) {
			previous.push(gallery.previous[temp]);
		}
	}
	gallery.previous = previous;
	fuc_galleryLoadNextImage();
	fuc_galleryShowNextImage();
}

function fuc_galleryPrepareNext() {
	gallery.current++;
	if (gallery.current >= gallery.images.length) {
		gallery.current = 0;
	}
	fuc_galleryLoadNextImage();
	if (gallery.skip) {
		fuc_galleryShowNextImage();
		gallery.skip = false;
	} else {
		gallery.waiting = true;
		gallery.waitTimeout = setTimeout("fuc_galleryShowNextImage()", 5000);
	}
}

function fuc_galleryRemoveOldImage() {
	gallery.opacityTimeout = new Array();
	for (var temp = 0; temp < gallery.previous.length - 1; temp++) {
		gallery.div_gallery.removeChild(gallery.images[gallery.previous[temp]].image);
	}
	gallery.previous = [gallery.previous[gallery.previous.length - 1]];
	fuc_galleryPrepareNext();
}

function fuc_galleryShowNextImage() {
	gallery.waiting = false;
	gallery.previous.push(gallery.current);
	gallery.div_gallery.appendChild(gallery.images[gallery.current].image);
	fuc_galleryImageOpacity(0);
	for (var i = 0; i <= 100; i++) {
		gallery.opacityTimeout.push(setTimeout("fuc_galleryImageOpacity(" + i + ")", (i * 15)));
	}
	//gallery.opacityTimeout.push(setTimeout("fuc_galleryRemoveOldImage()", (101 * 15)));
}

function fuc_galleryLoadNextImage() {
	if (gallery.images[gallery.current].image == undefined) {
		var image = document.createElement("img");
		image.src = "images/index/gallery/" + gallery.images[gallery.current].url;
		image.alt = "";
		gallery.images[gallery.current].image = image;
	}
}

function fuc_galleryGo(position) {
	clearTimeout(gallery.waitTimeout);
	for (var opacityTimeout in gallery.opacityTimeout) {
		clearTimeout(gallery.opacityTimeout[opacityTimeout]);
	}
	gallery.opacityTimeout = new Array();
	if (position < 0) {
		fuc_galleryPreparePrev();
	} else {
		gallery.skip = true;
		fuc_galleryPrepareNext();
	}
}

function fuc_gallery() {
	this.images = new Array();
	this.div_gallery = null;
	this.current = 0;
	this.skip = false;
	this.waiting = false;
	this.direction = 1;
	this.previous = new Array();
	this.waitTimeout = null;
	this.opacityTimeout = new Array();
}

function fuc_layoutInitialize(e) {
	ul_nav = document.getElementById("nav");
	div_center = document.getElementById("center");
	gallery.div_gallery = document.getElementById("gallery");
	gallery.current = 0;
	fuc_layoutResize();
	fuc_galleryLoadNextImage();
	fuc_galleryShowNextImage();
	window.onresize = fuc_layoutResize;
}

var ul_nav;
var div_center;
var gallery = new fuc_gallery();
