/**
*** 掲示板コメント関連
**/
var BBSComment = function() {
  var preview_url_;
  var preview_id_;
  var editbox_id_;
  var user_id_;
  var flag_changePreview_ = false;
  var flag_gettingPreview_ = false;

  /** プレビューを取得する */
  function onSuccess_GetPreview( obj ) {
    try {
      $( preview_id_ ).innerHTML = obj.responseText;
    }
    catch( e ) {
    }
    //
    onFailure_GetPreview( null );
  }
  function onFailure_GetPreview( obj ) {
    if( flag_changePreview_ ) {
      flag_changePreview_ = false;
      getPreview();
      return;
    }
    flag_gettingPreview_ = false;
  }
  function getPreview() {
    flag_gettingPreview_ = true;
    var text = $( editbox_id_ ).value;
    new Ajax.Request( preview_url_ + 'uid/' + user_id_, {
        method: 'post',
        postBody: $( editbox_id_ ).value,
        onSuccess: onSuccess_GetPreview,
        onFailure: onFailure_GetPreview
      } );
  }
  function gettingPreview( text ) {
    if( !flag_gettingPreview_ ) {
      getPreview();
    }
  }

  return {
    /** ユーザIDの設定 */
    SetUserID: function( id ) {
      user_id_ = id;
    },
    /** プレビュー用URLの設定 */
    SetPreviewURL: function( url ) {
      preview_url_ = url;
    },
    /** プレビュー用IDの設定 */
    SetPreviewID: function( id ) {
      preview_id_ = id;
    },
    /** 編集用IDの設定 */
    SetEditBoxID: function( id ) {
      editbox_id_ = id;
    },
    /** プレビュー元更新時呼び出し */
    ChangePreview: function() {
      flag_changePreview_ = true;
      gettingPreview();
    }
  };
}();
