var EditForm = {
  // show the form
  init: function(postId) {
    $('edit-post-' + postId + '_spinner').show();
    this.clearReplyId();
  },

  // sets the current post id we're editing
  setReplyId: function(postId) {
    $('edit').setAttribute('post_id', postId.toString());
    $('post_' + postId + '-row').addClassName('editing');
    if($('reply')) $('reply').hide();
  },
  
  // clears the current post id
  clearReplyId: function() {
    var currentId = this.currentReplyId()
    if(!currentId || currentId == '') return;

    var row = $('post_' + currentId + '-row');
    if(row) row.removeClassName('editing');
    $('edit').setAttribute('post_id', '');
  },
  
  // gets the current post id we're editing
  currentReplyId: function() {
    return $('edit').getAttribute('post_id');
  },
  
  // checks whether we're editing this post already
  isEditing: function(postId) {
    if (this.currentReplyId() == postId.toString())
    {
      $('edit').show();
      //$('edit_post_body').focus();
      //jason - tinymce
      _ei = tinyMCE.get('edit_post_body');
      if(_ei) _ei.focus();
      else $('edit_post_body').focus();

      return true;
    }
    return false;
  },

  // close reply, clear current reply id
  cancel: function() {
    this.clearReplyId();
    $('edit').hide()
  }
}

var ReplyForm = {
  init: function() {
    EditForm.cancel();
    $('reply').show();
    $('reply_topic').scrollTo();
    _ei = tinyMCE.get('new_post_body');
    if(_ei) _ei.focus();
    else $('new_post_body').focus();
  }
}

// Event.observe(window, 'click', function(event) {
  // if(!Event.element(event).match('a'))
    // $$('.js_hide').invoke('hide');
// })



function makeScroller(name) {
  element = $(name);
  element.insert({after: '<div id="'+name+'_track" class="scroll_track"><div id="'+name+'_handle" class="scroll_handle"></div></div>'});
  track = $(name+'_track');
  element.style.paddingRight = (track.getDimensions().width+3)+'px';
  offset = element.positionedOffset();
  dimensions = element.getDimensions();
  track.setStyle({
    position : 'absolute',
    height : dimensions.height+'px',
    left : (offset[0] + dimensions.width - track.getDimensions().width)+'px',
    top : offset[1]+'px'
  });
  eval(""+name+"_slider = new Control.Slider(name+'_handle', name+'_track', {axis: 'vertical',onSlide: function(v) { scrollVertical(v, $('"+name+"'), "+name+"_slider); },onChange: function(v) { scrollVertical(v, $('"+name+"'), "+name+"_slider); }});");
  element.setStyle({
    overflow : 'hidden'
  });
}

// scroll the element vertically based on its width and the slider maximum value
function scrollVertical(value, element, slider) {
  element.scrollTop = Math.round(value/slider.maximum*(element.scrollHeight-element.offsetHeight));
}




