ÿþ/ *  
 *   M e t a d a t a   -   j Q u e r y   p l u g i n   f o r   p a r s i n g   m e t a d a t a   f r o m   e l e m e n t s  
 *  
 *   C o p y r i g h t   ( c )   2 0 0 6   J o h n   R e s i g ,   Y e h u d a   K a t z ,   J ýÿö r n   Z a e f f e r e r ,   P a u l   M c L a n a h a n  
 *  
 *   D u a l   l i c e n s e d   u n d e r   t h e   M I T   a n d   G P L   l i c e n s e s :  
 *       h t t p : / / w w w . o p e n s o u r c e . o r g / l i c e n s e s / m i t - l i c e n s e . p h p  
 *       h t t p : / / w w w . g n u . o r g / l i c e n s e s / g p l . h t m l  
 *  
 *   R e v i s i o n :   $ I d $  
 *  
 * /  
  
 / * *  
 *   S e t s   t h e   t y p e   o f   m e t a d a t a   t o   u s e .   M e t a d a t a   i s   e n c o d e d   i n   J S O N ,   a n d   e a c h   p r o p e r t y  
 *   i n   t h e   J S O N   w i l l   b e c o m e   a   p r o p e r t y   o f   t h e   e l e m e n t   i t s e l f .  
 *  
 *   T h e r e   a r e   t h r e e   s u p p o r t e d   t y p e s   o f   m e t a d a t a   s t o r a g e :  
 *  
 *       a t t r :     I n s i d e   a n   a t t r i b u t e .   T h e   n a m e   p a r a m e t e r   i n d i c a t e s   * w h i c h *   a t t r i b u t e .  
 *                      
 *       c l a s s :   I n s i d e   t h e   c l a s s   a t t r i b u t e ,   w r a p p e d   i n   c u r l y   b r a c e s :   {   }  
 *        
 *       e l e m :     I n s i d e   a   c h i l d   e l e m e n t   ( e . g .   a   s c r i p t   t a g ) .   T h e  
 *                     n a m e   p a r a m e t e r   i n d i c a t e s   * w h i c h *   e l e m e n t .  
 *                      
 *   T h e   m e t a d a t a   f o r   a n   e l e m e n t   i s   l o a d e d   t h e   f i r s t   t i m e   t h e   e l e m e n t   i s   a c c e s s e d   v i a   j Q u e r y .  
 *  
 *   A s   a   r e s u l t ,   y o u   c a n   d e f i n e   t h e   m e t a d a t a   t y p e ,   u s e   $ ( e x p r )   t o   l o a d   t h e   m e t a d a t a   i n t o   t h e   e l e m e n t s  
 *   m a t c h e d   b y   e x p r ,   t h e n   r e d e f i n e   t h e   m e t a d a t a   t y p e   a n d   r u n   a n o t h e r   $ ( e x p r )   f o r   o t h e r   e l e m e n t s .  
 *    
 *   @ n a m e   $ . m e t a d a t a . s e t T y p e  
 *  
 *   @ e x a m p l e   < p   i d = " o n e "   c l a s s = " s o m e _ c l a s s   { i t e m _ i d :   1 ,   i t e m _ l a b e l :   ' L a b e l ' } " > T h i s   i s   a   p < / p >  
 *   @ b e f o r e   $ . m e t a d a t a . s e t T y p e ( " c l a s s " )  
 *   @ a f t e r   $ ( " # o n e " ) . m e t a d a t a ( ) . i t e m _ i d   = =   1 ;   $ ( " # o n e " ) . m e t a d a t a ( ) . i t e m _ l a b e l   = =   " L a b e l "  
 *   @ d e s c   R e a d s   m e t a d a t a   f r o m   t h e   c l a s s   a t t r i b u t e  
 *    
 *   @ e x a m p l e   < p   i d = " o n e "   c l a s s = " s o m e _ c l a s s "   d a t a = " { i t e m _ i d :   1 ,   i t e m _ l a b e l :   ' L a b e l ' } " > T h i s   i s   a   p < / p >  
 *   @ b e f o r e   $ . m e t a d a t a . s e t T y p e ( " a t t r " ,   " d a t a " )  
 *   @ a f t e r   $ ( " # o n e " ) . m e t a d a t a ( ) . i t e m _ i d   = =   1 ;   $ ( " # o n e " ) . m e t a d a t a ( ) . i t e m _ l a b e l   = =   " L a b e l "  
 *   @ d e s c   R e a d s   m e t a d a t a   f r o m   a   " d a t a "   a t t r i b u t e  
 *    
 *   @ e x a m p l e   < p   i d = " o n e "   c l a s s = " s o m e _ c l a s s " > < s c r i p t > { i t e m _ i d :   1 ,   i t e m _ l a b e l :   ' L a b e l ' } < / s c r i p t > T h i s   i s   a   p < / p >  
 *   @ b e f o r e   $ . m e t a d a t a . s e t T y p e ( " e l e m " ,   " s c r i p t " )  
 *   @ a f t e r   $ ( " # o n e " ) . m e t a d a t a ( ) . i t e m _ i d   = =   1 ;   $ ( " # o n e " ) . m e t a d a t a ( ) . i t e m _ l a b e l   = =   " L a b e l "  
 *   @ d e s c   R e a d s   m e t a d a t a   f r o m   a   n e s t e d   s c r i p t   e l e m e n t  
 *    
 *   @ p a r a m   S t r i n g   t y p e   T h e   e n c o d i n g   t y p e  
 *   @ p a r a m   S t r i n g   n a m e   T h e   n a m e   o f   t h e   a t t r i b u t e   t o   b e   u s e d   t o   g e t   m e t a d a t a   ( o p t i o n a l )  
 *   @ c a t   P l u g i n s / M e t a d a t a  
 *   @ d e s c r   S e t s   t h e   t y p e   o f   e n c o d i n g   t o   b e   u s e d   w h e n   l o a d i n g   m e t a d a t a   f o r   t h e   f i r s t   t i m e  
 *   @ t y p e   u n d e f i n e d  
 *   @ s e e   m e t a d a t a ( )  
 * /  
  
 ( f u n c t i o n ( $ )   {  
  
 	 $ . e x t e n d ( {  
 	 	 m e t a d a t a :   {  
 	 	 	 d e f a u l t s :   {  
 	 	 	 	 t y p e :   ' c l a s s ' ,  
 	 	 	 	 n a m e :   ' m e t a d a t a ' ,  
 	 	 	 	 c r e :   / ( { . * } ) / ,  
 	 	 	 	 s i n g l e :   ' m e t a d a t a '  
 	 	 	 } ,  
 	 	 	 s e t T y p e :   f u n c t i o n ( t y p e ,   n a m e )   {  
 	 	 	 	 t h i s . d e f a u l t s . t y p e   =   t y p e ;  
 	 	 	 	 t h i s . d e f a u l t s . n a m e   =   n a m e ;  
 	 	 	 } ,  
 	 	 	 g e t :   f u n c t i o n ( e l e m ,   o p t s )   {  
 	 	 	 	 v a r   s e t t i n g s   =   $ . e x t e n d ( { } ,   t h i s . d e f a u l t s ,   o p t s ) ;  
 	 	 	 	 / /   c h e c k   f o r   e m p t y   s t r i n g   i n   s i n g l e   p r o p e r t y  
 	 	 	 	 i f   ( ! s e t t i n g s . s i n g l e . l e n g t h )   s e t t i n g s . s i n g l e   =   ' m e t a d a t a ' ;  
  
 	 	 	 	 v a r   d a t a   =   $ . d a t a ( e l e m ,   s e t t i n g s . s i n g l e ) ;  
 	 	 	 	 / /   r e t u r n e d   c a c h e d   d a t a   i f   i t   a l r e a d y   e x i s t s  
 	 	 	 	 i f   ( d a t a )   r e t u r n   d a t a ;  
  
 	 	 	 	 d a t a   =   " { } " ;  
  
 	 	 	 	 i f   ( s e t t i n g s . t y p e   = =   " c l a s s " )   {  
 	 	 	 	 	 v a r   m   =   s e t t i n g s . c r e . e x e c ( e l e m . c l a s s N a m e ) ;  
 	 	 	 	 	 i f   ( m )  
 	 	 	 	 	 	 d a t a   =   m [ 1 ] ;  
 	 	 	 	 }   e l s e   i f   ( s e t t i n g s . t y p e   = =   " e l e m " )   {  
 	 	 	 	 	 i f   ( ! e l e m . g e t E l e m e n t s B y T a g N a m e )  
 	 	 	 	 	 	 r e t u r n   u n d e f i n e d ;  
 	 	 	 	 	 v a r   e   =   e l e m . g e t E l e m e n t s B y T a g N a m e ( s e t t i n g s . n a m e ) ;  
 	 	 	 	 	 i f   ( e . l e n g t h )  
 	 	 	 	 	 	 d a t a   =   $ . t r i m ( e [ 0 ] . i n n e r H T M L ) ;  
 	 	 	 	 }   e l s e   i f   ( e l e m . g e t A t t r i b u t e   ! =   u n d e f i n e d )   {  
 	 	 	 	 	 v a r   a t t r   =   e l e m . g e t A t t r i b u t e ( s e t t i n g s . n a m e ) ;  
 	 	 	 	 	 i f   ( a t t r )  
 	 	 	 	 	 	 d a t a   =   a t t r ;  
 	 	 	 	 }  
  
 	 	 	 	 i f   ( d a t a . i n d e x O f ( ' { ' )   <   0 )  
 	 	 	 	 	 d a t a   =   " { "   +   d a t a   +   " } " ;  
  
 	 	 	 	 d a t a   =   e v a l ( " ( "   +   d a t a   +   " ) " ) ;  
  
 	 	 	 	 $ . d a t a ( e l e m ,   s e t t i n g s . s i n g l e ,   d a t a ) ;  
 	 	 	 	 r e t u r n   d a t a ;  
 	 	 	 }  
 	 	 }  
 	 } ) ;  
  
 	 / * *  
 	 *   R e t u r n s   t h e   m e t a d a t a   o b j e c t   f o r   t h e   f i r s t   m e m b e r   o f   t h e   j Q u e r y   o b j e c t .  
 	 *  
 	 *   @ n a m e   m e t a d a t a  
 	 *   @ d e s c r   R e t u r n s   e l e m e n t ' s   m e t a d a t a   o b j e c t  
 	 *   @ p a r a m   O b j e c t   o p t s   A n   o b j e c t   c o n t i a n i n g   s e t t i n g s   t o   o v e r r i d e   t h e   d e f a u l t s  
 	 *   @ t y p e   j Q u e r y  
 	 *   @ c a t   P l u g i n s / M e t a d a t a  
 	 * /  
 	 $ . f n . m e t a d a t a   =   f u n c t i o n ( o p t s )   {  
 	 	 r e t u r n   $ . m e t a d a t a . g e t ( t h i s [ 0 ] ,   o p t s ) ;  
 	 } ;  
  
 } ) ( j Q u e r y ) ; 
