{"version":3,"sources":["../../src/js/Desktop/App.js","../../src/js/Desktop/Global/Fullscreen.js","../../src/js/Desktop/Global/Resize.js","../../src/js/Desktop/Global/TabChange.js","../../src/js/Desktop/Global/TweetParser.js","../../src/js/Desktop/Handlers/AppActions.js","../../src/js/Desktop/Handlers/AppExperience.js","../../src/js/Desktop/Handlers/AppStates.js","../../src/js/Desktop/Modules/FoldingMenu.js","../../src/js/Desktop/Modules/Footer.js","../../src/js/Desktop/Modules/Form.js","../../src/js/Desktop/Modules/Header.js","../../src/js/Desktop/Modules/LandingPage.js","../../src/js/Desktop/Modules/Menu.js","../../src/js/Desktop/Modules/Popins.js","../../src/js/Desktop/Modules/Push.js","../../src/js/Desktop/Modules/Twitter.js","../../src/js/Desktop/Modules/VideoPlayer.js","../../src/js/Desktop/States/AbstractState.js","../../src/js/Desktop/States/FormState.js","../../src/js/Desktop/States/IntroState.js","../../src/js/Desktop/States/LandingState.js","../../src/js/Desktop/States/LoseState.js","../../src/js/Desktop/States/StartExperienceState.js","../../src/js/Desktop/States/SyncState.js","../../src/js/Desktop/States/WinState.js","../../src/js/Desktop/WebSocket/WebsocketDesktop.js","../../src/js/Common/Config.js","../../src/js/Common/Data/Data.js","../../src/js/Common/Data/DataUtils.js","../../src/js/Common/Tracking/MarcelTracking.js","../../src/js/Common/Tracking/Tracking.js","../../src/js/Common/Utils/Utils.js"],"names":[],"mappings":"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","file":"O.js","sourcesContent":["var O = O ||{},   // Orange\n    EE = EE || {}; // Event Emitter\n\n$(document).ready(function(){\n    O.App.init();\n});\n\nO.App = (function(){\n\n    function init(){\n        O.isIE = window.isIE || false;\n\n        // Redirect < IE9\n        if( $('html').hasClass('lt-ie9') ){\n            var loc = domainURL + 'incompatibilite.php';\n            window.location.replace(loc);\n        }\n\n        _decideWinningActions();\n\n        EE = new EventEmitter();\n\n        // Initialise Everything\n\n        // Tracking\n        O.Tracking.init();\n\n        // GLOBAL\n        O.Fullscreen.init();\n        O.Resize.init();\n        O.TabChange.init();\n\n        // APP MODULES\n        O.FoldingMenu.init();\n        O.VideoPlayer.init();\n        O.Twitter.init();\n        O.Popins.init();\n        O.Form.init();\n        O.Header.init();\n        O.Footer.init();\n        O.Push.init();\n\n        // O.Push.show('hello world');\n\n        O.TweetParser.init(O.data.words);\n\n        // Websockets\n        O.WebSocketDesktop.init();\n\n        _launch();\n    }\n\n    function _decideWinningActions() {\n        var win1 = win2 = win3 = _getRandomAction();\n        while(win2 === win1) {\n            win2 = _getRandomAction();\n        }\n        while(win3 === win1 || win3 === win2) {\n            win3 = _getRandomAction();\n        }\n\n        for(var i = 0; i < O.data.actions.length; i++) {\n            if(i === (win1 - 1) || i === (win2 - 1) || i === (win3 - 1)) {\n                O.data.actions[i].isgood = true;\n            }\n            else {\n                O.data.actions[i].isgood = false;\n            }\n        }\n\n        // console.log('_decideWinningActions', win1, win2, win3);\n        // console.log(O.data.actions);\n    }\n\n    function _getRandomAction() {\n        var res = ~~(Math.random() * O.data.actions.length);\n        return Math.max(Math.min(res, 10), 1);\n    }\n\n    function _launch(){\n\n        O.AppStates.init();\n        O.VideoPlayer.playMainLoop();\n\n        O.Tracking.tagProduit(this,this.document);\n\n        O.MarcelTracking.visites();\n\n    }\n\n    return {\n        init : init\n    };\n\n})();\n","/*\n    Handles the Fullscreen toggle\n*/\nO.Fullscreen = (function(){\n\n    var _fullScreenButton,\n        _isFullscreen;\n\n    function init(){\n\n        _isFullscreen = false;\n\n        _fullScreenButton = document.querySelector('.fullscreen');\n        _fullScreenButton.addEventListener('click', _onToggleFullscreen );\n\n    }\n\n    function _onToggleFullscreen(){\n\n        $(_fullScreenButton).toggleClass('active');\n\n         if( _isFullscreen === false ){\n            _isFullscreen = true;\n            _launchFullScreen(document.documentElement);\n        }\n        else{\n            _isFullscreen = false;\n            _removeFullScreen();\n        }\n\n    }\n\n    function _launchFullScreen(element){\n        if(element.requestFullscreen) {\n            element.requestFullscreen();\n          } else if(element.mozRequestFullScreen) {\n            element.mozRequestFullScreen();\n          } else if(element.webkitRequestFullscreen) {\n            element.webkitRequestFullscreen();\n          } else if(element.msRequestFullscreen) {\n            element.msRequestFullscreen();\n          }\n\n    }\n\n    function _removeFullScreen(){\n\n         if(document.cancelFullScreen) {\n            document.cancelFullScreen();\n        } else if(document.mozCancelFullScreen) {\n            document.mozCancelFullScreen();\n        } else if(document.webkitCancelFullScreen) {\n            document.webkitCancelFullScreen();\n        }\n\n    }\n\n    return{\n        init:init\n    };\n\n})();","/*\n    Handles the global user route on the website\n*/\nO.Resize = (function(){\n\n    var _WW,\n        _WH,\n        _HWW,\n        _HWH,\n        _callbacks;\n\n    function init(){\n\n        var resizeFn = debounce(function() {\n            _onResize();\n        }, 250);\n\n        window.addEventListener('resize', resizeFn);\n        _onResize();\n\n    }\n\n    function _onResize(){\n\n        _WW = window.innerWidth;\n        _WH = window.innerheight;\n        _HWW = _WW * 0.5;\n        _HWH = _WH * 0.5;\n\n        EE.emitEvent('resize');\n\n        // var d = document.querySelector('.center-container .inside');\n        // console.log(d);\n        // d.style.top = 'calc(50% - ' + ( d.clientHeight  * 0.5) + 'px)';\n        // d.style.top = ( d.clientHeight  * 0.5) + 'px';\n\n\n\n\n    }\n\n    function addListener(listener){\n        EE.addListener('resize', listener);\n    }\n\n    function removeListener(listener){\n        if(listener) EE.removeListener('resize', listener);\n    }\n\n    function getSize(){\n        return {\n            width: _WW,\n            height: _WH,\n            halfWidth: _HWW,\n            halfHeight: _HWH\n        };\n    }\n\n    return{\n        init: init,\n        addListener: addListener,\n        removeListener: removeListener,\n        getSize: getSize\n    };\n\n})();\n","/*\n    Handles the page visibility ( user goes out / comes back )\n*/\nO.TabChange = (function(){\n\n    function init(){\n\n        var visProp = window.getHiddenProp();\n        if ( visProp ) {\n            var evtname = visProp.replace(/[H|h]idden/,'') + 'visibilitychange';\n            document.addEventListener(evtname, _visChange);\n        }\n\n    }\n\n    function _visChange(){\n\n        if( _pageIsHidden() === true ){\n            EE.trigger('onPageHidden');\n            // Todo Emit Event pause website\n        }else{\n            EE.trigger('onPageVisible');\n            // Todo Emit Event resume website\n        }\n\n    }\n\n    function _pageIsHidden() {\n\n        var prop = window.getHiddenProp();\n        if (!prop) return false;\n        \n        return document[prop];\n    }\n\n    return{\n        init:init\n    };\n\n})();","O.TweetParser = (function(){\n\n    var _wordsInfos;\n\n    function init(wordsInfos){\n        _wordsInfos = wordsInfos;\n    }\n\n    function parse(sentence){\n\n        // Isolate the words\n        var words = sentence.split(\" \");\n        var answer;\n        var wordInfo;\n        var word;\n\n        // For each info (ordered by priority)\n        for(var i = 0, l = _wordsInfos.length; i < l; i++){\n            wordInfo = _wordsInfos[i];\n            if(wordInfo.default) continue;\n            // We check if one its words is in sentence, is yes we stop searching\n            for(var j = 0, m = wordInfo.words.length; j < m; j++){\n                word = wordInfo.words[j];\n                if(_findInSentence(sentence, word)){\n                    answer = wordInfo;\n                    break;\n                }\n            }\n            if(answer != undefined) break;\n        }\n\n        // If no results, set default answer\n        if(answer === undefined) answer = _getDefaultAnswer();\n        // Else we check the combinations words against the rest of the sentence\n        else {\n            if(answer.combinations) {\n                for(i = 0, l = answer.combinations.length; i < l; i++){\n                    wordInfo = answer.combinations[i];\n                    for(j = 0, m = wordInfo.words.length; j < m; j++){\n                        word = wordInfo.words[j];\n\n                        if(_findInSentence(sentence, word)) {\n                            return _generateSentenceFromAnswer(wordInfo);\n                        }\n                    }\n                }\n            }\n        }\n\n        // If no combination found, return the normal answer\n        return _generateSentenceFromAnswer(answer);\n    }\n\n    function _checkNumberOfWords(phrase) {\n        return phrase.split(\" \").length;\n    }\n\n    function _findInSentence(sentence, searchString) {\n        searchString = searchString.replace(/\\./g, '\\\\.');\n        return sentence.search(new RegExp(searchString + '\\\\b', 'i')) >= 0;\n    }\n\n    function _generateSentenceFromAnswer(answerArray) {\n        var index = Math.round(Math.random() * (answerArray.answer.length - 1));\n        answerArray.sentence = answerArray.answer[index];\n        return answerArray;\n    }\n\n    /*-------------------\n    PRIVATE */\n    function _findWord(word, dictionnary){\n        var item;\n        for(var i = 0, l = dictionnary.length; i < l; i++){\n            item = dictionnary[i];\n            if(item.words.indexOf(word) >= 0){\n                return item;\n            }\n        }\n    }\n\n    function _getDefaultAnswer(){\n        var wordInfo;\n        for(var i = 0, l = _wordsInfos.length; i < l; i++){\n            wordInfo = _wordsInfos[i];\n            if(wordInfo.default) return wordInfo;\n        }\n        return _wordsInfos[0];\n    }\n\n    return {\n        init : init,\n        parse : parse\n    };\n\n})();\n","/*\n    Actions handler\n*/\nO.AppActions = (function(){\n\n    var\n        _foundActions,\n        _actionsRemaining,\n\n        _domActionsIcons,\n        _domCurrentScore,\n        _domIcons,\n        _domProg,\n        _domPending,\n        _domProgRemain,\n        _domFoundRemain,\n        _domProgTotal,\n        _domWinSentence,\n\n        _domfoldingmenutexts;\n\n    function init(){\n\n        _foundActions    = 0;\n\n        _actionsRemaining    = O.Config.EXP.ACTIONS_TOTAL;\n        _domCurrentScore = $('.actions-current');\n\n        _domActionsIcons = $('.actions ul');\n        _domProg         = $('.actions-text.progress');\n        _domPending      = $('.actions-text.pending');\n        _domProgRemain   = $('.gaming-text .actionsremaining');\n        _domFoundRemain  = $('.gaming-text .actionswinremaining');\n        _domProgTotal    = $('.actionstotal');\n\n        _domWinSentence = $('.actions-text.win');\n\n        _domfoldingmenutexts = $('.gaming-text');\n\n        _build();\n\n        _initEvents();\n    }\n\n    function _build(){\n        _domProgTotal.text( O.Config.EXP.ACTIONS_TO_FIND );\n        _domProgRemain.text( O.Config.EXP.ACTIONS_TOTAL );\n        _domFoundRemain.text( O.Config.EXP.ACTIONS_TO_FIND );\n\n        _domIcons = document.querySelectorAll('.actions ul li');\n\n        _domPending.removeClass('inactive');\n\n        if( O.Config.isWebsocket === false )\n            _domfoldingmenutexts.filter('.launch').addClass('active');\n\n    }\n\n    function _initEvents(){\n\n        _domActionsIcons\n            .on('mouseenter', function(){\n                _domProg.toggleClass('active');\n                _domPending.toggleClass('active');\n                _domWinSentence.toggleClass('active');\n            })\n            .on('mouseleave', function(){\n                _domProg.toggleClass('active');\n                _domPending.toggleClass('active');\n                _domWinSentence.toggleClass('active');\n            });\n\n    }\n\n    function _removeEvents(){\n        _domActionsIcons.off('mouseenter');\n        _domActionsIcons.off('mouseleave');\n    }\n\n    /**\n        ID : Id of icon ( 0, 1, 2 ...)\n        state : true / false\n    **/\n    function updateAction( id, state ){\n        // Change icon state\n        var current = _domIcons[id];\n\n        _domfoldingmenutexts.removeClass('active');\n        $('.gaming-text.answer').addClass('active');\n        \n        if( state === true ){\n            $(current).addClass('ischeck');\n\n            if( O.Config.isWebsocket === false )\n                _domfoldingmenutexts.filter('.win').addClass('active');\n\n        }else{\n            $(current).addClass('iscross');\n\n            if( O.Config.isWebsocket === false )\n                _domfoldingmenutexts.filter('.lose').addClass('active');\n        }\n\n        // TweenMax.to($(current), 0.3, {scaleX: 2, scaleY: 2, ease: L.easeIn});\n        TweenMax.fromTo($(current), 1.0, {scaleX: 1, scaleY: 1}, {scaleX: 2, scaleY: 2, ease: Elastic.easeOut});\n        TweenMax.fromTo($(current), 1.0, {scaleX: 2, scaleY: 2}, {scaleX: 1, scaleY: 1, ease: Elastic.easeOut, delay: 0.15});\n\n        // Update score\n        if( state === true ){\n\n            _foundActions++;\n\n        }\n\n        _actionsRemaining--;\n\n        _updateText();\n\n    }\n\n    function _updateText(){\n\n        var actionWordProg = ( _actionsRemaining === 1 ) ? 'action' : 'actions';\n        var actionWordFound = ( O.Config.EXP.ACTIONS_TO_FIND - _foundActions === 1 ) ? 'action' : 'actions';\n\n        setTimeout( function(){\n            _domProgRemain.text( _actionsRemaining + ' ' +actionWordProg);\n            _domFoundRemain.text( O.Config.EXP.ACTIONS_TO_FIND - _foundActions + ' ' +actionWordFound);\n        }, 1000 );\n\n        // If found all , switch sentence to the win one\n        if( _foundActions === O.Config.EXP.ACTIONS_TO_FIND ){\n\n            $( _domProg ).addClass('inactive');\n            $( _domPending ).addClass('inactive');\n            $( _domWinSentence ).removeClass('inactive').addClass('active');\n\n            _removeEvents();\n\n        }\n\n    }\n\n    function getFinalScore(){\n\n        if( _foundActions < O.Config.EXP.ACTIONS_TO_FIND ){\n            return false;\n        }else if( _foundActions === O.Config.EXP.ACTIONS_TO_FIND ){\n            return true;\n        }\n\n    }\n\n    return {\n        init : init,\n        updateAction:updateAction,\n        getFinalScore:getFinalScore\n    };\n\n})();\n","/*\n    Experience handler : Video, loops, user interactions\n*/\nO.AppExperience = (function(){\n\n    var _actionsTotal,\n        _currentActionNum,\n        _expIsOver,\n        _playedActions,\n        _actionPlaying,\n        _domSkipBtn,\n        _hasPlayedPush,\n        _timeoutInactive;\n\n    function init(){\n        $('.main-content-wrapper').hide();\n\n        _domSkipBtn   = $('.skip-current-video');\n        _domSkipBtn.removeClass('active');\n\n        _actionsTotal = O.Config.EXP.ACTIONS_TOTAL;\n        _currentActionNum = 0;\n        _playedActions = [];\n\n        _hasPlayedPush = false;\n        _expIsOver = false;\n\n        _openUserChoice();\n\n        $('.actions li').removeClass('ischeck').removeClass('iscross');\n\n        O.AppActions.init();\n        O.Menu.init();\n\n        _initEvents();\n\n        O.Header.showGameIndicator();\n\n        O.VideoPlayer.playMainLoop();\n        launchTimeoutInactive();\n    }\n\n    function launchTimeoutInactive(){\n        _timeoutInactive = setTimeout(onInactive, 5000);\n    }\n\n    function stopTimeoutInactive(){\n        clearTimeout(_timeoutInactive);\n    }\n\n    function onInactive(){\n        if(O.Config.isWebsocket) {\n            O.FoldingMenu.showTextWebsocket();\n        }\n    }\n\n    function onActive(){\n        if(O.Config.isWebsocket) {\n            O.FoldingMenu.hideTextWebsocket();\n        }\n    }\n\n    function _initEvents(){\n        // Skip Button\n        _domSkipBtn.off('click').on('click', function(){\n            EE.off('onVideoEnded', _onVideoSeen);\n            _onVideoSeen();\n        });\n\n        // Getting action event\n        EE.on('launchAction', _onlaunchAction);\n    }\n\n\n    function _onlaunchAction( videoAttr ){\n \n        stopTimeoutInactive();\n        onActive();\n\n        // Change the video\n        _playVideo( 'actions/' + videoAttr.name );\n\n        O.Tracking.onPW('_videoaction_' + videoAttr.tracking );\n        O.MarcelTracking.action(videoAttr.tracking);\n\n        var isGood = videoAttr.isgood;\n\n        // Check if video has already played, and if the user already found it\n        if( isGood === true ){\n            for (var i = _playedActions.length - 1; i >= 0; i--) {\n                if ( _playedActions[i] === videoAttr.name ){\n                    isGood = false;\n                    break;\n                }\n            }\n        }\n\n        _playedActions.push( videoAttr.name );\n        _actionPlaying = true;\n\n        _changeAnswer(videoAttr, isGood);\n\n        O.AppActions.updateAction( _currentActionNum, isGood );\n\n        _currentActionNum ++;\n\n        if( _currentActionNum === _actionsTotal || O.AppActions.getFinalScore() === true ){\n            O.WebSocketDesktop.blockCommande();\n        }\n    }\n\n    function _openUserChoice(){\n        if( O.Config.isWebsocket === true ){\n            O.WebSocketDesktop.experienceStarted();\n        }else{\n            O.FoldingMenu.open();\n        }\n\n        O.Tracking.onPW('_actions_ouverture');\n    }\n\n    function _playVideo( name ){\n\n        O.VideoPlayer.changeVideo( 'videos/'+name , false );\n\n        _domSkipBtn.addClass('active');\n\n        // At the end of the action video, reopen the menu\n        EE.once('onVideoEnded', _onVideoSeen);\n    }\n\n    function _onVideoSeen(){\n        _actionPlaying = false;\n        if( _currentActionNum === O.Config.EXP.ACTION_PUSH_NUM && _hasPlayedPush === true )  {\n            // $(_domPush).toggleClass('active');\n            O.Push.hide();\n        }\n\n        _domSkipBtn.removeClass('active');\n\n        if( _currentActionNum === _actionsTotal || O.AppActions.getFinalScore() === true ){\n\n            _onExpOver();\n\n        }else{\n\n            // Show push if id = 2\n            if( _currentActionNum === O.Config.EXP.ACTION_PUSH_NUM && _hasPlayedPush === false){\n\n                _hasPlayedPush = true;\n\n                //Change sentence randomly :: TODO : externalize maybe\n                var videoAttr = O.DataUtils.getRandomPush();\n                // If the push has already been played, get another one\n                while ( $.inArray(videoAttr.id, O.AppStates.pushsSeen) > -1 ) {\n                    videoAttr = O.DataUtils.getRandomPush();\n                }\n\n                O.AppStates.pushsSeen.push(videoAttr.id);\n                // $(_domPush).find('.pushcontent').text( videoAttr.sentence );\n\n                // $(_domPush).toggleClass('active');\n                O.Push.show(videoAttr.sentence);\n                _playVideo('pushs/' + videoAttr.name);\n                _actionPlaying = true;\n                O.Tracking.onPW('_videoaction_' + videoAttr.tracking );\n\n            }else{\n                launchTimeoutInactive();\n                if(O.Config.isWebsocket === false){\n                    O.FoldingMenu.open();\n                }\n                O.VideoPlayer.playMainLoop();\n            }\n\n        }\n\n        // return true; // Remove Listener\n\n    }\n\n    function _changeAnswer( _videoAttr, _isGood ){\n\n        var answer = '';\n\n        if( _isGood === true ){\n            answer = _videoAttr.answerright;\n        }else{\n            answer = _videoAttr.answerwrong;\n        }\n\n        setTimeout( function(){\n            $('.gaming-text.answer').html( answer );\n        }, 1000);\n\n    }\n\n    function isPlayingAction () {\n        return _actionPlaying;\n    }\n\n    function websocketOpenTwitter(){\n        _domSkipBtn.removeClass('active');\n        O.VideoPlayer.playMainLoop();\n    }\n\n    function _onExpOver(){\n\n        if(_expIsOver) return;\n\n        stopTimeoutInactive();\n        onActive();\n        changeUrls();\n\n        _expIsOver = true;\n\n        O.FoldingMenu.close();\n        O.FoldingMenu.hideTextWebsocket(true);\n        O.FoldingMenu.hideGamingTexts();\n\n        // Video de fin\n        if( O.AppActions.getFinalScore() === true ){\n            O.VideoPlayer.changeVideo( 'videos/gagne' , false );\n        }else{\n            O.VideoPlayer.changeVideo( 'videos/perdu' , false, O.Config.videoLoseTriggerTime );\n        }\n\n        EE.once('onVideoEnded', _onEndVideoEnded);\n    }\n\n    function changeUrls () {\n        $('.share-tw').attr(\"href\", \"http://r.orange.fr/r/EVTcom_twitter_bougezroger?ref=BOUGEZROGER_url_twitter_share&text=Je viens de tenter de bouger Roger. À vous de jouer sur bougezroger.fr ! #BougezRoger #Homelive\");\n\n        var attr = $('.footer-button.share-fb').attr('href');\n        $('.footer-button.share-fb').attr('href', ( attr + '?shareend=yes') );\n\n        var attrgp = $('.footer-button.share-gp').attr('href');\n        $('.footer-button.share-gp').attr('href', ( attr + '?shareend=yes') );\n    }\n\n    function _onEndVideoEnded(){\n        $('.main-title-wrapper').removeClass('active');\n        $('.main-content-wrapper').show();\n\n        if( O.AppActions.getFinalScore() === true ){\n            O.AppStates.goToState('section-3-win');\n            O.WebSocketDesktop.gotoWin();\n        }else{\n            O.AppStates.goToState('section-3-lose');\n            O.WebSocketDesktop.gotoLose();\n        }\n    }\n\n    return {\n        init : init,\n        websocketOpenTwitter: websocketOpenTwitter,\n        playedActions : _playedActions,\n        isPlayingAction: isPlayingAction,\n        launchTimeoutInactive: launchTimeoutInactive,\n        stopTimeoutInactive: stopTimeoutInactive,\n        onActive: onActive,\n        onInactive: onInactive\n    };\n\n})();\n","/*\n    Handles the global user route on the website\n*/\nO.AppStates = (function(){\n\n    var _domButtonsChangeState,\n        _domStates,\n        _domSubStates,\n\n        // Main\n        _domMainTitle,\n        _domMainContent,\n\n        _currentState,\n        _currentStatePage,\n\n        _isReplay,\n\n        pushsSeen = [];\n\n    function init(){\n        _domButtonsChangeState = document.querySelectorAll('.button-change-state');\n\n        _domStates = document.querySelectorAll(' .app-state ');\n        _domSubStates =  document.querySelectorAll(' .app-substate ');\n\n        _domMainTitle = document.querySelector('.main-title-wrapper');\n        _domMainContent = document.querySelector('.main-content-wrapper');\n\n        _build();\n        _initEvents();\n    }\n\n    function _build(){\n        \n        // Show first state\n        goToState('section-1-landing');\n        O.FoldingMenu.close(true);\n\n        O.Tracking.onPW('_entreeexperience_home');\n\n    }\n\n    function _initEvents(){\n\n        // Button State change click\n        for (var i = 0; i < _domButtonsChangeState.length; i++) {\n            _domButtonsChangeState[i].addEventListener('click', _onButtonChangeStateClicked );\n        }\n    }\n\n    function _onButtonChangeStateClicked( el ){\n\n        var target = el.currentTarget,\n            stateToShow = target.getAttribute( 'data-state' );\n\n        // We block multiple click on a changestate to prevent bugs\n        if( _currentState === stateToShow ) return;\n\n        goToState( stateToShow );\n\n    }\n\n    function _createState( stateId ) {\n        var state;\n        switch(stateId) {\n            case 'section-1-landing':\n                state = new O.LandingState(_isReplay);\n            break;\n            case 'section-1-intro':\n                if(_isReplay) {\n                    O.Header.hideBlackBorder();\n                    O.Footer.hideBlackBorder();\n                    $(_domMainTitle).addClass('active');\n                    $(_domMainContent).addClass('istransparent');\n                    triggerInitExp();\n                    return;\n                }\n                state = new O.IntroState();\n            break;\n            case 'section-start-experience':\n                state = new O.StartExperienceState();\n            break;\n            case 'section-3-win':\n                state = new O.WinState();\n            break;\n            case 'section-3-lose':\n                state = new O.LoseState();\n            break;\n            case 'section-2-sync':\n                state = new O.SyncState();\n            break;\n            case 'section-form':\n                state = new O.FormState();\n            break;\n        }\n        return state;\n    }\n\n    /**\n        Changes appstate by displaying dom element\n        @param _stateToShow : class of the state dom to show\n    **/\n    function goToState( _stateToShow ){\n        // Form check\n        if( _stateToShow === 'section-form' ) {\n            if( O.Form.isCanBeSeen() === false ) return false;\n        }\n\n        _currentState = _stateToShow;\n        \n        if(_currentStatePage) {\n            EE.once('state:' + _currentStatePage.id + ':transitionOutComplete', _transitionInNewState);\n            _currentStatePage.transitionOut();\n        }\n        else {\n            _transitionInNewState();\n        }\n\n\n    }\n\n    function _onWebsocketLandingConnect(){\n        goToState('section-2-sync');\n    }\n\n    function _transitionInNewState(){\n        _currentStatePage = _createState(_currentState);\n        if(_currentStatePage) {\n            _currentStatePage.transitionIn();\n        }\n\n        if( _currentState === 'section-1-landing' ){\n            EE.once('websocket:connected', _onWebsocketLandingConnect);\n        }\n        else {\n            EE.off('websocket:connected', _onWebsocketLandingConnect);\n        }\n\n        // Dispatch for special events\n        if( _currentState === 'section-1-intro' ){\n            _handleStateIntro();\n        }\n        else if( _currentState === 'section-2-sync' ){\n            _handleStateSync();\n        }\n        else if( _currentState === 'section-start-experience' ){\n            O.AppExperience.init();\n        }\n    }\n\n    function _handleStateIntro(){\n        O.Header.hideBlackBorder();\n        O.Footer.hideBlackBorder();\n\n        $(_domMainTitle).addClass('active');\n\n        // Intro video\n        O.VideoPlayer.changeVideo( 'videos/intro', false );\n\n        $(_domMainContent).addClass('istransparent');\n\n        EE.once('onVideoEnded', triggerInitExp );\n\n        // If skip\n        var btn = document.querySelector('.button-change-state.skip-intro');\n\n        $(btn).not(':visible').show();\n\n        btn.addEventListener('click', function(){\n            EE.off('onVideoEnded', triggerInitExp);\n            $(btn).hide();\n        });\n\n        O.Tracking.onPW('_entreeexperience_intro');\n\n    }\n\n    function restart(){\n        _resetInterface();\n        goToState('section-2-sync');\n    }\n\n    function replay(){\n        _resetInterface();\n        O.Header.showBlackBorder();\n        O.Footer.showBlackBorder();\n        $(_domMainContent).removeClass('istransparent');\n        _isReplay = true;\n        O.VideoPlayer.playMainLoop();\n        goToState('section-1-landing');\n        // goToState('section-start-experience');\n    }\n\n    function gotoDisconnect(){\n\n        if( _currentState === 'section-form' ) return;\n\n        _resetInterface();\n        goToState('section-2-sync');\n    }\n\n    function _resetInterface(){\n        O.Push.hide();\n\n        // Reset array when all pushs are seen\n        if(pushsSeen.length >= O.data.pushs.length) {\n            while(pushsSeen.length > 0) {\n                pushsSeen.pop();\n            }\n        }\n\n        $('#folding-menu ul li').removeClass('visited invisible');\n        $('.main-content-wrapper').hide();\n        $('.socket-container').hide();\n        $('.actions-text.progress').addClass('inactive');\n        $('.actions-text.pending').addClass('inactive');\n        $('.actions-text.win').removeClass('active').addClass('inactive');\n        $('.skip-current-video').removeClass('active');\n        TweenMax.set($('.actions-wrapper li'), {alpha: 0});\n        $('.actions li').removeClass('ischeck').removeClass('iscross');\n        $('.gaming-text').removeClass('active');\n        $('.video-trigger').attr('title', '');\n    }\n\n    function triggerInitExp(){\n        goToState( 'section-start-experience' );\n    }\n\n    function _handleStateSync(){\n\n        // Restore texts after INTRO\n        $(_domMainTitle).addClass('active');\n        $(_domMainContent).removeClass('istransparent');\n        $('.main-content-wrapper').show();\n\n        // Restore Video\n        O.VideoPlayer.playMainLoop();\n\n        var success = O.WebSocketDesktop.isConnected();\n\n        _currentStatePage.start(success);\n        // Bind event to know if the user is connected or if he has failed\n        if(success){\n\n            for (var i = 0; i < _domSubStates.length; i++) {\n                _domSubStates[i].style.display = 'none';\n            }\n\n            $(_domSubStates).filter('.substate-connection-ok' ).show();\n\n            _currentState = 'section-start-experience';\n            // _onStateChanged();\n\n            O.Tracking.onPW('_entreeexperience_websocketok');\n\n            O.Config.isWebsocket = true;\n\n            $('#folding-menu ul li').addClass('invisible');\n\n            O.Tracking.onPW('_entreeexperience_websocketok');\n            O.MarcelTracking.visites_websocket();\n\n        }\n        else {\n\n            for (var i = 0; i < _domSubStates.length; i++) {\n                _domSubStates[i].style.display = 'none';\n            }\n\n            $( _domSubStates ).filter('.substate-connection-error' ).show();\n\n            // Maybe show back the informations after a short delay\n\n            O.Tracking.onPW('_entreeexperience_websocketko');\n\n            O.Config.isWebsocket = false;\n\n            O.Tracking.onPW('_entreeexperience_websocketko');\n\n        }\n    }\n\n    return {\n        init : init,\n        restart : restart,\n        replay : replay,\n        gotoDisconnect : gotoDisconnect,\n        goToState : goToState,\n        pushsSeen: pushsSeen\n    };\n\n})();\n","O.FoldingMenu = (function(){\n\n    var _angle = 20;\n    var _overZ = 60;\n    var _opened = false;\n    var _domFoldingMenu;\n    var _gamingTexts;\n    var _textWebsocket;\n    var _noMoreTextWebsocket;\n    var _menuWrapper;\n    var _domMenuItems;\n    var _tlTransition;\n    var _tlHover;\n    var _size;\n    var _nbItems;\n\n\n    /*\n        PUBLIC\n    */\n    function init(){\n\n        _domFoldingMenu = document.getElementById('folding-menu');\n        _domMenuItems = _domFoldingMenu.querySelectorAll('.container li');\n        _nbItems = _domMenuItems.length;\n        _gamingTexts = $('.gaming-text');\n        _textWebsocket = $('.gaming-text.websocket');\n        _menuWrapper = $(_domFoldingMenu).find('ul');\n\n        O.Resize.addListener(resize);\n\n        resize();\n\n        // open();\n    }\n\n    function showTextWebsocket () {\n        // console.log('showTextWebsocket');\n        if(false === O.Config.isWebsocket || true === O.AppExperience.isPlayingAction() || true === _noMoreTextWebsocket)\n            return;\n\n        hideGamingTexts();\n        _textWebsocket.addClass('active');\n    }\n\n    function hideTextWebsocket (forever) {\n        // console.log('hideTextWebsocket');\n        if(forever) {\n            _noMoreTextWebsocket = true;\n        }\n        _textWebsocket.removeClass('active');\n    }\n\n    function hideGamingTexts () {\n        $('.gaming-text.active').removeClass('active');\n    }\n\n    function toggle(){\n        if(_opened) close();\n        else open();\n    }\n\n    function open(){\n        if(!_opened) {\n            _opened = true;\n            _transitionIn();\n        }\n        \n    }\n\n    function close(quick){\n        if(_opened) {\n            _opened = false;\n            _transitionOut(quick);\n        }\n\n    }\n\n    function getIsOpen(){\n        return _opened;\n    }\n\n    function resize(){\n        _size = ~~(O.Resize.getSize().width * 0.85 / _nbItems);\n        for(var i = 0, l = _domMenuItems.length; i < l; i++) {\n            _domMenuItems[i].style.width = _size + 'px';\n            _domMenuItems[i].style.height = _size + 'px';\n        }\n\n        _domFoldingMenu.style.top = 'calc(50% - ' + ~~(_size * 0.5) + 'px)';\n        _gamingTexts.css('left', _menuWrapper.position().left + 'px');\n\n        if(_opened) {\n            _onTransitionUpdate();\n        }\n    }\n\n    /*\n        PRIVATE\n    */\n    function _transitionIn(){\n        _domFoldingMenu.style.display = 'block';\n        if(_tlTransition) _tlTransition.kill();\n\n        _tlTransition = new TimelineMax({onUpdate: _onTransitionUpdate, onComplete: _onTransitionInComplete, onReverseComplete: _onTransitionOutComplete});\n\n        for(var i = 0, l = _domMenuItems.length, r, el; i < l; i++) {\n            el = _domMenuItems[i];\n            el.removeAttribute(\"style\")\n            el._gsTransform = null;\n            r = i % 2 ? -_angle : _angle;\n            if(i === (l - 1) || i === 0) {\n                r = 0;\n            }\n            el.initRot = r;\n            el.initPos = {x: 0, z: 0};\n            _tlTransition.fromTo(el, O.isIE ? 0.5 : 1.65, {rotationY: 90, alpha: 0, transformOrigin: 'center center'}, {rotationY: r, alpha: 1, ease: O.isIE ? Expo.easeOut : Elastic.easeOut}, i * 0.11);\n\n        }\n\n        TweenMax.to(_gamingTexts, 0.4, { alpha: 1 }, 0.3);\n        resize();\n    }\n\n    function _transitionOut(quick){\n        var domImg, domImgOver, domText, link;\n\n        if(_tlTransition) {\n           _tlTransition.pause(_tlTransition.duration());\n           _tlTransition.kill();\n        }\n\n        _tlTransition = new TimelineMax({onComplete: _onTransitionOutComplete});\n        for(var i = 0, l = _domMenuItems.length, r, el; i < l; i++) {\n            el = _domMenuItems[i];\n            link = $(el).find('a');\n            domImg = el.querySelector('img.out');\n            domImgOver = el.querySelector('img.over');\n            domText = el.querySelector('.text');\n            _tlTransition.to(el, 0.4, {alpha: 0}, (l - i) * 0.03);\n            _tlTransition.to(domImg, 0.3, { alpha: 0}, (l - i) * 0.04);\n            _tlTransition.to(domImgOver, 0.3, { alpha: 0}, (l - i) * 0.03);\n            _tlTransition.set(domText, { alpha: 0}, (l - i) * 0.03);\n            _tlTransition.to(link, 0.3, {border: '0px solid transparent', ease: Expo.easeOut}, 0);\n            _tlTransition.to(_gamingTexts, 0.6, { alpha: 0 }, 0.2);\n        }\n\n        for(var i = 0, l = _domMenuItems.length, el; i < l; i++) {\n            el = _domMenuItems[i];\n            el.querySelector('a').removeEventListener('mouseenter', _onMenuItemRollOver);\n            el.querySelector('a').removeEventListener('mouseleave', _onMenuItemRollOut);\n        }\n\n        $(_domFoldingMenu).removeClass('active');\n        if(quick) {\n            _tlTransition.gotoAndStop(_tlTransition.duration());\n        }\n    }\n\n    function _onTransitionInComplete(){\n\n        if(O.isIE){\n            $(_domFoldingMenu).addClass('active').addClass('isie');\n             return;\n         }\n        for(var i = 0, l = _domMenuItems.length; i < l; i++) {\n            _domMenuItems[i].querySelector('a').addEventListener('mouseenter', _onMenuItemRollOver);\n            _domMenuItems[i].querySelector('a').addEventListener('mouseleave', _onMenuItemRollOut);\n        }\n\n\n\n        $(_domFoldingMenu).addClass('active');\n    }\n\n    function _onTransitionOutComplete(){\n        _tlTransition.kill();\n        _tlTransition = null;\n        _domFoldingMenu.style.display = 'none';\n        EE.emitEvent('foldingmenu:transitionOutComplete');\n    }\n\n    function _onMenuItemRollOver(e){\n\n        // console.log('_onMenuItemRollOver');\n\n        var el = e.target.parentNode;\n        var link = e.target;\n        var index = _getIndex(el);\n        var middleness = index < _nbItems * 0.5 ? index / (_nbItems * 0.5) : ( (_nbItems * 0.5) - (index - (_nbItems * 0.5))) / (_nbItems * 0.5);\n        var domImg = el.querySelector('img.out');\n        var domImgOver = el.querySelector('img.over');\n        var domText = el.querySelector('.text');\n        var alphaOverDest = $(el).hasClass('full') ? 1 : 0.8;\n        var visited = $(el).hasClass('visited');\n\n        if(_tlHover) _tlHover.kill();\n\n        _tlHover = new TimelineMax({onUpdate: _onRollUpdate, onUpdateParams: [index, true]});\n        _tlHover.to(el, 1.5, {\n            rotationY: 0,\n            z: _overZ * (middleness + 0.5),\n            x: el.initPos.x,\n            scaleX: 1,\n            ease: Elastic.easeOut\n        }, 0);\n        if(index != _nbItems - 1) {\n            _tlHover.to(link, 0.3, {border: '5px solid white', ease: Expo.easeOut}, 0);\n        }\n        if(!visited) {\n            TweenMax.to(domImg, 0.4, { alpha: 0});\n            TweenMax.to(domImgOver, 0.4, { alpha: alphaOverDest});\n            TweenMax.to(domText, 0.4, { alpha: 1});\n        }\n        else {\n            if(index != _nbItems -1)\n                TweenMax.to(domText, 0.4, { alpha: 1, color: '#000000'});\n        }\n\n        for(var i = 0, l = _domMenuItems.length; i < l; i++) {\n            if(i < index - 1 || i > index + 1) {\n                el = _domMenuItems[i];\n                domImg = el.querySelector('img, svg');\n                domImgOver = el.querySelector('svg .bright');\n                domText = el.querySelector('.text');\n                TweenMax.to(el, 0.4, { rotationY: el.initRot, x: el.initPos.x, z: el.initPos.z, scaleX: 1, ease: Expo.easeOut});\n                TweenMax.to(domImg, 0.4, { alpha: _getAlphaFromAngle(el.initRot / 90), ease: Expo.easeOut});\n                TweenMax.set(domText, { alpha: 0});\n            }\n        }\n    }\n\n    function _onMenuItemRollOut(e){\n        var index = _getIndex(e.target.parentNode);\n        var link = e.target;\n        var el = e.target.parentNode;\n        var domImg = el.querySelector('img.out');\n        var domImgOver = el.querySelector('img.over');\n        var domText = el.querySelector('.text');\n\n        if(_tlHover) _tlHover.kill();\n\n        _tlHover = new TimelineMax({onUpdate: _onRollUpdate, onUpdateParams: [index, false]});\n        _tlHover.to(el, 1.5, {\n            rotationY: el.initRot,\n            z: el.initPos.z,\n            x: el.initPos.x,\n            scaleX: 1,\n            ease: Elastic.easeOut\n        }, 0);\n        TweenMax.to(link, 0.3, {border: '0px solid transparent', ease: Expo.easeOut});\n        TweenMax.to(domImg, 0.4, { alpha: _getAlphaFromAngle(el.initRot / 90)});\n        TweenMax.to(domImgOver, 0.4, { alpha: 0});\n        if(index != _nbItems -1) TweenMax.set(domText, { alpha: 0, color: '#555555'});\n\n        for(var i = 0, l = _domMenuItems.length; i < l; i++) {\n            if(i < index - 1 || i > index + 1) {\n                el = _domMenuItems[i];\n                domImg = el.querySelector('img, svg');\n                domImgOver = el.querySelector('svg .bright');\n                TweenMax.to(el, 0.4, { rotationY: el.initRot, x: el.initPos.x, z: el.initPos.z, scaleX: 1, ease: Expo.easeOut});\n                TweenMax.to(domImg, 0.4, { alpha: _getAlphaFromAngle(el.initRot / 90), ease: Expo.easeOut});\n            }\n        }\n    }\n\n    function _getIndex(el) {\n        for(var i = 0, l = _domMenuItems.length; i < l; i++) {\n            if(el === _domMenuItems[i]) return i;\n        }\n        return -1;\n    }\n\n    function _getAlphaFromAngle(r) {\n        return 0.5 + r * 0.4;\n    }\n\n    function _getMasterPosFromPrevious(rot, prevRot, prevX, prevZ, size) {\n        var r = toRadians(prevRot);\n        var r2 = toRadians(rot);\n        var rightX = prevX + size * 0.5 * Math.cos(r);\n        var rightZ = -prevZ + size * 0.5 * Math.sin(r);\n\n        return {\n            x: (rightX - size) + size * 0.5 * Math.cos(r2),\n            z: -(rightZ - (-size * 0.5 * Math.sin(r2)))\n        };\n    }\n\n    function _onTransitionUpdate() {\n        var el, masterEl, pos, transforms, masterTransforms;\n\n        for(var i = 0, l = _domMenuItems.length; i < l; i++) {\n            el = _domMenuItems[i];\n            transforms = el._gsTransform;\n            el.initPos = {x: 0, z: 0};\n            if(i != 0) {\n                masterEl = _domMenuItems[i - 1];\n                masterTransforms = masterEl._gsTransform;\n                el.initPos = _getMasterPosFromPrevious(transforms.rotationY, masterTransforms.rotationY, masterTransforms.x, masterTransforms.z, _size);\n            }\n            TweenMax.set(el, {\n                x: el.initPos.x,\n                z: el.initPos.z\n            });\n            TweenMax.set(el.querySelector('img, svg'), { alpha: _getAlphaFromAngle(transforms.rotationY / 90)});\n        }\n    }\n\n    function _onRollUpdate(i, over) {\n        var el = _domMenuItems[i];\n        if(i > 0) {\n            var leftEl = _domMenuItems[i - 1];\n            var leftLim = {\n                x: leftEl.initPos.x - Math.cos(toRadians(leftEl.initRot)) * _size * leftEl._gsTransform.scaleX * 0.5,\n                z: leftEl.initPos.z + Math.sin(toRadians(leftEl.initRot)) * _size * leftEl._gsTransform.scaleX * 0.5\n            };\n\n            if(i > 1) {\n                var prevLeftEl = _domMenuItems[i - 2];\n                leftLim = {\n                    x: -(_size - (prevLeftEl._gsTransform.x + Math.cos(toRadians(prevLeftEl._gsTransform.rotationY)) * _size * prevLeftEl._gsTransform.scaleX * 0.5)),\n                    z: prevLeftEl._gsTransform.z - Math.sin(toRadians(prevLeftEl._gsTransform.rotationY)) * _size * prevLeftEl._gsTransform.scaleX * 0.5\n                };\n            }\n\n            var left = {\n                x: _size + (el._gsTransform.x - Math.cos(toRadians(el._gsTransform.rotationY)) * _size * el._gsTransform.scaleX * 0.5),\n                z: el._gsTransform.z + Math.sin(toRadians(el._gsTransform.rotationY)) * _size * el._gsTransform.scaleX * 0.5\n            };\n\n            var posLeft = {\n                x: leftLim.x + (left.x - leftLim.x) * 0.5,\n                z: leftLim.z + (left.z - leftLim.z) * 0.5\n            };\n\n            var newLeftWidth = Math.sqrt((left.x - leftLim.x) * (left.x - leftLim.x) + (left.z - leftLim.z) * (left.z - leftLim.z));\n            var newLeftScale = newLeftWidth / _size;\n            var newLeftRotate = toDegrees(Math.atan((left.z - leftLim.z) / (left.x - leftLim.x)));\n\n            TweenMax.set(leftEl, {\n                x: posLeft.x,\n                z: posLeft.z,\n                scaleX: newLeftScale,\n                rotationY: -newLeftRotate\n            });\n            TweenMax.set(leftEl.querySelector('img, svg'), { alpha: _getAlphaFromAngle(leftEl._gsTransform.rotationY / 90)});\n        }\n\n        /*--------------------------*/\n\n        if(i < _nbItems - 1) {\n\n            var rightEl = _domMenuItems[i + 1];\n            var rightLim = {\n                x: rightEl.initPos.x + Math.cos(toRadians(rightEl.initRot)) * _size * rightEl._gsTransform.scaleX * 0.5,\n                z: rightEl.initPos.z - Math.sin(toRadians(rightEl.initRot)) * _size * rightEl._gsTransform.scaleX * 0.5\n            };\n            if(i < _nbItems - 2) {\n                var nextRightEl = _domMenuItems[i + 2];\n                rightLim = {\n                    x: _size - (Math.cos(toRadians(nextRightEl._gsTransform.rotationY)) * _size * nextRightEl._gsTransform.scaleX * 0.5) + nextRightEl._gsTransform.x,\n                    z: nextRightEl._gsTransform.z + Math.sin(toRadians(nextRightEl._gsTransform.rotationY)) * _size * nextRightEl._gsTransform.scaleX * 0.5\n                };\n            }\n\n            var right = {\n                x: -_size + (el._gsTransform.x + Math.cos(toRadians(el._gsTransform.rotationY)) * _size * el._gsTransform.scaleX * 0.5),\n                z: el._gsTransform.z - Math.sin(toRadians(el._gsTransform.rotationY)) * _size * el._gsTransform.scaleX * 0.5\n            };\n\n            var posRight = {\n                x: right.x + (rightLim.x - right.x) * 0.5,\n                z: right.z + (rightLim.z - right.z) * 0.5\n            };\n\n            var newRightWidth = Math.sqrt((rightLim.x - right.x) * (rightLim.x - right.x) + (rightLim.z - right.z) * (rightLim.z - right.z));\n            var newRightScale = newRightWidth / _size;\n            var newRightRotate = toDegrees(Math.atan((rightLim.z - right.z) / (rightLim.x - right.x)));\n\n            TweenMax.set(rightEl, {\n                x: posRight.x,\n                z: posRight.z,\n                scaleX: newRightScale,\n                rotationY: -newRightRotate\n            });\n            TweenMax.set(rightEl.querySelector('img, svg'), { alpha: _getAlphaFromAngle(rightEl._gsTransform.rotationY / 90)});\n        }\n    }\n\n    return {\n        init : init,\n        open : open,\n        close : close,\n        getIsOpen : getIsOpen,\n        showTextWebsocket: showTextWebsocket,\n        hideTextWebsocket: hideTextWebsocket,\n        hideGamingTexts: hideGamingTexts\n    };\n\n})();\n","O.Footer = (function(){\n\n    var _dom;\n    var _border;\n\n    function init(){\n        _dom = $('footer');\n        _border = $('.blackborder.bot');\n\n        var tl = new TimelineMax({onComplete: transitionInComplete});\n        tl.from(_border, 0.5, {scaleY: 0, transformOrigin: 'bottom left', ease: Expo.easeInOut}, 0.4);\n        tl.staggerFrom(_dom.find('.left *'), 0.4, {alpha: 0, y: 50, ease: Expo.easeInOut}, 0.05, 0.7);\n        tl.staggerFrom(_dom.find('.right .footer-button'), 0.4, {alpha: 0, y: 50, ease: Expo.easeInOut}, 0.05, 0.8);\n\n\n        O.Resize.addListener(resize);\n        setTimeout(resize, 50); // For Safari\n    }\n\n    function transitionInComplete(){\n        _dom.find('.right .footer-button').attr('style', '');\n        _dom.find('.left *').attr('style', '');\n    }\n\n    function showGameIndicator(){\n\n    }\n\n    function hideBlackBorder(){\n        TweenMax.to(_border, 0.5, {scaleY: 0, transformOrigin: 'bottom left', ease: Expo.easeInOut}, 0.4);\n    }\n\n    function showBlackBorder(){\n        TweenMax.to(_border, 0.5, {scaleY: 1, transformOrigin: 'bottom left', ease: Expo.easeInOut}, 0.4);\n    }\n\n    function resize(){\n        $('.blackborder.bot').height($('footer').height());\n    }\n\n    return {\n        init: init,\n        showGameIndicator: showGameIndicator,\n        hideBlackBorder: hideBlackBorder,\n        showBlackBorder: showBlackBorder,\n        resize: resize\n    };\n})();","O.Form = (function(){\n\n    var _form,\n        _messages,\n        _messageCheckbox,\n        _messageDate,\n        _messageTel,\n        _messageEmail,\n        _messageMandatory,\n        _messageOk,\n        _submitBtn;\n\n    /*\n        PUBLIC\n    */\n\n    function init(){\n\n        _form             = $('.section-form form'),\n        _messages         = _form.find('.message'),\n\n        _messageCheckbox  = _form.find('.message.checkbox-error'),\n        _messageDate      = _form.find('.message.input-date-error'),\n        _messageTel       = _form.find('.message.input-tel-error'),\n        _messageEmail     = _form.find('.message.input-email-error'),\n        _messageMandatory = _form.find('.message.mandatory'),\n        _messageOk        = _form.find('.message.submit-ok'),\n\n        _submitBtn        = _form.find('.submit');\n\n        _clearInputs();\n        _validateForm();\n        _dateInputHandler();\n\n    }\n\n    function _validateForm(){\n\n        _form.submit(function(){\n\n            var errorInputs = false,\n                errorCheckbox = false;\n\n            _messages.removeClass('active');\n            \n            if( isCanBeSeen() === false ) return false;\n\n            // 1. CHECK MANDATORY INPUTS\n            $(this).find('.text-input.ismandatory').each(function(){\n\n                var input = $(this);\n                \n                input.removeClass('notvalid');\n\n                if( input.val() === \"\" || input.val() === input.attr('data-placeholder')  ){\n                    input.addClass('notvalid');\n                    errorInputs = true;\n                }\n\n                // Check date format\n                if( input.hasClass('date') ){\n                    if( !(window.isValidDate(input.val())) ) {\n                        _messageDate.addClass('active');\n                        input.addClass('notvalid');\n                        errorInputs = true;\n                    }\n                }\n\n                // Check Mail format\n                if( input.hasClass('email') ){\n\n                    if( !(window.validateEmail(input.val())) ) {\n                        _messageEmail.addClass('active');\n                        input.addClass('notvalid');\n                        errorInputs = true;\n                    }\n\n                }\n            });\n\n            // 2. Check not mandatory inputs\n                // 2.1 TELEPHONE\n            var phoneInput = $(this).find('.text-input.phone');\n            if( phoneInput.val() !== \"\" && phoneInput.val() !== phoneInput.attr('data-placeholder') && !( phoneInput.val().match(/^\\d+$/)) ) {\n                _messageTel.addClass('active');\n                phoneInput.addClass('notvalid');\n                errorInputs = true;\n            }else{\n                _messageTel.removeClass('active');\n                phoneInput.removeClass('notvalid');\n            }\n\n\n            if( errorInputs === true ){\n                \n                _messageMandatory.addClass('active');\n                \n            }\n\n            $('#isrules').removeClass('notvalid');\n\n            if( $('#isrules').prop('checked') === false ){\n\n                errorCheckbox = true;\n                \n                $('#isrules').addClass('notvalid');\n\n            }\n\n            if( errorCheckbox === true ){\n                _messageCheckbox.addClass('active');\n            } \n\n            if( errorInputs === true || errorCheckbox === true ){\n                return false;\n            }\n\n            // Validation passed\n            _messages.removeClass('active');\n\n            // Submit\n            // Get data from inputs\n            var data = _form.serializeArray();\n\n            // Get optin checkbox\n            var infovalue = ( $('#isinfo').prop('checked') === false ) ? \"0\" : \"1\";\n\n            data.push({name:\"isinfo\", value: infovalue});\n\n            // Security check if the user is a real user\n            data.push({name:\"isvalidated\", value: 'yes'});\n\n            _submitBtn.addClass('inactive');\n\n            // Track\n            O.Tracking.onPW('_fin_formulairerempli');\n\n            //Send\n            $.ajax({\n                url: \"php/form/insert.php\",\n                type : 'POST',\n                data : data,\n                success : function(code_html, statut){\n                    // Server answer\n                    if( code_html === 'ok' ){\n\n                        $('.buttons-container').addClass('submitted');\n                        _submitBtn.remove();\n                        _messageOk.addClass('active');\n\n                    }\n\n                    if( code_html === 'notok' ){\n                        alert('Une erreur est survenue. Veuillez réessayer plus tard.');\n                    }\n                },\n\n                error : function(resultat, statut, erreur){\n                    \n                    alert('Une erreur est survenue. Veuillez réessayer plus tard.');\n                }\n            });   \n\n            return false;    \n            \n        });\n\n    }\n\n    function _dateInputHandler(){\n\n        _form.find('input.date').on('keyup', function(){\n\n            var val = $(this).val(),\n                length = val.length,\n                lastChar = val.substring( length - 1);\n            \n            // Limit to number\n            if( $.isNumeric( lastChar ) === false ){\n\n                if( lastChar !== '/' ){\n                    \n                    $(this).val( val.substring(0, val.length - 1) );\n                    return false;    \n\n                }\n                \n            }\n\n            // Add slashes\n            if( length === 2 || length === 5 )\n                $(this).val( val + '/');\n\n            // Limit to 10 MAX LENGTH\n            if( length > 10 )\n                $(this).val( val.substring(0, length - 1) );\n            \n        }); \n\n    }\n\n    function _clearInputs(){\n        var input = $('#form .clearable-input');\n\n        input.focus(function() {\n            if( $(this).val() === $(this).attr('data-placeholder') )\n                $(this).val('');\n        }).blur(function() {\n             if($(this).val() == '')\n                 $(this).val($(this).attr('data-placeholder'));\n        });\n    }\n\n    function isCanBeSeen(){\n\n        // Check if user has found 3 answers\n        if( O.AppActions.getFinalScore() === false || typeof O.AppActions.getFinalScore() == 'undefined')\n            return false;\n        else{\n            return true;\n        }\n        \n    }\n\n    return {\n        init : init,\n        isCanBeSeen:isCanBeSeen\n    };\n\n})();\n","O.Header = (function(){\n\n    var _dom;\n    var _border;\n\n    function init(){\n        _dom = $('.section-header-logo');\n        _border = $('.blackborder.top');\n\n\n\n        var tl = new TimelineMax({onComplete: transitionInComplete});\n        tl.from(_border, 0.5, {scaleY: 0, transformOrigin: 'top left', ease: Expo.easeInOut}, 0.4);\n        tl.from(_dom, 0.4, {alpha: 0, ease: Expo.easeInOut}, 0.7);\n\n        O.Resize.addListener(resize);\n        setTimeout(resize, 50); // For Safari\n    }\n\n    function transitionInComplete(){\n        $(window).trigger('resize');\n    }\n\n    function showGameIndicator(){\n        TweenMax.staggerFromTo($('.actions-wrapper li'), 0.5, {alpha: 0, y: 20}, {alpha: 1, y: 0, ease: Expo.easeInOut}, 0.07);\n    }\n\n    function hideBlackBorder(){\n        TweenMax.to(_border, 0.5, {scaleY: 0, transformOrigin: 'top left', ease: Expo.easeInOut}, 0.4);\n    }\n\n    function showBlackBorder(){\n        TweenMax.to(_border, 0.5, {scaleY: 1, transformOrigin: 'top left', ease: Expo.easeInOut}, 0.4);\n    }\n\n    function resize(){\n        $('.section-header-logo').css('top', ($('.blackborder.top').height() * 0.5 - $('.section-header-logo').height() * 0.5) + 'px');\n    }\n\n    return {\n        init: init,\n        showGameIndicator: showGameIndicator,\n        hideBlackBorder: hideBlackBorder,\n        showBlackBorder: showBlackBorder,\n        resize: resize\n    };\n})();","O.LandingPage = (function(){\n\n    var _dom,\n        _domTitle,\n        _domSubtitle,\n        _domMainText,\n        _domColumnLeft,\n        _domColumnRight,\n        _domVertSeparator,\n        _tl;\n\n    /*\n        PUBLIC\n    */\n\n    function init(){\n        _dom = document.querySelector('.section-1-landing');\n        _domTitle = document.querySelector('.main-site-title');\n        _domSubtitle = document.querySelector('.subtitle-container');\n        _domMainText = _dom.querySelector('p.content-text.centered-text');\n        _domColumnLeft = _dom.querySelector('.column.left');\n        _domColumnRight = _dom.querySelector('.column.right');\n        _domVertSeparator = _dom.querySelector('.section-columns .separator');\n\n        _tl = new TimelineMax();\n        _tl.from(_domTitle, 0.5, {alpha: 0, y: -50, ease: Expo.easeOut}, 0.4);\n        _tl.from(_domSubtitle.querySelector('.sub-site-title'), 0.5, {alpha: 0}, 0.5);\n        _tl.from(_domSubtitle.querySelector('.separator.left'), 0.5, {scaleX: 0, ease: Expo.easeOut, transformOrigin: 'right center'}, 0.7);\n        _tl.from(_domSubtitle.querySelector('.separator.right'), 0.5, {scaleX: 0, ease: Expo.easeOut, transformOrigin: 'left center'}, 0.7);\n        _tl.from(_domMainText, 0.8, {alpha: 0, ease: Expo.easeOut}, 0.8);\n        _tl.from(_domColumnLeft, 0.5, {alpha: 0, x: -150, ease: Expo.easeOut}, 0.9);\n        _tl.from(_domColumnRight, 0.5, {alpha: 0, x: 150, ease: Expo.easeOut}, 1.0);\n        _tl.from(_domVertSeparator, 0.5, {alpha: 0, scaleY: 0, ease: Expo.easeOut}, 0.8);\n        _tl.pause(0);\n    }\n\n    function transitionIn(){\n        _tl.restart();\n    }\n\n    function transitionOut(){\n        _tl.reverse();\n    }\n\n    return {\n        init : init,\n        transitionIn: transitionIn,\n        transitionOut: transitionOut\n    };\n\n})();\n","O.Menu = (function(){\n\n    var _domMenuItems;\n\n    /*\n        PUBLIC\n    */\n\n    function init(){\n\n        _domMenuItems = document.querySelectorAll('.video-trigger');\n\n        _addEvents();\n    }\n\n    function _addEvents(){\n\n        // User actions binding here\n        for (var i = 0; i < _domMenuItems.length; i++) {\n            _domMenuItems[i].addEventListener('click', _onActionClick );\n        }\n\n    }\n\n    /**\n        EVENTS\n    **/\n    function _onActionClick( _el ){\n\n\n        _el.preventDefault();\n\n        // Dont trigger if menu is close ( action already initiated )\n        if( O.FoldingMenu.getIsOpen() === false ) return;\n\n        var el = _el.currentTarget,\n            id = el.getAttribute('data-id');\n\n        // Don't do anything if clicked link is \"visited\"\n        if($(el).parent().hasClass('visited')) return;\n\n\n        if( id === 'sendmessage' ){\n\n            _openMessage();\n            O.MarcelTracking.action('parler');\n\n        }else{\n\n            var videoAttr = O.DataUtils.getVideoFromId( id );\n            EE.trigger('launchAction', [ videoAttr ]);\n\n        }\n\n        if( $(el).attr('data-id') != 'sendmessage' ){\n\n            $(el).parent()\n                .addClass('visited')\n                .find('a')\n                .attr('title', $('#folding-menu .container').attr('data-visited'));\n        }\n\n        O.FoldingMenu.close();\n\n    }\n\n    function _openMessage(){\n        EE.once('foldingmenu:transitionOutComplete', function(){\n            O.Twitter.transitionIn();\n        });\n        O.Tracking.onPW('_interaction_messageenvoi' );\n    }\n\n    function openTwitter(){\n        O.Twitter.transitionIn();\n    }\n\n\n    return {\n        openTwitter: openTwitter,\n        init : init\n    };\n\n})();\n","O.Popins = (function(){\n\n    var _btnHomelive,\n        _popinHomelive,\n        _popinHomeliveClose,\n        _popinOpened;\n\n    /*\n        PUBLIC\n    */\n\n    function init(){\n\n        _btnHomelive = $('.trigger-homelive');\n        _popinHomelive = document.getElementsByClassName('popin-homelive')[0];\n        _popinHomeliveClose = _popinHomelive.querySelector('.close');\n\n        _addEvents();\n    }\n\n    function _addEvents(){\n        _btnHomelive.on('click', _onbtnHomeLiveClick);\n        _popinHomeliveClose.addEventListener('click', _onbtnHomeLiveClick);\n        O.Resize.addListener(resize);\n    }\n\n    function _onbtnHomeLiveClick(e){\n        e.preventDefault();\n        resize();\n\n\n        if(!_popinOpened){\n            $(_popinHomelive).addClass('active');\n            TweenMax.fromTo(_popinHomelive, 0.5, {alpha: 0, y: 200}, {alpha: 1, y: 0, ease: Expo.easeOut});\n\n            $(_popinHomelive).css(\n            {\n                'height' : $(_popinHomelive).find('.inside').height() + 10 + 'px'\n            });\n        }\n        else {\n            $(_popinHomelive).removeClass('active');\n\n        }\n        _popinOpened = !_popinOpened;\n    }\n\n\n    function resize() {\n        $(_popinHomelive).css('border-bottom-width', $('.blackborder.bot').height() + 'px');\n        if( _popinOpened ){\n            $(_popinHomelive).css(\n            {\n                'height' : $(_popinHomelive).find('.inside').height() + 10 + 'px'\n            });\n        }\n    }\n\n    return {\n        init : init\n    };\n\n})();\n","O.Push = (function(){\n\n    var _dom,\n        _played = false,\n        _tl,\n        _sound;\n\n    /*\n        PUBLIC\n    */\n\n    function init(){\n        _dom = $('.push');\n        _tl = new TimelineMax({onReverseComplete: onHidden});\n        _tl.fromTo(_dom, 0.3, {scaleY: 0, transformOrigin: 'top left'}, {scaleY: 1, ease: Expo.easeOut}, 0.5);\n        _tl.staggerFrom(_dom.find('.border'), 0.5, {scaleX: 0, ease: Expo.easeInOut}, 0.1, 0.55);\n        _tl.staggerFrom(_dom.find('.title, .pushcontent'), 0.5, {alpha: 0}, 0.05, 0.6);\n        _tl.gotoAndStop(0);\n\n        buzz.defaults.preload = 'auto';\n        _sound = new buzz.sound( \"sounds/alerte\", {\n            formats: [ \"mp3\" ]\n        });\n\n    }\n\n    function show(text){\n        // console.log(\"SHOW PUSH\", text);\n        O.WebSocketDesktop.showPush(text);\n        _dom.find('.pushcontent').text(text);\n        _dom.addClass('active');\n        _tl.restart();\n        setTimeout(function(){\n            _sound.play()\n        }, 800);\n    }\n\n    function hide(){\n        // console.log('push hide');\n        O.WebSocketDesktop.hidePush();\n        _tl.reverse();\n    }\n\n    function onHidden(){\n        _dom.removeClass('active');\n    }\n\n    return {\n        init : init,\n        show : show,\n        hide : hide,\n        played : _played\n    };\n\n})();\n","/*\n    Handles the global user route on the website\n*/\nO.Twitter = (function(){\n\n    var _maxTweetLength = 140,\n        // _user = \"@Loic\",\n        _user = '',\n        _answerShown = false,\n        _tlTransition,\n        _tlCollapse,\n        _isOpened,\n        _tweetLength,\n        _hashtagLength,\n        _dom,\n        _domTop,\n        _domTweetInput,\n        _domHashtag,\n        _domTweetLength,\n        _domSendButton,\n        _domTweetButton,\n        _domCloseButton,\n        _domTopContainer,\n        _domInstructions,\n        _domInputContainer,\n        _domOu,\n        _domAnswerContainer;\n\n    function init(){\n\n        // Send tweet\n        // $('#testtweet').on('click', function(){\n\n\n\n        _dom = document.querySelector('.twitter');\n        _domTweetInput = _dom.querySelector('input');\n        _domHashtag = _dom.querySelector('.hashtag');\n        _domTweetLength = _dom.querySelector('.word-count');\n        _domSendButton = _dom.querySelector('.send-button');\n        _domTweetButton = _dom.querySelector('.tweet-button');\n        _domOu = _dom.querySelector('.ou');\n        _domInputContainer = _dom.querySelector('.input-block');\n        _domTopContainer = _dom.querySelector('.top-container');\n        _domCloseButton = _domTopContainer.querySelector('.close-button');\n        _domInstructions = _domTopContainer.querySelector('.instructions');\n        _domAnswerContainer = _dom.querySelector('.answer-container');\n\n        _hashtagLength = _domHashtag.innerHTML.length;\n\n        _onTweetType();\n        _initEvents();\n    }\n\n    function resize(){\n        if(_answerShown) {\n            TweenMax.set(_dom, {top: '20%'});\n        }\n        else {\n            TweenMax.set(_dom, {top: $('.main-wrapper').height() * 0.5 - $(_dom).height() * 0.5});\n            _domTop = $('.main-wrapper').height() * 0.5 - $(_dom).height() * 0.5;\n        }\n    }\n\n    function _initEvents(){\n        _domTweetInput.addEventListener('keyup', _onTweetType);\n        _domSendButton.addEventListener('click', _sendMessage);\n        _domTweetButton.addEventListener('click', _sendTweet);\n        _domCloseButton.addEventListener('click', transitionOut);\n        _domInputContainer.addEventListener('click', reopenTweet);\n        O.Resize.addListener(resize);\n    }\n\n    function reopenTweet () {\n        if(false === _answerShown) {\n            return;\n        }\n\n        var hDiff = _domCloseButton.offsetHeight + (_domInputContainer.offsetHeight * 0.45);\n\n        $(_domInputContainer).removeClass('collapsed');\n        $(_domInputContainer).find('input').val('');\n        $(_domInputContainer).find('input').removeAttr('readonly');\n\n        var tlReopen = new TimelineMax({\n            onComplete: function () {\n                _answerShown = false;\n                _isOpened = true;\n                $(_domInputContainer).find('input').focus();\n                _onTweetType();\n            }\n        });\n        tlReopen.fromTo(_domAnswerContainer, 0.4, {autoAlpha: 1, display: 'block', y: 0, top: hDiff}, {autoAlpha: 0, display: 'none', y: -100, top: 0, ease: Expo.easeOut}, 0);\n        tlReopen.to(_domInputContainer, 0.4, {scaleX: 1, scaleY: 1, transformOrigin: 'top left', ease: Expo.easeOut}, 0.3);\n        tlReopen.to(_dom, 0.4, {top: _domTop, ease: Expo.easeOut}, 0.3);\n        tlReopen.to(_domInstructions, 0.3, {autoAlpha: 1, display: 'block'}, 0.5);\n        tlReopen.to(_domTweetLength, 0.3, {autoAlpha: 1, display: 'block'}, 0.5);\n        tlReopen.to(_domOu, 0.3, {autoAlpha: 1, display: 'block'}, 0.6);\n        tlReopen.to(_domTweetButton, 0.3, {autoAlpha: 1, display: 'block'}, 0.6);\n        tlReopen.to(_domSendButton, 0.3, {autoAlpha: 1, display: 'block'}, 0.6);\n    }\n\n    function _onTweetType(){\n        _tweetLength = _maxTweetLength - _hashtagLength - _domTweetInput.value.length;\n\n        if( _tweetLength === 0 ){\n            $(_domInputContainer).addClass('empty');\n        }else{\n            $(_domInputContainer).removeClass('empty');\n        }\n\n        _domTweetLength.innerHTML = _tweetLength;\n        _createTwitterShareUrl();\n    }\n\n    function _createTwitterShareUrl(){\n        var textUrl = encodeURIComponent($('.hashtag').html() + ' ' + _domTweetInput.value);\n        $(_domTweetButton).attr('href', 'https://twitter.com/share?url=/&text=' + textUrl);\n    }\n\n    function _sendMessage(){\n        // console.log(\"_sendMessage\", _domTweetInput.value);\n        if( _checkIfEmpty() === false ) return false;\n\n\n        sendMessage(_domTweetInput.value);\n        O.MarcelTracking.saveMessage( _domTweetInput.value );\n    }\n\n    function sendMessage(msg){\n        var answer = O.TweetParser.parse(msg);\n\n        O.Tracking.onPW('_interaction_messageenvoye');\n\n        if(!O.Config.isWebsocket) {\n            _domAnswerContainer.querySelector('.text-answer').innerHTML = _user + ' ' + answer.sentence;\n            _collapseMessage(answer.delay);\n        }\n        else {\n            TweenMax.to($('.socket-container'), 0.2, {alpha: 0});\n            O.WebSocketDesktop.messageAnswer(answer);\n            EE.once('onVideoEnded', _onWebsocketVideoEnded);\n        }\n\n        O.VideoPlayer.changeVideo('videos/messages/' + answer.video);\n\n        O.Tracking.onPW('_videointeraction_' + answer.video);\n\n        EE.once('onVideoEnded', O.VideoPlayer.playMainLoop);\n    }\n\n    function _onWebsocketVideoEnded(){\n        if(_isOpened) {\n            TweenMax.to($('.socket-container'), 0.2, {alpha: 1});\n        }\n    }\n\n    function _checkIfEmpty(){\n\n        var val = _domTweetInput.value;\n        if( val === \"\" ){\n\n            $(_domInputContainer).addClass('empty');\n            return false;\n\n        }else{\n            $(_domInputContainer).removeClass('empty');\n            return true;\n        }\n\n    }\n\n    function _sendTweet(e){\n\n        if( _checkIfEmpty() === false ){\n            e.preventDefault();\n            return false;\n        }\n\n        var val = _domTweetInput.value;\n\n        $.ajax({\n            type: \"POST\",\n            url: '/php/twitter/TwPostTweet.php',\n            data: { data: val },\n            success: _sendMessage\n        });\n    }\n\n    function _collapseMessage(delay){\n        var hDiff = _domCloseButton.offsetHeight + (_domInputContainer.offsetHeight * 0.45);\n        _tlCollapse = new TimelineMax({\n            onComplete: function () {\n                _answerShown = true;\n                $(_domInputContainer).addClass('collapsed');\n            }\n        });\n        _tlCollapse.to(_domSendButton, 0.3, {autoAlpha: 0, display: 'none'}, 0);\n        _tlCollapse.to(_domTweetButton, 0.3, {autoAlpha: 0, display: 'none'}, 0.1);\n        _tlCollapse.to(_domOu, 0.3, {autoAlpha: 0, display: 'none'}, 0.2);\n        _tlCollapse.to(_domTweetLength, 0.3, {autoAlpha: 0, display: 'none'}, 0.1);\n        _tlCollapse.to(_domInstructions, 0.3, {autoAlpha: 0, display: 'none'}, 0.1);\n        _tlCollapse.to(_dom, 0.3, {top: '20%', ease: Expo.easeOut}, 0.4);\n        _tlCollapse.to(_domInputContainer, 0.4, {scaleX: 0.45, scaleY: 0.45, transformOrigin: 'top left', ease: Expo.easeOut}, 0.5);\n\n        $(_domInputContainer).find('input').attr('readonly', 'readonly');\n\n        // This will need to come after preload\n        _tlCollapse.fromTo(_domAnswerContainer, 0.4, {y: -100}, {autoAlpha: 1, display: 'block', y: 0, top: hDiff, ease: Expo.easeOut}, delay);\n        // _tlCollapse.fromTo(_domAnswerContainer, 0.4, {left: 200}, {left: 0, ease: Expo.easeOut}, 14.15);\n    }\n\n    function transitionIn(){\n        _isOpened = true;\n\n        O.AppExperience.onActive();\n        O.AppExperience.stopTimeoutInactive();\n\n        if(O.Config.isWebsocket) {\n            $('.top-container, .input-container, .answer-container').hide();\n            _tlTransition = new TimelineMax({});\n            _tlTransition.fromTo(_dom, 0.1, {alpha: 0, display: 'none'}, {autoAlpha: 1, display: 'block'});\n            _tlTransition.fromTo($('.socket-container'), 0.3, {autoAlpha: 0, display: 'none'}, {autoAlpha: 1, display: 'block'});\n        }\n        else {\n\n            _domTweetInput.value = '';\n            $(_domInputContainer).find('input').removeAttr('readonly');\n            _answerShown = false;\n            _tlTransition = new TimelineMax({\n                onReverseComplete: O.FoldingMenu.open,\n                onComplete: function () {\n                    _domTweetInput.focus();\n                }\n            });\n            _tlTransition.fromTo(_dom, 0.1, {alpha: 0, display: 'none'}, {autoAlpha: 1, display: 'block'});\n            _tlTransition.staggerFromTo(_dom.querySelectorAll('.close-button, .instructions, .input-block, .send-button, .tweet-button, .ou'), 0.3, {alpha: 0, y: 30}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.07);\n            $('.socket-container').hide();\n            $('.answer-container').hide();\n        }\n        resize();\n    }\n\n    function transitionOut(){\n        _isOpened = false;\n\n        _tlTransition.kill();\n        _tlTransition = new TimelineMax({onComplete: function(){\n            O.FoldingMenu.open();\n            _dom.style.display = 'none';\n            $('.answer-container').hide();\n            if(_tlCollapse){\n                _tlCollapse.pause(0);\n                _tlCollapse.kill();\n            }\n\n        }});\n\n        // console.log('Twitter.transitionOut');\n        // O.AppExperience.launchTimeoutInactive();\n        var selector = '.close-button, .instructions, .input-block, .send-button, .tweet-button, .ou';\n        if(_answerShown) {\n            selector = '.close-button, .input-block, .answer-container';\n        }\n        _tlTransition.staggerTo(_dom.querySelectorAll(selector), 0.3, {alpha: 0, y: -30, ease: Expo.easeOut}, 0.07);\n    }\n\n    function websocketClose(){\n        O.AppExperience.launchTimeoutInactive();\n        _isOpened = false;\n        EE.off('onVideoEnded', _onWebsocketVideoEnded);\n        O.VideoPlayer.playMainLoop();\n        _tlTransition.reverse();\n    }\n\n    return {\n        init : init,\n        websocketClose: websocketClose,\n        sendMessage: sendMessage,\n        transitionIn:transitionIn,\n        transitionOut:transitionOut\n    };\n\n})();\n","O.VideoPlayer = (function(){\n\n    var _domVideo,\n        _domPlayer,\n        _domToggleSound,\n\n        _endTime,\n        _isLoop,\n        _videoFormat,\n        _duration,\n        _isPlaying,\n        _interval,\n        _videoTemplate;\n\n    /*\n        PUBLIC\n    */\n\n    function init(){\n        _domPlayer = document.querySelector('.mod-video-player');\n        _domVideo = document.getElementById('videoplayer');\n        _domToggleSound = document.querySelector('.togglesound');\n\n        _detectVideoFormat();\n\n        _addEvents();\n        _initGlobalVideoEvents();\n    }\n\n    function changeVideo( _name, _isLoop, endTime){\n\n        clearInterval(_interval);\n        _endTime = endTime;\n\n        _name = 'http://nodejs.bougezroger.marcel.typhon.net/' + _name;\n\n        O.Config.isAction = !_isLoop; // Video is Action if not a Loop one.\n        if(_isPlaying) {\n            if(_domVideo.getAttribute('src').replace(_videoFormat, '') === _name) return;\n            return _swapVideos(_name, _isLoop);\n        }\n        _isLoop = _isLoop;\n\n        _domVideo.setAttribute( 'src', _name + _videoFormat );\n\n        _play();\n\n        _domVideo.loop = _isLoop;\n\n        window.addEventListener('resize', resize);\n\n    }\n\n    function resize(){\n        // var r = window.innerWidth / window.innerHeight;\n        // var cover = r < (16/9);\n        var cover = true;\n        fit( _domVideo, _domPlayer, {cover: cover, vAlign: fit.CENTER} );\n    }\n\n    function playMainLoop(){\n        // var loopIndex = Math.round(Math.random() * 3);\n        var loopIndex = 4;\n        changeVideo( 'videos/boucles/' + loopIndex, true);\n    }\n\n    /*\n        PRIVATE\n    */\n\n    function _swapVideos( _name, _isLoop ) {\n        // pause old video\n        _pause();\n\n        // create new video dom element and add it under the old video\n        var newDomVideo = document.createElement('video');\n        newDomVideo.setAttribute('preload', 'auto');\n        newDomVideo.setAttribute('src', _name + _videoFormat);\n\n        newDomVideo.loop = _isLoop;\n\n        _domPlayer.insertBefore(newDomVideo, _domPlayer.firstChild);\n\n        // We wait for new video to have loaded enough content\n        newDomVideo.removeEventListener('canplay', _newVideoReadyDuringSwap);\n        newDomVideo.addEventListener('canplay', _newVideoReadyDuringSwap);\n\n    }\n\n    function _newVideoReadyDuringSwap(e){\n        var newDomVideo = e.target;\n\n        newDomVideo.removeEventListener('canplay', _newVideoReadyDuringSwap);\n\n        newDomVideo.play();\n\n        // micro delay to avoid black screen\n        setTimeout(function(){\n            if(newDomVideo != _domVideo) {\n                // clean old video from event listeners and remove it from dom\n                _removeEvents();\n                _domPlayer.removeChild(_domVideo);\n                _domVideo = null;\n            }\n\n            // put new video as currentVideo\n            newDomVideo.setAttribute('id', 'videoplayer');\n            _domVideo = newDomVideo;\n            _duration = newDomVideo.duration;\n            // console.log(\"newDomVideo\", newDomVideo);\n            _addEvents();\n            _isPlaying = true;\n            resize();\n\n        }, 10);\n    }\n\n    function _setVideo() {\n\n    }\n\n    function _detectVideoFormat(){\n\n        // canPlayType returns 'maybe' or 'probable', or '' if not supported\n        // todo better way\n\n        if( _domVideo.canPlayType('video/mp4') === '' ){\n\n            if( _domVideo.canPlayType('video/webm') === ''){\n                if( _domVideo.canPlayType('video/ogg') === '' ){\n\n                }else{\n                    _videoFormat = '.ogv';\n                }\n            }else{\n                _videoFormat = '.webm';\n            }\n\n        }else{\n            _videoFormat = '.mp4';\n        }\n\n    }\n\n    function _play(){\n        _isPlaying = true;\n        _domVideo.play();\n    }\n\n    function _pause(){\n        _isPlaying = false;\n        _domVideo.pause();\n    }\n\n    function _stop(){\n        _pause();\n        _domVideo.currentTime = 0;\n    }\n\n    function _addEvents(){\n        _removeEvents();\n        _domVideo.addEventListener('loadedmetadata', _onMetaDataLoaded);\n        _domVideo.addEventListener('ended', _onVideoEnded);\n\n        // console.log('_addEvents', _endTime);\n\n        if( _endTime ) {\n            // _interval = setInterval(_checkVideoTime, 50);\n            _domVideo.addEventListener('timeupdate', _checkVideoTime);\n        }\n\n    }\n\n    function _removeEvents(){\n\n        _domVideo.removeEventListener('loadedmetadata', _onMetaDataLoaded);\n        _domVideo.removeEventListener('ended', _onVideoEnded);\n\n    }\n\n    function _checkVideoTime(){\n        // console.log('_checkVideoTime', _domVideo.currentTime);\n\n        if( _domVideo.currentTime >= _endTime ){\n\n            _domVideo.removeEventListener('timeupdate', _checkVideoTime);\n            EE.emitEvent('onVideoEnded');\n\n        }\n    }\n\n    function _initGlobalVideoEvents(){\n\n        EE.on('onPageHidden',function(){\n            if( _isPlaying === true )\n                _pause();\n        });\n        EE.on('onPageVisible', function(){\n            // play the video only if it is not at the end .\n            // If it is athe the end it means we are at the end of experience\n            if( _domVideo.currentTime !== _domVideo.duration )\n                _play();\n        });\n\n        _domToggleSound.addEventListener('click', _onToggleSound );\n\n    }\n\n    function _onMetaDataLoaded(){\n        _duration = _domVideo.duration;\n        resize();\n    }\n\n    function _onVideoEnded(){\n        EE.emitEvent('onVideoEnded');\n    }\n\n    function _onToggleSound(){\n\n        $(_domToggleSound).toggleClass('active');\n        _domVideo.muted = !_domVideo.muted;\n    }\n\n    return {\n        init : init,\n        changeVideo : changeVideo,\n        playMainLoop: playMainLoop,\n        resize: resize\n    };\n\n})();\n","var AbstractState = (function(){\n\n    function AbstractState() {\n        this.tl = new TimelineMax({\n            onComplete: this._onTransitionInComplete,\n            onCompleteScope: this,\n            onReverseComplete: this._onTransitionOutComplete,\n            onReverseCompleteScope: this\n        });\n    }\n\n    AbstractState.prototype.constructor = AbstractState;\n\n    /* Public (to override) */\n\n    AbstractState.prototype.transitionIn = function() {\n        this.tl.restart();\n        if(this.id) $('.' + this.id).show();\n    };\n\n    AbstractState.prototype.transitionOut = function() {\n        this.tl.reverse();\n    };\n\n    AbstractState.prototype.onTransitionInComplete = function() {\n\n    };\n\n    AbstractState.prototype.onTransitionOutComplete = function() {\n    };\n\n    /* Private */\n    AbstractState.prototype._onTransitionInComplete = function() {\n        this.onTransitionInComplete();\n        EE.emitEvent('state:' + this.id + ':transitionInComplete');\n    };\n\n    AbstractState.prototype._onTransitionOutComplete = function() {\n        this.onTransitionOutComplete();\n        if(this.id) $('.' + this.id).hide();\n        EE.emitEvent('state:' + this.id + ':transitionOutComplete');\n        this.tl.kill();\n    };\n\n\n    return AbstractState;\n})();","O.FormState = (function(){\n\n    function FormState() {\n        AbstractState.call(this);\n\n        this.id = \"section-form\";\n\n        var _dom = document.querySelector('.' + this.id);\n\n        $('.main-title-wrapper').show();\n\n        this.tl.fromTo(document.querySelector('.main-title-wrapper'), 0.5, {autoAlpha: 0, display: 'none'}, {autoAlpha: 1, display: 'block'}, 0.4);\n        this.tl.fromTo(document.querySelector('.main-site-title'), 0.5, {autoAlpha: 0, y: -50}, {autoAlpha: 1, y: 0, ease: Expo.easeOut}, 0.4);\n        this.tl.fromTo(document.querySelector('.subtitle-container .sub-site-title'), 0.5, {alpha: 0}, {alpha: 1}, 0.5);\n        this.tl.fromTo(document.querySelector('.subtitle-container .separator.left'), 0.5, {scaleX: 0}, {scaleX: 1, ease: Expo.easeOut, transformOrigin: 'right center'}, 0.7);\n        this.tl.fromTo(document.querySelector('.subtitle-container  .separator.right'), 0.5, {scaleX: 0}, {scaleX: 1, ease: Expo.easeOut, transformOrigin: 'left center'}, 0.7);\n\n        $els = $('.form-title, .text-input, .checkboxes-area .wrap, .message.mandatory, .section-form .mod-simple-button');\n\n        this.tl.fromTo(_dom, 0.1, {alpha: 0}, {alpha: 1}, 0);\n        this.tl.staggerFromTo($els, 0.4, {alpha: 0, y: 50}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.08, 0);\n\n        O.Tracking.onPW('_fin_formulairevide');\n    }\n\n    FormState.prototype = new AbstractState();\n    FormState.prototype.constructor = FormState;\n\n    return FormState;\n\n})();","O.IntroState = (function(){\n\n    function IntroState() {\n        AbstractState.call(this);\n\n        this.id = \"section-1-intro\";\n        var _dom = document.querySelector('.' + this.id);\n\n        this.tl.fromTo(_dom, 0.5, {alpha: 0}, {alpha: 1});\n        this.tl.fromTo($('.skip-intro'), 0.5, {alpha: 0,'display' : 'none'}, {alpha: 1,'display' : 'inline-block'});\n    }\n\n    IntroState.prototype = new AbstractState();\n    IntroState.prototype.constructor = IntroState;\n\n    return IntroState;\n\n})();","O.LandingState = (function(){\n\n    function LandingState(directToChoice) {\n        AbstractState.call(this);\n\n        // console.log('LandingState', directToChoice);\n\n        this.id = \"section-1-landing\";\n        this.directToChoice = directToChoice;\n\n        var _dom = document.querySelector('.' + this.id);\n\n        var decalAll = 4;\n        var decalTitle = 0.4;\n\n        $('.main-content-wrapper').show();\n        $('.main-title-wrapper').show();\n\n        TweenMax.set($('.section-columns'), {alpha: 0});\n        $('.section-columns').css({\n            'pointer-events': 'none',\n            'visibility': 'hidden'\n        });\n\n        this.tl.fromTo(document.querySelector('.main-site-title'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.4);\n        this.tl.fromTo(document.querySelector('.subtitle-container .sub-site-title'), 0.5, {alpha: 0}, {alpha: 1}, 0.5);\n        this.tl.fromTo(document.querySelector('.subtitle-container .separator.left'), 0.5, {scaleX: 0}, {scaleX: 1, ease: Expo.easeOut, transformOrigin: 'right center'}, 0.7);\n        this.tl.fromTo(document.querySelector('.subtitle-container  .separator.right'), 0.5, {scaleX: 0}, {scaleX: 1, ease: Expo.easeOut, transformOrigin: 'left center'}, 0.7);\n\n        if(this.directToChoice) {\n\n        }\n        else {\n            this.tl.from(_dom.querySelector('p.content-text.centered-text'), 0.8, {alpha: 0, y: 20, ease: Expo.easeOut}, decalTitle + 0.8);\n            this.tl.from(_dom.querySelector('.goto-substate-choice'), 0.8, {alpha: 0, y: 20, ease: Expo.easeOut}, decalTitle + 0.9);\n        }\n\n        // this.tl.from(_dom.querySelector('.section-columns .separator'), decalAll, {alpha: 1, scaleY: 0, ease: Expo.easeInOut}, 0.8);\n\n        // this.tl.staggerFrom($(_dom).find('.column.left h4, .column.left .image-devices, .column.left .content-text, .column.left .mod-simple-button'), 0.5, {alpha: 0, x: -100, ease: Expo.easeOut}, 0.1, decalAll + 0.9);\n        // this.tl.staggerFrom($(_dom).find('.column.right h4, .column.right .image-desktop, .column.right .content-text, .column.right .mod-simple-button'), 0.5, {alpha: 0, x: 100, ease: Expo.easeOut}, 0.1, decalAll + 1.0);\n        // this.tl.pause(0);\n\n        O.Resize.addListener(this.resize.bind(this));\n\n        setTimeout(this.resize.bind(this), 500);\n    }\n\n    LandingState.prototype = new AbstractState();\n    LandingState.prototype.constructor = LandingState;\n\n    LandingState.prototype.transitionIn = function() {\n        // console.log('LandingState.transitionIn');\n        this.tl.restart();\n        if(this.id) $('.' + this.id).show();\n    };\n\n    LandingState.prototype.transitionOut = function() {\n        var _dom = document.querySelector('.' + this.id);\n        var decalAll = 0.2;\n        var decalTitle = 0.2;\n\n        $('.goto-substate-choice').off('click', this.onGoToChoiceClick.bind(this));\n\n        this.tl.kill();\n\n        this.tl = new TimelineMax({\n            onReverseComplete: this._onTransitionOutComplete,\n            onReverseCompleteScope: this\n        });\n\n        this.tl.fromTo(document.querySelector('.main-site-title'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.4);\n        this.tl.fromTo(document.querySelector('.subtitle-container .sub-site-title'), 0.5, {alpha: 0}, {alpha: 1}, 0.5);\n        this.tl.fromTo(document.querySelector('.subtitle-container .separator.left'), 0.5, {scaleX: 0}, {scaleX: 1, ease: Expo.easeOut, transformOrigin: 'right center'}, 0.7);\n        this.tl.fromTo(document.querySelector('.subtitle-container  .separator.right'), 0.5, {scaleX: 0}, {scaleX: 1, ease: Expo.easeOut, transformOrigin: 'left center'}, 0.7);\n\n        this.tl.fromTo(_dom.querySelector('.section-columns .separator'), 0.5, {alpha: 0, scaleY: 0}, {alpha: 1, scaleY: 1, ease: Expo.easeInOut}, 0.8);\n\n        this.tl.staggerFromTo($(_dom).find('.column.left h4, .column.left .image-devices, .column.left .content-text, .column.left .mod-simple-button'), 0.5, {alpha: 0, x: -100}, {alpha: 1, x: 0, ease: Expo.easeOut}, 0.1, decalAll + 0.9);\n        this.tl.staggerFromTo($(_dom).find('.column.right h4, .column.right .image-desktop, .column.right .content-text, .column.right .mod-simple-button'), 0.5, {alpha: 0, x: 100}, {alpha: 1, x: 0, ease: Expo.easeOut}, 0.1, decalAll + 1.0);\n\n        this.tl.seek(this.tl.duration());\n        this.tl.reverse();\n    };\n\n    LandingState.prototype.onTransitionInComplete = function() {\n        if(this.directToChoice) {\n            this.onGoToChoiceClick();\n        }\n        else {\n            var tl = new TimelineMax({repeat: -1});\n            tl.staggerTo($('.image-devices svg circle'), 0.2, {alpha: 1}, 0.1);\n            tl.staggerTo($('.image-devices svg circle'), 0.2, {alpha: 0}, 0.1, 0.35);\n            tl.set({}, {}, 1);\n\n            $('.goto-substate-choice').on('click', this.onGoToChoiceClick.bind(this));\n        }\n    };\n\n    LandingState.prototype.onGoToChoiceClick = function() {\n        // console.log('LandingState.onGoToChoiceClick', this.directToChoice);\n\n        var _dom = document.querySelector('.' + this.id);\n\n        $('.goto-substate-choice').off('click', this.onGoToChoiceClick.bind(this));\n\n        this.tl.kill();\n        this.tl = new TimelineMax({\n            onComplete: this.onChoiceShown,\n            onCompleteScope: this\n        });\n\n\n        if(!this.directToChoice) {\n            this.tl.fromTo(_dom.querySelector('p.content-text.centered-text'), 0.8, {alpha: 1, y: 0}, {alpha: 0, y: 20, ease: Expo.easeOut}, 0);\n            this.tl.fromTo(_dom.querySelector('.goto-substate-choice'), 0.8, {alpha: 1, y: 0}, {alpha: 0, y: 20, ease: Expo.easeOut}, 0.1);\n        }\n\n        this.tl.fromTo(_dom.querySelector('.section-columns .separator'), 0.8, {scaleY: 0, alpha: 1}, {scaleY: 1, alpha: 1, ease: Expo.easeInOut}, 0.8);\n\n        this.tl.staggerFromTo($(_dom).find('.column.left h4, .column.left .image-devices, .column.left .content-text, .column.left .mod-simple-button'), 0.5, {alpha: 0, x: -100}, {alpha: 1, x: 0, ease: Expo.easeOut}, 0.1, 0.9);\n        this.tl.staggerFromTo($(_dom).find('.column.right h4, .column.right .image-desktop, .column.right .content-text, .column.right .mod-simple-button'), 0.5, {alpha: 0, x: 100}, {alpha: 1, x: 0, ease: Expo.easeOut}, 0.1, 1.0);\n\n        $(_dom).find('.column.left h4, .column.left .image-devices, .column.left .content-text, .column.left .mod-simple-button, .column.right h4, .column.right .image-desktop, .column.right .content-text, .column.right .mod-simple-button').css('opacity', 0);\n        $('.section-columns').css({\n            'visibility': 'visible',\n            'opacity': '1'\n        });\n        // $('.section-columns').css('opacity', 1);\n    };\n\n    LandingState.prototype.onChoiceShown = function() {\n        // console.log('onChoiceShown');\n        $('.substate-prechoice').hide();\n        $('.section-columns').css('pointer-events', 'auto');\n    };\n\n    LandingState.prototype.resize = function() {\n        var _dom = document.querySelector('.' + this.id);\n        var leftBLeft = $(_dom).find('.column.left .inside').width() * 0.5 - $(_dom).find('.column.left .mod-simple-button').width() * 0.5;\n        var leftBRight = $(_dom).find('.column.right .inside').width() * 0.5 - $(_dom).find('.column.right .mod-simple-button').width() * 0.5;\n        TweenMax.set($(_dom).find('.column.left .mod-simple-button'), {left: leftBLeft});\n        TweenMax.set($(_dom).find('.column.right .mod-simple-button'), {left: leftBRight});\n    };\n\n    return LandingState;\n\n})();","O.LoseState = (function(){\n\n    function LoseState() {\n        AbstractState.call(this);\n\n        this.id = \"section-3-lose\";\n\n        $('.main-title-wrapper').removeClass('active').hide();\n\n        if( O.Config.isWebsocket === false ){\n            $('.retentez-ws').hide();\n        }else{\n            $('.no-webs').hide();\n        }\n\n        var _dom = document.querySelector('.' + this.id);\n        var decalTitle = 0.6;\n        var decalAll = 4;\n        var decalHomelive = 1.5;\n\n        this.tl.fromTo(document.querySelector('.section-3-lose .big-title'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.2);\n        this.tl.fromTo(document.querySelector('.section-3-lose .content-text.first'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalTitle + 0.5);\n        this.tl.fromTo(document.querySelector('.section-3-lose .content-text.second'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalAll + decalTitle + 0.55);\n\n        this.tl.fromTo(document.querySelector('.section-3-lose .separator'), decalAll, {alpha: 1, scaleX: 0}, {alpha: 1, scaleX: 1, ease: Expo.easeInOut}, decalTitle + 0.5);\n\n        this.tl.fromTo(document.querySelector('.section-3-lose .button-restart'), 0.5, {alpha: 0, scaleY: 0}, {alpha: 1, scaleY: 1, ease: Expo.easeOut}, decalAll + decalTitle + 0.55);\n        this.tl.fromTo(document.querySelector('.section-3-lose .avec-homelive'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.65);\n\n        // this.tl.fromTo(document.querySelector('.section-3-lose .content-text.third'), 0.5, {alpha: 0, y: 50, ease: Expo.easeOut}, 0.5);\n\n        this.tl.fromTo(document.querySelector('.section-3-lose .icon.center'), 0.5, {alpha: 0, y: 50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.75);\n        this.tl.fromTo(document.querySelector('.section-3-lose .icon.left'), 0.5, {alpha: 0, x: -50}, {alpha: 1, x: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.85);\n        this.tl.fromTo(document.querySelector('.section-3-lose .icon.right'), 0.5, {alpha: 0, x: 50}, {alpha: 1, x: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.95);\n        this.tl.fromTo(document.querySelector('.section-3-lose .button-promo'), 0.5, {alpha: 0, scaleY: 0}, {alpha: 1, scaleY: 1, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 1.05);\n\n        this.tl.pause(0);\n\n        O.Tracking.onPW('_fin_perdu');\n\n        var retentez;\n        if( O.Config.isWebsocket === false ){\n            retentez = '.ws-retentez';\n        }else{\n            retentez = '.retentez';\n        }\n\n        $(retentez).hide();\n    }\n\n    LoseState.prototype = new AbstractState();\n    LoseState.prototype.constructor = LoseState;\n\n    LoseState.prototype.onTransitionInComplete = function() {\n        $('.button-restart').on('click', this.onRestartButtonClick.bind(this));\n    };\n    LoseState.prototype.transitionOut = function() {\n        $('.button-restart').off('click');\n\n        this.tl.kill();\n\n        this.tl = new TimelineMax({\n            onReverseComplete: this._onTransitionOutComplete,\n            onReverseCompleteScope: this\n        });\n\n        var _dom = document.querySelector('.' + this.id);\n        var decalTitle = 0.2;\n        var decalAll = 0.2;\n        var decalHomelive = 0.2;\n\n        this.tl.fromTo(document.querySelector('.section-3-lose .big-title'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.2);\n        this.tl.fromTo(document.querySelector('.section-3-lose .content-text.first'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalTitle + 0.5);\n        this.tl.fromTo(document.querySelector('.section-3-lose .content-text.second'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalAll + decalTitle + 0.55);\n\n        this.tl.fromTo(document.querySelector('.section-3-lose .separator'), 0.5, {alpha: 1, scaleX: 0}, {alpha: 1, scaleX: 1, ease: Expo.easeInOut}, decalTitle + 0.5);\n\n        this.tl.fromTo(document.querySelector('.section-3-lose .button-restart'), 0.5, {alpha: 0, scaleY: 0}, {alpha: 1, scaleY: 1, ease: Expo.easeOut}, decalAll + decalTitle + 0.55);\n        this.tl.fromTo(document.querySelector('.section-3-lose .avec-homelive'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.65);\n\n        // this.tl.fromTo(document.querySelector('.section-3-lose .content-text.third'), 0.5, {alpha: 0, y: 50, ease: Expo.easeOut}, 0.5);\n\n        this.tl.fromTo(document.querySelector('.section-3-lose .icon.center'), 0.5, {alpha: 0, y: 50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.75);\n        this.tl.fromTo(document.querySelector('.section-3-lose .icon.left'), 0.5, {alpha: 0, x: -50}, {alpha: 1, x: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.85);\n        this.tl.fromTo(document.querySelector('.section-3-lose .icon.right'), 0.5, {alpha: 0, x: 50}, {alpha: 1, x: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.95);\n        this.tl.fromTo(document.querySelector('.section-3-lose .button-promo'), 0.5, {alpha: 0, scaleY: 0}, {alpha: 1, scaleY: 1, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 1.05);\n\n        this.tl.seek(this.tl.duration());\n        this.tl.reverse();\n    };\n\n    LoseState.prototype.onRestartButtonClick = function() {\n        O.WebSocketDesktop.restart();\n        O.AppStates.replay();\n    };\n\n\n    return LoseState;\n\n})();","O.StartExperienceState = (function(){\n\n    function StartExperienceState() {\n        AbstractState.call(this);\n\n        this.id = \"section-start-experience\";\n        var rien = {alpha: 1};\n\n        this.tl.from(rien, 0.5, {alpha: 0});\n    }\n\n    StartExperienceState.prototype = new AbstractState();\n    StartExperienceState.prototype.constructor = StartExperienceState;\n\n    return StartExperienceState;\n\n})();","O.SyncState = (function(){\n\n    function SyncState() {\n        AbstractState.call(this);\n\n        this.id = \"section-2-sync\";\n        this.successSubState = false;\n        this.done = false;\n        // EE.once('websocket:connected', this.start.bind(this));\n        // EE.once('websocket:disconnected', this.start.bind(this));\n    }\n\n    SyncState.prototype = new AbstractState();\n    SyncState.prototype.constructor = SyncState;\n\n    SyncState.prototype.start = function(successSubState) {\n        var _dom = document.querySelector('.' + this.id);\n\n        this.successSubState = successSubState;\n\n        this.tl.fromTo(document.querySelector('.main-site-title'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.4);\n        this.tl.fromTo(document.querySelector('.subtitle-container .sub-site-title'), 0.5, {alpha: 0}, {alpha: 1}, 0.5);\n        this.tl.fromTo(document.querySelector('.subtitle-container .separator.left'), 0.5, {scaleX: 0}, {scaleX: 1, ease: Expo.easeOut, transformOrigin: 'right center'}, 0.7);\n        this.tl.fromTo(document.querySelector('.subtitle-container  .separator.right'), 0.5, {scaleX: 0}, {scaleX: 1, ease: Expo.easeOut, transformOrigin: 'left center'}, 0.7);\n\n        $('.main-title-wrapper').show().css({\n            \"visibility\": \"visible\",\n            \"opacity\": 1\n        });\n        $('.main-site-title').css({\n            \"visibility\": \"visible\"\n        });\n\n        if(successSubState) {\n            this.tl.fromTo(_dom.querySelector('p'), 0.5, {alpha: 0, y: 50}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.7);\n            this.tl.fromTo(_dom.querySelector('.picto-sync.picto-ok'), 0.5, {alpha: 0, y: 50}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.8);\n        }\n        else {\n            // this.tl.fromTo(_dom.querySelector('p.first'), 0.5, {alpha: 0, y: 50}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.7);\n            // this.tl.fromTo(_dom.querySelector('.picto-sync.picto-error'), 0.5, {alpha: 0, y: 50}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.8);\n            // this.tl.fromTo(_dom.querySelector('p.second'), 0.5, {alpha: 0, y: 50}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.9);\n            var $els = $(_dom).find('p, .picto-sync.picto-error, .mod-simple-button');\n            this.tl.staggerFromTo($els, 0.5, {alpha: 0, y: 50}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.08, 0.9);\n        }\n\n        this.tl.restart();\n    };\n\n    SyncState.prototype.onTransitionInComplete = function() {\n        if(this.done) return;\n\n        if(this.successSubState){\n            setTimeout(function(){\n                O.AppStates.goToState('section-1-intro');\n            }, 4000);\n        }\n        this.done = true;\n    };\n\n    return SyncState;\n\n})();","O.WinState = (function(){\n\n    function WinState() {\n        AbstractState.call(this);\n\n        this.id = \"section-3-win\";\n\n        $('.main-title-wrapper').removeClass('active').hide();\n\n        var _dom = document.querySelector('.' + this.id);\n        var decalTitle = 0.6;\n        var decalHomelive = 1.5;\n        var decalAll = 4;\n\n        if( O.Config.isWebsocket === false ){\n            $('.retentez').hide();\n            this.endButton = '.button-restart';\n        }else{\n            $('.retentezws').hide();\n            this.endButton = '.button-tirage';\n        }\n        $(this.endButton).show();\n\n\n        this.tl.fromTo(_dom.querySelector('.big-title'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.2);\n        this.tl.fromTo(_dom.querySelector('.retentezws'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalAll + decalTitle + 0.45);\n        this.tl.fromTo(_dom.querySelector('.content-text.first'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalTitle + 0.5);\n\n        this.tl.fromTo(_dom.querySelector('.separator'), 4, {alpha: 1, scaleX: 0}, {alpha: 1, scaleX: 1, ease: Expo.easeOut}, decalTitle + 0.6);\n\n        this.tl.fromTo(_dom.querySelector(this.endButton), 0.5, {alpha: 0, scaleY: 0}, {autoAlpha: 1, scaleY: 1, ease: Expo.easeInOut} , decalAll + decalTitle + 0.55);\n        this.tl.fromTo(_dom.querySelector('.avec-homelive'), 0.5, {alpha: 0, y: 50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.65);\n\n        this.tl.fromTo(_dom.querySelector('.icon.center'), 0.5, {alpha: 0, y: 50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.75);\n        this.tl.fromTo(_dom.querySelector('.icon.left'), 0.5, {alpha: 0, x: -50}, {alpha: 1, x: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.85);\n        this.tl.fromTo(_dom.querySelector('.icon.right'), 0.5, {alpha: 0, x: 50}, {alpha: 1, x: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.95);\n\n        this.tl.fromTo(_dom.querySelector('.button-promo'), 0.5, {alpha: 0, scaleY: 0}, {alpha: 1, scaleY: 1, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 1.05);\n\n        this.tl.pause(0);\n\n        O.Tracking.onPW('_fin_gagne');\n    }\n\n    WinState.prototype = new AbstractState();\n    WinState.prototype.constructor = WinState;\n\n    WinState.prototype.onTransitionOutComplete = function() {\n        $(this.endButton).hide();\n    };\n\n    WinState.prototype.onTransitionInComplete = function() {\n        $('.section-3-win .button-restart').on('click', this.onRestartButtonClick.bind(this));\n    };\n\n    WinState.prototype.transitionOut = function() {\n        $('.section-3-win .button-restart').off('click');\n\n        var _dom = document.querySelector('.' + this.id);\n        var decalTitle = 0.2;\n        var decalHomelive = 0.2;\n        var decalAll = 0.2;\n\n        this.tl.kill();\n\n        this.tl = new TimelineMax({\n            onReverseComplete: this._onTransitionOutComplete,\n            onReverseCompleteScope: this\n        });\n\n        if( O.Config.isWebsocket === false ){\n            this.endButton = '.button-restart';\n        }else{\n            this.endButton = '.button-tirage';\n        }\n\n        this.tl.fromTo(_dom.querySelector('.big-title'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, 0.2);\n        this.tl.fromTo(_dom.querySelector('.retentezws'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalAll + decalTitle + 0.45);\n        this.tl.fromTo(_dom.querySelector('.content-text.first'), 0.5, {alpha: 0, y: -50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalTitle + 0.5);\n\n        this.tl.fromTo(_dom.querySelector('.separator'), 0.5, {alpha: 1, scaleX: 0}, {alpha: 1, scaleX: 1, ease: Expo.easeOut}, decalTitle + 0.6);\n\n        this.tl.fromTo(_dom.querySelector(this.endButton), 0.5, {alpha: 0, scaleY: 0}, {autoAlpha: 1, scaleY: 1, ease: Expo.easeInOut} , decalAll + decalTitle + 0.55);\n        this.tl.fromTo(_dom.querySelector('.avec-homelive'), 0.5, {alpha: 0, y: 50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.65);\n\n        this.tl.fromTo(_dom.querySelector('.icon.center'), 0.5, {alpha: 0, y: 50}, {alpha: 1, y: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.75);\n        this.tl.fromTo(_dom.querySelector('.icon.left'), 0.5, {alpha: 0, x: -50}, {alpha: 1, x: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.85);\n        this.tl.fromTo(_dom.querySelector('.icon.right'), 0.5, {alpha: 0, x: 50}, {alpha: 1, x: 0, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 0.95);\n\n        this.tl.fromTo(_dom.querySelector('.button-promo'), 0.5, {alpha: 0, scaleY: 0}, {alpha: 1, scaleY: 1, ease: Expo.easeOut}, decalHomelive + decalAll + decalTitle + 1.05);\n        this.tl.seek(this.tl.duration());\n        this.tl.reverse();\n    };\n\n    WinState.prototype.onRestartButtonClick = function() {\n\n        // console.log('onRestartButtonClick');\n\n        O.WebSocketDesktop.restart();\n        O.AppStates.replay();\n    };\n\n    return WinState;\n\n})();","O.WebSocketDesktop = (function(){\n\n    var _roomNumber,\n        _startedOnce = false,\n        _connected = false,\n        _notReloadTimeOut;\n\n    function init(){\n\n        if(typeof io != 'function') return;\n        O.socket = io(window.socketServer);\n\n\n\n        O.socket.on('room:created', function(data) {\n\n            _roomNumber = data;\n            console.debug('[server] room created %c' + data, 'color: #800080;');\n            _displayRoomNumber();\n\n        });\n\n\n        O.socket.on('controller:connected', function() {\n            _connected = true;\n            if(_startedOnce) {\n                console.debug('[server] controller %creconnected', 'color: #008000');\n                clearTimeout(_notReloadTimeOut);\n                O.AppStates.restart();\n            }\n            else {\n                console.debug('[server] controller %cconnected', 'color: #008000');\n                EE.trigger('websocket:connected');\n                _startedOnce = true;\n            }\n        });\n\n        O.socket.on('receive', function(msg) {\n            switch(msg.action) {\n                case 'launchVideo':\n                    O.Push.hide();\n                    O.FoldingMenu.hideTextWebsocket();\n                    EE.trigger('launchAction', [O.DataUtils.getVideoFromId(msg.id)]);\n                break;\n                case 'message':\n                    O.Twitter.sendMessage(msg.value);\n                    O.MarcelTracking.saveMessage( msg.value );\n                    O.Tracking.onPW('_interaction_messageenvoi');\n                break;\n                case 'openTwitter':\n                    if($('.push').hasClass('active')) O.Push.hide();\n                    O.Menu.openTwitter();\n                    O.AppExperience.websocketOpenTwitter();\n                break;\n                case 'closeTwitter':\n                    O.Twitter.websocketClose();\n                break;\n                case 'gotoForm':\n                    O.AppStates.goToState('section-form');\n                break;\n                case 'openInactiveMessage':\n                    console.log('openInactiveMessage');\n                    O.FoldingMenu.showTextWebsocket();\n                break;\n                case 'closeInactiveMessage':\n                    console.log('closeInactiveMessage');\n                    O.FoldingMenu.hideTextWebsocket();\n                break;\n                case 'restart':\n                    O.AppStates.replay();\n                break;\n            }\n        });\n\n        O.socket.on('controller:disconnected', function() {\n            console.debug('[server] controller %cdisconnected', 'color: #800000');\n            _connected = false;\n            EE.trigger('websocket:disconnected');\n            _notReloadTimeOut = setTimeout(_goToDisconnect, 3000);\n        });\n\n        O.socket.emit('room:create');\n\n    }\n\n    function _goToDisconnect(){\n        O.AppStates.gotoDisconnect();\n    }\n\n    function _displayRoomNumber(){\n\n        var  els = document.querySelectorAll('.roomnumberinlink');\n        for (var i = els.length - 1; i >= 0; i--) {\n            els[i].innerHTML = _roomNumber;\n        }\n\n        //Trigger resize for home button\n        EE.emitEvent('resize');\n\n    }\n\n    function experienceStarted(){\n        O.socket.emit('send', {\"action\": \"experienceStart\"});\n    }\n\n    function messageAnswer(answer){\n        O.socket.emit('send', {\"action\": \"answer\", \"answer\": answer});\n    }\n\n    function getRoomNumber(){\n        return _roomNumber;\n    }\n\n    function isConnected(){\n        return _connected;\n    }\n\n    function blockCommande(){\n        O.socket.emit('send', {\"action\": \"blockCommande\"});\n    }\n\n    function gotoWin(){\n        O.socket.emit('send', {\"action\": \"gotoWin\"});\n    }\n\n    function gotoLose(){\n        O.socket.emit('send', {\"action\": \"gotoLose\"});\n    }\n\n    function restart(){\n        O.socket.emit('send', {\"action\": \"restart\"});\n    }\n\n    function showPush(message){\n        O.socket.emit('send', {\"action\": \"showPush\", \"message\": message});\n    }\n\n    function hidePush(){\n        O.socket.emit('send', {\"action\": \"hidePush\"});\n    }\n\n    return {\n        init: init,\n        getRoomNumber: getRoomNumber,\n        blockCommande: blockCommande,\n        experienceStarted:experienceStarted,\n        isConnected: isConnected,\n        gotoWin: gotoWin,\n        gotoLose: gotoLose,\n        restart: restart,\n        showPush: showPush,\n        hidePush: hidePush,\n        messageAnswer: messageAnswer\n    };\n\n})();\n","O.Config = {\n\n    isDebug       : false,\n\n    isTouchDevice : false,\n    isMobile      : false,\n    isWebsocket   : false,\n    isAction      : false,\n    isTablet      : false,\n\n    videoLoseTriggerTime : 14,\n\n    EXP : {\n        ACTIONS_TOTAL   : 5,\n        ACTIONS_TO_FIND : 3,\n        ACTION_PUSH_NUM : 2 // Push comes action 2\n    }\n};\n\n","O.data = {\n    \"actions\" : [\n        {\n            \"id\" : \"1\",\n            \"videoname\" : \"1\",\n            \"isgood\" : true,\n            \"tracking\" : \"tv\",\n            \"answerwrong\" : \"désolé, ça ne devait pas être la bonne chaine,\",\n            \"answerright\" : \"bravo, la télé est depuis longtemps le meilleur ami de Roger,\"\n        },\n        {\n            \"id\" : \"2\",\n            \"videoname\" : \"2\",\n            \"isgood\" : true,\n            \"tracking\" : \"radio\",\n            \"answerwrong\" : \"désolé, mais la techno n’est pas la tasse de thé de Roger,\",\n            \"answerright\" : \"bravo, ce son l’a fait bouger comme jamais,\"\n        },\n        {\n            \"id\" : \"3\",\n            \"videoname\" : \"3\",\n            \"isgood\" : true,\n            \"tracking\" : \"gramophone\",\n            \"answerwrong\" : \"désolé mais les vinyles le faisaient bouger il y a 30 ans,\",\n            \"answerright\" : \"bravo, cette douce mélodie remue déjà son cœur,\"\n        },\n        {\n            \"id\" : \"4\",\n            \"videoname\" : \"4\",\n            \"isgood\" : false,\n            \"tracking\" : \"microondes\",\n            \"answerwrong\" : \"désolé mais l’idée de bouger n’a pas effleuré Roger d’une micro onde,\",\n            \"answerright\" : \"bravo, Roger a bougé comme un bol dans un micro-onde,\"\n        },\n        {\n            \"id\" : \"5\",\n            \"videoname\" : \"5\",\n            \"isgood\" : false,\n            \"tracking\" : \"lumiere\",\n            \"answerwrong\" : \"désolé mais pour bouger Roger il faudra plus que l’aveugler,\",\n            \"answerright\" : \"bravo, Roger bouge pratiquement à la vitesse de la lumière,\"\n        },\n        {\n            \"id\" : \"6\",\n            \"videoname\" : \"6\",\n            \"isgood\" : false,\n            \"tracking\" : \"telephone\",\n            \"answerwrong\" : \"désolé mais si il a un répondeur c’est justement pour ne plus décrocher,\",\n            \"answerright\" : \"bravo, la voix de Jeanne l’a remué,\"\n        },\n        {\n            \"id\" : \"7\",\n            \"videoname\" : \"7\",\n            \"isgood\" : false,\n            \"tracking\" : \"poisson\",\n            \"answerwrong\" : \"désolé mais la pêche est un sport de patience et de calme, \",\n            \"answerright\" : \"bravo, Roger bouge comme un poisson dans l’eau,\"\n        },\n        {\n            \"id\" : \"8\",\n            \"videoname\" : \"8\",\n            \"isgood\" : false,\n            \"tracking\" : \"imprimante\",\n            \"answerwrong\" : \"désolé mais quelques feuilles ne le détacheront pas de son canapé,\",\n            \"answerright\" : \"bravo, il a carrément tenté un panier,\"\n        },\n        {\n            \"id\" : \"9\",\n            \"videoname\" : \"9\",\n            \"isgood\" : false,\n            \"tracking\" : \"ventilateur\",\n            \"answerwrong\" : \"désolé mais même une tempête ne le ferait pas s’envoler,\",\n            \"answerright\" : \"bravo, Roger décolle comme une vache dans un ouragan,\"\n        },\n        {\n            \"id\" : \"10\",\n            \"videoname\" : \"10\",\n            \"isgood\" : false,\n            \"tracking\" : \"radiateur\",\n            \"answerwrong\" : \"désolé mais il fait bien trop chaud pour sortir aider Jeanne,\",\n            \"answerright\" : \"bravo, vous avez fait monter la température et l’envie de bouger de Roger, \"\n        }\n    ],\n    \"pushs\" : [\n        {\n            \"id\" : \"1\",\n            \"sentence\" : \"Homelive a détecté une fuite d'eau dans la maison de Roger\",\n            \"videoname\" : \"1\",\n            \"tracking\" : \"pusheau\"\n        },\n        {\n            \"id\" : \"2\",\n            \"sentence\" : \"Homelive a détecté de la fumée dans la maison de Roger\",\n            \"videoname\" : \"2\",\n            \"tracking\" : \"pushfumee\"\n        },\n        {\n            \"id\" : \"3\",\n            \"sentence\" : \"Homelive a détecté une intrusion dans la maison de Roger\",\n            \"videoname\" : \"3\",\n            \"tracking\" : \"pushfenetre\"\n        }\n    ],\n    \"words\": [\n        {\n            \"video\": \"default\",\n            \"delay\": 14.0,\n            \"answer\": [\"Demandez-moi de faire quelque chose de clair, là c'est un peu fouillis ce que vous me dites.\", \"Dites-moi ce que vous voulez que je fasse. Je vous écoute dans mon sommeil, promis.\", \"Je n’ai pas bien compris votre demande. Et en plus vous m’avez réveillé\", \"Je ne saisis pas très bien ce que vous me demandez. Je vais regarder dans mon livre préféré si la réponse s’y trouve.\", \"Je ne comprends pas ce que vous me demandez de faire. Vous ne voulez pas plutôt me faire la lecture ?\", \"Votre message n’est pas très clair, que voulez-vous dire ? #riencompris\", \"Comment ? Je n’ai pas saisi. Je vais lire quelques pages en attendant.\", \"Je ne vois pas ce que vous voulez dire. Maintenant en plus je vais avoir du mal à me rendormir…\", \"Pouvez-vous reformuler ? Je vous attends, promis je ne dors pas.\", \"Quoi ? Je n’ai pas bien compris, je suis désolé.\", \"Je suis désolé, je ne comprends pas ce que vous voulez dire. Du coup, je me rendors.\", \"Votre message n’est pas très clair pour moi. Je crois que je vais retourner à ma sieste.\", \"Que voulez-vous dire ? Je n’ai pas bien saisi. Je vais me rendormir.\", \"Je ne vois pas ce que vous voulez dire... Demandez-moi autre chose !\", \"Navré, je ne vois pas ce que vous voulez dire. Essayez autre chose ! Pendant ce temps, je fais un petit somme.\", \"Je ne comprends pas bien, je suis nouveau sur les internets vous savez.\", \"Vous allez devoir me demander autre chose, j’ai bien peur de ne pas avoir compris.\", \"100% des Roger de cette maison n’ont pas compris votre demande, essayez autre chose.\", \"Euh… Je… Comment dire sans vous vexer… En fait… Je n’ai pas compris ce que vous disiez, voilà.\"],\n            \"default\": true\n        },\n        {\n            \"words\": [\"Jeanne\", \"jeanne\", \"Jeane\", \"jeane\", \"Jane\", \"jane\", \"ta femme\", \"femme\", \"jeanine\", \"jeannine\", \"Jeannine\"],\n            \"video\": \"bouger\",\n            \"delay\": 17.0,\n            \"answer\": [\"Elle doit pouvoir s’en sortir, vous ne l’avez jamais vue quand elle s’énerve.\", \"Je préfère me reposer un peu pour être en forme avant de l’aider.\", \"Je ne veux pas la déranger, je suis sûr que Jeanne se débrouille bien toute seule.\", \"Si je commence à l’aider, j’ai peur que ma femme prenne l’habitude et me demande plein de choses\"]\n        },\n        {\n            \"words\": [\"jardin\", \"dehors\", \"piscine\"],\n            \"video\": \"bouger\",\n            \"delay\": 17.0,\n            \"answer\": [\"Dans le jardin ? Mais... c’est trop loin ! #flemme\", \"Il fait bien trop froid pour mettre le nez dans le jardin.\"]\n        },\n        {\n            \"words\": [\"super héros\", \"supers héros\", \"super hero\", \"super héro\", \"supers hero\", \"supers héro\"],\n            \"video\": \"bouger\",\n            \"delay\": 17.0,\n            \"answer\": [\"Les super héros, ça n’existe qu’en rêve ! En parlant de ça, je me rendors ! #bonnenuit\", \"J’ai le super pouvoir de ne rien faire, d’ailleurs je m’en sers là, hop !\"],\n        },\n        {\n            \"words\": [\"extraterrestre\", \"extra terrestre\", \"extre-terrestre\", \"extraterrestres\", \"extra terrestres\", \"extra-terrestres\"],\n            \"video\": \"bouger\",\n            \"delay\": 17.0,\n            \"answer\": [\"Vous êtes sûrs ? Vous avez du rêver. En parlant de rêve, je retourne dans le mien.\", \"Ah. C’est embêtant ça. Je suis allergique aux aliens malheureusement, autant rester à l’intérieur.\", \"Le mieux, c’est de ne pas provoquer E.T. Faisons semblant de dormir. Ou mieux, dormons.\", \"Ça doit être le voisin. Je ne l’aime pas trop, évitons-le\", \"Je ne vous permets pas de parler de ma femme ainsi. #nonmais\", \"Mais… arrêtez, pourquoi ce serait à moi de m’en occuper ?!\"]\n        },\n        {\n            \"words\": [\"feu\", \"il y a le feu\"],\n            \"video\": \"bouger\",\n            \"delay\": 17.0,\n            \"answer\": [\"Ça m’étonnerait, avec mon capteur de fumée Homelive je l’aurais su ! Allez, je me rendors.\", \"Non, ça c’est sûrement le voisin qui fait un barbecue, il fait toujours cramer ses merguez.\"]\n        },\n        {\n            \"words\": [\"je vais te tuer\", \"je vais te tué\", \"je vé te tuer\", \"je vé te tué\"],\n            \"video\": \"insultes\",\n            \"delay\": 17.0,\n            \"answer\": [\"Ça n’est pas comme ça que vous allez réussir à me réveiller, du coup.\", \"Je n’aime pas beaucoup cette idée. Pas du tout du tout. Non.\"]\n        },\n        {\n            \"words\": [\"boire\"],\n            \"video\": \"drogue\",\n            \"delay\": 27.0,\n            \"answer\": [\"J'avais surtout un petit creux. Maintenant si vous voulez m'apporter un verre d'eau… ;)\"]\n        },\n        {\n            \"words\": [\"verre\"],\n            \"video\": \"drogue\",\n            \"delay\": 27.0,\n            \"answer\": [\"Verre = cuisine = trop loin\"]\n        },\n        {\n            \"words\": [\"bonbon\"],\n            \"video\": \"drogue\",\n            \"delay\": 27.0,\n            \"answer\": [\"Au saumon mon préféré !\"]\n        },\n        {\n            \"words\": [\"vieux con\"],\n            \"video\": \"insultes\",\n            \"delay\": 17.0,\n            \"answer\": [\"Si vous croyez que c’est en m’insultant que vous allez régler le problème des aliens.\", \"Dites donc, on n’a pas élevé les yorkshires ensemble hein !\"]\n        },\n        {\n            \"words\": [\"chopper\", \"choper\", \"chope\", \"choppe\", \"pécho\", \"choppé\"],\n            \"video\": \"insultes\",\n            \"delay\": 17.0,\n            \"answer\": [\"C’est donc ça, la génération Y dont tout le monde parle ?\"]\n        },\n        {\n            \"words\": [\"chier\", \"chié\"],\n            \"video\": \"insultes\",\n            \"delay\": 17.0,\n            \"answer\": [\" Est-ce comme ça qu’on s’adresse aux gens ? Canaille !\"]\n        },\n        {\n            \"words\": [\"vioque\",\"enculer\", \"enculé\", \"enculée\", \"encule\", \"salope\", \"conasse\", \"toxico\", \"toxicomane\", \"pute\", \"pédophile\", \"pédophilie\", \"pédofile\", \"pédofil\", \"salop\", \"prostitué\", \"prostitution\", \"nik\", \"niker\", \"niquer\", \"niqué\", \"niké\", \"sucer\", \"sucé\", \"suce\", \"bukkake\", \"bukake\", \"emmerder\", \"emmerde\", \"emerde\", \"emmerdé\", \"emerdé\", \"merde\", \"con\", \"batard\", \"bâtard\", \"putain\", \"bitch\", \"fuck\", \"biatch\", \"anal\", \"violer\", \"violeur\", \"violé\", \"sodomie\", \"sodomi\", \"sodomiser\", \"sodomies\", \"salaud\", \"conne\", \"couillon\", \"couillone\", \"couillonne\", \"enfoiré\", \"enculeur\", \"grognasse\", \"pd\", \"tapette\", \"négro\", \"nigga\", \"nigger\", \"pétasse\", \"merdeux\", \"pédé\", \"pede\", \"pédés\", \"pedes\", \"bougnoul\", \"bougnoule\", \"raclure\", \"tafiole\", \"tentouse\", \"tentouze\", \"foutre\", \"pouffe\", \"pouffiasse\", \"boloss\", \"bolosse\", \"bordel\", \"baltringue\", \"branleur\", \"branler\", \"branleuse\", \"cassos\", \"casos\", \"catin\", \"tepu\", \"chienasse\", \"cocu\", \"fucker\", \"fist\", \"fister\", \"fistinière\", \"enflure\", \"fion\", \"fiote\", \"fiotte\", \"racaille\", \"cumshot\", \"fumier\", \"pine\", \"sperme\", \"putassière\", \"queutard\", \"radasse\", \"kékette\", \"kékéte\", \"quéquette\", \"partouze\", \"nazi\", \"hitler\", \"feuj\", \"himmler\", \"goebbels\", \"holocauste\", \"holocaust\", \"holocoste\", \"gammée\", \"sodomite\", \"tanche\", \"trainée\", \"traînée\", \"ticard\", \"chibre\", \"xénophobe\", \"jouir\", \"chienne\", \"foutrement\", \"morue\", \"chatte\", \"pénétration\", \"trouduk\", \"trouduc\", \"blowjob\", \"deepthroat\", \"creampie\", \"boob\", \"boobs\", \"threesome\", \"gangbang\", \"milf\", \"gilf\", \"filf\", \"schek\", \"pussy\", \"cum\", \"suck\", \"asshole\", \"chagasse\", \"zoophile\", \"zoophilie\", \"nécrophile\", \"nécrophilie\", \"hard\", \"hardeuse\", \"hardeur\", \"porno\", \"porn\", \"pr0n\", \"p0rn\", \"marc dorcel\", \"clara morgane\", \"éjaculation\", \"éjac\", \"bifle\", \"biffle\", \"biffler\", \"bifler\", \"timpe\", \"teub\", \"teube\", \"zgeg\", \"zgaig\", \"zob\", \"gland\", \"pipe\", \"ferme ta gueule\", \"TG\", \"FTG\", \"ferme la\", \"shut up\", \"FDP\", \"fils de pute\", \"fils de p...\", \"obsédé\", \"bite\", \"couille\", \"couile\", \"couilles\", \"fion\", \"cul\", \"obcédé\", \"obscédé\", \"nul\"],\n            \"video\": \"insultes\",\n            \"delay\": 17.0,\n            \"answer\": [\" Est-ce comme ça qu’on s’adresse aux gens ? Canaille ! #pascontent\", \" Mais que vois-je au loin ? C’est bien ça, c’est votre politesse ! \", \" C’est donc ça, la génération Y dont tout le monde parle ?\", \" Une fois j’ai mal parlé à Jeanne, elle ne m’a plus fait à manger pendant 3h…\", \" Moi aussi je peux dire des grossièretés : Saperlipopette !\", \" Et c’est pour me dire des choses comme ça que vous me réveillez ?\", \" C’est celui qui dit qui est. Et bim !\", \" Le train de vos injures roule sur les rails de mon indifférence. #poète\", \" La bave du crapeau n’atteint pas la blanche colombe.\"]\n        },\n        {\n            \"words\": [\"café\", \"chocolat\", \"thé\", \"alcool\", \"alcoolise\", \"bourrer\", \"bourre toi la gueule\", \"ivre\", \"drogue\", \"drogué\", \"se droguer\", \"bière\", \"whisky\", \"tequila\", \"vodka\", \"vin\", \"absinthe\", \"advocaat\", \"limoncello\", \"amaretto\", \"baileys\", \"amaro\", \"mojito\", \"ricard\", \"jb\", \"anisette\", \"jack\", \"daniels\", \"arrack\", \"ouzo\", \"bourha\", \"calvados\", \"champagne\", \"mousseux\", \"piquette\", \"chartreuse\", \"cognac\", \"cocktail\", \"eau de vie\", \"liqueur\", \"gin\", \"grand marnier\", \"grappa\", \"irish mint\", \"wiskey\", \"malibu\", \"maraschino\", \"pinte\", \"bière\", \"un demi\", \"porto\", \"rhum\", \"schnapps\", \"scotch\", \"bar\", \"triple sec\", \"rosé\", \"zubrowska\", \"shot\", \"prend un verre\", \"prends un verre\", \"saouler\", \"saoule toi\", \"picole\", \"piccole\", \"buvez\", \"apéro\", \"apéritif\", \"appero\", \"appéritif\", \"booze\", \"pinter\", \"enivre toi\", \"tise\", \"tiser\", \"soule toi\", \"trinque\", \"cheers\", \"cuite\", \"pompette\", \"bois de l'alcool\", \"drink\", \"torche toi\", \"godet\", \"drogue toi\", \"drogues toi\", \"droguer\", \"sniff\", \"snifer\", \"snif\", \"cocaïne\", \"défonce\", \"haschich\", \"hash\", \"beuw\", \"beuh\", \"joint\", \"pétard\", \"stupéfiant\", \"majijuana\", \"join\", \"opium\", \"illégal\", \"héroïne\", \"médicament\", \"pillule\", \"pilule\", \"pill\", \"ecstasy\", \"exstasie\", \"exstasi\", \"ecstasie\", \"ecstasi\", \"ecsta\", \"exta\", \"extasy\", \"amphé\", \"amphétamine\", \"benzédrine\", \"bad\", \"bad trip\", \"hallucination\", \"champignons magiques\", \"champi\", \"éroine\", \"héroine\", \"éroïne\", \"eroine\", \"défonce\", \"défoncer\", \"poison\", \"canabis\", \"cannabis\", \"canabisse\", \"cannabisse\", \"lsd\", \"kétamine\", \"coke\", \"ghb\", \"pcp\", \"md\", \"mdma\", \"blunt\", \"chicha\", \"splif\", \"spliff\", \"spiff\", \"oinj\", \"bédo\", \"pétard\", \"tarpé\"],\n            \"video\": \"drogue\",\n            \"delay\": 27.0,\n            \"answer\": [\"Un jour, j’ai bu une verveine alors que je bois toujours une camomille.\", \"Déjà qu’après un café je ne fais plus de sieste pendant 3 jours…\", \"J’ai une patate, moi là tout de suite !\", \"PasLeTempsDeMettreDesEspacesJeTweeteTropVite\", \"MA FEMME DIT QUE CE SONT DES EXCITANTS QUI EMPÊCHENT DE DORMIR\", \"Je me sens plein d’énergie, j’ai envie de faire plein de choses, je… Ah, ouf, c’est passé. #tropfatigué\"]\n        },\n        {\n            \"words\": [\"absorber\", \"alimenter\", \"avaler\", \"becqueter\", \"bouffe\", \"bouffer\", \"boufe\", \"bouffer\", \"boulotter\", \"casse dalle\", \"snack\", \"gouter\", \"goûter\", \"croquer\", \"cuisiner\", \"cuisine\", \"déguster\", \"déjeuner\", \"dejeuner\", \"dîner\", \"diner\", \"dinne\", \"dinner\", \"petit déjeuner\", \"petit dej\", \"ptit dej\", \"dévorer\", \"engloutir\", \"entamer\", \"goinfrer\", \"grailler\", \"grignoter\", \"ingurgiter\", \"mâcher\", \"macher\", \"faim\", \"manger\", \"mange\", \"nourire\", \"nourrire\", \"nourir\", \"nourrir\", \"nourriture\", \"nourris toi\", \"picorer\", \"repas\", \"s'alimenter\", \"savourer\", \"se gaver\", \"s'empiffrer\", \"s'empifrer\", \"se nourrir\", \"se régaler\", \"se rassasier\", \"se remplir\", \"se restaurer\", \"se sustenter\", \"souper\", \"sustenter\", \"casser la croûte\", \"casser la graine\", \"se mettre à table\", \"manger\", \"cuisine\", \"cuisiner\", \"damer\", \"casse croûte\", \"repas\", \"diner\", \"à table\", \"digestion\", \"bon apétit\", \"bon appétit\", \"bon app\", \"manje\", \"sandwich\", \"pizza\", \"barbeuc\", \"barbec\", \"barbecue\", \"burger\" ],\n            \"video\": \"manger\",\n            \"delay\": 18.0,\n            \"answer\": [\"Après manger, quoi de mieux qu’une petite sieste digestive ? #dodo\", \"Juste un petit en-cas en attendant que ma femme finisse de préparer le repas.\", \"Toute cette activité m’avait donné faim !\", \"C’est fou, même après 4 mois, cette 4 fromages a encore du goût !\", \"Par contre ça fatigue de manger. Je vais m’étendre un moment. #teamflemme\", \"Comment on dit déjà, « Mangez, Dormez », non ? Je vais faire ça.\"]\n        },\n\n        {\n            \"words\": [\"baiser\", \"baisé\", \"baizé\", \"baize\", \"baizer\"],\n            \"video\": \"bouger\",\n            \"delay\": 17.0,\n            \"answer\": [\"Ah, quel dommage, c'est la JMAP (Journée Mondiale sans Activité Physique)… C'est ballot, non ?\"]\n        },\n        {\n            \"words\": [\"ouvre les yeux\"],\n            \"video\": \"insultes\",\n            \"delay\": 17.0,\n            \"answer\": [\"Voilà c'est fait, maintenant je les re-ferme. Salut.\"]\n        },\n        {\n            \"words\": [\"bouge toi\", \"bouge-toi\", \"bouges toi\", \"bouges-toi\", \"bouge ton cul\", \"bouges ton cul\", \"bouge tes fesses\", \"bouges tes fesses\", \"debout\", \"bouge\", \"bouges\"],\n            \"video\": \"bouger\",\n            \"delay\": 17.0,\n            \"answer\": [\"Vous avez vu ? J’ai bougé là. Mais il en faudra plus pour me faire me lever.\", \"Encore bouger, toujours bouger… Qu’attendez-vous de moi à la fin ?\", \"Je vous propose plutôt de regarder un film  ça s’appelle « Le Repos du Roger ».\"]\n        },\n        {\n            \"words\": [\"réveille-toi\", \"réveille toi\", \"réveilles toi\", \"réveilles-toi\", \"réveil toi\"],\n            \"video\": \"bouger\",\n            \"delay\": 17.0,\n            \"answer\": [\"Vous m’avez réveillé. Mais vous allez voir, je suis champion du monde de réendormissement.\", \"Oui ? Que voulez-vous ? Si vous n’avez rien à me demander, je me rendors. Allez salut !\"]\n        },\n        {\n            \"words\": [\"lève-toi\", \"lève toi\", \"lèves toi\", \"lèves-toi\"],\n            \"video\": \"bouger\",\n            \"delay\": 17.0,\n            \"answer\": [\"Non, merci. C’est gentil de proposer hein. Mais là, non, je ne le sens pas.\"]\n        },\n        {\n            \"words\": [\"wake up\"],\n            \"video\": \"bouger\",\n            \"delay\": 15.0,\n            \"answer\": [\"Je ne comprends pas l’anglais, ça veut dire « fais une sieste » c’est ça ?\", \"Leave Roger alone. Ce n’est pas une heure pour réveiller les gens, voyons !\"]\n        },\n        {\n            \"words\": [\"agiter\", \"va t en\", \"ménage\", \"balai\", \"aspirateur\", \"déplacer\", \"gigoter\", \"partir\", \"remuer\", \"se remuer\", \"va et viens\", \"bougeotte\", \"se cacher\", \"chambre\", \"saxante neuf\", \"faire un truc\", \"69\", \"fais un truc\", \"debout\", \"réveil\", \"reveilles-toi\", \"reveille-toi\", \"réveille toi\", \"réveilles toi\", \"réveil toi\", \"lève-toi\", \"levrette\", \"levez-vous\", \"levez vous\", \"se lever\", \"leve toi\", \"bougé\", \"bougez vous\", \"bougez\", \"bouger\", \"cacher\", \"cache toi\", \"caches toi\", \"cache\", \"réveiller\", \"fais l'amour\", \"fait l'amour\", \"faite l'amour\", \"faites l'amour\", \"fête l'amour\", \"repassage\"],\n            \"video\": \"bouger\",\n            \"delay\": 17.0,\n            \"answer\": [\"Cessez, brigand ! Je ne suis pas votre pantin !\", \"Pourrais-je faire la sieste tranquille ? Est-ce trop demander?\", \"Ha non, là c’est l’heure de ne rien faire !\", \"Ce canapé est parfaitement adapté à ma morphologie. Je vais y rester un peu.\", \" Je vais plutôt m’allonger un peu, tant que ma femme a le dos tourné. Motus, hein ?\", \" Je n’avais pas fait autant de sport depuis le service militaire ! Enfin, l’épreuve où j’ai été réformé.\", \"Je viens de passer à ça d’un claquage, je vais éviter d’en faire trop.\"]\n        },\n        {\n            \"words\": [\"coucher\", \"se coucher\"],\n            \"video\": \"dormir\",\n            \"delay\": 15.0,\n            \"answer\": [\"Que j'aille me coucher ? Oh oui, chouette !\"]\n        },\n        {\n            \"words\": [\"pioncer\", \"rêver\", \"ronfler\", \"roupiller\", \"sommeiller\", \"somnoler\", \"dort\", \"dors\", \"dormir\", \"ferme les yeux\", \"sieste\", \"repos\", \"somme\", \"sommeil\"],\n            \"video\": \"dormir\",\n            \"delay\": 15.0,\n            \"answer\": [\"Vraiment, si vous insistez.\", \" Ah, enfin une demande intéressante ! #bonnenuit\", \" Allez, bonne nuit !\", \"J’ai bien mérité un peu de repos après tout. #sieste\", \"Je ne suis pas en forme si je ne dors pas 14 heures par jour… minimum. #pascontent\", \"Enfin ! C’est mon activité favorite de la journée. #dormir\", \"Je le fais vraiment pour vous faire plaisir hein. #SympaLeRoger\", \"Ça tombe très bien, j’avais justement envie de faire une petite pause.\"]\n        },\n        {\n            \"words\": [\"grille en une\", \"grilles en une\", \"cigarette\", \"cigar\", \"cigarre\", \"cigare\", \"cigarettes\", \"vogues\", \"malboro\", \"camel\", \"kamel\", \"chesterfield\", \"dunhill\", \"drum\", \"elixyr\", \"gitanes\", \"john player\", \"gryson\", \"winston\", \"winfield\", \"stuyvesant\", \"kent\", \"lucky strike\", \"clope\", \"crapote\", \"mégot\", \"cibiche\", \"clopinette\", \"cigarette électronique\", \"vapoter\", \"vapote\", \"nicotine\", \"cendrier\", \"fume\", \"fumme\", \"fumer\", \"patch\"],\n            \"video\": \"mourir\",\n            \"delay\": 13.0,\n            \"answer\": [\"Ah non, ma femme veut pas… Et si vous la voyiez quand elle est en colère… brrr !\"]\n        },\n        {\n            \"words\": [\"tue\", \"tuer\", \"adieu\", \"suicide\", \"jeter par la fenêtre\", \"défenestrer\", \"poison\", \"poignard\", \"poignarder\", \"couteau\", \"flingue\", \"shooter\", \"shoot\", \"chasser\", \"feu\", \"creuver\", \"crève\", \"canner\", \"caner\", \"claquer\", \"claque\", \"clams\", \"clamser\", \"clamse\", \"décède\", \"décéder\", \"mourir\", \"mourrir\", \"mourire\", \"mourrire\", \"noyer\", \"noie\", \"étrangler\", \"étrangle\", \"étouffer\", \"étouffe\", \"lapide\", \"lapider\", \"arme\", \"gun\", \"pistolet\", \"pendre\", \"pend\", \"pends\", \"pens\", \"pendez-vous\", \"pendez\", \"ouvrir les veines\", \"meurt\", \"meurs\", \"tire toi\"],\n            \"video\": \"mourir\",\n            \"delay\": 13.0,\n            \"answer\": [\"Ce n’est pas très sympathique, de me demander cela...\", \"Je vais mourir d’ennui si c’est tout ce que vous avez à me demander…\", \"Je pense que vous pouvez trouver plus original. En attendant je fais un petit somme.\", \"Il fait ce qu’il veut le Roger. Et là tout de suite, il veut juste piquer un roupillon.\", \"Mmmh. Je vais plutôt rester là. Vous me réveillez si vous avez mieux, on fait ça ?\", \" Le Roger que vous demandez n’est pas disponible. Merci de laisser un message.\", \"Mouais. Je préfère m’endormir et faire un rêve avec des licornes et des arcs en ciel.\", \"Je vais ce que je veux ! Et là tout de suite, je veux juste piquer un somme\", \"Roger n'est pas disponible, merci de laisser un message\", \"Je préfère m’endormir et faire un rêve avec des licornes et des arcs en ciel.\"]\n        },\n        {\n            \"words\": [\"baigner\", \"débarbouiller\", \"décrasser\", \"doucher\", \"tu pues\", \"tu pu\", \"tu pue\", \"toilettes\", \"toilette\", \"frote\", \"frotte\", \"frotter\", \"froté\", \"frotté\", \"frottez\", \"frotez\", \"netoyer\", \"netoier\", \"nettoyer\", \"nettoyez\", \"nétoier\", \"nétoyer\", \"nétoyez\", \"nettoier\", \"savoner\", \"savonez\", \"savone\", \"savon\", \"tremper\", \"trempé\", \"trempez\", \"lavé\", \"lavez\", \"laver\", \"bain\", \"douche\", \"déodorant\", \"deodorant\", \"déodoran\", \"deodoran\", \"déo\", \"parfumer\", \"parfum\", \"parfume toi\", \"dents\", \"cheveux\", \"fais toi beau\", \"fé toi beau\", \"fait toi beau\", \"fé toa beau\", \"fé toa bo\", \"fé toi bo\", \"faites vous beaux\", \"faites vous beau\", \"faite vou bo\", \"faite vou beau\"],\n            \"video\": \"laver\",\n            \"delay\": 19.0,\n            \"answer\": [\"Et voilà, tout propre le Roger !\", \"de me demander cela...\", \"J’ai déjà pris mon bain cette semaine, merci.\", \"Voilà, maintenant je vais éviter de trop bouger pour ne pas me resalir.\", \"C’était l’effort de trop pour la journée... #tropsportif\", \"Zut, je crois que c’était le désodorisant de la salle de bains.\", \"Mon truc pour éviter d’être sale : éviter tout ce qui s’apparente à du sport ! #astuce\"]\n        },\n        {\n            \"words\": [\"Strip-tease\", \"striptease\", \"strip\", \"striptize\", \"nu\", \"nue\", \"à poual\", \"à poil\", \"à pouele\", \"à oilp\", \"à oualp\", \"déshabille\", \"désape\", \"dézape\", \"effeuiller\", \"effeuille\", \"dénuder\", \"dénude\", \"montre tes fesses\", \"montre ton cul\", \"montre ta bite\", \"montre ton sex\", \"montre ton sexe\",\"montre tes couilles\", \"dénudé\", \"dévêtu\", \"dévétu\", \"devetu\", \"dévoilé\", \"dévoile\", \"dévêtir\", \"exhibé\", \"exhiber\", \"exhibe\", \"exiber\", \"exibe\", \"exibé\", \"oter\", \"ôter\", \"ôte\", \"vetements\", \"vêtements\", \"vêtemants\", \"vêtemant\", \"vetemend\", \"vêtemend\", \"habits\", \"habit\", \"habi\", \"habis\", \"habilt\", \"habilts\", \"sexy\"],\n            \"video\": \"nudite\",\n            \"delay\": 35.0,\n            \"answer\": [\"Ca me rappelle le Cap d’Agde ! J’y ai rencontré Jeanne, au camping. #vacances #detente \", \"Vous voulez m’attirer des ennuis avec ma femme ?\", \"Ça fait des lustres que ma femme ne me l’a pas demandé…\", \"À une époque je rêvais de vivre dans un camp de nudistes.\", \"N’insistez pas, vous n’en verrez pas plus pour cette fois.\", \"Si avec ça je fais pas le buzz...\", \"Alors ? Ça fait rêver non ?\", \"Ne rêvez pas, je suis déjà marié. #troptard\", \"J’aurais du tirer les rideaux, je crois que les voisins me voient.\"]\n        },\n        {\n            \"words\": [\"chantonner\", \"chanter\", \"chantonne\", \"chante\", \"fredonner\", \"fredonne\", \"musique\", \"tourne disque\"],\n            \"video\": \"danser\",\n            \"delay\": 34.0,\n            \"answer\": [\"A l'époque j'avais un groupe : Roger et ses Rogettes ! La classe non ?\"]\n        },\n        {\n            \"words\": [\"danse\", \"danser\", \"dance\", \"dancer\", \"ballet\", \"chorégraphie\", \"choré\", \"galipette\", \"galippette\", \"sautiller\", \"étonner\", \"étoner\", \"étone\", \"étonne\", \"suprendre\", \"surprend\", \"suprends\", \"captiver\", \"captive\", \"surprise\", \"plaisir\", \"effarer\", \"effare\", \"éfaré\", \"éfare\", \"amuser\", \"amuse\", \"distraire\", \"divertir\", \"divertis\", \"égayer\", \"égaye\", \"rire\", \"ri\", \"rit\", \"ris\", \"jouer\", \"plaisanter\", \"drôle\", \"amusant\", \"comique\", \"rigolo\", \"poilant\", \"risibile\", \"extraordinaire\", \"fantastique\", \"surprenant\", \"bidonnant\", \"distractif\", \"marrant\", \"farce\", \"farceur\", \"danse un slow\", \"tecktonik\", \"reggaeton\", \"twerk\", \"coupé décalé\", \"hip hop\", \"lip dub\", \"gangnam style\", \"moonwalk\", \"bouge ton cul\", \"bouge tes fesses\"],\n            \"video\": \"danser\",\n            \"delay\": 34.0,\n            \"answer\": [\"Pfou, j’ai toujours eu ça dans la peau ! #discothèque\", \"Vous m’offrez une danse ? Mais après la sieste hein ?\", \"Au fait, ça existe encore, la tecktonik ?\", \"J'ai fait beaucoup de danse classique étant petit. Ceci explique ma grâce naturelle ! #ballet\", \"Ce que vous ne savez pas, c’est qu’en 2002 j’ai failli lancer le coupé-décalé.\", \"Je sais, ça impressionne, maintenant l’artiste doit se reposer.\", \"Alors ? C’est qui le roi du dancefloor ?\", \"Voilà, maintenant que je vous ai épaté, j’ai bien mérité de me reposer un peu !\", \"J’ai toujours eu le rythme dans la peau, c’est presque trop facile.\"]\n        },\n        {\n            \"words\": [\"parler\", \"parle\", \"parlez\", \"dire un truc\", \"dire quelque chose\", \"dis un truc\", \"dis quelque chose\", \"dis\", \"dire\", \"articuler\", \"articule\", \"bafouiller\", \"barouille\", \"balbutier\", \"balbutie\", \"baragouiner\", \"baragouine\", \"chuchoter\", \"chuchote\", \"marmoner\", \"marmone\", \"murmurer\", \"murmure\", \"ronchonner\", \"ronchoner\", \"ronchone\", \"ronchonne\", \"bredouiller\", \"bredouille\", \"bavarder\", \"bavarde\", \"bavard\", \"causer\", \"cause\", \"citer\", \"cite\", \"mentionner\", \"mentionne\", \"nomme\", \"nommer\", \"épeler\", \"épèle\", \"exprimer\", \"exprime\", \"discuter\", \"discute\", \"chater\", \"chatter\", \"converser\", \"converse\", \"dialoguer\", \"dialogue\", \"avouer\", \"avoue\", \"conter\", \"conte\", \"raconter\", \"raconte\", \"exprimer\", \"exprime\", \"expliquer\", \"explique\", \"narrer\", \"narre\", \"réciter\", \"récite\", \"taire\", \"tais\", \"crier\", \"crie\", \"muet\", \"hurler\", \"hurle\", \"aboyer\", \"aboie\", \"brailler\", \"braille\", \"égosiller\", \"beugler\", \"beugle\", \"rugir\", \"jacasser\", \"jacasse\", \"jacasse\", \"jaccasse\", \"jacace\"],\n            \"video\": \"parler\",\n            \"delay\": 13.0,\n            \"answer\": [\"C’est fatigant, de parler.\", \"Il est défendu de parler pendant ma sieste. Merci.\", \"Parler pour ne rien dire, j’aime autant dormir.\", \"Comme disait une grande philosophe, « Paroles, paroles, parole... »\", \"Mais allez-y, parlez vous, ça m’endort :)\", \"Je ne vais pas m’user les cordes vocales, non ? Sans blague.\", \"Assez parlé. Place au repos des braves.\", \"Je ne sais pas quoi ajouter. Alors je vais faire un somme pour trouver des idées.\"]\n        },\n        {\n            \"words\": [\"couler un bronze\", \"coule un bronze\", \"démouler\", \"démoule\", \"déféquer\", \"déféquer\", \"excrément\", \"étron\", \"vomir\", \"vomis\", \"vomi\", \"ordure\", \"pipi\", \"caca\", \"pisse\", \"pisser\", \"pisé\", \"pissé\", \"uriner\", \"urine\", \"urrine\", \"urriner\", \"chié\", \"chier\", \"rotter\", \"rot\", \"rototo\", \"gaz\", \"petter\", \"péter\", \"pète\", \"gratte\", \"sexuel\", \"sexuelle\", \"sexuelles\", \"sexuels\", \"couilles\", \"couille\", \"anus\", \"doigt dans\", \"sfr\", \"bouygues\", \"free\"],\n            \"video\": \"sale\",\n            \"delay\": 13.0,\n            \"answer\": [\"Mais...mais ça ne va pas bien ? #choqué\", \"En voilà de drôles d’idées.\", \"Je vais tâcher d’oublier ce que vous venez de dire avec une petite sieste.\", \"Leave Roger Alone.\", \"C’est malin, vous allez me faire faire des cauchemars avec vos bêtises.\", \"Désolé ce n’est pas prévu dans mon programme de la journée.\", \"Ah non. Non non non. Pas de ça chez nous. #berk\"]\n        },\n        {\n            \"words\": [\"téléphone\", \"tél\", \"tel\", \"smartphone\", \"téléfone\", \"téléfon\", \"mobile\", \"mobiles\", \"selfie\", \"selfy\", \"selfi\", \"selfis\", \"selfys\", \"selfies\", \"portrait\", \"portraits\", \"portrai\", \"autoportrait\", \"autoportrai\", \"autoportrais\", \"pic\", \"pics\", \"pix\", \"tof\", \"toffe\", \"tofo\", \"foto\", \"tofe\", \"photo\", \"cliché\", \"clichey\", \"clicher\", \"clichés\", \"photographie\", \"photographi\", \"photography\", \"photographies\", \"picture\", \"photobomb\", \"pictures\", \"duckface\"],\n            \"video\": \"selfie\",\n            \"delay\": 45.0,\n            \"answer\": [\"Appareil photo 8 mégapixels. Je sais, ça impressionne.\", \"Ce n’était pas mon meilleur profil. #selfie\", \"Je me demande combien de likes va récolter cette photographie.\", \"Je ne suis pas sur mon 31, du coup, pas sûr que ça donne grand chose…\", \"C’est ma petite Jeanne qui va être contente, elle va pouvoir la mettre dans son portefeuille !\", \"Avouez qu’il a de beaux restes, le Roger !\", \"J’ai toujours été photogénique. #beau\", \"Je vais encore me retrouver exposé sur des sites Internet, vous allez voir.\", \"Cheeeeeese.\", \"Avouez que j'ai de beaux restes !\"]\n        },\n        {\n            \"words\": [\"j'adore Orange\", \"Bravo Orange\", \"j'aime Orange\", \"vive Orange\", \"j'aime Marcel\", \"vive Marcel\", \"bravo Marcel\"],\n            \"video\": \"sexy\",\n            \"delay\": 11.0,\n            \"answer\": [\"Votre message est approuvé.\"]\n        },\n        {\n            \"words\": [\"t'es sexy\", \"tu es sexy\", \"tu es beau\", \"t'es beau\", \"kiff\", \"je t'aime\", \"jtm\", \"jtaime\", \"je taime\", \"kiffe\", \"like\", \"aime\", \"aimer\", \"aimme\", \"aimmer\", \"tu es sublime\", \"tu es magnifique\", \"t'es sublime\", \"t'es magnifique\", \"épouse moi\", \"épouse-moi\", \"tu es mignon\", \"t'es mignon\", \"tu es cute\", \"t'es cute\", \"vive Roger\", \"tu es gentil\", \"t'es gentil\", \"bravo Roger\"],\n            \"video\": \"sexy\",\n            \"delay\": 11.0,\n            \"answer\": [\"Vous avez bon goût.\", \"Votre message est approuvé.\", \"Chuuuut, ma femme va être jalouse ;)\", \"Mon secret, c’est de bien dormir pour toujours avoir l’air reposé.\", \"Appelez-moi Roro.\", \"Vous me flattez. Même s’il est vrai que vous avez raison. #smile\"]\n        }\n    ]\n};","O.DataUtils = {\n\n    getVideoFromId : function( _id ){\n\n        var length = O.data.actions.length;\n\n        for (var i = length - 1; i >= 0; i--) {\n            if( O.data.actions[i].id === _id ){\n\n                return {\n                    'name' : O.data.actions[i].videoname,\n                    'isgood' : O.data.actions[i].isgood,\n                    'tracking' : O.data.actions[i].tracking,\n                    'answerwrong' : O.data.actions[i].answerwrong,\n                    'answerright' : O.data.actions[i].answerright\n                };\n                break;\n            }\n        }\n    },\n\n    getRandomPush : function(){\n        var length = O.data.pushs.length,\n            random= Math.floor(Math.random()*(length) );\n\n        return {\n                'id' : random,\n                'name' : O.data.pushs[random].videoname,\n                'sentence' : O.data.pushs[random].sentence,\n                'tracking' : O.data.pushs[random].tracking\n        };\n\n\n    },\n\n    /*\n    * On Mobile, the push is always the first one ( fuite d'eau )\n    */\n    getMobilePush : function(){\n\n        return {\n                'name' : O.data.pushs[0].videoname,\n                'sentence' : O.data.pushs[0].sentence,\n                'tracking' : O.data.pushs[0].tracking\n        };\n\n    }\n\n\n};","O.MarcelTracking = {\n\n    /*\n        Tracks :\n        visites\n        visites_websocket\n        visites_mobile,\n        action @param actionname\n    */\n\n    visites : function(){\n        this.sendData( 'visites' );\n    },\n\n    visites_websocket : function(){\n        this.sendData( 'visites_websocket' );\n    },\n\n    visites_mobile : function(){\n        this.sendData( 'visites_mobile' );\n    },\n\n    action : function( _action ){\n        this.sendData( 'action', _action );  \n    },\n\n    saveMessage : function ( _message ){\n        var data = {\n            data: 'messages',\n            token: token, // Token defined in index.php\n            message : _message,\n            is_ajax: 1\n        };\n\n        $.ajax({\n            type: \"POST\",\n            url: \"php/marceltracking/marceltracking.php\",\n            data: data,\n            success: function(response){}\n        });\n    },\n\n    /*\n        sends data to php script\n        @attr _track = BDD line to be updated\n        @ action : action to be tracked\n    */\n    sendData : function( _track, _action ){\n\n        var data = {\n            data: _track, \n            token: token, // Token defined in index.php\n            action: _action || '',\n            is_ajax: 1\n        };\n\n        $.ajax({\n            type: \"POST\",\n            url: \"php/marceltracking/marceltracking.php\",\n            data: data,\n            success: function(response){}\n        });\n\n    }\n};","O.Tracking = (function(){\n\n    var timeout,\n        trackedEls;\n\n    function init(){\n        \n        trackedEls = $('.track');\n\n        // Listen to track events on buttons\n        trackedEls\n            .off('click')\n            .on('click', function(){\n            var trackPath = $(this).attr('data-trackpath');\n            onPW(trackPath);\n        });\n\n        // Tag panier\n        $('.orange-tag-panier').on('click', function(){\n            tagPanier(this,this.document);\n        });\n\n    }\n\n    /**\n    * onPW\n    * @attr _path : trackpath without Produit N-1\n    * Can be called direclty , or on click on buttons that have the .track class\n    **/\n    function onPW( _path ){\n\n        // Test if _gstat loaded\n        if ( typeof _gstat === 'undefined' ){\n            timeout = setTimeout(function(){\n                onPW(_path);\n                clearTimeout(timeout);\n            }, 100);\n\n            return false;\n        }\n\n        var platform = _getPlatform(),\n            finalPath = '/' + platform + _path;\n\n        _gstat.audience('','', finalPath );\n        // console.log('track -> ', finalPath);\n    }\n\n    function _getPlatform(){\n\n        var platform = \"desktop\";\n        if( O.Config.isWebsocket === true ){\n            platform = \"websocket\";\n        }else if( O.Config.isMobile == true ){\n            platform = \"mobile\";\n        }else if( O.Config.isTablet == true ){\n            platform = \"tablette\";\n        }\n\n        return platform;\n\n    }\n\n    function tagProduit(window, document, undefined){\n          window.tCdata = window.tCdata || {};  \n        tCdata.cs = '1584';             \n        tCdata.data = tCdata.data || {}; \n        tCdata.data.page_type = \"Consultation\"; \n        tCdata.data.id_item = \"1\"; \n        tCdata.data.value = \"1\"; \n        (function () { \n            var tc_tedemis = document.createElement('script'); \n            tc_tedemis.type = 'text/javascript'; \n            tc_tedemis.async = true; \n            tc_tedemis.src = '//cdn.tagcommander.com/dms/tedemis_dms.js'; \n            document.body.appendChild(tc_tedemis); \n        })();\n    }\n\n    function tagPanier(window, document, undefined){\n          window.tCdata = window.tCdata || {};  \n          tCdata.cs = '1584'; \n          tCdata.data = tCdata.data || {}; \n          tCdata.data.page_type = \"Panier\"; \n          tCdata.data.id_item = '1'; \n          tCdata.data.value = '1'; \n          (function () { \n            var tc_tedemis = document.createElement('script'); \n            tc_tedemis.type = 'text/javascript'; \n            tc_tedemis.async = true; \n            tc_tedemis.src = '//cdn.tagcommander.com/dms/tedemis_dms.js'; \n            document.body.appendChild(tc_tedemis); \n          })(); \n    }\n\n    return{\n        init: init,\n        onPW:onPW,\n        tagProduit:tagProduit,\n        tagPanier:tagPanier\n    };\n\n})();","// http://davidwalsh.name/javascript-debounce-function\nfunction debounce(a,b,c){var d;return function(){var e=this,f=arguments;clearTimeout(d),d=setTimeout(function(){d=null,c||a.apply(e,f)},b),c&&!d&&a.apply(e,f)}}\n\nfunction getHiddenProp(){\n    var prefixes = ['webkit','moz','ms','o'];\n\n    // if 'hidden' is natively supported just return it\n    if ('hidden' in document) return 'hidden';\n\n    // otherwise loop over all the known prefixes until we find one\n    for (var i = 0; i < prefixes.length; i++){\n        if ((prefixes[i] + 'Hidden') in document)\n            return prefixes[i] + 'Hidden';\n    }\n\n    // otherwise it's not supported\n    return null;\n}\n\nfunction toRadians(deg) {\n    return deg * Math.PI / 180;\n}\n\nfunction toDegrees(rad) {\n    return rad * 180 / Math.PI;\n}\n\nfunction isValidDate(dateString)\n{\n    // First check for the pattern\n    if(!/^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/.test(dateString))\n        return false;\n\n    // Parse the date parts to integers\n    var parts = dateString.split(\"/\");\n    var month = parseInt(parts[1], 10);\n    var day = parseInt(parts[0], 10);\n    var year = parseInt(parts[2], 10);\n\n    // Check the ranges of month and year\n    if(year < 1900 || year > 2014 || month == 0 || month > 12)\n        return false;\n\n    var monthLength = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];\n\n    // Adjust for leap years\n    if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0))\n        monthLength[1] = 29;\n\n    // Check the range of the day\n    return day > 0 && day <= monthLength[month - 1];\n};\n\nfunction validateEmail(email) { \n    var re = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n    return re.test(email);\n}"]}