/ * !
Timeline
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 } , 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 : " " } , 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 : [ ] } , 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 : [ ] } , 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 + = " " + 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 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 ) . a p p e n d ( b ) } ; V M M . g e t H T M L = f u n c t i o n ( a ) { v a r b ; i f ( t y p e o f j Q u e r y ! = " u n d e f i n e d " ) { b = j Q u e r y ( a ) . h t m l ( ) ; r e t u r n b } } ; V M M . g e t E l e m e n t = f u n c t i o n ( a , b ) { v a r c ; i f ( t y p e o f j Q u e r y ! = "
. length ; a ++ ) VMM . ExternalAPI . soundcloud . create ( VMM . master _config . soundcloud . que [ a ] ) ; VMM . master _config . soundcloud . que = [ ] } } , wikipedia : { get : function ( a , b ) { var c = { url : a , id : b } ; VMM . master _config . wikipedia . que . push ( c ) ; VMM . master _config . wikipedia . active = ! 0 } , create : function ( a ) { VMM . attachElement ( "#" + a . id , a . url ) } , pushQue : function ( ) { for ( var a = 0 ; a < VMM . master _config . wikipedia . que . length ; a ++ ) VMM . ExternalAPI . wikipedia . create ( VMM . master _config . wikipedia . que [ a ] ) ; VMM . master _config . wikipedia . que = [ ] } } , youtube : { get : function ( a ) { if ( VMM . master _config . youtube . active ) VMM . master _config . youtube . que . push ( a ) ; else { VMM . master _config . youtube . que . push ( a ) ; VMM . master _config . youtube . api _loaded || VMM . LoadLib . js ( "http://www.youtube.com/player_api" , function ( ) { trace ( "YouTube API Library Loaded" ) } ) } } , create : function ( a ) { var b = { active : ! 1 , player : { } , name : "youtube_" + a , playing : ! 1 } ; b . player [ "youtube_" + a ] = new YT . Player ( "youtube_" + a , { height : "390" , width : "640" , playerVars : { enablejsapi : 1 , color : "white" , showinfo : 0 , theme : "light" , rel : 0 } , videoId : a , events : { onReady : VMM . ExternalAPI . youtube . onPlayerReady , onStateChange : VMM . ExternalAPI . youtube . onStateChange } } ) ; VMM . master _config . youtube . array . push ( b ) } , pushQue : function ( ) { for ( var a = 0 ; a < VMM . master _config . youtube . que . length ; a ++ ) VMM . ExternalAPI . youtube . create ( VMM . master _config . youtube . que [ a ] ) ; VMM . master _config . youtube . que = [ ] } , onAPIReady : function ( ) { VMM . master _config . youtube . active = ! 0 ; VMM . ExternalAPI . youtube . pushQue ( ) } , stopPlayers : function ( ) { for ( var a = 0 ; a < VMM . master _config . youtube . array . length ; a ++ ) if ( VMM . master _config . youtube . array [ a ] . playing ) { var b = VMM . master _config . youtube . array [ a ] . name ; VMM . master _config . youtube . array [ a ] . player [ b ] . stopVideo ( ) } } , onStateChange : function ( a ) { for ( var b = 0 ; b < VMM . master _config . youtube . array . length ; b ++ ) { var c = VMM . master _config . youtube . array [ b ] . name ; VMM . master _config . youtube . array [ b ] . player [ c ] == a . target && a . data == YT . PlayerState . PLAYING && ( VMM . master _config . youtube . array [ b ] . playing = ! 0 ) } } , onPlayerReady : function ( a ) { } } } ) ; typeof VMM != "undefined" && typeof VMM . TouchSlider == "undefined" && ( VMM . TouchSlider = { createPanel : function ( a , b , c , d , e , f ) { VMM . TouchSlider . vertical = ! 1 ; VMM . TouchSlider . vertical = e ; var g = d ; VMM . TouchSlider . width = c ; VMM . TouchSlider . height = f ; VMM . TouchSlider . makeTouchable ( a , b ) } , removePanel : function ( a ) { VMM . unbindEvent ( a , VMM . TouchSlider . onTouchStart , "touchstart" ) ; VMM . unbindEvent ( a , VMM . TouchSlider . onTouchMove , "touchmove" ) ; VMM . unbindEvent ( a , VMM . TouchSlider . onTouchEnd , "touchend" ) } , makeTouchable : function ( a , b ) { VMM . bindEvent ( a , VMM . TouchSlider . onTouchStart , "touchstart" , { element : b } ) ; VMM . bindEvent ( a , VMM . TouchSlider . onTouchMove , "touchmove" , { element : b } ) ; VMM . bindEvent ( a , VMM . TouchSlider . onTouchEnd , "touchend" , { element : b } ) } , onTouchStart : function ( a ) { VMM . TouchSlider . touchStart ( a . data . element , a ) ; a . stopPropagation ( ) ; return ! 0 } , onTouchEnd : function ( a ) { a . stopPropagation ( ) ; if ( VMM . TouchSlider . sliding ) { VMM . TouchSlider . sliding = ! 1 ; VMM . TouchSlider . touchEnd ( a . data . element , a ) ; return ! 1 } return ! 0 } , onTouchMove : function ( a ) { VMM . TouchSlider . touchMove ( a . data . element , a ) ; a . preventDefault ( ) ; a . stopPropagation ( ) ; return ! 1 } , getLeft : function ( a ) { return parseInt ( VMM . Lib . css ( a , "left" ) . substring ( 0 , VMM . Lib . css ( a , "left" ) . length - 2 ) , 10 ) } , getTop : function ( a ) { return parseInt ( VMM . Lib . css ( a , "top" ) . substring ( 0 , VMM . Lib . css ( a , "top" ) . length - 2 ) , 10 ) } , touchStart : function ( a , b ) { VMM . Lib . css ( a , "-webkit-transition-duration" , "0" ) ; VMM . TouchSlider . startX = b . originalEvent . touches [ 0 ] . screenX ; VMM . TouchSlider . startY = b . originalEvent . touches [ 0 ] . screenY ; VMM . TouchSlider . startLeft = VMM . TouchSlider . getLeft ( a ) ; VMM . TouchSlider . startTop = VMM . TouchSlider . getTop ( a ) ; VMM . TouchSlider . touchStartTime = ( new Date ) . getTime ( ) } , touchEnd : function ( a , b ) { if ( VMM . TouchSlider . getLeft ( a ) > 0 ) { VMM . TouchSlider . vertical ? VMM . Lib . animate ( a , 1e3 , "" , { top : 0 } ) : VMM . Lib . animate ( a , 1e3 , "" , { left : 0 } ) ; VMM . TouchSlider . startX = null ; VMM . TouchSlider . startY = null ; VMM . fireEvent ( a , "TOUCHUPDATE" , [ 0 ] ) } else VMM . TouchSlider . slideMomentum ( a , b ) } , slideMomentum : function ( a , b ) { var c = ( ( new Date ) . getTime ( ) - VMM . TouchSlider . touchStartTime ) * 10 , d = c , e = VMM . TouchSlider . getLeft ( a ) , f = VMM . TouchSlider . getTop ( a ) , g = 6e3 * ( Math . abs ( VMM . TouchSlider . startLeft ) - Math . abs ( e ) ) , h = 6e3 * ( Math . abs ( VMM . Tou
: a . createElement ( "script" ) . async === ! 0 } ; ( b . webkit = /AppleWebKit\// . test ( c ) ) || ( b . ie = /MSIE/ . test ( c ) ) || ( b . opera = /Opera/ . test ( c ) ) || ( b . gecko = /Gecko\// . test ( c ) ) || ( b . unknown = ! 0 ) } function m ( e , g , h , i , m ) { var p = function ( ) { k ( e ) } , q = e === "css" , r = [ ] , s , t , u , v , w , x ; b || l ( ) ; if ( g ) { g = typeof g == "string" ? [ g ] : g . concat ( ) ; if ( q || b . async || b . gecko || b . opera ) f [ e ] . push ( { urls : g , callback : h , obj : i , context : m } ) ; else for ( s = 0 , t = g . length ; s < t ; ++ s ) f [ e ] . push ( { urls : [ g [ s ] ] , callback : s === t - 1 ? h : null , obj : i , context : m } ) } if ( d [ e ] || ! ( v = d [ e ] = f [ e ] . shift ( ) ) ) return ; c || ( c = a . head || a . getElementsByTagName ( "head" ) [ 0 ] ) ; w = v . urls ; for ( s = 0 , t = w . length ; s < t ; ++ s ) { x = w [ s ] ; if ( q ) u = b . gecko ? j ( "style" ) : j ( "link" , { href : x , rel : "stylesheet" } ) ; else { u = j ( "script" , { src : x } ) ; u . async = ! 1 } u . className = "lazyload" ; u . setAttribute ( "charset" , "utf-8" ) ; if ( b . ie && ! q ) u . onreadystatechange = function ( ) { if ( /loaded|complete/ . test ( u . readyState ) ) { u . onreadystatechange = null ; p ( ) } } ; else if ( q && ( b . gecko || b . webkit ) ) if ( b . webkit ) { v . urls [ s ] = u . href ; o ( ) } else { u . innerHTML = '@import "' + x + '";' ; n ( u ) } else u . onload = u . onerror = p ; r . push ( u ) } for ( s = 0 , t = r . length ; s < t ; ++ s ) c . appendChild ( r [ s ] ) } function n ( a ) { var b ; try { b = ! ! a . sheet . cssRules } catch ( c ) { e += 1 ; e < 200 ? setTimeout ( function ( ) { n ( a ) } , 50 ) : b && k ( "css" ) ; return } k ( "css" ) } function o ( ) { var a = d . css , b ; if ( a ) { b = g . length ; while ( -- b >= 0 ) if ( g [ b ] . href === a . urls [ 0 ] ) { k ( "css" ) ; break } e += 1 ; a && ( e < 200 ? setTimeout ( o , 50 ) : k ( "css" ) ) } } var b , c , d = { } , e = 0 , f = { css : [ ] , js : [ ] } , g = a . styleSheets , h = [ ] ; return { css : function ( a , b , c , d ) { if ( i ( a ) ) return b ; m ( "css" , a , b , c , d ) } , js : function ( a , b , c , d ) { if ( i ( a ) ) return b ; m ( "js" , a , b , c , d ) } } } ( this . document ) ) ; typeof VMM != "undefined" && typeof VMM . Language == "undefined" && ( VMM . Language = { date : { month : [ "January" , "February" , "March" , "April" , "May" , "June" , "July" , "August" , "September" , "October" , "November" , "December" ] , month _abbr : [ "Jan." , "Feb." , "March" , "April" , "May" , "June" , "July" , "Aug." , "Sept." , "Oct." , "Nov." , "Dec." ] , day : [ "Sunday" , "Monday" , "Tuesday" , "Wednesday" , "Thursday" , "Friday" , "Saturday" ] , day _abbr : [ "Sun." , "Mon." , "Tues." , "Wed." , "Thurs." , "Fri." , "Sat." ] } , dateformats : { year : "yyyy" , month _short : "mmm" , month : "mmmm yyyy" , full _short : "mmm d" , full : "mmmm d',' yyyy" , time _no _seconds _short : "h:MM TT" , time _no _seconds _small _date : "h:MM TT'<br/><small>'mmmm d',' yyyy'</small>'" , full _long : "mmm d',' yyyy 'at' hh:MM TT" , full _long _small _date : "hh:MM TT'<br/><small>mmm d',' yyyy'</small>'" } , messages : { loading _timeline : "Loading Timeline... " , return _to _title : "Return to Title" , expand _timeline : "Expand Timeline" , contract _timeline : "Contract Timeline" } } ) ; var Aes = { } ; Aes . cipher = function ( a , b ) { var c = 4 , d = b . length / c - 1 , e = [ [ ] , [ ] , [ ] , [ ] ] ; for ( var f = 0 ; f < 4 * c ; f ++ ) e [ f % 4 ] [ Math . floor ( f / 4 ) ] = a [ f ] ; e = Aes . addRoundKey ( e , b , 0 , c ) ; for ( var g = 1 ; g < d ; g ++ ) { e = Aes . subBytes ( e , c ) ; e = Aes . shiftRows ( e , c ) ; e = Aes . mixColumns ( e , c ) ; e = Aes . addRoundKey ( e , b , g , c ) } e = Aes . subBytes ( e , c ) ; e = Aes . shiftRows ( e , c ) ; e = Aes . addRoundKey ( e , b , d , c ) ; var h = new Array ( 4 * c ) ; for ( var f = 0 ; f < 4 * c ; f ++ ) h [ f ] = e [ f % 4 ] [ Math . floor ( f / 4 ) ] ; return h } ; Aes . keyExpansion = function ( a ) { var b = 4 , c = a . length / 4 , d = c + 6 , e = new Array ( b * ( d + 1 ) ) , f = new Array ( 4 ) ; for ( var g = 0 ; g < c ; g ++ ) { var h = [ a [ 4 * g ] , a [ 4 * g + 1 ] , a [ 4 * g + 2 ] , a [ 4 * g + 3 ] ] ; e [ g ] = h } for ( var g = c ; g < b * ( d + 1 ) ; g ++ ) { e [ g ] = new Array ( 4 ) ; for ( var i = 0 ; i < 4 ; i ++ ) f [ i ] = e [ g - 1 ] [ i ] ; if ( g % c == 0 ) { f = Aes . subWord ( Aes . rotWord ( f ) ) ; for ( var i = 0 ; i < 4 ; i ++ ) f [ i ] ^= Aes . rCon [ g / c ] [ i ] } else c > 6 && g % c == 4 && ( f = Aes . subWord ( f ) ) ; for ( var i = 0 ; i < 4 ; i ++ ) e [ g ] [ i ] = e [ g - c ] [ i ] ^ f [ i ] } return e } ; Aes . subBytes = function ( a , b ) { for ( var c = 0 ; c < 4 ; c ++ ) for ( var d = 0 ; d < b ; d ++ ) a [ c ] [ d ] = Aes . sBox [ a [ c ] [ d ] ] ; return a } ; Aes . shiftRows = function ( a , b ) { var c = new Array ( 4 ) ; for ( var d = 1 ; d < 4 ; d ++ ) { for ( var e = 0 ; e < 4 ; e ++ ) c [ e ] = a [ d ] [ ( e + d ) % b ] ; for ( var e = 0 ; e < 4 ; e ++ ) a [ d ] [ e ] = c [ e ] } return a } ; Aes . mixColumns = function ( a , b ) { for ( var c = 0 ; c < 4 ; c ++ ) { var d = new Array ( 4 ) , e = new Array ( 4 ) ; for ( var f = 0 ; f < 4 ; f ++ ) { d [ f ] = a [ f ] [ c ] ; e [ f ] = a [ f ] [ c ] & 128 ? a [ f ] [ c ] << 1 ^ 283 : a [ f ] [ c ] << 1 } a [ 0 ] [ c ] = e [ 0 ] ^ d [ 1 ] ^ e [ 1 ] ^ d [ 2 ] ^ d [ 3 ] ; a [ 1 ] [ c ] = d [ 0 ] ^ e [ 1 ] ^ d [ 2 ] ^ e [ 2 ] ^ d [ 3 ] ; a [ 2 ] [ c ] = d [ 0 ] ^ d [ 1 ] ^ e [ 2 ] ^ d [ 3 ] ^ e [ 3 ] ; a [ 3 ] [ c ] = d [ 0 ] ^ e [ 0 ] ^ d [ 1 ] ^ d [ 2 ] ^ e [ 3 ] } return a } ; Aes . addRoundKey = function ( a , b , c , d ) { for ( var e = 0 ; e < 4 ; e ++ ) for ( var f = 0 ; f < d ; f ++ ) a [ e ] [ f ] ^= b [ c * 4 + f ] [ e ] ; return a } ; Aes . subWord = function ( a ) { for ( var b = 0 ; b < 4 ; b ++ ) a [ b ] = Aes . sBox [ a [ b ] ] ; return a } ; Aes . rotWord = function ( a ) { var b = a [ 0 ] ; for ( var c = 0 ; c < 3 ; c ++ ) a [ c ] = a [ c + 1 ] ; a [ 3 ] = b ; return a } ; Aes . sBox = [
) ; a . date . setFullYear ( a . date . getFullYear ( ) + d * 5e8 ) } else if ( a . type == "era" ) { e && a . date . setFullYear ( Math . floor ( g [ 0 ] . startdate . getFullYear ( ) / 1e8 ) * 1e8 ) ; a . date . setFullYear ( a . date . getFullYear ( ) + d * 1e8 ) } else if ( a . type == "epoch" ) { e && a . date . setFullYear ( Math . floor ( g [ 0 ] . startdate . getFullYear ( ) / 1e7 ) * 1e7 ) ; a . date . setFullYear ( a . date . getFullYear ( ) + d * 1e7 ) } else if ( a . type == "age" ) { e && a . date . setFullYear ( Math . floor ( g [ 0 ] . startdate . getFullYear ( ) / 1e6 ) * 1e6 ) ; a . date . setFullYear ( a . date . getFullYear ( ) + d * 1e6 ) } else if ( a . type == "millenium" ) { e && a . date . setFullYear ( Math . floor ( g [ 0 ] . startdate . getFullYear ( ) / 1e3 ) * 1e3 ) ; a . date . setFullYear ( a . date . getFullYear ( ) + d * 1e3 ) } else if ( a . type == "century" ) { e && a . date . setFullYear ( Math . floor ( g [ 0 ] . startdate . getFullYear ( ) / 100 ) * 100 ) ; a . date . setFullYear ( a . date . getFullYear ( ) + d * 100 ) } else if ( a . type == "decade" ) { e && a . date . setFullYear ( Math . floor ( g [ 0 ] . startdate . getFullYear ( ) / 10 ) * 10 ) ; a . date . setFullYear ( a . date . getFullYear ( ) + d * 10 ) } else if ( r . type == "year" ) { ! e ; a . date . setFullYear ( a . date . getFullYear ( ) + d ) } else if ( a . type == "month" ) { e && a . date . setMonth ( g [ 0 ] . startdate . getMonth ( ) ) ; a . date . setMonth ( a . date . getMonth ( ) + d ) } else if ( a . type == "week" ) { if ( e ) { a . date . setMonth ( g [ 0 ] . startdate . getMonth ( ) ) ; a . date . setDate ( Math . floor ( g [ 0 ] . startdate . getDate ( ) * 7 ) ) } a . date . setDate ( a . date . getDate ( ) + d * 7 ) } else if ( a . type == "day" ) { if ( e ) { a . date . setMonth ( g [ 0 ] . startdate . getMonth ( ) ) ; a . date . setDate ( g [ 0 ] . startdate . getDate ( ) ) } a . date . setDate ( a . date . getDate ( ) + d ) } else if ( a . type == "hour" ) { if ( e ) { a . date . setMonth ( g [ 0 ] . startdate . getMonth ( ) ) ; a . date . setDate ( g [ 0 ] . startdate . getDate ( ) ) ; a . date . setHours ( g [ 0 ] . startdate . getHours ( ) ) } a . date . setHours ( a . date . getHours ( ) + d ) } else if ( a . type == "minute" ) { if ( e ) { a . date . setMonth ( g [ 0 ] . startdate . getMonth ( ) ) ; a . date . setDate ( g [ 0 ] . startdate . getDate ( ) ) ; a . date . setHours ( g [ 0 ] . startdate . getHours ( ) ) ; a . date . setMinutes ( g [ 0 ] . startdate . getMinutes ( ) ) } a . date . setMinutes ( a . date . getMinutes ( ) + d ) } else if ( a . type == "second" ) { if ( e ) { a . date . setMonth ( g [ 0 ] . startdate . getMonth ( ) ) ; a . date . setDate ( g [ 0 ] . startdate . getDate ( ) ) ; a . date . setHours ( g [ 0 ] . startdate . getHours ( ) ) ; a . date . setMinutes ( g [ 0 ] . startdate . getMinutes ( ) ) ; a . date . setSeconds ( g [ 0 ] . startdate . getSeconds ( ) ) } a . date . setSeconds ( a . date . getSeconds ( ) + d ) } j = VMM . Util . date . prettyDate ( a . date , ! 0 ) ; d = 1 ; e = ! 1 ; k = Z ( a , a . date ) ; l = k . begin ; VMM . appendElement ( m , j ) ; VMM . Lib . css ( m , "text-indent" , - ( VMM . Lib . width ( m ) / 2 ) ) ; VMM . Lib . css ( m , "opacity" , "0" ) ; f = l ; l > h && ( h = l ) ; n = new Date ( a . date ) ; var p = { interval _element : m , interval _date : n , interval _visible : o , type : a . interval _type } ; b . push ( p ) } VMM . Lib . width ( E , h ) ; _ ( b ) } , bb = function ( ) { VMM . attachElement ( f , "" ) ; v = VMM . appendAndGetElement ( f , "<div>" , "timenav" ) ; w = VMM . appendAndGetElement ( v , "<div>" , "content" ) ; x = VMM . appendAndGetElement ( v , "<div>" , "time" ) ; y = VMM . appendAndGetElement ( x , "<div>" , "time-interval-minor" ) ; E = VMM . appendAndGetElement ( y , "<div>" , "minor" ) ; A = VMM . appendAndGetElement ( x , "<div>" , "time-interval-major" ) ; z = VMM . appendAndGetElement ( x , "<div>" , "time-interval" ) ; B = VMM . appendAndGetElement ( f , "<div>" , "timenav-background" ) ; D = VMM . appendAndGetElement ( B , "<div>" , "timenav-line" ) ; C = VMM . appendAndGetElement ( B , "<div>" , "timenav-interval-background" , "<div class='top-highlight'></div>" ) ; F = VMM . appendAndGetElement ( f , "<div>" , "toolbar" ) ; cb ( ) ; db ( ) ; W ( ) ; $ ( ) ; _ ( j , ! 1 , ! 0 ) ; _ ( k ) ; if ( I . start _page ) { $backhome = VMM . appendAndGetElement ( F , "<div>" , "back-home" , "<div class='icon'></div>" ) ; VMM . bindEvent ( ".back-home" , O , "click" ) ; VMM . Lib . css ( F , "top" , 27 ) ; VMM . Lib . attribute ( $backhome , "title" , VMM . Timeline . Config . language . messages . return _to _title ) ; VMM . Lib . attribute ( $backhome , "rel" , "tooltip" ) } G = VMM . appendAndGetElement ( F , "<div>" , "zoom-in" , "<div class='icon'></div>" ) ; H = VMM . appendAndGetElement ( F , "<div>" , "zoom-out" , "<div class='icon'></div>" ) ; VMM . Lib . attribute ( G , "title" , VMM . Timeline . Config . language . messages . expand _timeline ) ; VMM . Lib . attribute ( G , "rel" , "tooltip" ) ; VMM . Lib . attribute ( H , "title" , VMM . Timeline . Config . language . messages . contract _timeline ) ; VMM . Lib . attribute ( H , "rel" , "tooltip" ) ; F . tooltip ( { selector : "div[rel=tooltip]" , placement : "right" } ) ; if ( VMM . Browser . device == "mobile" || VMM . Browser . device == "tablet" ) { VMM . TouchSlider . createPanel ( B , v , I . width , I . spacing , ! 1 ) ; VMM . bindEvent ( v , T , "TOUCHUPDATE" ) } else VMM . DragSlider . createPanel ( f , v , I . width , I