ImageLayer =
{
	dirname : envHttpPath + '/varia/data/products/',

	move : function(event)
	{
		img = event.element();
		$('product-main-miniature').down('img').src = ImageLayer.dirname + '200x200/' + img.id;
		$('product-main-miniature').down('img').id = img.id;
	},

	render : function(event)
	{
		// scroll na 0,0 jeśli bylismy na dole strony...
		window.scrollTo(0,0);

		var img = event.element();
		var imgId = /^\w+\-(\w{32}\.\w+)$/.exec(img.id)[1];

		// text o ładowaniu
		var loading = document.createElement('span');
			loading.appendChild(document.createTextNode('Ładuję...'));

		// stwórz obrazek do preloadu...
		var previewImageToShow = new Image();
			$(previewImageToShow).addClassName('zoomedImage');
			$(previewImageToShow).id = 'imagePreview-' + imgId;

		// warstwa trzymająca obrazek musi być niezależna, żeby nie dziedziczyć opacity
		var previewImageDiv = document.createElement('div');
			$(previewImageDiv).addClassName('zoomedImage');
			$(previewImageDiv).id = 'imagePreviewDiv-' + imgId;
			$(previewImageDiv).appendChild(loading);
			$(previewImageDiv).appendChild(previewImageToShow);
			$(previewImageDiv).appendChild(loading.cloneNode(true));

		// dodaj obrazek dopiero po załadowaniu....
		$(previewImageToShow).observe('load',function(imageLoadEvent){
			var loadedImage = $(imageLoadEvent.element());

			loadedImage.previous('span').innerHTML = 'Kliknij aby zamknąć';
			loadedImage.next('span').innerHTML = 'Kliknij aby zamknąć';
			loadedImage.style.display = 'inline';
		});

		// dodaj obserwacje kliknięcia (zamykanie...)
		$(previewImageToShow).observe('click',ImageLayer.stopRendering);
		$(previewImageDiv).observe('click',ImageLayer.stopRendering);
		$('image-layer').observe('click', ImageLayer.stopRendering);

		$('image-layer').setStyle({display: 'block', 'height': ImageLayer.getSize()[1] + 'px'});
		$('image-layer').setOpacity(0.6);

		document.getElementsByTagName('body')[0].appendChild(previewImageDiv);

		// hide selects (IE6 bug)...
		$$('select').each(function(found){ $(found).style.visibility = 'hidden'; });

		previewImageToShow.src = ImageLayer.dirname + imgId;
	},

	stopRendering : function(ev)
	{
		// stop click event from bubbling...
		ev.stop();

		// remove div with zoomedImage
		var zoomedImageDiv = $$('div.zoomedImage')[0];
			zoomedImageDiv.parentNode.removeChild(zoomedImageDiv);

		// hide bg....
		$('image-layer').setStyle({display: 'none'});

		// show selects (IE6 bug)...
		$$('select').each(function(found){ $(found).style.visibility = 'visible'; });
	},

	onLoad : function()
	{
		if($('product-main-miniature').down('img.exists') != null)
			$('product-main-miniature').down('img').observe('click', ImageLayer.render);

		if($('product-secondary-miniatures') != null)
			$$('.secondary-miniature').each( function(e) { e.observe('click', ImageLayer.render); } );

		// zamykanie kliknięciem warstwy (dodanego raz nie trzeba potem usuwać...)
		$('image-layer').observe('click', ImageLayer.stopRendering);
	},

	getSize: function () {


		if (window.innerHeight != undefined && window.scrollMaxY  != undefined) {// Firefox
			var yWithScroll = window.innerHeight + window.scrollMaxY;
			var xWithScroll = window.innerHeight + window.scrollMaxX;

		}else if(window.innerHeight  && document.body.scrollHeight > document.body.offsetHeight){
			var yWithScroll = (window.innerHeight >document.body.scrollHeight)?window.innerHeight:document.body.scrollHeight;
			var xWithScroll = (window.innerHeight >document.body.scrollWidth)?window.innerHeight:document.body.scrollWidth;

		} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
			var yWithScroll = document.body.scrollHeight;
			var xWithScroll = document.body.scrollWidth;

		} else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
			var yWithScroll = document.body.offsetHeight;
			var xWithScroll = document.body.offsetWidth;
		}

		return [xWithScroll,yWithScroll];
	}

};

Event.observe(window, 'load', ImageLayer.onLoad);
