/* http://www.hedgerwow.com/360/dhtml/dom-get-natural-width.html */


var Img = {

  getNaturalDimensions : function(image){
    
    var results = [0,0];
    if(!image) return results;
    
    if(image.naturalWidth != null){
      results[0] = image.naturalWidth;
      results[1] = image.naturalHeight;
      return results;
    }
    if(image._naturalWidth != null){
      results[0] = image._naturalWidth;
      results[1] = image._naturalHeight;
      return results;
    }
    
    if(image.runtimeStyle){
      
      image.runtimeStyle.width       = 'auto';
      image.runtimeStyle.height      = 'auto';
      image.runtimeStyle.borderWidth = '0';
      image.runtimeStyle.padding     = '0';
      
      results[0] = Math.min(image.clientWidth,  image.offsetWidth);
      results[1] = Math.min(image.clientHeight, image.offsetHeight);
      
      image.runtimeStyle.width       = '';
      image.runtimeStyle.height      = '';
      image.runtimeStyle.borderWidth = '';
      image.runtimeStyle.padding     = '';
    }
    else{
      var clone = image.cloneNode(true);
      
      image.className         = '';
      image.style.width       = 'auto !important';
      image.style.height      = 'auto !important';
      image.style.borderWidth = '0 !important';
      image.style.padding     = '0 !important';
      
      image.removeAttribute('width');
      image.removeAttribute('height');
      
      results[0] = image.width;
      results[1] = image.height;
      
      image.setAttribute('width' , clone.getAttribute('width') );
      image.setAttribute('height', clone.getAttribute('height') );
      
      /* safari requires that you clear the value and then re-set them when previously set with !important */
      image.style.width       = '';
      image.style.width       = clone.style.width;
      
      image.style.height      = '';
      image.style.height      = clone.style.height;
      
      image.style.padding     = '';
      image.style.padding     = clone.style.padding;
      
      image.style.borderWidth = '';
      image.style.borderWidth = clone.style.borderWidth;
      
      image.className = clone.className; 
    };
    
    image._naturalWidth  = results[0];
    image._naturalHeight = results[1];
    
    return results;
  },
  
  getNaturalWidth : function(image){
    return this.getNaturalDimensions(image)[0];
  },
  
  getNaturalHeight : function(image){
    return this.getNaturalDimensions(image)[1];
  }
};

//Usage
//var myImg = document.getElementById('myImg');
//var naturalHeight = Img.getNaturalHeight(myImg);