#!/usr/bin/python
# -*- coding: utf-8 -*-

 
from xml.sax import ContentHandler,make_parser

import sys


class FootHandler(ContentHandler):

    def __init__ (self):
        "initialisation du handler"
        self.nb_nuls = 0
        self.victoires = {}

    
    def startElement(self, name, attrs):
        "ce que l'on fait pour chaque balise ouvrante"

        if name=="CHAMPIONNAT":
            print '<html xmlns="http://www.w3.org/1999/xhtml">'
            print '<head>'
            print '<title>Ligue ',attrs['DIVISION'],', saison ',attrs['SAISON'],'</title>'
            print '<link rel="stylesheet" href="foot.css" />'
            print '</head>'
            print '<body>'
            print '<div class="pagelarge">'
            print '<h1>Championnat de ligue ',attrs['DIVISION'],
            print ' saison ',attrs['SAISON'],'</h1>'
        elif name=="JOURNEE":
            print '<div class="journee">'
            print '<h2>Journée ',attrs['NUMERO'],' (',attrs['DATE'],')</h2>'
            print '<table>'
        elif name=="RENCONTRE":
            ed = attrs['DOMICILE']
            ee = attrs['EXTERIEUR']
            sd = attrs['SCORED']
            se = attrs['SCOREE']

            # sortie de la rencontre

            print '<tr><td>',ed,'</td><td>',sd,'</td><td>',se,'</td><td>',ee,'</td></tr>'


            # mise a jour des stats
            if sd==se:
                self.nb_nuls += 1
            elif sd > se:
                self.victoires[ed] = self.victoires.get(ed,0) + 1
            else:
                self.victoires[ee] = self.victoires.get(ee,0) + 1


    def endElement(self, name):
        "ce que l'on fait pour chaque balise fermante"

        if name=="JOURNEE":
            print '</table>'
            print '</div>'







# Parsing du fichier de résultats

fh = FootHandler()

parser = make_parser()

parser.setContentHandler(fh)

parser.parse(sys.argv[1]) # on parse le fichier donné en argument



# Quelques stats

print '<h2>Statistiques</h2>'

print '<p>Nombre de matches nuls :',fh.nb_nuls,'<p>'

print '<p>',fh.victoires['Bastia'],' victoires pour Bastia, ', fh.victoires['Lyon'],' pour Lyon.</p>'



# Affichage des équipes et de leur nombre de victoires

print '<center><table><tr><th>&Eacute;quipes</th><th>Victoires</th></tr>'

for equipe in fh.victoires.keys():
    print '<tr><th>',equipe,'</th><td>',fh.victoires[equipe],'</td></tr>'

print '</table></center>'

print '<br /><br />'

# Tri des équipes par nombre de victoires
# en Python 2.4 : couples.sort(key=lambda x : x[1], reverse=True)


couples = fh.victoires.items()

couples_inverses = [ (c[1],c[0]) for c in couples ] 

couples_inverses.sort()
couples_inverses.reverse()

print '<center><table><tr><th>&Eacute;quipes</th><th>Victoires</th></tr>'

for c in couples_inverses:
    print '<tr><th>',c[1],'</th><td>',c[0],'</td></tr>'

print '</table></center>'


# Fin du HTML

print '</div>'
print '</body>'
print '</html>'


