var hasDislikes;

function truncateInterests(element) {
  var interestsDiv = element.getElementsByTagName('div')[0];
  var currentParagraph = interestsDiv.getElementsByTagName('p')[0];
  Element.extend(currentParagraph);
  hasDislikes = currentParagraph.next() ? true : false;
  var MAX_HEIGHT = hasDislikes ?  20 : (Prototype.Browser.IE ? 52 : 50);
  var height = parseInt(currentParagraph.offsetHeight, 10);
  if(height > MAX_HEIGHT + (hasDislikes ? 14 : 0)) {
    MAX_HEIGHT = (!hasDislikes ? MAX_HEIGHT - 15 : MAX_HEIGHT);
    currentParagraph.addClassName('expandable');
    if(!hasDislikes) currentParagraph.addClassName('no-dislikes');
    currentParagraph.style.height = MAX_HEIGHT + "px";
    if(Prototype.Browser.WebKit) currentParagraph.style.paddingBottom = "13px";
    var e = new expandInterests(currentParagraph, MAX_HEIGHT, height, element);
  };
  interestsDiv.style.height = "60px";
};

function expandInterests(element, minHeight, maxHeight, liElement) {
  var parent = element;
  var minHeight = minHeight;
  var maxHeight = maxHeight;
  var liElement = liElement;
  var toggle = document.createElement("a");
  var expanded = false;
  toggle.setAttribute("href", "#");
  toggle.className = "expand icon-alt icon-alt-expand-down";
  toggle.innerHTML = "More info";
  Element.extend(toggle);
  parent.appendChild(toggle);

  toggle.onclick = function() {
    if(expanded === false) {
      parent.style.height = maxHeight + 10 +"px";
      parent.parentNode.style.height = "auto";
      parent.parentNode.removeAttribute("style");
      toggle.innerHTML = "Less info";
      liElement.style.height = parseInt(parent.parentNode.offsetHeight, 10) + "px";
      toggle.removeClassName('icon-alt-expand-down');
      toggle.addClassName('retract icon-alt-expand-up');
      expanded = true;
    } else {
      if(Prototype.Browser.WebKit) parent.style.paddingBottom = "13px";
      parent.style.height = minHeight + "px";
      toggle.innerHTML = "More info";
      toggle.removeClassName('retract icon-alt-expand-up');
      toggle.addClassName('icon-alt-expand-down');
      liElement.style.height =  "60px";
      liElement.getElementsByTagName('div')[0].style.height = "60px";
      expanded = false;
    };
    return false;
  };
};

var doInterestTruncate = Behavior.create({
  initialize: function() {
    truncateInterests(this.element);
  }
});
Event.addBehavior({ 'div#dare-board ol#listings li' : doInterestTruncate });

var options;
var doFilter = Behavior.create({
  initialize: function() {
    options = this.element.getElementsByTagName('option');
  },
  onchange: function() {
    for(var i = 0; i < options.length; i++) {
      if(i > 0 && options[i].selected) { var location = options[i].value; break };
    };
    if(location) window.location = location;
    return false;
  }
});
Event.addBehavior({ 'div#dare-board #filters select' : doFilter });

/* Join board via ajax */
var joinBoard = Behavior.create({
  onclick: function() {
    this.ui = new Modal('join-board-popup');    
    this.ui.retrieveContent(this.element.href, 'post');
    return false;
  }
});
Event.addBehavior({ 'a#join-board' : joinBoard });

/* Leave board prompt */
var leaveBoardPrompt = Behavior.create({
  onclick: function() {
    this.ui = new Modal('leave-board-popup');    
    this.ui.retrieveContent(this.element.href, 'post');
    return false;
  }
});
Event.addBehavior({ 'a#leave-board' : leaveBoardPrompt });


/* Prompt user to fill out dare preferences before joining the dare board */
var darePreferencePrompt = Behavior.create({
  onclick: function() {
    this.ui = new Modal('dare-preferences-required', 'large');
    this.ui.retrieveContent(this.element.href, 'get');
    return false;
  }
});
Event.addBehavior({ 'a#preference-prompt' : darePreferencePrompt });

