DOMAssistant.attach(function() {

   var o;


   function _parseInt(toParse) {
       return parseInt(toParse, 10);

   }

   function _addPart(elm, part) {
       return _parseInt(elm.getStyle(part));
   }


   o = {

       publicMethods:['outerHeight', 'outerWidth'],


       outerHeight:function(includeMargin) {
	    if(includeMargin === undefined || includeMargin === null || includeMargin != true) {
		includeMargin = false;
	    }

	    var elm = $$(this), h = 0, parts = ['border-bottom-width', 'border-top-width', 'padding-bottom', 'padding-top', 'height'];
	    if(includeMargin) {
		parts.push('margin-top', 'margin-bottom');
	    }

	    for(var i=0;i<parts.length;i++) {
		h += _addPart(elm, parts[i]);
		
	    }


	    return h;
       },
       
       outerWidth:function(includeMargin) {
	     if(includeMargin === undefined || includeMargin === null || includeMargin != true) {
		includeMargin = false;
	    }

	    var elm = $$(this), h = 0, parts = ['border-left-width', 'border-right-width', 'padding-left', 'padding-right', 'width'];
	    if(includeMargin) {
		parts.push('margin-left', 'margin-right');
	    }

	    for(var i=0;i<parts.length;i++) {
		h += _addPart(elm, parts[i]);

	    }


	    return h;
	   
       }

   }

   return o;





}());
