
//////////////// Panel
YAHOO.namespace("todo.container");

// BEGIN RESIZEPANEL SUBCLASS //
YAHOO.widget.ResizePanel = function(el, userConfig) {
  if (arguments.length > 0) {
    YAHOO.widget.ResizePanel.superclass.constructor.call(this, el, userConfig);
  }
}

YAHOO.extend(YAHOO.widget.ResizePanel, YAHOO.widget.Panel);
YAHOO.widget.ResizePanel.CSS_PANEL_RESIZE = "resizepanel";
YAHOO.widget.ResizePanel.CSS_RESIZE_HANDLE = "resizehandle";
YAHOO.widget.ResizePanel.prototype.init = function(el, userConfig) {
YAHOO.widget.ResizePanel.superclass.init.call(this, el);
this.beforeInitEvent.fire(YAHOO.widget.ResizePanel);
YAHOO.util.Dom.addClass(this.innerElement, YAHOO.widget.ResizePanel.CSS_PANEL_RESIZE);

this.resizeHandle = document.createElement("DIV");
this.resizeHandle.id = this.id + "_r";
this.resizeHandle.className = YAHOO.widget.ResizePanel.CSS_RESIZE_HANDLE;
        
this.beforeShowEvent.subscribe(function() {
    this.body.style.overflow = "auto";
}, this, true);


this.beforeHideEvent.subscribe(function() {
  this.body.style.overflow = "hidden";
}, this, true);


this.beforeRenderEvent.subscribe(function() {
  this.body.style.overflow = "hidden";

  if (! this.footer) {
      this.setFooter("");
  }
}, this, true);

this.renderEvent.subscribe(function() {
  var me = this;
  
  me.innerElement.appendChild(me.resizeHandle);

  this.ddResize = new YAHOO.util.DragDrop(this.resizeHandle.id, this.id);
  this.ddResize.setHandleElId(this.resizeHandle.id);

  var headerHeight = me.header.offsetHeight;

  this.ddResize.onMouseDown = function(e) {

    this.startWidth = me.innerElement.offsetWidth;
    this.startHeight = me.innerElement.offsetHeight;
    
    me.cfg.setProperty("width", this.startWidth + "px");
    me.cfg.setProperty("height", this.startHeight + "px");

    this.startPos = [YAHOO.util.Event.getPageX(e),
             YAHOO.util.Event.getPageY(e)];

    me.innerElement.style.overflow = "hidden";
    me.body.style.overflow = "auto";
  }
        
  this.ddResize.onDrag = function(e) {
    var newPos = [YAHOO.util.Event.getPageX(e),
            YAHOO.util.Event.getPageY(e)];
    
    var offsetX = newPos[0] - this.startPos[0];
    var offsetY = newPos[1] - this.startPos[1];

    var newWidth = Math.max(this.startWidth + offsetX, 10);
    var newHeight = Math.max(this.startHeight + offsetY, 10);

    me.cfg.setProperty("width", newWidth + "px");
    me.cfg.setProperty("height", newHeight + "px");

    var bodyHeight = (newHeight - 5 - me.footer.offsetHeight - me.header.offsetHeight - 3);
    if (bodyHeight < 0) {
      bodyHeight = 0;
    }

    me.body.style.height =  bodyHeight + "px";

    var innerHeight = me.innerElement.offsetHeight;
    var innerWidth = me.innerElement.offsetWidth;

    if (innerHeight < headerHeight) {
      me.innerElement.style.height = headerHeight + "px";
    }

    if (innerWidth < 20) {
      me.innerElement.style.width = "20px";
    }
  }

}, this, true);

if (userConfig) {
  this.cfg.applyConfig(userConfig, true);
}

this.initEvent.fire(YAHOO.widget.ResizePanel);
};

YAHOO.widget.ResizePanel.prototype.toString = function() {
  return "ResizePanel " + this.id;
};
// END RESIZEPANEL SUBCLASS //
////////////////////////////////////////////////////

function init() {
  var reduceH = document.body.clientHeight * 0.2;
  var reduceW = document.body.clientWidth * 0.2;

  YAHOO.todo.container.create = new YAHOO.widget.Dialog("create", 
    { width : "450px",
      height: "250px",
      fixedcenter : true,
      visible : false, 
      modal:true,
      close:true,
      constraintoviewport : false,
      draggable:false,
      zIndex:1
     } );
  // Render the Dialog
  YAHOO.todo.container.create.render();

  YAHOO.todo.container.modify = new YAHOO.widget.Dialog("modify", 
    { width : "450px",
      height: "250px",
      fixedcenter : true,
      visible : false, 
      modal:true,
      close:true,
      constraintoviewport : false,
      draggable:false,
      zIndex:2
     } );
  // Render the Dialog
  YAHOO.todo.container.modify.render();
  
  YAHOO.todo.container.category = new YAHOO.widget.Dialog("category", 
    { width : "340px",
      height: "240px",
      fixedcenter : true,
      visible : false, 
      modal:true,
      close:true,
      constraintoviewport : false,
      draggable:false,
      zIndex:2
     } );
  // Render the Dialog
  YAHOO.todo.container.category.render();

  YAHOO.todo.container.forward = new YAHOO.widget.Dialog("forward", 
    { 
      fixedcenter : true,
      visible : false, 
      modal:true,
      close:true,
      constraintoviewport : false,
      draggable:false,
      zIndex:99
     } );
  // Render the Dialog
  YAHOO.todo.container.forward.render();

  YAHOO.todo.container.memo = new YAHOO.widget.Dialog("memo", 
    { width : "450px",
      height: "250px",
      fixedcenter : true,
      visible : false, 
      modal:true,
      close:true,
      constraintoviewport : true,
      draggable:false,
      zIndex:3
     } );
  YAHOO.todo.container.memo.render();

  YAHOO.todo.container.dialog = new YAHOO.widget.Dialog("dialog", 
    { 
      fixedcenter : true,
      visible : false, 
      modal:true,
      close:true,
      constraintoviewport : false,
      draggable:false,
      zIndex:1
     } );
  // Render the Dialog
  YAHOO.todo.container.dialog.render();

  YAHOO.todo.container.scroll_dialog = new YAHOO.widget.Dialog("scroll_dialog", 
    { 
      fixedcenter : true,
      visible : false, 
      modal:true,
      close:true,
      constraintoviewport : false,
      draggable:false,
      zIndex:1
     } );
  // Render the Dialog
  YAHOO.todo.container.scroll_dialog.render();

}

YAHOO.util.Event.addListener(window, "load", init);