jQuery(document).ready(function($){
var AsiController = (function(){
var $images = $('.asi-img');
function init(options) {
// we get the options
var icon_style = options.icon_style;
var icon_position = options.icon_position;
renameAudioTags();
addIcons(icon_style);
placeIcons(icon_position);
}
/*
/ Rename asi-audio tags into audio ones.
/ Param: none
*/
function renameAudioTags() {
$('asi-audio').each(function() {
var asi_id = $(this).attr('asi-id');
$(this).replaceWith('')
});
}
/*
/ Add the icons
/ Param: icon_style ( default )
*/
function addIcons(icon_style, icon_position) {
// Icon style
switch(icon_style) {
default:
var icon_minus = '';
var icon_plus = '';
break;
case 'super_cool':
// here, put the icons super_cool
break;
}
$images.each(function(index, image) {
var asi_id = $(this).attr('asi-id');
$(icon_minus).insertAfter($(this)).attr('asi-id', asi_id);
$(icon_plus).insertAfter($(this)).attr('asi-id', asi_id);
});
}
/*
/ Place the icons
/ Param: icon_position ( top-left, top-right, bottom-left, bottom-right )
*/
function placeIcons(icon_position) {
// Icon position
var $icons = $('.asi-player-icon');
$icons.each(function(index, icon) {
var asi_id = $(this).attr('asi-id');
var $linked_image = $('.asi-img[asi-id='+asi_id+']');
var img_top = $linked_image.position().top;
var img_left = $linked_image.position().left;
var img_right = img_left + $linked_image.outerWidth();
var img_bottom = $linked_image.outerHeight();
var padding = 10;
var icon_size = $(this).outerWidth();
var icon_top = img_top + padding;
var icon_bottom = $linked_image.height() - padding - icon_size;
var icon_left = img_left + padding;
var icon_right = img_right + padding;
switch(icon_position) {
default:
$(this).css({marginTop: icon_top, marginLeft: icon_left});
break;
case 'top-left':
$(this).css({top: icon_top, left: icon_left});
break;
case 'top-right':
$(this).css({top: icon_top, right: icon_right});
break;
case 'bottom-left':
$(this).css({marginTop: icon_bottom, left: icon_left});
break;
case 'bottom-right':
$(this).css({marginTop: icon_bottom, right: icon_right});
break;
}
});
}
/*
/ Play or pause a sound
/ Param: asi_id ( integer )
*/
function toggleAudio(asi_id) {
var $icon_minus = $('.asi-minus-icon[asi-id='+asi_id+']');
var $icon_plus = $('.asi-plus-icon[asi-id='+asi_id+']');
var $audio = $('audio[asi-id='+asi_id+']');
if(!$audio.hasClass('playing')) {
$('audio').trigger('pause').removeClass('playing');
$('.asi-plus-icon').hide();
$('.asi-minus-icon').show().css('display', 'inline');
$audio.trigger("play");
$icon_minus.hide();
$icon_plus.show().css('display', 'inline');
$audio.addClass('playing');
} else {
$audio.trigger("pause");
$icon_minus.show().css('display', 'inline');
$icon_plus.hide();
$audio.removeClass('playing');
}
}
return {
init: init,
toggleAudio: toggleAudio,
placeIcons: placeIcons
};
})();
var options = {
icon_style: 'basic',
icon_position: 'top-left'
};
$('body').imagesLoaded( function() {
AsiController.init(options);
$(document).on('click', '.asi-player-icon', function(e) {
e.preventDefault();
var asi_id = $(this).attr('asi-id');
AsiController.toggleAudio(asi_id);
});
$('audio').on("ended", function(){
$(this).currentTime = 0;
var asi_id = $(this).attr('asi-id');
AsiController.toggleAudio(asi_id);
});
$(window).on('resize', function() {
AsiController.placeIcons(options.icon_position);
});
});
});