def fac(n):
    """Returns the faculty of n

    fac(n)
    n: A positive integer
    """
    if n==0 or n==1:
        return 1
    if n<0:
        print "Error: Can only take faculty of positive integers!"
        return -1
    f=fac(n-1)
    if f<=0:
        return -1
    else:
        return n*f
    

def printSelectedGames():
    """Prints the selected games

    printSelectedGames()
    """
    from de.tum.in.fipm.base.util import Settings

    fipm=Settings.getStd().get("main_desktop")
    games=fipm.getSelectedGames()
    for game in games:
        print game.toString()

def printQueries():
    """Prints the names of the Queries in the database

    printQueries()
    """
    from de.tum.in.fipm.base.data.query import QueryFactory

    queryNames=QueryFactory.getAllQueryNames()
    for query in queryNames:
        print query

def getEpisodes(games=None):
    """Adds the episode table to the ContentTree

    getEpisodes(games=None)
    games: the games to use
    """
    from utils import *
    from de.tum.in.fipm.base.database import SQLQuery
    from fipm.gui import InteractiveQuery
    from de.tum.in.fipm.base.util import Settings

    games=updateGames(games)
    query=SQLQuery(None,"SELECT ${columns} FROM episodes",None)
    queryResult=query.execute(games);
    fipm=Settings.getStd().get("main_desktop")
    fipm.addResult(queryResult)
    return queryResult
