/**
 *
 * © OpenFile 2008
 *
 */
var OpenComment = {
	
	form: null,
	
	vars: new Object(),
	type: '',
	comments_layer: null,
	pages_layer: null,
	id: 0,
	page: 1,
	
	_comments: true,
	
	//        0.                       1.                    2.           3.
	errors: ['Не введен комментарий', 'Вы не авторизованы', 'Нет файла', 'Очень хитрый пользователь'],
	
	init_timeout: function(type, id, comments_layer, pages_layer, page)
	{
		this.id = id;
		this.type = type;
		this.page = page;
		this.comments_layer = document.getElementById(comments_layer);
		this.pages_layer = document.getElementById(pages_layer);
		
		if ( !this.comments_layer )
		{
			this._comments = false;
		}
	},
	
	timeout_comments: function()
	{
		if ( this._comments )
		{
			var URL = '/'+this.type+'/comment.php?act=get_comments&id='+this.id+'&page='+this.page;
			OpenHttpRequest.init_progress('GET', URL, 0, null);
			this.__comment();
		
			setTimeout('OpenComment.timeout_comments()', 5000);
		}
	},
	
	comment: function(form, type, comments_layer, pages_layer)
	{
		if ( this._comments )
		{
			this.form = form;
			this.page = 1;
			
			this.comments_layer = document.getElementById(comments_layer);
			this.pages_layer = document.getElementById(pages_layer);
			
			this.type = type;
			
			var current_key = 0;
			this.vars.length = 2;
			this.vars.keys = new Array();
			this.vars.values = new Array();
			
			for ( var i = 0; i < form.elements.length; i++ )
			{
				var name = form.elements[i].name
				
				if ( name != '' )
				{
					this.vars.values.length++;
					this.vars.keys.length++;
					
					current_key = this.vars.keys.length-1;
					this.vars.keys[current_key] = name;
					this.vars.values[name] = form.elements[i].value;
				}
			}
			
			this._comment();
		}
	},
	
	_comment: function()
	{
		if ( this._comments )
		{
			var key = '';
			var vars = '';
			for ( var i = 0; i < this.vars.keys.length; i++ )
			{
				key = this.vars.keys[i];
				vars += key + '=' + this.vars.values[key];
				vars += ( i < (this.vars.keys.length-1) ? '&' : '' );
			}
			
			var URL = '/'+this.type+'/comment.php';
			OpenHttpRequest.init_progress('POST', URL, 0, vars);
			this.__comment();
		}
	},
	
	// __comment (private)
	__comment: function()
	{
		if ( this._comments )
		{
			if ( !OpenHttpRequest.json )
			{
				setTimeout('OpenComment.__comment()', 100);
			}
			else
			{
				if ( OpenHttpRequest.json.status == 1 )
				{
					var comments	= OpenHttpRequest.json.comments;
					var pages		= OpenHttpRequest.json.pages;
					
					this.comments_layer.innerHTML	= htmlspecialchars_decode(comments);
					this.pages_layer.innerHTML		= htmlspecialchars_decode(pages);
					
					if ( this.form != null )
					{
						this.form.reset();
						this.form = null;
					}
					
					OpenHttpRequest.req = false;
					OpenHttpRequest.json = false;
				}
				else
				{
					//alert('ОШИБКА: '+OpenHttpRequest.json.error);
				}
			}
		}
	}
};