var HelpBubble = Class.create();
  HelpBubble.prototype = {
    initialize: function() {
      this.options = Object.extend({
      className:         "meetingwave",
      anchor:            "",
      arrow:             "",
      minWidth:          100, 
      minHeight:         20,
      resizable:         false,
      closable:          true,
      minimizable:       false,
      maximizable:       false,
      draggable:         false,
      zIndex:            100, 
      showEffect:        Effect.Grow,
      hideEffect:        Effect.Shrink,
      showEffectOptions: { direction : 'top-left'},
      hideEffectOptions: { direction : 'top-left'},
      content:           "",
      offsetX:           0,
      offsetY:           0,
      show:              true
    }, arguments[0] || {});
    this.anchor = $(this.options.anchor);
	if(this.anchor == null) {
		return;
	}
    //this.options.className = this.options.className + "_" + this.options.arrow;
    this.win = new Window(this.options);
    this.win.getContent().innerHTML = "<div class='" + this.options.className + "_inner'>" + this.options.content + "</div>";
    this.win.element.className += " " + this.options.arrow;
    if(this.options.show) {
		if(this.options.delay) {
			var showFunc = this.show.bind(this);
			showFunc.delay(this.options.delay);
		} else {
		  this.show();
		}
    }
  },

  show: function() {
	if(this.anchor == null) {
		return;
	}
        var pos = this.anchor.cumulativeOffset();
        if(!this.anchor.visible() || (pos.left == 0 && pos.top == 0)) {
          return;
        }
        var offsetY = 0;
        var offsetX = 0;
        if(Prototype.Browser.IE) {
          offsetY = ( this.options.offsetY_IE || this.options.offsetY);
          offsetX = ( this.options.offsetX_IE || this.options.offsetX);
        } else {
          offsetY = this.options.offsetY;
          offsetX = this.options.offsetX;
        }
        this.win.setLocation(pos.top + offsetY, pos.left + offsetX);
        this.win.show(false);
  },

  hide: function() {
        this.win.hide();
  }


};
