var iBox = new function()
{
	var self = this;
	self.position = 0;
	self.sheet = null, self.wrapper = null, self.mainer = null, self.document = null, self.box = null, self.toolbox = null, self.imageCounter = 0, self.description = null; 
	self.contentTag = null; 
	
	self.hide = function()
	{
		self.description.setStyle('visibility', 'hidden'); 
		self.mainer.setStyle('visibility', 'hidden');
		self.toolbox.setStyle('visibility', 'hidden');
		self.wrapper.setStyle('display', 'none');
		self.sheet.fade('0');
		self.sheet.setStyle('display', 'none');
		self.mainer.innerHTML = '';
	}
	self.imageHack = function()
	{
		var dimension = self.contentTag.getSize(); 
		//var dimension = self.mainer.getSize(); 
		if(dimension.x == 0 && self.imageCounter < 8) 
		{
			self.imageCounter++;
			window.setTimeout(self.imageHack, '1000'); 
		}
		else
		{ 
			self.imageCounter = 0
			self.showMain(); 
		}
	}
	self.setImage = function(datas)
	{ 
		// pripojenie dat
		self.mainer.innerHTML = datas;
		self.showMain(); 
		
		/*
		// hada sa obrazok
		self.contentTag = $('galleryMainImage'); 
		if(self.contentTag)
		{ 
			self.imageHack(); 
		} 
		else
		{ 
			self.showMain(); 
		} 
		*/
	}
	self.showOther = function() 
	{
		self.description.innerHTML = gallery.data[self.position].desc; 
		self.mainer.setStyle('visibility', 'visible'); 
		self.toolbox.setStyle('visibility', 'visible'); 
		self.description.setStyle('visibility', 'visible'); 
	}
	self.showMain = function() 
	{
		var dimension = null;
		dimension = self.mainer.getSize(); 
		var myFx = new Fx.Tween(self.box);
		myFx.start('width', dimension.x+'px');
		myFx.start('height', (dimension.y+30)+'px');
		myFx.addEvent('complete', function(){
			self.showOther(); 
		});
	}
	self.showBase = function() 
	{
		self.sheet.setStyle('display', 'block'); 
		self.sheet.fade('.7'); 
		self.wrapper.setStyle('display', 'block'); 
	}
	self.changeImage = function(obj)
	{
		self.description.innerHTML = '';
		self.showBase(); 
		self.setImage(obj.datas);
	}
	self.galleryLink = function(position)
	{
		self.position = position;
		self.changeImage(gallery.data[self.position]);
	}
	self.next = function()
	{
		if(self.position + 1 >= gallery.data.length)
		{
			self.position  = 0;
		}
		else
		{
			self.position ++;
		}
		self.mainer.setStyle('visibility', 'hidden');
		self.changeImage(gallery.data[self.position]);
	}
	self.prev = function()
	{
		if(self.position <= 0 )
		{
			self.position = gallery.data.length - 1;
		}
		else
		{
			self.position--;
		}
		self.mainer.setStyle('visibility', 'hidden');
		self.changeImage(gallery.data[self.position]);
	}
	function init()
	{
		// init data & node 
		self.document	= $$('body')[0]; 
		var data		= self.document.getSize(); 
		self.sheet = new Element('div', {'class' : 'fb_sheet', 
			'styles' : {
				'width'		: data.x+'px', 
				'height'	: data.y+'px', 
				'opacity'	: 0, 
				'display'	: 'none' 
				}
		});
		self.wrapper	= new Element('div', {'class' : 'fb_wrapper', 
		'styles' : {
			'width'		: data.x+'px', 
			'height'	: data.y+'px', 
			'display'	: 'none' 
			}
		});
		
		self.box		= new Element('div', {'class' : 'fb_box'});
		self.toolbox	= new Element('div', {'class' : 'toolbox', 'styles' : {'visibility' : 'hidden'}});
		var operations	= '<a class="prev" onclick="iBox.prev();"></a><a class="next" onclick="iBox.next();"></a><a class="close" onclick="iBox.hide();"></a>'
		self.toolbox.innerHTML = operations;
		self.description = new Element('div', {'styles' : {'margin': '4px 0px 7px 60px', 'textAlign' : 'center', 'visibility' : 'hidden', 'fontWeight' : 'bold'}});
		self.mainer		= new Element('span', {'class' : 'fb_main', 'styles' : {'visibility' : 'hidden'}});
		// write to html 
		
		self.box.grab(self.toolbox);
		self.box.grab(self.description); 
		self.box.grab(self.mainer);
		self.wrapper.grab(self.box);
		self.document.grab(self.sheet);
		self.document.grab(self.wrapper);
	}
	function resize()
	{ 
		var data = self.document.getSize(); 
		if(data != null)
		{
			self.sheet.setStyle('width',	data.x+'px');
			self.sheet.setStyle('height',	data.y+'px');
			self.wrapper.setStyle('width',	data.x+'px');
			self.wrapper.setStyle('height',	data.y+'px');
		}
	}
	function scroll()
	{ 
		var data = window.getScroll();
		if(data != null)
		{
			self.sheet.setStyle('top',	data.y+'px');
			self.sheet.setStyle('left',	data.x+'px');
			self.wrapper.setStyle('top',	data.y+'px');
			self.wrapper.setStyle('left',	data.x+'px');
		}
	}
	window.addEvent('domready', function() {
		init();
		window.addEvent('scroll',	scroll);
		window.addEvent('resize',	resize);
		window.addEvent('keypress',	self.hide);
		
		if(self.wrapper)
		{
			//self.wrapper.addEvent('click', self.hide);
		}
	});
}
