/ * !
TimelineJS
Designed and built by Zach Wise at VéritéCo
This program is free software : you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation , either version 3 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
http : //www.gnu.org/licenses/
* //***********************************************
Begin VMM . js
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //* Verite
* Verite JS Master
* Version : 0.6
* Date : April 26 , 2012
* Copyright 2012 Verite unless part of Verite Timeline ,
* if part of Timeline then it inherits Timeline ' s license .
* Designed and built by Zach Wise digitalartwork . net
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - * //* Simple JavaScript Inheritance
* By John Resig http : //ejohn.org/
* MIT Licensed .
=== === === === === === === === === === === === === === === === == * / f u n c t i o n t r a c e ( a ) { V M M . d e b u g & & ( w i n d o w . c o n s o l e ? c o n s o l e . l o g ( a ) : t y p e o f j s T r a c e ! = " u n d e f i n e d " & & j s T r a c e . s e n d ( a ) ) } f u n c t i o n o n Y o u T u b e P l a y e r A P I R e a d y ( ) { t r a c e ( " G L O B A L Y O U T U B E A P I C A L L E D " ) ; V M M . E x t e r n a l A P I . y o u t u b e . o n A P I R e a d y ( ) } ( f u n c t i o n ( ) { v a r a = ! 1 , b = / x y z / . t e s t ( f u n c t i o n ( ) { x y z } ) ? / \ b _ s u p e r \ b / : / . * / ; t h i s . C l a s s = f u n c t i o n ( ) { } ; C l a s s . e x t e n d = f u n c t i o n ( c ) { f u n c t i o n g ( ) { ! a & & t h i s . i n i t & & t h i s . i n i t . a p p l y ( t h i s , a r g u m e n t s ) } v a r d = t h i s . p r o t o t y p e ; a = ! 0 ; v a r e = n e w t h i s ; a = ! 1 ; f o r ( v a r f i n c ) e [ f ] = t y p e o f c [ f ] = = " f u n c t i o n " & & t y p e o f d [ f ] = = " f u n c t i o n " & & b . t e s t ( c [ f ] ) ? f u n c t i o n ( a , b ) { r e t u r n f u n c t i o n ( ) { v a r c = t h i s . _ s u p e r ; t h i s . _ s u p e r = d [ a ] ; v a r e = b . a p p l y ( t h i s , a r g u m e n t s ) ; t h i s . _ s u p e r = c ; r e t u r n e } } ( f , c [ f ] ) : c [ f ] ; g . p r o t o t y p e = e ; g . p r o t o t y p e . c o n s t r u c t o r = g ; g . e x t e n d = a r g u m e n t s . c a l l e e ; r e t u r n g } } ) ( ) ; v a r g l o b a l = f u n c t i o n ( ) { r e t u r n t h i s | | ( 1 , e v a l ) ( " t h i s " ) } ( ) ; i f ( t y p e o f V M M = = " u n d e f i n e d " ) { v a r V M M = C l a s s . e x t e n d ( { } ) ; V M M . d e b u g = ! 0 ; V M M . m a s t e r _ c o n f i g = { i n i t : f u n c t i o n ( ) { r e t u r n t h i s } , s i z e s : { a p i : { w i d t h : 0 , h e i g h t : 0 } } , v p : " P e l l e n t e s q u e n i b h f e l i s , e l e i f e n d i d , c o m m o d o i n , i n t e r d u m v i t a e , l e o " , a p i _ k e y s _ m a s t e r : { f l i c k r : " R A I v x H Y 4 h E / E l m 5 c i e h 4 X 5 p t M y D p j 7 M Y I x z i G x i 0 W G C c y 1 s + y r 7 r K Q = = " , g o o g l e : " j w N G n Y w 4 h E 9 l m A e z 4 l l 0 Q D + j o 6 S K B J F k n k o p L S 4 F r S A u G f I w y j 5 7 A u s u R 0 s 8 d A o = " , t w i t t e r : " " } , f l i c k r : { a c t i v e : ! 1 , a r r a y : [ ] , a p i _ l o a d e d : ! 1 , q u e : [ ] } , y o u t u b e : { a c t i v e : ! 1 , a r r a y : [ ] , a p i _ l o a d e d : ! 1 , q u e : [ ] } , v i m e o : { a c t i v e : ! 1 , a r r a y : [ ] , a p i _ l o a d e d : ! 1 , q u e : [ ] } , g o o g l e m a p s : { a c t i v e : ! 1 , m a p _ a c t i v e : ! 1 , p l a c e s _ a c t i v e : ! 1 , a r r a y : [ ] , a p i _ l o a d e d : ! 1 , q u e : [ ] } , g o o g l e d o c s : { a c t i v e : ! 1 , a r r a y : [ ] , a p i _ l o a d e d : ! 1 , q u e : [ ] } , g o o g l e p l u s : { a c t i v e : ! 1 , a r r a y : [ ] , a p i _ l o a d e d : ! 1 , q u e : [ ] } , w i k i p e d i a : { a c t i v e : ! 1 , a r r a y : [ ] , a p i _ l o a d e d : ! 1 , q u e : [ ] } , s o u n d c l o u d : { a c t i v e : ! 1 , a r r a y : [ ] , a p i _ l o a d e d : ! 1 , q u e : [ ] } } . i n i t ( ) ; V M M . c r e a t e E l e m e n t = f u n c t i o n ( a , b , c , d , e ) { v a r f = " " ; i f ( a ! = n u l l & & a ! = " " ) { f + = " < " + a ; c ! = n u l l & & c ! = " " & & ( f + = " c l a s s = ' " + c + " ' " ) ; d ! = n u l l & & d ! = " " & & ( f + = " " + d ) ; e ! = n u l l & & e ! = " " & & ( f + = " s t y l e = ' " + e + " ' " ) ; f + = " > " ; b ! = n u l l & & b ! = " " & & ( f + = b ) ; f = f + " < / " + a + " > " } r e t u r n f } ; V M M . c r e a t e M e d i a E l e m e n t = f u n c t i o n ( a , b , c ) { v a r d = " " , e = ! 1 ; d + = " < d i v c l a s s = ' m e d i a ' > " ; i f ( a ! = n u l l & & a ! = " " ) { v a l i d = ! 0 ; d + = " < i m g s r c = ' " + a + " ' > " ; c ! = n u l l & & c ! = " " & & ( d + = V M M . c r e a t e E l e m e n t ( " d i v " , c , " c r e d i t " ) ) ; b ! = n u l l & & b ! = " " & & ( d + = V M M . c r e a t e E l e m e n t ( " d i v " , b , " c a p t i o n " ) ) } d + = " < / d i v > " ; r e t u r n d } ; V M M . h i d e U r l B a r = f u n c t i o n ( ) { v a r a = w i n d o w , b = a . d o c u m e n t ; i f ( ! l o c a t i o n . h a s h | | ! a . a d d E v e n t L i s t e n e r ) { w i n d o w . s c r o l l T o ( 0 , 1 ) ; v a r c = 1 , d = s e t I n t e r v a l ( f u n c t i o n ( ) { i f ( b . b o d y ) { c l e a r I n t e r v a l ( d ) ; c = " s c r o l l T o p " i n b . b o d y ? b . b o d y . s c r o l l T o p : 1 ; a . s c r o l l T o ( 0 , c = = = 1 ? 0 : 1 ) } } , 1 5 ) ; a . a d d E v e n t L i s t e n e r ( " l o a d " , f u n c t i o n ( ) { s e t T i m e o u t ( f u n c t i o n ( ) { a . s c r o l l T o ( 0 , c = = = 1 ? 0 : 1 ) } , 0 ) } , ! 1 ) } } } D a t e . p r o t o t y p e . g e t W e e k = f u n c t i o n ( ) { v a r a = n e w D a t e ( t h i s . g e t F u l l Y e a r ( ) , 0 , 1 ) ; r e t u r n M a t h . c e i l ( ( ( t h i s - a ) / 8 6 4 e 5 + a . g e t D a y ( ) + 1 ) / 7 ) } ; D a t e . p r o t o t y p e . g e t D a y O f Y e a r = f u n c t i o n ( ) { v a r a = n e w D a t e ( t h i s . g e t F u l l Y e a r ( ) , 0 , 1 ) ; r e t u r n M a t h . c e i l ( ( t h i s - a ) / 8 6 4 e 5 ) } ; v a r i s = { N u l l : f u n c t i o n ( a ) { r e t u r n a = = = n u l l } , U n d e f i n e d : f u n c t i o n ( a ) { r e t u r n a = = = u n d e f i n e d } , n t : f u n c t i o n ( a ) { r e t u r n a = = = n u l l | | a = = = u n d e f i n e d } , F u n c t i o n : f u n c t i o n ( a ) { r e t u r n t y p e o f a = = " f u n c t i o n " ? a . c o n s t r u c t o r . t o S t r i n g ( ) . m a t c h ( / F u n c t i o n / ) ! = = n u l l : ! 1 } , S t r i n g : f u n c t i o n ( a ) { r e t u r n t y p e o f a = = " s t r i n g " ? ! 0 : t y p e o f a = = " o b j e c t " ? a . c o n s t r u c t o r . t o S t r i n g ( ) . m a t c h ( / s t r i n g / i ) ! = = n u l l : ! 1 } , A r r a y : f u n c t i o n ( a ) { r e t u r n t y p e o f a = = " o b j e c t " ? a . c o n s t r u c t o r . t o S t r i n g ( ) . m a t c h ( / a r r a y / i ) ! = = n u l l | | a . l e n g t h ! = = u n d e f i n e d : ! 1 } , B o o l e a n : f u n c t i o n ( a ) { r e t u r n t y p e o f a = = " b o o l e a n " ? ! 0 : t y p e o f a = = " o b j e c t " ? a . c o n s t r u c t o r . t o S t r i n g ( ) . m a t c h ( / b o o l e a n / i ) ! = = n u l l : ! 1 } , D a t e : f u n c t i o n ( a ) { r e t u r n t y p e o f a = = " d a t e " ? ! 0 : t y p e o f a = = " o b j e c t " ? a . c o n s t r u c t o r . t o S t r i n g ( ) . m a t c h ( / d a t e / i ) ! = = n u l l : ! 1 } , H T M L : f u n c t i o n ( a ) { r e t u r n t y p e o f a = = " o b j e c t " ? a . c o n s t r u c t o r . t o S t r i n g ( ) . m a t c h ( / h t m l / i ) ! = = n u l l : ! 1 } , N u m b e r : f u n c t i o n ( a ) { r e t u r n t y p e o f a = = " n u m b e r " ? ! 0 : t y p e o f a = = " o b j e c t " ? a . c o n s t r u c t o r . t o S t r i n g ( ) . m a t c h ( / N u m b e r / ) ! = = n u l l : ! 1 } , O b j e c t : f u n c t i o n ( a ) { r e t u r n t y p e o f a = = " o b j e c t " ? a . c o n s t r u c t o r . t o S t r i n g ( ) . m a t c h ( / o b j e c t / i ) ! = = n u l l : ! 1 } , R e g E x p : f u n c t i o n ( a ) { r e t u r n t y p e o f a = = " f u n c t i o n " ? a . c o n s t r u c t o r . t o S t r i n g ( ) . m a t c h ( / r e g e x p / i ) ! = = n u l l : ! 1 } } , t y p e = { o f : f u n c t i o n ( a ) { f o r ( v a r b i n i s ) i f ( i s [ b ] ( a ) ) r e t u r n b . t o L o w e r C a s e ( ) } } ; i f ( t y p e o f V M M ! = " u n d e f i n e d " ) { V M M . a t t a c h E l e m e n t = f u n c t i o n ( a , b ) { t y p e o f j Q u e r y ! = " u n d e f i n e d " & & j Q u e r y ( a ) . h t m l ( b ) } ; V M M . a p p e n d E l e m e n t = f u n c t i o n ( a , b ) { t y
} ) } , notFoundError : function ( a ) { trace ( "TWITTER JSON ERROR TIMEOUT " + a ) ; VMM . attachElement ( "#twitter_" + a , "<span class='messege'><p>Error loading tweet: " + a + "</p></span>" ) ; VMM . getJSON ( "http://api.twitter.com/1/account/rate_limit_status.json" , function ( b ) { trace ( "REMAINING TWITTER API CALLS " + b . remaining _hits ) ; trace ( "TWITTER RATE LIMIT WILL RESET AT " + b . reset _time ) ; var c = "" ; if ( b . remaining _hits == 0 ) { c = "<p>You've reached the maximum number of tweets you can load in an hour.</p>" ; c += "<p>You can view tweets again starting at: <br/>" + b . reset _time + "</p>" } else c = "<p>Tweet " + a + " was not found.</p>" ; VMM . attachElement ( "#twitter_" + a , "<span class='messege'>" + c + "</span>" ) } ) } , formatJSON : function ( a ) { var b = a . id _str , c = "<blockquote><p>" , d = VMM . Util . linkify _with _twitter ( a . text , "_blank" ) ; c += d ; c += "</p></blockquote>" ; c += "<div class='vcard author'>" ; c += "<a class='screen-name url' href='https://twitter.com/" + a . user . screen _name + "' data-screen-name='" + a . user . screen _name + "' target='_blank'>" ; c += "<span class='avatar'><img src=' " + a . user . profile _image _url + "' alt=''></span>" ; c += "<span class='fn'>" + a . user . name + "</span>" ; c += "<span class='nickname'>@" + a . user . screen _name + "<span class='thumbnail-inline'></span></span>" ; c += "</a>" ; c += "</div>" ; typeof a . entities . media != "undefined" && a . entities . media [ 0 ] . type == "photo" && ( c += "<img src=' " + a . entities . media [ 0 ] . media _url + "' alt=''>" ) ; VMM . attachElement ( "#twitter_" + b . toString ( ) , c ) ; VMM . attachElement ( "#text_thumb_" + b . toString ( ) , a . text ) } } , googlemaps : { get : function ( a , b ) { var c , d , e ; e = VMM . Util . getUrlVars ( a ) ; VMM . master _config . Timeline . api _keys . google != "" ? d = VMM . master _config . Timeline . api _keys . google : d = Aes . Ctr . decrypt ( VMM . master _config . api _keys _master . google , VMM . master _config . vp , 256 ) ; var f = "http://maps.googleapis.com/maps/api/js?key=" + d + "&libraries=places&sensor=false&callback=VMM.ExternalAPI.googlemaps.onMapAPIReady" , g = { url : a , vars : e , id : b } ; if ( VMM . master _config . googlemaps . active ) VMM . master _config . googlemaps . que . push ( g ) ; else { VMM . master _config . googlemaps . que . push ( g ) ; VMM . master _config . googlemaps . api _loaded || VMM . LoadLib . js ( f , function ( ) { trace ( "Google Maps API Library Loaded" ) } ) } } , create : function ( a ) { function e ( a ) { if ( a in VMM . ExternalAPI . googlemaps . map _providers ) { b = VMM . ExternalAPI . googlemaps . map _attribution [ VMM . ExternalAPI . googlemaps . map _providers [ a ] . attribution ] ; return VMM . ExternalAPI . googlemaps . map _providers [ a ] } if ( VMM . ExternalAPI . googlemaps . defaultType ( a ) ) { trace ( "GOOGLE MAP DEFAULT TYPE" ) ; return google . maps . MapTypeId [ a . toUpperCase ( ) ] } trace ( "Not a maptype: " + a ) } function o ( ) { var b = a . url + "&output=kml" ; b = b . replace ( "&output=embed" , "" ) ; var c = new google . maps . KmlLayer ( b , { preserveViewport : ! 0 } ) , e = new google . maps . InfoWindow ; c . setMap ( d ) ; google . maps . event . addListenerOnce ( c , "defaultviewport_changed" , function ( ) { d . fitBounds ( c . getDefaultViewport ( ) ) ; i && d . panTo ( f ) ; j && d . setZoom ( h ) } ) ; google . maps . event . addListener ( c , "click" , function ( a ) { function c ( a ) { e . setContent ( a ) ; e . open ( d ) } var b = a . featureData . description ; c ( b ) } ) } var b = "" , c , d ; google . maps . VeriteMapType = function ( a ) { if ( VMM . ExternalAPI . googlemaps . defaultType ( a ) ) return google . maps . MapTypeId [ a . toUpperCase ( ) ] ; var b = e ( a ) ; return google . maps . ImageMapType . call ( this , { getTileUrl : function ( a , c ) { var d = ( c + a . x + a . y ) % VMM . ExternalAPI . googlemaps . map _subdomains . length ; return [ b . url . replace ( "{S}" , VMM . ExternalAPI . googlemaps . map _subdomains [ d ] ) . replace ( "{Z}" , c ) . replace ( "{X}" , a . x ) . replace ( "{Y}" , a . y ) . replace ( "{z}" , c ) . replace ( "{x}" , a . x ) . replace ( "{y}" , a . y ) ] } , tileSize : new google . maps . Size ( 256 , 256 ) , name : a , minZoom : b . minZoom , maxZoom : b . maxZoom } ) } ; google . maps . VeriteMapType . prototype = new google . maps . ImageMapType ( "_" ) ; type . of ( VMM . master _config . Timeline . maptype ) == "string" ? VMM . ExternalAPI . googlemaps . defaultType ( VMM . master _config . Timeline . maptype ) ? c = google . maps . MapTypeId [ VMM . master _config . Timeline . maptype . toUpperCase ( ) ] : c = VMM . master _config . Timeline . maptype : c = "toner" ; var f = new google . maps . LatLng ( 41.875696 , - 87.624207 ) , g , h = 11 , i = ! 1 , j = ! 1 , k ; if ( type . of ( VMM . Util . getUrlVars ( a . url ) [ "ll" ] ) == "string" ) { i = ! 0 ; g = VMM . Util . getUrlVars ( a . url ) . ll . split ( "," ) ; f = new google . maps . LatLng ( parseFloat ( g [ 0 ] ) , parseFloat ( g [ 1 ] ) ) } else if ( type . of ( VMM . Util . getUrlVars ( a . url ) [ "sll" ] ) == "string" )
top : - b . top } ) } function A ( ) { d . current _slide = m ; VMM . fireEvent ( r , "UPDATE" ) } var c = { } , d , e , f , g , h , i = [ ] , j = [ ] , k = [ ] , l = "" , m = 0 , n = 960 , o = { move : ! 1 , x : 10 , y : 0 , off : 0 , dampen : 48 } , p = "" , q = ! 1 , r = a , s = { nextBtn : "" , prevBtn : "" , nextDate : "" , prevDate : "" , nextTitle : "" , prevTitle : "" } , t ; typeof VMM . Timeline != "undefined" ? d = VMM . Timeline . Config : d = { preload : 4 , current _slide : 0 , interval : 10 , something : 0 , width : 720 , height : 400 , ease : "easeInOutExpo" , duration : 1e3 , timeline : ! 1 , spacing : 15 , slider : { width : 720 , height : 400 , content : { width : 720 , height : 400 , padding : 130 } , nav : { width : 100 , height : 200 } } } ; this . ver = "0.6" ; d . slider . width = d . width ; d . slider . height = d . height ; this . init = function ( a ) { j = [ ] ; k = [ ] ; typeof a != "undefined" ? this . setData ( a ) : trace ( "WAITING ON DATA" ) } ; this . width = function ( a ) { if ( a == null || a == "" ) return d . slider . width ; d . slider . width = a ; v ( ) } ; this . height = function ( a ) { if ( a == null || a == "" ) return d . slider . height ; d . slider . height = a ; v ( ) } ; this . setData = function ( a ) { if ( typeof a != "undefined" ) { i = a ; L ( ) } else trace ( "NO DATA" ) } ; this . getData = function ( ) { return i } ; this . setConfig = function ( a ) { typeof a != "undefined" ? d = a : trace ( "NO CONFIG DATA" ) } ; this . getConfig = function ( ) { return d } ; this . setSize = function ( a , b ) { a != null && ( d . slider . width = a ) ; b != null && ( d . slider . height = b ) ; q && v ( ) } ; this . active = function ( ) { return q } ; this . getCurrentNumber = function ( ) { return m } ; this . setSlide = function ( a ) { J ( a ) } ; var B = function ( a ) { i = a } , C = function ( a ) { VMM . attachElement ( h , "" ) ; j = [ ] ; for ( var b = 0 ; b < a . length ; b ++ ) { var c = new VMM . Slider . Slide ( a [ b ] , h ) ; j . push ( c ) } } , D = function ( a ) { if ( a ) E ( ) ; else { for ( var b = 0 ; b < j . length ; b ++ ) j [ b ] . clearTimers ( ) ; t = setTimeout ( E , d . duration ) } } , E = function ( ) { for ( var a = 0 ; a < j . length ; a ++ ) j [ a ] . enqueue = ! 0 ; for ( var b = 0 ; b < d . preload ; b ++ ) { if ( ! ( m + b > j . length - 1 ) ) { j [ m + b ] . show ( ) ; j [ m + b ] . enqueue = ! 1 } if ( ! ( m - b < 0 ) ) { j [ m - b ] . show ( ) ; j [ m - b ] . enqueue = ! 1 } } if ( j . length > 50 ) for ( var c = 0 ; c < j . length ; c ++ ) j [ c ] . enqueue && j [ c ] . hide ( ) ; G ( ) } , F = function ( a ) { } , G = function ( ) { var a = ".slider-item .layout-text-media .media .media-container " , b = ".slider-item .layout-media .media .media-container " , c = ".slider-item .media .media-container" , e = { text _media : { width : d . slider . content . width / 100 * 60 , height : d . slider . height - 60 , video : { width : 0 , height : 0 } , text : { width : d . slider . content . width / 100 * 40 - 30 , height : d . slider . height } } , media : { width : d . slider . content . width , height : d . slider . height - 110 , video : { width : 0 , height : 0 } } } ; VMM . master _config . sizes . api . width = e . media . width ; VMM . master _config . sizes . api . height = e . media . height ; e . text _media . video = VMM . Util . ratio . fit ( e . text _media . width , e . text _media . height , 16 , 9 ) ; e . media . video = VMM . Util . ratio . fit ( e . media . width , e . media . height , 16 , 9 ) ; VMM . Lib . css ( ".slider-item" , "width" , d . slider . content . width ) ; VMM . Lib . height ( ".slider-item" , d . slider . height ) ; var f = ! 1 ; n <= 640 ? f = ! 0 : VMM . Browser . device == "mobile" && VMM . Browser . orientation == "portrait" ? f = ! 0 : VMM . Browser . device != "tablet" || VMM . Browser . orientation != "portrait" ; if ( f ) { e . text _media . width = d . slider . content . width ; e . text _media . height = d . slider . height / 100 * 50 - 50 ; e . media . height = d . slider . height / 100 * 70 - 40 ; e . text _media . video = VMM . Util . ratio . fit ( e . text _media . width , e . text _media . height , 16 , 9 ) ; e . media . video = VMM . Util . ratio . fit ( e . media . width , e . media . height , 16 , 9 ) ; VMM . Lib . css ( ".slider-item .layout-text-media .text" , "width" , "100%" ) ; VMM . Lib . css ( ".slider-item .layout-text-media .text" , "display" , "block" ) ; VMM . Lib . css ( ".slider-item .layout-text-media .text .container" , "display" , "block" ) ; VMM . Lib . css ( ".slider-item .layout-text-media .text .container" , "width" , d . slider . content . width ) ; VMM . Lib . css ( ".slider-item .layout-text-media .media" , "float" , "none" ) ; VMM . Lib . addClass ( ".slider-item .content-container" , "pad-top" ) ; VMM . Lib . css ( ".slider-item .media blockquote p" , "line-height" , "18px" ) ; VMM . Lib . css ( ".slider-item .media blockquote p" , "font-size" , "16px" ) ; VMM . Lib . css ( ".slider-item" , "overflow-y" , "auto" ) } else { VMM . Lib . css ( ".slider-item .layout-text-media .text" , "width" , "40%" ) ; VMM . Lib . css ( ".slider-item .layout-text-media .text" , "display" , "table-cell" ) ; VMM . Lib . css ( ".slider-item .layout-text-media .text .container" , "display" , "table-cell" ) ; VMM . Lib . css ( ".slider-item .layout-text-media .text .container" , "width" , "auto" ) ; VMM . Lib . css ( ".slider-item .layout-text-media .text .container .start" , "width" , e . text _media . text . wid
. type = m . date [ a ] . type ; b . date = VMM . Date . prettyDate ( b . startdate ) ; b . asset = m . date [ a ] . asset ; b . fulldate = b . startdate . getTime ( ) ; b . text = m . date [ a ] . text ; b . content = "" ; b . tag = m . date [ a ] . tag ; b . slug = m . date [ a ] . slug ; b . uniqueid = VMM . Util . unique _ID ( 7 ) ; n . push ( b ) } } m . type != "storify" && n . sort ( function ( a , b ) { return a . fulldate - b . fulldate } ) ; if ( m . headline != null && m . headline != "" && m . text != null && m . text != "" ) { trace ( "HAS STARTPAGE" ) ; var b = { } , c = 0 , d ; d = n [ 0 ] . startdate ; b . startdate = new Date ( n [ 0 ] . startdate ) ; d . getMonth ( ) === 0 && d . getDate ( ) == 1 && d . getHours ( ) === 0 && d . getMinutes ( ) === 0 ? b . startdate . setFullYear ( d . getFullYear ( ) - 1 ) : d . getDate ( ) <= 1 && d . getHours ( ) === 0 && d . getMinutes ( ) === 0 ? b . startdate . setMonth ( d . getMonth ( ) - 1 ) : d . getHours ( ) === 0 && d . getMinutes ( ) === 0 ? b . startdate . setDate ( d . getDate ( ) - 1 ) : d . getMinutes ( ) === 0 ? b . startdate . setHours ( d . getHours ( ) - 1 ) : b . startdate . setMinutes ( d . getMinutes ( ) - 1 ) ; b . uniqueid = VMM . Util . unique _ID ( 7 ) ; b . enddate = b . startdate ; b . title = m . headline ; b . headline = m . headline ; b . text = m . text ; b . type = "start" ; b . date = VMM . Date . prettyDate ( m . startDate ) ; b . asset = m . asset ; b . slug = ! 1 ; b . needs _slug = ! 1 ; b . fulldate = b . startdate . getTime ( ) ; o . embed && VMM . fireEvent ( global , o . events . headline , b . headline ) ; n . unshift ( b ) } m . type != "storify" && n . sort ( function ( a , b ) { return a . fulldate - b . fulldate } ) ; x ( ) } } ; VMM . Timeline . Config = { } } typeof VMM . Timeline != "undefined" && typeof VMM . Timeline . TimeNav == "undefined" && ( VMM . Timeline . TimeNav = function ( a , b , c ) { function N ( ) { trace ( "onConfigSet" ) } function O ( a ) { VMM . Lib . css ( G , "left" , Math . round ( M . width / 2 ) + 2 ) ; VMM . Lib . css ( H , "left" , Math . round ( M . width / 2 ) - 8 ) ; W ( M . current _slide , M . ease , M . duration , ! 0 , a ) } function P ( ) { VMM . fireEvent ( f , "UPDATE" ) } function Q ( ) { VMM . DragSlider . cancelSlide ( ) ; if ( M . nav . multiplier . current > M . nav . multiplier . min ) { M . nav . multiplier . current <= 1 ? M . nav . multiplier . current = M . nav . multiplier . current - . 25 : M . nav . multiplier . current > 5 ? M . nav . multiplier . current > 16 ? M . nav . multiplier . current = Math . round ( M . nav . multiplier . current - 10 ) : M . nav . multiplier . current = Math . round ( M . nav . multiplier . current - 4 ) : M . nav . multiplier . current = Math . round ( M . nav . multiplier . current - 1 ) ; M . nav . multiplier . current <= 0 && ( M . nav . multiplier . current = M . nav . multiplier . min ) ; T ( ) } } function R ( ) { VMM . DragSlider . cancelSlide ( ) ; if ( M . nav . multiplier . current < M . nav . multiplier . max ) { M . nav . multiplier . current > 4 ? M . nav . multiplier . current > 16 ? M . nav . multiplier . current = Math . round ( M . nav . multiplier . current + 10 ) : M . nav . multiplier . current = Math . round ( M . nav . multiplier . current + 4 ) : M . nav . multiplier . current = Math . round ( M . nav . multiplier . current + 1 ) ; M . nav . multiplier . current >= M . nav . multiplier . max && ( M . nav . multiplier . current = M . nav . multiplier . max ) ; T ( ) } } function S ( a ) { VMM . DragSlider . cancelSlide ( ) ; W ( 0 ) ; P ( ) } function U ( a ) { VMM . DragSlider . cancelSlide ( ) ; W ( a . data . number ) ; P ( ) } function V ( a ) { VMM . Lib . toggleClass ( a . data . elem , "zFront" ) } function X ( a , b ) { VMM . Lib . animate ( y , b . time / 2 , M . ease , { left : b . left } ) } trace ( "VMM.Timeline.TimeNav" ) ; var d = { } , e = { } , f = a , g = { interval _position : "" } , h = [ ] , i = [ ] , j = [ ] , k = [ ] , l = [ ] , m , n , o = [ ] , p = { left : "" , visible : { left : "" , right : "" } } , q = 0 , r = ! 1 , s = { day : 24 , month : 12 , year : 10 , hour : 60 , minute : 60 , second : 1e3 , decade : 10 , century : 100 , millenium : 1e3 , age : 1e6 , epoch : 1e7 , era : 1e8 , eon : 5e8 , week : 4.34812141 , days _in _month : 30.4368499 , days _in _week : 7 , weeks _in _month : 4.34812141 , weeks _in _year : 52.177457 , days _in _year : 365.242199 , hours _in _day : 24 } , t = { day : 864e5 , week : 7 , month : 30.4166666667 , year : 12 , hour : 24 , minute : 1440 , second : 86400 , decade : 10 , century : 100 , millenium : 1e3 , age : 1e6 , epoch : 1e7 , era : 1e8 , eon : 5e8 } , u = { type : "year" , number : 10 , first : 1970 , last : 2011 , multiplier : 100 , classname : "_idd" , interval _type : "interval" } , v = { type : "year" , number : 10 , first : 1970 , last : 2011 , multiplier : 100 , classname : "major" , interval _type : "interval major" } , w = { type : "year" , number : 10 , first : 1970 , last : 2011 , multiplier : 100 , classname : "_dd_minor" , interval _type : "interval minor" } , x = { day : { } , month : { } , year : { } , hour : { } , minute : { } , second : { } , decade : { } , century : { } , millenium : { } , week : { } , age : { } , epoch : { } , era : { } , eon : { } } , y , z , A , B , C , D , E , F , G , H , I , J , K , L , M = VMM . Timeline . Config ; M . nav . rows = [ 1 , M . nav . marker . height , M . nav . marker . height * 2 ] ; b != null && b != "" && ( M . nav . width = b ) ; c != null && c != "" && ( M . nav . height = c ) ; this . init = function ( a , b ) { trace ( "VMM.Timeline.TimeNav init" ) ; typeof a != "undefined" ? this . setData ( a , b ) : trace ( " WAITING ON