mō
bjFCc           @   s)   d  k  Z  d k l Z d  d  d  Z d  S(   N(   s   Sax2c         C   sx  d } t i i t  } t i |  t i   }
 d d d d d g } |  d  j o# d k l } | d  i   }  n | d  j o
 d	 } n | d
 7} xP | D]H } | |  j o | d | i   7} q | d | | | i   f 7} q W| d 7} h  } h  } |
 i t d   } x3 | i d  D]" } | i d  | | i d  <q%Wh  } |
 i t d |   } xy | i d  D]h } | i d  } h  | | <xF | i D]; } | i | i  j o qĢn | i d i! | | | i" <qĢWqzWh  } |
 i t d |   } xl| i d  D][} | i d  |  j o qn x5| i D]*} | i | i  j o qBn | i d  } | i d  } | i d  } | i d  } | | d } | | | d } | i) |  o | | c d 7<n d | | <| | }	 | d | | | |	 |	 | t+ |  t+ |  f 7} | d | t+ |  | t+ |  | | i   | i,   | | | f
 7} qBWqW| S(   Nt    t   mondayt   tuesdayt	   wednesdayt   thursdayt   friday(   s   strftimes   %Ai   s   <div id="daylinks">
s   <h1>%s</h1>
sO   <h2><a onclick="javascript:return changemap('%s');" href="?day=%s">%s</a></h2>
s   </div>
s   lecturers.xmlt   lecturert   namet   codes   modules-level%d.xmlt   modulei    s   timetable-level%d.xmlt   dayt   valuet   timet   buildingt   roomi   sų   	<a href="#%s%s" class="marker" id="%s" style="margin-left: %dpx; z-index: %d" onclick="javascript:return togglebubble('b%s%02d');">
		<img onmouseover="javascript:grow(this);" onmouseout="javascript:shrink(this);" src="src/marker%02d.png" />
	</a>
sū   	<div class="bubble" id="b%s%02d">
		<img src="src/close.png" onclick="javascript:togglebubble('b%s%02d');" class="close" />
		<b>%s:00:</b> %s %s<br />
		<b>CS-%s</b> %s<br />
		%s
	</div>
(-   t   return_stringt   ost   patht   dirnamet   __file__t   basedirt   chdirt   Sax2t   Readert   readert   dayst   todayt   NoneR   t   strftimet   lowert   levelR
   t   titlet	   buildingst	   lecturerst
   fromStreamt   opent   doct   getElementsByTagNamet   nodet   getAttributet   modulesR   t
   childNodest   childt   nodeTypet   ELEMENT_NODEt   datat   nodeNamet	   timetableR   R   t   module_codet   module_nameR   t   has_keyt   offsett   intt   upper(   R   R   R   R   R   R    R!   R0   R   R3   R   R/   R&   R*   R
   R   R   R$   R(   R   R   R1   R   (    (    t   rendermap.pyt	   rendermap   sr    

 !
   

 # 
 

2L(   R   t   xml.dom.ext.readerR   R   R7   (   R7   R   R   (    (    R6   t   ?   s   	
