var ImageBOX = {
	obj:null,preObj:null,src:null,title:null,cY:200,cX:200,pY:0,pX:0,group:null,asX:0,asY:0,
	init: function() {
		var as = $T("a");
		for(var i=0;i<as.length;i++) {
			var a = as[i];
			if($$.get(a,"href") && $$.get(a,"rel") == "lightbox") {
				a.onclick = function() {
					var title = $pick($$.get(this,"title"),"No Caption");
					ImageBOX.group = (this.className != null && this.className != "" ? this.className : null);
					ImageBOX.create($$.get(this,"href"),title);
					return false;
				};
			}
		}
	},
	create:function(g,t) {
		if($null($("lightImg"))) {
			Activity.overlay.on();
			var o = PItO.show({element:"lightImg",width:ImageBOX.cX,height:ImageBOX.cY,zIndex:100,draggable:false});
			Opacity.init({obj:o,start:0,end:100,delay:1,speed:20});
		} else {
			var o = $("lightImg");
			o.onclick = function() { return false; };
			DOM.remove(o,$("lightboxImage"));
			DOM.remove(o,$("lightboxClose"));
			DOM.remove(o,$("lightboxCaption"));
			if($("lightboxPrev")) { DOM.remove(o,$("lightboxPrev")); }
			if($("lightboxNext")) { DOM.remove(o,$("lightboxNext")); }
		}
		this.title = t;
		this.src = g;
		ImageBOX.embed();
		CSS.set(o,"background","#fff url('"+lb_loading+"') no-repeat center");
		var imgPreload = new Image();
		imgPreload.onload = function () {
			var outX = Math.abs(parseInt(this.width) - parseInt(o.style.width));
			var outY = Math.abs(parseInt(this.height) - parseInt(o.style.height));
			var xF = "";
			var yF = "";
			var inX = parseInt(this.width);
			var inY = (parseInt(this.height)+45);
			ImageBOX.cX = inX;
			ImageBOX.cY = inY;
			if(!$null($("lightImg"))) {
				if(outX != outY) {
					ImageBOX.asX = o.offsetWidth;
					ImageBOX.asY = o.offsetHeight;
					ImageBOX.animateX();
				} else if(outY == outX) {
					ImageBOX.loadImage();
				}
				$("lboverlay").onclick = function() { return false; };
			}
		};
		imgPreload.src = g;
	},
	animateX:function() {
		if(ImageBOX.pX != ImageBOX.cX)
			Animation.x.init({element:"lightImg",start:ImageBOX.asX,end:ImageBOX.cX,limit_speed:20,oncomplete:ImageBOX.animateY});
		else ImageBOX.animateY();
		ImageBOX.pX = ImageBOX.cX;
	},
	animateY:function() {
		if(ImageBOX.pY != ImageBOX.cY)
			Animation.y.init({element:"lightImg",start:ImageBOX.asY,end:ImageBOX.cY,limit_speed:20,oncomplete:ImageBOX.loadImage});
		else ImageBOX.loadImage();
		ImageBOX.pY = ImageBOX.cY;
	},
	embed: function() {
		var img = $A("img");
		$$.set(img,"id","lightboxImage");
		CSS.styler({ obj:img, css:[{"visibility":"hidden","display":"none"}] });
		var iCl = this.closeBtn();
		var iAn = this.caption();
		var o = $("lightImg");
		iCl.onclick = function(){ 
			PItO.hide("lightImg");
			this.obj = null;
			this.title = null;
			Activity.overlay.off();
		};
		DOM.add(o,img);
		DOM.add(o,iCl);
		DOM.add(o,iAn);
		if(this.group != null) {
			var lbgroup = 0;
			var lbgrouphref = new Array();
			var lbgrouptitle = new Array();
			var lbselected = 0;
			var as = $T("a");
			for(var i=0;i<as.length;i++) {
				var a = as[i];
				if($$.get(a,"class") == ImageBOX.group) {
					lbgrouphref[lbgroup] = $$.get(a,"href");
					lbgrouptitle[lbgroup] = ($$.get(a,"title") ? $$.get(a,"title") : "");
					if($$.get(a,"href") === ImageBOX.src) lbselected = lbgroup;
					lbgroup++;
				}
			}
			--lbgroup;
			if(lbselected > 0) {
				var prevlb = $A("div");
				$$.set(prevlb,"id","lightboxPrev");
				CSS.styler({obj:prevlb,css:[{"visibility":"hidden","display":"none","position":"absolute","padding":"0px","bottom":"2px","left":"1px","width":"40px","height":"16px","cursor":"pointer","margin":"1px 10px","textAlign":"left","background":"url('"+lb_button+"') no-repeat -28px 0px"}]});
				prevlb.onmouseover = function() {
					CSS.set(prevlb,"backgroundPosition","-28px -64px"); 
				};
				prevlb.onmouseout = function() {
					CSS.set(prevlb,"backgroundPosition","-28px 0px"); 
				};
				prevlb.onclick = function() {
					ImageBOX.create(lbgrouphref[lbselected-1],lbgrouptitle[lbselected-1]); 
				};
				DOM.add(o,prevlb);
			}
			if(lbselected < lbgroup) { 
				var nextlb = $A("div");
				$$.set(nextlb,"id","lightboxNext");
				CSS.styler({obj:nextlb,css:[{"visibility":"hidden","display":"none","position":"absolute","padding":"0px","bottom":"2px","left":"41px","width":"40px","height":"16px","cursor":"pointer","margin":"1px 10px","textAlign":"left","background":"url('"+lb_button+"') no-repeat -68px 0px"}]});
				nextlb.onmouseover = function() {
					CSS.set(nextlb,"backgroundPosition","-68px -64px"); 
				};
				nextlb.onmouseout = function() {
					CSS.set(nextlb,"backgroundPosition","-68px 0px"); 
				};
				nextlb.onclick = function() {
					ImageBOX.create(lbgrouphref[lbselected+1],lbgrouptitle[lbselected+1]); 
				};
				DOM.add(o,nextlb);
			}
		}
		$("lboverlay").onclick = function() { 
			PItO.hide("lightImg");
			this.obj = null;
			this.title = null;
			this.src = null;
			if(Animation.x.interval["lightImg"]) {
				clearInterval(Animation.x.interval["lightImg"]);
				Animation.x.interval["lightImg"] = null;
			}
			if(Animation.y.interval["lightImg"]) {
				clearInterval(Animation.y.interval["lightImg"]);
				Animation.y.interval["lightImg"] = null;
			}
			Activity.overlay.off();
			return false;
		};
	},
	loadImage: function() {
		if(ImageBOX.src) {
			$("lightImg").onclick = function() { return false; };
			CSS.styler({ obj:$("lightboxImage"), css:[{"visibility":"visible","display":"block"}] });
			Opacity.init({element:"lightboxImage",start:0,end:100,delay:10});
			$("lightboxImage").src = ImageBOX.src;
			var o = $("lightImg");
			Opacity.init({element:"lightboxClose",start:0,end:100,delay:10});
			Opacity.init({element:"lightboxCaption",start:0,end:100,delay:10});
			CSS.styler({ obj:$("lightboxClose"), css:[{"visibility":"visible","display":"block"}] });
			CSS.styler({ obj:$("lightboxCaption"), css:[{"visibility":"visible","display":"block"}] });
			if($("lightboxPrev")) CSS.styler({ obj:$("lightboxPrev"), css:[{"visibility":"visible","display":"block"}] });
			if($("lightboxNext")) CSS.styler({ obj:$("lightboxNext"), css:[{"visibility":"visible","display":"block"}] });
		}
	},
	closeBtn: function() {
		var iCl = $A("div");
		$$.set(iCl,"id","lightboxClose");
		CSS.styler({obj:iCl,css:[{"visibility":"hidden","display":"none","position":"absolute","padding":"0px","bottom":"6px","right":"1px","width":"28px","height":"32px","cursor":"pointer","margin":"1px 10px","textAlign":"left","background":"url('"+lb_button+"') no-repeat 0px 0px"}]});
		iCl.onmouseover = function() {
			CSS.set(iCl,"backgroundPosition","0px -64px"); 
		};
		iCl.onmouseout = function() {
			CSS.set(iCl,"backgroundPosition","0px 0px"); 
		};
		return iCl;
	},
	caption:function() {
		var iAn = $A("div");
		$$.set(iAn,"id","lightboxCaption");
		CSS.styler({obj:iAn,css:[{"visibility":"hidden","display":"none","position":"absolute","background":"#fff","bottom":"24px","left":"3px","fontSize":"0.78em","fontFamily":"Arial","fontWeight":"bold"}]});
		DOM.addText(iAn,this.title);
		return iAn;
	}
};