ÿþf u n c t i o n   O v e r M e n u ( I D )  
 {  
         d o c u m e n t . g e t E l e m e n t B y I d ( I D ) . c l a s s N a m e   =   " O v e r M e n u " ;   	 	  
 }  
  
 f u n c t i o n   O u t M e n u ( I D )  
 {  
         d o c u m e n t . g e t E l e m e n t B y I d ( I D ) . c l a s s N a m e   =   " M e n u " ;  
 }  
  
 f u n c t i o n   s p r i n t f (   )   {  
         / /   h t t p : / / k e v i n . v a n z o n n e v e l d . n e t  
         / /   +       o r i g i n a l   b y :   A s h   S e a r l e   ( h t t p : / / h e x m e n . c o m / b l o g / )  
         / /   +   n a m e s p a c e d   b y :   M i c h a e l   W h i t e   ( h t t p : / / c r e s t i d g . c o m )  
         / /   *           e x a m p l e   1 :   s p r i n t f ( " % 0 1 . 2 f " ,   1 2 3 . 1 ) ;  
         / /   *           r e t u r n s   1 :   1 2 3 . 1 0  
    
         v a r   r e g e x   =   / % % | % ( \ d + \ $ ) ? ( [ - + # 0   ] * ) ( \ * \ d + \ $ | \ * | \ d + ) ? ( \ . ( \ * \ d + \ $ | \ * | \ d + ) ) ? ( [ s c b o x X u i d f e g E G ] ) / g ;  
         v a r   a   =   a r g u m e n t s ,   i   =   0 ,   f o r m a t   =   a [ i + + ] ;  
    
         / /   p a d ( )  
         v a r   p a d   =   f u n c t i o n ( s t r ,   l e n ,   c h r ,   l e f t J u s t i f y )   {  
                 v a r   p a d d i n g   =   ( s t r . l e n g t h   > =   l e n )   ?   ' '   :   A r r a y ( 1   +   l e n   -   s t r . l e n g t h   > > >   0 ) . j o i n ( c h r ) ;  
                 r e t u r n   l e f t J u s t i f y   ?   s t r   +   p a d d i n g   :   p a d d i n g   +   s t r ;  
         } ;  
    
         / /   j u s t i f y ( )  
         v a r   j u s t i f y   =   f u n c t i o n ( v a l u e ,   p r e f i x ,   l e f t J u s t i f y ,   m i n W i d t h ,   z e r o P a d )   {  
                 v a r   d i f f   =   m i n W i d t h   -   v a l u e . l e n g t h ;  
                 i f   ( d i f f   >   0 )   {  
                         i f   ( l e f t J u s t i f y   | |   ! z e r o P a d )   {  
                         v a l u e   =   p a d ( v a l u e ,   m i n W i d t h ,   '   ' ,   l e f t J u s t i f y ) ;  
                         }   e l s e   {  
                         v a l u e   =   v a l u e . s l i c e ( 0 ,   p r e f i x . l e n g t h )   +   p a d ( ' ' ,   d i f f ,   ' 0 ' ,   t r u e )   +   v a l u e . s l i c e ( p r e f i x . l e n g t h ) ;  
                         }  
                 }  
                 r e t u r n   v a l u e ;  
         } ;  
    
         / /   f o r m a t B a s e X ( )  
         v a r   f o r m a t B a s e X   =   f u n c t i o n ( v a l u e ,   b a s e ,   p r e f i x ,   l e f t J u s t i f y ,   m i n W i d t h ,   p r e c i s i o n ,   z e r o P a d )   {  
                 / /   N o t e :   c a s t s   n e g a t i v e   n u m b e r s   t o   p o s i t i v e   o n e s  
                 v a r   n u m b e r   =   v a l u e   > > >   0 ;  
                 p r e f i x   =   p r e f i x   & &   n u m b e r   & &   { ' 2 ' :   ' 0 b ' ,   ' 8 ' :   ' 0 ' ,   ' 1 6 ' :   ' 0 x ' } [ b a s e ]   | |   ' ' ;  
                 v a l u e   =   p r e f i x   +   p a d ( n u m b e r . t o S t r i n g ( b a s e ) ,   p r e c i s i o n   | |   0 ,   ' 0 ' ,   f a l s e ) ;  
                 r e t u r n   j u s t i f y ( v a l u e ,   p r e f i x ,   l e f t J u s t i f y ,   m i n W i d t h ,   z e r o P a d ) ;  
         } ;  
    
         / /   f o r m a t S t r i n g ( )  
         v a r   f o r m a t S t r i n g   =   f u n c t i o n ( v a l u e ,   l e f t J u s t i f y ,   m i n W i d t h ,   p r e c i s i o n ,   z e r o P a d )   {  
                 i f   ( p r e c i s i o n   ! =   n u l l )   {  
                         v a l u e   =   v a l u e . s l i c e ( 0 ,   p r e c i s i o n ) ;  
                 }  
                 r e t u r n   j u s t i f y ( v a l u e ,   ' ' ,   l e f t J u s t i f y ,   m i n W i d t h ,   z e r o P a d ) ;  
         } ;  
    
         / /   f i n a l F o r m a t ( )  
         v a r   d o F o r m a t   =   f u n c t i o n ( s u b s t r i n g ,   v a l u e I n d e x ,   f l a g s ,   m i n W i d t h ,   _ ,   p r e c i s i o n ,   t y p e )   {  
                 i f   ( s u b s t r i n g   = =   ' % % ' )   r e t u r n   ' % ' ;  
    
                 / /   p a r s e   f l a g s  
                 v a r   l e f t J u s t i f y   =   f a l s e ,   p o s i t i v e P r e f i x   =   ' ' ,   z e r o P a d   =   f a l s e ,   p r e f i x B a s e X   =   f a l s e ;  
                 f o r   ( v a r   j   =   0 ;   f l a g s   & &   j   <   f l a g s . l e n g t h ;   j + + )   s w i t c h   ( f l a g s . c h a r A t ( j ) )   {  
                         c a s e   '   ' :   p o s i t i v e P r e f i x   =   '   ' ;   b r e a k ;  
                         c a s e   ' + ' :   p o s i t i v e P r e f i x   =   ' + ' ;   b r e a k ;  
                         c a s e   ' - ' :   l e f t J u s t i f y   =   t r u e ;   b r e a k ;  
                         c a s e   ' 0 ' :   z e r o P a d   =   t r u e ;   b r e a k ;  
                         c a s e   ' # ' :   p r e f i x B a s e X   =   t r u e ;   b r e a k ;  
                 }  
    
                 / /   p a r a m e t e r s   m a y   b e   n u l l ,   u n d e f i n e d ,   e m p t y - s t r i n g   o r   r e a l   v a l u e d  
                 / /   w e   w a n t   t o   i g n o r e   n u l l ,   u n d e f i n e d   a n d   e m p t y - s t r i n g   v a l u e s  
                 i f   ( ! m i n W i d t h )   {  
                         m i n W i d t h   =   0 ;  
                 }   e l s e   i f   ( m i n W i d t h   = =   ' * ' )   {  
                         m i n W i d t h   =   + a [ i + + ] ;  
                 }   e l s e   i f   ( m i n W i d t h . c h a r A t ( 0 )   = =   ' * ' )   {  
                         m i n W i d t h   =   + a [ m i n W i d t h . s l i c e ( 1 ,   - 1 ) ] ;  
                 }   e l s e   {  
                         m i n W i d t h   =   + m i n W i d t h ;  
                 }  
    
                 / /   N o t e :   u n d o c u m e n t e d   p e r l   f e a t u r e :  
                 i f   ( m i n W i d t h   <   0 )   {  
                         m i n W i d t h   =   - m i n W i d t h ;  
                         l e f t J u s t i f y   =   t r u e ;  
                 }  
    
                 i f   ( ! i s F i n i t e ( m i n W i d t h ) )   {  
                         t h r o w   n e w   E r r o r ( ' s p r i n t f :   ( m i n i m u m - ) w i d t h   m u s t   b e   f i n i t e ' ) ;  
                 }  
    
                 i f   ( ! p r e c i s i o n )   {  
                         p r e c i s i o n   =   ' f F e E ' . i n d e x O f ( t y p e )   >   - 1   ?   6   :   ( t y p e   = =   ' d ' )   ?   0   :   v o i d ( 0 ) ;  
                 }   e l s e   i f   ( p r e c i s i o n   = =   ' * ' )   {  
                         p r e c i s i o n   =   + a [ i + + ] ;  
                 }   e l s e   i f   ( p r e c i s i o n . c h a r A t ( 0 )   = =   ' * ' )   {  
                         p r e c i s i o n   =   + a [ p r e c i s i o n . s l i c e ( 1 ,   - 1 ) ] ;  
                 }   e l s e   {  
                         p r e c i s i o n   =   + p r e c i s i o n ;  
                 }  
    
                 / /   g r a b   v a l u e   u s i n g   v a l u e I n d e x   i f   r e q u i r e d ?  
                 v a r   v a l u e   =   v a l u e I n d e x   ?   a [ v a l u e I n d e x . s l i c e ( 0 ,   - 1 ) ]   :   a [ i + + ] ;  
    
                 s w i t c h   ( t y p e )   {  
                         c a s e   ' s ' :   r e t u r n   f o r m a t S t r i n g ( S t r i n g ( v a l u e ) ,   l e f t J u s t i f y ,   m i n W i d t h ,   p r e c i s i o n ,   z e r o P a d ) ;  
                         c a s e   ' c ' :   r e t u r n   f o r m a t S t r i n g ( S t r i n g . f r o m C h a r C o d e ( + v a l u e ) ,   l e f t J u s t i f y ,   m i n W i d t h ,   p r e c i s i o n ,   z e r o P a d ) ;  
                         c a s e   ' b ' :   r e t u r n   f o r m a t B a s e X ( v a l u e ,   2 ,   p r e f i x B a s e X ,   l e f t J u s t i f y ,   m i n W i d t h ,   p r e c i s i o n ,   z e r o P a d ) ;  
                         c a s e   ' o ' :   r e t u r n   f o r m a t B a s e X ( v a l u e ,   8 ,   p r e f i x B a s e X ,   l e f t J u s t i f y ,   m i n W i d t h ,   p r e c i s i o n ,   z e r o P a d ) ;  
                         c a s e   ' x ' :   r e t u r n   f o r m a t B a s e X ( v a l u e ,   1 6 ,   p r e f i x B a s e X ,   l e f t J u s t i f y ,   m i n W i d t h ,   p r e c i s i o n ,   z e r o P a d ) ;  
                         c a s e   ' X ' :   r e t u r n   f o r m a t B a s e X ( v a l u e ,   1 6 ,   p r e f i x B a s e X ,   l e f t J u s t i f y ,   m i n W i d t h ,   p r e c i s i o n ,   z e r o P a d ) . t o U p p e r C a s e ( ) ;  
                         c a s e   ' u ' :   r e t u r n   f o r m a t B a s e X ( v a l u e ,   1 0 ,   p r e f i x B a s e X ,   l e f t J u s t i f y ,   m i n W i d t h ,   p r e c i s i o n ,   z e r o P a d ) ;  
                         c a s e   ' i ' :  
                         c a s e   ' d ' :   {  
                                                 v a r   n u m b e r   =   p a r s e I n t ( + v a l u e ) ;  
                                                 v a r   p r e f i x   =   n u m b e r   <   0   ?   ' - '   :   p o s i t i v e P r e f i x ;  
                                                 v a l u e   =   p r e f i x   +   p a d ( S t r i n g ( M a t h . a b s ( n u m b e r ) ) ,   p r e c i s i o n ,   ' 0 ' ,   f a l s e ) ;  
                                                 r e t u r n   j u s t i f y ( v a l u e ,   p r e f i x ,   l e f t J u s t i f y ,   m i n W i d t h ,   z e r o P a d ) ;  
                                         }  
                         c a s e   ' e ' :  
                         c a s e   ' E ' :  
                         c a s e   ' f ' :  
                         c a s e   ' F ' :  
                         c a s e   ' g ' :  
                         c a s e   ' G ' :  
                                                 {  
                                                 v a r   n u m b e r   =   + v a l u e ;  
                                                 v a r   p r e f i x   =   n u m b e r   <   0   ?   ' - '   :   p o s i t i v e P r e f i x ;  
                                                 v a r   m e t h o d   =   [ ' t o E x p o n e n t i a l ' ,   ' t o F i x e d ' ,   ' t o P r e c i s i o n ' ] [ ' e f g ' . i n d e x O f ( t y p e . t o L o w e r C a s e ( ) ) ] ;  
                                                 v a r   t e x t T r a n s f o r m   =   [ ' t o S t r i n g ' ,   ' t o U p p e r C a s e ' ] [ ' e E f F g G ' . i n d e x O f ( t y p e )   %   2 ] ;  
                                                 v a l u e   =   p r e f i x   +   M a t h . a b s ( n u m b e r ) [ m e t h o d ] ( p r e c i s i o n ) ;  
                                                 r e t u r n   j u s t i f y ( v a l u e ,   p r e f i x ,   l e f t J u s t i f y ,   m i n W i d t h ,   z e r o P a d ) [ t e x t T r a n s f o r m ] ( ) ;  
                                         }  
                         d e f a u l t :   r e t u r n   s u b s t r i n g ;  
                 }  
         } ;  
    
         r e t u r n   f o r m a t . r e p l a c e ( r e g e x ,   d o F o r m a t ) ;  
 } 
