Skip to content

Instantly share code, notes, and snippets.

@kyuumeitai
Created July 11, 2013 04:05
Show Gist options
  • Save kyuumeitai/5972451 to your computer and use it in GitHub Desktop.
Save kyuumeitai/5972451 to your computer and use it in GitHub Desktop.
/*global ga*/
/*global Modernizr*/
/*jslint bitwise: true*/
$(function(){
'use strict';
var cardpool = [];
var allcards = [];
function mnetgaevent(label,action){
try{
ga('send', 'event', label, action);
} catch(err){}
}
function mnetrand(obj) {
var keys = Object.keys(obj),
result = keys[keys.length * Math.random() << 0];
return result;
}
function mnetremove(obj,elim){
delete obj[elim];
return obj;
}
function mnetgetimg(ruta, cual, idpadre){
var img = new Image();
$(img).attr('src', 'cards/img-'+cual+'-'+ruta+'.png').load(function(){
idpadre.append(this);
});
}
function mnetcomposetarjeta(ruta, cual, cualobj, idpadre){
mnetgetimg(ruta, cual, idpadre);
idpadre.append('<div class="card-text color-'+cualobj.color+'"><p>'+cualobj.description+'</p><span class="hr sprite hr-'+cualobj.color+'">&nbsp;</span></div><div class="card-heart" data-esta="'+ruta+'" data-cual="'+cual+'"><span class="sprite block img-corazon animate">&nbsp;</span></div>');
}
$('body').on('click', '.btn-next-tarjetas', function(e){
var t = $(this);
$('body').append('<div class="loading" style="display: none;"></div>');
$('.loading').fadeIn('fast', function(){
$.getJSON('scripts/cards.json', function(data){
allcards = $.extend(true, {}, data);
var tarjeta1 = mnetrand(data),
tarjeta1data = data[tarjeta1];
cardpool = mnetremove(data, tarjeta1);
var tarjeta2 = mnetrand(cardpool),
tarjeta2data = data[tarjeta2];
cardpool = mnetremove(cardpool, tarjeta2);
$('#loader').fadeOut('fast', function(){
$(this).load(t.attr('href') + ' .inner', function(){
mnetcomposetarjeta(tarjeta1, 'left', tarjeta1data, $('#left'));
mnetcomposetarjeta(tarjeta2, 'right', tarjeta2data, $('#right'));
$(this).fadeIn('fast', function(){
$('.loading').fadeOut('fast', function(){
$(this).empty().remove();
});
});
});
mnetgaevent('campana-elite-resfrio','empezar');
});
});
});
e.preventDefault();
}).on('click', '.card-heart', function(e){
var t = $(this),
padre = t.parent().siblings(),
cual = padre.children('.card-heart').data('cual'),
esta = t.data('esta'),
tarjeta = mnetrand(cardpool),
tarjetadata = cardpool[tarjeta];
if(typeof tarjeta === 'undefined'){
$('#loader').fadeOut('fast', function(){
$(this).load('resultado.html .inner', function(){
var cualobj = allcards[esta];
mnetgetimg(esta, 'ganadora', $('#resultado'));
$('#resultado').append('<div class="card-text color-'+cualobj.color+'"><p>'+cualobj.description+'</p><span class="hr sprite block hr-ganadora-'+cualobj.color+'">&nbsp;</span></div>');
$(this).fadeIn('slow');
});
});
} else {
cardpool = mnetremove(cardpool, tarjeta);
t.addClass('animated-heart');
padre.fadeOut('fast', function(){
$(this).empty();
mnetcomposetarjeta(tarjeta, cual, tarjetadata, padre);
});
setTimeout(function(){
t.removeClass('animated-heart');
padre.fadeIn('fast');
}, 600);
mnetgaevent('campana-elite-resfrio','tarjeta');
}
e.preventDefault();
}).on('click', '.btn-premios', function(){
mnetgaevent('campana-elite-resfrio','modal-premio');
}).on('click', '.btn-next-form', function(){
mnetgaevent('campana-elite-resfrio','modal-formulario');
}).on('click', '#btn-registrar', function(){
mnetgaevent('campana-elite-resfrio','registro');
});
$(window).load(function(){
$('.loading').fadeOut('slow', function(){
$(this).empty().remove();
});
});
var soundsdata = [
{
'nombre' : 'achu01',
'trigger' : '.btn-next-tarjetas'
},
{
'nombre' : 'achu02',
'trigger' : '.btn-next-form'
},
{
'nombre' : 'achu01',
'trigger' : '#btn-registrar'
}
];
if (Modernizr.audio){
var vaudio = [];
$.each(soundsdata, function(i,v){
vaudio[v.nombre] = document.createElement('audio');
vaudio[v.nombre].setAttribute('src', 'sounds/'+v.nombre+'.mp3');
vaudio[v.nombre].setAttribute('src', 'sounds/'+v.nombre+'.ogg');
vaudio[v.nombre].load();
$('body').on('mouseenter', v.trigger, function(){
vaudio[v.nombre].currentTime -= 2;
vaudio[v.nombre].play();
});
});
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment