/* __________________________________________________________________
		Name: piroBox v.1.2 BETA
		Date: October 2009
		Use: just  another gallery.
		Autor: Diego Valobra (http://www.pirolab.it),(http://www.diegovalobra.com)
		Version: 1.2 BETA
		Licence: CC-BY-SA http://creativecommons.org/licenses/by-sa/2.5/it/
_______________________________________________________________________________*/

(function(a){
a.fn.piroBox=function(b){
	b=jQuery.extend({
		my_speed:null,
		close_speed:300,
		bg_alpha:0.5,
		this_next:"next_out",
		this_prev:"prev_out",
		radius:4,
		credit:a(jQuery('<div class="credits"><a href="/pirobox/" title="view plugin" target="_blank">Pirobox V.1.2</a></div>'))
	},b);
	a.fn.fixPNG=function(){
		return this.each(
			function(){
				var d=a(this).css("backgroundImage");
				if(d.match(/^url\(["']?(.*\.png)["']?\)$/i)){
					d=RegExp.$1;
					a(this).css({
						backgroundImage:"none",
						filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod="+(a(this).css("backgroundRepeat")=="no-repeat"?"crop":"scale")+", src='"+d+"')"
					}).each(function(){
						var e=a(this).css("position");
						if(e!="absolute"&&e!="relative"){a(this).css("position","relative")}
					})
				}
			}
		)
	};
	function c(){
		var k=a(jQuery('<tr><td colspan="3" class="pirobox_up"></td></tr><tr><td class="t_l"></td><td class="t_c"></td><td class="t_r"></td></tr><tr><td class="c_l"></td><td class="c_c"><span><span></span></span><div></div></td><td class="c_r"></td></tr><tr><td class="b_l"></td><td class="b_c"></td><td class="b_r"></td></tr><tr><td colspan="3" class="pirobox_down"></td></tr>'));
		var r=a("a.pirobox_gall");
		var m=a("a.pirobox");
		var p=a(window).height();
		var d=a(jQuery('<div class="bg_thumbs" style="display: none"></div>').css({opacity:+b.bg_alpha,height:p+"px"}));
		var e=a(jQuery('<table class="pirobox_content" cellpadding="0" cellspacing="0"></table>'));
		var q=a(jQuery('<div class="caption" style="display: none"></div>').css({opacity:"0.8","-moz-border-radius":b.radius+"px","-khtml-border-radius":b.radius+"px","-webkit-border-radius":b.radius+"px","border-radius":b.radius+"px"}));
		var g=a(jQuery('<div class="piro_nav"></div>'));
		var o=a(jQuery('<div class="thumbs_close"></div>'));
		var f=a(jQuery('<a href="#prev" class="'+b.this_prev+'"></a>'));
		var j=a(jQuery('<a href="#next" class="'+b.this_next+'"></a>'));
		var l=r.length;r.each(function(s){this.rel=s+1+"&nbsp;of&nbsp;"+l});
		a(window).resize(function(){
			var s=a(window).height();
			d.css({visibility:"visible",height:+s+"px"})
		});
		a("a.pirobox_gall:first").attr("id","first");
		a("a.pirobox_gall:last").attr("id","last");
		a("body").append(d).append(e);
		e.append(k);
		a(".pirobox_up").append(o).append(b.credit);
		a(".pirobox_down").append(g);
		g.append(f).append(j).append(q);
		if(f.is(".prev_out")||j.is(".next_out")){
			a("body").append(f).append(j);
			f.add(j).hide()
		} else {
			g.append(f).append(j)}e.hide();
			f.add(j).click(function(u){
				u.preventDefault();
				var s=parseInt(r.filter(".item").attr("rev"),10);
				var t=a(this).is(".prev_out,.prev")?r.eq(s-1):r.eq(s+1);
				if(!t.size()){
					t=a(this).is(".prev_out,.prev")?r.eq(r.size()-1):r.eq(0)
				}
				if(t.size()){
				t.click();
				o.add(q).add(j).add(f).add(".credits").css("visibility","hidden")}
			});
			m.each(function(t){
				var s=a(this);
				s.click(function(w){
					w.preventDefault();
					i(s.attr("href"));
					s.children().fadeTo(100,0.1);
					var u=s.attr("href");
					var v=s.attr("tooltip");
					if(v==""){
						q.html("<p>"+u+"<a href="+u+' class="link_to" target="_blank" title="Otwórz w nowym oknie"></a></p>')
					} else {
						q.html("<p>"+v+"<a href="+u+' class="link_to" target="_blank" title="Otwórz w nowym oknie"></a></p>')
					}
					a(".c_c").addClass("unique");
					j.add(f).add(o).add(q).css("display","none")
				})
			});
			r.each(function(t){
				var s=a(this);
				s.click(function(x){
					x.preventDefault();
					i(s.attr("href"));
					var u=s.attr("href");
					var w=s.attr("tooltip");
					var v=s.attr("rel");
					if(w==""){
						q.html("<p>"+u+'<em class="number">'+v+"</em><a href="+u+' class="link_to" target="_blank" title="Otwórz w nowym oknie"></a></p>')
					} else {
						q.html("<p>"+w+'<em class="number">'+v+"</em><a href="+u+' class="link_to" target="_blank" title="Otwórz w nowym oknie"></a></p>')
					}
					if(s.is("#last")){
						a(".number").css("text-decoration","underline")
					} else {
						a(".number").css("text-decoration","none")
					}
					if(s.is("#first")){
						f.hide();j.show()
					} else {
						j.add(f).show()
					}
					if(s.is("#last")){
						f.show();
						j.hide()
					} else {}
					if(t==t){
						r.filter(".item").removeClass("item").children().fadeTo(100,1);
						s.addClass("item").children().fadeTo(100,0.1);
						a(".c_c").removeClass("unique")
					} else {
						if(t==0){
							j.add(f).hide()
						}
					}
				});
				s.attr({rev:t})
			});
			var i=function(s){
				o.add(q).add(j).add(f).add(".credits").css("visibility","hidden");
				if(e.is(":visible")){
					a(".c_c div").children().fadeOut(300,function(){
						a(".c_c div").children().remove();h(s)
					})
				} else {
					a(".c_c div").children().remove();
					e.show();
					d.fadeIn(300,function(){
						h(s)
					})
				}
			};
			a.browser.msie6=(a.browser.msie&&/MSIE 6\.0/i.test(window.navigator.userAgent));
			if(a.browser.msie6&&!/MSIE 8\.0/i.test(window.navigator.userAgent)){
				a(".t_l,.t_c,.t_r,.c_l,.c_r,.b_l,.b_c,.b_r,a.next, a.prev,a.prev_out,a.next_out,.c_c,.thumbs_close").fixPNG();
				var n=a(document).height();
				d.css("height",n+"px")
			}
			if(a.browser.msie){
				b.close_speed=0
			}
			var h=function(v){
				if(e.is(".loading")){
					return
				}
				e.addClass("loading");
				var t=new Image();
				t.onerror=function(w){
					var x=a(e).height();
					e.css({marginTop:parseInt(a(document).scrollTop())-(x/1.9)});
					a(".c_c div").append('<p class="err_mess">There seems to be an Error:&nbsp;<a href="#close" class="close_pirobox">Close Pirobox</a></p>');
					a(".close_pirobox").click(function(){
						e.add(d).fadeOut(b.close_speed);
						r.add(m).children().fadeTo(100,1);e.removeClass("loading");
						return false
					})
				};
				t.onload=function(F){
					var z=t.height;
					var B=t.width;
					var y=a(e).height();
					var D=a(window).height();
					var x=a(window).width();
					if(z+100>D||B+100>x){
						var w=B;
						var C=z;
						var E=(B+100)/x;
						var A=(z+100)/D;
						if(A>E){
							w=Math.round(B*(1/A));
							C=Math.round(z*(1/A))
						} else {
							w=Math.round(B*(1/E));
							C=Math.round(z*(1/E))
						}
						z+=C;
						B+=w;
						a(t).height(C).width(w).hide();
						a(".c_c div").animate({height:C+"px",width:w+"px"},b.my_speed);
						e.animate({height:(C+20)+"px",width:(w+20)+"px",marginLeft:"-"+((w)/2+10)+"px",marginTop:parseInt(a(document).scrollTop())-(C/1.9)-10},b.my_speed,function(){
							a(".piro_nav,.caption").css({width:(w/1.3)+"px"});
							a(".piro_nav").css("margin-left","-"+(w/1.3)/2+"px");
							var G=q.height();
							q.css({bottom:"-"+(G+10)+"px"});
							a(".c_c div").append(t);
							o.css("display","block");
							j.add(f).add(o).add(".credits").css("visibility","visible");
							q.css({visibility:"visible",display:"block"});
							a(t).show().fadeIn(300);e.removeClass("loading")
						})
					} else {
						a(t).height(z).width(B).hide();
						a(".c_c div").animate({height:z+"px",width:B+"px"},b.my_speed);
						e.animate({height:(z+20)+"px",width:(B+20)+"px",marginLeft:"-"+((B)/2+10)+"px",marginTop:parseInt(a(document).scrollTop())-(z/1.9)-10},b.my_speed,function(){
							a(".piro_nav,.caption").css({width:(B/1.3)+"px"});
							a(".piro_nav").css("margin-left","-"+(B/1.3)/2+"px");
							var G=q.height();
							q.css({bottom:"-"+(G+10)+"px"});
							a(".c_c div").append(t);
							o.css("display","block");
							j.add(f).add(o).add(".credits").css("visibility","visible");
							q.css({visibility:"visible",display:"block"});
							a(t).fadeIn(300);
							e.removeClass("loading")
						})
					}};
					var s=a(window).height();
					var u=a(f).height();
					a(".prev_out").add(".next_out").css({marginTop:parseInt(a(document).scrollTop())+(s/u-125)});
					a(".caption p").css({"-moz-border-radius":b.radius+"px","-khtml-border-radius":b.radius+"px","-webkit-border-radius":b.radius+"px","border-radius":b.radius+"px"});
					t.src=v;
					if(a(e).is(":visible")){
						window.onscroll=function(){
							var y=a(e).height();
							e.css({marginTop:parseInt(a(this).scrollTop())-(y/1.9)});
							var w=a(window).height();
							var x=a(f).height();
							a(".prev_out").add(".next_out").css({marginTop:parseInt(a(document).scrollTop())+(w/x-125)})}}d.add(o).click(function(w){
								if(a(t).is(":visible")){
									w.preventDefault();
									o.add(d).add(e).add(q).add(j).add(f).fadeOut(b.close_speed);
									e.removeClass("loading");
									r.add(m).children().fadeTo(100,1)
								}
							});
							a().bind("keydown.thumbs_close",function(w){
								if(w.keyCode===27||w.keyCode===8){
									w.preventDefault();
									if(a(t).is(":visible")||a(".c_c>div>p>a").is(".close_pirobox")){
										o.add(d).add(e).add(q).add(j).add(f).fadeOut(b.close_speed);
										e.removeClass("loading");
										r.add(m).children().fadeTo(100,1)
									}
								}
							}).bind("keydown.next",function(w){
								if(a(".c_c").is(".unique")||a(".item").is("#first")){
								} else {
									if(a(".c_c").is(".c_c")&&(w.keyCode===37)){
										w.preventDefault();
										if(a(t).is(":visible")){
											f.click()
										}
									}
								}
								if(a(".c_c").is(".unique")||a(".item").is("#last")){
								} else { 
									if(a(".c_c").is(".c_c")&&(w.keyCode===39)){
										w.preventDefault();
										if(a(t).is(":visible")){j.click()}
									}
								}
							})
			}}c()}})(jQuery);