
	var forum=new Forum;
	//setTimeout("forum.Add('comment', 1739)", 1000);

	function Forum()
	{
		this.Add=Add;
		this.Lbox=Lbox;
		this.POST=POST;
		this.Response=Response;
		this.ResponseValues=ResponseValues;
		this.Submit=Submit;
		this.Error=Error;
		this.OkGo=OkGo;
		this.Rules=Rules;
		this.post=Array();
		this.ValidTop=ValidTop;
		this.ValidTime=ValidTime;
		this.texts=Array();
		this.Valid=Valid;
		this.valid=false;
		this.ValidNext=ValidNext;
		this.validLast=false;
		this.ValidNew=ValidNew;

		function Add(mode, productID, msgBack)
		{
			this.Lbox();
			this.post['mode']=mode;
			this.post['action']='add';
			this.post['productID']=productID;
			this.post['msgBack']=msgBack;
			this.POST();
		}


		function Lbox()
		{
			LightBox.Init();
			LightBox.out=false;
			LightBox.forum=true;
			LightBox.Preload();
		}


		function POST()
		{
			dats=Post('/forum/js/', this.post);
			this.post=Array();
		}


		function Response(string)
		{
			if(this.error)
			{
				this.temp=string;
				return;
			}

			//var r=/\$/g;
			//string=string.replace(r, '<br />');

			LightBox.HTML(Url.decode(string));
		}


		function ResponseValues()
		{
			var elem;

			if(this.validTime)
			{
				this.ValidTime();
			}

			if(!this.Resulted.length || (this.action == 'rules')) return;

			for(key in this.Resulted)
			{
				elem=GO('fm-' + this.Resulted[key]);

				if(!elem.disabled && (elem.type == 'checkbox'))
				{
					if(this.Values[this.Resulted[key]])
					{
						elem.checked='checked';
					}
				}
				else if(this.Values[this.Resulted[key]])
				{
					elem.value=Url.decode(this.Values[this.Resulted[key]]);
				}
			}

			this.Values=false;
		}


		function Submit()
		{
			var elem;

			LightBox.Preload(Url.decode(this.waitText));

			if(!this.valid)
			{
				this.post['mode']=this.mode;
				this.post['action']='add';
				this.post['url']=HS(location.href);
			}

			this.post['save']=1;
			this.post['productID']=this.productID;
			this.post['msgBack']=this.msgBack;

			for(key in this.Resulted)
			{
				elem=GO('fm-' + this.Resulted[key]);

				if(elem.type == 'checkbox')
				{
					this.post['vals[' + this.Resulted[key] + ']']=elem.checked ? 1 : 0;
				}
				else
				{
					this.post['vals[' + this.Resulted[key] + ']']=Url.encode(elem.value);
				}
			}

			this.POST();
		}


		function Error(string)
		{
			if(this.error)
			{
				//LightBox.forum=true;
				this.error=false;
				Response(this.temp);
				this.temp=false;
			}
			else if(string)
			{
				this.error=true;
				LightBox.HTML(Url.decode(string));
			}
		}


		function OkGo(string)
		{
			if(this.okgo)
			{
				this.okgo=false;

				if(this.goUrl)
				{
					location.href=Url.decode(this.goUrl);
				}
				else
				{
					LightBox.Out(true);
				}
			}
			else if(string)
			{
				this.okgo=true;
				LightBox.HTML(Url.decode(string));
			}
		}

/*
		function OkNothing()
		{


		}

*/
		function Rules(mode, productID)
		{
			this.Lbox();
			this.post['mode']=mode;
			this.post['productID']=productID;
			this.post['action']='rules';
			this.POST();
		}


		function ValidTop(mode)
		{
			this.validLast=mode;

			this.Lbox();
			this.post['mode']=mode;
			this.post['action']='valid';
			this.POST();
		}


		function ValidTime(time)
		{
			if(time)
			{
				this.validTime=time;
				return;
			}

			var elem=GO('fm-valid-time');

			if(!elem)
			{
				this.validTime=false;
				return;
			}

			if(!this.validTime)
			{
				GO('fm-valid-time-text').innerHTML=Url.decode(this.texts[1]);
				CCS('fm-valid-buttons', 'display', 'none');
				return;
			}

			var minutes=Math.floor(this.validTime / 60);
			var seconds=this.validTime % 60;

			elem.innerHTML=minutes + 'min ' + seconds + 'sec';

			this.validTime--;

			setTimeout('forum.ValidTime()', 1000);
		}


		function Valid(valid)
		{
			this.Lbox();
			this.post['mode']=this.mode;
			this.post['action']='valid';
			this.post['valid']=valid;
			this.post['msgValid']=this.msgValid;
			this.post['save']=1;
			this.post['productID']=this.productID;
			this.POST();
		}


		function ValidNext(mode)
		{
			this.post['mode']=this.validLast ? this.validLast : mode;
			this.post['action']='valid';
			this.POST();
		}


		function ValidNew(mode, productID, msgBack)
		{
			this.Add(mode, productID, msgBack)
		}
	}





