var comment = new Class({
	initialize: function(id){
	  this.id = id;
	  this.pg = $('bar-'+id);
		this.el = $('form-'+id);
		this.el.setProperty('action', this.el.getProperty('action')+'/ajax');
		this.el.onsubmit = this.submit.bind(this);
	},
	submit: function() {
	  if(this.pg.hasClass('load')) return false;
	  this.pg.toggleClass('load');
	  this.el.send({onComplete:this.addcomment.bind(this)});
	  return false;
	},
	addcomment: function(c) {
	  var e = new Element('div').setHTML(c).getFirst();
	  this.pg.toggleClass('load');
	  if(e) {
	    var ul = $('comments-'+this.id);
	    new Element('div').setHTML(c).getFirst().setOpacity(0).injectInside(ul).effect('opacity').custom(0,1);
	    $('c-'+this.id).setHTML(ul.childNodes.length);
	    this.el.getElement('textarea').value = '';
	    Window.Growl('Comentario guardado<br />y publicado :P.');
	  } else {
	    Window.Growl(c);
	  }
	}
});

var Growl = {
  init: function(width,height) {
    Window.onDomReady(Growl.create);
    Growl.height = height/2;
    Growl.width = width/2;
  },
  create: function() {
  	new Element('div').setProperty('id','growl').addClass('growl').injectInside(document.body);
  	new Element('p').setProperty('id','growlmsg').injectBefore('growl');
  },
  show: function(msg) {
    var top = Window.getScrollTop(), left = Window.getScrollLeft(), h = Window.getHeight()/2 , w = Window.getWidth()/2;
		var he = top+h-Growl.height, we = left+w-Growl.width;
		$('growlmsg').setStyles({'top':he+'px','left':we+'px','display':'block'}).setHTML(msg).setOpacity(1);
		$('growl').setStyles({'top':he+'px','left':we+'px','display':'block'}).setOpacity(0.8);
		Growl.hide.delay(2000);
  },
  hide: function() {
    $('growlmsg').effect('opacity').custom(1,0);
    $('growl').effect('opacity').custom(0.8,0);
  }
};

Growl.init(336,154);
Window.extend({Growl:Growl.show});

var Snippet = {
  init: function() {
    new Element('iframe').setProperty('name','snippet').setStyles({
  	  'border':'0','height':'0','width':'0'}).injectInside(document.body);
  	new Element('form').setProperties({'action':'/snippet','method':'post','target':'snippet'}).setStyles({'height':'0','overflow':'hidden'}).adopt(
    	  new Element('textarea').setProperties({'id':'tsnippet','name':'tsnippet'})
      ).injectInside(document.body);
    $ES('div.bodypost pre').each(function(e) {
      new Element('a').setProperty('href','#').appendText('Descargar snippet').injectBefore(e.getFirst()).onclick = Snippet.download.pass(e);
    });
  },
  download: function(e) {
    var code = e.getLast();
    var t = $('tsnippet');
    t.value = code.innerHTML;
    t.parentNode.submit();
    return false;
  }
};
Window.onDomReady(Snippet.init);

var Log = {
  save: function() {
      new Ajax('/log/save', {postBody: {'refer':document.referrer,'title':document.title}}).request();
  }
};
Window.onDomReady(Log.save);