Router.onRun(function () { $(document).ready(function () { if (window.logoInterval !== undefined) clearInterval(window.logoInterval); var i = 0; window.logoInterval = setInterval(function() { $('img.home-logo').attr('src', '/img/icons/1_' + ((++i%5)+1) + '.gif'); }, 2000); }); this.next(); }, { only: ['login'] }); function prepareDates() { var month = $('input[name=month]').val(); var year = $('input[name=year]').val(); if (month !== undefined && year !== undefined) { Meteor.call('getInstagramMedia', +("20"+year), +month, function(error, results) { // console.log('Instagram response', results.data); if (results.data.data.length > 0) { var photos = _.sortBy(results.data.data, function(p) { return p.created_time; }); Session.set('date', { month: month, year: year }); Session.set('photos', photos); Meteor.call('getInstagramUsername', function (err, res) { Session.set('username', res); }); $('form.dates div.error').hide(); $('form.dates button.next').show(); } else { $('form.dates button.next').hide(); $('form.dates div.error').show(); } }); } } function animate() { var delay = 0; $('img.logo').attr('src', '/img/logo_anim.gif'); // load $('li#step1').addClass('active'); var photos = $('div.photo'); photos.each(function(i) { var self = this; _.delay(function () { $(self).show(); }, 400 * i); }); delay += 400 * photos.length; // pixelate _.delay(function () { $('li#step1').removeClass('active'); $('li#step2').addClass('active'); _.each(Session.get('photos'), function(x, i) { _.delay(function() { $('#canvas-'+x.id).show(); Effects.pixelate(x.id); _.delay(function () { $('#img-'+x.id).hide(); }, 100); }, 400 * i); }); }, delay + 2000); delay += 400 * photos.length; delay += 2000; // colorize _.delay(function() { $('li#step2').removeClass('active'); $('li#step3').addClass('active'); _.each(Session.get('photos'), function(x, i) { _.delay(function () { Effects.colorize(x.id); $('#canvas-'+x.id).show(); }, 400 * i); }); }, delay + 2000); delay += 400 * photos.length; delay += 2000; _.delay(function() { $('li#step3').removeClass('active'); $('li#step4').addClass('active'); $('div.photos').hide(); var palette = Effects.average(); $('div#dominant1').css('background', 'rgba(' + palette[0][0] + ',' + palette[0][1] + ',' + palette[0][2] + ',1)'); $('div#dominant2').css('background', 'rgba(' + palette[1][0] + ',' + palette[1][1] + ',' + palette[1][2] + ',1)'); $('ol#dominant1 li.r').text('R-' + palette[0][0].toString(16).toUpperCase()); $('ol#dominant1 li.g').text('G-' + palette[0][1].toString(16).toUpperCase()); $('ol#dominant1 li.b').text('B-' + palette[0][2].toString(16).toUpperCase()); $('ol#dominant2 li.r').text('R-' + palette[1][0].toString(16).toUpperCase()); $('ol#dominant2 li.g').text('G-' + palette[1][1].toString(16).toUpperCase()); $('ol#dominant2 li.b').text('B-' + palette[1][2].toString(16).toUpperCase()); Session.set('dominant1hex', palette[0][0].toString(16).toUpperCase() + palette[0][1].toString(16).toUpperCase() + palette[0][2].toString(16).toUpperCase()); Session.set('dominant2hex', palette[1][0].toString(16).toUpperCase() + palette[1][1].toString(16).toUpperCase() + palette[1][2].toString(16).toUpperCase()); $('img.logo').attr('src', '/img/logo.jpg'); $('div.dominants').show(); }, delay + 2000); } function animate2() { var delay = 0; var photos = $('div.photo'); $('img.logo').attr('src', '/img/logo_anim.gif'); _.delay(function() { $('li#step4').removeClass('active'); $('li#step5').addClass('active'); $('div.dominants').hide(); $('div.photos').show(); _.each(Session.get('photos'), function(x, i) { _.delay(function () { Effects.averageColor(x.id); }, 400 * i); }); }, delay + 2000); delay += 400 * photos.length; delay += 2000; _.delay(function() { $('li#step5').removeClass('active'); $('li#step6').addClass('active'); $('div.photos').hide(); $('div.final').show(); Effects.drawFinal(); }, delay + 2000); delay += 400 * photos.length; delay += 2000; _.delay(function() { var matrix = Effects.drawFinalIcon(); Session.set('final_matrix', matrix); }, delay + 2000); delay += 400 * photos.length; delay += 2000; var canvas = document.getElementById('canvas-final'); var dataUrl = canvas.toDataURL(); $('a.share-save').attr('href', dataUrl); $('a.share-save').attr('download', new Date().getTime()); _.delay(function() { $('h2.title').html('Done!
This is your icon!
'); $('span.final-username').text(Session.get('username')); var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; $('span.final-date').text(months[Session.get('date').month-1] + ' ' + Session.get('date').year); $('div.final div.final-dominants').hide(); $('img.logo').attr('src', '/img/logo.jpg'); $('div.final-userdate').show(); $('div.final div.share').show(); $('div.about-link').show(); }, delay + 2000); } function doLogout() { $('body').append('
'); $('div.header img.profile').attr('src', 'https://instagramimages-a.akamaihd.net/profiles/anonymousUser.jpg'); Meteor.logout(); _.delay(function () { Router.go('login'); }, 500); } Template.layout.events({ 'click .logout': function (event) { doLogout(); } }) Template.login.events({ 'click button.login': function (event) { Meteor.loginWithInstagram({}, function (err) { if (err) Session.set('errorMessage', err.reason || 'Unknown error'); }); return false; } }); Template.dates.events({ 'scroll .month-wrapper': function (e) { var elements = $('.month-wrapper').find('.month').length; var totalheight = $('.month-wrapper').css('height').replace('px','') * elements; var elementheight = totalheight/elements; var offset = e.target.scrollTop; var distance; lastclosest = 9999; lastclosestelement = 0; for (i=0;i