module AvatarHelper
  
  AVATAR_SIZE="50x50"
  
  def avatar_image(source)
    File.join(relative_path, avatar_directory(source.class), source.id.to_s) 
  end
     
  def relative_path
    "avatars" #File.join("images","avatars")
  end   
  
  def storage_path 
    File.join(Rails.root, "public", "images", relative_path)
  end
  
  def avatar_directory(source_type)
    "#{source_type}"
  end
  
  def avatar_filename(source_id,image_file)
    "#{source_id}" #<< file_extension(image_file)
  end
  
  def disk_filename(source_type,source_id,image_file=nil)
    File.join(storage_path,avatar_directory(source_type),avatar_filename(source_id,image_file))   
  end
  
  def file_extension(filename=nil)
    $1 if filename =~ %r{(\.[a-zA-Z0-9]+)$}
  end
  
  def get_avatar(source)
    if source.nil? 
      return File.join(relative_path,'AnonymousUser','0')      
    end
    if source.class && source.id && File.exist?(disk_filename(source.class,source.id))
      avatar_image(source)
    else
      File.join(relative_path,avatar_directory(source.class),'0')
    end
  end
  
  def get_avatar?(source)
    if source && File.exist?(disk_filename(source.class,source.id))
      return true
    else
      return false
    end    
  end
  
end