
	var LightBox=new Lightbox();

	function Lightbox()
	{
		this.Box=Box;
		this.HTML=HTML;
		this.Init=Init;
		this.Temp=Temp;
		this.Reload=Reload;
		this.Preload=Preload;
		this.Out=Out;

		this.xhtml='<div id="lightbox-position"><div id="lightbox-block"><div id="lightbox-html"></div></div></div><div id="lightbox-background" onclick="LightBox.Out();"></div>';
		this.loader='<img src="/images/lightbox/loader.gif" alt="Loader" id="lightbox-loader" />';

		function HTML(string)
		{
			this.Temp();

			this.dats=string;
			this.reload=true;
		}


		function Init()
		{
			CCO('lightbox', 1);

			this.opacity=72;
			this.reload=true;
			this.actual=false;
			this.out=false;
			this.TempDats=Array();
			this.Vals=Array();

			this.Box();
		}


		function Temp()
		{
			this.TempDats[2]=this.TempDats[1];
			this.TempDats[1]=this.TempDats[0];
			this.TempDats[0]=GO('lightbox').innerHTML;
		}


		function Box()
		{
			GO('lightbox').innerHTML=this.xhtml;

			var size=getPageSize();

			CCS('lightbox-background', 'position', 'absolute');
			CCS('lightbox-background', 'zIndex', '1');
			CCS('lightbox-background', 'background', 'rgb(0,0,0)');
			CCO('lightbox-background', this.opacity);
			CCS('lightbox-background', 'width', '100%');
			CCS('lightbox-background', 'height', size[1] + 'px');

			if(CCBO)
			{
				CCS('lightbox-background', 'background', 'rgba(0,0,0,0.' + this.opacity + ')');
			}

			CCS('lightbox', 'height', size[1] + 'px');

			CCS('lightbox-position', 'width', '1px');
			CCS('lightbox-position', 'height', '1px');
			CCS('lightbox-position', 'position', 'absolute');
			CCS('lightbox-position', 'zIndex', '2');

			CCS('lightbox-block', 'position', 'absolute');
			CCS('lightbox-block', 'zIndex', '3');

			this.actual=Math.random(1, 1E6);
			this.Reload(this.actual);
		}


		function Reload(hash)
		{
			if(hash != this.actual)
			{
				return;
			}

			var size=getPageSize();
			var cxy=CoorXY();

			if(this.reload || (this.Vals[0] != size[0]) || (this.Vals[1] != size[1]) || (this.Vals[2] != size[2]) || (this.Vals[3] != size[3]) || (this.Vals[4] != cxy[0]) || (this.Vals[5] != cxy[1]))
			{
				if(!GO('lightbox-block'))
				{
					setTimeout('LightBox.Reload(' + hash + ')', 5);
					return;
				}

				if(this.dats)
				{
					GO('lightbox-html').innerHTML=this.dats;
					CCS('lightbox-html', 'zIndex', '4');
				}

				this.reload=false;

				this.Vals=size;
				this.Vals[4]=cxy[0];
				this.Vals[5]=cxy[1];

				var left=(this.Vals[0] - GO('lightbox-html').offsetWidth) / 2;

				CCS('lightbox-block', 'marginLeft', left + 'px');
				CCS('lightbox-block', 'marginTop', (this.Vals[5] + 30) + 'px');
				CCO('lightbox-block', 99);
				CCO('lightbox', 100);


				if(this.dats)
				{
					this.dats=false;

					if(this.forum && !forum.error && forum.Values)
					{
						this.reload=true;
						forum.ResponseValues();
					}
				}
			}

			setTimeout('LightBox.Reload(' + hash + ')', 30);
		}


		function Preload(string)
		{
			this.dats=this.loader;
			if(string)
			{
				this.dats+='<div id="lightbox-loader-text">' + string + '</div>';
			}
			this.reload=true;
		}


		function Out(force)
		{
			if(this.out || force)
			{
				GO('lightbox').innerHTML='';
				CCS('lightbox', 'height', '0px');
			}
		}
	}
