/* New Dare Status Update */
var newDareUpdate = Behavior.create({
    onclick: function() {
        switch(this.element.id) {
            case 'create-new-update':
                this.element.style.color = "#999";
                $('new-update').addClassName('show');
            break;
            case 'cancel-new-update':
                $('create-new-update').style.color = "#09c";
                $('new-update').removeClassName('show');
            break;
        }
        return false;
    }
});
Event.addBehavior({ 'a#create-new-update' : newDareUpdate });
Event.addBehavior({ 'a#cancel-new-update' : newDareUpdate });

/* Expand Dare Description */
var expandDescriptionToggle = "retracted";
var expandDescription = Behavior.create({
    onclick: function() {
        if(expandDescriptionToggle == "retracted") {
            $('previewed-description').addClassName('hide');
            $('full-description').removeClassName('hide');
            $('full-description').addClassName('show');
            expandDescriptionToggle = "expanded";
        } else {
            $('previewed-description').removeClassName('hide');
            $('full-description').removeClassName('show');
            $('full-description').addClassName('hide');
            expandDescriptionToggle = "retracted"
        }
        return false;
    }
});
Event.addBehavior({ 'a.expand-retract' : expandDescription });

var acceptDeclineForm;
var urlAssigned = false;
var acceptOrDecline = Behavior.create({
    initialize: function() {
        this.accept_decline_form = $('accept-or-decline');
        acceptDeclineForm = this.accept_decline_form;
    },
    onclick: function() {
        if(urlAssigned == false) {
          switch(this.element.id) {
              case "accept":
                  this.accept_decline_form.action += "/accept";
              break;
              case "decline":
                  this.accept_decline_form.action += "/reject";
              break;
          };
          urlAssigned = true;
        };
        if(this.element.hasClassName('daree-on-dareboard') && this.element.id == "accept") {
          this.ui = new Modal('confirm-accept'); 
          this.ui.retrieveContent('/dares/' + this.element.getAttribute('rel') + '/confirm_accept', 'get');
          return false;
        } else {
          this.accept_decline_form.submit();
        };
        return false;
    }
});
Event.addBehavior({ 'a#accept' : acceptOrDecline });
Event.addBehavior({ 'a#decline' : acceptOrDecline });

// users entry added to open dare
var newOpenDareEntry = Behavior.create({
    initialize: function() {
        Effect.Pulsate(this.element.id, { pulses:3, duration: 1.5 });
    }
});
Event.addBehavior({ 'li#new-evidence' : newOpenDareEntry });

// show previous dare updates
var expandUpdatesToggle = "retracted";
var expandPreviousUpdates = Behavior.create({
    onclick: function() {
        var children = this.element.previous().childElements();
        if(this.element.hasClassName("icon-alt-expand-down")) {
          for(var i = 0; i < children.length; i++) {
            children[i].removeClassName("hide");
            if(i == 0) children[i].removeClassName("last");
          };
          this.element.removeClassName("icon-alt-expand-down");
          this.element.addClassName("icon-alt-expand-up");
          this.element.innerHTML = this.element.innerHTML.replace("Show", "Hide");
        } else if(this.element.hasClassName("icon-alt-expand-up")) {
          for(var i = 0; i < children.length; i++) {
            if(i == 0) {
              children[i].addClassName("last");
            } else {
              children[i].addClassName("hide");
            };
          };
          this.element.addClassName("icon-alt-expand-down");
          this.element.removeClassName("icon-alt-expand-up");
          this.element.innerHTML = this.element.innerHTML.replace("Hide", "Show");
        };
        return false;
    }
});
Event.addBehavior({ 'a.expand-retract-updates' : expandPreviousUpdates });

// edit dare description
var editDareDescription = Behavior.create({
    onclick: function() {
        switch(this.element.id) {
            case "edit-dare-description":
                if(expandDescriptionToggle == "expanded") {
                    $('previewed-description').removeClassName('hide');
                    $('full-description').removeClassName('show');
                    $('full-description').addClassName('hide');
                    expandDescriptionToggle = "retracted";
                    $$('a.expand-retract')[0].style.display = "none";
                }
                this.element.style.color = "#999";
                $$("div.description-body form")[0].style.display = "block";
                $("desc").style.display = "none";
            break;
            case "cancel-edit-dare-description":
                $('edit-dare-description').style.color = "#09c";
                $$("div.description-body form")[0].style.display = "none";
                $("desc").style.display = "block";
                if(show_more_link = $$('a.expand-retract')[0]) {
                    show_more_link.style.display = "block";
                }
            break;
        }
        return false;
    }
});
Event.addBehavior({ '.dare-description' : editDareDescription });

submitNewDareDescription = Behavior.create({
      onsubmit: function() {
      new Ajax.Request(this.element.action, 
                        { asynchronous:true, 
                          evalScripts:true, 
                          parameters:Form.serialize(this.element) 
                         });
     $('edit-dare-description').style.color = "#09c";
     return false;
    }
});
Event.addBehavior({ '.form-dare-description' : submitNewDareDescription });
