blob: eb10fe2c09abb9e5e1ea21cfc7ed6b657210f08e [file] [log] [blame]
/*jslint vars: true, plusplus: true, devel: true, nomen: true, regexp: true, indent: 4, maxerr: 50 */
/*global $, bmData, bodymovin, mainController */
var infoController = (function () {
'use strict';
var ob = {}, view, anim, csInterface;
function showSelection() {
mainController.showView('selection');
}
function openBrowser() {
csInterface.openURLInDefaultBrowser('http://github.com/bodymovin/bodymovin');
return false;
}
function getZippedFile() {
var eScript = 'bm_downloadManager.getPlayer(true)';
csInterface.evalScript(eScript);
}
function getUnzippedFile() {
var eScript = 'bm_downloadManager.getPlayer(false)';
csInterface.evalScript(eScript);
}
function init(csIntfc) {
csInterface = csIntfc;
view = $('#info');
view.hide();
view.find('.return').on('click', showSelection);
view.find('.link').on('click', openBrowser);
view.find('.buttons .zipped').on('click', getZippedFile);
view.find('.buttons .unzipped').on('click', getUnzippedFile);
}
function loadAnimation() {
var animContainer = view.find('.animHeader')[0];
var animData = JSON.parse(bmData);
var params = {
animType: 'svg',
wrapper: animContainer,
loop: true,
autoplay: true,
prerender: false,
animationData: animData
};
anim = bodymovin.loadAnimation(params);
}
function show() {
view.show();
if (!anim) {
loadAnimation();
} else {
anim.play();
}
}
function hide() {
if (anim) {
anim.goToAndStop(0);
}
view.hide();
}
ob.init = init;
ob.hide = hide;
ob.show = show;
return ob;
}());