var customVariables = {};
document.getAttribute = function(){} // hack
$(document).foundation({
reveal: {
root_element: 'body'
},
joyride: {
tip_container : '.main-section',
template : { // HTML segments for tip layout
link : '',
timer : '
',
tip : '
',
wrapper : '',
button : '',
prev_button : '',
modal : '',
expose : '',
expose_cover: ''
},
scroll_speed : 1500,
post_ride_callback : function (a, b) {
// if (angular.isFunction(postJoyride)) postJoyride(a, b);
},
post_step_callback : function (index, el){
// stop audio playback
var audioEl = el.find('audio');
if (audioEl.length == 1) {
var audioID = audioEl.attr('id');
pauseAudio(audioID);
}
}, // A method to call after each step
pre_step_callback : function (index, el){}, // A method to call before each step
}
});
function transformAudioToButtons() {
var audioEls = Foundation.utils.S('audio');
$.each(audioEls, function (index, value) {
var audioEl = Foundation.utils.S(value);
if (audioEl.hasClass('trigger') == false) {
var audioID = audioEl.attr('id');
var parentEl = audioEl.parent();
parentEl.prepend('');
}
});
}
function playAudio(id) {
try {
Foundation.utils.S('#'+id)[0].play();
} catch (e) {}
}
function pauseAudio(id) {
try {
var audio = Foundation.utils.S('#'+id)[0];
audio.pause();
audio.currentTime = 0;
} catch (e) {}
}
function hideBtnNext() {
$('#btn-next').hide();
}
function showBtnNext() {
$('#btn-next').show();
}
function closeModal(modal) {
Foundation.utils.S('#'+modal).foundation('reveal', 'close');
}
$(function() {
var offcanvaswrap = $('.off-canvas-wrap'),
offcanvaslist = $(".off-canvas-list"),
offcanvaslistA = $(offcanvaslist.find('a')),
mainSection = $('.main-section');
$('.has-submenu').on('click', function() {
if (!offcanvaswrap.hasClass('move-right')) {
offcanvaswrap.foundation('offcanvas', 'show', 'move-right');
}
});
offcanvaslistA.on('click', function() {
if (offcanvaswrap.hasClass('move-right') ) {
offcanvaswrap.foundation('offcanvas', 'hide', 'move-right');
// for the submenu
var $this = $(this);
setTimeout(function() {
var thisParent = $this.parent();
var thisParentSubmenu = $this.closest('.left-submenu');
// if it is not a back button, and inside a submenu
if (!thisParent.hasClass('has-submenu') && thisParentSubmenu && !thisParent.hasClass('back')) {
thisParentSubmenu.removeClass('move-right');
offcanvaswrap.foundation('offcanvas', 'hide', 'move-right');
}
}, 100);
}
});
$.sammy(function() {
var _this = this;
$.each(appRoutes, function(index, value) {
_this.get(value.url, function() {
$.get(value.templateUrl, function(d) {
// set the content
mainSection
.css('opacity', '0')
.html(d);
TweenMax.to(mainSection, 0.5, {opacity:1});
// set active menu link
offcanvaslistA.removeClass('active');
var link = offcanvaslistA.closest('[data-name='+ value.name +']');
link.addClass('active');
if (value.postTracked == undefined || value.postTracked == false) {
LOProgress.set(value);
}
})
});
});
_this.notFound = function() {
_this.runRoute('get', '/');
}
}).run();
});
var VideoPlayer = {
vid: null,
videoController: null,
transcript: [],
transcriptTrack: null,
transcriptContainer: null,
isScrollingTranscriptContainer: false,
userScrollTimeout: null,
setup: function (params) {
var self = this;
self.vid = params.vid;
self.videoController = params.videoController;
self.transcript = params.transcript;
self.transcriptContainer = params.transcriptContainer;
self.videoController.on('click', function() {
if (self.vid.readyState < 2) return;
if (self.vid.paused) {
self.vid.play();
self.videoController.css('opacity', 0);
//cahyo
$.each(self.transcript, function(index, obj){
var obj = $(obj);
var pause = obj.data('pause');
var caption = obj.data('caption');
if(caption != undefined){
$('#caption').fadeOut(function(){
$('#caption').remove();
});
}
});
$("#video1").on(
"timeupdate",
function(event){
//console.log(this.currentTime+' ');
//console.log(this.duration);
});
//end cahyo
} else {
self.vid.pause();
self.videoController.css('opacity', 1);
}
});
$(window).on('blur', function() {
self.vid.pause();
self.videoController.css('opacity', 1);
});
self.transcriptContainer.on('scroll', function() {
clearTimeout(self.userScrollTimeout);
self.userScrollTimeout = null;
self.isScrollingTranscriptContainer = true;
});
self.transcript.on('click', function() {
self.vid.currentTime = parseFloat($(this).data('start'));
self.vid.play();
self.videoController.css('opacity', 0);
//cahyo
$.each(self.transcript, function(index, obj){
var obj = $(obj);
var pause = obj.data('pause');
var caption = obj.data('caption');
if(pause != undefined ){
obj.data('pause',1);
if(caption != undefined){
$('#caption').fadeOut(function(){
$('#caption').remove();
});
}
}
});
//end
});
if (Modernizr.video)
self.transcriptTrack = requestAnimationFrame(self.trackProgress);
self.vid.addEventListener('ended', function() {
self.vid.currentTime = 0;
self.videoController.css('opacity', 1);
});
},
trackProgress: function() {
var self = VideoPlayer;
if (!self.vid.paused && self.vid.readyState >= 2) {
var currentTime = self.vid.currentTime;
self.transcript.removeClass();
self.videoController
.css('opacity', 0)
.removeClass('loading');
$.each(self.transcript, function(index, obj) {
var obj = $(obj);
var caption = obj.data('caption');
var start = parseFloat(obj.data('start'));
var end = parseFloat(obj.data('end'));
if (isNaN(start) || isNaN(end)) return true;
if (currentTime > start && currentTime < end) {
obj.addClass('active');
var pause = obj.data('pause');
if(pause != undefined && pause == "1"){
obj.data('pause', 0);
self.vid.pause();
self.videoController.css('opacity', 1);
//cahyo
if(caption != undefined){
$('').insertAfter('.playvideo');
$('#caption').hide();
$('#caption').fadeIn();
}
}
return false;
}
});
if (self.isScrollingTranscriptContainer == false) {
// set the scrolling position
var activeTranscript = self.transcript.closest('.active');
if (activeTranscript.length) {
var top = activeTranscript.position().top - 5;
self.transcriptContainer.scrollTop( self.transcriptContainer.scrollTop() + top );
}
} else {
// wait for 4 sec back to autoscroll
if (self.userScrollTimeout == null) {
self.userScrollTimeout = setTimeout(function() {
self.isScrollingTranscriptContainer = false;
self.userScrollTimeout = null;
}, 4000);
}
}
} else if (!self.vid.paused) {
//console.log('video is loading..');
self.videoController
.css('opacity', 1)
.addClass('loading');
}
// console.log(self);
if (Modernizr.video)
self.transcriptTrack = requestAnimationFrame(self.trackProgress);
}
};
var LOProgress = {
init: function() {
var self = this;
self.totalProgressEl = $('#total-progress');
self.totalProgress = 0;
self.visitedSection = [];
},
set: function(section) {
var self = this;
if (self.visitedSection.indexOf(section) == -1 && section.tracked != undefined) {
self.totalProgress += section.tracked;
self.totalProgressEl.css('width', self.totalProgress+'%');
self.visitedSection.push(section);
}
}
};
LOProgress.init();
var SearchText = {
init: function () {
$.each(appRoutes, function(index, value) {
$.get(value.templateUrl, function(d) {
d = d.replace(/src="[\w\/\.\-]+"|poster="[\w\/\.\-]+"/igm, '');
d = $.parseHTML(d);
appRoutes[index].allText = $(d).text();
});
});
},
search: function (str) {
var results = [],
count = 0;
str = str.toLowerCase();
$.each(appRoutes, function(index, value) {
var text = value.allText.toLowerCase();
var pos = text.indexOf(str);
while (pos !== -1) {
count++;
results.push({index: index, pos:pos});
pos = text.indexOf(str, pos + 1);
}
});
console.log(results);
}
};