
function genSide(arr, side, animateSide) {
	out = arr.slice(0,2);
	for(i=0;i<out.length;i++) {
		if(i==0) { var height = 350; var margin = -80; var topp = 50; var layer = -5; }
		if(i==1) { var height = 250; var margin = -150; var topp = 100; var layer= -10; }
		href = $(out[i]).parent().attr('href');

		/*$('div.gallery-images').append('\n<a class="galImg" href="#" style="position: absolute; top: '+top+'px; z-index:'+layer+'; '+side+': '+margin+'px; width: '+(margin*-1)+'px; overflow:hidden;"><img class="galleryImg" src="'+href+'" height="'+height+'" /></a>');*/
		/*$('a:last','div.gallery-images').animate({ opacity: '0.5', side: margin+'px' });*/
		
		if($.browser.safari){
			// KHTML HACK
			$('.gallery-gen').width($('.middleImg').width()+6);//6=2*border
		}
		if(animateSide==true) {
			$('div.gallery-images').append('\n<a class="galImg '+side+'_'+i+'" href="#" style="position: absolute; top: '+topp+'px; z-index:'+layer+'; '+side+':0px; opacity: 0.9; width: '+(margin*-1)+'px; overflow:hidden;"><img class="galleryImg" src="'+href+'" height="'+height+'" /></a>');
			if(side=='left')  { $('a:last','div.gallery-images').animate({ left: margin+'px'}); }
			if(side=='right') { $('a:last','div.gallery-images').animate({ right: margin+'px'}); }
		} else {
			$('div.gallery-images').append('\n<a class="galImg '+side+'_'+i+'" href="#" style="position: absolute; top: '+topp+'px; z-index:'+layer+'; '+side+':'+margin+'px; opacity: 0.9; width: '+(margin*-1)+'px; overflow:hidden;"><img class="galleryImg" src="'+href+'" height="'+height+'" /></a>');
		}

		$('a:last','div.gallery-images').mouseover( function () { $(this).css({ opacity: '1' }) })
			.mouseout(function () { $(this).css({ opacity: '0.9' });});


	}
}

function deIE(str) {
	/* IE hack - problem s absolutni cestou */
	spl = str.split("/");
	return spl[spl.length-1];
}

function closeGallery() {
	$('div.gallery-gen').fadeOut('fast');
}

function makeSides(origSrc, animateSides) {

	/* rozdelime obrazky */
	var potentialImg = $('img.resizable').get();
	left = []; right = [];
	for(i=0;i<potentialImg.length;i++){
		if($(potentialImg[i]).parent().attr('href').match(deIE(origSrc))){ 
			var centerIndex = i; 
		} else {
			if(centerIndex!=null) { right.push(potentialImg[i]); } else { left.push(potentialImg[i]); }
		}
	}

	genSide(left.reverse(),'left', animateSides);
	genSide(right,'right', animateSides);
	$('.galImg').click( function() { regenerate(this); return false; });

}

function regenerate(obj) {

	$('.galImg').remove();
	removeControls(); 

	var origImg = $('img', obj)
	var origImgSrc = origImg.attr('src');

	$('img.middleImg').attr({src: origImgSrc}).css({width: '', opacity: '1', visibility: 'hidden'});

	/* znovu vycentrujeme */
	var center_h = $(window).width()/2-$('img.middleImg').width()/2;
	var center_v = $(window).height()/2-$('img.middleImg').height()/2+$(window).scrollTop();
	$('div.gallery-gen').css({ top: center_v, left: center_h });
	
	makeSides(origImgSrc, false);
	addControls();
	
	$('img.middleImg').css({visibility: 'visible'}).animate({opacity: '1'});

}

function addControls() {
	$('div.gallery-gen').append('<div class="gallery-bar"><div class="gallery-controls"></div><a href="#" class="gallery-close">zavřít</a> </div>');

	if($('a.left_0').get()!='') { 
		$('div.gallery-controls').append('<a href="#" class="gallery-left">předchozí</a>');
		$('a.gallery-left').click(function() { regenerate($('a.left_0')); return false; });
	}

	if($('a.right_0').get()!='') { 
		$('div.gallery-controls').append('<a href="#" class="gallery-right">další</a>');
		$('a.gallery-right').click(function() { regenerate($('a.right_0')); return false; });
	}
	$('a.gallery-close').click(function() { closeGallery(); return false; });

}
function removeControls() {
	$('div.gallery-bar').remove();
}

function animateResize(obj) {

	var height = '450';
	
	$('body').append('<div class="gallery-gen" style="position:absolute;visibility:hidden; display:block;"><div class="gallery-images"><img class="middleImg" src="'+$('img',obj).parent().attr('href')+'" /></div></div>');

	var galleryDiv = $('div.gallery-gen');
	var thumbImg = $('img',obj);
	var middleImg = $('img.middleImg',galleryDiv);

	middleImg.one('load', function(){ 
	
		var srcImg =  $('img.resizable', 'a[href$='+deIE($(this).attr('src'))+']');
		var orig_width = this.width;
		var orig_height = this.height;

		/* pokud se nam z IE6 vrati nulove hodnoty zkusime zrekonstruovat rozmery z nahledu */

		if(orig_width==0 || orig_height==0) {
			pomer = thumbImg.width()/thumbImg.height();			
			orig_width = Math.round(height*pomer);
			orig_height = height;
		}
		
		var center_h = $(window).width()/2-orig_width/2;
		var center_v = $(window).height()/2-height/2+$(window).scrollTop();

		middleImg.css({ width: srcImg.width(), height: srcImg.height() });
		galleryDiv.css({top: srcImg.offset()['top'], left: srcImg.offset()['left'], 
				    position: 'absolute',  zIndex:100, visibility: 'visible' });
		galleryDiv.animate({top: center_v, left: center_h});
		middleImg.animate({ width: orig_width*(height/orig_height)+'px', height: height+'px' }, false, false, function() { 
			makeSides($(this).attr('src'), true);
			addControls();
		});
	});

	middleImg.click(closeGallery);
	return false;
}

function animateResizeSimple(obj) {

	var maxHeight = '600';
	var maxWidth = '700'
	
	$('body').append('<div class="gallery-gen" style="position:absolute;visibility:hidden; display:block;"><div class="gallery-images"><img class="middleImg" src="'+$('img',obj).parent().attr('href')+'" /></div></div>');	

	var galleryDiv = $('div.gallery-gen');
	var thumbImg = $('img',obj);
	var middleImg = $('img.middleImg',galleryDiv);
	var srcImg =  $('img.resizableSimple', obj);
	
	//loader = loaderAnim(srcImg);

	middleImg.one('load', function(){
	
		//loader.remove();
		var orig_width = this.width;
		var orig_height = this.height;

		pomer = thumbImg.width()/thumbImg.height();		

		/* pokud se nam z IE6 vrati nulove hodnoty zkusime zrekonstruovat rozmery z nahledu {{ */
		if(orig_width==0 || orig_height==0) {
			alert('fdfs');
			orig_width = Math.round(maxSide*pomer);
			orig_height = maxHeight;
		}
		/* }} */
		
		if(orig_height>maxHeight) {
			orig_height = maxHeight;			
			orig_width = Math.round(orig_height*pomer);
		}
		
		if(orig_width>maxWidth) {
			orig_width = maxWidth;			
			orig_height = Math.round(orig_width*(thumbImg.height()/thumbImg.width()));
		}		
		
		var center_h = ($(window).width()/2)-(orig_width/2);
		var center_v = ($(window).height()/2)-(orig_height/2)+$(window).scrollTop();
		
		middleImg.css({ width: srcImg.width(), height: srcImg.height() });
		galleryDiv.css({top: srcImg.offset()['top'], left: srcImg.offset()['left'], 
				    position: 'absolute',  zIndex:100, visibility: 'visible' });
		galleryDiv.animate({top: center_v, left: center_h});

		middleImg.animate({ width: orig_width+'px', height: orig_height+'px' }, false, false, function() { 
			/*makeSides($(this).attr('src'), true);*/
			addControls();
		});

	});



	middleImg.click(closeGallery);
	return false;
}

$(document).ready(
	function() {
		$('img.resizableSimple').parent().click( 
			function() {
				$('.gallery-gen').remove();
				animateResizeSimple(this);
				return false;
			}
		);
		$('img.resizable').parent().click( 
			function() {
				$('.gallery-gen').remove();
				animateResize(this);
				return false;
			}
		);
	}
);
