var wu_comment = new Class({
 addquotes: function() {
  $A($('wu_comments').getElements('.wu_quotecomment')).each(function(anc) {
   $(anc).addEvent('click', this.quote.bind(this));
  }.bind(this));
 },
 quote: function(e) {
  var textarea = this.form.getElementsByTagName('textarea').item(0);
  var text = $(wu.target(e).parentNode.parentNode).getElements('.wu_commenttextpadder')[0].innerHTML;
  textarea.value = '\
<blockquote>\
' + text + '\
<' + '/blockquote>\
' + textarea.value;
  this.scroll.toElement(this.form);
  return wu.stop(e);
 },
 updatecomments: function(text) {
  $('wu_comments').setHTML(text);
  this.handlepager();
  try {
   wu_addmoderate();
  } catch(e) {};
  this.addquotes();
 },
 aftersubmit: function(text) {
  var deletefields = true;
  switch (text) {
   case 'right': wumessage.show(this.lang_rightproblem); break;
   case 'email': wumessage.show(this.lang_emailproblem); deletefields = false; break;
   case 'spam': wumessage.show(this.lang_spam); deletefields = false; break;
   case 'captcha': wumessage.show(this.lang_captchaerror); deletefields = false; break;
   default: this.updatecomments(text);
    wumessage.show(this.lang_newcomment);
  };
  if (deletefields) {
   $A(this.form.getElementsByTagName('input')).each(function(input) {
    if (input.type == 'text') input.value = '';
   });
   $A(this.form.getElementsByTagName('textarea')).each(function(textarea) {
    textarea.value = '';
   });
  };
  this.firstsubmit.value = this.submittext;
  this.firstsubmit.removeEvent('click', wu.stop);
  if (this.firstsubmitimage) this.firstsubmit.src = this.firstsubmitimage;
  if (this.recaptcha) Recaptcha.reload();
 },
 onsubmit: function(e) {
  this.firstsubmit.addEvent('click', wu.stop);
  this.firstsubmit.value = this.lang_working;
  if (this.firstsubmitimage) this.firstsubmit.src = this.loadingimage;
  new Ajax('page/page.php', {method: 'post', data: this.form.toQueryString() + '&ajax=true&rnd=' + Math.random(), onComplete: this.aftersubmit.bind(this)}).request();
  return wu.stop(e);
 },
 handlepager: function() {
  var pagers = $('wu_content').getElements('.wu_commentpager');
  if (pagers.length < 1) {
   if (!$('wu_commentpager')) return;
   pagers = new Array($('wu_commentpager'));
  };
  $A(pagers).each(function(pager) { 
   $A(pager.getElementsByTagName('a')).each(function(anc) {
    $(anc).addEvent('click', this.nextpage.bind(this));
   }.bind(this));
  }.bind(this));
 },
 nextpage: function(e) {
  var anc = wu.target(e);
  anc.parentNode.setHTML(this.lang_working);
  $A($('wu_comments').getElementsByTagName('a')).each(function(anc) {
   $(anc).addEvent('click', wu.stop);
  });
  new Ajax(anc.href, {method: 'get', data: 'action=getcomments', onComplete: this.updatecomments.bind(this)}).request();
  return wu.stop(e);
 },
 initialize: function(form, lang_rightproblem, lang_emailproblem, lang_spam, lang_newcomment, lang_working, lang_captchaerror, loadingimage, recaptcha) {
  this.recaptcha = recaptcha;
  this.form = $(form);
  this.lang_rightproblem = lang_rightproblem;
  this.lang_emailproblem = lang_emailproblem;
  this.lang_spam = lang_spam;
  this.lang_newcomment = lang_newcomment;
  this.lang_working = lang_working;
  this.lang_captchaerror = lang_captchaerror;
  this.form.addEvent('submit', this.onsubmit.bind(this));
  this.firstsubmit = $(form.getElements('.wu_submit')[0]);
  if (this.firstsubmit.type == 'image') this.firstsubmitimage = this.firstsubmit.src; else this.firstsubmitimage = false;
  this.loadingimage = loadingimage;
  this.submittext = this.firstsubmit.value;
  this.scroll = new Fx.Scroll(Window, {duration: 500, transition: Fx.Transitions.Quad.easeInOut});
  this.addquotes();
  this.handlepager();
 }
});