function init()
{
	var params = {
		galleryClass: 'gallerypic',
		galleryBackgroundId: 'gallery_background',
		galleryLayerId: 'gallery_layer',
		galleryOnPhotoLoad: onPhotoLoad
	}
	
	//Reading fake params (that are translated and can't be hardcoded)
	var ids = Array('formname', 'formemail', 'formphone', 'formmessage');
	var fakeParams = {}; 
	for (key in ids) {
		var id = ids[key];
		var elem = document.getElementById(id);
		if (elem) {
			if (elem.tagName == 'INPUT') {
				fakeParams[elem.name] = elem.value;
				elem.value = ''; 
			} else if (elem.tagName == 'TEXTAREA') {
				fakeParams[elem.name] = elem.innerHTML;
				elem.innerHTML = '';
			}
		}
	}
	params.fakeParams = fakeParams;
	
	FSite2.extendForm(document, params);
	
	initTopGallery();
}

/**
 * Returns unicode (of pressed key) for given event
 */
function getunicode(e) {
	var unicode=e.keyCode? e.keyCode : e.charCode
	return unicode;
}

/**
 * Controls for photo layer
 */ 
function onPhotoLoad()
{
	//key bindings
	document.onkeyup = function(e) {
		var e = e || window.event;
		var code = getunicode(e); 
		if (code == 27) {
			var closebt = document.getElementById('gallery_layer_close');
			if (closebt) {
				closebt.onclick();
			}
			document.onkeyup = null;
		}
	}
	
	FSite2.unsetElementClass(document.getElementById('gallery_background'), 'hidden');
	FSite2.unsetElementClass(document.getElementById('gallery_layer'), 'hidden');
	
	return true;
}

/**
 * Inicjowanie galerii w topie
 */ 
function initTopGallery()
{
	var galleryelement = document.getElementById('gallery');
	
	if (!galleryelement) {
		return;
	}
	
	var left = document.getElementById('slideleftarrow');
	var right = document.getElementById('sliderightarrow');
	if (!left && !right) {
		return;
	}
	
	len = galleryelement.getElementsByTagName('img');
	if (len) {
		len = len.length;
	} else {
		len = 0;
	}
	
	if (len == 1) {
		return;
	}
	
	window.gallery = {};
	gal = window.gallery;
	gal.gallery = galleryelement;
	gal.length = len;
	gal.current = 0;
	gal.offset = 924;
	gal.gallery.style.width = len*gal.offset+'px';
	gal.gallerytitle = document.getElementById('gallerytitle');
	gal.gallerytext = document.getElementById('gallerytext');
	gal.pics = window.pics || null;
	
	if (left) {
		FSite2.setElementClass(left, 'pointer');
		left.onclick = slideLeft;
		gal.left = left;
	} else {
		gal.left = null;
	}
	
	if (right) {
		FSite2.setElementClass(right, 'pointer');
		right.onclick = slideRight;
		gal.right = right;
	} else {
		gal.right = null;
	}
	
	gal._auto = setInterval('slideRight(false)', 5000);
}

/**
 * Slide gallery left
 */ 
function slideLeft(e)
{
	if (e !== false) {
		clearInterval(window.gallery._auto);
	}
	
	if (window.gallery._animation && window.gallery._animation.isRunning()) {
		return;
	}
	
	if (gallery.current > 0) {
		gallery._animation = new FSite2.Animation(
			gallery.gallery.style,
			'marginLeft',
			FSite2.Anim.test,
			{speed: 2.5, start: -(gallery.current * gallery.offset), end: -(gallery.current - 1) * gallery.offset},
			{template: '#px', precision: 0.1}
		);
		gallery.current--;
		chageGalleryDesc();
	} else{
		if (gallery.length <= 1) {
			return;
		}
		
		gallery.current = gallery.length-1;
		gallery.gallery.style.marginLeft = -(gallery.current * gallery.offset)+'px';
		slideLeft(e);
		chageGalleryDesc();
	}
}

/**
 * Slide gallery right
 */ 
function slideRight(e)
{
	if (e !== false) {
		clearInterval(window.gallery._auto);
	}

	if (window.gallery._animation && window.gallery._animation.isRunning()) {
		return;
	}
	
	if (gallery.current + 1 < gallery.length) {
		gallery._animation = new FSite2.Animation(
			gallery.gallery.style,
			'marginLeft',
			FSite2.Anim.test,
			{speed: 2.5, start: -(gallery.current * gallery.offset), end: -(gallery.current + 1) * gallery.offset},
			{template: '#px', precision: 0.1}
		);
		gallery.current++;
		chageGalleryDesc();
	} else{
		if (gallery.length <= 1) {
			return;
		}
		
		gallery.current = 0;
		gallery.gallery.style.marginLeft = '0px';
		slideRight(e);
		chageGalleryDesc();
	}
}

/**
 * Changes description of picture in top
 */
function chageGalleryDesc()
{
	if (gallery.pics) {
		if (gallery.gallerytitle) {
			gallery.gallerytitle.innerHTML = gallery.pics[gallery.current][0];
		}
		if (gallery.gallerytext) {
			gallery.gallerytext.innerHTML = gallery.pics[gallery.current][1];
		}
	}
} 

FSite2.ready(init);

