function autoSizeText(domID, options){
  var fontSizePercent = 100;

  //Sterilize everything
  var options = typeof(options) == "undefined" ? {} : options;
  options.minFontPercentage = (options == false || typeof(options.minFontPercentage) == "undefined") ? 30 : options.minFontPercentage;
  options.maxFontPercentage = (options == false || typeof(options.maxFontPercentage) == "undefined") ? 1000 : options.maxFontPercentage;
  options.fontSizeIncrements = (options == false || typeof(options.fontSizeIncrements) == "undefined") ? 5 : options.fontSizeIncrements;
  var parentElement = $(domID);

  //Sanity check
  if(!parentElement){
    return false;
  }

  var parentElementDimensions = parentElement.getDimensions();

  if(parentElementDimensions.height == 0 || parentElementDimensions.width == 0){
    return false;
  }

  //Create span child if it doesn't exist
  if(parentElement.firstDescendant() == null || parentElement.firstDescendant().tagName.toLower != "span"){
    parentElement.innerHTML = '<span>' + parentElement.innerHTML + '</span>';
  }

  var childElement = parentElement.firstDescendant();

  if(childElement.empty() || childElement.getHeight() == 0 || childElement.getWidth() == 0){
    return false;
  }

  //Increase font size to fit
  while(childElement.getHeight() < parentElementDimensions.height && fontSizePercent < options.maxFontPercentage){
    fontSizePercent += options.fontSizeIncrements;
    childElement.style.fontSize = fontSizePercent + "%";
  }

  //Decrease font size to fit
  while((childElement.getHeight() > parentElementDimensions.height || childElement.getWidth() > parentElementDimensions.width) && fontSizePercent > options.minFontPercentage){
    fontSizePercent -= options.fontSizeIncrements;
    childElement.style.fontSize = fontSizePercent + "%";
  }
}