// ----------------------------------------------------------------- clearText
function clearText()
{
  $('blog_post_title').value = "";
  $('blog_post_body').value = "";
  $('add_post').toggle();
}
var editor = null;
// ------------------------------------------------------------------ editBody
function editBody( event )
{ 
  Event.stop( event );
  var linkContainer = Event.findElement( event, 'span.edit_link_container');
  linkContainer.hide();
  var container = Event.findElement( event, 'div.announcement' );
  var postId = extractID( container );
  var domId = 'post_' + postId;
  var callbackFunction = function (form,value)
  {
    return "post_id=" + postId + "&" + entity_id +"=" + id + "&value=" + encodeURIComponent(value);
  };
  if( editor == null )
  {
    editor = new Ajax.JSONInPlaceEditor(domId + "_body","/blog_posts/update_body",
            {rows: 8, 
            cols: 60, 
            highlightcolor: "#FFFFFF", 
            loadTextURL: ANNOUNCEMENT_PATH + postId + '.json',
            callback: callbackFunction,
            onComplete: function(){editor.dispose(); editor = null; linkContainer.show(); } 
            }
          );
    editor.jsonField = 'body';
    editor.enterEditMode();
  }
}
// ------------------------------------------------------------------ postForm
var postForm = function( event)
{
  Event.stop( event );
  var form = Event.findElement( event, 'form' );
  if( submitCount++ == 0 )
  {
    new Ajax.Request('/blog_posts/create', {asynchronous:true, evalScripts:true, parameters:Form.serialize(form)});
  }
};
// ---------------------------------------------------------------- deletePost
var deletePost = function( event )
{
  Event.stop( event );
  if( confirm("Are you sure you want to delete this announcement?") )
  {
    var link = Event.element( event );
    var container = link.up( "div.announcement" );
    container.hide();
    var id = extractID( container );
    new Ajax.Request( ANNOUNCEMENT_PATH + id,
      { 'method': 'delete',
        'onSuccess': function(){ container.remove();},
        'onFailure': function(){ alert("There was an unexpected error removing that post."); container.show();}
      } );
  }
};
document.observe('dom:loaded', function ()
{
  $$('span.edit_link_container').each( function( c )
  {
    c.down('a').observe('click', editBody );
  });
  $$('a.remove_announcement_link').each( function( l ){
    l.observe( 'click', deletePost );
  });
} );
