var Comments = Class.create();
Comments.prototype = {

	initialize: function(film_id) {
		this.form = $('commentForm');
		this.film_id = film_id;
		this.resDisp = $('commentDisp');
		this.waitDisp = $('commentWait');
		this.statusDisp = $('commentStatus');

		this.msgLimit = 1024;
		this.msgLimitWarn = 1000;
		this.page = 1;

		if (this.form) {
			this.form.onsubmit = this.addComm.bind(this);
			if (this.form.msg) {
				this.form.msg.onfocus = this.msgOnFocus.bind(this);
				this.form.msg.onkeydown = this.msgOnKeyDown.bind(this);
			}
		}
		this.hideWait();
	},

	setPage: function(page) {
		this.page = page;
	},

	get: function (page) {
		this.showWait();
		new Ajax.Request('/view/', {
			method: 'post',
			parameters: 'a=getComments&page='+page+'&film_id='+this.film_id,
			onFailure: this.reportError.bind(this),
			onComplete: this.afterGet.bind(this)
	  });
	  return false;
	},

	remove: function (id) {
		if(!confirm("Вы уверены, что хотите удалить сообщение?")){
			return false;
		}
		this.showWait();
		new Ajax.Request('/view/', {
		    method: 'post',
		    parameters: 'a=delComment&page='+this.page+'&comm_id='+id+'&film_id='+this.film_id,
		    onFailure: this.reportError.bind(this),
		    onComplete: this.afterGet.bind(this)
		});
		return false;
	},

	afterGet: function (request) {
		var text = request.responseText;
		this.hideWait();
		if (this.form && this.form.msg) {
			this.form.disabled = false;
			this.form.msg.value = '';
		}
		this.resDisp.update(text);
	},

	addComm: function() {
		if (!this.form.msg.value) {
			return false;
		}
		this.form.disabled = true;

		this.showWait();
		new Ajax.Request('/view/', {
	    	method:'post',
	    	parameters: Form.serialize(this.form) + "&page="+this.page,
			onFailure: this.reportError.bind(this),
			onComplete: this.afterGet.bind(this)
	 	 });

		return false;
	},

	msgOnFocus: function() {
		var msg = this.form.msg;
		if(this.waitDisp && msg.value.length < this.msgLimit) {
			this.waitDisp.update('&nbsp;');
			msg.disabled = false;
		}
	},

	msgOnKeyDown: function() {
		var msg = this.form.msg;
		var wc = $('word_count');
		if (msg.value.length >= this.msgLimit){
			this.waitDisp.update("<span class='comm_error'>Лимит символов достигнут</span>");
			msg.value = msg.value.substring(0, this.msgLimit);
			wc.update(msg.value.length);
		} else {
			this.waitDisp.update('&nbsp;');
			if (msg.value.length > this.msgLimitWarn) {
				$('span_word_count').style.display="inline";
				wc.update(msg.value.length);
			} else {
				$('span_word_count').style.display="none";
			}
		}
	},

	reportError: function (request) {
		this.resDisp.innerHTML = 'Произошла ошибка';
	},
	showWait: function() {
		this.waitDisp.innerHTML = "<span style='color: blue;'>загрузка.. </span><img src='/pics/waiting.gif' />";
		Element.show(this.waitDisp);
	},
	hideWait: function() {
		this.waitDisp.innerHTML = "";
		Element.hide(this.waitDisp);
	}

}

function voteClone(current_film_id, film_id){
	new Ajax.Request('/view/',
	  {
	    method:'post',
	    parameters:'a=voteClone&current_film_id='+current_film_id+'&film_id='+film_id,
	    onLoading:function(){
	       	$('div_clones').update($('div_clones').innerHTML+'<p align="center"><img src="/pics/waiting.gif" align="top" id="loader" alt="loading..." />&nbsp;Загрузка...</p>');
	    },
	    onSuccess: function(transport){
	      var response = transport.responseText || "no response text";
	      $('div_clones').update(response);
	    },
	    onFailure: function(){ alert('Something went wrong...') }
	  });
}
