ÿþ/ *  
 *   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 :   j q u e r y . m e t a d a t a . j s   3 6 4 0   2 0 0 7 - 1 0 - 1 1   1 8 : 3 4 : 3 8 Z   p m c l a n a h a n   $  
 *  
 * /  
  
 / * *  
   *   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 ;  
   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 ) ; 
