// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
var TopicForm = {
  editNewTitle: function(txtField) {
    $('new_topic').innerHTML = (txtField.value.length > 5) ? txtField.value : 'New Topic';
  }
}

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());
    $('posts-' + 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 = $('posts-' + 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();
      return true;
    }
    return false;
  },

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

var ReplyForm = {
  // yes, i use setTimeout for a reason
  init: function() {
    EditForm.cancel();
    $('reply').toggle();
    $('post_body').focus();
    // for Safari which is sometime weird
//    setTimeout('$(\"post_body\").focus();',50);
  }
  
  
}

var CreateForm = {
  // yes, i use setTimeout for a reason
  init: function() {
   //CreateForm.cancel();
    $('create').toggle();
    $('name').focus();
    // for Safari which is sometime weird
//    setTimeout('$(\"post_body\").focus();',50);
  }
 }
 
 var Util = {
  findTag: function(element, tagName) {
    var element = $(element);
    var maxSearchDepth = 4;
    var currentSearchDepth = 1;
    var current = element;
    // Check the given element first
    while (currentSearchDepth <= maxSearchDepth) {
      if (this.tagTest(current, tagName)) {
        return current;
      }
      current = current.parentNode;
      currentSearchDepth++;
    }
  },
  tagTest: function(element, tagName) {
    return $(element).tagName.toLowerCase() == tagName.toLowerCase();
  }
}
 var Tabs =  {
  set: function(element) {
    var element = $(element);
    var li = Util.findTag(element, "li");
    var ul = Util.findTag(element, "ul");
    Tabs.clear(ul);
    Element.addClassName(li, "current");
  },
  clear: function(element) {
    var ul = $(element);
    $$('#' + ul.id + ' li.current').each(function(element) {
      Element.removeClassName(element, "current");
    });
  }
} 
//}

var CreateForm = {
  // yes, i use setTimeout for a reason
  init: function() {
   //CreateForm.cancel();
    $('create').toggle();
    $('name').focus();
    // for Safari which is sometime weird
//    setTimeout('$(\"post_body\").focus();',50);
  }
 }
 
 var Util = {
  findTag: function(element, tagName) {
    var element = $(element);
    var maxSearchDepth = 4;
    var currentSearchDepth = 1;
    var current = element;
    // Check the given element first
    while (currentSearchDepth <= maxSearchDepth) {
      if (this.tagTest(current, tagName)) {
        return current;
      }
      current = current.parentNode;
      currentSearchDepth++;
    }
  },
  tagTest: function(element, tagName) {
    return $(element).tagName.toLowerCase() == tagName.toLowerCase();
  }
}
 var Tabs =  {
  set: function(element) {
    var element = $(element);
    var li = Util.findTag(element, "li");
    var ul = Util.findTag(element, "ul");
    Tabs.clear(ul);
    Element.addClassName(li, "current");
  },
  clear: function(element) {
    var ul = $(element);
    $$('#' + ul.id + ' li.current').each(function(element) {
      Element.removeClassName(element, "current");
    });
  }
}

function handleResponse(documentObject,stringToEvaluate) 
{	
    window.eval(stringToEvaluate);	
    if (documentObject.location)
    { // Should be usefull for IE only .. but I cannot test it		
        if(documentObject.location != "") 
        {
            documentObject.location.replace('about:blank');	
        }
    }		
}