Effect.ResizeTo = Class.create();
Object.extend(Object.extend(Effect.ResizeTo.prototype, Effect.Base.prototype), {
  initialize: function(element, toWidth, toHeight) {
  
    this.element      = $(element);
    this.toWidth      = toWidth;
    this.toHeight     = toHeight;
	

	
    this.originalWidth  = parseFloat(Element.getStyle(this.element,'width')  || 0);
    this.originalHeight = parseFloat(Element.getStyle(this.element,'height') || 0);

	
	if(this.toWidth!=null){
    this.effectiveWidth = this.toWidth 
                        - parseFloat(Element.getStyle(this.element,'margin-left') || 0) 
                        - parseFloat(Element.getStyle(this.element,'margin-right') || 0) 
						/*
                        - (document.compatMode == 'BackCompat' ? 0 : // height includes padding & border in IE BackCompat mode
                            parseFloat(Element.getStyle(this.element,'padding-left') || 0) 
                            + parseFloat(Element.getStyle(this.element,'padding-right') || 0) 
                            + parseFloat(Element.getStyle(this.element,'border-left-width') || 0)
                            + parseFloat(Element.getStyle(this.element,'border-right-width') || 0));
						*/
	}
    this.effectiveHeight = this.toHeight
                        - parseFloat(Element.getStyle(this.element,'margin-top') || 0) 
                        - parseFloat(Element.getStyle(this.element,'margin-bottom') || 0) 
                        /*
						- (document.compatMode == 'BackCompat' ? 0 : // height includes padding & border in IE BackCompat mode
                            parseFloat(Element.getStyle(this.element,'padding-top') || 0) 
                            + parseFloat(Element.getStyle(this.element,'padding-bottom') || 0) 
                            + parseFloat(Element.getStyle(this.element,'border-top-width') || 0)
                            + parseFloat(Element.getStyle(this.element,'border-bottom-width') || 0));
							*/
					
    this.options = arguments[3] || {};
	
	if(this.toWidth!=null){
    	if (this.effectiveWidth < 0) this.effectiveWidth = 0;
	}
    if (this.effectiveHeight < 0) this.effectiveHeight = 0;

    if ((this.originalWidth  == this.effectiveWidth || this.toWidth==null) &&
        this.originalHeight  == this.effectiveHeight) {
      return;
    }
	this.start(this.options);


	},
update: function(position) {
  if(this.toWidth!=null){
  widthd  = this.effectiveWidth * (position) + this.originalWidth * (1 - position);
  }
  else{
  	widthd = null;
  }
  heightd = this.effectiveHeight * (position) + this.originalHeight * (1 - position);
  this.setPosition(widthd, heightd);
},
setPosition: function(widthd, heightd) {
  if(widthd!=null){
  	this.element.style.width = widthd+'px';
  } 
  this.element.style.height = heightd+'px';  
}}
);