import string, os, os.path
import exceptions
from functions import xmlString, quoteIt
class Footer:
    "Model the footer"
    def __init__(self, props=None):
        if props:
            self.title = props["title"]
            self.creator = props["creator"]
            self.glink = props["glink"]
        else:
            self.title   = None 
            self.creator = None 
            self.glink   = None

        
    def setTitle(self, title):
        self.title = title
 
    def getTitle(self):
        if self.title is None:
            head,self.title = os.path.split(os.getcwd())
        return self.title

    def setCreator(self, creator):
        self.creator = creator

    def setGlink(self, glink):
        self.glink = glink

    def getFromSignature(self):
        i = string.find(self.creator, "<")
        if i >= 0:
            c = string.strip(self.creator[:i])
            l = string.strip(self.creator[i+1:])
            l = string.replace(l, ">", "")
            return "<a href=\"%s\">%s</a>" % (l, c)
                
    
    def getHTML(self):
        if len(self.creator) > 0:
            ret= "  <hr class=\"abovegallerylink\"><p class=\"footer\">%s created by %s with %s </p>" % (self.getTitle(), self.getFromSignature(), self.glink)
        else:
            ret= "  <hr class=\"abovegallerylink\"><p class=\"footer\">%s created with %s </p>" % (self.getTitle(), self.glink)
        return ret+"\n  \n  </body>\n</html>"


    def getXML(self):
        "Return XML code for this footer"
        xml = []
        xml.append("\n        <footer>")
        xml.append("\n            <foo_title>" + quoteIt(xmlString(self.getTitle())) + "</foo_title>")
        xml.append("\n            <creator>" + quoteIt(xmlString(self.getFromSignature())) + "</creator>")
        xml.append("\n            <glink>" + quoteIt(xmlString(self.glink)) + "</glink>")
        xml.append("\n        </footer>")
        return string.joinfields(xml)

        
