var RequestInviteToCampaignDialog = Behavior.create(Dialog.Base, {
  initialize : function($super) {
    $super();
    this._bindRemoteFormSubmission();
  },
  
  open: function($super, campaignTitle, campaignID) {
    this.element.down('h6 span').innerHTML = campaignTitle;
    this.element.down('input[name=\'message\[recipient_id\]\']').value = campaignID;
    $super();
  },
  
  clearFields : function() {
    this.element.down('textarea[name=\'message\[content\]\']').value = '';
  },
  
  _bindRemoteFormSubmission : function() {
    var submitButton = this.element.down('input[type=submit]') || this.element.down('button[type=submit]');
    var remoteForm = new Forms.Remote({
      onComplete : function(response) {
        this.reset();
      }.bind(this)
    });
    submitButton.observe('click', remoteForm.onclick.bindAsEventListener(remoteForm));
  },
  
  reset: function() {
      this.clearFields();
      this.close();
  }
});

Dialog.initInstance('request_invite', '.dialog.request_invite_for_campaign', RequestInviteToCampaignDialog);

Event.addBehavior({
    'a.request_invite_for_campaign:click': function(event) {
		   var hcampaign, campaignTitle, campaignID;
        hcampaign = event.element().up('.hcampaign');
        if (hcampaign) {
            campaignTitle = hcampaign.down('.tl').innerHTML;
            campaignID = hcampaign.dbID();
            Dialog.getInstance('request_invite').open(campaignTitle, campaignID);
            event.stop();
        }
		}
});