<Purpose>
    Used to print random seash factoid when user runs seash.
    
  <Arguments>
    None
    
  <Side Effects>
    Prints random factoid onto the screen.
    
  <Exceptions>
    UserError: Error during generating path to "factoid.txt" file or
               Error while opening, reading or closing "factoid.txt" file.
    
  <Return>
    None

def initialize():
  """
  <Purpose>
    Used to print random seash factoid when user runs seash.
    
  <Arguments>
    None
    
  <Side Effects>
    Prints random factoid onto the screen.
    
  <Exceptions>
    UserError: Error during generating path to "factoid.txt" file or
               Error while opening, reading or closing "factoid.txt" file.
    
  <Return>
    None
  """
  
  # Global 'factoids' list will be used to store factoids, fetched from a file.
  global factoids
  
  # Path to "factoid.txt" file is created.
  try:
    current_path = os.getcwd()
    file_path = os.path.join(current_path, "modules", "factoids", "factoid.txt")
  except OSError, error:
    raise seash_exceptions.InitializeError("Error during initializing factoids module: '" + str(error) + "'.")

  # We have to fatch list of factoids from "factoid.txt" file.
  try:
    file_object = open(file_path, 'r')
    factoids_temp = file_object.readlines()
    file_object.close()
  except IOError, error:
    raise seash_exceptions.InitializeError("Error during initializing factoids module: '" + str(error) + "'.")
  
  # Newline characters in a list, read from a file are removed.
  for factoid in factoids_temp:
    factoids.append(factoid.strip('\n'))
  
  # A random factoid is printed every time user runs seash.
  print random.choice(factoids)+"\n"