/**
 * Gallery box Slim version
 * @author DaVee
 * @version 0.92
 * @license under WTFPL 2.0
 */
function GalleryBoxSlim(g,e){e===void 0&&(e="slim");if($("#gallery-"+e).length!=0)return!1;var f=(navigator.userLanguage||navigator.language).substr(0,2).toLowerCase();this.text={en:{prev:"previous",next:"next",close:"close",loading:"loading ...",error:"Image not found."},cs:{prev:"p\u0159edchoz\u00ed",next:"dal\u0161\u00ed",close:"zav\u0159\u00edt",loading:"na\u010d\u00edt\u00e1 se ...",error:"Obr\u00e1zek nelze na\u010d\u00edst."}};this.ident="#gallery-"+e;this.locale=this.text[f]!==void 0?this.text[f]: this.text.en;this.imgCount=this.imgShow=0;this.srcs=[];this.titles=[];this.load=function(a){var b=this;$(a).each(function(){var d=$(this).find("a");d.length!=0?$(d).each(function(){b.loadImage(this)}):b.loadImage(a)})};this.loadImage=function(c){if($(c).attr("href")!==void 0){this.srcs.push($(c).attr("href"));this.titles.push($(c).children("img").attr("title"));var b=this.imgCount+0;$(c).click(function(){a.show(b);return!1});this.imgCount++}};this.show=function(a){var b=this,d=new Image;b.imgShow= a;$(b.ident).css("display")=="none"&&($.browser.msie&&jQuery.browser.version<8&&$(b.ident+" .gallery-box").css("margin-top",0),$(b.ident+" .gallery-box").css("top",$(window).scrollTop()),$(b.ident).fadeIn(500),b.center());$(b.ident+" .gallery-box p").text(b.locale.loading);$(b.ident+" .gallery-box-image img").fadeOut(200,function(){$(b.ident+" .gallery-box-image img").remove();$(d).load(function(){var h=$(d).attr("height"),e=$(d).attr("width");$(b.ident+" .gallery-box").width(e);$(b.ident+" .gallery-box-image").height(h).width(e).append(this);b.center();$(b.ident+" .gallery-box-image img").fadeIn(200);$(b.ident+" .gallery-box p").text(b.titles[b.imgShow]);$(b.ident+" .gallery-box #gallery-position-num").text(a+1)}).error(function(){$(d).stop(!0,!0);$(b.ident+" .gallery-box-image").append(new Image);$(b.ident+" .gallery-box p").text(b.locale.error);$(b.ident+" .gallery-box #gallery-position-num").text(a+1)}).attr("src",b.srcs[b.imgShow])});this.imgShow==0?$(b.ident+" a.gallery-box-left").hide():$(b.ident+" a.gallery-box-left").show();this.imgShow== this.imgCount-1?$(b.ident+" a.gallery-box-right").hide():$(b.ident+" a.gallery-box-right").show()};this.center=function(){var c=Math.round(($(window).height()-$(a.ident+" .gallery-box").height())/2);if($.browser.msie&&jQuery.browser.version<8){var b=parseFloat($(a.ident+" .gallery-box").css("margin-top").replace("px","")),d=parseFloat($(a.ident+" .gallery-box").css("top").replace("px",""));jQuery.browser.version<7&&(c=Math.round(c/2));$(a.ident+" .gallery-box").css("top",c>0?d+c-b+"px":d+0-b+"px");$(a.ident+" .gallery-box").css("margin-top",c>0?c+"px":"0px");jQuery.browser.version<7&&($(a.ident+" .gallery-box").css("left",Math.round(($(window).width()-$(a.ident+" .gallery-box").width())/2)+"px"),$(a.ident+" .gallery-box-black").height($(window).height()>$(document).height()?$(window).height():$(document).height()).width($(window).width()>$(document).width()?$(window).width():$(document).width()),$(a.ident+" .gallery-box").offset().top+$(a.ident+" .gallery-box").height()>$(a.ident+" .gallery-box-black").height()&& $(a.ident+" .gallery-box-black").height($(a.ident+" .gallery-box").offset().top+$(a.ident+" .gallery-box").height()),$(a.ident+" .gallery-box").width()>$(a.ident+" .gallery-box-black").width()&&$(a.ident+" .gallery-box-black").width($(a.ident+" .gallery-box").width()))}else $(a.ident+" .gallery-box").css("margin-top",c>0?c+"px":0)};this.scroll=function(a){a?this.imgShow>0&&this.show(this.imgShow-1):this.imgShow<this.imgCount-1&&this.show(this.imgShow+1);return!1};this.createLink=function(a){for(var b= this,d=$("#"+a+" img").attr("src"),d=d.substring(d.lastIndexOf("/")+1),e=0;e<this.srcs.length;e++)if(this.srcs[e].indexOf(d)>0){$("#"+a).click(function(){b.show(e);return!1});$("#"+a).css("cursor","pointer");break}};var a=this;this.load(g);$("body").append('<div id="gallery-'+e+'" class="gallery-box-all"><div class="gallery-box-black"></div><div class="gallery-box"><div class="gallery-box-image"><img src="" /></div><div class="gallery-box-info"><a class="gallery-box-left" title="'+a.locale.prev+'"><span>&lt;</span></a><span id="gallery-position-num">1</span> / '+ a.srcs.length+'<a class="gallery-box-right" title="'+a.locale.next+'"><span>&gt;</span></a><a class="gallery-box-close" title="'+a.locale.close+'"><span>X</span></a></div><p></p><div class="gallery-box-clear"></div></div></div>');a.imgCount>1&&($(a.ident+" a.gallery-box-left").click(function(){return a.scroll(!0)}),$(a.ident+" a.gallery-box-right").click(function(){return a.scroll(!1)}),$(document).keydown(function(c){$(a.ident+":visible").length!=0&&(c.keyCode=="37"?a.scroll(!0):c.keyCode=="39"&& a.scroll(!1))}));$(a.ident+" a.gallery-box-close").click(function(){$(a.ident).fadeOut(500);return!1});$(a.ident+" .gallery-box-black").click(function(){$(a.ident).fadeOut(500)});return!0};

function GalleryCarousel (element,loader) {
	this.time = 4000;
	this.view = element;
	this.loader = loader;
	this.images = $(this.view).find("img");
	this.show = 0;
	this.count = this.images.length;
	this.loaderStats = 0;

	this.reposition = function () {
		var sideWidth = ($(window).width() - 960) / 2;
		$("#carousel-mask-left").width(sideWidth);
		$("#carousel-mask-right").width(sideWidth);
		var center = $(window).width() / 2;
		var imgPos = $(this.images[this.show]).offset().left;
		var imgWidth = $(this.images[this.show]).width();
		return (center -imgPos - (imgWidth / 2));
	}
	
	this.start = function (force) {
		if (++this.loaderStats == this.count || force === true) {
			var box = this;
			$(this.view).parent().append('<div id="carousel-mask-left"></div><div id="carousel-mask-right"></div>');
			$(this.view).prepend($(this.images).clone());
			$(this.view).append($(this.images).clone());
			$(this.view).fadeIn("normal", function () {
				$(box.loader).hide();
			});
			$(this.view).css('left', this.reposition()+'px');
			$(window).resize( function () { $(box.view).css('left', $(this.view).offset().left + box.reposition()+'px'); });

			setTimeout("this.slide()", this.time);
		}
	}
	
	this.slide = function () {
		var old = $(this.view).offset().left;
		if (this.show == (this.count-1)) {
			var box = this;
			var center = $(window).width() / 2;
			var imgPos = $(this.images[this.show]).offset().left + $(this.images[this.show]).width();
			this.show = 0;
			var imgWidth = $(this.images[this.show]).width();			
			$(this.view).animate({left: old + (center -imgPos - (imgWidth / 2)) + 'px'}, 
				1000, 
				function () {
					$(box.view).css('left', $(box.images[0]).offset().left+'px');
				});
		}
		else {
			this.show++;
			
			$(this.view).animate({left: old + this.reposition() + 'px'});
		}

		setTimeout("this.slide()", this.time);
	}

	if (this.count > 0) {
		var box = this;
		if ($.browser.msie && jQuery.browser.version < 9) {
			box.start(true);
		}
		else {
			$(this.images).load( function () {
				box.start(false);
			});
		}
	}
}

function Slider (element) {
	this.slider = element+"js";
	this.grid = 1;
	this.activeFrame = -1;
	this.frames = Array();
	this.min = parseInt($(element).attr('min'));
	this.max = parseInt($(element).attr('max'));

	var slide = this;
	$(element).after('<div id="' + this.slider.substr(1) + '" class="slider"><span class="min"></span><span class="current"></span><span class="max"></span></div>');
	$(element).hide();

	if ($(element).attr('step') != "") this.grid = (($(this.slider).width() - $(this.slider+" .current").width()) / (this.max - this.min)) * $(element).attr('step');
//	$(this.slider+" .min").text(this.min);
	$(this.slider+" .current").text($(element).val());
//	$(this.slider+" .max").text(this.max);

	$(this.slider+" .current").draggable({axis: "x", containment: this.slider, drag: function() {slide.move()}, cursor: "move"});
	$(this.slider).click( function (e) {slide.click(e)} );

	this.move = function () {
		var pos = Math.round(($(this.slider+" .current").position().left) / this.grid) + this.min;
		if (pos >= this.min && pos <= this.max) {
			$(this.slider+" .current").text(pos);
			$(element).val(pos);
			this.setFrame(pos);
		}
	}

	this.click = function (e) {
		var width = $(slide.slider + " .current").width();
		var pos = e.pageX - $(this.slider).offset().left - Math.round(width / 2);
		if (pos < $(slide.slider).width()) {
			if (pos < 0) pos = 0;
			else if (pos > ($(slide.slider).width() - width) ) pos = $(slide.slider).width() - width;
			$(slide.slider + " .current").css('left', pos);
			slide.move();
		}
	}

	this.set = function (value) {
		var pos = Math.round((value - this.min) * this.grid);
		$(this.slider+" .current").css('left', pos);
		this.setFrame(value);
	}

	this.addFrame = function (min, max) {
		this.frames.push(Array(min,max));
		this.setFrame($(element).val());
	}

	this.setFrame = function (value) {
		for (var i = 0; i < this.frames.length; i++) {
			if (this.frames[i][0] <= value && value <= this.frames[i][1]) {
				if (slide.activeFrame != i) {
					$(".size-group").removeClass('select');
					$(".size-group").eq(i).addClass('select');
					slide.activeFrame = i;
				}
				break;
			}
		}
	}
	this.set($(element).val());
}


function magnifyingGlass (element) {
	this.view = element;
	this.viewImage = $(element).find("img");
	this.viewHeight = $(this.view).height();
	this.viewWidth = $(this.view).width();
	this.viewX = $(this.view).offset().left;
	this.viewY = $(this.view).offset().top;
	this.glass = "#magnify-glass";
	this.glassBack = "#magnify-background";
	this.glassBorders = 30;
	this.glassHeight = 0;
	this.glassWidth = 0;
	this.image = new Image();
	
	this.load = function (src) {
		var box = this;
		$(box.image).load(function () {
			box.glassHeight = $(box.viewImage).height() * ( $(box.image).attr('height') / $(box.viewImage).height()) + box.glassBorders;
			box.glassWidth = $(box.viewImage).width() * ( $(box.image).attr('width') / $(box.viewImage).width()) + box.glassBorders;
			$(box.view).parent().append('<div id="'+box.glassBack.substr(1)+'"><div id="'+box.glass.substr(1)+'"></div></div>');
			$(box.viewImage).mousedown( function (e) {box.show(e);});
			//$(box.glass).mouseout( function () {box.hide();});
			$(box.glass).mousemove( function (e) {box.move(e);});
			$(box.glass).mousedown( function () {/* $(box.glass).css('background-image','none'); */box.hide();});
			$(box.glass)
				.height( box.glassHeight )
				.width( box.glassWidth );
		}).attr('src', src);
	}
	
	this.show = function (e) {
		this.viewX = $(this.view).offset().left;
		this.viewY = $(this.view).offset().top;
		$(this.glassBack).stop(true,true);
		$(this.glass).css('background-image','url("' + $(this.image).attr('src') + '")');
		this.move(e);
		$(this.glassBack).fadeIn(500);
		if ($("#submenu").lenght != 0) {
			$("#submenu").stop(true,true);
			$("#submenu").fadeOut(500);
		}
	}
	
	this.hide = function () {
		var box = this;
		$(this.glassBack).stop(true,true);
		$(this.glassBack).fadeOut(500, function () {
			$(box.glass).css('background-image','none');
		});
		if ($("#submenu").lenght != 0) {
			$("#submenu").stop(true,true);
			$("#submenu").fadeIn(500);
		}
	}
	
	this.move = function (e) {
		var newX = 0;
		var newY = 0;
		newX = (this.viewX - e.pageX) * ((this.glassWidth - this.viewWidth) / this.viewWidth) + this.viewX;
		newY = (this.viewY - e.pageY) * ((this.glassHeight - this.viewHeight) / this.viewHeight);
		$(this.glass).css('left',newX+'px');
		$(this.glass).css('top',newY+'px');
	}

	var src = $(this.view).find("img").attr('src');
	if (src !== undefined || src != '') this.load(src.replace('/bm_', '/'));
}

function scrollUp () {
	$("html, body").animate({scrollTop: 0}, "normal");
//	window.scrollTo(0,0);
	return false;
}

$(document).ready( function () {
	var time = 200;
	var timeDown = 300;
	var effect = "linear";
	$("#collection li[class!=select]").hover(
		function () {
			$(this).stop(true,false);
			$(this).find("span.sleft").stop(true,false);
			$(this).find("span.sright").stop(true,false);

			$(this).addClass("select");
			$(this).css('backgroundPosition','0 22px');
			$(this).find("span.sleft").css('backgroundPosition','0 22px');
			$(this).find("span.sright").css('backgroundPosition','-8px 22px');
			$(this).animate({ backgroundPosition: '0 0' }, time, effect);
			$(this).find("span.sleft").animate({ backgroundPosition: '0 0' }, time, effect);
			$(this).find("span.sright").animate({ backgroundPosition: '-8px 0' }, time, effect);
			
		},
		function () {
			$(this).stop(true,false);
			$(this).find("span.sleft").stop(true,false);
			$(this).find("span.sright").stop(true,false);
			$(this).animate({ backgroundPosition: '0 22px' }, timeDown, effect, function () {
				$(this).removeClass("select");
			});
			$(this).find("span.sleft").animate({ backgroundPosition: '0 22px' }, timeDown, effect);
			$(this).find("span.sright").animate({ backgroundPosition: '-8px 22px' }, timeDown, effect);
		}
	);
});
